react-day-picker 8.4.0 → 8.5.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/dist/index.d.ts +123 -70
- package/dist/index.esm.js +14 -50
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +122 -158
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/dist/style.css +2 -1
- package/dist/style.css.d.ts +38 -37
- package/dist/style.css.map +1 -0
- package/dist/style.module.css +0 -1
- package/dist/style.module.css.d.ts +38 -37
- package/package.json +35 -32
- package/src/DayPicker.tsx +1 -1
- package/src/components/Caption/Caption.test.tsx +2 -2
- package/src/components/CaptionDropdowns/CaptionDropdowns.test.tsx +7 -6
- package/src/components/CaptionLabel/CaptionLabel.test.tsx +1 -1
- package/src/components/CaptionLabel/CaptionLabel.tsx +3 -3
- package/src/components/CaptionNavigation/CaptionNavigation.test.tsx +11 -10
- package/src/components/CaptionNavigation/CaptionNavigation.tsx +1 -1
- package/src/components/Day/Day.test.tsx +15 -16
- package/src/components/Day/Day.tsx +1 -1
- package/src/components/DayContent/DayContent.test.tsx +1 -1
- package/src/components/Footer/Footer.test.tsx +1 -1
- package/src/components/HeadRow/HeadRow.test.tsx +1 -20
- package/src/components/HeadRow/HeadRow.tsx +2 -6
- package/src/components/HeadRow/utils/getWeekdays.test.ts +1 -1
- package/src/components/HeadRow/utils/getWeekdays.ts +1 -5
- package/src/components/Month/Month.test.tsx +1 -1
- package/src/components/MonthsDropdown/MonthsDropdown.test.tsx +3 -2
- package/src/components/MonthsDropdown/MonthsDropdown.tsx +1 -3
- package/src/components/Navigation/Navigation.test.tsx +10 -9
- package/src/components/Root/Root.test.tsx +2 -3
- package/src/components/Row/Row.tsx +2 -1
- package/src/components/Table/Table.tsx +1 -1
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +219 -210
- package/src/components/Table/utils/daysToMonthWeeks.ts +11 -10
- package/src/components/Table/utils/getMonthWeeks.ts +7 -6
- package/src/components/YearsDropdown/YearsDropdown.test.tsx +3 -2
- package/src/components/YearsDropdown/YearsDropdown.tsx +1 -3
- package/src/contexts/DayPicker/DayPickerContext.test.ts +55 -138
- package/src/contexts/DayPicker/defaultContextValues.ts +1 -1
- package/src/contexts/DayPicker/formatters/formatCaption.test.ts +1 -1
- package/src/contexts/DayPicker/formatters/formatCaption.ts +1 -2
- package/src/contexts/DayPicker/formatters/formatDay.ts +1 -1
- package/src/contexts/DayPicker/formatters/formatMonthCaption.test.ts +1 -1
- package/src/contexts/DayPicker/formatters/formatMonthCaption.ts +1 -1
- package/src/contexts/DayPicker/formatters/formatWeekdayName.test.ts +3 -3
- package/src/contexts/DayPicker/formatters/formatWeekdayName.ts +2 -2
- package/src/contexts/DayPicker/formatters/formatYearCaption.ts +1 -1
- package/src/contexts/DayPicker/labels/labelDay.ts +1 -1
- package/src/contexts/DayPicker/labels/labelWeekday.test.ts +1 -1
- package/src/contexts/DayPicker/labels/labelWeekday.ts +1 -1
- package/src/contexts/DayPicker/utils/parseFromToProps.ts +1 -3
- package/src/contexts/Focus/FocusContext.test.ts +35 -62
- package/src/contexts/Focus/FocusContext.tsx +1 -1
- package/src/contexts/Focus/utils/getInitialFocusTarget.ts +1 -3
- package/src/contexts/Focus/utils/getNextFocus.ts +12 -10
- package/src/contexts/Modifiers/ModifiersContext.test.ts +8 -14
- package/src/contexts/Modifiers/utils/getActiveModifiers.ts +1 -1
- package/src/contexts/Modifiers/utils/isDateInRange.ts +1 -2
- package/src/contexts/Modifiers/utils/isMatch.ts +1 -4
- package/src/contexts/Navigation/NavigationContext.test.ts +12 -17
- package/src/contexts/Navigation/NavigationContext.tsx +1 -3
- package/src/contexts/Navigation/useNavigationState.test.ts +9 -16
- package/src/contexts/Navigation/useNavigationState.ts +6 -4
- package/src/contexts/Navigation/utils/getDisplayMonths.ts +1 -3
- package/src/contexts/Navigation/utils/getInitialMonth.ts +1 -3
- package/src/contexts/Navigation/utils/getNextMonth.ts +1 -3
- package/src/contexts/Navigation/utils/getPreviousMonth.ts +1 -3
- package/src/contexts/SelectMultiple/SelectMultipleContext.test.ts +15 -20
- package/src/contexts/SelectMultiple/SelectMultipleContext.tsx +1 -1
- package/src/contexts/SelectRange/SelectRangeContext.test.ts +23 -29
- package/src/contexts/SelectRange/SelectRangeContext.tsx +6 -4
- package/src/contexts/SelectRange/utils/addToRange.ts +1 -3
- package/src/contexts/SelectSingle/SelectSingleContext.test.ts +18 -15
- package/src/hooks/useActiveModifiers/useActiveModifiers.test.tsx +9 -16
- package/src/hooks/useControlledValue/useControlledValue.test.ts +16 -39
- package/src/hooks/useDayEventHandlers/useDayEventHandlers.test.tsx +18 -78
- package/src/hooks/useDayRender/useDayRender.test.tsx +68 -95
- package/src/hooks/useDayRender/useDayRender.tsx +5 -8
- package/src/hooks/useInput/useInput.ts +2 -4
- package/src/hooks/useSelectedDays/useSelectedDays.test.ts +15 -45
- package/src/index.ts +1 -0
- package/src/style.css +0 -1
- package/src/style.css.d.ts +37 -36
- package/src/types/Labels.ts +1 -0
- package/dist/index.esm.d.ts +0 -1175
- package/dist/react-day-picker.min.js +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,38 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { createContext, useContext, useState, forwardRef, useEffect, useRef } from 'react';
|
|
3
|
-
import enUS from 'date-fns/locale
|
|
4
|
-
import format from 'date-fns
|
|
5
|
-
import endOfMonth from 'date-fns/endOfMonth';
|
|
6
|
-
import startOfDay from 'date-fns/startOfDay';
|
|
7
|
-
import startOfMonth from 'date-fns/startOfMonth';
|
|
8
|
-
import isSameYear from 'date-fns/isSameYear';
|
|
9
|
-
import setMonth from 'date-fns/setMonth';
|
|
10
|
-
import setYear from 'date-fns/setYear';
|
|
11
|
-
import startOfYear from 'date-fns/startOfYear';
|
|
12
|
-
import addMonths from 'date-fns/addMonths';
|
|
13
|
-
import isBefore from 'date-fns/isBefore';
|
|
14
|
-
import isSameMonth from 'date-fns/isSameMonth';
|
|
15
|
-
import differenceInCalendarMonths from 'date-fns/differenceInCalendarMonths';
|
|
16
|
-
import addDays from 'date-fns/addDays';
|
|
17
|
-
import startOfISOWeek from 'date-fns/startOfISOWeek';
|
|
18
|
-
import startOfWeek from 'date-fns/startOfWeek';
|
|
19
|
-
import getUnixTime from 'date-fns/getUnixTime';
|
|
20
|
-
import isSameDay from 'date-fns/isSameDay';
|
|
21
|
-
import { isSameDay as isSameDay$1, isAfter as isAfter$1 } from 'date-fns';
|
|
22
|
-
import differenceInCalendarDays from 'date-fns/differenceInCalendarDays';
|
|
23
|
-
import subDays from 'date-fns/subDays';
|
|
24
|
-
import isAfter from 'date-fns/isAfter';
|
|
25
|
-
import isDate from 'date-fns/isDate';
|
|
26
|
-
import addWeeks from 'date-fns/addWeeks';
|
|
27
|
-
import addYears from 'date-fns/addYears';
|
|
28
|
-
import endOfISOWeek from 'date-fns/endOfISOWeek';
|
|
29
|
-
import endOfWeek from 'date-fns/endOfWeek';
|
|
30
|
-
import max from 'date-fns/max';
|
|
31
|
-
import min from 'date-fns/min';
|
|
32
|
-
import getWeeksInMonth from 'date-fns/getWeeksInMonth';
|
|
33
|
-
import getISOWeek from 'date-fns/getISOWeek';
|
|
34
|
-
import getWeek from 'date-fns/getWeek';
|
|
35
|
-
import parse from 'date-fns/parse';
|
|
3
|
+
import { enUS } from 'date-fns/locale';
|
|
4
|
+
import { format, startOfMonth, endOfMonth, startOfDay, isSameYear, setMonth, setYear, startOfYear, differenceInCalendarMonths, addMonths, isSameMonth, isBefore, startOfISOWeek, startOfWeek, addDays, isSameDay, isAfter, subDays, differenceInCalendarDays, isDate, max, min, addWeeks, addYears, endOfISOWeek, endOfWeek, getUnixTime, getISOWeek, getWeek, getWeeksInMonth, parse } from 'date-fns';
|
|
36
5
|
|
|
37
6
|
/******************************************************************************
|
|
38
7
|
Copyright (c) Microsoft Corporation.
|
|
@@ -176,7 +145,7 @@ function formatWeekNumber(weekNumber) {
|
|
|
176
145
|
* The default formatter for the name of the weekday.
|
|
177
146
|
*/
|
|
178
147
|
function formatWeekdayName(weekday, options) {
|
|
179
|
-
return format(weekday, 'cccccc', options);
|
|
148
|
+
return format(weekday, 'cccccc', options).toUpperCase();
|
|
180
149
|
}
|
|
181
150
|
|
|
182
151
|
/**
|
|
@@ -251,8 +220,8 @@ var labels = /*#__PURE__*/Object.freeze({
|
|
|
251
220
|
labelMonthDropdown: labelMonthDropdown,
|
|
252
221
|
labelNext: labelNext,
|
|
253
222
|
labelPrevious: labelPrevious,
|
|
254
|
-
labelWeekday: labelWeekday,
|
|
255
223
|
labelWeekNumber: labelWeekNumber,
|
|
224
|
+
labelWeekday: labelWeekday,
|
|
256
225
|
labelYearDropdown: labelYearDropdown
|
|
257
226
|
});
|
|
258
227
|
|
|
@@ -354,7 +323,7 @@ function useDayPicker() {
|
|
|
354
323
|
/** Render the caption for the displayed month. This component is used when `captionLayout="buttons"`. */
|
|
355
324
|
function CaptionLabel(props) {
|
|
356
325
|
var _a = useDayPicker(), locale = _a.locale, classNames = _a.classNames, styles = _a.styles, formatCaption = _a.formatters.formatCaption;
|
|
357
|
-
return (React__default.createElement("
|
|
326
|
+
return (React__default.createElement("div", { className: classNames.caption_label, style: styles.caption_label, "aria-live": "polite", role: "presentation", id: props.id }, formatCaption(props.displayMonth, { locale: locale })));
|
|
358
327
|
}
|
|
359
328
|
|
|
360
329
|
/**
|
|
@@ -788,9 +757,7 @@ function HeadRow() {
|
|
|
788
757
|
var weekdays = getWeekdays(locale, weekStartsOn, ISOWeek);
|
|
789
758
|
return (React__default.createElement("tr", { style: styles.head_row, className: classNames.head_row },
|
|
790
759
|
showWeekNumber && (React__default.createElement("th", { scope: "col", style: styles.head_cell, className: classNames.head_cell })),
|
|
791
|
-
weekdays.map(function (weekday, i) { return (React__default.createElement("th", { key: i, scope: "col", className: classNames.head_cell, style: styles.head_cell },
|
|
792
|
-
React__default.createElement("span", { "aria-hidden": true }, formatWeekdayName(weekday, { locale: locale })),
|
|
793
|
-
React__default.createElement("span", { className: classNames.vhidden }, labelWeekday(weekday, { locale: locale })))); })));
|
|
760
|
+
weekdays.map(function (weekday, i) { return (React__default.createElement("th", { key: i, scope: "col", className: classNames.head_cell, style: styles.head_cell, "aria-label": labelWeekday(weekday, { locale: locale }) }, formatWeekdayName(weekday, { locale: locale }))); })));
|
|
794
761
|
}
|
|
795
762
|
|
|
796
763
|
/** Render the table head. */
|
|
@@ -969,7 +936,7 @@ function SelectRangeProviderInternal(_a) {
|
|
|
969
936
|
}
|
|
970
937
|
else {
|
|
971
938
|
modifiers.range_end = [selectedTo];
|
|
972
|
-
if (!isSameDay
|
|
939
|
+
if (!isSameDay(selectedFrom, selectedTo)) {
|
|
973
940
|
modifiers.range_middle = [
|
|
974
941
|
{
|
|
975
942
|
after: selectedFrom,
|
|
@@ -1223,7 +1190,7 @@ function isMatch(day, matchers) {
|
|
|
1223
1190
|
var diffAfter = differenceInCalendarDays(matcher.after, day);
|
|
1224
1191
|
var isDayBefore = diffBefore > 0;
|
|
1225
1192
|
var isDayAfter = diffAfter < 0;
|
|
1226
|
-
var isClosedInterval = isAfter
|
|
1193
|
+
var isClosedInterval = isAfter(matcher.before, matcher.after);
|
|
1227
1194
|
if (isClosedInterval) {
|
|
1228
1195
|
return isDayAfter && isDayBefore;
|
|
1229
1196
|
}
|
|
@@ -1745,9 +1712,6 @@ buttonRef) {
|
|
|
1745
1712
|
]);
|
|
1746
1713
|
var className = getDayClassNames(dayPicker, activeModifiers).join(' ');
|
|
1747
1714
|
var style = getDayStyle(dayPicker, activeModifiers);
|
|
1748
|
-
var ariaLabel = dayPicker.labels.labelDay(day, activeModifiers, {
|
|
1749
|
-
locale: dayPicker.locale
|
|
1750
|
-
});
|
|
1751
1715
|
var isHidden = Boolean((activeModifiers.outside && !dayPicker.showOutsideDays) ||
|
|
1752
1716
|
activeModifiers.hidden);
|
|
1753
1717
|
var DayContentComponent = (_c = (_b = dayPicker.components) === null || _b === void 0 ? void 0 : _b.DayContent) !== null && _c !== void 0 ? _c : DayContent;
|
|
@@ -1756,13 +1720,13 @@ buttonRef) {
|
|
|
1756
1720
|
style: style,
|
|
1757
1721
|
className: className,
|
|
1758
1722
|
children: children,
|
|
1759
|
-
'
|
|
1723
|
+
role: 'gridcell'
|
|
1760
1724
|
};
|
|
1761
1725
|
var isFocusTarget = focusContext.focusTarget &&
|
|
1762
1726
|
isSameDay(focusContext.focusTarget, day) &&
|
|
1763
1727
|
!activeModifiers.outside;
|
|
1764
1728
|
var isFocused = focusContext.focusedDay && isSameDay(focusContext.focusedDay, day);
|
|
1765
|
-
var buttonProps = __assign(__assign(__assign({}, divProps), (_a = { disabled: activeModifiers.disabled }, _a['aria-
|
|
1729
|
+
var buttonProps = __assign(__assign(__assign({}, divProps), (_a = { disabled: activeModifiers.disabled, role: 'gridcell' }, _a['aria-selected'] = activeModifiers.selected, _a.tabIndex = isFocused || isFocusTarget ? 0 : -1, _a)), eventHandlers);
|
|
1766
1730
|
var dayRender = {
|
|
1767
1731
|
isButton: isButton,
|
|
1768
1732
|
isHidden: isHidden,
|
|
@@ -1782,7 +1746,7 @@ function Day(props) {
|
|
|
1782
1746
|
var buttonRef = useRef(null);
|
|
1783
1747
|
var dayRender = useDayRender(props.date, props.displayMonth, buttonRef);
|
|
1784
1748
|
if (dayRender.isHidden) {
|
|
1785
|
-
return React__default.createElement(
|
|
1749
|
+
return React__default.createElement("div", { role: "gridcell" });
|
|
1786
1750
|
}
|
|
1787
1751
|
if (!dayRender.isButton) {
|
|
1788
1752
|
return React__default.createElement("div", __assign({}, dayRender.divProps));
|
|
@@ -1821,7 +1785,7 @@ function Row(props) {
|
|
|
1821
1785
|
}
|
|
1822
1786
|
return (React__default.createElement("tr", { className: classNames.row, style: styles.row },
|
|
1823
1787
|
weekNumberCell,
|
|
1824
|
-
props.dates.map(function (date) { return (React__default.createElement("td", { className: classNames.cell, style: styles.cell, key: getUnixTime(date) },
|
|
1788
|
+
props.dates.map(function (date) { return (React__default.createElement("td", { className: classNames.cell, style: styles.cell, key: getUnixTime(date), role: "presentation" },
|
|
1825
1789
|
React__default.createElement(DayComponent, { displayMonth: props.displayMonth, date: date }))); })));
|
|
1826
1790
|
}
|
|
1827
1791
|
|
|
@@ -1892,7 +1856,7 @@ function Table(props) {
|
|
|
1892
1856
|
var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;
|
|
1893
1857
|
return (React__default.createElement("table", { className: classNames.table, style: styles.table, role: "grid", "aria-labelledby": props['aria-labelledby'] },
|
|
1894
1858
|
!hideHead && React__default.createElement(HeadComponent, null),
|
|
1895
|
-
React__default.createElement("tbody", { className: classNames.tbody, style: styles.tbody }, weeks.map(function (week) { return (React__default.createElement(RowComponent, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber })); })),
|
|
1859
|
+
React__default.createElement("tbody", { className: classNames.tbody, style: styles.tbody, role: "rowgroup" }, weeks.map(function (week) { return (React__default.createElement(RowComponent, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber })); })),
|
|
1896
1860
|
React__default.createElement(FooterComponent, null)));
|
|
1897
1861
|
}
|
|
1898
1862
|
|
|
@@ -2138,7 +2102,7 @@ function RootProvider(props) {
|
|
|
2138
2102
|
* For example, to use Spanish locale:
|
|
2139
2103
|
*
|
|
2140
2104
|
* ```
|
|
2141
|
-
* import es from 'date-fns/locale
|
|
2105
|
+
* import { es } from 'date-fns/locale';
|
|
2142
2106
|
* <DayPicker locale={es} />
|
|
2143
2107
|
* ```
|
|
2144
2108
|
*/
|