react-day-picker 9.6.7 → 9.7.0
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 +9 -1
- package/dist/cjs/DayPicker.d.ts +4 -2
- package/dist/cjs/DayPicker.js +59 -8
- package/dist/cjs/DayPicker.js.map +1 -1
- package/dist/cjs/UI.d.ts +11 -23
- package/dist/cjs/UI.js +6 -8
- package/dist/cjs/UI.js.map +1 -1
- package/dist/cjs/classes/CalendarDay.d.ts +17 -14
- package/dist/cjs/classes/CalendarDay.js +9 -6
- package/dist/cjs/classes/CalendarDay.js.map +1 -1
- package/dist/cjs/classes/CalendarMonth.d.ts +8 -3
- package/dist/cjs/classes/CalendarMonth.js +6 -1
- package/dist/cjs/classes/CalendarMonth.js.map +1 -1
- package/dist/cjs/classes/CalendarWeek.d.ts +6 -2
- package/dist/cjs/classes/CalendarWeek.js +5 -1
- package/dist/cjs/classes/CalendarWeek.js.map +1 -1
- package/dist/cjs/classes/DateLib.d.ts +53 -52
- package/dist/cjs/classes/DateLib.js +26 -22
- package/dist/cjs/classes/DateLib.js.map +1 -1
- package/dist/cjs/components/Day.d.ts +4 -4
- package/dist/cjs/components/Day.js +4 -4
- package/dist/cjs/components/DayButton.d.ts +2 -2
- package/dist/cjs/components/DayButton.js +1 -1
- package/dist/cjs/components/Dropdown.d.ts +4 -6
- package/dist/cjs/components/Dropdown.js +1 -1
- package/dist/cjs/components/Dropdown.js.map +1 -1
- package/dist/cjs/components/DropdownNav.d.ts +1 -1
- package/dist/cjs/components/DropdownNav.js +1 -1
- package/dist/cjs/components/Footer.d.ts +1 -1
- package/dist/cjs/components/Footer.js +1 -1
- package/dist/cjs/components/Month.d.ts +3 -3
- package/dist/cjs/components/Month.js +1 -1
- package/dist/cjs/components/MonthCaption.d.ts +3 -3
- package/dist/cjs/components/MonthCaption.js +1 -1
- package/dist/cjs/components/MonthGrid.d.ts +1 -1
- package/dist/cjs/components/MonthGrid.js +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 +1 -1
- package/dist/cjs/components/Nav.d.ts +5 -1
- package/dist/cjs/components/Nav.js +1 -1
- package/dist/cjs/components/Nav.js.map +1 -1
- package/dist/cjs/components/NextMonthButton.d.ts +1 -1
- package/dist/cjs/components/NextMonthButton.js +1 -1
- package/dist/cjs/components/Option.d.ts +1 -1
- package/dist/cjs/components/Option.js +1 -1
- package/dist/cjs/components/PreviousMonthButton.d.ts +1 -1
- package/dist/cjs/components/PreviousMonthButton.js +1 -1
- package/dist/cjs/components/Root.d.ts +2 -2
- package/dist/cjs/components/Root.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 +2 -1
- package/dist/cjs/components/Week.js +1 -1
- package/dist/cjs/components/Week.js.map +1 -1
- package/dist/cjs/components/WeekNumber.d.ts +2 -2
- package/dist/cjs/components/WeekNumber.js +1 -1
- package/dist/cjs/components/WeekNumberHeader.d.ts +1 -1
- package/dist/cjs/components/WeekNumberHeader.js +1 -1
- package/dist/cjs/components/Weekday.d.ts +1 -1
- package/dist/cjs/components/Weekday.js +1 -1
- package/dist/cjs/components/Weekdays.d.ts +1 -1
- package/dist/cjs/components/Weekdays.js +1 -1
- package/dist/cjs/components/Weeks.d.ts +1 -1
- package/dist/cjs/components/Weeks.js +1 -1
- package/dist/cjs/components/YearsDropdown.d.ts +1 -1
- package/dist/cjs/components/YearsDropdown.js +1 -1
- package/dist/cjs/formatters/formatCaption.d.ts +7 -2
- package/dist/cjs/formatters/formatCaption.js +7 -2
- package/dist/cjs/formatters/formatCaption.js.map +1 -1
- package/dist/cjs/formatters/formatDay.d.ts +7 -2
- package/dist/cjs/formatters/formatDay.js +7 -2
- package/dist/cjs/formatters/formatDay.js.map +1 -1
- package/dist/cjs/formatters/formatMonthDropdown.d.ts +6 -2
- package/dist/cjs/formatters/formatMonthDropdown.js +6 -2
- package/dist/cjs/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/cjs/formatters/formatWeekNumber.d.ts +7 -3
- package/dist/cjs/formatters/formatWeekNumber.js +10 -5
- package/dist/cjs/formatters/formatWeekNumber.js.map +1 -1
- package/dist/cjs/formatters/formatWeekNumberHeader.d.ts +3 -2
- package/dist/cjs/formatters/formatWeekNumberHeader.js +3 -2
- package/dist/cjs/formatters/formatWeekNumberHeader.js.map +1 -1
- package/dist/cjs/formatters/formatWeekdayName.d.ts +7 -2
- package/dist/cjs/formatters/formatWeekdayName.js +7 -2
- package/dist/cjs/formatters/formatWeekdayName.js.map +1 -1
- package/dist/cjs/formatters/formatYearDropdown.d.ts +5 -1
- package/dist/cjs/formatters/formatYearDropdown.js +5 -1
- package/dist/cjs/formatters/formatYearDropdown.js.map +1 -1
- package/dist/cjs/helpers/calculateFocusTarget.d.ts +14 -0
- package/dist/cjs/helpers/calculateFocusTarget.js +24 -1
- package/dist/cjs/helpers/calculateFocusTarget.js.map +1 -1
- package/dist/cjs/helpers/createGetModifiers.d.ts +16 -0
- package/dist/cjs/{useGetModifiers.js → helpers/createGetModifiers.js} +13 -7
- package/dist/cjs/helpers/createGetModifiers.js.map +1 -0
- package/dist/cjs/helpers/endOfBroadcastWeek.d.ts +7 -1
- package/dist/cjs/helpers/endOfBroadcastWeek.js +7 -1
- package/dist/cjs/helpers/endOfBroadcastWeek.js.map +1 -1
- package/dist/cjs/helpers/getBroadcastWeeksInMonth.d.ts +8 -1
- package/dist/cjs/helpers/getBroadcastWeeksInMonth.js +8 -1
- package/dist/cjs/helpers/getBroadcastWeeksInMonth.js.map +1 -1
- package/dist/cjs/helpers/getClassNamesForModifiers.d.ts +12 -0
- package/dist/cjs/helpers/getClassNamesForModifiers.js +12 -0
- package/dist/cjs/helpers/getClassNamesForModifiers.js.map +1 -1
- package/dist/cjs/helpers/getComponents.d.ts +10 -0
- package/dist/cjs/helpers/getComponents.js +10 -0
- package/dist/cjs/helpers/getComponents.js.map +1 -1
- package/dist/cjs/helpers/getDataAttributes.d.ts +9 -1
- package/dist/cjs/helpers/getDataAttributes.js +11 -2
- package/dist/cjs/helpers/getDataAttributes.js.map +1 -1
- package/dist/cjs/helpers/getDates.d.ts +12 -1
- package/dist/cjs/helpers/getDates.js +13 -2
- package/dist/cjs/helpers/getDates.js.map +1 -1
- package/dist/cjs/helpers/getDays.d.ts +4 -0
- package/dist/cjs/helpers/getDays.js +4 -1
- package/dist/cjs/helpers/getDays.js.map +1 -1
- package/dist/cjs/helpers/getDefaultClassNames.d.ts +5 -1
- package/dist/cjs/helpers/getDefaultClassNames.js +5 -1
- package/dist/cjs/helpers/getDefaultClassNames.js.map +1 -1
- package/dist/cjs/helpers/getDisplayMonths.d.ts +10 -0
- package/dist/cjs/helpers/getDisplayMonths.js +10 -0
- package/dist/cjs/helpers/getDisplayMonths.js.map +1 -1
- package/dist/cjs/helpers/getFocusableDate.d.ts +16 -1
- package/dist/cjs/helpers/getFocusableDate.js +17 -2
- package/dist/cjs/helpers/getFocusableDate.js.map +1 -1
- package/dist/cjs/helpers/getFormatters.d.ts +7 -1
- package/dist/cjs/helpers/getFormatters.js +7 -1
- package/dist/cjs/helpers/getFormatters.js.map +1 -1
- package/dist/cjs/helpers/getInitialMonth.d.ts +11 -1
- package/dist/cjs/helpers/getInitialMonth.js +14 -7
- package/dist/cjs/helpers/getInitialMonth.js.map +1 -1
- package/dist/cjs/helpers/getLabels.d.ts +6 -1
- package/dist/cjs/helpers/getLabels.js +6 -1
- package/dist/cjs/helpers/getLabels.js.map +1 -1
- package/dist/cjs/helpers/getMonthOptions.d.ts +15 -1
- package/dist/cjs/helpers/getMonthOptions.js +15 -1
- package/dist/cjs/helpers/getMonthOptions.js.map +1 -1
- package/dist/cjs/helpers/getMonths.d.ts +15 -8
- package/dist/cjs/helpers/getMonths.js +16 -9
- package/dist/cjs/helpers/getMonths.js.map +1 -1
- package/dist/cjs/helpers/getNavMonth.d.ts +7 -1
- package/dist/cjs/helpers/getNavMonth.js +7 -1
- package/dist/cjs/helpers/getNavMonth.js.map +1 -1
- package/dist/cjs/helpers/getNextFocus.d.ts +18 -3
- package/dist/cjs/helpers/getNextFocus.js +19 -5
- package/dist/cjs/helpers/getNextFocus.js.map +1 -1
- package/dist/cjs/helpers/getNextMonth.d.ts +13 -5
- package/dist/cjs/helpers/getNextMonth.js +13 -6
- package/dist/cjs/helpers/getNextMonth.js.map +1 -1
- package/dist/cjs/helpers/getPreviousMonth.d.ts +13 -5
- package/dist/cjs/helpers/getPreviousMonth.js +13 -5
- package/dist/cjs/helpers/getPreviousMonth.js.map +1 -1
- package/dist/cjs/helpers/getStyleForModifiers.d.ts +11 -0
- package/dist/cjs/helpers/getStyleForModifiers.js +11 -0
- package/dist/cjs/helpers/getStyleForModifiers.js.map +1 -1
- package/dist/cjs/helpers/getWeekdays.d.ts +9 -9
- package/dist/cjs/helpers/getWeekdays.js +9 -9
- package/dist/cjs/helpers/getWeekdays.js.map +1 -1
- package/dist/cjs/helpers/getWeeks.d.ts +6 -1
- package/dist/cjs/helpers/getWeeks.js +6 -1
- package/dist/cjs/helpers/getWeeks.js.map +1 -1
- package/dist/cjs/helpers/getYearOptions.d.ts +13 -1
- package/dist/cjs/helpers/getYearOptions.js +13 -1
- package/dist/cjs/helpers/getYearOptions.js.map +1 -1
- package/dist/cjs/helpers/startOfBroadcastWeek.d.ts +8 -1
- package/dist/cjs/helpers/startOfBroadcastWeek.js +8 -1
- package/dist/cjs/helpers/startOfBroadcastWeek.js.map +1 -1
- package/dist/cjs/helpers/useControlledValue.d.ts +10 -6
- package/dist/cjs/helpers/useControlledValue.js +10 -6
- package/dist/cjs/helpers/useControlledValue.js.map +1 -1
- package/dist/cjs/labels/labelDayButton.d.ts +9 -6
- package/dist/cjs/labels/labelDayButton.js +9 -6
- package/dist/cjs/labels/labelDayButton.js.map +1 -1
- package/dist/cjs/labels/labelGrid.d.ts +7 -3
- package/dist/cjs/labels/labelGrid.js +7 -3
- package/dist/cjs/labels/labelGrid.js.map +1 -1
- package/dist/cjs/labels/labelGridcell.d.ts +7 -4
- package/dist/cjs/labels/labelGridcell.js +7 -4
- package/dist/cjs/labels/labelGridcell.js.map +1 -1
- package/dist/cjs/labels/labelMonthDropdown.d.ts +3 -1
- package/dist/cjs/labels/labelMonthDropdown.js +3 -1
- package/dist/cjs/labels/labelMonthDropdown.js.map +1 -1
- package/dist/cjs/labels/labelNav.d.ts +2 -1
- package/dist/cjs/labels/labelNav.js +2 -1
- package/dist/cjs/labels/labelNav.js.map +1 -1
- package/dist/cjs/labels/labelNext.d.ts +5 -4
- package/dist/cjs/labels/labelNext.js +5 -4
- package/dist/cjs/labels/labelNext.js.map +1 -1
- package/dist/cjs/labels/labelPrevious.d.ts +5 -4
- package/dist/cjs/labels/labelPrevious.js +5 -4
- package/dist/cjs/labels/labelPrevious.js.map +1 -1
- package/dist/cjs/labels/labelWeekNumber.d.ts +4 -1
- package/dist/cjs/labels/labelWeekNumber.js +4 -1
- package/dist/cjs/labels/labelWeekNumber.js.map +1 -1
- package/dist/cjs/labels/labelWeekNumberHeader.d.ts +3 -1
- package/dist/cjs/labels/labelWeekNumberHeader.js +3 -1
- package/dist/cjs/labels/labelWeekNumberHeader.js.map +1 -1
- package/dist/cjs/labels/labelWeekday.d.ts +5 -1
- package/dist/cjs/labels/labelWeekday.js +5 -1
- package/dist/cjs/labels/labelWeekday.js.map +1 -1
- package/dist/cjs/labels/labelYearDropdown.d.ts +3 -1
- package/dist/cjs/labels/labelYearDropdown.js +3 -1
- package/dist/cjs/labels/labelYearDropdown.js.map +1 -1
- package/dist/cjs/persian.d.ts +15 -2
- package/dist/cjs/persian.js +15 -2
- package/dist/cjs/persian.js.map +1 -1
- package/dist/cjs/selection/useMulti.d.ts +9 -0
- package/dist/cjs/selection/useMulti.js +9 -0
- package/dist/cjs/selection/useMulti.js.map +1 -1
- package/dist/cjs/selection/useRange.d.ts +9 -0
- package/dist/cjs/selection/useRange.js +9 -0
- package/dist/cjs/selection/useRange.js.map +1 -1
- package/dist/cjs/selection/useSingle.d.ts +9 -0
- package/dist/cjs/selection/useSingle.js +9 -0
- package/dist/cjs/selection/useSingle.js.map +1 -1
- package/dist/cjs/types/deprecated.d.ts +8 -8
- package/dist/cjs/types/deprecated.js +1 -1
- package/dist/cjs/types/props.d.ts +57 -13
- package/dist/cjs/types/selection.d.ts +25 -0
- package/dist/cjs/types/shared.d.ts +29 -78
- package/dist/cjs/useAnimation.d.ts +11 -1
- package/dist/cjs/useAnimation.js +11 -1
- package/dist/cjs/useAnimation.js.map +1 -1
- package/dist/cjs/useCalendar.d.ts +9 -1
- package/dist/cjs/useCalendar.js +9 -1
- package/dist/cjs/useCalendar.js.map +1 -1
- package/dist/cjs/useDayPicker.d.ts +4 -6
- package/dist/cjs/useDayPicker.js +4 -6
- package/dist/cjs/useDayPicker.js.map +1 -1
- package/dist/cjs/useFocus.d.ts +14 -1
- package/dist/cjs/useFocus.js +14 -1
- package/dist/cjs/useFocus.js.map +1 -1
- package/dist/cjs/useSelection.d.ts +10 -0
- package/dist/cjs/useSelection.js +10 -0
- package/dist/cjs/useSelection.js.map +1 -1
- package/dist/cjs/utc.d.ts +6 -0
- package/dist/cjs/utc.js +6 -0
- package/dist/cjs/utc.js.map +1 -1
- package/dist/cjs/utils/addToRange.d.ts +10 -11
- package/dist/cjs/utils/addToRange.js +10 -11
- package/dist/cjs/utils/addToRange.js.map +1 -1
- package/dist/cjs/utils/dateMatchModifiers.d.ts +5 -15
- package/dist/cjs/utils/dateMatchModifiers.js +5 -15
- package/dist/cjs/utils/dateMatchModifiers.js.map +1 -1
- package/dist/cjs/utils/rangeContainsDayOfWeek.d.ts +7 -9
- package/dist/cjs/utils/rangeContainsDayOfWeek.js +7 -9
- package/dist/cjs/utils/rangeContainsDayOfWeek.js.map +1 -1
- package/dist/cjs/utils/rangeContainsModifiers.d.ts +5 -14
- package/dist/cjs/utils/rangeContainsModifiers.js +5 -14
- package/dist/cjs/utils/rangeContainsModifiers.js.map +1 -1
- package/dist/cjs/utils/rangeIncludesDate.d.ts +7 -4
- package/dist/cjs/utils/rangeIncludesDate.js +7 -4
- package/dist/cjs/utils/rangeIncludesDate.js.map +1 -1
- package/dist/cjs/utils/rangeOverlaps.d.ts +5 -1
- package/dist/cjs/utils/rangeOverlaps.js +5 -1
- package/dist/cjs/utils/rangeOverlaps.js.map +1 -1
- package/dist/cjs/utils/typeguards.d.ts +19 -6
- package/dist/cjs/utils/typeguards.js +19 -6
- package/dist/cjs/utils/typeguards.js.map +1 -1
- package/dist/esm/DayPicker.d.ts +4 -2
- package/dist/esm/DayPicker.js +59 -8
- package/dist/esm/DayPicker.js.map +1 -1
- package/dist/esm/UI.d.ts +11 -23
- package/dist/esm/UI.js +6 -8
- package/dist/esm/UI.js.map +1 -1
- package/dist/esm/classes/CalendarDay.d.ts +17 -14
- package/dist/esm/classes/CalendarDay.js +9 -6
- package/dist/esm/classes/CalendarDay.js.map +1 -1
- package/dist/esm/classes/CalendarMonth.d.ts +8 -3
- package/dist/esm/classes/CalendarMonth.js +6 -1
- package/dist/esm/classes/CalendarMonth.js.map +1 -1
- package/dist/esm/classes/CalendarWeek.d.ts +6 -2
- package/dist/esm/classes/CalendarWeek.js +5 -1
- package/dist/esm/classes/CalendarWeek.js.map +1 -1
- package/dist/esm/classes/DateLib.d.ts +53 -52
- package/dist/esm/classes/DateLib.js +26 -22
- package/dist/esm/classes/DateLib.js.map +1 -1
- package/dist/esm/components/Day.d.ts +4 -4
- package/dist/esm/components/Day.js +4 -4
- package/dist/esm/components/DayButton.d.ts +2 -2
- package/dist/esm/components/DayButton.js +1 -1
- package/dist/esm/components/Dropdown.d.ts +4 -6
- package/dist/esm/components/Dropdown.js +1 -1
- package/dist/esm/components/Dropdown.js.map +1 -1
- package/dist/esm/components/DropdownNav.d.ts +1 -1
- package/dist/esm/components/DropdownNav.js +1 -1
- package/dist/esm/components/Footer.d.ts +1 -1
- package/dist/esm/components/Footer.js +1 -1
- package/dist/esm/components/Month.d.ts +3 -3
- package/dist/esm/components/Month.js +1 -1
- package/dist/esm/components/MonthCaption.d.ts +3 -3
- package/dist/esm/components/MonthCaption.js +1 -1
- package/dist/esm/components/MonthGrid.d.ts +1 -1
- package/dist/esm/components/MonthGrid.js +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 +1 -1
- package/dist/esm/components/Nav.d.ts +5 -1
- package/dist/esm/components/Nav.js +1 -1
- package/dist/esm/components/Nav.js.map +1 -1
- package/dist/esm/components/NextMonthButton.d.ts +1 -1
- package/dist/esm/components/NextMonthButton.js +1 -1
- package/dist/esm/components/Option.d.ts +1 -1
- package/dist/esm/components/Option.js +1 -1
- package/dist/esm/components/PreviousMonthButton.d.ts +1 -1
- package/dist/esm/components/PreviousMonthButton.js +1 -1
- package/dist/esm/components/Root.d.ts +2 -2
- package/dist/esm/components/Root.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 +2 -1
- package/dist/esm/components/Week.js +1 -1
- package/dist/esm/components/Week.js.map +1 -1
- package/dist/esm/components/WeekNumber.d.ts +2 -2
- package/dist/esm/components/WeekNumber.js +1 -1
- package/dist/esm/components/WeekNumberHeader.d.ts +1 -1
- package/dist/esm/components/WeekNumberHeader.js +1 -1
- package/dist/esm/components/Weekday.d.ts +1 -1
- package/dist/esm/components/Weekday.js +1 -1
- package/dist/esm/components/Weekdays.d.ts +1 -1
- package/dist/esm/components/Weekdays.js +1 -1
- package/dist/esm/components/Weeks.d.ts +1 -1
- package/dist/esm/components/Weeks.js +1 -1
- package/dist/esm/components/YearsDropdown.d.ts +1 -1
- package/dist/esm/components/YearsDropdown.js +1 -1
- package/dist/esm/formatters/formatCaption.d.ts +7 -2
- package/dist/esm/formatters/formatCaption.js +7 -2
- package/dist/esm/formatters/formatCaption.js.map +1 -1
- package/dist/esm/formatters/formatDay.d.ts +7 -2
- package/dist/esm/formatters/formatDay.js +7 -2
- package/dist/esm/formatters/formatDay.js.map +1 -1
- package/dist/esm/formatters/formatMonthDropdown.d.ts +6 -2
- package/dist/esm/formatters/formatMonthDropdown.js +6 -2
- package/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/esm/formatters/formatWeekNumber.d.ts +7 -3
- package/dist/esm/formatters/formatWeekNumber.js +10 -5
- package/dist/esm/formatters/formatWeekNumber.js.map +1 -1
- package/dist/esm/formatters/formatWeekNumberHeader.d.ts +3 -2
- package/dist/esm/formatters/formatWeekNumberHeader.js +3 -2
- package/dist/esm/formatters/formatWeekNumberHeader.js.map +1 -1
- package/dist/esm/formatters/formatWeekdayName.d.ts +7 -2
- package/dist/esm/formatters/formatWeekdayName.js +7 -2
- package/dist/esm/formatters/formatWeekdayName.js.map +1 -1
- package/dist/esm/formatters/formatYearDropdown.d.ts +5 -1
- package/dist/esm/formatters/formatYearDropdown.js +5 -1
- package/dist/esm/formatters/formatYearDropdown.js.map +1 -1
- package/dist/esm/helpers/calculateFocusTarget.d.ts +14 -0
- package/dist/esm/helpers/calculateFocusTarget.js +24 -1
- package/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
- package/dist/esm/helpers/createGetModifiers.d.ts +16 -0
- package/dist/esm/{useGetModifiers.js → helpers/createGetModifiers.js} +12 -6
- package/dist/esm/helpers/createGetModifiers.js.map +1 -0
- package/dist/esm/helpers/endOfBroadcastWeek.d.ts +7 -1
- package/dist/esm/helpers/endOfBroadcastWeek.js +7 -1
- package/dist/esm/helpers/endOfBroadcastWeek.js.map +1 -1
- package/dist/esm/helpers/getBroadcastWeeksInMonth.d.ts +8 -1
- package/dist/esm/helpers/getBroadcastWeeksInMonth.js +8 -1
- package/dist/esm/helpers/getBroadcastWeeksInMonth.js.map +1 -1
- package/dist/esm/helpers/getClassNamesForModifiers.d.ts +12 -0
- package/dist/esm/helpers/getClassNamesForModifiers.js +12 -0
- package/dist/esm/helpers/getClassNamesForModifiers.js.map +1 -1
- package/dist/esm/helpers/getComponents.d.ts +10 -0
- package/dist/esm/helpers/getComponents.js +10 -0
- package/dist/esm/helpers/getComponents.js.map +1 -1
- package/dist/esm/helpers/getDataAttributes.d.ts +9 -1
- package/dist/esm/helpers/getDataAttributes.js +11 -2
- package/dist/esm/helpers/getDataAttributes.js.map +1 -1
- package/dist/esm/helpers/getDates.d.ts +12 -1
- package/dist/esm/helpers/getDates.js +13 -2
- package/dist/esm/helpers/getDates.js.map +1 -1
- package/dist/esm/helpers/getDays.d.ts +4 -0
- package/dist/esm/helpers/getDays.js +4 -1
- package/dist/esm/helpers/getDays.js.map +1 -1
- package/dist/esm/helpers/getDefaultClassNames.d.ts +5 -1
- package/dist/esm/helpers/getDefaultClassNames.js +5 -1
- package/dist/esm/helpers/getDefaultClassNames.js.map +1 -1
- package/dist/esm/helpers/getDisplayMonths.d.ts +10 -0
- package/dist/esm/helpers/getDisplayMonths.js +10 -0
- package/dist/esm/helpers/getDisplayMonths.js.map +1 -1
- package/dist/esm/helpers/getFocusableDate.d.ts +16 -1
- package/dist/esm/helpers/getFocusableDate.js +17 -2
- package/dist/esm/helpers/getFocusableDate.js.map +1 -1
- package/dist/esm/helpers/getFormatters.d.ts +7 -1
- package/dist/esm/helpers/getFormatters.js +7 -1
- package/dist/esm/helpers/getFormatters.js.map +1 -1
- package/dist/esm/helpers/getInitialMonth.d.ts +11 -1
- package/dist/esm/helpers/getInitialMonth.js +14 -7
- package/dist/esm/helpers/getInitialMonth.js.map +1 -1
- package/dist/esm/helpers/getLabels.d.ts +6 -1
- package/dist/esm/helpers/getLabels.js +6 -1
- package/dist/esm/helpers/getLabels.js.map +1 -1
- package/dist/esm/helpers/getMonthOptions.d.ts +15 -1
- package/dist/esm/helpers/getMonthOptions.js +15 -1
- package/dist/esm/helpers/getMonthOptions.js.map +1 -1
- package/dist/esm/helpers/getMonths.d.ts +15 -8
- package/dist/esm/helpers/getMonths.js +16 -9
- package/dist/esm/helpers/getMonths.js.map +1 -1
- package/dist/esm/helpers/getNavMonth.d.ts +7 -1
- package/dist/esm/helpers/getNavMonth.js +7 -1
- package/dist/esm/helpers/getNavMonth.js.map +1 -1
- package/dist/esm/helpers/getNextFocus.d.ts +18 -3
- package/dist/esm/helpers/getNextFocus.js +19 -5
- package/dist/esm/helpers/getNextFocus.js.map +1 -1
- package/dist/esm/helpers/getNextMonth.d.ts +13 -5
- package/dist/esm/helpers/getNextMonth.js +13 -6
- package/dist/esm/helpers/getNextMonth.js.map +1 -1
- package/dist/esm/helpers/getPreviousMonth.d.ts +13 -5
- package/dist/esm/helpers/getPreviousMonth.js +13 -5
- package/dist/esm/helpers/getPreviousMonth.js.map +1 -1
- package/dist/esm/helpers/getStyleForModifiers.d.ts +11 -0
- package/dist/esm/helpers/getStyleForModifiers.js +11 -0
- package/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
- package/dist/esm/helpers/getWeekdays.d.ts +9 -9
- package/dist/esm/helpers/getWeekdays.js +9 -9
- package/dist/esm/helpers/getWeekdays.js.map +1 -1
- package/dist/esm/helpers/getWeeks.d.ts +6 -1
- package/dist/esm/helpers/getWeeks.js +6 -1
- package/dist/esm/helpers/getWeeks.js.map +1 -1
- package/dist/esm/helpers/getYearOptions.d.ts +13 -1
- package/dist/esm/helpers/getYearOptions.js +13 -1
- package/dist/esm/helpers/getYearOptions.js.map +1 -1
- package/dist/esm/helpers/startOfBroadcastWeek.d.ts +8 -1
- package/dist/esm/helpers/startOfBroadcastWeek.js +8 -1
- package/dist/esm/helpers/startOfBroadcastWeek.js.map +1 -1
- package/dist/esm/helpers/useControlledValue.d.ts +10 -6
- package/dist/esm/helpers/useControlledValue.js +10 -6
- package/dist/esm/helpers/useControlledValue.js.map +1 -1
- package/dist/esm/labels/labelDayButton.d.ts +9 -6
- package/dist/esm/labels/labelDayButton.js +9 -6
- package/dist/esm/labels/labelDayButton.js.map +1 -1
- package/dist/esm/labels/labelGrid.d.ts +7 -3
- package/dist/esm/labels/labelGrid.js +7 -3
- package/dist/esm/labels/labelGrid.js.map +1 -1
- package/dist/esm/labels/labelGridcell.d.ts +7 -4
- package/dist/esm/labels/labelGridcell.js +7 -4
- package/dist/esm/labels/labelGridcell.js.map +1 -1
- package/dist/esm/labels/labelMonthDropdown.d.ts +3 -1
- package/dist/esm/labels/labelMonthDropdown.js +3 -1
- package/dist/esm/labels/labelMonthDropdown.js.map +1 -1
- package/dist/esm/labels/labelNav.d.ts +2 -1
- package/dist/esm/labels/labelNav.js +2 -1
- package/dist/esm/labels/labelNav.js.map +1 -1
- package/dist/esm/labels/labelNext.d.ts +5 -4
- package/dist/esm/labels/labelNext.js +5 -4
- package/dist/esm/labels/labelNext.js.map +1 -1
- package/dist/esm/labels/labelPrevious.d.ts +5 -4
- package/dist/esm/labels/labelPrevious.js +5 -4
- package/dist/esm/labels/labelPrevious.js.map +1 -1
- package/dist/esm/labels/labelWeekNumber.d.ts +4 -1
- package/dist/esm/labels/labelWeekNumber.js +4 -1
- package/dist/esm/labels/labelWeekNumber.js.map +1 -1
- package/dist/esm/labels/labelWeekNumberHeader.d.ts +3 -1
- package/dist/esm/labels/labelWeekNumberHeader.js +3 -1
- package/dist/esm/labels/labelWeekNumberHeader.js.map +1 -1
- package/dist/esm/labels/labelWeekday.d.ts +5 -1
- package/dist/esm/labels/labelWeekday.js +5 -1
- package/dist/esm/labels/labelWeekday.js.map +1 -1
- package/dist/esm/labels/labelYearDropdown.d.ts +3 -1
- package/dist/esm/labels/labelYearDropdown.js +3 -1
- package/dist/esm/labels/labelYearDropdown.js.map +1 -1
- package/dist/esm/persian.d.ts +15 -2
- package/dist/esm/persian.js +15 -2
- package/dist/esm/persian.js.map +1 -1
- package/dist/esm/selection/useMulti.d.ts +9 -0
- package/dist/esm/selection/useMulti.js +9 -0
- package/dist/esm/selection/useMulti.js.map +1 -1
- package/dist/esm/selection/useRange.d.ts +9 -0
- package/dist/esm/selection/useRange.js +9 -0
- package/dist/esm/selection/useRange.js.map +1 -1
- package/dist/esm/selection/useSingle.d.ts +9 -0
- package/dist/esm/selection/useSingle.js +9 -0
- package/dist/esm/selection/useSingle.js.map +1 -1
- package/dist/esm/types/deprecated.d.ts +8 -8
- package/dist/esm/types/deprecated.js +1 -1
- package/dist/esm/types/props.d.ts +57 -13
- package/dist/esm/types/selection.d.ts +25 -0
- package/dist/esm/types/shared.d.ts +29 -78
- package/dist/esm/useAnimation.d.ts +11 -1
- package/dist/esm/useAnimation.js +11 -1
- package/dist/esm/useAnimation.js.map +1 -1
- package/dist/esm/useCalendar.d.ts +9 -1
- package/dist/esm/useCalendar.js +9 -1
- package/dist/esm/useCalendar.js.map +1 -1
- package/dist/esm/useDayPicker.d.ts +4 -6
- package/dist/esm/useDayPicker.js +4 -6
- package/dist/esm/useDayPicker.js.map +1 -1
- package/dist/esm/useFocus.d.ts +14 -1
- package/dist/esm/useFocus.js +14 -1
- package/dist/esm/useFocus.js.map +1 -1
- package/dist/esm/useSelection.d.ts +10 -0
- package/dist/esm/useSelection.js +10 -0
- package/dist/esm/useSelection.js.map +1 -1
- package/dist/esm/utc.d.ts +6 -0
- package/dist/esm/utc.js +6 -0
- package/dist/esm/utc.js.map +1 -1
- package/dist/esm/utils/addToRange.d.ts +10 -11
- package/dist/esm/utils/addToRange.js +10 -11
- package/dist/esm/utils/addToRange.js.map +1 -1
- package/dist/esm/utils/dateMatchModifiers.d.ts +5 -15
- package/dist/esm/utils/dateMatchModifiers.js +5 -15
- package/dist/esm/utils/dateMatchModifiers.js.map +1 -1
- package/dist/esm/utils/rangeContainsDayOfWeek.d.ts +7 -9
- package/dist/esm/utils/rangeContainsDayOfWeek.js +7 -9
- package/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
- package/dist/esm/utils/rangeContainsModifiers.d.ts +5 -14
- package/dist/esm/utils/rangeContainsModifiers.js +5 -14
- package/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
- package/dist/esm/utils/rangeIncludesDate.d.ts +7 -4
- package/dist/esm/utils/rangeIncludesDate.js +7 -4
- package/dist/esm/utils/rangeIncludesDate.js.map +1 -1
- package/dist/esm/utils/rangeOverlaps.d.ts +5 -1
- package/dist/esm/utils/rangeOverlaps.js +5 -1
- package/dist/esm/utils/rangeOverlaps.js.map +1 -1
- package/dist/esm/utils/typeguards.d.ts +19 -6
- package/dist/esm/utils/typeguards.js +19 -6
- package/dist/esm/utils/typeguards.js.map +1 -1
- package/package.json +1 -1
- package/src/DayPicker.test.tsx +34 -0
- package/src/DayPicker.tsx +105 -6
- package/src/UI.ts +11 -23
- package/src/classes/CalendarDay.ts +17 -14
- package/src/classes/CalendarMonth.ts +8 -3
- package/src/classes/CalendarWeek.ts +8 -2
- package/src/classes/DateLib.ts +65 -76
- package/src/components/Day.tsx +4 -4
- package/src/components/DayButton.tsx +2 -2
- package/src/components/Dropdown.tsx +4 -6
- package/src/components/DropdownNav.tsx +1 -1
- package/src/components/Footer.tsx +1 -1
- package/src/components/Month.tsx +3 -3
- package/src/components/MonthCaption.tsx +3 -3
- package/src/components/MonthGrid.tsx +1 -1
- package/src/components/Months.tsx +1 -1
- package/src/components/MonthsDropdown.tsx +1 -1
- package/src/components/Nav.tsx +5 -1
- package/src/components/NextMonthButton.tsx +1 -1
- package/src/components/Option.tsx +1 -1
- package/src/components/PreviousMonthButton.tsx +1 -1
- package/src/components/Root.tsx +2 -2
- package/src/components/Select.tsx +1 -1
- package/src/components/Week.tsx +2 -1
- package/src/components/WeekNumber.tsx +2 -2
- package/src/components/WeekNumberHeader.tsx +1 -1
- package/src/components/Weekday.tsx +1 -1
- package/src/components/Weekdays.tsx +1 -1
- package/src/components/Weeks.tsx +1 -1
- package/src/components/YearsDropdown.tsx +1 -1
- package/src/formatters/formatCaption.ts +7 -2
- package/src/formatters/formatDay.ts +7 -2
- package/src/formatters/formatMonthDropdown.ts +6 -2
- package/src/formatters/formatWeekNumber.test.ts +11 -0
- package/src/formatters/formatWeekNumber.ts +11 -5
- package/src/formatters/formatWeekNumberHeader.ts +3 -2
- package/src/formatters/formatWeekdayName.ts +7 -2
- package/src/formatters/formatYearDropdown.ts +5 -1
- package/src/helpers/calculateFocusTarget.ts +25 -2
- package/src/{useGetModifiers.test.tsx → helpers/createGetModifiers.test.ts} +7 -8
- package/src/{useGetModifiers.tsx → helpers/createGetModifiers.ts} +13 -7
- package/src/helpers/endOfBroadcastWeek.ts +7 -1
- package/src/helpers/getBroadcastWeeksInMonth.ts +8 -1
- package/src/helpers/getClassNamesForModifiers.ts +13 -1
- package/src/helpers/getComponents.ts +10 -0
- package/src/helpers/getDataAttributes.tsx +11 -2
- package/src/helpers/getDates.ts +13 -2
- package/src/helpers/getDays.ts +4 -1
- package/src/helpers/getDefaultClassNames.ts +5 -1
- package/src/helpers/getDisplayMonths.ts +11 -1
- package/src/helpers/getFocusableDate.ts +17 -2
- package/src/helpers/getFormatters.ts +7 -1
- package/src/helpers/getInitialMonth.ts +14 -9
- package/src/helpers/getLabels.ts +6 -1
- package/src/helpers/getMonthOptions.ts +15 -1
- package/src/helpers/getMonths.ts +16 -5
- package/src/helpers/getNavMonth.ts +7 -1
- package/src/helpers/getNextFocus.tsx +18 -2
- package/src/helpers/getNextMonth.ts +13 -6
- package/src/helpers/getPreviousMonth.ts +13 -5
- package/src/helpers/getStyleForModifiers.ts +12 -1
- package/src/helpers/getWeekdays.ts +8 -5
- package/src/helpers/getWeeks.ts +6 -1
- package/src/helpers/getYearOptions.ts +13 -1
- package/src/helpers/startOfBroadcastWeek.ts +8 -1
- package/src/helpers/useControlledValue.ts +10 -6
- package/src/labels/labelDayButton.ts +8 -4
- package/src/labels/labelGrid.ts +7 -3
- package/src/labels/labelGridcell.ts +6 -2
- package/src/labels/labelMonthDropdown.ts +3 -1
- package/src/labels/labelNav.ts +2 -1
- package/src/labels/labelNext.ts +5 -5
- package/src/labels/labelPrevious.ts +5 -5
- package/src/labels/labelWeekNumber.ts +4 -1
- package/src/labels/labelWeekNumberHeader.ts +3 -1
- package/src/labels/labelWeekday.ts +5 -1
- package/src/labels/labelYearDropdown.ts +3 -1
- package/src/persian.tsx +15 -2
- package/src/selection/useMulti.tsx +9 -0
- package/src/selection/useRange.tsx +9 -0
- package/src/selection/useSingle.tsx +9 -0
- package/src/style.css +29 -0
- package/src/style.module.css +29 -0
- package/src/types/deprecated.ts +8 -8
- package/src/types/props.ts +58 -13
- package/src/types/selection.ts +25 -0
- package/src/types/shared.ts +29 -78
- package/src/useAnimation.ts +11 -1
- package/src/useCalendar.ts +9 -1
- package/src/useDayPicker.ts +4 -6
- package/src/useFocus.ts +14 -1
- package/src/useSelection.ts +10 -0
- package/src/utc.tsx +6 -0
- package/src/utils/addToRange.ts +9 -7
- package/src/utils/dateMatchModifiers.ts +5 -15
- package/src/utils/rangeContainsDayOfWeek.ts +7 -9
- package/src/utils/rangeContainsModifiers.ts +5 -14
- package/src/utils/rangeIncludesDate.ts +6 -2
- package/src/utils/rangeOverlaps.ts +5 -1
- package/src/utils/typeguards.ts +19 -6
- package/dist/cjs/useGetModifiers.d.ts +0 -10
- package/dist/cjs/useGetModifiers.js.map +0 -1
- package/dist/esm/useGetModifiers.d.ts +0 -10
- package/dist/esm/useGetModifiers.js.map +0 -1
- /package/src/helpers/{getPossibleFocusDate.test.ts → getFocusableDate.test.ts} +0 -0
package/src/DayPicker.tsx
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import React, { useCallback, useMemo, useRef } from "react";
|
|
2
2
|
import type { MouseEvent, FocusEvent, KeyboardEvent, ChangeEvent } from "react";
|
|
3
3
|
|
|
4
|
+
import { TZDate } from "@date-fns/tz";
|
|
5
|
+
|
|
4
6
|
import { UI, DayFlag, SelectionState } from "./UI.js";
|
|
5
7
|
import type { CalendarDay } from "./classes/CalendarDay.js";
|
|
6
8
|
import { DateLib, defaultLocale } from "./classes/DateLib.js";
|
|
9
|
+
import { createGetModifiers } from "./helpers/createGetModifiers.js";
|
|
7
10
|
import { getClassNamesForModifiers } from "./helpers/getClassNamesForModifiers.js";
|
|
8
11
|
import { getComponents } from "./helpers/getComponents.js";
|
|
9
12
|
import { getDataAttributes } from "./helpers/getDataAttributes.js";
|
|
@@ -26,18 +29,57 @@ import { useAnimation } from "./useAnimation.js";
|
|
|
26
29
|
import { useCalendar } from "./useCalendar.js";
|
|
27
30
|
import { type DayPickerContext, dayPickerContext } from "./useDayPicker.js";
|
|
28
31
|
import { useFocus } from "./useFocus.js";
|
|
29
|
-
import { useGetModifiers } from "./useGetModifiers.js";
|
|
30
32
|
import { useSelection } from "./useSelection.js";
|
|
31
33
|
import { rangeIncludesDate } from "./utils/rangeIncludesDate.js";
|
|
32
34
|
import { isDateRange } from "./utils/typeguards.js";
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
|
-
*
|
|
37
|
+
* Renders the DayPicker calendar component.
|
|
36
38
|
*
|
|
39
|
+
* @param initialProps - The props for the DayPicker component.
|
|
40
|
+
* @returns The rendered DayPicker component.
|
|
37
41
|
* @group DayPicker
|
|
38
42
|
* @see https://daypicker.dev
|
|
39
43
|
*/
|
|
40
|
-
export function DayPicker(
|
|
44
|
+
export function DayPicker(initialProps: DayPickerProps) {
|
|
45
|
+
let props = initialProps;
|
|
46
|
+
|
|
47
|
+
if (props.timeZone) {
|
|
48
|
+
props = {
|
|
49
|
+
...initialProps
|
|
50
|
+
};
|
|
51
|
+
if (props.today) {
|
|
52
|
+
props.today = new TZDate(props.today, props.timeZone);
|
|
53
|
+
}
|
|
54
|
+
if (props.month) {
|
|
55
|
+
props.month = new TZDate(props.month, props.timeZone);
|
|
56
|
+
}
|
|
57
|
+
if (props.defaultMonth) {
|
|
58
|
+
props.defaultMonth = new TZDate(props.defaultMonth, props.timeZone);
|
|
59
|
+
}
|
|
60
|
+
if (props.startMonth) {
|
|
61
|
+
props.startMonth = new TZDate(props.startMonth, props.timeZone);
|
|
62
|
+
}
|
|
63
|
+
if (props.endMonth) {
|
|
64
|
+
props.endMonth = new TZDate(props.endMonth, props.timeZone);
|
|
65
|
+
}
|
|
66
|
+
if (props.mode === "single" && props.selected) {
|
|
67
|
+
props.selected = new TZDate(props.selected, props.timeZone);
|
|
68
|
+
} else if (props.mode === "multiple" && props.selected) {
|
|
69
|
+
props.selected = props.selected?.map(
|
|
70
|
+
(date) => new TZDate(date, props.timeZone)
|
|
71
|
+
);
|
|
72
|
+
} else if (props.mode === "range" && props.selected) {
|
|
73
|
+
props.selected = {
|
|
74
|
+
from: props.selected.from
|
|
75
|
+
? new TZDate(props.selected.from, props.timeZone)
|
|
76
|
+
: undefined,
|
|
77
|
+
to: props.selected.to
|
|
78
|
+
? new TZDate(props.selected.to, props.timeZone)
|
|
79
|
+
: undefined
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}
|
|
41
83
|
const { components, formatters, labels, dateLib, locale, classNames } =
|
|
42
84
|
useMemo(() => {
|
|
43
85
|
const locale = { ...defaultLocale, ...props.locale };
|
|
@@ -82,6 +124,8 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
82
124
|
const {
|
|
83
125
|
captionLayout,
|
|
84
126
|
mode,
|
|
127
|
+
navLayout,
|
|
128
|
+
numberOfMonths = 1,
|
|
85
129
|
onDayBlur,
|
|
86
130
|
onDayClick,
|
|
87
131
|
onDayFocus,
|
|
@@ -116,7 +160,7 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
116
160
|
goToMonth
|
|
117
161
|
} = calendar;
|
|
118
162
|
|
|
119
|
-
const getModifiers =
|
|
163
|
+
const getModifiers = createGetModifiers(days, props, dateLib);
|
|
120
164
|
|
|
121
165
|
const {
|
|
122
166
|
isSelected,
|
|
@@ -138,6 +182,8 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
138
182
|
labelGrid,
|
|
139
183
|
labelMonthDropdown,
|
|
140
184
|
labelNav,
|
|
185
|
+
labelPrevious,
|
|
186
|
+
labelNext,
|
|
141
187
|
labelWeekday,
|
|
142
188
|
labelWeekNumber,
|
|
143
189
|
labelWeekNumberHeader,
|
|
@@ -301,7 +347,7 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
301
347
|
className={classNames[UI.Months]}
|
|
302
348
|
style={styles?.[UI.Months]}
|
|
303
349
|
>
|
|
304
|
-
{!props.hideNavigation && (
|
|
350
|
+
{!props.hideNavigation && !navLayout && (
|
|
305
351
|
<components.Nav
|
|
306
352
|
data-animated-nav={props.animate ? "true" : undefined}
|
|
307
353
|
className={classNames[UI.Nav]}
|
|
@@ -337,6 +383,25 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
337
383
|
displayIndex={displayIndex}
|
|
338
384
|
calendarMonth={calendarMonth}
|
|
339
385
|
>
|
|
386
|
+
{navLayout === "around" &&
|
|
387
|
+
!props.hideNavigation &&
|
|
388
|
+
displayIndex === 0 && (
|
|
389
|
+
<components.PreviousMonthButton
|
|
390
|
+
type="button"
|
|
391
|
+
className={classNames[UI.PreviousMonthButton]}
|
|
392
|
+
tabIndex={previousMonth ? undefined : -1}
|
|
393
|
+
aria-disabled={previousMonth ? undefined : true}
|
|
394
|
+
aria-label={labelPrevious(previousMonth)}
|
|
395
|
+
onClick={handlePreviousClick}
|
|
396
|
+
data-animated-button={props.animate ? "true" : undefined}
|
|
397
|
+
>
|
|
398
|
+
<components.Chevron
|
|
399
|
+
disabled={previousMonth ? undefined : true}
|
|
400
|
+
className={classNames[UI.Chevron]}
|
|
401
|
+
orientation={props.dir === "rtl" ? "right" : "left"}
|
|
402
|
+
/>
|
|
403
|
+
</components.PreviousMonthButton>
|
|
404
|
+
)}
|
|
340
405
|
<components.MonthCaption
|
|
341
406
|
data-animated-caption={props.animate ? "true" : undefined}
|
|
342
407
|
className={classNames[UI.MonthCaption]}
|
|
@@ -422,6 +487,40 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
422
487
|
</components.CaptionLabel>
|
|
423
488
|
)}
|
|
424
489
|
</components.MonthCaption>
|
|
490
|
+
{navLayout === "around" &&
|
|
491
|
+
!props.hideNavigation &&
|
|
492
|
+
displayIndex === numberOfMonths - 1 && (
|
|
493
|
+
<components.NextMonthButton
|
|
494
|
+
type="button"
|
|
495
|
+
className={classNames[UI.NextMonthButton]}
|
|
496
|
+
tabIndex={nextMonth ? undefined : -1}
|
|
497
|
+
aria-disabled={nextMonth ? undefined : true}
|
|
498
|
+
aria-label={labelNext(nextMonth)}
|
|
499
|
+
onClick={handleNextClick}
|
|
500
|
+
data-animated-button={props.animate ? "true" : undefined}
|
|
501
|
+
>
|
|
502
|
+
<components.Chevron
|
|
503
|
+
disabled={nextMonth ? undefined : true}
|
|
504
|
+
className={classNames[UI.Chevron]}
|
|
505
|
+
orientation={props.dir === "rtl" ? "left" : "right"}
|
|
506
|
+
/>
|
|
507
|
+
</components.NextMonthButton>
|
|
508
|
+
)}
|
|
509
|
+
{displayIndex === numberOfMonths - 1 &&
|
|
510
|
+
navLayout === "after" &&
|
|
511
|
+
!props.hideNavigation && (
|
|
512
|
+
<components.Nav
|
|
513
|
+
data-animated-nav={props.animate ? "true" : undefined}
|
|
514
|
+
className={classNames[UI.Nav]}
|
|
515
|
+
style={styles?.[UI.Nav]}
|
|
516
|
+
aria-label={labelNav()}
|
|
517
|
+
onPreviousClick={handlePreviousClick}
|
|
518
|
+
onNextClick={handleNextClick}
|
|
519
|
+
previousMonth={previousMonth}
|
|
520
|
+
nextMonth={nextMonth}
|
|
521
|
+
/>
|
|
522
|
+
)}
|
|
523
|
+
|
|
425
524
|
<components.MonthGrid
|
|
426
525
|
role="grid"
|
|
427
526
|
aria-multiselectable={mode === "multiple" || mode === "range"}
|
|
@@ -491,7 +590,7 @@ export function DayPicker(props: DayPickerProps) {
|
|
|
491
590
|
scope="row"
|
|
492
591
|
role="rowheader"
|
|
493
592
|
>
|
|
494
|
-
{formatWeekNumber(week.weekNumber)}
|
|
593
|
+
{formatWeekNumber(week.weekNumber, dateLib)}
|
|
495
594
|
</components.WeekNumber>
|
|
496
595
|
)}
|
|
497
596
|
{week.days.map((day: CalendarDay) => {
|
package/src/UI.ts
CHANGED
|
@@ -3,11 +3,10 @@ import { CSSProperties } from "react";
|
|
|
3
3
|
import type { CustomComponents, ClassNames, Styles } from "./types/index.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* {@link CustomComponents},
|
|
8
|
-
* DayPicker.
|
|
6
|
+
* Enum representing the UI elements composing DayPicker. These elements are
|
|
7
|
+
* mapped to {@link CustomComponents}, {@link ClassNames}, and {@link Styles}.
|
|
9
8
|
*
|
|
10
|
-
* Some
|
|
9
|
+
* Some elements are extended by flags and modifiers.
|
|
11
10
|
*/
|
|
12
11
|
export enum UI {
|
|
13
12
|
/** The root component displaying the months and the navigation bar. */
|
|
@@ -71,7 +70,7 @@ export enum UI {
|
|
|
71
70
|
YearsDropdown = "years_dropdown"
|
|
72
71
|
}
|
|
73
72
|
|
|
74
|
-
/**
|
|
73
|
+
/** Enum representing flags for the {@link UI.Day} element. */
|
|
75
74
|
export enum DayFlag {
|
|
76
75
|
/** The day is disabled. */
|
|
77
76
|
disabled = "disabled",
|
|
@@ -86,8 +85,8 @@ export enum DayFlag {
|
|
|
86
85
|
}
|
|
87
86
|
|
|
88
87
|
/**
|
|
89
|
-
*
|
|
90
|
-
* mode.
|
|
88
|
+
* Enum representing selection states that can be applied to the {@link UI.Day}
|
|
89
|
+
* element in selection mode.
|
|
91
90
|
*/
|
|
92
91
|
export enum SelectionState {
|
|
93
92
|
/** The day is at the end of a selected range. */
|
|
@@ -100,7 +99,6 @@ export enum SelectionState {
|
|
|
100
99
|
selected = "selected"
|
|
101
100
|
}
|
|
102
101
|
|
|
103
|
-
/** CSS classes used for animating months and captions. */
|
|
104
102
|
/**
|
|
105
103
|
* Enum representing different animation states for transitioning between
|
|
106
104
|
* months.
|
|
@@ -125,25 +123,15 @@ export enum Animation {
|
|
|
125
123
|
}
|
|
126
124
|
|
|
127
125
|
/**
|
|
128
|
-
* Deprecated UI elements and flags.
|
|
126
|
+
* Deprecated UI elements and flags from previous versions of DayPicker.
|
|
129
127
|
*
|
|
130
|
-
* These elements
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* ```diff
|
|
134
|
-
* <DayPicker classNames={{
|
|
135
|
-
* - cell: "my-cell",
|
|
136
|
-
* + day: "my-cell",
|
|
137
|
-
* - day: "my-day",
|
|
138
|
-
* + day_button: "my-day",
|
|
139
|
-
* - day_disabled: "my-day_disabled",
|
|
140
|
-
* + disabled: "my-day_disabled",
|
|
141
|
-
* // etc.
|
|
142
|
-
* }}/>
|
|
143
|
-
* ```
|
|
128
|
+
* These elements are kept for backward compatibility and to assist in
|
|
129
|
+
* transitioning to the new {@link UI} elements.
|
|
144
130
|
*
|
|
145
131
|
* @deprecated
|
|
146
132
|
* @since 9.0.1
|
|
133
|
+
* @template T - The type of the deprecated UI element (e.g., CSS class or
|
|
134
|
+
* style).
|
|
147
135
|
* @see https://daypicker.dev/upgrading
|
|
148
136
|
* @see https://daypicker.dev/docs/styling
|
|
149
137
|
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type DateLib, defaultDateLib } from "./DateLib.js";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Represents a day displayed in the calendar.
|
|
5
5
|
*
|
|
6
|
-
* In DayPicker, a `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* In DayPicker, a `CalendarDay` is a wrapper around a `Date` object that
|
|
7
|
+
* provides additional information about the day, such as whether it belongs to
|
|
8
|
+
* the displayed month.
|
|
9
9
|
*/
|
|
10
10
|
export class CalendarDay {
|
|
11
11
|
constructor(
|
|
@@ -22,26 +22,26 @@ export class CalendarDay {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Utility functions for manipulating dates.
|
|
26
26
|
*
|
|
27
27
|
* @private
|
|
28
28
|
*/
|
|
29
29
|
readonly dateLib: DateLib;
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
|
-
*
|
|
32
|
+
* Indicates whether the day does not belong to the displayed month.
|
|
33
33
|
*
|
|
34
|
-
*
|
|
35
|
-
* belongs.
|
|
34
|
+
* If `outside` is `true`, use `displayMonth` to determine the month to which
|
|
35
|
+
* the day belongs.
|
|
36
36
|
*/
|
|
37
37
|
readonly outside: boolean;
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
|
-
* The
|
|
40
|
+
* The month that is currently displayed in the calendar.
|
|
41
41
|
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
42
|
+
* This property is useful for determining if the day belongs to the same
|
|
43
|
+
* month as the displayed month, especially when `showOutsideDays` is
|
|
44
|
+
* enabled.
|
|
45
45
|
*/
|
|
46
46
|
readonly displayMonth: Date;
|
|
47
47
|
|
|
@@ -49,8 +49,11 @@ export class CalendarDay {
|
|
|
49
49
|
readonly date: Date;
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
52
|
+
* Checks if this day is equal to another `CalendarDay`, considering both the
|
|
53
|
+
* date and the displayed month.
|
|
54
|
+
*
|
|
55
|
+
* @param day The `CalendarDay` to compare with.
|
|
56
|
+
* @returns `true` if the days are equal, otherwise `false`.
|
|
54
57
|
*/
|
|
55
58
|
isEqualTo(day: CalendarDay) {
|
|
56
59
|
return (
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { CalendarWeek } from "./CalendarWeek.js";
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Represents a month in a calendar year.
|
|
5
|
+
*
|
|
6
|
+
* A `CalendarMonth` contains the weeks within the month and the date of the
|
|
7
|
+
* month.
|
|
8
|
+
*/
|
|
4
9
|
export class CalendarMonth {
|
|
5
10
|
constructor(month: Date, weeks: CalendarWeek[]) {
|
|
6
11
|
this.date = month;
|
|
7
12
|
this.weeks = weeks;
|
|
8
13
|
}
|
|
9
14
|
|
|
10
|
-
/** The date of the month. */
|
|
15
|
+
/** The date representing the first day of the month. */
|
|
11
16
|
date: Date;
|
|
12
17
|
|
|
13
|
-
/** The weeks
|
|
18
|
+
/** The weeks that belong to this month. */
|
|
14
19
|
weeks: CalendarWeek[];
|
|
15
20
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { CalendarDay } from "./CalendarDay.js";
|
|
2
2
|
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Represents a week in a calendar month.
|
|
5
|
+
*
|
|
6
|
+
* A `CalendarWeek` contains the days within the week and the week number.
|
|
7
|
+
*/
|
|
4
8
|
export class CalendarWeek {
|
|
5
9
|
constructor(weekNumber: number, days: CalendarDay[]) {
|
|
6
10
|
this.days = days;
|
|
7
11
|
this.weekNumber = weekNumber;
|
|
8
12
|
}
|
|
13
|
+
|
|
9
14
|
/** The number of the week within the year. */
|
|
10
15
|
weekNumber: number;
|
|
11
|
-
|
|
16
|
+
|
|
17
|
+
/** The days that belong to this week. */
|
|
12
18
|
days: CalendarDay[];
|
|
13
19
|
}
|