react-day-picker 9.0.7 → 9.0.9

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.
Files changed (52) hide show
  1. package/dist/cjs/DayPicker.js +8 -3
  2. package/dist/cjs/DayPicker.js.map +1 -1
  3. package/dist/cjs/components/Chevron.d.ts +1 -0
  4. package/dist/cjs/helpers/getFormatters.d.ts +5 -5
  5. package/dist/cjs/types/shared.d.ts +11 -9
  6. package/dist/cjs/useCalendar.js +3 -28
  7. package/dist/cjs/useCalendar.js.map +1 -1
  8. package/dist/cjs/useDayPicker.d.ts +11 -1
  9. package/dist/cjs/useDayPicker.js.map +1 -1
  10. package/dist/cjs/useGetModifiers.js +16 -16
  11. package/dist/cjs/useGetModifiers.js.map +1 -1
  12. package/dist/cjs/utils/dateMatchModifiers.d.ts +8 -3
  13. package/dist/cjs/utils/dateMatchModifiers.js +10 -3
  14. package/dist/cjs/utils/dateMatchModifiers.js.map +1 -1
  15. package/dist/cjs/utils/typeguards.d.ts +5 -1
  16. package/dist/cjs/utils/typeguards.js +5 -1
  17. package/dist/cjs/utils/typeguards.js.map +1 -1
  18. package/dist/esm/DayPicker.js +8 -3
  19. package/dist/esm/DayPicker.js.map +1 -1
  20. package/dist/esm/components/Chevron.d.ts +1 -0
  21. package/dist/esm/helpers/getFormatters.d.ts +5 -5
  22. package/dist/esm/types/shared.d.ts +11 -9
  23. package/dist/esm/useCalendar.js +3 -28
  24. package/dist/esm/useCalendar.js.map +1 -1
  25. package/dist/esm/useDayPicker.d.ts +11 -1
  26. package/dist/esm/useDayPicker.js.map +1 -1
  27. package/dist/esm/useGetModifiers.js +16 -16
  28. package/dist/esm/useGetModifiers.js.map +1 -1
  29. package/dist/esm/utils/dateMatchModifiers.d.ts +8 -3
  30. package/dist/esm/utils/dateMatchModifiers.js +9 -3
  31. package/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  32. package/dist/esm/utils/typeguards.d.ts +5 -1
  33. package/dist/esm/utils/typeguards.js +5 -1
  34. package/dist/esm/utils/typeguards.js.map +1 -1
  35. package/examples/TestCase2389.test.tsx +41 -0
  36. package/examples/TestCase2389.tsx +18 -0
  37. package/examples/index.ts +1 -0
  38. package/package.json +9 -9
  39. package/src/DayPicker.test.tsx +1 -15
  40. package/src/DayPicker.tsx +8 -1
  41. package/src/components/Chevron.tsx +2 -0
  42. package/src/style.css +13 -18
  43. package/src/style.module.css +13 -18
  44. package/src/types/shared.ts +11 -8
  45. package/src/useCalendar.ts +7 -43
  46. package/src/useDayPicker.ts +18 -1
  47. package/src/useGetModifiers.tsx +16 -16
  48. package/src/utils/dateMatchModifiers.ts +10 -3
  49. package/src/utils/typeguards.ts +5 -1
  50. package/website/docs/docs/styling.mdx +1 -1
  51. package/website/docs/guides/input-fields.mdx +1 -1
  52. package/website/docs/upgrading.mdx +1 -1
@@ -1,7 +1,7 @@
1
1
  import type { CSSProperties } from "react";
2
2
  import { UI, DayFlag, SelectionState } from "../UI.js";
3
3
  import * as components from "../components/custom-components.js";
