react-day-picker 9.3.0 → 9.3.1

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/formatters/formatMonthDropdown.d.ts +2 -1
  2. package/dist/cjs/formatters/formatMonthDropdown.js +1 -2
  3. package/dist/cjs/formatters/formatMonthDropdown.js.map +1 -1
  4. package/dist/cjs/helpers/getDates.d.ts +2 -0
  5. package/dist/cjs/helpers/getDates.js +5 -3
  6. package/dist/cjs/helpers/getDates.js.map +1 -1
  7. package/dist/cjs/helpers/getMonthOptions.d.ts +1 -1
  8. package/dist/cjs/helpers/getMonthOptions.js +2 -1
  9. package/dist/cjs/helpers/getMonthOptions.js.map +1 -1
  10. package/dist/cjs/helpers/getMonths.js +5 -2
  11. package/dist/cjs/helpers/getMonths.js.map +1 -1
  12. package/dist/cjs/types/deprecated.d.ts +7 -0
  13. package/dist/cjs/types/deprecated.js +0 -1
  14. package/dist/cjs/types/deprecated.js.map +1 -1
  15. package/dist/cjs/types/props.d.ts +5 -0
  16. package/dist/cjs/useGetModifiers.d.ts +2 -0
  17. package/dist/cjs/useGetModifiers.js +2 -17
  18. package/dist/cjs/useGetModifiers.js.map +1 -1
  19. package/dist/esm/formatters/formatMonthDropdown.d.ts +2 -1
  20. package/dist/esm/formatters/formatMonthDropdown.js +1 -2
  21. package/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
  22. package/dist/esm/helpers/getDates.d.ts +2 -0
  23. package/dist/esm/helpers/getDates.js +3 -2
  24. package/dist/esm/helpers/getDates.js.map +1 -1
  25. package/dist/esm/helpers/getMonthOptions.d.ts +1 -1
  26. package/dist/esm/helpers/getMonthOptions.js +2 -1
  27. package/dist/esm/helpers/getMonthOptions.js.map +1 -1
  28. package/dist/esm/helpers/getMonths.js +5 -2
  29. package/dist/esm/helpers/getMonths.js.map +1 -1
  30. package/dist/esm/types/deprecated.d.ts +7 -0
  31. package/dist/esm/types/deprecated.js +0 -1
  32. package/dist/esm/types/deprecated.js.map +1 -1
  33. package/dist/esm/types/props.d.ts +5 -0
  34. package/dist/esm/useGetModifiers.d.ts +2 -0
  35. package/dist/esm/useGetModifiers.js +3 -18
  36. package/dist/esm/useGetModifiers.js.map +1 -1
  37. package/examples/TestCase2585.test.tsx +11 -0
  38. package/examples/TestCase2585.tsx +20 -0
  39. package/examples/__snapshots__/Range.test.tsx.snap +5 -5
  40. package/examples/index.ts +1 -0
  41. package/package.json +2 -2
  42. package/src/formatters/formatMonthDropdown.test.ts +5 -1
  43. package/src/formatters/formatMonthDropdown.ts +2 -3
  44. package/src/helpers/getDates.test.ts +30 -3
  45. package/src/helpers/getDates.ts +3 -2
  46. package/src/helpers/getMonthOptions.ts +5 -2
  47. package/src/helpers/getMonths.ts +6 -2
  48. package/src/types/deprecated.ts +15 -0
  49. package/src/types/props.ts +5 -0
  50. package/src/useGetModifiers.test.tsx +79 -0
  51. package/src/useGetModifiers.tsx +5 -21
  52. package/website/docs/upgrading.mdx +29 -28
@@ -1,3 +1,4 @@
1
+ import type { Locale } from "../classes/DateLib.js";
1
2
  /**
2
3
  * Format the month number for the dropdown option label.
3
4
  *
@@ -9,4 +10,4 @@ export declare function formatMonthDropdown(
9
10
  /** The month number to format. */
10
11
  monthNumber: number,
11
12
  /** The locale to use for formatting. */
12
- locale?: import("date-fns/locale/types.js").Locale): string;
13
+ locale: Locale): string;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatMonthDropdown = formatMonthDropdown;
4
- const DateLib_js_1 = require("../classes/DateLib.js");
5
4
  /**
6
5
  * Format the month number for the dropdown option label.
7
6
  *
@@ -13,7 +12,7 @@ function formatMonthDropdown(
13
12
  /** The month number to format. */
14
13
  monthNumber,
15
14
  /** The locale to use for formatting. */
16
- locale = DateLib_js_1.defaultLocale) {
15
+ locale) {
17
16
  return locale.localize?.month(monthNumber);
18
17
  }
19
18
  //# sourceMappingURL=formatMonthDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":";;AAUA,kDAOC;AAhBD,sDAAsD;AAEtD;;;;;;GAMG;AACH,SAAgB,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAM,GAAG,0BAAa;IAEtB,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":";;AASA,kDAOC;AAdD;;;;;;GAMG;AACH,SAAgB,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAc;IAEd,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { type DateLib } from "../classes/DateLib.js";
2
2
  import { type DayPickerProps } from "../types/props.js";
3
+ /** The number of days in a month when having 6 weeks. */
4
+ export declare const NrOfDaysWithFixedWeeks = 42;
3
5
  /** Return all the dates to display in the calendar. */
4
6
  export declare function getDates(displayMonths: Date[], maxDate: Date | undefined, props: Pick<DayPickerProps, "ISOWeek" | "fixedWeeks">, dateLib: DateLib): Date[];
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NrOfDaysWithFixedWeeks = void 0;
3
4
  exports.getDates = getDates;
4
5
  /** The number of days in a month when having 6 weeks. */
5
- const NrOfDaysWithFixedWeeks = 42;
6
+ exports.NrOfDaysWithFixedWeeks = 42;
6
7
  /** Return all the dates to display in the calendar. */
