react-day-picker 9.0.0-beta.5 → 9.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/dist/cjs/DayPicker.d.ts +4 -7
- package/dist/cjs/DayPicker.js +4 -7
- package/dist/cjs/DayPicker.js.map +1 -1
- package/dist/cjs/UI.d.ts +25 -14
- package/dist/cjs/UI.js +35 -23
- package/dist/cjs/UI.js.map +1 -1
- package/dist/cjs/classes/CalendarDay.d.ts +4 -1
- package/dist/cjs/classes/CalendarDay.js +6 -6
- package/dist/cjs/classes/CalendarDay.js.map +1 -1
- package/dist/cjs/components/Button.d.ts +2 -2
- package/dist/cjs/components/Button.js +1 -1
- package/dist/cjs/components/Button.js.map +1 -1
- package/dist/cjs/components/Calendar.d.ts +1 -1
- package/dist/cjs/components/Calendar.js +7 -8
- package/dist/cjs/components/Calendar.js.map +1 -1
- package/dist/cjs/components/Chevron.d.ts +1 -1
- package/dist/cjs/components/Chevron.js +5 -5
- package/dist/cjs/components/Chevron.js.map +1 -1
- package/dist/cjs/components/Day.d.ts +3 -3
- package/dist/cjs/components/Day.js +1 -1
- package/dist/cjs/components/DayDate.d.ts +13 -3
- package/dist/cjs/components/DayDate.js +7 -2
- package/dist/cjs/components/DayDate.js.map +1 -1
- package/dist/cjs/components/DayWrapper.js +38 -22
- package/dist/cjs/components/DayWrapper.js.map +1 -1
- package/dist/cjs/components/Dropdown.d.ts +3 -4
- package/dist/cjs/components/Dropdown.js +3 -3
- package/dist/cjs/components/Dropdown.js.map +1 -1
- package/dist/cjs/components/DropdownNav.d.ts +1 -1
- package/dist/cjs/components/DropdownNav.js +5 -5
- package/dist/cjs/components/DropdownNav.js.map +1 -1
- package/dist/cjs/components/Footer.d.ts +2 -2
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/Footer.js.map +1 -1
- package/dist/cjs/components/Month.d.ts +1 -1
- package/dist/cjs/components/Month.js +7 -27
- package/dist/cjs/components/Month.js.map +1 -1
- package/dist/cjs/components/MonthCaption.d.ts +1 -1
- package/dist/cjs/components/MonthCaption.js +4 -4
- package/dist/cjs/components/MonthCaption.js.map +1 -1
- package/dist/cjs/components/Months.d.ts +1 -1
- package/dist/cjs/components/Months.js +1 -1
- package/dist/cjs/components/MonthsDropdown.d.ts +1 -1
- package/dist/cjs/components/MonthsDropdown.js +6 -9
- package/dist/cjs/components/MonthsDropdown.js.map +1 -1
- package/dist/cjs/components/Nav.d.ts +1 -1
- package/dist/cjs/components/Nav.js +4 -5
- package/dist/cjs/components/Nav.js.map +1 -1
- package/dist/cjs/components/Option.d.ts +1 -1
- package/dist/cjs/components/Option.js +1 -1
- package/dist/cjs/components/Select.d.ts +1 -1
- package/dist/cjs/components/Select.js +1 -1
- package/dist/cjs/components/Week.d.ts +1 -1
- package/dist/cjs/components/Week.js +4 -5
- package/dist/cjs/components/Week.js.map +1 -1
- package/dist/cjs/components/WeekNumber.d.ts +1 -1
- package/dist/cjs/components/WeekNumber.js +5 -5
- package/dist/cjs/components/WeekNumber.js.map +1 -1
- package/dist/cjs/components/Weekday.d.ts +1 -1
- package/dist/cjs/components/Weekday.js +7 -5
- package/dist/cjs/components/Weekday.js.map +1 -1
- package/dist/cjs/components/Weekdays.d.ts +1 -1
- package/dist/cjs/components/Weekdays.js +4 -4
- package/dist/cjs/components/Weekdays.js.map +1 -1
- package/dist/cjs/components/YearsDropdown.d.ts +1 -1
- package/dist/cjs/components/YearsDropdown.js +6 -9
- package/dist/cjs/components/YearsDropdown.js.map +1 -1
- package/dist/cjs/contexts/index.d.ts +4 -0
- package/dist/cjs/contexts/index.js +21 -0
- package/dist/cjs/contexts/index.js.map +1 -0
- package/dist/cjs/contexts/providers.d.ts +9 -0
- package/dist/cjs/contexts/providers.js +33 -0
- package/dist/cjs/contexts/providers.js.map +1 -0
- package/dist/cjs/contexts/{calendar.d.ts → useCalendar.d.ts} +20 -33
- package/dist/cjs/contexts/useCalendar.js +154 -0
- package/dist/cjs/contexts/useCalendar.js.map +1 -0
- package/dist/{esm/contexts/focus.d.ts → cjs/contexts/useFocus.d.ts} +23 -18
- package/dist/cjs/contexts/{focus.js → useFocus.js} +41 -34
- package/dist/cjs/contexts/useFocus.js.map +1 -0
- package/dist/cjs/contexts/useModifiers.d.ts +24 -0
- package/dist/cjs/contexts/useModifiers.js +187 -0
- package/dist/cjs/contexts/useModifiers.js.map +1 -0
- package/dist/cjs/contexts/useProps.d.ts +45 -0
- package/dist/cjs/contexts/useProps.js +98 -0
- package/dist/cjs/contexts/useProps.js.map +1 -0
- package/dist/cjs/formatters/formatCaption.d.ts +4 -2
- package/dist/cjs/formatters/formatCaption.js +4 -3
- package/dist/cjs/formatters/formatCaption.js.map +1 -1
- package/dist/cjs/formatters/formatDay.d.ts +3 -2
- package/dist/cjs/formatters/formatDay.js +3 -3
- package/dist/cjs/formatters/formatDay.js.map +1 -1
- package/dist/cjs/formatters/formatMonthDropdown.d.ts +5 -2
- package/dist/cjs/formatters/formatMonthDropdown.js +8 -3
- package/dist/cjs/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/cjs/formatters/formatWeekNumber.d.ts +1 -2
- package/dist/cjs/formatters/formatWeekNumber.js +1 -3
- package/dist/cjs/formatters/formatWeekNumber.js.map +1 -1
- package/dist/cjs/formatters/formatWeekdayName.d.ts +3 -2
- package/dist/cjs/formatters/formatWeekdayName.js +3 -3
- package/dist/cjs/formatters/formatWeekdayName.js.map +1 -1
- package/dist/cjs/formatters/formatYearDropdown.d.ts +1 -0
- package/dist/cjs/formatters/formatYearDropdown.js +1 -0
- package/dist/cjs/formatters/formatYearDropdown.js.map +1 -1
- package/dist/cjs/helpers/debounce.js.map +1 -1
- package/dist/cjs/helpers/getClassNamesForModifiers.d.ts +2 -2
- package/dist/cjs/helpers/getClassNamesForModifiers.js +7 -4
- package/dist/cjs/helpers/getClassNamesForModifiers.js.map +1 -1
- package/dist/cjs/helpers/getDataAttributes.d.ts +2 -2
- package/dist/cjs/helpers/getDataAttributes.js.map +1 -1
- package/dist/cjs/helpers/getDates.d.ts +3 -14
- package/dist/cjs/helpers/getDates.js +13 -32
- package/dist/cjs/helpers/getDates.js.map +1 -1
- package/dist/cjs/helpers/getDefaultClassNames.js +7 -3
- package/dist/cjs/helpers/getDefaultClassNames.js.map +1 -1
- package/dist/cjs/helpers/getDisplayMonths.d.ts +2 -5
- package/dist/cjs/helpers/getDisplayMonths.js +4 -6
- package/dist/cjs/helpers/getDisplayMonths.js.map +1 -1
- package/dist/cjs/helpers/getDropdownMonths.d.ts +2 -5
- package/dist/cjs/helpers/getDropdownMonths.js +12 -16
- package/dist/cjs/helpers/getDropdownMonths.js.map +1 -1
- package/dist/cjs/helpers/getDropdownYears.d.ts +2 -5
- package/dist/cjs/helpers/getDropdownYears.js +12 -19
- package/dist/cjs/helpers/getDropdownYears.js.map +1 -1
- package/dist/cjs/helpers/getFormatters.d.ts +2 -2
- package/dist/cjs/helpers/getFormatters.js.map +1 -1
- package/dist/cjs/helpers/getInitialMonth.d.ts +3 -0
- package/dist/cjs/helpers/getInitialMonth.js +21 -0
- package/dist/cjs/helpers/getInitialMonth.js.map +1 -0
- package/dist/cjs/helpers/getMonths.d.ts +4 -2
- package/dist/cjs/helpers/getMonths.js +24 -29
- package/dist/cjs/helpers/getMonths.js.map +1 -1
- package/dist/cjs/helpers/getNextFocus.d.ts +4 -5
- package/dist/cjs/helpers/getNextFocus.js +5 -3
- package/dist/cjs/helpers/getNextFocus.js.map +1 -1
- package/dist/cjs/helpers/getNextMonth.d.ts +2 -8
- package/dist/cjs/helpers/getNextMonth.js +9 -11
- package/dist/cjs/helpers/getNextMonth.js.map +1 -1
- package/dist/cjs/helpers/getPossibleFocusDate.d.ts +3 -3
- package/dist/cjs/helpers/getPossibleFocusDate.js +10 -19
- package/dist/cjs/helpers/getPossibleFocusDate.js.map +1 -1
- package/dist/cjs/helpers/getPreviousMonth.d.ts +2 -8
- package/dist/cjs/helpers/getPreviousMonth.js +9 -11
- package/dist/cjs/helpers/getPreviousMonth.js.map +1 -1
- package/dist/cjs/helpers/getStartEndMonths.d.ts +2 -2
- package/dist/cjs/helpers/getStartEndMonths.js +11 -12
- package/dist/cjs/helpers/getStartEndMonths.js.map +1 -1
- package/dist/cjs/helpers/getStyleForModifiers.d.ts +2 -2
- package/dist/cjs/helpers/getStyleForModifiers.js.map +1 -1
- package/dist/cjs/helpers/getWeekdays.d.ts +5 -4
- package/dist/cjs/helpers/getWeekdays.js +5 -7
- package/dist/cjs/helpers/getWeekdays.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -7
- package/dist/cjs/index.js +4 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jalali.d.ts +3 -0
- package/dist/cjs/jalali.js +37 -0
- package/dist/cjs/jalali.js.map +1 -0
- package/dist/cjs/labels/labelCaption.d.ts +3 -2
- package/dist/cjs/labels/labelCaption.js +2 -1
- package/dist/cjs/labels/labelCaption.js.map +1 -1
- package/dist/cjs/labels/labelDay.d.ts +4 -3
- package/dist/cjs/labels/labelDay.js +2 -1
- package/dist/cjs/labels/labelDay.js.map +1 -1
- package/dist/cjs/labels/labelGrid.d.ts +3 -2
- package/dist/cjs/labels/labelGrid.js +3 -3
- package/dist/cjs/labels/labelGrid.js.map +1 -1
- package/dist/cjs/labels/labelMonthDropdown.d.ts +2 -2
- package/dist/cjs/labels/labelMonthDropdown.js.map +1 -1
- package/dist/cjs/labels/labelNext.d.ts +2 -2
- package/dist/cjs/labels/labelNext.js.map +1 -1
- package/dist/cjs/labels/labelPrevious.d.ts +2 -2
- package/dist/cjs/labels/labelPrevious.js.map +1 -1
- package/dist/cjs/labels/labelWeekNumber.d.ts +2 -2
- package/dist/cjs/labels/labelWeekNumber.js.map +1 -1
- package/dist/cjs/labels/labelWeekNumberHeader.d.ts +2 -2
- package/dist/cjs/labels/labelWeekNumberHeader.js.map +1 -1
- package/dist/cjs/labels/labelWeekday.d.ts +3 -2
- package/dist/cjs/labels/labelWeekday.js +3 -3
- package/dist/cjs/labels/labelWeekday.js.map +1 -1
- package/dist/cjs/labels/labelYearDropdown.d.ts +2 -2
- package/dist/cjs/labels/labelYearDropdown.js.map +1 -1
- package/dist/cjs/lib/dateLib.d.ts +70 -0
- package/dist/cjs/lib/dateLib.js +67 -0
- package/dist/cjs/lib/dateLib.js.map +1 -0
- package/dist/cjs/lib/index.d.ts +1 -0
- package/dist/cjs/lib/index.js +18 -0
- package/dist/cjs/lib/index.js.map +1 -0
- package/dist/cjs/lib/locales.d.ts +1 -0
- package/dist/cjs/lib/locales.js +6 -0
- package/dist/cjs/lib/locales.js.map +1 -0
- package/dist/cjs/selection/index.d.ts +3 -0
- package/dist/cjs/selection/index.js +20 -0
- package/dist/cjs/selection/index.js.map +1 -0
- package/dist/cjs/selection/useMulti.d.ts +25 -0
- package/dist/cjs/selection/useMulti.js +86 -0
- package/dist/cjs/selection/useMulti.js.map +1 -0
- package/dist/cjs/selection/useRange.d.ts +25 -0
- package/dist/cjs/selection/useRange.js +86 -0
- package/dist/cjs/selection/useRange.js.map +1 -0
- package/dist/cjs/selection/useSingle.d.ts +23 -0
- package/dist/cjs/selection/useSingle.js +63 -0
- package/dist/cjs/selection/useSingle.js.map +1 -0
- package/dist/{esm/types-deprecated.d.ts → cjs/types/deprecated.d.ts} +23 -22
- package/dist/cjs/{types-deprecated.js → types/deprecated.js} +12 -12
- package/dist/cjs/types/deprecated.js.map +1 -0
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/index.js +20 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/props.d.ts +376 -0
- package/dist/cjs/{types.js → types/props.js} +1 -1
- package/dist/cjs/types/props.js.map +1 -0
- package/dist/cjs/types/shared.d.ts +218 -0
- package/dist/cjs/types/shared.js +3 -0
- package/dist/cjs/types/shared.js.map +1 -0
- package/dist/cjs/utc.d.ts +3 -0
- package/dist/cjs/utc.js +14 -0
- package/dist/cjs/utc.js.map +1 -0
- package/dist/cjs/utils/addToRange.d.ts +2 -2
- package/dist/cjs/utils/addToRange.js +12 -13
- package/dist/cjs/utils/addToRange.js.map +1 -1
- package/dist/cjs/utils/dateMatchModifiers.d.ts +2 -2
- package/dist/cjs/utils/dateMatchModifiers.js +12 -14
- package/dist/cjs/utils/dateMatchModifiers.js.map +1 -1
- package/dist/cjs/utils/isDateInRange.d.ts +2 -2
- package/dist/cjs/utils/isDateInRange.js +8 -8
- package/dist/cjs/utils/isDateInRange.js.map +1 -1
- package/dist/cjs/utils/typeguards.d.ts +34 -1
- package/dist/cjs/utils/typeguards.js +43 -1
- package/dist/cjs/utils/typeguards.js.map +1 -1
- package/dist/esm/DayPicker.d.ts +4 -7
- package/dist/esm/DayPicker.js +3 -6
- package/dist/esm/DayPicker.js.map +1 -1
- package/dist/esm/UI.d.ts +25 -14
- package/dist/esm/UI.js +34 -22
- package/dist/esm/UI.js.map +1 -1
- package/dist/esm/classes/CalendarDay.d.ts +4 -1
- package/dist/esm/classes/CalendarDay.js +6 -6
- package/dist/esm/classes/CalendarDay.js.map +1 -1
- package/dist/esm/components/Button.d.ts +2 -2
- package/dist/esm/components/Button.js +1 -1
- package/dist/esm/components/Button.js.map +1 -1
- package/dist/esm/components/Calendar.d.ts +1 -1
- package/dist/esm/components/Calendar.js +5 -6
- package/dist/esm/components/Calendar.js.map +1 -1
- package/dist/esm/components/Chevron.d.ts +1 -1
- package/dist/esm/components/Chevron.js +4 -4
- package/dist/esm/components/Chevron.js.map +1 -1
- package/dist/esm/components/Day.d.ts +3 -3
- package/dist/esm/components/Day.js +1 -1
- package/dist/esm/components/DayDate.d.ts +13 -3
- package/dist/esm/components/DayDate.js +6 -1
- package/dist/esm/components/DayDate.js.map +1 -1
- package/dist/esm/components/DayWrapper.js +37 -21
- package/dist/esm/components/DayWrapper.js.map +1 -1
- package/dist/esm/components/Dropdown.d.ts +3 -4
- package/dist/esm/components/Dropdown.js +2 -2
- package/dist/esm/components/Dropdown.js.map +1 -1
- package/dist/esm/components/DropdownNav.d.ts +1 -1
- package/dist/esm/components/DropdownNav.js +5 -5
- package/dist/esm/components/DropdownNav.js.map +1 -1
- package/dist/esm/components/Footer.d.ts +2 -2
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/Footer.js.map +1 -1
- package/dist/esm/components/Month.d.ts +1 -1
- package/dist/esm/components/Month.js +4 -4
- package/dist/esm/components/Month.js.map +1 -1
- package/dist/esm/components/MonthCaption.d.ts +1 -1
- package/dist/esm/components/MonthCaption.js +4 -4
- package/dist/esm/components/MonthCaption.js.map +1 -1
- package/dist/esm/components/Months.d.ts +1 -1
- package/dist/esm/components/Months.js +1 -1
- package/dist/esm/components/MonthsDropdown.d.ts +1 -1
- package/dist/esm/components/MonthsDropdown.js +5 -8
- package/dist/esm/components/MonthsDropdown.js.map +1 -1
- package/dist/esm/components/Nav.d.ts +1 -1
- package/dist/esm/components/Nav.js +2 -3
- package/dist/esm/components/Nav.js.map +1 -1
- package/dist/esm/components/Option.d.ts +1 -1
- package/dist/esm/components/Option.js +1 -1
- package/dist/esm/components/Select.d.ts +1 -1
- package/dist/esm/components/Select.js +1 -1
- package/dist/esm/components/Week.d.ts +1 -1
- package/dist/esm/components/Week.js +3 -4
- package/dist/esm/components/Week.js.map +1 -1
- package/dist/esm/components/WeekNumber.d.ts +1 -1
- package/dist/esm/components/WeekNumber.js +4 -4
- package/dist/esm/components/WeekNumber.js.map +1 -1
- package/dist/esm/components/Weekday.d.ts +1 -1
- package/dist/esm/components/Weekday.js +7 -5
- package/dist/esm/components/Weekday.js.map +1 -1
- package/dist/esm/components/Weekdays.d.ts +1 -1
- package/dist/esm/components/Weekdays.js +4 -4
- package/dist/esm/components/Weekdays.js.map +1 -1
- package/dist/esm/components/YearsDropdown.d.ts +1 -1
- package/dist/esm/components/YearsDropdown.js +5 -8
- package/dist/esm/components/YearsDropdown.js.map +1 -1
- package/dist/esm/contexts/index.d.ts +4 -0
- package/dist/esm/contexts/index.js +5 -0
- package/dist/esm/contexts/index.js.map +1 -0
- package/dist/esm/contexts/providers.d.ts +9 -0
- package/dist/esm/contexts/providers.js +26 -0
- package/dist/esm/contexts/providers.js.map +1 -0
- package/dist/esm/contexts/{calendar.d.ts → useCalendar.d.ts} +20 -33
- package/dist/esm/contexts/{calendar.js → useCalendar.js} +45 -37
- package/dist/esm/contexts/useCalendar.js.map +1 -0
- package/dist/{cjs/contexts/focus.d.ts → esm/contexts/useFocus.d.ts} +23 -18
- package/dist/esm/contexts/{focus.js → useFocus.js} +40 -33
- package/dist/esm/contexts/useFocus.js.map +1 -0
- package/dist/esm/contexts/useModifiers.d.ts +24 -0
- package/dist/esm/contexts/useModifiers.js +159 -0
- package/dist/esm/contexts/useModifiers.js.map +1 -0
- package/dist/esm/contexts/useProps.d.ts +45 -0
- package/dist/esm/contexts/useProps.js +67 -0
- package/dist/esm/contexts/useProps.js.map +1 -0
- package/dist/esm/formatters/formatCaption.d.ts +4 -2
- package/dist/esm/formatters/formatCaption.js +4 -3
- package/dist/esm/formatters/formatCaption.js.map +1 -1
- package/dist/esm/formatters/formatDay.d.ts +3 -2
- package/dist/esm/formatters/formatDay.js +3 -3
- package/dist/esm/formatters/formatDay.js.map +1 -1
- package/dist/esm/formatters/formatMonthDropdown.d.ts +5 -2
- package/dist/esm/formatters/formatMonthDropdown.js +8 -3
- package/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/esm/formatters/formatWeekNumber.d.ts +1 -2
- package/dist/esm/formatters/formatWeekNumber.js +1 -3
- package/dist/esm/formatters/formatWeekNumber.js.map +1 -1
- package/dist/esm/formatters/formatWeekdayName.d.ts +3 -2
- package/dist/esm/formatters/formatWeekdayName.js +3 -3
- package/dist/esm/formatters/formatWeekdayName.js.map +1 -1
- package/dist/esm/formatters/formatYearDropdown.d.ts +1 -0
- package/dist/esm/formatters/formatYearDropdown.js +1 -0
- package/dist/esm/formatters/formatYearDropdown.js.map +1 -1
- package/dist/esm/helpers/debounce.js.map +1 -1
- package/dist/esm/helpers/getClassNamesForModifiers.d.ts +2 -2
- package/dist/esm/helpers/getClassNamesForModifiers.js +8 -5
- package/dist/esm/helpers/getClassNamesForModifiers.js.map +1 -1
- package/dist/esm/helpers/getDataAttributes.d.ts +2 -2
- package/dist/esm/helpers/getDataAttributes.js.map +1 -1
- package/dist/esm/helpers/getDates.d.ts +3 -14
- package/dist/esm/helpers/getDates.js +4 -23
- package/dist/esm/helpers/getDates.js.map +1 -1
- package/dist/esm/helpers/getDefaultClassNames.js +8 -4
- package/dist/esm/helpers/getDefaultClassNames.js.map +1 -1
- package/dist/esm/helpers/getDisplayMonths.d.ts +2 -5
- package/dist/esm/helpers/getDisplayMonths.js +4 -6
- package/dist/esm/helpers/getDisplayMonths.js.map +1 -1
- package/dist/esm/helpers/getDropdownMonths.d.ts +2 -5
- package/dist/esm/helpers/getDropdownMonths.js +10 -14
- package/dist/esm/helpers/getDropdownMonths.js.map +1 -1
- package/dist/esm/helpers/getDropdownYears.d.ts +2 -5
- package/dist/esm/helpers/getDropdownYears.js +10 -17
- package/dist/esm/helpers/getDropdownYears.js.map +1 -1
- package/dist/esm/helpers/getFormatters.d.ts +2 -2
- package/dist/esm/helpers/getFormatters.js.map +1 -1
- package/dist/esm/helpers/getInitialMonth.d.ts +3 -0
- package/dist/esm/helpers/{getStartMonth.js → getInitialMonth.js} +4 -6
- package/dist/esm/helpers/getInitialMonth.js.map +1 -0
- package/dist/esm/helpers/getMonths.d.ts +4 -2
- package/dist/esm/helpers/getMonths.js +17 -22
- package/dist/esm/helpers/getMonths.js.map +1 -1
- package/dist/esm/helpers/getNextFocus.d.ts +4 -5
- package/dist/esm/helpers/getNextFocus.js +5 -3
- package/dist/esm/helpers/getNextFocus.js.map +1 -1
- package/dist/esm/helpers/getNextMonth.d.ts +2 -8
- package/dist/esm/helpers/getNextMonth.js +7 -9
- package/dist/esm/helpers/getNextMonth.js.map +1 -1
- package/dist/esm/helpers/getPossibleFocusDate.d.ts +3 -3
- package/dist/esm/helpers/getPossibleFocusDate.js +1 -10
- package/dist/esm/helpers/getPossibleFocusDate.js.map +1 -1
- package/dist/esm/helpers/getPreviousMonth.d.ts +2 -8
- package/dist/esm/helpers/getPreviousMonth.js +6 -8
- package/dist/esm/helpers/getPreviousMonth.js.map +1 -1
- package/dist/esm/helpers/getStartEndMonths.d.ts +2 -2
- package/dist/esm/helpers/getStartEndMonths.js +5 -6
- package/dist/esm/helpers/getStartEndMonths.js.map +1 -1
- package/dist/esm/helpers/getStyleForModifiers.d.ts +2 -2
- package/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
- package/dist/esm/helpers/getWeekdays.d.ts +5 -4
- package/dist/esm/helpers/getWeekdays.js +5 -7
- package/dist/esm/helpers/getWeekdays.js.map +1 -1
- package/dist/esm/index.d.ts +4 -7
- package/dist/esm/index.js +4 -7
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jalali.d.ts +3 -0
- package/dist/esm/jalali.js +7 -0
- package/dist/esm/jalali.js.map +1 -0
- package/dist/esm/labels/labelCaption.d.ts +3 -2
- package/dist/esm/labels/labelCaption.js +2 -1
- package/dist/esm/labels/labelCaption.js.map +1 -1
- package/dist/esm/labels/labelDay.d.ts +4 -3
- package/dist/esm/labels/labelDay.js +2 -1
- package/dist/esm/labels/labelDay.js.map +1 -1
- package/dist/esm/labels/labelGrid.d.ts +3 -2
- package/dist/esm/labels/labelGrid.js +3 -3
- package/dist/esm/labels/labelGrid.js.map +1 -1
- package/dist/esm/labels/labelMonthDropdown.d.ts +2 -2
- package/dist/esm/labels/labelMonthDropdown.js.map +1 -1
- package/dist/esm/labels/labelNext.d.ts +2 -2
- package/dist/esm/labels/labelNext.js.map +1 -1
- package/dist/esm/labels/labelPrevious.d.ts +2 -2
- package/dist/esm/labels/labelPrevious.js.map +1 -1
- package/dist/esm/labels/labelWeekNumber.d.ts +2 -2
- package/dist/esm/labels/labelWeekNumber.js.map +1 -1
- package/dist/esm/labels/labelWeekNumberHeader.d.ts +2 -2
- package/dist/esm/labels/labelWeekNumberHeader.js.map +1 -1
- package/dist/esm/labels/labelWeekday.d.ts +3 -2
- package/dist/esm/labels/labelWeekday.js +3 -3
- package/dist/esm/labels/labelWeekday.js.map +1 -1
- package/dist/esm/labels/labelYearDropdown.d.ts +2 -2
- package/dist/esm/labels/labelYearDropdown.js.map +1 -1
- package/dist/esm/lib/dateLib.d.ts +70 -0
- package/dist/esm/lib/dateLib.js +64 -0
- package/dist/esm/lib/dateLib.js.map +1 -0
- package/dist/esm/lib/index.d.ts +1 -0
- package/dist/esm/lib/index.js +2 -0
- package/dist/esm/lib/index.js.map +1 -0
- package/dist/esm/lib/locales.d.ts +1 -0
- package/dist/esm/lib/locales.js +2 -0
- package/dist/esm/lib/locales.js.map +1 -0
- package/dist/esm/selection/index.d.ts +3 -0
- package/dist/esm/selection/index.js +4 -0
- package/dist/esm/selection/index.js.map +1 -0
- package/dist/esm/selection/useMulti.d.ts +25 -0
- package/dist/esm/selection/useMulti.js +78 -0
- package/dist/esm/selection/useMulti.js.map +1 -0
- package/dist/esm/selection/useRange.d.ts +25 -0
- package/dist/esm/selection/useRange.js +78 -0
- package/dist/esm/selection/useRange.js.map +1 -0
- package/dist/esm/selection/useSingle.d.ts +23 -0
- package/dist/esm/selection/useSingle.js +55 -0
- package/dist/esm/selection/useSingle.js.map +1 -0
- package/dist/{cjs/types-deprecated.d.ts → esm/types/deprecated.d.ts} +23 -22
- package/dist/esm/{types-deprecated.js → types/deprecated.js} +10 -10
- package/dist/esm/types/deprecated.js.map +1 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.js +4 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/types/props.d.ts +376 -0
- package/dist/esm/types/props.js +2 -0
- package/dist/esm/types/props.js.map +1 -0
- package/dist/esm/types/shared.d.ts +218 -0
- package/dist/esm/types/shared.js +2 -0
- package/dist/esm/types/shared.js.map +1 -0
- package/dist/esm/utc.d.ts +3 -0
- package/dist/esm/utc.js +7 -0
- package/dist/esm/utc.js.map +1 -0
- package/dist/esm/utils/addToRange.d.ts +2 -2
- package/dist/esm/utils/addToRange.js +5 -6
- package/dist/esm/utils/addToRange.js.map +1 -1
- package/dist/esm/utils/dateMatchModifiers.d.ts +2 -2
- package/dist/esm/utils/dateMatchModifiers.js +6 -8
- package/dist/esm/utils/dateMatchModifiers.js.map +1 -1
- package/dist/esm/utils/isDateInRange.d.ts +2 -2
- package/dist/esm/utils/isDateInRange.js +3 -3
- package/dist/esm/utils/isDateInRange.js.map +1 -1
- package/dist/esm/utils/typeguards.d.ts +34 -1
- package/dist/esm/utils/typeguards.js +39 -0
- package/dist/esm/utils/typeguards.js.map +1 -1
- package/examples/Controlled.test.tsx +4 -3
- package/examples/CssModules.tsx +1 -1
- package/examples/CustomCaption.tsx +5 -1
- package/examples/CustomDayDate.test.tsx +3 -2
- package/examples/CustomDayDate.tsx +5 -6
- package/examples/CustomMultiple.test.tsx +3 -1
- package/examples/CustomMultiple.tsx +5 -2
- package/examples/CustomSingle.test.tsx +6 -4
- package/examples/CustomSingle.tsx +2 -2
- package/examples/CustomWeek.test.tsx +6 -4
- package/examples/DefaultMonth.test.tsx +3 -1
- package/examples/Dialog.tsx +2 -2
- package/examples/Disabled.test.tsx +6 -4
- package/examples/Dropdown.test.tsx +3 -1
- package/examples/DropdownMultipleMonths.test.tsx +3 -1
- package/examples/FixedWeeks.test.tsx +3 -1
- package/examples/FocusRecursive.test.tsx +10 -9
- package/examples/Formatters.test.tsx +3 -1
- package/examples/FromToMonth.test.tsx +2 -2
- package/examples/FromToYear.test.tsx +5 -3
- package/examples/Input.test.tsx +9 -1
- package/examples/Jalali.test.tsx +16 -0
- package/examples/Jalali.tsx +8 -0
- package/examples/Keyboard.test.tsx +26 -24
- package/examples/Keyboard.tsx +6 -2
- package/examples/ModifiersClassnames.test.tsx +3 -1
- package/examples/ModifiersClassnames.tsx +3 -1
- package/examples/ModifiersDisabled.tsx +1 -1
- package/examples/ModifiersHidden.test.tsx +3 -1
- package/examples/ModifiersStyle.test.tsx +3 -1
- package/examples/ModifiersToday.test.tsx +3 -1
- package/examples/Multiple.test.tsx +11 -1
- package/examples/MultipleMinMax.test.tsx +3 -1
- package/examples/MultipleMinMax.tsx +2 -9
- package/examples/MultipleMonths.test.tsx +3 -1
- package/examples/MultipleMonthsId.test.tsx +3 -1
- package/examples/MultipleMonthsPaged.test.tsx +3 -1
- package/examples/None.tsx +1 -1
- package/examples/NumberingSystem.test.tsx +3 -1
- package/examples/OutsideDays.test.tsx +3 -1
- package/examples/Range.test.tsx +5 -5
- package/examples/Range.tsx +5 -5
- package/examples/RangeMinMax.test.tsx +55 -0
- package/examples/RangeMinMax.tsx +12 -9
- package/examples/RangeShiftKey.test.tsx +7 -5
- package/examples/RangeShiftKey.tsx +3 -3
- package/examples/Rtl.test.tsx +3 -1
- package/examples/Single.test.tsx +8 -3
- package/examples/Spanish.test.tsx +3 -1
- package/examples/Start.test.tsx +3 -1
- package/examples/StylingCss.test.tsx +3 -1
- package/examples/StylingCssModules.test.tsx +3 -1
- package/examples/StylingInline.test.tsx +3 -1
- package/examples/TestCase2047.tsx +1 -1
- package/examples/Testcase1567.tsx +2 -4
- package/examples/Utc.tsx +19 -0
- package/examples/Weeknumber.test.tsx +7 -4
- package/examples/__snapshots__/Range.test.tsx.snap +97 -97
- package/examples/__snapshots__/StylingCssModules.test.tsx.snap +33 -33
- package/examples/index.ts +2 -0
- package/package.json +36 -6
- package/src/DayPicker.tsx +5 -11
- package/src/UI.ts +26 -14
- package/src/classes/CalendarDay.ts +16 -6
- package/src/components/Button.tsx +2 -5
- package/src/components/Calendar.tsx +5 -6
- package/src/components/Chevron.tsx +4 -4
- package/src/components/Day.tsx +4 -4
- package/src/components/DayDate.tsx +14 -3
- package/src/components/DayWrapper.tsx +59 -44
- package/src/components/Dropdown.tsx +4 -6
- package/src/components/DropdownNav.tsx +21 -5
- package/src/components/Footer.tsx +2 -2
- package/src/components/Month.tsx +4 -4
- package/src/components/MonthCaption.tsx +7 -4
- package/src/components/Months.tsx +1 -1
- package/src/components/MonthsDropdown.tsx +5 -8
- package/src/components/Nav.tsx +3 -4
- package/src/components/Option.tsx +1 -1
- package/src/components/Select.tsx +1 -1
- package/src/components/Week.tsx +9 -5
- package/src/components/WeekNumber.tsx +4 -4
- package/src/components/Weekday.tsx +7 -4
- package/src/components/Weekdays.tsx +4 -3
- package/src/components/YearsDropdown.tsx +5 -8
- package/src/contexts/index.ts +4 -0
- package/src/contexts/providers.tsx +46 -0
- package/src/contexts/{calendar.test.tsx → useCalendar.test.ts} +1 -3
- package/src/contexts/{calendar.tsx → useCalendar.tsx} +75 -73
- package/src/contexts/{focus.test.tsx → useFocus.test.tsx} +2 -4
- package/src/contexts/{focus.tsx → useFocus.tsx} +73 -59
- package/src/contexts/useModifiers.tsx +221 -0
- package/src/contexts/useProps.tsx +128 -0
- package/src/formatters/formatCaption.test.ts +6 -2
- package/src/formatters/formatCaption.ts +6 -3
- package/src/formatters/formatDay.ts +9 -3
- package/src/formatters/formatMonthDropdown.test.ts +2 -5
- package/src/formatters/formatMonthDropdown.ts +12 -4
- package/src/formatters/formatWeekNumber.ts +1 -7
- package/src/formatters/formatWeekdayName.ts +6 -3
- package/src/formatters/formatYearDropdown.ts +1 -0
- package/src/helpers/debounce.ts +0 -2
- package/src/helpers/getClassNamesForModifiers.ts +8 -11
- package/src/helpers/getDataAttributes.tsx +4 -4
- package/src/helpers/getDates.test.ts +21 -10
- package/src/helpers/getDates.ts +19 -28
- package/src/helpers/getDefaultClassNames.ts +11 -5
- package/src/helpers/getDisplayMonths.test.ts +17 -10
- package/src/helpers/getDisplayMonths.ts +6 -11
- package/src/helpers/getDropdownMonths.test.ts +32 -63
- package/src/helpers/getDropdownMonths.ts +17 -27
- package/src/helpers/getDropdownYears.test.ts +36 -56
- package/src/helpers/getDropdownYears.ts +25 -23
- package/src/helpers/getFormatters.test.ts +9 -5
- package/src/helpers/getFormatters.ts +2 -2
- package/src/helpers/{getStartMonth.test.ts → getInitialMonth.test.ts} +35 -8
- package/src/helpers/{getStartMonth.ts → getInitialMonth.ts} +15 -19
- package/src/helpers/getMonths.test.ts +84 -87
- package/src/helpers/getMonths.ts +29 -26
- package/src/helpers/getNextFocus.test.tsx +15 -12
- package/src/helpers/getNextFocus.tsx +14 -10
- package/src/helpers/getNextMonth.test.ts +17 -6
- package/src/helpers/getNextMonth.ts +20 -17
- package/src/helpers/getPossibleFocusDate.test.ts +7 -6
- package/src/helpers/getPossibleFocusDate.ts +21 -17
- package/src/helpers/getPreviousMonth.test.ts +57 -63
- package/src/helpers/getPreviousMonth.ts +14 -15
- package/src/helpers/getStartEndMonths.ts +17 -11
- package/src/helpers/getStyleForModifiers.test.ts +6 -6
- package/src/helpers/getStyleForModifiers.ts +2 -2
- package/src/helpers/getWeekdays.test.ts +5 -9
- package/src/helpers/getWeekdays.ts +10 -10
- package/src/helpers/useControlledValue.test.ts +2 -2
- package/src/index.ts +7 -7
- package/src/jalali.tsx +9 -0
- package/src/labels/labelCaption.ts +5 -2
- package/src/labels/labelDay.test.ts +2 -2
- package/src/labels/labelDay.ts +7 -5
- package/src/labels/labelGrid.ts +10 -3
- package/src/labels/labelMonthDropdown.ts +2 -2
- package/src/labels/labelNext.ts +2 -2
- package/src/labels/labelPrevious.ts +2 -2
- package/src/labels/labelWeekNumber.ts +2 -2
- package/src/labels/labelWeekNumberHeader.ts +2 -2
- package/src/labels/labelWeekday.test.ts +1 -1
- package/src/labels/labelWeekday.ts +6 -3
- package/src/labels/labelYearDropdown.ts +2 -2
- package/src/lib/dateLib.ts +72 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/locales.ts +1 -0
- package/src/selection/index.ts +3 -0
- package/src/selection/useMulti.tsx +120 -0
- package/src/selection/useRange.tsx +125 -0
- package/src/selection/useSingle.tsx +96 -0
- package/src/style.css +11 -6
- package/src/style.module.css +10 -6
- package/src/{types-deprecated.ts → types/deprecated.ts} +27 -30
- package/src/types/index.ts +3 -0
- package/src/types/props.test.tsx +65 -0
- package/src/types/props.ts +439 -0
- package/src/types/shared.ts +291 -0
- package/src/utc.tsx +9 -0
- package/src/utils/addToRange.test.ts +3 -3
- package/src/utils/addToRange.ts +8 -9
- package/src/utils/dateMatchModifiers.test.ts +13 -12
- package/src/utils/dateMatchModifiers.ts +8 -10
- package/src/utils/isDateInRange.test.ts +1 -1
- package/src/utils/isDateInRange.ts +8 -5
- package/src/utils/typeguards.ts +56 -1
- package/website/README.md +0 -16
- package/website/docs/advanced-guides/custom-components.mdx +18 -15
- package/website/docs/advanced-guides/custom-modifiers.mdx +54 -69
- package/website/docs/changelog.mdx +0 -1
- package/website/docs/{intro.md → intro.mdx} +10 -9
- package/website/docs/upgrading.mdx +7 -7
- package/website/docs/using-daypicker/customization.mdx +14 -19
- package/website/docs/using-daypicker/localization.mdx +93 -0
- package/website/docs/using-daypicker/selection-modes.mdx +45 -36
- package/website/docs/using-daypicker/styling.mdx +16 -10
- package/dist/cjs/contexts/calendar.js +0 -126
- package/dist/cjs/contexts/calendar.js.map +0 -1
- package/dist/cjs/contexts/focus.js.map +0 -1
- package/dist/cjs/contexts/modifiers.d.ts +0 -31
- package/dist/cjs/contexts/modifiers.js +0 -152
- package/dist/cjs/contexts/modifiers.js.map +0 -1
- package/dist/cjs/contexts/props.d.ts +0 -51
- package/dist/cjs/contexts/props.js +0 -84
- package/dist/cjs/contexts/props.js.map +0 -1
- package/dist/cjs/contexts/root.d.ts +0 -8
- package/dist/cjs/contexts/root.js +0 -27
- package/dist/cjs/contexts/root.js.map +0 -1
- package/dist/cjs/contexts/selection.d.ts +0 -49
- package/dist/cjs/contexts/selection.js +0 -206
- package/dist/cjs/contexts/selection.js.map +0 -1
- package/dist/cjs/helpers/calculateMonthWeeks.d.ts +0 -9
- package/dist/cjs/helpers/calculateMonthWeeks.js +0 -36
- package/dist/cjs/helpers/calculateMonthWeeks.js.map +0 -1
- package/dist/cjs/helpers/getMonthWeeks.d.ts +0 -19
- package/dist/cjs/helpers/getMonthWeeks.js +0 -26
- package/dist/cjs/helpers/getMonthWeeks.js.map +0 -1
- package/dist/cjs/helpers/getStartMonth.d.ts +0 -3
- package/dist/cjs/helpers/getStartMonth.js +0 -23
- package/dist/cjs/helpers/getStartMonth.js.map +0 -1
- package/dist/cjs/types-deprecated.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -606
- package/dist/cjs/types.js.map +0 -1
- package/dist/esm/contexts/calendar.js.map +0 -1
- package/dist/esm/contexts/focus.js.map +0 -1
- package/dist/esm/contexts/modifiers.d.ts +0 -31
- package/dist/esm/contexts/modifiers.js +0 -124
- package/dist/esm/contexts/modifiers.js.map +0 -1
- package/dist/esm/contexts/props.d.ts +0 -51
- package/dist/esm/contexts/props.js +0 -56
- package/dist/esm/contexts/props.js.map +0 -1
- package/dist/esm/contexts/root.d.ts +0 -8
- package/dist/esm/contexts/root.js +0 -20
- package/dist/esm/contexts/root.js.map +0 -1
- package/dist/esm/contexts/selection.d.ts +0 -49
- package/dist/esm/contexts/selection.js +0 -178
- package/dist/esm/contexts/selection.js.map +0 -1
- package/dist/esm/helpers/calculateMonthWeeks.d.ts +0 -9
- package/dist/esm/helpers/calculateMonthWeeks.js +0 -32
- package/dist/esm/helpers/calculateMonthWeeks.js.map +0 -1
- package/dist/esm/helpers/getMonthWeeks.d.ts +0 -19
- package/dist/esm/helpers/getMonthWeeks.js +0 -22
- package/dist/esm/helpers/getMonthWeeks.js.map +0 -1
- package/dist/esm/helpers/getStartMonth.d.ts +0 -3
- package/dist/esm/helpers/getStartMonth.js.map +0 -1
- package/dist/esm/types-deprecated.js.map +0 -1
- package/dist/esm/types.d.ts +0 -606
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/src/contexts/modifiers.tsx +0 -177
- package/src/contexts/props.tsx +0 -129
- package/src/contexts/root.tsx +0 -33
- package/src/contexts/selection.tsx +0 -264
- package/src/helpers/calculateMonthWeeks.test.ts +0 -47
- package/src/helpers/calculateMonthWeeks.ts +0 -60
- package/src/helpers/getMonthWeeks.test.ts +0 -100
- package/src/helpers/getMonthWeeks.ts +0 -55
- package/src/types.test.tsx +0 -52
- package/src/types.ts +0 -699
|
@@ -13,7 +13,7 @@ Use the `components` prop to swap the components used to render DayPicker.
|
|
|
13
13
|
- Make sure you don't break [accessibility](../using-daypicker/accessibility.mdx) when customizing components.
|
|
14
14
|
- Custom components may not have a stable API yet and may break in a minor release.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
:::
|
|
17
17
|
|
|
18
18
|
## List of Custom Components
|
|
19
19
|
|
|
@@ -23,20 +23,20 @@ See the [Components API Reference](../api#components) for a list of components y
|
|
|
23
23
|
|
|
24
24
|
For example, if you need to customize the component displaying the date, replace the [`DayDate`](../api/functions//DayDate.md) component:
|
|
25
25
|
|
|
26
|
-
```tsx title="./
|
|
26
|
+
```tsx title="./MyDatePicker.tsx"
|
|
27
27
|
import { DayPicker, type DayDateProps } from "react-day-picker";
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
/** When the date is 19, will display an emoji. */
|
|
30
|
+
function HighlightDay(props: DayDateProps) {
|
|
30
31
|
return (
|
|
31
|
-
<span {...props.rootProps}>
|
|
32
|
-
{props.day.date.getDate() === 19
|
|
33
|
-
{props.formattedDate}
|
|
32
|
+
<span {...props.rootProps} style={{ whiteSpace: "nowrap" }}>
|
|
33
|
+
{props.day.date.getDate() === 19 ? `🎉` : props.formattedDate}
|
|
34
34
|
</span>
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export function MyDatePicker() {
|
|
39
|
-
return <DayPicker mode="single" components={{ DayDate:
|
|
39
|
+
return <DayPicker mode="single" components={{ DayDate: HighlightDay }} />;
|
|
40
40
|
}
|
|
41
41
|
```
|
|
42
42
|
|
|
@@ -70,12 +70,15 @@ export function MyDatePicker() {
|
|
|
70
70
|
|
|
71
71
|
When creating custom components, you will find useful the [DayPicker hooks](../api/index.md#hooks). These utilities provide access to the internal state and methods of the DayPicker component.
|
|
72
72
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
| [
|
|
76
|
-
| [
|
|
77
|
-
| [
|
|
78
|
-
| [
|
|
73
|
+
| Function | Description |
|
|
74
|
+
| :----------------------------------------------- | :------------------------------------------------------------------------ |
|
|
75
|
+
| [useCalendar](../api/functions/useCalendar.md) | Access to the props passed to `DayPicker`, with some meaningful defaults. |
|
|
76
|
+
| [useFocus](../api/functions/useFocus.md) | Share the focused day and the methods to move the focus. |
|
|
77
|
+
| [useModifiers](../api/functions/useModifiers.md) | - |
|
|
78
|
+
| [useMulti](../api/functions/useMulti.md) | Access to the multi context to get the selected dates or update them. |
|
|
79
|
+
| [useProps](../api/functions/useProps.md) | Access to the props passed to `DayPicker`, with some meaningful defaults. |
|
|
80
|
+
| [useRange](../api/functions/useRange.md) | Access to the range context to get the selected range or update it. |
|
|
81
|
+
| [useSingle](../api/functions/useSingle.md) | Access to the single context to get the selected date or update it. |
|
|
79
82
|
|
|
80
83
|
### Example: Range with Shift Key
|
|
81
84
|
|
|
@@ -88,11 +91,11 @@ import {
|
|
|
88
91
|
DateRange,
|
|
89
92
|
DayPicker,
|
|
90
93
|
type DayProps,
|
|
91
|
-
|
|
94
|
+
useRange
|
|
92
95
|
} from "react-day-picker";
|
|
93
96
|
|
|
94
97
|
function DayWithShiftKey(props: DayProps) {
|
|
95
|
-
const { selected } =
|
|
98
|
+
const { selected } = useRange();
|
|
96
99
|
const onClick = props.htmlAttributes?.onClick;
|
|
97
100
|
|
|
98
101
|
const handleClick: MouseEventHandler<HTMLElement> = (e) => {
|
|
@@ -4,29 +4,39 @@ sidebar_position: 3
|
|
|
4
4
|
|
|
5
5
|
# Custom Modifiers
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
In DayPicker, a **custom modifier** is added to a day when the day matches a specific condition, called [`Matcher`](../api/type-aliases/Matcher.md).
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Modifiers are set using the `modifiers` prop. When matching a date, modifiers are passed to the `onSelect` event and to other [DayEventHandler](../api/type-aliases/DayEventHandler.md) (`onDayClick` etc.) to inspect the days the user has interacted with.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
# Modifiers
|
|
14
|
-
|
|
15
|
-
In DayPicker, a **modifier** is added to a day when the day matches a specific condition, called [`Matcher`](../api/type-aliases/Matcher.md). For example, selected days have the `selected` modifiers, disabled days the `disabled` modifier, the today's date matches the `today` modifier, etc.
|
|
11
|
+
For example, you can use a custom modifier to mark days as already booked in a booking app.
|
|
16
12
|
|
|
17
13
|
```tsx
|
|
18
|
-
<DayPicker
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
<DayPicker
|
|
15
|
+
modifiers={{
|
|
16
|
+
booked: [
|
|
17
|
+
new Date(2022, 5, 8),
|
|
18
|
+
new Date(2022, 5, 9),
|
|
19
|
+
new Date(2022, 5, 10),
|
|
20
|
+
{ from: new Date(2022, 5, 15), to: new Date(2022, 5, 20) }
|
|
21
|
+
]
|
|
22
|
+
}}
|
|
23
|
+
onDayClick={(date, modifiers) => {
|
|
24
|
+
if (modifiers.booked) {
|
|
25
|
+
alert("This day is already booked.");
|
|
26
|
+
}
|
|
27
|
+
}}
|
|
28
|
+
/>
|
|
21
29
|
```
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
## Understanding Modifiers
|
|
24
32
|
|
|
25
33
|
- Use modifiers to change the appearance of the days in the calendar or to inspect the days the user has interacted with (e.g. picking a day)
|
|
26
|
-
- DayPicker comes with some [pre-built modifiers](../api/type-aliases/
|
|
34
|
+
- DayPicker comes with some [pre-built modifiers](../api/type-aliases/Modifiers.md), such as `disabled`, `selected`, `hidden`, `today`, `range_start`, etc. designed to cover the most common use cases.
|
|
27
35
|
- It is possible to implement custom modifiers, extending the behavior of DayPicker: see [Custom Modifiers](#custom-modifiers) below for more details.
|
|
28
36
|
|
|
29
|
-
##
|
|
37
|
+
## Built-in Modifiers
|
|
38
|
+
|
|
39
|
+
### `selected` Modifier
|
|
30
40
|
|
|
31
41
|
```tsx
|
|
32
42
|
<DayPicker selected={new Date()} />
|
|
@@ -34,20 +44,20 @@ In DayPicker, a **modifier** is added to a day when the day matches a specific c
|
|
|
34
44
|
|
|
35
45
|
When in selection mode, use the `selected` prop to add the `selected` modifier to the selected dates, and style them accordingly. To see how to implement the `selected` modifier, see the [Selecting days guide](../using-daypicker/selection-modes.mdx).
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
### `disabled` Modifier
|
|
38
48
|
|
|
39
49
|
Use the `disabled` modifier to disable one or more days. Pass a [`Matcher`](../api/type-aliases/Matcher.md) or an array of `Matchers` to choose the disabled days:
|
|
40
50
|
|
|
41
51
|
```tsx
|
|
42
52
|
// Disable Sundays and Saturdays
|
|
43
|
-
<DayPicker disabled={{ dayOfWeek: [0, 6] }} />
|
|
53
|
+
<DayPicker mode="range" disabled={{ dayOfWeek: [0, 6] }} />
|
|
44
54
|
```
|
|
45
55
|
|
|
46
56
|
<BrowserWindow>
|
|
47
57
|
<Examples.ModifiersDisabled />
|
|
48
58
|
</BrowserWindow>
|
|
49
59
|
|
|
50
|
-
|
|
60
|
+
### `hidden` Modifier
|
|
51
61
|
|
|
52
62
|
The `hidden` modifier removes the day from the calendar. Set the hidden days using the `hidden` prop.
|
|
53
63
|
|
|
@@ -65,23 +75,20 @@ const hiddenDays = [
|
|
|
65
75
|
<Examples.ModifiersHidden />
|
|
66
76
|
</BrowserWindow>
|
|
67
77
|
|
|
68
|
-
|
|
78
|
+
### `today` Modifier
|
|
69
79
|
|
|
70
|
-
The `today` modifier is added to the current date
|
|
80
|
+
The `today` modifier is a special modifier added to the current date. You can also change the current date using the `today` prop.
|
|
71
81
|
|
|
72
82
|
```tsx
|
|
73
|
-
function
|
|
74
|
-
const initialFooter = <p>Try clicking the today’s date.</p>;
|
|
75
|
-
const [footer, setFooter] = useState(initialFooter);
|
|
76
|
-
|
|
83
|
+
function Example() {
|
|
77
84
|
const handleDayClick: DayMouseEventHandler = (day, modifiers) => {
|
|
78
85
|
if (modifiers.today) {
|
|
79
|
-
|
|
80
|
-
} else {
|
|
81
|
-
setFooter(initialFooter);
|
|
86
|
+
alert("You clicked the today’s date.");
|
|
82
87
|
}
|
|
83
88
|
};
|
|
84
|
-
return
|
|
89
|
+
return (
|
|
90
|
+
<DayPicker onDayClick={handleDayClick} today={new Date(2019, 12, 22)} />
|
|
91
|
+
);
|
|
85
92
|
}
|
|
86
93
|
```
|
|
87
94
|
|
|
@@ -89,63 +96,41 @@ function ModifiersToday() {
|
|
|
89
96
|
<Examples.ModifiersToday />
|
|
90
97
|
</BrowserWindow>
|
|
91
98
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
You can change the current date using the `today` prop.
|
|
95
|
-
|
|
96
|
-
:::
|
|
97
|
-
|
|
98
|
-
## Custom Modifiers {#custom-modifiers}
|
|
99
|
-
|
|
100
|
-
Add new modifiers according to your app’s requirements. For example, a booking app may use a `booked` modifier to mark days as already booked.
|
|
99
|
+
## Styling Modifiers
|
|
101
100
|
|
|
102
|
-
|
|
101
|
+
A day can be styled according to its modifiers – using CSS or inline styles. See [Styling DayPicker](../using-daypicker/styling.mdx) for more details.
|
|
103
102
|
|
|
104
103
|
```tsx
|
|
105
104
|
const bookedDays = [
|
|
106
|
-
new Date(
|
|
107
|
-
new Date(
|
|
108
|
-
new Date(
|
|
109
|
-
{ from: new Date(2024, 5, 15), to: new Date(2024, 5, 20) }
|
|
105
|
+
new Date(2021, 5, 8),
|
|
106
|
+
new Date(2021, 5, 9),
|
|
107
|
+
new Date(2021, 5, 11)
|
|
110
108
|
];
|
|
111
|
-
export function
|
|
112
|
-
const handleDayClick: DayMouseEventHandler = (day, { booked }) => {
|
|
113
|
-
alert(`Day ${day.toLocaleDateString()} is booked? ` + booked);
|
|
114
|
-
};
|
|
115
|
-
|
|
109
|
+
export function ModifiersWithClassnames() {
|
|
116
110
|
return (
|
|
117
111
|
<DayPicker
|
|
118
|
-
defaultMonth={
|
|
119
|
-
modifiers={{
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
defaultMonth={bookedDays[0]}
|
|
113
|
+
modifiers={{
|
|
114
|
+
booked: bookedDays
|
|
115
|
+
}}
|
|
116
|
+
modifiersClassNames={{
|
|
117
|
+
booked: "my-booked-class"
|
|
118
|
+
}}
|
|
122
119
|
/>
|
|
123
120
|
);
|
|
124
121
|
}
|
|
125
122
|
```
|
|
126
123
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
position: absolute;
|
|
135
|
-
top: 50%;
|
|
136
|
-
left: 0;
|
|
137
|
-
right: 0;
|
|
138
|
-
height: 2px;
|
|
139
|
-
background: currentColor;
|
|
140
|
-
z-index: 1;
|
|
141
|
-
transform: rotate(-45deg);
|
|
124
|
+
Add the `my-booked-class` class to your CSS:
|
|
125
|
+
|
|
126
|
+
```postcss
|
|
127
|
+
.my-booked-class {
|
|
128
|
+
background-color: tomato;
|
|
129
|
+
color: white;
|
|
130
|
+
border-radius: 50%;
|
|
142
131
|
}
|
|
143
132
|
```
|
|
144
133
|
|
|
145
134
|
<BrowserWindow>
|
|
146
|
-
<Examples.
|
|
135
|
+
<Examples.ModifiersClassnames />
|
|
147
136
|
</BrowserWindow>
|
|
148
|
-
|
|
149
|
-
## Styling Modifiers
|
|
150
|
-
|
|
151
|
-
A day can be styled according to its modifiers – using CSS or inline styles. See [Styling DayPicker](../using-daypicker/styling.mdx) for more details.
|
|
@@ -5,29 +5,30 @@ sidebar_position: 1
|
|
|
5
5
|
slug: /
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# DayPicker
|
|
9
9
|
|
|
10
10
|
DayPicker is a [React](https://react.dev) component to create date pickers, calendars, and date inputs for web applications.
|
|
11
11
|
|
|
12
12
|
## Features
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
- Supports selection of
|
|
17
|
-
- Can be localized
|
|
18
|
-
- Complies with WCAG 2.1 AA requirements for accessibility.
|
|
19
|
-
-
|
|
14
|
+
- 🛠 An extensive set of props for [customizing](./using-daypicker/customization.mdx) the calendar.
|
|
15
|
+
- 🎨 Minimal design that can be [easily styled](./using-daypicker/styling.mdx) with CSS or any CSS framework.
|
|
16
|
+
- 📅 Supports [selections](./using-daypicker/selection-modes.mdx) of single day, multiple days, ranges of days, or [custom selections](./advanced-guides/custom-selections.mdx).
|
|
17
|
+
- 🌍 Can be [localized](./using-daypicker/localization.mdx) into any language, supports [ISO 8601 dates](./using-daypicker/localization.mdx#iso-week-dates), [UTC dates](./using-daypicker/localization.mdx#utc-dates), and [Jalali calendar](./using-daypicker/localization.mdx#jalali-calendar).
|
|
18
|
+
- ♿ Complies with WCAG 2.1 AA requirements for [accessibility](./using-daypicker/accessibility.mdx).
|
|
19
|
+
- ⚙️ [Customizable components](./advanced-guides/custom-components.mdx) for more complex use cases.
|
|
20
|
+
- 🔤 Unopinionated integration [with input fields](./advanced-guides/input-fields.mdx).
|
|
20
21
|
|
|
21
22
|
DayPicker is written in TypeScript and compiled to CommonJS and ESM. It requires [date-fns](https://date-fns.org) as a peer dependency.
|
|
22
23
|
|
|
23
24
|
## Example
|
|
24
25
|
|
|
25
|
-
```tsx
|
|
26
|
+
```tsx title="./MyDatePicker.jsx"
|
|
26
27
|
import { DayPicker } from "react-day-picker";
|
|
27
28
|
import "react-day-picker/style.css";
|
|
28
29
|
|
|
29
30
|
function MyDatePicker() {
|
|
30
|
-
const [selected, setSelected] = useState
|
|
31
|
+
const [selected, setSelected] = useState();
|
|
31
32
|
return <DayPicker mode="single" selected={selected} onSelect={setSelected} />;
|
|
32
33
|
}
|
|
33
34
|
```
|
|
@@ -91,7 +91,7 @@ Many typings have been deprecated in favor of clarity and shorter names. If you
|
|
|
91
91
|
|
|
92
92
|
```diff
|
|
93
93
|
- import type { DayPickerDefaultProps } from 'react-day-picker';
|
|
94
|
-
+ import type {
|
|
94
|
+
+ import type { PropsBase } from 'react-day-picker';
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
See also the source of [types-deprecated.ts](https://github.com/gpbl/react-day-picker/blob/next/src/types-deprecated.ts).
|
|
@@ -104,12 +104,12 @@ See also the source of [types-deprecated.ts](https://github.com/gpbl/react-day-p
|
|
|
104
104
|
| ~`DayPickerSingleProps`~ | This type has been renamed. Use [`PropsSingle`](./api/interfaces/PropsSingle.md) instead. |
|
|
105
105
|
| ~`DayPickerMultipleProps`~ | This type has been renamed. Use [`PropsMulti`](./api/interfaces/PropsMulti.md) instead. |
|
|
106
106
|
| ~`DayPickerRangeProps`~ | This type has been renamed. Use [`PropsRange`](./api/interfaces/PropsRange.md) instead. |
|
|
107
|
-
| ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`
|
|
107
|
+
| ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`PropsBase`](./api/interfaces/PropsBase.md) instead. |
|
|
108
108
|
| ~`DaySelectionMode`~ | This type has been renamed. Use [`Mode`](./api/type-aliases/Mode.md) instead. |
|
|
109
109
|
| ~`Modifier`~ | This type will be removed. Use `string` instead. |
|
|
110
|
-
| ~`SelectSingleEventHandler`~ | This type will be removed. Use [`
|
|
111
|
-
| ~`SelectMultipleEventHandler`~ | This type will be removed. Use [`
|
|
112
|
-
| ~`SelectRangeEventHandler`~ | This type will be removed. Use [`
|
|
110
|
+
| ~`SelectSingleEventHandler`~ | This type will be removed. Use [`PropsSingle["onSelect]`](./api/interfaces/PropsSingle.md) instead. |
|
|
111
|
+
| ~`SelectMultipleEventHandler`~ | This type will be removed. Use [`PropsMulti["onSelect]`](./api/interfaces/PropsMulti.md) instead. |
|
|
112
|
+
| ~`SelectRangeEventHandler`~ | This type will be removed. Use [`PropsRange["onSelect]`](./api/interfaces/PropsRange.md) instead. |
|
|
113
113
|
| ~`DayPickerProviderProps`~ | This type is not used anymore. |
|
|
114
114
|
| ~`useDayPicker`~ | This type has been renamed to [`useProps`](./api/functions/useProps.md). |
|
|
115
115
|
| ~`useNavigation`~ | This type has been renamed to [`useCalendar`](./api/functions/useCalendar.md). |
|
|
@@ -120,7 +120,7 @@ See also the source of [types-deprecated.ts](https://github.com/gpbl/react-day-p
|
|
|
120
120
|
| ~`WeekdayLabel`~ | Use `typeof labelWeekday` instead. |
|
|
121
121
|
| ~`WeekNumberLabel`~ | Use `typeof labelWeekNumber` instead. |
|
|
122
122
|
| ~`DayClickEventHandler`~ | Use `DayMouseEventHandler` instead. |
|
|
123
|
-
| ~`DayFocusEventHandler`~ | This type will be removed. Use `
|
|
123
|
+
| ~`DayFocusEventHandler`~ | This type will be removed. Use `DayEventHandler<React.FocusEvent \| React.KeyboardEvent>` instead. |
|
|
124
124
|
| ~`DayKeyboardEventHandler`~ | This type will be removed. Use `DayEventHandler<React.KeyboardEvent>` instead. |
|
|
125
125
|
| ~`DayMouseEventHandler`~ | This type will be removed. Use `DayEventHandler<React.MouseEvent>` instead. |
|
|
126
126
|
| ~`DayPointerEventHandler`~ | This type will be removed. Use `DayEventHandler<React.PointerEvent>` instead. |
|
|
@@ -128,4 +128,4 @@ See also the source of [types-deprecated.ts](https://github.com/gpbl/react-day-p
|
|
|
128
128
|
|
|
129
129
|
## Upgrade from v7 to v8
|
|
130
130
|
|
|
131
|
-
See the [migration guide](https://
|
|
131
|
+
See the [migration guide](https://daypicker.dev/upgrading) for the changes introduced in v8.
|
|
@@ -6,15 +6,19 @@ sidebar_position: 3
|
|
|
6
6
|
|
|
7
7
|
Use the customization props to customize the appearance of the calendar.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
### Customization Props Summary
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `footer` | `ReactNode`
|
|
11
|
+
See below for more details on each prop.
|
|
12
|
+
|
|
13
|
+
| Prop Name | Type | Description |
|
|
14
|
+
| ----------------- | ---------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
15
|
+
| `captionLayout` | \| `"label"`<br/> \| `"dropdown"`<br/> \| `"dropdown-months"`<br/> \| `"dropdown-years"` | Choose the layout of the month caption. Default is `label`. |
|
|
16
|
+
| `fixedWeeks` | `boolean` | Display 6 weeks per months. |
|
|
17
|
+
| `footer` | `ReactNode` | Displays a footer below the calendar. |
|
|
18
|
+
| `hideWeekdayRow` | `boolean` | Hide the row displaying the weekday names. |
|
|
19
|
+
| `numberOfMonths` | `number` | The number of displayed months. Default is `1`. |
|
|
20
|
+
| `showOutsideDays` | `boolean` | Display the days falling into the other months. |
|
|
21
|
+
| `showWeekNumber` | `boolean` | Display the column with the week numbers. |
|
|
18
22
|
|
|
19
23
|
## Caption Layouts
|
|
20
24
|
|
|
@@ -53,7 +57,7 @@ Without specifing the `from*` and `to*` properties, the dropdown will show the l
|
|
|
53
57
|
|
|
54
58
|
:::
|
|
55
59
|
|
|
56
|
-
|
|
60
|
+
## Outside Days
|
|
57
61
|
|
|
58
62
|
By default, DayPicker hides the days falling into the other months. Use `showOutsideDays` to display them.
|
|
59
63
|
|
|
@@ -65,7 +69,7 @@ By default, DayPicker hides the days falling into the other months. Use `showOut
|
|
|
65
69
|
<Examples.OutsideDays />
|
|
66
70
|
</BrowserWindow>
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
## Fixed Weeks
|
|
69
73
|
|
|
70
74
|
In a year, months can have between 4 an 6 weeks. Use `fixedWeeks` to always display 6 weeks per month. This will prevent the grid changing its height while navigating the calendar.
|
|
71
75
|
|
|
@@ -124,15 +128,6 @@ To display the column with the week numbers, use the `showWeekNumber` prop. Use
|
|
|
124
128
|
<Examples.Weeknumber />
|
|
125
129
|
</BrowserWindow>
|
|
126
130
|
|
|
127
|
-
## Formatters and Labels
|
|
128
|
-
|
|
129
|
-
Use the [formatters](./localization.mdx#formatters) and the [ARIA labels](./localization.mdx#aria-labels) to customize the format of the dates and the ARIA labels.
|
|
130
|
-
|
|
131
|
-
| Prop Name | Type | Description |
|
|
132
|
-
| ------------ | ------------------------------------------------- | ---------------------------------------------- |
|
|
133
|
-
| `formatters` | [`Formatters`](../api/type-aliases/Formatters.md) | Format of the dates displayed in the calendar. |
|
|
134
|
-
| `labels` | [`Labels`](../api/type-aliases/Labels.md) | Set the ARIA labels used in the calendar. |
|
|
135
|
-
|
|
136
131
|
## Footer
|
|
137
132
|
|
|
138
133
|
Use the `footer` prop to display a footer below the calendar.
|
|
@@ -75,6 +75,57 @@ Use `ISOWeek` to switch using [ISO Week Dates](https://en.wikipedia.org/wiki/ISO
|
|
|
75
75
|
<Examples.WeeknumberIso />
|
|
76
76
|
</BrowserWindow>
|
|
77
77
|
|
|
78
|
+
## UTC Dates
|
|
79
|
+
|
|
80
|
+
DayPicker uses the local time zone by default. To switch to UTC dates, add [@date-fns/utc](https://www.npmjs.com/package/@date-fns/utc) to your dependencies and import `DayPicker` from `react-day-picker/utc` instead.
|
|
81
|
+
|
|
82
|
+
:::note Experimental feature
|
|
83
|
+
|
|
84
|
+
The UTC mode is an experimental feature. [Please report](https://github.com/gpbl/react-day-picker/issues) any issues you may encounter, thanks!
|
|
85
|
+
|
|
86
|
+
:::
|
|
87
|
+
|
|
88
|
+
#### 1. Install the `@date-fns/utc` package
|
|
89
|
+
|
|
90
|
+
```bash npm2yarn
|
|
91
|
+
npm install @date-fns/utc
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### 2. Import `DayPicker` from `react-day-picker/utc`
|
|
95
|
+
|
|
96
|
+
```diff
|
|
97
|
+
- import { DayPicker } from 'react-day-picker';
|
|
98
|
+
+ import { DayPicker } from 'react-day-picker/utc';
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
#### 3. Use DayPicker as usual
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
import { UTCDate } from "@date-fns/utc";
|
|
105
|
+
import { DayPicker } from "react-day-picker/utc";
|
|
106
|
+
|
|
107
|
+
export function Utc() {
|
|
108
|
+
const [selected, setSelected] = React.useState<Date>(new UTCDate());
|
|
109
|
+
return (
|
|
110
|
+
<DayPicker
|
|
111
|
+
mode="single"
|
|
112
|
+
required
|
|
113
|
+
selected={selected}
|
|
114
|
+
onSelect={(date: Date) => {
|
|
115
|
+
setSelected(date);
|
|
116
|
+
}}
|
|
117
|
+
footer={selected ? `Selected: ${selected.toUTCString()}` : null}
|
|
118
|
+
/>
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Observe how dates are always GMT.
|
|
124
|
+
|
|
125
|
+
<BrowserWindow>
|
|
126
|
+
<Examples.Utc />
|
|
127
|
+
</BrowserWindow>
|
|
128
|
+
|
|
78
129
|
## Translate DayPicker
|
|
79
130
|
|
|
80
131
|
These props will assist in translating the labels and formatters utilized in DayPicker.
|
|
@@ -185,3 +236,45 @@ export function NumberingSystemExample() {
|
|
|
185
236
|
<BrowserWindow>
|
|
186
237
|
<Examples.NumberingSystem />
|
|
187
238
|
</BrowserWindow>
|
|
239
|
+
|
|
240
|
+
## Jalali Calendar
|
|
241
|
+
|
|
242
|
+
DayPicker supports the Jalali calendar thanks to the [date-fns-jalali](https://www.npmjs.com/package/date-fns-jalali) package. To switch to the Jalali calendar, add `date-fns-jalali` to your dependencies and import `DayPicker` from `react-day-picker/jalali` instead.
|
|
243
|
+
|
|
244
|
+
:::note Experimental feature
|
|
245
|
+
|
|
246
|
+
The support for the Jalali calendar is an experimental feature. [Please report](https://github.com/gpbl/react-day-picker/issues) any issues you may encounter, thanks!
|
|
247
|
+
|
|
248
|
+
:::
|
|
249
|
+
|
|
250
|
+
#### 1. Install the `date-fns-jalali` package
|
|
251
|
+
|
|
252
|
+
```bash npm2yarn
|
|
253
|
+
npm install date-fns-jalali
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
#### 2. Import `DayPicker` from `react-day-picker/jalali`
|
|
257
|
+
|
|
258
|
+
```diff
|
|
259
|
+
- import { DayPicker } from 'react-day-picker';
|
|
260
|
+
+ import { DayPicker } from 'react-day-picker/jalali';
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
#### 3. Use DayPicker as usual
|
|
264
|
+
|
|
265
|
+
Note that you can set the right-to-left direction and change the locale.
|
|
266
|
+
|
|
267
|
+
```tsx title="./JalaliCalendar.jsx"
|
|
268
|
+
import React from "react";
|
|
269
|
+
|
|
270
|
+
import { faIR } from "date-fns/locale";
|
|
271
|
+
import { DayPicker } from "react-day-picker/jalali";
|
|
272
|
+
|
|
273
|
+
export function Jalali() {
|
|
274
|
+
return <DayPicker mode="single" locale={faIR} dir="rtl" />;
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
<BrowserWindow>
|
|
279
|
+
<Examples.Jalali />
|
|
280
|
+
</BrowserWindow>
|