4
- import { formatCaption, formatDay, formatMonthCaption, formatMonthDropdown, formatWeekdayName, formatWeekNumber, formatYearCaption, formatYearDropdown } from "../formatters/index.js";
4
+ import { formatCaption, formatDay, formatMonthCaption, formatMonthDropdown, formatWeekdayName, formatWeekNumber, formatWeekNumberHeader, formatYearCaption, formatYearDropdown } from "../formatters/index.js";
5
5
  import { labelDayButton, labelNav, labelGrid, labelGridcell, labelMonthDropdown, labelNext, labelPrevious, labelWeekday, labelWeekNumber, labelWeekNumberHeader, labelYearDropdown } from "../labels/index.js";
6
6
  import { dateLib } from "../lib/index.js";
7
7
  /**
@@ -71,20 +71,22 @@ export type DateLib = typeof dateLib;
71
71
  export type Formatters = {
72
72
  /** Format the caption of a month grid. */
73
73
  formatCaption: typeof formatCaption;
74
- /** @deprecated Use {@link Formatters.formatCaption} instead. */
75
- formatMonthCaption: typeof formatMonthCaption;
76
- /** Format the label in the month dropdown. */
77
- formatMonthDropdown: typeof formatMonthDropdown;
78
- /** @deprecated Use {@link Formatters.formatYearDropdown} instead. */
79
- formatYearCaption: typeof formatYearCaption;
80
- /** Format the label in the year dropdown. */
81
- formatYearDropdown: typeof formatYearDropdown;
82
74
  /** Format the day in the day cell. */
83
75
  formatDay: typeof formatDay;
76
+ /** Format the label in the month dropdown. */
77
+ formatMonthDropdown: typeof formatMonthDropdown;
78
+ /** @deprecated Use {@link Formatters.formatCaption} instead. */
79
+ formatMonthCaption: typeof formatMonthCaption;
84
80
  /** Format the week number. */
85
81
  formatWeekNumber: typeof formatWeekNumber;
82
+ /** Format the header of the week number column. */
83
+ formatWeekNumberHeader: typeof formatWeekNumberHeader;
86
84
  /** Format the week day name in the header. */
87
85
  formatWeekdayName: typeof formatWeekdayName;
86
+ /** Format the label in the year dropdown. */
87
+ formatYearDropdown: typeof formatYearDropdown;
88
+ /** @deprecated Use {@link Formatters.formatYearDropdown} instead. */
89
+ formatYearCaption: typeof formatYearCaption;
88
90
  };
89
91
  /** Map of functions to translate ARIA labels for the relative elements. */