7
8
  function getDates(displayMonths, maxDate, props, dateLib) {
8
9
  const firstMonth = displayMonths[0];
@@ -26,9 +27,10 @@ function getDates(displayMonths, maxDate, props, dateLib) {
26
27
  dates.push(date);
27
28
  }
28
29
  // If fixed weeks is enabled, add the extra dates to the array
29
- const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
30
+ const extraDates = exports.NrOfDaysWithFixedWeeks * nOfMonths;
30
31
  if (fixedWeeks && dates.length < extraDates) {
31
- for (let i = 0; i < 7; i++) {
32
+ const daysToAdd = extraDates - dates.length;
33
+ for (let i = 0; i < daysToAdd; i++) {
32
34
  const date = addDays(dates[dates.length - 1], 1);
33
35
  dates.push(date);
34
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":";;AAOA,4BAmDC;AAvDD,yDAAyD;AACzD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,uDAAuD;AACvD,SAAgB,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":";;;AAOA,4BAoDC;AAxDD,yDAAyD;AAC5C,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,uDAAuD;AACvD,SAAgB,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,8BAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DateLib } from "../classes/DateLib.js";
1
+ import { type DateLib } from "../classes/DateLib.js";
2
2
  import { DropdownOption } from "../components/Dropdown.js";
3
3
  import type { Formatters } from "../types/index.js";
4
4
  /** Return the months to show in the dropdown. */
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMonthOptions = getMonthOptions;
4
+ const DateLib_js_1 = require("../classes/DateLib.js");
4
5
  /** Return the months to show in the dropdown. */
5
6
  function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
6
7
  if (!navStart)
@@ -19,7 +20,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
19
20
  return a - b;
20
21
  });
21
22
  const options = sortedMonths.map((value) => {
22
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
23
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? DateLib_js_1.defaultLocale);
23
24
  const month = dateLib.Date
24
25
  ? new dateLib.Date(year, value)
25
26
  : new Date(year, value);
@@ -1 +1 @@
1
- {"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":";;AAKA,0CAmCC;AApCD,iDAAiD;AACjD,SAAgB,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":";;AAKA,0CAsCC;AA3CD,sDAAoE;AAIpE,iDAAiD;AACjD,SAAgB,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAC1C,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,0BAAa,CACxC,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMonths = getMonths;
4
4
  const index_js_1 = require("../classes/index.js");
5
+ const getDates_js_1 = require("./getDates.js");
5
6
  /** Return the months to display in the calendar. */
6
7
  function getMonths(
7
8
  /** The months (as dates) to display in the calendar. */
@@ -22,9 +23,11 @@ props, dateLib) {
22
23
  const monthDates = dates.filter((date) => {
23
24
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
24
25
  });
25
- if (props.fixedWeeks && monthDates.length < 42) {
26
+ if (props.fixedWeeks && monthDates.length < getDates_js_1.NrOfDaysWithFixedWeeks) {
26
27
  const extraDates = dates.filter((date) => {
27
- return (date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7));
28
+ const daysToAdd = getDates_js_1.NrOfDaysWithFixedWeeks - monthDates.length;
29
+ return (date > lastDateOfLastWeek &&
30
+ date <= addDays(lastDateOfLastWeek, daysToAdd));
28
31
  });
29
32
  monthDates.push(...extraDates);
30
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":";;AAKA,8BAwEC;AA5ED,kDAA+E;AAG/E,oDAAoD;AACpD,SAAgB,SAAS;AACvB,wDAAwD;AACxD,aAAqB;AACrB,4CAA4C;AAC5C,KAAa;AACb,sCAAsC;AACtC,KAAuE,EACvE,OAAgB;IAEhB,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,OAAO,CACL,IAAI,GAAG,kBAAkB,IAAI,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CACpE,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAmB,UAAU,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YAElE,MAAM,GAAG,GAAG,IAAI,sBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,IAAI,uBAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,wBAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":";;AAOA,8BA0EC;AAhFD,kDAA+E;AAG/E,+CAAuD;AAEvD,oDAAoD;AACpD,SAAgB,SAAS;AACvB,wDAAwD;AACxD,aAAqB;AACrB,4CAA4C;AAC5C,KAAa;AACb,sCAAsC;AACtC,KAAuE,EACvE,OAAgB;IAEhB,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,oCAAsB,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,MAAM,SAAS,GAAG,oCAAsB,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7D,OAAO,CACL,IAAI,GAAG,kBAAkB;oBACzB,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAmB,UAAU,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YAElE,MAAM,GAAG,GAAG,IAAI,sBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,IAAI,uBAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,wBAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { DayFlag, SelectionState } from "../UI.js";
1
2
  import { MonthCaption, type MonthCaptionProps } from "../components/MonthCaption.js";
2
3
  import { Week, type WeekProps } from "../components/Week.js";
3
4
  import { labelDayButton, labelNext, labelWeekday, labelWeekNumber } from "../labels/index.js";
@@ -75,6 +76,12 @@ export type DaySelectionMode = Mode;
75
76
  * @protected
76
77
  */
77
78
  export type Modifier = string;
79
+ /**
80
+ * @deprecated This type will be removed. Use {@link DayFlag} or
81
+ * {@link SelectionState} instead.
82
+ * @protected
83
+ */
84
+ export type InternalModifier = DayFlag.disabled | DayFlag.hidden | DayFlag.focused | SelectionState.range_end | SelectionState.range_middle | SelectionState.range_start | SelectionState.selected;
78
85
  /**
79
86
  * @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
80
87
  * @protected
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useNavigation = exports.Row = exports.Caption = void 0;
4
- /* eslint-disable @typescript-eslint/no-explicit-any */
5
4
  const MonthCaption_js_1 = require("../components/MonthCaption.js");
6
5
  const Week_js_1 = require("../components/Week.js");
7
6
  const useDayPicker_js_1 = require("../useDayPicker.js");
@@ -1 +1 @@
1
- {"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mEAGuC;AACvC,mDAA6D;AAO7D,wDAAkD;AAiBlD;;;;;GAKG;AACU,QAAA,OAAO,GAAG,8BAAY,CAAC;AAgBpC;;;;;GAKG;AACU,QAAA,GAAG,GAAG,cAAI,CAAC;AAqExB;;;;GAIG;AACU,QAAA,aAAa,GAAG,8BAAY,CAAC"}
1
+ {"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":";;;AAEA,mEAGuC;AACvC,mDAA6D;AAO7D,wDAAkD;AAiBlD;;;;;GAKG;AACU,QAAA,OAAO,GAAG,8BAAY,CAAC;AAgBpC;;;;;GAKG;AACU,QAAA,GAAG,GAAG,cAAI,CAAC;AAmFxB;;;;GAIG;AACU,QAAA,aAAa,GAAG,8BAAY,CAAC"}
@@ -264,6 +264,11 @@ export interface PropsBase {
264
264
  * @see https://daypicker.dev/guides/accessibility#autofocus
265
265
  */
266
266
  autoFocus?: boolean;
267
+ /**
268
+ * @private
269
+ * @deprecated This prop will be removed. Use {@link autoFocus} instead.
270
+ */
271
+ initialFocus?: boolean;
267
272
  /**
268
273
  * Apply the `disabled` modifier to the matching days.
269
274
  *
@@ -3,6 +3,8 @@ import type { DayPickerProps, Modifiers } from "./types/index.js";
3
3
  /**
4
4
  * Return a function to get the modifiers for a given day.
5
5
  *
6
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
7
+ *
6
8
  * @private
7
9
  */
8
10
  export declare function useGetModifiers(days: CalendarDay[], props: DayPickerProps, dateLib: DateLib): (day: CalendarDay) => Modifiers;
@@ -7,6 +7,8 @@ const dateMatchModifiers_js_1 = require("./utils/dateMatchModifiers.js");
7
7
  /**
8
8
  * Return a function to get the modifiers for a given day.
9
9
  *
10
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
11
+ *
10
12
  * @private
11
13
  */
12
14
  function useGetModifiers(days, props, dateLib) {
@@ -20,12 +22,6 @@ function useGetModifiers(days, props, dateLib) {
20
22
  [UI_js_1.DayFlag.today]: []
21
23
  };
22
24
  const customModifiersMap = {};
23
- const selectionModifiersMap = {
24
- [UI_js_1.SelectionState.range_end]: [],
25
- [UI_js_1.SelectionState.range_middle]: [],
26
- [UI_js_1.SelectionState.range_start]: [],
27
- [UI_js_1.SelectionState.selected]: []
28
- };
29
25
  for (const day of days) {
30
26
  const { date, displayMonth } = day;
31
27
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
@@ -73,27 +69,16 @@ function useGetModifiers(days, props, dateLib) {
73
69
  [UI_js_1.DayFlag.outside]: false,
74
70
  [UI_js_1.DayFlag.today]: false
75
71
  };
76
- const selectionStates = {
77
- [UI_js_1.SelectionState.range_end]: false,
78
- [UI_js_1.SelectionState.range_middle]: false,
79
- [UI_js_1.SelectionState.range_start]: false,
80
- [UI_js_1.SelectionState.selected]: false
81
- };
82
72
  const customModifiers = {};
83
73
  // Find the modifiers for the given day
84
74
  for (const name in internalModifiersMap) {
85
75
  const days = internalModifiersMap[name];
86
76
  dayFlags[name] = days.some((d) => d === day);
87
77
  }
88
- for (const name in selectionModifiersMap) {
89
- const days = selectionModifiersMap[name];
90
- selectionStates[name] = days.some((d) => d === day);
91
- }
92
78
  for (const name in customModifiersMap) {
93
79
  customModifiers[name] = customModifiersMap[name].some((d) => d === day);
94
80
  }
95
81
  return {
96
- ...selectionStates,
97
82
  ...dayFlags,
98
83
  // custom modifiers should override all the previous ones
99
84
  ...customModifiers
@@ -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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"}
@@ -1,3 +1,4 @@
1
+ import type { Locale } from "../classes/DateLib.js";
1
2
  /**
2
3
  * Format the month number for the dropdown option label.
3
4
  *
@@ -9,4 +10,4 @@ export declare function formatMonthDropdown(
9
10
  /** The month number to format. */
10
11
  monthNumber: number,
11
12
  /** The locale to use for formatting. */
12
- locale?: import("date-fns/locale/types.js").Locale): string;
13
+ locale: Locale): string;
@@ -1,4 +1,3 @@
1
- import { defaultLocale } from "../classes/DateLib.js";
2
1
  /**
3
2
  * Format the month number for the dropdown option label.
4
3
  *
@@ -10,7 +9,7 @@ export function formatMonthDropdown(
10
9
  /** The month number to format. */
11
10
  monthNumber,
12
11
  /** The locale to use for formatting. */
13
- locale = defaultLocale) {
12
+ locale) {
14
13
  return locale.localize?.month(monthNumber);
15
14
  }
16
15
  //# sourceMappingURL=formatMonthDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAM,GAAG,aAAa;IAEtB,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAc;IAEd,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { type DateLib } from "../classes/DateLib.js";
2
2
  import { type DayPickerProps } from "../types/props.js";
3
+ /** The number of days in a month when having 6 weeks. */
4
+ export declare const NrOfDaysWithFixedWeeks = 42;
3
5
  /** Return all the dates to display in the calendar. */
4
6
  export declare function getDates(displayMonths: Date[], maxDate: Date | undefined, props: Pick<DayPickerProps, "ISOWeek" | "fixedWeeks">, dateLib: DateLib): Date[];
@@ -1,5 +1,5 @@
1
1
  /** The number of days in a month when having 6 weeks. */
2
- const NrOfDaysWithFixedWeeks = 42;
2
+ export const NrOfDaysWithFixedWeeks = 42;
3
3
  /** Return all the dates to display in the calendar. */
4
4
  export function getDates(displayMonths, maxDate, props, dateLib) {
5
5
  const firstMonth = displayMonths[0];
@@ -25,7 +25,8 @@ export function getDates(displayMonths, maxDate, props, dateLib) {
25
25
  // If fixed weeks is enabled, add the extra dates to the array
26
26
  const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
27
27
  if (fixedWeeks && dates.length < extraDates) {
28
- for (let i = 0; i < 7; i++) {
28
+ const daysToAdd = extraDates - dates.length;
29
+ for (let i = 0; i < daysToAdd; i++) {
29
30
  const date = addDays(dates[dates.length - 1], 1);
30
31
  dates.push(date);
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":"AAGA,yDAAyD;AACzD,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAElC,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":"AAGA,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DateLib } from "../classes/DateLib.js";
1
+ import { type DateLib } from "../classes/DateLib.js";
2
2
  import { DropdownOption } from "../components/Dropdown.js";
3
3
  import type { Formatters } from "../types/index.js";
4
4
  /** Return the months to show in the dropdown. */
@@ -1,3 +1,4 @@
1
+ import { defaultLocale } from "../classes/DateLib.js";
1
2
  /** Return the months to show in the dropdown. */
2
3
  export function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
3
4
  if (!navStart)
@@ -16,7 +17,7 @@ export function getMonthOptions(displayMonth, navStart, navEnd, formatters, date
16
17
  return a - b;
17
18
  });
18
19
  const options = sortedMonths.map((value) => {
19
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
20
+ const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? defaultLocale);
20
21
  const month = dateLib.Date
21
22
  ? new dateLib.Date(year, value)
22
23
  : new Date(year, value);
@@ -1 +1 @@
1
- {"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":"AAIA,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;AAIpE,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAC1C,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CACxC,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { CalendarWeek, CalendarDay, CalendarMonth } from "../classes/index.js";
2
+ import { NrOfDaysWithFixedWeeks } from "./getDates.js";
2
3
  /** Return the months to display in the calendar. */
3
4
  export function getMonths(
4
5
  /** The months (as dates) to display in the calendar. */
@@ -19,9 +20,11 @@ props, dateLib) {
19
20
  const monthDates = dates.filter((date) => {
20
21
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
21
22
  });
22
- if (props.fixedWeeks && monthDates.length < 42) {
23
+ if (props.fixedWeeks && monthDates.length < NrOfDaysWithFixedWeeks) {
23
24
  const extraDates = dates.filter((date) => {
24
- return (date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7));
25
+ const daysToAdd = NrOfDaysWithFixedWeeks - monthDates.length;
26
+ return (date > lastDateOfLastWeek &&
27
+ date <= addDays(lastDateOfLastWeek, daysToAdd));
25
28
  });
26
29
  monthDates.push(...extraDates);
27
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,oDAAoD;AACpD,MAAM,UAAU,SAAS;AACvB,wDAAwD;AACxD,aAAqB;AACrB,4CAA4C;AAC5C,KAAa;AACb,sCAAsC;AACtC,KAAuE,EACvE,OAAgB;IAEhB,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,OAAO,CACL,IAAI,GAAG,kBAAkB,IAAI,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CACpE,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAmB,UAAU,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YAElE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { DayFlag, SelectionState } from "../UI.js";
1
2
  import { MonthCaption, type MonthCaptionProps } from "../components/MonthCaption.js";
2
3
  import { Week, type WeekProps } from "../components/Week.js";
3
4
  import { labelDayButton, labelNext, labelWeekday, labelWeekNumber } from "../labels/index.js";
@@ -75,6 +76,12 @@ export type DaySelectionMode = Mode;
75
76
  * @protected
76
77
  */
77
78
  export type Modifier = string;
79
+ /**
80
+ * @deprecated This type will be removed. Use {@link DayFlag} or
81
+ * {@link SelectionState} instead.
82
+ * @protected
83
+ */
84
+ export type InternalModifier = DayFlag.disabled | DayFlag.hidden | DayFlag.focused | SelectionState.range_end | SelectionState.range_middle | SelectionState.range_start | SelectionState.selected;
78
85
  /**
79
86
  * @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
80
87
  * @protected
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import { MonthCaption } from "../components/MonthCaption.js";
3
2
  import { Week } from "../components/Week.js";
4
3
  import { useDayPicker } from "../useDayPicker.js";
@@ -1 +1 @@
1
- {"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EACL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAkB,MAAM,uBAAuB,CAAC;AAO7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAgBpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC;AAqExB;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAkB,MAAM,uBAAuB,CAAC;AAO7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAgBpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC;AAmFxB;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC"}
@@ -264,6 +264,11 @@ export interface PropsBase {
264
264
  * @see https://daypicker.dev/guides/accessibility#autofocus
265
265
  */
266
266
  autoFocus?: boolean;
267
+ /**
268
+ * @private
269
+ * @deprecated This prop will be removed. Use {@link autoFocus} instead.
270
+ */
271
+ initialFocus?: boolean;
267
272
  /**
268
273
  * Apply the `disabled` modifier to the matching days.
269
274
  *
@@ -3,6 +3,8 @@ import type { DayPickerProps, Modifiers } from "./types/index.js";
3
3
  /**
4
4
  * Return a function to get the modifiers for a given day.
5
5
  *
6
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
7
+ *
6
8
  * @private
7
9
  */
8
10
  export declare function useGetModifiers(days: CalendarDay[], props: DayPickerProps, dateLib: DateLib): (day: CalendarDay) => Modifiers;
@@ -1,9 +1,11 @@
1
1
  import { TZDate } from "@date-fns/tz";
2
- import { DayFlag, SelectionState } from "./UI.js";
2
+ import { DayFlag } from "./UI.js";
3
3
  import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
4
4
  /**
5
5
  * Return a function to get the modifiers for a given day.
6
6
  *
7
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
8
+ *
7
9
  * @private
8
10
  */
9
11
  export function useGetModifiers(days, props, dateLib) {
@@ -17,12 +19,6 @@ export function useGetModifiers(days, props, dateLib) {
17
19
  [DayFlag.today]: []
18
20
  };
19
21
  const customModifiersMap = {};
20
- const selectionModifiersMap = {
21
- [SelectionState.range_end]: [],
22
- [SelectionState.range_middle]: [],
23
- [SelectionState.range_start]: [],
24
- [SelectionState.selected]: []
25
- };
26
22
  for (const day of days) {
27
23
  const { date, displayMonth } = day;
28
24
  const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
@@ -70,27 +66,16 @@ export function useGetModifiers(days, props, dateLib) {
70
66
  [DayFlag.outside]: false,
71
67
  [DayFlag.today]: false
72
68
  };
73
- const selectionStates = {
74
- [SelectionState.range_end]: false,
75
- [SelectionState.range_middle]: false,
76
- [SelectionState.range_start]: false,
77
- [SelectionState.selected]: false
78
- };
79
69
  const customModifiers = {};
80
70
  // Find the modifiers for the given day
81
71
  for (const name in internalModifiersMap) {
82
72
  const days = internalModifiersMap[name];
83
73
  dayFlags[name] = days.some((d) => d === day);
84
74
  }
85
- for (const name in selectionModifiersMap) {
86
- const days = selectionModifiersMap[name];
87
- selectionStates[name] = days.some((d) => d === day);
88
- }
89
75
  for (const name in customModifiersMap) {
90
76
  customModifiers[name] = customModifiersMap[name].some((d) => d === day);
91
77
  }
92
78
  return {
93
- ...selectionStates,
94
79
  ...dayFlags,
95
80
  // custom modifiers should override all the previous ones
96
81
  ...customModifiers
@@ -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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"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+
3
+ import { render, screen } from "@/test/render";
4
+
5
+ import { TestCase2585 } from "./TestCase2585";
6
+
7
+ render(<TestCase2585 />);
8
+
9
+ test("should render 42*12 days", () => {
10
+ expect(screen.getAllByRole("cell")).toHaveLength(42 * 12);
11
+ });
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+
3
+ import { DayPicker } from "react-day-picker";
4
+
5
+ /**
6
+ * Test case for issue #2585
7
+ *
8
+ * @see https://github.com/gpbl/react-day-picker/issues/2585
9
+ */
10
+ export function TestCase2585() {
11
+ return (
12
+ <DayPicker
13
+ defaultMonth={new Date(2026, 1)}
14
+ showOutsideDays
15
+ showWeekNumber
16
+ fixedWeeks
17
+ numberOfMonths={12}
18
+ />
19
+ );
20
+ }
@@ -338,7 +338,7 @@ exports[`should match the snapshot 1`] = `
338
338
  </td>
339
339
  <td
340
340
  aria-selected="true"
341
- class="rdp-day rdp-range_start rdp-selected"
341
+ class="rdp-day rdp-selected rdp-range_start"
342
342
  data-day="2020-06-15"
343
343
  data-selected="true"
344
344
  >
@@ -353,7 +353,7 @@ exports[`should match the snapshot 1`] = `
353
353
  </td>
354
354
  <td
355
355
  aria-selected="true"
356
- class="rdp-day rdp-range_middle rdp-selected"
356
+ class="rdp-day rdp-selected rdp-range_middle"
357
357
  data-day="2020-06-16"
358
358
  data-selected="true"
359
359
  >
@@ -368,7 +368,7 @@ exports[`should match the snapshot 1`] = `
368
368
  </td>
369
369
  <td
370
370
  aria-selected="true"
371
- class="rdp-day rdp-range_middle rdp-selected"
371
+ class="rdp-day rdp-selected rdp-range_middle"
372
372
  data-day="2020-06-17"
373
373
  data-selected="true"
374
374
  >
@@ -383,7 +383,7 @@ exports[`should match the snapshot 1`] = `
383
383
  </td>
384
384
  <td
385
385
  aria-selected="true"
386
- class="rdp-day rdp-range_middle rdp-selected"
386
+ class="rdp-day rdp-selected rdp-range_middle"
387
387
  data-day="2020-06-18"
388
388
  data-selected="true"
389
389
  >
@@ -398,7 +398,7 @@ exports[`should match the snapshot 1`] = `
398
398
  </td>
399
399
  <td
400
400
  aria-selected="true"
401
- class="rdp-day rdp-range_end rdp-selected"
401
+ class="rdp-day rdp-selected rdp-range_end"
402
402
  data-day="2020-06-19"
403
403
  data-selected="true"
404
404
  >
package/examples/index.ts CHANGED
@@ -69,6 +69,7 @@ export * from "./Testcase1567";
69
69
  export * from "./TestCase2047";
70
70
  export * from "./TestCase2389";
71
71
  export * from "./TestCase2511";
72
+ export * from "./TestCase2585";
72
73
  export * from "./TimeZone";
73
74
  export * from "./Utc";
74
75
  export * from "./WeekIso";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-day-picker",
3
- "version": "9.3.0",
3
+ "version": "9.3.1",
4
4
  "description": "Customizable Date Picker for React",
5
5
  "author": "Giampaolo Bellavite <io@gpbl.dev>",
6
6
  "homepage": "https://daypicker.dev",
@@ -173,7 +173,7 @@
173
173
  "locale.d.ts"
174
174
  ],
175
175
  "dependencies": {
176
- "@date-fns/tz": "^1.1.2",
176
+ "@date-fns/tz": "^1.2.0",
177
177
  "date-fns": "^4.1.0"
178
178
  },
179
179
  "devDependencies": {
@@ -1,11 +1,15 @@
1
1
  import { es } from "date-fns/locale/es";
2
2
 
3
+ import { defaultLocale } from "../classes/DateLib";
4
+
3
5
  import { formatMonthDropdown } from "./formatMonthDropdown";
4
6
 
5
7
  const date = new Date(2022, 10, 21);
6
8
 
7
9
  test("should return the formatted month dropdown label", () => {
8
- expect(formatMonthDropdown(date.getMonth())).toEqual("November");
10
+ expect(formatMonthDropdown(date.getMonth(), defaultLocale)).toEqual(
11
+ "November"
12
+ );
9
13
  });
10
14
 
11
15
  describe("when a locale is passed in", () => {
@@ -1,5 +1,4 @@
1
- import type { DateFnsMonth } from "../classes/DateLib.js";
2
- import { defaultLocale } from "../classes/DateLib.js";
1
+ import type { DateFnsMonth, Locale } from "../classes/DateLib.js";
3
2
 
4
3
  /**
5
4
  * Format the month number for the dropdown option label.
@@ -12,7 +11,7 @@ export function formatMonthDropdown(
12
11
  /** The month number to format. */
13
12
  monthNumber: number,
14
13
  /** The locale to use for formatting. */
15
- locale = defaultLocale
14
+ locale: Locale
16
15
  ): string {
17
16
  return locale.localize?.month(monthNumber as DateFnsMonth);
18
17
  }
@@ -58,9 +58,7 @@ describe("when the first month and the last month are the same", () => {
58
58
  const dates = getDates(
59
59
  [month],
60
60
  undefined,
61
- {
62
- fixedWeeks: true
63
- },
61
+ { fixedWeeks: true },
64
62
  defaultDateLib
65
63
  );
66
64
  expect(dates).toHaveLength(42);
@@ -69,6 +67,35 @@ describe("when the first month and the last month are the same", () => {
69
67
  });
70
68
  });
71
69
  });
70
+
71
+ describe("when the month has 4 weeks", () => {
72
+ const month = new Date(2026, 1); // February 2026
73
+ describe("when not using fixed weeks", () => {
74
+ it("should return 28 dates", () => {
75
+ const dates = getDates(
76
+ [month],
77
+ undefined,
78
+ {
79
+ fixedWeeks: false
80
+ },
81
+ defaultDateLib
82
+ );
83
+ expect(dates).toHaveLength(28);
84
+ });
85
+ });
86
+ describe("when using fixed weeks", () => {
87
+ it("should return 42 dates", () => {
88
+ const dates = getDates(
89
+ [month],
90
+ undefined,
91
+ { fixedWeeks: true },
92
+ defaultDateLib
93
+ );
94
+ expect(dates).toHaveLength(42);
95
+ });
96
+ });
97
+ });
98
+
72
99
  describe("when using Monday as first day of the week", () => {
73
100
  const month = new Date(2023, 4, 1);
74
101
  it("the first day should be Monday", () => {
@@ -2,7 +2,7 @@ import { type DateLib } from "../classes/DateLib.js";
2
2
  import { type DayPickerProps } from "../types/props.js";
3
3
 
4
4
  /** The number of days in a month when having 6 weeks. */
5
- const NrOfDaysWithFixedWeeks = 42;
5
+ export const NrOfDaysWithFixedWeeks = 42;
6
6
 
7
7
  /** Return all the dates to display in the calendar. */
8
8
  export function getDates(
@@ -50,7 +50,8 @@ export function getDates(
50
50
  // If fixed weeks is enabled, add the extra dates to the array
51
51
  const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
52
52
  if (fixedWeeks && dates.length < extraDates) {
53
- for (let i = 0; i < 7; i++) {
53
+ const daysToAdd = extraDates - dates.length;
54
+ for (let i = 0; i < daysToAdd; i++) {
54
55
  const date = addDays(dates[dates.length - 1], 1);
55
56
  dates.push(date);
56
57
  }
@@ -1,4 +1,4 @@
1
- import type { DateLib } from "../classes/DateLib.js";
1
+ import { defaultLocale, type DateLib } from "../classes/DateLib.js";
2
2
  import { DropdownOption } from "../components/Dropdown.js";
3
3
  import type { Formatters } from "../types/index.js";
4
4
 
@@ -26,7 +26,10 @@ export function getMonthOptions(
26
26
  return a - b;
27
27
  });
28
28
  const options = sortedMonths.map((value) => {
29
- const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
29
+ const label = formatters.formatMonthDropdown(
30
+ value,
31
+ dateLib.options.locale ?? defaultLocale
32
+ );
30
33
  const month = dateLib.Date
31
34
  ? new dateLib.Date(year, value)
32
35
  : new Date(year, value);
@@ -2,6 +2,8 @@ import type { DateLib } from "../classes/DateLib.js";
2
2
  import { CalendarWeek, CalendarDay, CalendarMonth } from "../classes/index.js";
3
3
  import type { DayPickerProps } from "../types/index.js";
4
4
 
5
+ import { NrOfDaysWithFixedWeeks } from "./getDates.js";
6
+
5
7
  /** Return the months to display in the calendar. */
6
8
  export function getMonths(
7
9
  /** The months (as dates) to display in the calendar. */
@@ -37,10 +39,12 @@ export function getMonths(
37
39
  return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
38
40
  });
39
41
 
40
- if (props.fixedWeeks && monthDates.length < 42) {
42
+ if (props.fixedWeeks && monthDates.length < NrOfDaysWithFixedWeeks) {
41
43
  const extraDates = dates.filter((date) => {
44
+ const daysToAdd = NrOfDaysWithFixedWeeks - monthDates.length;
42
45
  return (
43
- date > lastDateOfLastWeek && date <= addDays(lastDateOfLastWeek, 7)
46
+ date > lastDateOfLastWeek &&
47
+ date <= addDays(lastDateOfLastWeek, daysToAdd)
44
48
  );
45
49
  });
46
50
  monthDates.push(...extraDates);
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { DayFlag, SelectionState } from "../UI.js";
2
3
  import {
3
4
  MonthCaption,
4
5
  type MonthCaptionProps
@@ -99,6 +100,20 @@ export type DaySelectionMode = Mode;
99
100
  */
100
101
  export type Modifier = string;
101
102
 
103
+ /**
104
+ * @deprecated This type will be removed. Use {@link DayFlag} or
105
+ * {@link SelectionState} instead.
106
+ * @protected
107
+ */
108
+ export type InternalModifier =
109
+ | DayFlag.disabled
110
+ | DayFlag.hidden
111
+ | DayFlag.focused
112
+ | SelectionState.range_end
113
+ | SelectionState.range_middle
114
+ | SelectionState.range_start
115
+ | SelectionState.selected;
116
+
102
117
  /**
103
118
  * @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
104
119
  * @protected
@@ -291,6 +291,11 @@ export interface PropsBase {
291
291
  * @see https://daypicker.dev/guides/accessibility#autofocus
292
292
  */
293
293
  autoFocus?: boolean;
294
+ /**
295
+ * @private
296
+ * @deprecated This prop will be removed. Use {@link autoFocus} instead.
297
+ */
298
+ initialFocus?: boolean;
294
299
  /**
295
300
  * Apply the `disabled` modifier to the matching days.
296
301
  *
@@ -0,0 +1,79 @@
1
+ import { DayFlag } from "./UI";
2
+ import { CalendarDay, defaultDateLib } from "./classes/index";
3
+ import { useGetModifiers } from "./useGetModifiers";
4
+
5
+ const dateLib = defaultDateLib;
6
+
7
+ const month1 = new Date(2022, 10, 1);
8
+ const month2 = new Date(2022, 11, 1);
9
+
10
+ const date1 = new Date(2022, 10, 10);
11
+ const date2 = new Date(2022, 10, 11);
12
+ const date3 = new Date(2022, 10, 12);
13
+ const date4 = new Date(2022, 10, 13);
14
+ const date5 = new Date(2022, 10, 14);
15
+ const date6 = new Date(2022, 10, 30);
16
+
17
+ const day1 = new CalendarDay(date1, month1);
18
+ const day2 = new CalendarDay(date2, month1);
19
+ const day3 = new CalendarDay(date3, month1);
20
+ const day4 = new CalendarDay(date4, month1);
21
+ const day5 = new CalendarDay(date5, month1);
22
+ const day6 = new CalendarDay(date6, month2);
23
+
24
+ const days: CalendarDay[] = [day1, day2, day3, day4, day5, day6];
25
+
26
+ const props = {
27
+ disabled: [date1],
28
+ hidden: [date2],
29
+ modifiers: {
30
+ custom: [date3],
31
+ selected: [date5]
32
+ },
33
+ selected: date6,
34
+ showOutsideDays: true,
35
+ today: date4,
36
+ timeZone: "UTC"
37
+ };
38
+
39
+ describe("useGetModifiers", () => {
40
+ // eslint-disable-next-line react-hooks/rules-of-hooks
41
+ const getModifiers = useGetModifiers(days, props, dateLib);
42
+
43
+ test("return the modifiers for a given day", () => {
44
+ const modifiers = getModifiers(day1);
45
+
46
+ expect(modifiers[DayFlag.focused]).toBe(false);
47
+ expect(modifiers[DayFlag.disabled]).toBe(true);
48
+ expect(modifiers[DayFlag.hidden]).toBe(false);
49
+ expect(modifiers[DayFlag.outside]).toBe(false);
50
+ expect(modifiers[DayFlag.today]).toBe(false);
51
+ expect(modifiers.custom).toBe(false);
52
+ });
53
+
54
+ test("return the custom modifiers for a given day", () => {
55
+ const modifiers = getModifiers(day3);
56
+ expect(modifiers.custom).toBe(true);
57
+ });
58
+
59
+ test("return the custom `selected` modifier for a given day", () => {
60
+ const modifiers = getModifiers(day5);
61
+ expect(modifiers.selected).toBe(true);
62
+ });
63
+
64
+ test("return the today modifier for a given day", () => {
65
+ const modifiers = getModifiers(day4);
66
+ expect(modifiers[DayFlag.today]).toBe(true);
67
+ });
68
+
69
+ test("return the hidden modifier for a given day", () => {
70
+ const modifiers = getModifiers(day2);
71
+ expect(modifiers[DayFlag.hidden]).toBe(true);
72
+ });
73
+
74
+ test("return the outside modifier for a given day", () => {
75
+ const modifiers = getModifiers(day6);
76
+
77
+ expect(modifiers[DayFlag.outside]).toBe(true);
78
+ });
79
+ });
@@ -1,6 +1,6 @@
1
1
  import { TZDate } from "@date-fns/tz";
2
2
 
3
- import { DayFlag, SelectionState } from "./UI.js";
3
+ import { DayFlag } from "./UI.js";
4
4
  import type { CalendarDay, DateLib } from "./classes/index.js";
5
5
  import type { DayPickerProps, Modifiers } from "./types/index.js";
6
6
  import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
@@ -8,6 +8,8 @@ import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
8
8
  /**
9
9
  * Return a function to get the modifiers for a given day.
10
10
  *
11
+ * NOTE: this is not an hook, but a factory for `getModifiers`.
12
+ *
11
13
  * @private
12
14
  */
13
15
  export function useGetModifiers(
@@ -29,13 +31,6 @@ export function useGetModifiers(
29
31
 
30
32
  const customModifiersMap: Record<string, CalendarDay[]> = {};
31
33
 
32
- const selectionModifiersMap: Record<SelectionState, CalendarDay[]> = {
33
- [SelectionState.range_end]: [],
34
- [SelectionState.range_middle]: [],
35
- [SelectionState.range_start]: [],
36
- [SelectionState.selected]: []
37
- };
38
-
39
34
  for (const day of days) {
40
35
  const { date, displayMonth } = day;
41
36
 
@@ -81,7 +76,7 @@ export function useGetModifiers(
81
76
  }
82
77
  }
83
78
 
84
- return (day: CalendarDay) => {
79
+ return (day: CalendarDay): Modifiers => {
85
80
  // Initialize all the modifiers to false
86
81
  const dayFlags: Record<DayFlag, boolean> = {
87
82
  [DayFlag.focused]: false,
@@ -90,12 +85,6 @@ export function useGetModifiers(
90
85
  [DayFlag.outside]: false,
91
86
  [DayFlag.today]: false
92
87
  };
93
- const selectionStates: Record<SelectionState, boolean> = {
94
- [SelectionState.range_end]: false,
95
- [SelectionState.range_middle]: false,
96
- [SelectionState.range_start]: false,
97
- [SelectionState.selected]: false
98
- };
99
88
  const customModifiers: Modifiers = {};
100
89
 
101
90
  // Find the modifiers for the given day
@@ -103,19 +92,14 @@ export function useGetModifiers(
103
92
  const days = internalModifiersMap[name as DayFlag];
104
93
  dayFlags[name as DayFlag] = days.some((d) => d === day);
105
94
  }
106
- for (const name in selectionModifiersMap) {
107
- const days = selectionModifiersMap[name as SelectionState];
108
- selectionStates[name as SelectionState] = days.some((d) => d === day);
109
- }
110
95
  for (const name in customModifiersMap) {
111
96
  customModifiers[name] = customModifiersMap[name].some((d) => d === day);
112
97
  }
113
98
 
114
99
  return {
115
- ...selectionStates,
116
100
  ...dayFlags,
117
101
  // custom modifiers should override all the previous ones
118
102
  ...customModifiers
119
- } as Modifiers;
103
+ };
120
104
  };
121
105
  }
@@ -264,33 +264,34 @@ See also the source of [types/deprecated.ts](https://github.com/gpbl/react-day-p
264
264
  <details>
265
265
  <summary>**List of Deprecated Types**</summary>
266
266
 
267
- | Deprecated Type | Deprecation Reason |
268
- | ------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
269
- | ~`Caption`~ | This component has been renamed. Use [`MonthCaption`](./api/functions/MonthCaption.md) instead. |
270
- | ~`HeadRow`~ | This component has been removed. |
271
- | ~`Row`~ | This component has been renamed. Use [`Week`](./api/functions/Week.md) instead. |
272
- | ~`DayPickerSingleProps`~ | This type has been renamed. Use [`PropsSingle`](./api/interfaces/PropsSingle.md) instead. |
273
- | ~`DayPickerMultipleProps`~ | This type has been renamed. Use [`PropsMulti`](./api/interfaces/PropsMulti.md) instead. |
274
- | ~`DayPickerRangeProps`~ | This type has been renamed. Use [`PropsRange`](./api/interfaces/PropsRange.md) instead. |
275
- | ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`PropsBase`](./api/interfaces/PropsBase.md) instead. |
276
- | ~`DaySelectionMode`~ | This type has been renamed. Use [`Mode`](./api/type-aliases/Mode.md) instead. |
277
- | ~`Modifier`~ | This type will be removed. Use `string` instead. |
278
- | ~`SelectSingleEventHandler`~ | This type will be removed. Use [`PropsSingle["onSelect]`](./api/interfaces/PropsSingle.md) instead. |
279
- | ~`SelectMultipleEventHandler`~ | This type will be removed. Use [`PropsMulti["onSelect]`](./api/interfaces/PropsMulti.md) instead. |
280
- | ~`SelectRangeEventHandler`~ | This type will be removed. Use [`PropsRange["onSelect]`](./api/interfaces/PropsRange.md) instead. |
281
- | ~`DayPickerProviderProps`~ | This type is not used anymore. |
282
- | ~`useNavigation`~ | This type has been included in [`useDayPicker`](./api/functions/useDayPicker.md). |
283
- | ~`useDayRender`~ | This hook has been removed. To customize the rendering of a day, use the `htmlAttributes` prop in a custom `Day` component. |
284
- | ~`ContextProvidersProps`~ | This type is not used anymore. |
285
- | ~`DayLabel`~ | Use `typeof labelDay` instead. |
286
- | ~`NavButtonLabel`~ | Use `typeof labelNext` or `typeof labelPrevious` instead. |
287
- | ~`WeekdayLabel`~ | Use `typeof labelWeekday` instead. |
288
- | ~`WeekNumberLabel`~ | Use `typeof labelWeekNumber` instead. |
289
- | ~`DayClickEventHandler`~ | Use `DayMouseEventHandler` instead. |
290
- | ~`DayFocusEventHandler`~ | This type will be removed. Use `DayEventHandler<React.FocusEvent \| React.KeyboardEvent>` instead. |
291
- | ~`DayKeyboardEventHandler`~ | This type will be removed. Use `DayEventHandler<React.KeyboardEvent>` instead. |
292
- | ~`DayMouseEventHandler`~ | This type will be removed. Use `DayEventHandler<React.MouseEvent>` instead. |
293
- | ~`DayPointerEventHandler`~ | This type will be removed. Use `DayEventHandler<React.PointerEvent>` instead. |
294
- | ~`DayTouchEventHandler`~ | This type will be removed. Use `DayEventHandler<React.TouchEvent>` instead. |
267
+ | Deprecated Type | Deprecation Reason |
268
+ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
269
+ | ~`Caption`~ | This component has been renamed. Use [`MonthCaption`](./api/functions/MonthCaption.md) instead. |
270
+ | ~`HeadRow`~ | This component has been removed. |
271
+ | ~`Row`~ | This component has been renamed. Use [`Week`](./api/functions/Week.md) instead. |
272
+ | ~`DayPickerSingleProps`~ | This type has been renamed. Use [`PropsSingle`](./api/interfaces/PropsSingle.md) instead. |
273
+ | ~`DayPickerMultipleProps`~ | This type has been renamed. Use [`PropsMulti`](./api/interfaces/PropsMulti.md) instead. |
274
+ | ~`DayPickerRangeProps`~ | This type has been renamed. Use [`PropsRange`](./api/interfaces/PropsRange.md) instead. |
275
+ | ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`PropsBase`](./api/interfaces/PropsBase.md) instead. |
276
+ | ~`DaySelectionMode`~ | This type has been renamed. Use [`Mode`](./api/type-aliases/Mode.md) instead. |
277
+ | ~`Modifier`~ | This type will be removed. Use `string` instead. |
278
+ | ~`InternaModifier`~ | This type has been split into [`DayFlag`](./api/enumerations/DayFlag) and [`SelectionState`](./api/enumerations/SelectionState) |
279
+ | ~`SelectSingleEventHandler`~ | This type will be removed. Use [`PropsSingle["onSelect]`](./api/interfaces/PropsSingle.md) instead. |
280
+ | ~`SelectMultipleEventHandler`~ | This type will be removed. Use [`PropsMulti["onSelect]`](./api/interfaces/PropsMulti.md) instead. |
281
+ | ~`SelectRangeEventHandler`~ | This type will be removed. Use [`PropsRange["onSelect]`](./api/interfaces/PropsRange.md) instead. |
282
+ | ~`DayPickerProviderProps`~ | This type is not used anymore. |
283
+ | ~`useNavigation`~ | This type has been included in [`useDayPicker`](./api/functions/useDayPicker.md). |
284
+ | ~`useDayRender`~ | This hook has been removed. To customize the rendering of a day, use the `htmlAttributes` prop in a custom `Day` component. |
285
+ | ~`ContextProvidersProps`~ | This type is not used anymore. |
286
+ | ~`DayLabel`~ | Use `typeof labelDay` instead. |
287
+ | ~`NavButtonLabel`~ | Use `typeof labelNext` or `typeof labelPrevious` instead. |
288
+ | ~`WeekdayLabel`~ | Use `typeof labelWeekday` instead. |
289
+ | ~`WeekNumberLabel`~ | Use `typeof labelWeekNumber` instead. |
290
+ | ~`DayClickEventHandler`~ | Use `DayMouseEventHandler` instead. |
291
+ | ~`DayFocusEventHandler`~ | This type will be removed. Use `DayEventHandler<React.FocusEvent \| React.KeyboardEvent>` instead. |
292
+ | ~`DayKeyboardEventHandler`~ | This type will be removed. Use `DayEventHandler<React.KeyboardEvent>` instead. |
293
+ | ~`DayMouseEventHandler`~ | This type will be removed. Use `DayEventHandler<React.MouseEvent>` instead. |
294
+ | ~`DayPointerEventHandler`~ | This type will be removed. Use `DayEventHandler<React.PointerEvent>` instead. |
295
+ | ~`DayTouchEventHandler`~ | This type will be removed. Use `DayEventHandler<React.TouchEvent>` instead. |
295
296
 
296
297
  </details>