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/style.module.css
CHANGED
|
@@ -198,6 +198,35 @@
|
|
|
198
198
|
font-size: large;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
.root[data-nav-layout="around"] .month,
|
|
202
|
+
.root[data-nav-layout="after"] .month {
|
|
203
|
+
position: relative;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.root[data-nav-layout="around"] .month_caption {
|
|
207
|
+
justify-content: center;
|
|
208
|
+
margin-inline-start: var(--rdp-nav_button-width);
|
|
209
|
+
margin-inline-end: var(--rdp-nav_button-width);
|
|
210
|
+
position: relative;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.root[data-nav-layout="around"] .button_previous {
|
|
214
|
+
position: absolute;
|
|
215
|
+
inset-inline-start: 0;
|
|
216
|
+
top: 0;
|
|
217
|
+
height: var(--rdp-nav-height);
|
|
218
|
+
display: inline-flex;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.root[data-nav-layout="around"] .button_next {
|
|
222
|
+
position: absolute;
|
|
223
|
+
inset-inline-end: 0;
|
|
224
|
+
top: 0;
|
|
225
|
+
height: var(--rdp-nav-height);
|
|
226
|
+
display: inline-flex;
|
|
227
|
+
justify-content: center;
|
|
228
|
+
}
|
|
229
|
+
|
|
201
230
|
.months {
|
|
202
231
|
position: relative;
|
|
203
232
|
display: flex;
|
package/src/types/deprecated.ts
CHANGED
|
@@ -84,7 +84,7 @@ export type DayPickerRangeProps = PropsRange;
|
|
|
84
84
|
|
|
85
85
|
/**
|
|
86
86
|
* @ignore
|
|
87
|
-
* @deprecated This type will be removed. Use `NonNullable<unknown>` instead
|
|
87
|
+
* @deprecated This type will be removed. Use `NonNullable<unknown>` instead.
|
|
88
88
|
*/
|
|
89
89
|
export type DayPickerDefaultProps = NonNullable<unknown>;
|
|
90
90
|
|
|
@@ -96,7 +96,7 @@ export type DaySelectionMode = Mode;
|
|
|
96
96
|
|
|
97
97
|
/**
|
|
98
98
|
* @ignore
|
|
99
|
-
* @deprecated This type will be removed. Use `string` instead
|
|
99
|
+
* @deprecated This type will be removed. Use `string` instead.
|
|
100
100
|
*/
|
|
101
101
|
export type Modifier = string;
|
|
102
102
|
|
|
@@ -116,21 +116,21 @@ export type InternalModifier =
|
|
|
116
116
|
|
|
117
117
|
/**
|
|
118
118
|
* @ignore
|
|
119
|
-
* @deprecated This type will be removed. Use `SelectHandler<{mode: "single"
|
|
120
|
-
* instead.
|
|
119
|
+
* @deprecated This type will be removed. Use `SelectHandler<{ mode: "single"
|
|
120
|
+
* }>` instead.
|
|
121
121
|
*/
|
|
122
122
|
export type SelectSingleEventHandler = PropsSingle["onSelect"];
|
|
123
123
|
|
|
124
124
|
/**
|
|
125
125
|
* @ignore
|
|
126
|
-
* @deprecated This type will be removed. Use `SelectHandler<{mode:
|
|
127
|
-
*
|
|
126
|
+
* @deprecated This type will be removed. Use `SelectHandler<{ mode: "multiple"
|
|
127
|
+
* }>` instead.
|
|
128
128
|
*/
|
|
129
129
|
export type SelectMultipleEventHandler = PropsMulti["onSelect"];
|
|
130
130
|
|
|
131
131
|
/**
|
|
132
132
|
* @ignore
|
|
133
|
-
* @deprecated This type will be removed. Use `SelectHandler<{mode: "range"}>`
|
|
133
|
+
* @deprecated This type will be removed. Use `SelectHandler<{ mode: "range" }>`
|
|
134
134
|
* instead.
|
|
135
135
|
*/
|
|
136
136
|
export type SelectRangeEventHandler = PropsRange["onSelect"];
|
|
@@ -143,7 +143,7 @@ export type DayPickerProviderProps = any;
|
|
|
143
143
|
|
|
144
144
|
/**
|
|
145
145
|
* @ignore
|
|
146
|
-
* @deprecated This type has been
|
|
146
|
+
* @deprecated This type has been moved to `useDayPicker`.
|
|
147
147
|
* @group Hooks
|
|
148
148
|
*/
|
|
149
149
|
export const useNavigation = useDayPicker;
|
package/src/types/props.ts
CHANGED
|
@@ -209,13 +209,29 @@ export interface PropsBase {
|
|
|
209
209
|
* - `month`: display only the dropdown for the months
|
|
210
210
|
* - `year`: display only the dropdown for the years
|
|
211
211
|
*
|
|
212
|
-
* **Note:** showing the dropdown will set the
|
|
213
|
-
*
|
|
214
|
-
*
|
|
212
|
+
* **Note:** By default, showing the dropdown will set the {@link startMonth}
|
|
213
|
+
* to 100 years ago and {@link endMonth} to the end of the current year. You
|
|
214
|
+
* can override this behavior by explicitly setting `startMonth` and
|
|
215
|
+
* `endMonth`.
|
|
215
216
|
*
|
|
216
217
|
* @see https://daypicker.dev/docs/customization#caption-layouts
|
|
217
218
|
*/
|
|
218
219
|
captionLayout?: "label" | "dropdown" | "dropdown-months" | "dropdown-years";
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* Adjust the positioning of the navigation buttons.
|
|
223
|
+
*
|
|
224
|
+
* - `around`: Displays the buttons on either side of the caption.
|
|
225
|
+
* - `after`: Displays the buttons after the caption. This ensures the tab order
|
|
226
|
+
* matches the visual order.
|
|
227
|
+
*
|
|
228
|
+
* If not set, the buttons default to being displayed after the caption, but
|
|
229
|
+
* the tab order may not align with the visual order.
|
|
230
|
+
*
|
|
231
|
+
* @since 9.7.0
|
|
232
|
+
* @see https://daypicker.dev/docs/customization#navigation-layouts
|
|
233
|
+
*/
|
|
234
|
+
navLayout?: "around" | "after" | undefined;
|
|
219
235
|
/**
|
|
220
236
|
* Display always 6 weeks per each month, regardless of the month’s number of
|
|
221
237
|
* weeks. Weeks will be filled with the days from the next month.
|
|
@@ -272,16 +288,12 @@ export interface PropsBase {
|
|
|
272
288
|
ISOWeek?: boolean;
|
|
273
289
|
/**
|
|
274
290
|
* The time zone (IANA or UTC offset) to use in the calendar (experimental).
|
|
291
|
+
*
|
|
275
292
|
* See
|
|
276
293
|
* [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
|
277
294
|
* for the possible values.
|
|
278
295
|
*
|
|
279
|
-
* Time zones are supported by the `TZDate` object by the
|
|
280
|
-
* [@date-fns/tz](https://github.com/date-fns/tz) package. Please refer to the
|
|
281
|
-
* package documentation for more information.
|
|
282
|
-
*
|
|
283
296
|
* @since 9.1.1
|
|
284
|
-
* @experimental
|
|
285
297
|
* @see https://daypicker.dev/docs/time-zone
|
|
286
298
|
*/
|
|
287
299
|
timeZone?: string | undefined;
|
|
@@ -316,9 +328,10 @@ export interface PropsBase {
|
|
|
316
328
|
*/
|
|
317
329
|
initialFocus?: boolean;
|
|
318
330
|
/**
|
|
319
|
-
* Apply the `disabled` modifier to the matching days.
|
|
331
|
+
* Apply the `disabled` modifier to the matching days. Disabled days cannot be
|
|
332
|
+
* selected when in a selection mode is set.
|
|
320
333
|
*
|
|
321
|
-
* @see https://daypicker.dev/docs/selection-modes#
|
|
334
|
+
* @see https://daypicker.dev/docs/selection-modes#disabled
|
|
322
335
|
*/
|
|
323
336
|
disabled?: Matcher | Matcher[] | undefined;
|
|
324
337
|
/**
|
|
@@ -338,6 +351,13 @@ export interface PropsBase {
|
|
|
338
351
|
/**
|
|
339
352
|
* Add modifiers to the matching days.
|
|
340
353
|
*
|
|
354
|
+
* @example
|
|
355
|
+
* const modifiers = {
|
|
356
|
+
* weekend: { dayOfWeek: [0, 6] }, // Match weekends
|
|
357
|
+
* holiday: [new Date(2023, 11, 25)] // Match Christmas
|
|
358
|
+
* };
|
|
359
|
+
* <DayPicker modifiers={modifiers} />
|
|
360
|
+
*
|
|
341
361
|
* @see https://daypicker.dev/guides/custom-modifiers
|
|
342
362
|
*/
|
|
343
363
|
modifiers?: Record<string, Matcher | Matcher[] | undefined> | undefined;
|
|
@@ -420,13 +440,13 @@ export interface PropsBase {
|
|
|
420
440
|
numerals?: Numerals | undefined;
|
|
421
441
|
/**
|
|
422
442
|
* The index of the first day of the week (0 - Sunday). Overrides the locale's
|
|
423
|
-
*
|
|
443
|
+
* default.
|
|
424
444
|
*
|
|
425
445
|
* @see https://daypicker.dev/docs/localization#first-date-of-the-week
|
|
426
446
|
*/
|
|
427
447
|
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | undefined;
|
|
428
448
|
/**
|
|
429
|
-
* The day of January
|
|
449
|
+
* The day of January that is always in the first week of the year.
|
|
430
450
|
*
|
|
431
451
|
* @see https://daypicker.dev/docs/localization#first-week-contains-date
|
|
432
452
|
*/
|
|
@@ -542,10 +562,22 @@ export interface PropsBase {
|
|
|
542
562
|
/**
|
|
543
563
|
* Shared handler type for `onSelect` callback when a selection mode is set.
|
|
544
564
|
*
|
|
565
|
+
* @example
|
|
566
|
+
* const handleSelect: OnSelectHandler<Date> = (
|
|
567
|
+
* selected,
|
|
568
|
+
* triggerDate,
|
|
569
|
+
* modifiers,
|
|
570
|
+
* e
|
|
571
|
+
* ) => {
|
|
572
|
+
* console.log("Selected:", selected);
|
|
573
|
+
* console.log("Triggered by:", triggerDate);
|
|
574
|
+
* };
|
|
575
|
+
*
|
|
545
576
|
* @template T - The type of the selected item.
|
|
546
577
|
* @callback OnSelectHandler
|
|
547
578
|
* @param {T} selected - The selected item after the event.
|
|
548
|
-
* @param {Date} triggerDate - The date when the event was triggered.
|
|
579
|
+
* @param {Date} triggerDate - The date when the event was triggered. This is
|
|
580
|
+
* typically the day clicked or interacted with.
|
|
549
581
|
* @param {Modifiers} modifiers - The modifiers associated with the event.
|
|
550
582
|
* @param {React.MouseEvent | React.KeyboardEvent} e - The event object.
|
|
551
583
|
*/
|
|
@@ -632,6 +664,12 @@ export interface PropsMulti {
|
|
|
632
664
|
export interface PropsRangeRequired {
|
|
633
665
|
mode: "range";
|
|
634
666
|
required: true;
|
|
667
|
+
/**
|
|
668
|
+
* Apply the `disabled` modifier to the matching days. Disabled days cannot be
|
|
669
|
+
* selected when in a selection mode is set.
|
|
670
|
+
*
|
|
671
|
+
* @see https://daypicker.dev/docs/selection-modes#disabled
|
|
672
|
+
*/
|
|
635
673
|
disabled?: Matcher | Matcher[] | undefined;
|
|
636
674
|
/**
|
|
637
675
|
* When `true`, the range will reset when including a disabled day.
|
|
@@ -657,11 +695,18 @@ export interface PropsRangeRequired {
|
|
|
657
695
|
export interface PropsRange {
|
|
658
696
|
mode: "range";
|
|
659
697
|
required?: false | undefined;
|
|
698
|
+
/**
|
|
699
|
+
* Apply the `disabled` modifier to the matching days. Disabled days cannot be
|
|
700
|
+
* selected when in a selection mode is set.
|
|
701
|
+
*
|
|
702
|
+
* @see https://daypicker.dev/docs/selection-modes#disabled
|
|
703
|
+
*/
|
|
660
704
|
disabled?: Matcher | Matcher[] | undefined;
|
|
661
705
|
/**
|
|
662
706
|
* When `true`, the range will reset when including a disabled day.
|
|
663
707
|
*
|
|
664
708
|
* @since V9.0.2
|
|
709
|
+
* @see https://daypicker.dev/docs/selection-modes#exclude-disabled
|
|
665
710
|
*/
|
|
666
711
|
excludeDisabled?: boolean | undefined;
|
|
667
712
|
/** The selected range. */
|
package/src/types/selection.ts
CHANGED
|
@@ -17,6 +17,19 @@ export type SelectedMulti<T extends { required?: boolean }> =
|
|
|
17
17
|
export type SelectedRange<T extends { required?: boolean }> =
|
|
18
18
|
T["required"] extends true ? DateRange : DateRange | undefined;
|
|
19
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Represents the selected value based on the selection mode.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Single selection mode
|
|
25
|
+
* const selected: SelectedValue<{ mode: "single" }> = new Date();
|
|
26
|
+
*
|
|
27
|
+
* // Multiple selection mode
|
|
28
|
+
* const selected: SelectedValue<{ mode: "multiple" }> = [new Date(), new Date()];
|
|
29
|
+
*
|
|
30
|
+
* // Range selection mode
|
|
31
|
+
* const selected: SelectedValue<{ mode: "range" }> = { from: new Date(), to: new Date() };
|
|
32
|
+
*/
|
|
20
33
|
export type SelectedValue<T> = T extends { mode: "single"; required?: boolean }
|
|
21
34
|
? SelectedSingle<T>
|
|
22
35
|
: T extends { mode: "multiple"; required?: boolean }
|
|
@@ -44,6 +57,18 @@ export type SelectHandlerRange<T extends { required?: boolean | undefined }> = (
|
|
|
44
57
|
e: React.MouseEvent | React.KeyboardEvent
|
|
45
58
|
) => T["required"] extends true ? DateRange : DateRange | undefined;
|
|
46
59
|
|
|
60
|
+
/**
|
|
61
|
+
* The handler to set a selection based on the mode.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* const handleSelect: SelectHandler<{ mode: "single" }> = (
|
|
65
|
+
* triggerDate,
|
|
66
|
+
* modifiers,
|
|
67
|
+
* e
|
|
68
|
+
* ) => {
|
|
69
|
+
* console.log("Selected date:", triggerDate);
|
|
70
|
+
* };
|
|
71
|
+
*/
|
|
47
72
|
export type SelectHandler<
|
|
48
73
|
T extends { mode?: Mode | undefined; required?: boolean | undefined }
|
|
49
74
|
> = T extends {
|
package/src/types/shared.ts
CHANGED
|
@@ -30,16 +30,16 @@ import {
|
|
|
30
30
|
/**
|
|
31
31
|
* Selection modes supported by DayPicker.
|
|
32
32
|
*
|
|
33
|
-
* - `single`:
|
|
34
|
-
* - `multiple`:
|
|
35
|
-
* - `range`:
|
|
33
|
+
* - `single`: Select a single day.
|
|
34
|
+
* - `multiple`: Select multiple days.
|
|
35
|
+
* - `range`: Select a range of days.
|
|
36
36
|
*
|
|
37
37
|
* @see https://daypicker.dev/docs/selection-modes
|
|
38
38
|
*/
|
|
39
39
|
export type Mode = "single" | "multiple" | "range";
|
|
40
40
|
|
|
41
41
|
/**
|
|
42
|
-
* The components that can be
|
|
42
|
+
* The components that can be customized using the `components` prop.
|
|
43
43
|
*
|
|
44
44
|
* @see https://daypicker.dev/guides/custom-components
|
|
45
45
|
*/
|
|
@@ -97,13 +97,13 @@ export type CustomComponents = {
|
|
|
97
97
|
WeekNumber: typeof components.WeekNumber;
|
|
98
98
|
/** Render the header of the week number column. */
|
|
99
99
|
WeekNumberHeader: typeof components.WeekNumberHeader;
|
|
100
|
-
/** Render the dropdown
|
|
100
|
+
/** Render the dropdown for selecting months. */
|
|
101
101
|
MonthsDropdown: typeof components.MonthsDropdown;
|
|
102
|
-
/** Render the dropdown
|
|
102
|
+
/** Render the dropdown for selecting years. */
|
|
103
103
|
YearsDropdown: typeof components.YearsDropdown;
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
/**
|
|
106
|
+
/** Represents a map of formatters used to render localized content. */
|
|
107
107
|
export type Formatters = {
|
|
108
108
|
/** Format the caption of a month grid. */
|
|
109
109
|
formatCaption: typeof formatCaption;
|
|
@@ -114,6 +114,8 @@ export type Formatters = {
|
|
|
114
114
|
/**
|
|
115
115
|
* @ignore
|
|
116
116
|
* @deprecated Use {@link Formatters.formatCaption} instead.
|
|
117
|
+
*
|
|
118
|
+
* **Note:** This formatter will be removed in version 10.0.0.
|
|
117
119
|
*/
|
|
118
120
|
formatMonthCaption: typeof formatMonthCaption;
|
|
119
121
|
/** Format the week number. */
|
|
@@ -131,7 +133,7 @@ export type Formatters = {
|
|
|
131
133
|
formatYearCaption: typeof formatYearCaption;
|
|
132
134
|
};
|
|
133
135
|
|
|
134
|
-
/**
|
|
136
|
+
/** A map of functions to translate ARIA labels for various elements. */
|
|
135
137
|
export type Labels = {
|
|
136
138
|
/** The label for the navigation toolbar. */
|
|
137
139
|
labelNav: typeof labelNav;
|
|
@@ -158,57 +160,19 @@ export type Labels = {
|
|
|
158
160
|
labelWeekday: typeof labelWeekday;
|
|
159
161
|
/** The label for the week number. */
|
|
160
162
|
labelWeekNumber: typeof labelWeekNumber;
|
|
161
|
-
/**
|
|
162
|
-
* Return the label for the column of the week number.
|
|
163
|
-
*
|
|
164
|
-
* @since 9.0.0
|
|
165
|
-
*/
|
|
163
|
+
/** The label for the column of week numbers. */
|
|
166
164
|
labelWeekNumberHeader: typeof labelWeekNumberHeader;
|
|
167
165
|
};
|
|
168
166
|
|
|
169
167
|
/**
|
|
170
|
-
* A value or a function that matches
|
|
168
|
+
* A value or a function that matches specific days.
|
|
171
169
|
*
|
|
172
170
|
* @example
|
|
173
|
-
* //
|
|
174
|
-
* const
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* const dateMatcher: Matcher = new Date();
|
|
178
|
-
*
|
|
179
|
-
* // will match the days in the array
|
|
180
|
-
* const arrayMatcher: Matcher = [
|
|
181
|
-
* new Date(2019, 1, 2),
|
|
182
|
-
* new Date(2019, 1, 4)
|
|
171
|
+
* // Match weekends and specific holidays
|
|
172
|
+
* const matcher: Matcher = [
|
|
173
|
+
* { dayOfWeek: [0, 6] }, // Weekends
|
|
174
|
+
* { from: new Date(2023, 11, 24), to: new Date(2023, 11, 26) } // Christmas
|
|
183
175
|
* ];
|
|
184
|
-
*
|
|
185
|
-
* // will match days after the 2nd of February 2019
|
|
186
|
-
* const afterMatcher: DateAfter = { after: new Date(2019, 1, 2) };
|
|
187
|
-
*
|
|
188
|
-
* // will match days before the 2nd of February 2019 }
|
|
189
|
-
* const beforeMatcher: DateBefore = { before: new Date(2019, 1, 2) };
|
|
190
|
-
*
|
|
191
|
-
* // will match Sundays
|
|
192
|
-
* const dayOfWeekMatcher: DayOfWeek = {
|
|
193
|
-
* dayOfWeek: 0
|
|
194
|
-
* };
|
|
195
|
-
*
|
|
196
|
-
* // will match the included days, except the two dates
|
|
197
|
-
* const intervalMatcher: DateInterval = {
|
|
198
|
-
* after: new Date(2019, 1, 2),
|
|
199
|
-
* before: new Date(2019, 1, 5)
|
|
200
|
-
* };
|
|
201
|
-
*
|
|
202
|
-
* // will match the included days, including the two dates
|
|
203
|
-
* const rangeMatcher: DateRange = {
|
|
204
|
-
* from: new Date(2019, 1, 2),
|
|
205
|
-
* to: new Date(2019, 1, 5)
|
|
206
|
-
* };
|
|
207
|
-
*
|
|
208
|
-
* // will match when the function return true
|
|
209
|
-
* const functionMatcher: Matcher = (day: Date) => {
|
|
210
|
-
* return day.getMonth() === 2; // match when month is March
|
|
211
|
-
* };
|
|
212
176
|
*/
|
|
213
177
|
export type Matcher =
|
|
214
178
|
| boolean
|
|
@@ -222,29 +186,29 @@ export type Matcher =
|
|
|
222
186
|
| DayOfWeek;
|
|
223
187
|
|
|
224
188
|
/**
|
|
225
|
-
* Match a day falling after the specified date
|
|
189
|
+
* Match a day falling after the specified date (exclusive).
|
|
226
190
|
*
|
|
227
191
|
* @example
|
|
228
|
-
* // Match days after
|
|
192
|
+
* // Match days after February 2, 2019
|
|
229
193
|
* const matcher: DateAfter = { after: new Date(2019, 1, 2) };
|
|
230
194
|
*/
|
|
231
195
|
export type DateAfter = { after: Date };
|
|
232
196
|
|
|
233
197
|
/**
|
|
234
|
-
* Match a day falling before the specified date
|
|
198
|
+
* Match a day falling before the specified date (exclusive).
|
|
235
199
|
*
|
|
236
200
|
* @example
|
|
237
|
-
* // Match days before
|
|
201
|
+
* // Match days before February 2, 2019
|
|
238
202
|
* const matcher: DateBefore = { before: new Date(2019, 1, 2) };
|
|
239
203
|
*/
|
|
240
204
|
export type DateBefore = { before: Date };
|
|
241
205
|
|
|
242
206
|
/**
|
|
243
|
-
* An interval of dates.
|
|
244
|
-
*
|
|
207
|
+
* An interval of dates. Unlike {@link DateRange}, the range ends are not
|
|
208
|
+
* included.
|
|
245
209
|
*
|
|
246
210
|
* @example
|
|
247
|
-
* // Match
|
|
211
|
+
* // Match days between February 2 and February 5, 2019
|
|
248
212
|
* const matcher: DateInterval = {
|
|
249
213
|
* after: new Date(2019, 1, 2),
|
|
250
214
|
* before: new Date(2019, 1, 5)
|
|
@@ -253,11 +217,10 @@ export type DateBefore = { before: Date };
|
|
|
253
217
|
export type DateInterval = { before: Date; after: Date };
|
|
254
218
|
|
|
255
219
|
/**
|
|
256
|
-
* A range of dates.
|
|
257
|
-
* {@link DateInterval}, the range ends here are included.
|
|
220
|
+
* A range of dates. Unlike {@link DateInterval}, the range ends are included.
|
|
258
221
|
*
|
|
259
222
|
* @example
|
|
260
|
-
* // Match
|
|
223
|
+
* // Match days between February 2 and February 5, 2019
|
|
261
224
|
* const matcher: DateRange = {
|
|
262
225
|
* from: new Date(2019, 1, 2),
|
|
263
226
|
* to: new Date(2019, 1, 5)
|
|
@@ -266,8 +229,7 @@ export type DateInterval = { before: Date; after: Date };
|
|
|
266
229
|
export type DateRange = { from: Date | undefined; to?: Date | undefined };
|
|
267
230
|
|
|
268
231
|
/**
|
|
269
|
-
* Match
|
|
270
|
-
* Sunday).
|
|
232
|
+
* Match days of the week (`0-6`, where `0` is Sunday).
|
|
271
233
|
*
|
|
272
234
|
* @example
|
|
273
235
|
* // Match Sundays
|
|
@@ -330,22 +292,11 @@ export type Styles = {
|
|
|
330
292
|
/**
|
|
331
293
|
* Represents the modifiers that match a specific day in the calendar.
|
|
332
294
|
*
|
|
333
|
-
* - Retrieve modifiers using the {@link OnSelectHandler} via the `onSelect` prop,
|
|
334
|
-
* or within custom components using the {@link useDayPicker} hook.
|
|
335
|
-
* - Includes built-in modifiers from {@link DayFlag} and {@link SelectionState}.
|
|
336
|
-
* - Add custom modifiers using the `modifiers` prop.
|
|
337
|
-
*
|
|
338
295
|
* @example
|
|
339
296
|
* const modifiers: Modifiers = {
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
* outside: false, // the day is not outside the month
|
|
344
|
-
* focused: false, // the day is not focused
|
|
345
|
-
*
|
|
346
|
-
* weekend: false // custom modifier example for matching a weekend
|
|
347
|
-
* booked: true // custom modifier example for matching a booked day
|
|
348
|
-
* available: false // custom modifier example for matching an available day
|
|
297
|
+
* today: true, // The day is today
|
|
298
|
+
* selected: false, // The day is not selected
|
|
299
|
+
* weekend: true // Custom modifier for weekends
|
|
349
300
|
* };
|
|
350
301
|
*
|
|
351
302
|
* @see https://daypicker.dev/guides/custom-modifiers
|
package/src/useAnimation.ts
CHANGED
|
@@ -25,7 +25,17 @@ const queryNavEl = (element: HTMLElement) =>
|
|
|
25
25
|
const queryWeekdaysEl = (element: HTMLElement) =>
|
|
26
26
|
asHtmlElement(element.querySelector("[data-animated-weekdays]"));
|
|
27
27
|
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Handles animations for transitioning between months in the DayPicker
|
|
30
|
+
* component.
|
|
31
|
+
*
|
|
32
|
+
* @private
|
|
33
|
+
* @param rootElRef - A reference to the root element of the DayPicker
|
|
34
|
+
* component.
|
|
35
|
+
* @param enabled - Whether animations are enabled.
|
|
36
|
+
* @param options - Configuration options for the animation, including class
|
|
37
|
+
* names, months, focused day, and the date utility library.
|
|
38
|
+
*/
|
|
29
39
|
export function useAnimation(
|
|
30
40
|
rootElRef: React.RefObject<HTMLDivElement | null>,
|
|
31
41
|
enabled: boolean,
|
package/src/useCalendar.ts
CHANGED
|
@@ -65,7 +65,15 @@ export interface Calendar {
|
|
|
65
65
|
goToDay: (day: CalendarDay) => void;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
/**
|
|
68
|
+
/**
|
|
69
|
+
* Provides the calendar object to work with the calendar in custom components.
|
|
70
|
+
*
|
|
71
|
+
* @private
|
|
72
|
+
* @param props - The DayPicker props related to calendar configuration.
|
|
73
|
+
* @param dateLib - The date utility library instance.
|
|
74
|
+
* @returns The calendar object containing displayed days, weeks, months, and
|
|
75
|
+
* navigation methods.
|
|
76
|
+
*/
|
|
69
77
|
export function useCalendar(
|
|
70
78
|
props: Pick<
|
|
71
79
|
DayPickerProps,
|
package/src/useDayPicker.ts
CHANGED
|
@@ -69,15 +69,13 @@ export type DayPickerContext<
|
|
|
69
69
|
};
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
* properties and methods to interact with the DayPicker component. It must be
|
|
76
|
-
* used within a custom component.
|
|
72
|
+
* Provides access to the DayPicker context, which includes properties and
|
|
73
|
+
* methods to interact with the DayPicker component. This hook must be used
|
|
74
|
+
* within a custom component.
|
|
77
75
|
*
|
|
78
76
|
* @template T - Use this type to refine the returned context type with a
|
|
79
77
|
* specific selection mode.
|
|
80
|
-
* @returns
|
|
78
|
+
* @returns The context to work with DayPicker.
|
|
81
79
|
* @throws {Error} If the hook is used outside of a DayPicker provider.
|
|
82
80
|
* @group Hooks
|
|
83
81
|
* @see https://daypicker.dev/guides/custom-components
|
package/src/useFocus.ts
CHANGED
|
@@ -28,7 +28,20 @@ export type UseFocus = {
|
|
|
28
28
|
moveFocus: (moveBy: MoveFocusBy, moveDir: MoveFocusDir) => void;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Manages focus behavior for the DayPicker component, including setting,
|
|
33
|
+
* moving, and blurring focus on calendar days.
|
|
34
|
+
*
|
|
35
|
+
* @template T - The type of DayPicker props.
|
|
36
|
+
* @param props - The DayPicker props.
|
|
37
|
+
* @param calendar - The calendar object containing the displayed days and
|
|
38
|
+
* months.
|
|
39
|
+
* @param getModifiers - A function to retrieve modifiers for a given day.
|
|
40
|
+
* @param isSelected - A function to check if a date is selected.
|
|
41
|
+
* @param dateLib - The date utility library instance.
|
|
42
|
+
* @returns An object containing focus-related methods and the currently focused
|
|
43
|
+
* day.
|
|
44
|
+
*/
|
|
32
45
|
export function useFocus<T extends DayPickerProps>(
|
|
33
46
|
props: T,
|
|
34
47
|
calendar: Calendar,
|
package/src/useSelection.ts
CHANGED
|
@@ -5,6 +5,16 @@ import { useSingle } from "./selection/useSingle.js";
|
|
|
5
5
|
import type { DayPickerProps } from "./types/index.js";
|
|
6
6
|
import { Selection } from "./types/selection.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Determines the appropriate selection hook to use based on the selection mode
|
|
10
|
+
* and returns the corresponding selection object.
|
|
11
|
+
*
|
|
12
|
+
* @template T - The type of DayPicker props.
|
|
13
|
+
* @param props - The DayPicker props.
|
|
14
|
+
* @param dateLib - The date utility library instance.
|
|
15
|
+
* @returns The selection object for the specified mode, or `undefined` if no
|
|
16
|
+
* mode is set.
|
|
17
|
+
*/
|
|
8
18
|
export function useSelection<T extends DayPickerProps>(
|
|
9
19
|
props: T,
|
|
10
20
|
dateLib: DateLib
|
package/src/utc.tsx
CHANGED
|
@@ -5,6 +5,12 @@ import {
|
|
|
5
5
|
type DayPickerProps
|
|
6
6
|
} from "./index.js";
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use the `timeZone` prop instead of this function. This function
|
|
10
|
+
* wraps the DayPicker component and sets the `timeZone` to "utc".
|
|
11
|
+
* @param props - The props to pass to the DayPicker component.
|
|
12
|
+
* @returns The DayPicker component with the `timeZone` set to "utc".
|
|
13
|
+
*/
|
|
8
14
|
export function DayPicker(props: DayPickerProps) {
|
|
9
15
|
return <DayPickerComponent timeZone="utc" {...props} />;
|
|
10
16
|
}
|
package/src/utils/addToRange.ts
CHANGED
|
@@ -2,22 +2,24 @@ import { defaultDateLib, type DateLib } from "../classes/DateLib.js";
|
|
|
2
2
|
import type { DateRange } from "../types/index.js";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* The returned range takes in account the `undefined` values and if the added
|
|
8
|
-
* day is already present in the range.
|
|
5
|
+
* Adds a date to an existing range, considering constraints like minimum and
|
|
6
|
+
* maximum range size.
|
|
9
7
|
*
|
|
8
|
+
* @param date - The date to add to the range.
|
|
9
|
+
* @param initialRange - The initial range to which the date will be added.
|
|
10
|
+
* @param min - The minimum number of days in the range.
|
|
11
|
+
* @param max - The maximum number of days in the range.
|
|
12
|
+
* @param required - Whether the range must always include at least one date.
|
|
13
|
+
* @param dateLib - The date utility library instance.
|
|
14
|
+
* @returns The updated date range, or `undefined` if the range is cleared.
|
|
10
15
|
* @group Utilities
|
|
11
16
|
*/
|
|
12
17
|
export function addToRange(
|
|
13
|
-
/** The date to add to the range. */
|
|
14
18
|
date: Date,
|
|
15
|
-
/** The range where to add `date`. */
|
|
16
19
|
initialRange: DateRange | undefined,
|
|
17
20
|
min = 0,
|
|
18
21
|
max = 0,
|
|
19
22
|
required = false,
|
|
20
|
-
/** @ignore */
|
|
21
23
|
dateLib: DateLib = defaultDateLib
|
|
22
24
|
): DateRange | undefined {
|
|
23
25
|
const { from, to } = initialRange || {};
|
|
@@ -12,22 +12,12 @@ import {
|
|
|
12
12
|
} from "./typeguards.js";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* {@link Matcher}.
|
|
17
|
-
*
|
|
18
|
-
* ```tsx
|
|
19
|
-
* const date = new Date(2022, 5, 19);
|
|
20
|
-
* const matcher1: DateRange = {
|
|
21
|
-
* from: new Date(2021, 12, 21),
|
|
22
|
-
* to: new Date(2021, 12, 30)
|
|
23
|
-
* };
|
|
24
|
-
* const matcher2: DateRange = {
|
|
25
|
-
* from: new Date(2022, 5, 1),
|
|
26
|
-
* to: new Date(2022, 5, 23)
|
|
27
|
-
* };
|
|
28
|
-
* dateMatchModifiers(date, [matcher1, matcher2]); // true, since day is in the matcher1 range.
|
|
29
|
-
* ```
|
|
15
|
+
* Checks if a given date matches at least one of the specified {@link Matcher}.
|
|
30
16
|
*
|
|
17
|
+
* @param date - The date to check.
|
|
18
|
+
* @param matchers - The matchers to check against.
|
|
19
|
+
* @param dateLib - The date utility library instance.
|
|
20
|
+
* @returns `true` if the date matches any of the matchers, otherwise `false`.
|
|
31
21
|
* @group Utilities
|
|
32
22
|
*/
|
|
33
23
|
export function dateMatchModifiers(
|