90
92
  export type Labels = {
@@ -1,4 +1,3 @@
1
- import { useEffect, useState } from "react";
2
1
  import { getDates } from "./helpers/getDates.js";
3
2
  import { getDays } from "./helpers/getDays.js";
4
3
  import { getDisplayMonths } from "./helpers/getDisplayMonths.js";
@@ -8,37 +7,13 @@ import { getNavMonths } from "./helpers/getNavMonth.js";
8
7
  import { getNextMonth } from "./helpers/getNextMonth.js";
9
8
  import { getPreviousMonth } from "./helpers/getPreviousMonth.js";
10
9
  import { getWeeks } from "./helpers/getWeeks.js";
10
+ import { useControlledValue } from "./helpers/useControlledValue.js";
11
11
  /** @private */
12
12
  export function useCalendar(props, dateLib) {
13
- const { fromYear, toYear, startMonth, endMonth, today, numberOfMonths, month, defaultMonth } = props;
14
13
  const [navStart, navEnd] = getNavMonths(props, dateLib);
15
14
  const { startOfMonth, endOfMonth } = dateLib;
16
- const initialDisplayMonth = getInitialMonth(props, dateLib);
17
- // The first month displayed in the calendar
18
- const [firstMonth, setFirstMonth] = useState(initialDisplayMonth);
19
- useEffect(() => {
20
- const initialDisplayMonth = getInitialMonth({
21
- fromYear,
22
- toYear,
23
- startMonth,
24
- endMonth,
25
- month,
26
- defaultMonth,
27
- today,
28
- numberOfMonths
29
- }, dateLib);
30
- setFirstMonth(initialDisplayMonth);
31
- }, [
32
- dateLib,
33
- defaultMonth,
34
- endMonth,
35
- fromYear,
36
- month,
37
- numberOfMonths,
38
- startMonth,
39
- toYear,
40
- today
41
- ]);
15
+ const initialMonth = getInitialMonth(props, dateLib);
16
+ const [firstMonth, setFirstMonth] = useControlledValue(initialMonth, props.month ? startOfMonth(props.month) : undefined);
42
17
  /** The months displayed in the calendar. */
43
18
  const displayMonths = getDisplayMonths(firstMonth, navEnd, props, dateLib);
44
19
  /** The dates displayed in the calendar. */
@@ -1 +1 @@
1
- {"version":3,"file":"useCalendar.js","sourceRoot":"","sources":["../../src/useCalendar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useCalendar.js","sourceRoot":"","sources":["../../src/useCalendar.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { CalendarDay } from "./classes/CalendarDay.js";
2
2
  import { CalendarMonth } from "./classes/CalendarMonth.js";
3
3
  import type { DayPickerProps } from "./types/props.js";
4
4
  import type { SelectedValue, SelectHandler } from "./types/selection.js";
5
- import { Modifiers } from "./types/shared.js";
5
+ import { ClassNames, CustomComponents, Formatters, Labels, Modifiers, Styles } from "./types/shared.js";
6
6
  /** @private */
7
7
  export declare const dayPickerContext: import("react").Context<DayPickerContext<DayPickerProps> | undefined>;
8
8
  export type DayPickerContext<T extends DayPickerProps> = {
@@ -22,6 +22,16 @@ export type DayPickerContext<T extends DayPickerProps> = {
22
22
  select: SelectHandler<T> | undefined;
23
23
  /** Whether the given date is selected. */
24
24
  isSelected: ((date: Date) => boolean) | undefined;
25
+ /** The components used internally by DayP. */
26
+ components: CustomComponents;
27
+ /** The class names for the UI elements. */
28
+ classNames: ClassNames;
29
+ /** The styles for the UI elements. */
30
+ styles: Partial<Styles> | undefined;
31
+ /** The labels used in the UI. */
32
+ labels: Labels;
33
+ /** The formatters used to format the UI elements. */
34
+ formatters: Formatters;
25
35
  };
26
36
  /**
27
37
  * Return the context to work with `<DayPicker />` inside custom components.
@@ -1 +1 @@
1
- {"version":3,"file":"useDayPicker.js","sourceRoot":"","sources":["../../src/useDayPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAQlD,eAAe;AACf,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAE3C,SAAS,CAAC,CAAC;AAqBb;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAA2B,KAAS;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAA8B,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"useDayPicker.js","sourceRoot":"","sources":["../../src/useDayPicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAelD,eAAe;AACf,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAE3C,SAAS,CAAC,CAAC;AA+Bb;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAA2B,KAAS;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,OAA8B,CAAC;AACxC,CAAC"}
@@ -8,15 +8,15 @@ import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
8
8
  export function useGetModifiers(days, props, dateLib) {
9
9
  const { disabled, hidden, modifiers, showOutsideDays, today } = props;
10
10
  const { isSameDay, isSameMonth, Date } = dateLib;
11
- const internal = {
11
+ const internalModifiersMap = {
12
12
  [DayFlag.focused]: [],
13
13
  [DayFlag.outside]: [],
14
14
  [DayFlag.disabled]: [],
15
15
  [DayFlag.hidden]: [],
16
16
  [DayFlag.today]: []
17
17
  };
18
- const custom = {};
19
- const selection = {
18
+ const customModifiersMap = {};
19
+ const selectionModifiersMap = {
20
20
  [SelectionState.range_end]: [],
21
21
  [SelectionState.range_middle]: [],
22
22
  [SelectionState.range_start]: [],
@@ -30,13 +30,13 @@ export function useGetModifiers(days, props, dateLib) {
30
30
  (!showOutsideDays && isOutside);
31
31
  const isToday = isSameDay(date, today ?? new Date());
32
32
  if (isOutside)
33
- internal.outside.push(day);
33
+ internalModifiersMap.outside.push(day);
34
34
  if (isDisabled)
35
- internal.disabled.push(day);
35
+ internalModifiersMap.disabled.push(day);
36
36
  if (isHidden)
37
- internal.hidden.push(day);
37
+ internalModifiersMap.hidden.push(day);
38
38
  if (isToday)
39
- internal.today.push(day);
39
+ internalModifiersMap.today.push(day);
40
40
  // Add custom modifiers
41
41
  if (modifiers) {
42
42
  Object.keys(modifiers).forEach((name) => {
@@ -46,11 +46,11 @@ export function useGetModifiers(days, props, dateLib) {
46
46
  : false;
47
47
  if (!isMatch)
48
48
  return;
49
- if (custom[name]) {
50
- custom[name].push(day);
49
+ if (customModifiersMap[name]) {
50
+ customModifiersMap[name].push(day);
51
51
  }
52
52
  else {
53
- custom[name] = [day];
53
+ customModifiersMap[name] = [day];
54
54
  }
55
55
  });
56
56
  }
@@ -72,16 +72,16 @@ export function useGetModifiers(days, props, dateLib) {
72
72
  };
73
73
  const customModifiers = {};
74
74
  // Find the modifiers for the given day
75
- for (const name in internal) {
76
- const days = internal[name];
75
+ for (const name in internalModifiersMap) {
76
+ const days = internalModifiersMap[name];
77
77
  dayFlags[name] = days.some((d) => d === day);
78
78
  }
79
- for (const name in selection) {
80
- const days = selection[name];
79
+ for (const name in selectionModifiersMap) {
80
+ const days = selectionModifiersMap[name];
81
81
  selectionStates[name] = days.some((d) => d === day);
82
82
  }
83
- for (const name in custom) {
84
- customModifiers[name] = custom[name].some((d) => d === day);
83
+ for (const name in customModifiersMap) {
84
+ customModifiers[name] = customModifiersMap[name].some((d) => d === day);
85
85
  }
86
86
  return {
87
87
  ...selectionStates,
@@ -1 +1 @@
1
- {"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { DateLib, Matcher } from "../types/index.js";
4
4
  * {@link Matcher}.
5
5
  *
6
6
  * ```tsx
7
- * const day = new Date(2022, 5, 19);
7
+ * const date = new Date(2022, 5, 19);
8
8
  * const matcher1: DateRange = {
9
9
  * from: new Date(2021, 12, 21),
10
10
  * to: new Date(2021, 12, 30)
@@ -13,9 +13,14 @@ import type { DateLib, Matcher } from "../types/index.js";
13
13
  * from: new Date(2022, 5, 1),
14
14
  * to: new Date(2022, 5, 23)
15
15
  * }
16
- * const isMatch(day, [matcher1, matcher2]); // true, since day is in the matcher1 range.
16
+ * const dateMatchModifiers(date, [matcher1, matcher2]); // true, since day is in the matcher1 range.
17
17
  * ```
18
18
  *
19
19
  * @group Utilities
20
20
  */
21
- export declare function dateMatchModifiers(date: Date, matchers: Matcher | Matcher[], dateLib: DateLib): boolean;
21
+ export declare function dateMatchModifiers(date: Date, matchers: Matcher | Matcher[], dateLib?: DateLib): boolean;
22
+ /**
23
+ * @private
24
+ * @deprecated Use {@link dateMatchModifiers} instead.
25
+ */
26
+ export declare const isMatch: typeof dateMatchModifiers;
@@ -1,3 +1,4 @@
1
+ import { dateLib as defaultDateLib } from "../lib/dateLib.js";
1
2
  import { rangeIncludesDate } from "./rangeIncludesDate.js";
2
3
  import { isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDatesArray, isDayOfWeekType } from "./typeguards.js";
3
4
  /**
@@ -5,7 +6,7 @@ import { isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDates
5
6
  * {@link Matcher}.
6
7
  *
7
8
  * ```tsx
8
- * const day = new Date(2022, 5, 19);
9
+ * const date = new Date(2022, 5, 19);
9
10
  * const matcher1: DateRange = {
10
11
  * from: new Date(2021, 12, 21),
11
12
  * to: new Date(2021, 12, 30)
@@ -14,12 +15,12 @@ import { isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDates
14
15
  * from: new Date(2022, 5, 1),
15
16
  * to: new Date(2022, 5, 23)
16
17
  * }
17
- * const isMatch(day, [matcher1, matcher2]); // true, since day is in the matcher1 range.
18
+ * const dateMatchModifiers(date, [matcher1, matcher2]); // true, since day is in the matcher1 range.
18
19
  * ```
19
20
  *
20
21
  * @group Utilities
21
22
  */
22
- export function dateMatchModifiers(date, matchers, dateLib) {
23
+ export function dateMatchModifiers(date, matchers, dateLib = defaultDateLib) {
23
24
  const matchersArr = !Array.isArray(matchers) ? [matchers] : matchers;
24
25
  const { isSameDay, differenceInCalendarDays, isAfter } = dateLib;
25
26
  return matchersArr.some((matcher) => {
@@ -66,4 +67,9 @@ export function dateMatchModifiers(date, matchers, dateLib) {
66
67
  return false;
67
68
  });
68
69
  }
70
+ /**
71
+ * @private
72
+ * @deprecated Use {@link dateMatchModifiers} instead.
73
+ */
74
+ export const isMatch = dateMatchModifiers;
69
75
  //# sourceMappingURL=dateMatchModifiers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateMatchModifiers.js","sourceRoot":"","sources":["../../../src/utils/dateMatchModifiers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,QAA6B,EAC7B,OAAgB;IAEhB,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACjE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE;QAC3C,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7C,CAAC;YACD,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;YACnC,MAAM,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;YACjC,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAChE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,UAAU,IAAI,WAAW,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,OAAO,WAAW,IAAI,UAAU,CAAC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,OAAO,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"dateMatchModifiers.js","sourceRoot":"","sources":["../../../src/utils/dateMatchModifiers.ts"],"names":[],"mappings":"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"}
@@ -29,5 +29,9 @@ export declare function isDateBeforeType(value: unknown): value is DateBefore;
29
29
  * @group Utilities
30
30
  */
31
31
  export declare function isDayOfWeekType(value: unknown): value is DayOfWeek;
32
- /** Returns true if `value` is an array of valid dates. */
32
+ /**
33
+ * Returns true if `value` is an array of valid dates.
34
+ *
35
+ * @private
36
+ */
33
37
  export declare function isDatesArray(value: unknown, dateLib: DateLib): value is Date[];
@@ -41,7 +41,11 @@ export function isDateBeforeType(value) {
41
41
  export function isDayOfWeekType(value) {
42
42
  return Boolean(value && typeof value === "object" && "dayOfWeek" in value);
43
43
  }
44
- /** Returns true if `value` is an array of valid dates. */
44
+ /**
45
+ * Returns true if `value` is an array of valid dates.
46
+ *
47
+ * @private
48
+ */
45
49
  export function isDatesArray(value, dateLib) {
46
50
  return Array.isArray(value) && value.every(dateLib.isDate);
47
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../../src/utils/typeguards.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,CACZ,OAAO;QACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,QAAQ,IAAI,OAAO;QACnB,OAAO,IAAI,OAAO,CACrB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAAgB;IAEhB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"typeguards.js","sourceRoot":"","sources":["../../../src/utils/typeguards.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO,OAAO,CACZ,OAAO;QACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,QAAQ,IAAI,OAAO;QACnB,OAAO,IAAI,OAAO,CACrB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,IAAI,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAc,EACd,OAAgB;IAEhB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import React from "react";
2
+
3
+ import { labelGrid } from "react-day-picker";
4
+
5
+ import { dateButton, grid, gridcell, nextButton } from "@/test/elements";
6
+ import { render } from "@/test/render";
7
+ import { user } from "@/test/user";
8
+
9
+ import { TestCase2389 } from "./TestCase2389";
10
+
11
+ const today = new Date(2024, 8, 6);
12
+
13
+ beforeAll(() => jest.setSystemTime(today));
14
+ afterAll(() => jest.useRealTimers());
15
+
16
+ beforeEach(async () => {
17
+ render(<TestCase2389 />);
18
+ });
19
+
20
+ describe("when moving to the next month", () => {
21
+ beforeEach(async () => {
22
+ await user.click(nextButton());
23
+ });
24
+ test("should display the next month", () => {
25
+ const nextMonth = new Date(2024, 9, 1);
26
+ expect(grid(labelGrid(nextMonth))).toBeVisible();
27
+ });
28
+ describe("when clicking a day button", () => {
29
+ const day = new Date(2024, 9, 10);
30
+ beforeEach(async () => {
31
+ await user.click(dateButton(day));
32
+ });
33
+ test("should select the day", async () => {
34
+ expect(gridcell(day, true)).toHaveAttribute("aria-selected", "true");
35
+ });
36
+ test("should still display the next month", () => {
37
+ const nextMonth = new Date(2024, 9, 1);
38
+ expect(grid(labelGrid(nextMonth))).toBeVisible();
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,18 @@
1
+ import React, { useState } from "react";
2
+
3
+ import { DayPicker, DateRange } from "react-day-picker";
4
+ import "react-day-picker/style.css";
5
+
6
+ export function TestCase2389() {
7
+ const [selectedPeriod, setSelectedPeriod] = useState<DateRange | undefined>();
8
+
9
+ return (
10
+ <DayPicker
11
+ mode="range"
12
+ startMonth={new Date("2024-07-01")}
13
+ endMonth={new Date("2025-07-31")}
14
+ onSelect={setSelectedPeriod}
15
+ selected={selectedPeriod}
16
+ />
17
+ );
18
+ }
package/examples/index.ts CHANGED
@@ -61,6 +61,7 @@ export * from "./StylingModifiers";
61
61
  export * from "./TailwindCSS";
62
62
  export * from "./Testcase1567";
63
63
  export * from "./TestCase2047";
64
+ export * from "./TestCase2389";
64
65
  export * from "./Utc";
65
66
  export * from "./WeekIso";
66
67
  export * from "./Weeknumber";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-day-picker",
3
- "version": "9.0.7",
3
+ "version": "9.0.9",
4
4
  "description": "Customizable Date Picker for React",
5
5
  "author": "Giampaolo Bellavite <io@gpbl.dev>",
6
6
  "homepage": "https://daypicker.dev",
@@ -136,13 +136,13 @@
136
136
  "@date-fns/utc": "^1.2.0",
137
137
  "@jest/types": "^29.6.3",
138
138
  "@testing-library/dom": "^10.4.0",
139
- "@testing-library/jest-dom": "^6.4.8",
140
- "@testing-library/react": "^16.0.0",
139
+ "@testing-library/jest-dom": "^6.5.0",
140
+ "@testing-library/react": "^16.0.1",
141
141
  "@testing-library/user-event": "^14.5.2",
142
142
  "@trivago/prettier-plugin-sort-imports": "^4.3.0",
143
143
  "@types/jest": "^29.5.12",
144
- "@types/node": "^22.1.0",
145
- "@types/react": "^18.3.3",
144
+ "@types/node": "^22.5.1",
145
+ "@types/react": "^18.3.5",
146
146
  "@types/react-dom": "^18.3.0",
147
147
  "@typescript-eslint/eslint-plugin": "^7.18.0",
148
148
  "@typescript-eslint/parser": "^7.18.0",
@@ -150,14 +150,14 @@
150
150
  "date-fns-jalali": "3.6.0-1",
151
151
  "eslint": "^8.57.0",
152
152
  "eslint-config-prettier": "^9.1.0",
153
- "eslint-import-resolver-typescript": "^3.6.1",
153
+ "eslint-import-resolver-typescript": "^3.6.3",
154
154
  "eslint-plugin-import": "^2.29.1",
155
- "eslint-plugin-jest": "^28.7.0",
155
+ "eslint-plugin-jest": "^28.8.2",
156
156
  "eslint-plugin-prettier": "^5.2.1",
157
157
  "eslint-plugin-react": "^7.35.0",
158
158
  "eslint-plugin-react-hooks": "^4.6.2",
159
159
  "eslint-plugin-require-extensions": "^0.1.3",
160
- "eslint-plugin-testing-library": "^6.2.2",
160
+ "eslint-plugin-testing-library": "^6.3.0",
161
161
  "jest": "^29.7.0",
162
162
  "jest-environment-jsdom": "^29.7.0",
163
163
  "mockdate": "^3.0.5",
@@ -168,7 +168,7 @@
168
168
  "react-dom": "^18.3.1",
169
169
  "ts-jest": "^29.2.4",
170
170
  "ts-node": "^10.9.2",
171
- "tslib": "^2.6.3",
171
+ "tslib": "^2.7.0",
172
172
  "typescript": "~5.5.4",
173
173
  "typescript-css-modules": "^1.0.4"
174
174
  },
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
 
3
- import { addMonths, startOfDay, startOfMonth } from "date-fns";
3
+ import { startOfDay, startOfMonth } from "date-fns";
4
4
  import { defaultLocale } from "react-day-picker";
5
5
 
6
6
  import {
@@ -16,7 +16,6 @@ import { user } from "@/test/user";
16
16
  import { DayPicker } from "./DayPicker";
17
17
  import { MonthProps } from "./components/Month";
18
18
  import { MonthsProps } from "./components/Months";
19
- import { labelGrid } from "./labels";
20
19
 
21
20
  const testId = "test";
22
21
  const dayPicker = () => screen.getByTestId(testId);
@@ -147,19 +146,6 @@ describe("when the `month` is changed programmatically", () => {
147
146
  });
148
147
  });
149
148
 
150
- describe("when the `startMonth` is changed programmatically", () => {
151
- test("should update the calendar to reflect the new month", async () => {
152
- const initialStartMonth = new Date();
153
- const newStartMonth = addMonths(new Date(), 2);
154
- const { rerender } = render(
155
- <DayPicker startMonth={initialStartMonth} mode="single" />
156
- );
157
- expect(grid(labelGrid(initialStartMonth))).toBeInTheDocument();
158
- rerender(<DayPicker startMonth={newStartMonth} mode="single" />);
159
- expect(grid(labelGrid(newStartMonth))).toBeInTheDocument();
160
- });
161
- });
162
-
163
149
  test("extends the default locale", () => {
164
150
  render(
165
151
  <DayPicker
package/src/DayPicker.tsx CHANGED
@@ -248,7 +248,12 @@ export function DayPicker(props: DayPickerProps) {
248
248
  nextMonth,
249
249
  previousMonth,
250
250
  goToMonth,
251
- getModifiers
251
+ getModifiers,
252
+ components,
253
+ classNames,
254
+ styles,
255
+ labels,
256
+ formatters
252
257
  };
253
258
 
254
259
  return (
@@ -367,6 +372,7 @@ export function DayPicker(props: DayPickerProps) {
367
372
  {captionLayout === "dropdown" ||
368
373
  captionLayout === "dropdown-months" ? (
369
374
  <components.Dropdown
375
+ className={classNames[UI.MonthsDropdown]}
370
376
  aria-label={labelMonthDropdown()}
371
377
  classNames={classNames}
372
378
  components={components}
@@ -384,6 +390,7 @@ export function DayPicker(props: DayPickerProps) {
384
390
  {captionLayout === "dropdown" ||
385
391
  captionLayout === "dropdown-years" ? (
386
392
  <components.Dropdown
393
+ className={classNames[UI.YearsDropdown]}
387
394
  aria-label={labelYearDropdown(labelOptions)}
388
395
  classNames={classNames}
389
396
  components={components}
@@ -38,3 +38,5 @@ export function Chevron(props: {
38
38
  </svg>
39
39
  );
40
40
  }
41
+
42
+ export type ChevronProps = Parameters<typeof Chevron>[0];
package/src/style.css CHANGED
@@ -73,17 +73,6 @@
73
73
  box-sizing: border-box;
74
74
  }
75
75
 
76
- /* Reset buttons */
77
- .rdp-root button {
78
- border: none;
79
- background: none;
80
- padding: 0;
81
- margin: 0;
82
- cursor: pointer;
83
- font: inherit;
84
- color: inherit;
85
- }
86
-
87
76
  .rdp-day {
88
77
  width: var(--rdp-day-width);
89
78
  height: var(--rdp-day-height);
@@ -92,6 +81,12 @@
92
81
  }
93
82
 
94
83
  .rdp-day_button {
84
+ background: none;
85
+ padding: 0;
86
+ margin: 0;
87
+ cursor: pointer;
88
+ font: inherit;
89
+ color: inherit;
95
90
  justify-content: center;
96
91
  align-items: center;
97
92
  display: flex;
@@ -119,20 +114,20 @@
119
114
 
120
115
  .rdp-button_next,
121
116
  .rdp-button_previous {
117
+ border: none;
118
+ background: none;
119
+ padding: 0;
120
+ margin: 0;
121
+ cursor: pointer;
122
+ font: inherit;
123
+ color: inherit;
122
124
  -moz-appearance: none;
123
125
  -webkit-appearance: none;
124
126
  display: inline-flex;
125
127
  align-items: center;
126
128
  justify-content: center;
127
- margin: 0;
128
- padding: 0;
129
129
  position: relative;
130
- font: inherit;
131
130
  appearance: none;
132
- background: none;
133
- border: 0;
134
- color: inherit;
135
- cursor: pointer;
136
131
 
137
132
  width: var(--rdp-nav_button-width);
138
133
  height: var(--rdp-nav_button-height);
@@ -73,17 +73,6 @@
73
73
  box-sizing: border-box;
74
74
  }
75
75
 
76
- /* Reset buttons */
77
- .root button {
78
- border: none;
79
- background: none;
80
- padding: 0;
81
- margin: 0;
82
- cursor: pointer;
83
- font: inherit;
84
- color: inherit;
85
- }
86
-
87
76
  .day {
88
77
  width: var(--rdp-day-width);
89
78
  height: var(--rdp-day-height);
@@ -92,6 +81,12 @@
92
81
  }
93
82
 
94
83
  .day_button {
84
+ background: none;
85
+ padding: 0;
86
+ margin: 0;
87
+ cursor: pointer;
88
+ font: inherit;
89
+ color: inherit;
95
90
  justify-content: center;
96
91
  align-items: center;
97
92
  display: flex;
@@ -119,20 +114,20 @@
119
114
 
120
115
  .button_next,
121
116
  .button_previous {
117
+ border: none;
118
+ background: none;
119
+ padding: 0;
120
+ margin: 0;
121
+ cursor: pointer;
122
+ font: inherit;
123
+ color: inherit;
122
124
  -moz-appearance: none;
123
125
  -webkit-appearance: none;
124
126
  display: inline-flex;
125
127
  align-items: center;
126
128
  justify-content: center;
127
- margin: 0;
128
- padding: 0;
129
129
  position: relative;
130
- font: inherit;
131
130
  appearance: none;
132
- background: none;
133
- border: 0;
134
- color: inherit;
135
- cursor: pointer;
136
131
 
137
132
  width: var(--rdp-nav_button-width);
138
133
  height: var(--rdp-nav_button-height);