react-day-picker 9.1.0 → 9.1.2

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 (251) hide show
  1. package/README.md +8 -8
  2. package/dist/cjs/DayPicker.js +11 -11
  3. package/dist/cjs/DayPicker.js.map +1 -1
  4. package/dist/cjs/classes/CalendarDay.d.ts +1 -1
  5. package/dist/cjs/classes/CalendarDay.js.map +1 -1
  6. package/dist/cjs/components/WeekNumber.d.ts +1 -1
  7. package/dist/cjs/components/WeekNumber.js +2 -2
  8. package/dist/cjs/formatters/formatCaption.d.ts +1 -2
  9. package/dist/cjs/formatters/formatCaption.js.map +1 -1
  10. package/dist/cjs/formatters/formatDay.d.ts +1 -2
  11. package/dist/cjs/formatters/formatDay.js.map +1 -1
  12. package/dist/cjs/formatters/formatWeekdayName.d.ts +1 -2
  13. package/dist/cjs/formatters/formatWeekdayName.js.map +1 -1
  14. package/dist/cjs/helpers/getDateLib.d.ts +2 -1
  15. package/dist/cjs/helpers/getDateLib.js.map +1 -1
  16. package/dist/cjs/helpers/getDates.d.ts +1 -1
  17. package/dist/cjs/helpers/getDates.js +3 -3
  18. package/dist/cjs/helpers/getDates.js.map +1 -1
  19. package/dist/cjs/helpers/getDisplayMonths.d.ts +2 -1
  20. package/dist/cjs/helpers/getDisplayMonths.js.map +1 -1
  21. package/dist/cjs/helpers/getFocusableDate.d.ts +2 -1
  22. package/dist/cjs/helpers/getInitialMonth.d.ts +1 -1
  23. package/dist/cjs/helpers/getInitialMonth.js +6 -1
  24. package/dist/cjs/helpers/getInitialMonth.js.map +1 -1
  25. package/dist/cjs/helpers/getMonthOptions.d.ts +2 -2
  26. package/dist/cjs/helpers/getMonthOptions.js +6 -3
  27. package/dist/cjs/helpers/getMonthOptions.js.map +1 -1
  28. package/dist/cjs/helpers/getMonths.d.ts +3 -2
  29. package/dist/cjs/helpers/getMonths.js.map +1 -1
  30. package/dist/cjs/helpers/getNavMonth.d.ts +3 -2
  31. package/dist/cjs/helpers/getNavMonth.js +16 -3
  32. package/dist/cjs/helpers/getNavMonth.js.map +1 -1
  33. package/dist/cjs/helpers/getNextFocus.d.ts +3 -2
  34. package/dist/cjs/helpers/getNextFocus.js.map +1 -1
  35. package/dist/cjs/helpers/getNextMonth.d.ts +2 -1
  36. package/dist/cjs/helpers/getNextMonth.js.map +1 -1
  37. package/dist/cjs/helpers/getPreviousMonth.d.ts +2 -1
  38. package/dist/cjs/helpers/getPreviousMonth.js.map +1 -1
  39. package/dist/cjs/helpers/getWeekdays.d.ts +2 -3
  40. package/dist/cjs/helpers/getWeekdays.js +9 -3
  41. package/dist/cjs/helpers/getWeekdays.js.map +1 -1
  42. package/dist/cjs/helpers/getYearOptions.d.ts +2 -1
  43. package/dist/cjs/helpers/getYearOptions.js +6 -5
  44. package/dist/cjs/helpers/getYearOptions.js.map +1 -1
  45. package/dist/cjs/labels/labelGrid.d.ts +1 -2
  46. package/dist/cjs/labels/labelGrid.js.map +1 -1
  47. package/dist/cjs/labels/labelWeekday.d.ts +1 -2
  48. package/dist/cjs/labels/labelWeekday.js.map +1 -1
  49. package/dist/cjs/lib/dateLib.d.ts +66 -3
  50. package/dist/cjs/lib/dateLib.js +0 -2
  51. package/dist/cjs/lib/dateLib.js.map +1 -1
  52. package/dist/cjs/lib/index.d.ts +1 -0
  53. package/dist/cjs/lib/index.js +3 -0
  54. package/dist/cjs/lib/index.js.map +1 -1
  55. package/dist/cjs/locale.d.ts +1 -0
  56. package/dist/cjs/locale.js +18 -0
  57. package/dist/cjs/locale.js.map +1 -0
  58. package/dist/cjs/selection/useMulti.d.ts +2 -1
  59. package/dist/cjs/selection/useMulti.js +5 -2
  60. package/dist/cjs/selection/useMulti.js.map +1 -1
  61. package/dist/cjs/selection/useRange.d.ts +2 -1
  62. package/dist/cjs/selection/useRange.js +5 -2
  63. package/dist/cjs/selection/useRange.js.map +1 -1
  64. package/dist/cjs/selection/useSingle.d.ts +2 -1
  65. package/dist/cjs/selection/useSingle.js +5 -2
  66. package/dist/cjs/selection/useSingle.js.map +1 -1
  67. package/dist/cjs/types/props.d.ts +31 -6
  68. package/dist/cjs/types/selection.d.ts +14 -5
  69. package/dist/cjs/types/shared.d.ts +17 -8
  70. package/dist/cjs/useCalendar.d.ts +2 -2
  71. package/dist/cjs/useCalendar.js +6 -0
  72. package/dist/cjs/useCalendar.js.map +1 -1
  73. package/dist/cjs/useDayPicker.d.ts +30 -6
  74. package/dist/cjs/useDayPicker.js +10 -2
  75. package/dist/cjs/useDayPicker.js.map +1 -1
  76. package/dist/cjs/useFocus.d.ts +2 -1
  77. package/dist/cjs/useGetModifiers.d.ts +2 -1
  78. package/dist/cjs/useGetModifiers.js +8 -2
  79. package/dist/cjs/useGetModifiers.js.map +1 -1
  80. package/dist/cjs/useSelection.d.ts +2 -1
  81. package/dist/cjs/useSelection.js.map +1 -1
  82. package/dist/cjs/utc.js +1 -2
  83. package/dist/cjs/utc.js.map +1 -1
  84. package/dist/cjs/utils/addToRange.d.ts +2 -1
  85. package/dist/cjs/utils/addToRange.js.map +1 -1
  86. package/dist/cjs/utils/dateMatchModifiers.d.ts +2 -1
  87. package/dist/cjs/utils/dateMatchModifiers.js.map +1 -1
  88. package/dist/cjs/utils/rangeIncludesDate.d.ts +2 -1
  89. package/dist/cjs/utils/rangeIncludesDate.js.map +1 -1
  90. package/dist/cjs/utils/typeguards.d.ts +2 -1
  91. package/dist/esm/DayPicker.js +11 -11
  92. package/dist/esm/DayPicker.js.map +1 -1
  93. package/dist/esm/classes/CalendarDay.d.ts +1 -1
  94. package/dist/esm/classes/CalendarDay.js.map +1 -1
  95. package/dist/esm/components/WeekNumber.d.ts +1 -1
  96. package/dist/esm/components/WeekNumber.js +2 -2
  97. package/dist/esm/formatters/formatCaption.d.ts +1 -2
  98. package/dist/esm/formatters/formatCaption.js.map +1 -1
  99. package/dist/esm/formatters/formatDay.d.ts +1 -2
  100. package/dist/esm/formatters/formatDay.js.map +1 -1
  101. package/dist/esm/formatters/formatWeekdayName.d.ts +1 -2
  102. package/dist/esm/formatters/formatWeekdayName.js.map +1 -1
  103. package/dist/esm/helpers/getDateLib.d.ts +2 -1
  104. package/dist/esm/helpers/getDateLib.js.map +1 -1
  105. package/dist/esm/helpers/getDates.d.ts +1 -1
  106. package/dist/esm/helpers/getDates.js +3 -3
  107. package/dist/esm/helpers/getDates.js.map +1 -1
  108. package/dist/esm/helpers/getDisplayMonths.d.ts +2 -1
  109. package/dist/esm/helpers/getDisplayMonths.js.map +1 -1
  110. package/dist/esm/helpers/getFocusableDate.d.ts +2 -1
  111. package/dist/esm/helpers/getInitialMonth.d.ts +1 -1
  112. package/dist/esm/helpers/getInitialMonth.js +6 -1
  113. package/dist/esm/helpers/getInitialMonth.js.map +1 -1
  114. package/dist/esm/helpers/getMonthOptions.d.ts +2 -2
  115. package/dist/esm/helpers/getMonthOptions.js +6 -3
  116. package/dist/esm/helpers/getMonthOptions.js.map +1 -1
  117. package/dist/esm/helpers/getMonths.d.ts +3 -2
  118. package/dist/esm/helpers/getMonths.js.map +1 -1
  119. package/dist/esm/helpers/getNavMonth.d.ts +3 -2
  120. package/dist/esm/helpers/getNavMonth.js +16 -3
  121. package/dist/esm/helpers/getNavMonth.js.map +1 -1
  122. package/dist/esm/helpers/getNextFocus.d.ts +3 -2
  123. package/dist/esm/helpers/getNextFocus.js.map +1 -1
  124. package/dist/esm/helpers/getNextMonth.d.ts +2 -1
  125. package/dist/esm/helpers/getNextMonth.js.map +1 -1
  126. package/dist/esm/helpers/getPreviousMonth.d.ts +2 -1
  127. package/dist/esm/helpers/getPreviousMonth.js.map +1 -1
  128. package/dist/esm/helpers/getWeekdays.d.ts +2 -3
  129. package/dist/esm/helpers/getWeekdays.js +9 -3
  130. package/dist/esm/helpers/getWeekdays.js.map +1 -1
  131. package/dist/esm/helpers/getYearOptions.d.ts +2 -1
  132. package/dist/esm/helpers/getYearOptions.js +6 -5
  133. package/dist/esm/helpers/getYearOptions.js.map +1 -1
  134. package/dist/esm/labels/labelGrid.d.ts +1 -2
  135. package/dist/esm/labels/labelGrid.js.map +1 -1
  136. package/dist/esm/labels/labelWeekday.d.ts +1 -2
  137. package/dist/esm/labels/labelWeekday.js.map +1 -1
  138. package/dist/esm/lib/dateLib.d.ts +66 -3
  139. package/dist/esm/lib/dateLib.js +0 -2
  140. package/dist/esm/lib/dateLib.js.map +1 -1
  141. package/dist/esm/lib/index.d.ts +1 -0
  142. package/dist/esm/lib/index.js +1 -0
  143. package/dist/esm/lib/index.js.map +1 -1
  144. package/dist/esm/locale.d.ts +1 -0
  145. package/dist/esm/locale.js +2 -0
  146. package/dist/esm/locale.js.map +1 -0
  147. package/dist/esm/selection/useMulti.d.ts +2 -1
  148. package/dist/esm/selection/useMulti.js +5 -2
  149. package/dist/esm/selection/useMulti.js.map +1 -1
  150. package/dist/esm/selection/useRange.d.ts +2 -1
  151. package/dist/esm/selection/useRange.js +5 -2
  152. package/dist/esm/selection/useRange.js.map +1 -1
  153. package/dist/esm/selection/useSingle.d.ts +2 -1
  154. package/dist/esm/selection/useSingle.js +5 -2
  155. package/dist/esm/selection/useSingle.js.map +1 -1
  156. package/dist/esm/types/props.d.ts +31 -6
  157. package/dist/esm/types/selection.d.ts +14 -5
  158. package/dist/esm/types/shared.d.ts +17 -8
  159. package/dist/esm/useCalendar.d.ts +2 -2
  160. package/dist/esm/useCalendar.js +6 -0
  161. package/dist/esm/useCalendar.js.map +1 -1
  162. package/dist/esm/useDayPicker.d.ts +30 -6
  163. package/dist/esm/useDayPicker.js +10 -2
  164. package/dist/esm/useDayPicker.js.map +1 -1
  165. package/dist/esm/useFocus.d.ts +2 -1
  166. package/dist/esm/useGetModifiers.d.ts +2 -1
  167. package/dist/esm/useGetModifiers.js +8 -2
  168. package/dist/esm/useGetModifiers.js.map +1 -1
  169. package/dist/esm/useSelection.d.ts +2 -1
  170. package/dist/esm/useSelection.js.map +1 -1
  171. package/dist/esm/utc.js +1 -2
  172. package/dist/esm/utc.js.map +1 -1
  173. package/dist/esm/utils/addToRange.d.ts +2 -1
  174. package/dist/esm/utils/addToRange.js.map +1 -1
  175. package/dist/esm/utils/dateMatchModifiers.d.ts +2 -1
  176. package/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  177. package/dist/esm/utils/rangeIncludesDate.d.ts +2 -1
  178. package/dist/esm/utils/rangeIncludesDate.js.map +1 -1
  179. package/dist/esm/utils/typeguards.d.ts +2 -1
  180. package/examples/Input.test.tsx +1 -1
  181. package/examples/ItalianLabels.tsx +1 -1
  182. package/examples/ModifiersHidden.test.tsx +1 -1
  183. package/examples/NumberingSystem.test.tsx +3 -3
  184. package/examples/PastDatesDisabled.tsx +7 -0
  185. package/examples/Range.test.tsx +1 -1
  186. package/examples/RangeShiftKey.tsx +1 -1
  187. package/examples/SingleControlled.test.tsx +37 -0
  188. package/examples/SingleControlled.tsx +8 -0
  189. package/examples/SingleMockDate.test.tsx +39 -0
  190. package/examples/TimeZone.tsx +23 -0
  191. package/examples/WeekStartsOn.tsx +7 -0
  192. package/examples/Weeknumber.test.tsx +2 -2
  193. package/examples/WeeknumberCustom.tsx +2 -2
  194. package/examples/__snapshots__/Range.test.tsx.snap +84 -100
  195. package/examples/__snapshots__/StylingCssModules.test.tsx.snap +42 -50
  196. package/examples/index.ts +4 -0
  197. package/package.json +19 -3
  198. package/src/DayPicker.test.tsx +13 -0
  199. package/src/DayPicker.tsx +13 -10
  200. package/src/classes/CalendarDay.ts +1 -1
  201. package/src/components/WeekNumber.tsx +3 -3
  202. package/src/formatters/formatCaption.ts +5 -2
  203. package/src/formatters/formatDay.ts +1 -2
  204. package/src/formatters/formatWeekdayName.ts +1 -2
  205. package/src/helpers/getDateLib.ts +2 -2
  206. package/src/helpers/getDates.ts +4 -5
  207. package/src/helpers/getDisplayMonths.ts +2 -1
  208. package/src/helpers/getFocusableDate.ts +1 -1
  209. package/src/helpers/getInitialMonth.ts +8 -1
  210. package/src/helpers/getMonthOptions.ts +8 -5
  211. package/src/helpers/getMonths.ts +3 -1
  212. package/src/helpers/getNavMonth.ts +23 -5
  213. package/src/helpers/getNextFocus.tsx +8 -2
  214. package/src/helpers/getNextMonth.ts +2 -1
  215. package/src/helpers/getPreviousMonth.ts +2 -1
  216. package/src/helpers/getWeekdays.test.ts +1 -1
  217. package/src/helpers/getWeekdays.ts +11 -4
  218. package/src/helpers/getYearOptions.ts +8 -7
  219. package/src/labels/labelGrid.ts +1 -2
  220. package/src/labels/labelWeekday.ts +1 -2
  221. package/src/lib/dateLib.ts +95 -3
  222. package/src/lib/index.ts +1 -0
  223. package/src/locale.ts +1 -0
  224. package/src/selection/useMulti.test.tsx +42 -0
  225. package/src/selection/useMulti.tsx +7 -3
  226. package/src/selection/useRange.test.tsx +41 -0
  227. package/src/selection/useRange.tsx +7 -3
  228. package/src/selection/useSingle.test.tsx +39 -0
  229. package/src/selection/useSingle.tsx +7 -3
  230. package/src/types/props.ts +31 -7
  231. package/src/types/selection.ts +12 -9
  232. package/src/types/shared.ts +17 -9
  233. package/src/useCalendar.ts +10 -3
  234. package/src/useDayPicker.ts +30 -6
  235. package/src/useFocus.ts +1 -1
  236. package/src/useGetModifiers.tsx +14 -3
  237. package/src/useSelection.ts +2 -1
  238. package/src/utc.tsx +1 -3
  239. package/src/utils/addToRange.ts +2 -2
  240. package/src/utils/dateMatchModifiers.ts +2 -2
  241. package/src/utils/rangeIncludesDate.ts +2 -2
  242. package/src/utils/typeguards.ts +1 -1
  243. package/website/docs/development/code-of-conduct.md +5 -7
  244. package/website/docs/development/contributing.md +9 -0
  245. package/website/docs/docs/localization.mdx +71 -85
  246. package/website/docs/docs/selection-modes.mdx +40 -26
  247. package/website/docs/docs/translation.mdx +3 -3
  248. package/website/docs/guides/custom-components.mdx +10 -10
  249. package/website/docs/intro.mdx +1 -1
  250. package/website/docs/start.mdx +1 -1
  251. package/website/docs/development/contributing.mdx +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"getWeekdays.js","sourceRoot":"","sources":["../../../src/helpers/getWeekdays.ts"],"names":[],"mappings":";;AAQA,kCAmBC;AA1BD,8CAA4D;AAG5D;;;GAGG;AACH,SAAgB,WAAW,CACzB,MAA2B;AAC3B,2DAA2D;AAC3D,YAAoD;AACpD,qCAAqC;AACrC,OAA6B;AAC7B,cAAc;AACd,UAAmB,kBAAc;IAEjC,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"getWeekdays.js","sourceRoot":"","sources":["../../../src/helpers/getWeekdays.ts"],"names":[],"mappings":";;AASA,kCAyBC;AAlCD,qCAAsC;AAGtC,8CAA4D;AAE5D;;;GAGG;AACH,SAAgB,WAAW,CACzB,MAA2B;AAC3B,2DAA2D;AAC3D,YAAoD;AACpD,qCAAqC;AACrC,OAA6B,EAC7B,QAA6B;AAC7B,cAAc;AACd,UAAmB,kBAAc;IAEjC,MAAM,IAAI,GAAG,QAAQ;QACnB,CAAC,CAAC,WAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;QACrB,CAAC,CAAC,OAAO,CAAC,IAAI;YACZ,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;YACpB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { DropdownOption } from "../components/Dropdown.js";
2
- import type { DateLib, Formatters } from "../types/index.js";
2
+ import type { DateLib } from "../lib/dateLib.js";
3
+ import type { Formatters } from "../types/index.js";
3
4
  /** Return the years to show in the dropdown. */
4
5
  export declare function getYearOptions(displayMonth: Date, calendarStart: Date | undefined, calendarEnd: Date | undefined, formatters: Pick<Formatters, "formatYearDropdown">, dateLib: DateLib): DropdownOption[] | undefined;
@@ -7,7 +7,7 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
7
7
  return undefined;
8
8
  if (!calendarEnd)
9
9
  return undefined;
10
- const { startOfMonth, startOfYear, endOfYear, addYears, isBefore, isSameYear, Date } = dateLib;
10
+ const { startOfMonth, startOfYear, endOfYear, addYears, isBefore, isSameYear } = dateLib;
11
11
  const month = displayMonth.getMonth();
12
12
  const firstNavYear = startOfYear(calendarStart);
13
13
  const lastNavYear = endOfYear(calendarEnd);
@@ -18,10 +18,11 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
18
18
  year = addYears(year, 1);
19
19
  }
20
20
  return years.map((value) => {
21
- const disabled = (calendarStart && new Date(value, month) < startOfMonth(calendarStart)) ||
22
- (month &&
23
- calendarEnd &&
24
- new Date(value, month) > startOfMonth(calendarEnd)) ||
21
+ const year = dateLib.Date
22
+ ? new dateLib.Date(value, month)
23
+ : new Date(value, month);
24
+ const disabled = (calendarStart && year < startOfMonth(calendarStart)) ||
25
+ (month && calendarEnd && year > startOfMonth(calendarEnd)) ||
25
26
  false;
26
27
  const label = formatters.formatYearDropdown(value);
27
28
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"getYearOptions.js","sourceRoot":"","sources":["../../../src/helpers/getYearOptions.ts"],"names":[],"mappings":";;AAIA,wCA2CC;AA5CD,gDAAgD;AAChD,SAAgB,cAAc,CAC5B,YAAkB,EAClB,aAA+B,EAC/B,WAA6B,EAC7B,UAAkD,EAClD,OAAgB;IAEhB,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,IAAI,EACL,GAAG,OAAO,CAAC;IACZ,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,MAAM,QAAQ,GACZ,CAAC,aAAa,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,KAAK;gBACJ,WAAW;gBACX,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YACrD,KAAK,CAAC;QACR,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"getYearOptions.js","sourceRoot":"","sources":["../../../src/helpers/getYearOptions.ts"],"names":[],"mappings":";;AAKA,wCA2CC;AA5CD,gDAAgD;AAChD,SAAgB,cAAc,CAC5B,YAAkB,EAClB,aAA+B,EAC/B,WAA6B,EAC7B,UAAkD,EAClD,OAAgB;IAEhB,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,MAAM,QAAQ,GACZ,CAAC,aAAa,IAAI,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC,KAAK,IAAI,WAAW,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1D,KAAK,CAAC;QACR,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { LabelOptions } from "../lib/dateLib.js";
2
- import { DateLib } from "../types/index.js";
1
+ import type { LabelOptions, DateLib } from "../lib/dateLib.js";
3
2
  /**
4
3
  * Return an ARIA label for the month grid, that will be announced when entering
5
4
  * the grid.
@@ -1 +1 @@
1
- {"version":3,"file":"labelGrid.js","sourceRoot":"","sources":["../../../src/labels/labelGrid.ts"],"names":[],"mappings":";;;AAYA,8BAOC;AAlBD,8CAA4D;AAG5D;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACU,QAAA,YAAY,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"labelGrid.js","sourceRoot":"","sources":["../../../src/labels/labelGrid.ts"],"names":[],"mappings":";;;AAWA,8BAOC;AAjBD,8CAA4D;AAE5D;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACU,QAAA,YAAY,GAAG,SAAS,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { LabelOptions } from "../lib/dateLib.js";
2
- import type { DateLib } from "../types/index.js";
1
+ import type { LabelOptions, DateLib } from "../lib/dateLib.js";
3
2
  /**
4
3
  * The ARIA label for the Weekday column header.
5
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"labelWeekday.js","sourceRoot":"","sources":["../../../src/labels/labelWeekday.ts"],"names":[],"mappings":";;AAWA,oCAOC;AAjBD,8CAA4D;AAG5D;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"labelWeekday.js","sourceRoot":"","sources":["../../../src/labels/labelWeekday.ts"],"names":[],"mappings":";;AAUA,oCAOC;AAhBD,8CAA4D;AAE5D;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
@@ -1,4 +1,3 @@
1
- import { GenericDateConstructor } from "date-fns";
2
1
  import type { FormatOptions as DateFnsFormatOptions, Locale as DateFnsLocale } from "date-fns";
3
2
  import { addDays } from "date-fns/addDays";
4
3
  import { addMonths } from "date-fns/addMonths";
@@ -35,6 +34,72 @@ export type LabelOptions = DateFnsFormatOptions;
35
34
  /** The locale used within DayPicker. */
36
35
  export type Locale = DateFnsLocale;
37
36
  export type { Month as DateFnsMonth } from "date-fns";
37
+ /**
38
+ * The date library used by DayPicker. It's a subset of the date-fns functions
39
+ * plus an optional Date constructor.
40
+ *
41
+ * Override the default date library with the `dateLib` prop.
42
+ */
43
+ export type DateLib = {
44
+ /** The constructor of the date object. */
45
+ Date?: DateConstructor | undefined;
46
+ /** Adds the specified number of days to the given date. */
47
+ addDays: typeof addDays;
48
+ /** Adds the specified number of months to the given date. */
49
+ addMonths: typeof addMonths;
50
+ /** Adds the specified number of weeks to the given date. */
51
+ addWeeks: typeof addWeeks;
52
+ /** Adds the specified number of years to the given date. */
53
+ addYears: typeof addYears;
54
+ /** Returns the number of calendar days between the given dates. */
55
+ differenceInCalendarDays: typeof differenceInCalendarDays;
56
+ /** Returns the number of calendar months between the given dates. */
57
+ differenceInCalendarMonths: typeof differenceInCalendarMonths;
58
+ /** Returns the end of an ISO week for the given date. */
59
+ endOfISOWeek: typeof endOfISOWeek;
60
+ /** Returns the end of the month for the given date. */
61
+ endOfMonth: typeof endOfMonth;
62
+ /** Returns the end of the week for the given date. */
63
+ endOfWeek: typeof endOfWeek;
64
+ /** Returns the end of the year for the given date. */
65
+ endOfYear: typeof endOfYear;
66
+ /** Formats the given date using the specified format string. */
67
+ format: typeof format;
68
+ /** Returns the ISO week number for the given date. */
69
+ getISOWeek: typeof getISOWeek;
70
+ /** Returns the week number for the given date. */
71
+ getWeek: typeof getWeek;
72
+ /** Checks if the first date is after the second date. */
73
+ isAfter: typeof isAfter;
74
+ /** Checks if the first date is before the second date. */
75
+ isBefore: typeof isBefore;
76
+ /** Checks if the given value is a date. */
77
+ isDate: typeof isDate;
78
+ /** Checks if the given dates are the same day. */
79
+ isSameDay: typeof isSameDay;
80
+ /** Checks if the given dates are in the same month. */
81
+ isSameMonth: typeof isSameMonth;
82
+ /** Checks if the given dates are in the same year. */
83
+ isSameYear: typeof isSameYear;
84
+ /** Returns the maximum of the given dates. */
85
+ max: typeof max;
86
+ /** Returns the minimum of the given dates. */
87
+ min: typeof min;
88
+ /** Sets the month for the given date. */
89
+ setMonth: typeof setMonth;
90
+ /** Sets the year for the given date. */
91
+ setYear: typeof setYear;
92
+ /** Returns the start of the day for the given date. */
93
+ startOfDay: typeof startOfDay;
94
+ /** Returns the start of an ISO week for the given date. */
95
+ startOfISOWeek: typeof startOfISOWeek;
96
+ /** Returns the start of the month for the given date. */
97
+ startOfMonth: typeof startOfMonth;
98
+ /** Returns the start of the week for the given date. */
99
+ startOfWeek: typeof startOfWeek;
100
+ /** Returns the start of the year for the given date. */
101
+ startOfYear: typeof startOfYear;
102
+ };
38
103
  /**
39
104
  * The default date library to use with the date picker.
40
105
  *
@@ -42,8 +107,6 @@ export type { Month as DateFnsMonth } from "date-fns";
42
107
  * @internal
43
108
  */
44
109
  export declare const dateLib: {
45
- /** The constructor of the date object. */
46
- Date: GenericDateConstructor;
47
110
  addDays: typeof addDays;
48
111
  addMonths: typeof addMonths;
49
112
  addWeeks: typeof addWeeks;
@@ -36,8 +36,6 @@ const startOfYear_1 = require("date-fns/startOfYear");
36
36
  * @internal
37
37
  */
38
38
  exports.dateLib = {
39
- /** The constructor of the date object. */
40
- Date: Date,
41
39
  addDays: addDays_1.addDays,
42
40
  addMonths: addMonths_1.addMonths,
43
41
  addWeeks: addWeeks_1.addWeeks,
@@ -1 +1 @@
1
- {"version":3,"file":"dateLib.js","sourceRoot":"","sources":["../../../src/lib/dateLib.ts"],"names":[],"mappings":";;;AAKA,8CAA2C;AAC3C,kDAA+C;AAC/C,gDAA6C;AAC7C,gDAA6C;AAC7C,gFAA6E;AAC7E,oFAAiF;AACjF,wDAAqD;AACrD,oDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAC/C,4CAAyC;AACzC,oDAAiD;AACjD,8CAA2C;AAC3C,8CAA2C;AAC3C,gDAA6C;AAC7C,4CAAyC;AACzC,kDAA+C;AAC/C,sDAAmD;AACnD,oDAAiD;AACjD,sCAAmC;AACnC,sCAAmC;AACnC,gDAA6C;AAC7C,8CAA2C;AAC3C,oDAAiD;AACjD,4DAAyD;AACzD,wDAAqD;AACrD,sDAAmD;AACnD,sDAAmD;AAanD;;;;;GAKG;AACU,QAAA,OAAO,GAAG;IACrB,0CAA0C;IAC1C,IAAI,EAAE,IAA8B;IACpC,OAAO,EAAP,iBAAO;IACP,SAAS,EAAT,qBAAS;IACT,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,wBAAwB,EAAxB,mDAAwB;IACxB,0BAA0B,EAA1B,uDAA0B;IAC1B,YAAY,EAAZ,2BAAY;IACZ,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,qBAAS;IACT,SAAS,EAAT,qBAAS;IACT,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,uBAAU;IACV,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,QAAQ,EAAR,mBAAQ;IACR,MAAM,EAAN,eAAM;IACN,SAAS,EAAT,qBAAS;IACT,WAAW,EAAX,yBAAW;IACX,UAAU,EAAV,uBAAU;IACV,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,UAAU,EAAV,uBAAU;IACV,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,WAAW,EAAX,yBAAW;IACX,WAAW,EAAX,yBAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"dateLib.js","sourceRoot":"","sources":["../../../src/lib/dateLib.ts"],"names":[],"mappings":";;;AAIA,8CAA2C;AAC3C,kDAA+C;AAC/C,gDAA6C;AAC7C,gDAA6C;AAC7C,gFAA6E;AAC7E,oFAAiF;AACjF,wDAAqD;AACrD,oDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAC/C,4CAAyC;AACzC,oDAAiD;AACjD,8CAA2C;AAC3C,8CAA2C;AAC3C,gDAA6C;AAC7C,4CAAyC;AACzC,kDAA+C;AAC/C,sDAAmD;AACnD,oDAAiD;AACjD,sCAAmC;AACnC,sCAAmC;AACnC,gDAA6C;AAC7C,8CAA2C;AAC3C,oDAAiD;AACjD,4DAAyD;AACzD,wDAAqD;AACrD,sDAAmD;AACnD,sDAAmD;AA4GnD;;;;;GAKG;AACU,QAAA,OAAO,GAAG;IACrB,OAAO,EAAP,iBAAO;IACP,SAAS,EAAT,qBAAS;IACT,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,wBAAwB,EAAxB,mDAAwB;IACxB,0BAA0B,EAA1B,uDAA0B;IAC1B,YAAY,EAAZ,2BAAY;IACZ,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,qBAAS;IACT,SAAS,EAAT,qBAAS;IACT,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,uBAAU;IACV,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,QAAQ,EAAR,mBAAQ;IACR,MAAM,EAAN,eAAM;IACN,SAAS,EAAT,qBAAS;IACT,WAAW,EAAX,yBAAW;IACX,UAAU,EAAV,uBAAU;IACV,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,UAAU,EAAV,uBAAU;IACV,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,WAAW,EAAX,yBAAW;IACX,WAAW,EAAX,yBAAW;CACZ,CAAC"}
@@ -1 +1,2 @@
1
1
  export * from "./dateLib.js";
2
+ export { TZDate } from "@date-fns/tz";
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.TZDate = void 0;
17
18
  __exportStar(require("./dateLib.js"), exports);
19
+ var tz_1 = require("@date-fns/tz");
20
+ Object.defineProperty(exports, "TZDate", { enumerable: true, get: function () { return tz_1.TZDate; } });
18
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mCAAsC;AAA7B,4FAAA,MAAM,OAAA"}
@@ -0,0 +1 @@
1
+ export * from "date-fns/locale";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("date-fns/locale"), exports);
18
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/locale.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
@@ -1,2 +1,3 @@
1
- import type { DateLib, DayPickerProps, Selection } from "../types/index.js";
1
+ import type { DateLib } from "../lib/dateLib.js";
2
+ import type { DayPickerProps, Selection } from "../types/index.js";
2
3
  export declare function useMulti<T extends DayPickerProps>(props: T, dateLib: DateLib): Selection<T>;
@@ -4,7 +4,8 @@ exports.useMulti = useMulti;
4
4
  const useControlledValue_js_1 = require("../helpers/useControlledValue.js");
5
5
  function useMulti(props, dateLib) {
6
6
  const { selected: initiallySelected, required, onSelect } = props;
7
- const [selected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
7
+ const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
8
+ const selected = !onSelect ? internallySelected : initiallySelected;
8
9
  const { isSameDay } = dateLib;
9
10
  const isSelected = (date) => {
10
11
  return selected?.some((d) => isSameDay(d, date)) ?? false;
@@ -33,7 +34,9 @@ function useMulti(props, dateLib) {
33
34
  newDates = [...newDates, triggerDate];
34
35
  }
35
36
  }
36
- setSelected(newDates);
37
+ if (!onSelect) {
38
+ setSelected(newDates);
39
+ }
37
40
  onSelect?.(newDates, triggerDate, modifiers, e);
38
41
  return newDates;
39
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMulti.js","sourceRoot":"","sources":["../../../src/selection/useMulti.tsx"],"names":[],"mappings":";;AAWA,4BA0DC;AAnED,4EAAsE;AAStE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAChD,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE;QAChC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;IAEzC,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,QAAQ,GAAuB,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,gCAAgC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,6CAA6C;gBAC7C,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,iDAAiD;gBACjD,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"useMulti.js","sourceRoot":"","sources":["../../../src/selection/useMulti.tsx"],"names":[],"mappings":";;AAWA,4BA8DC;AAvED,4EAAsE;AAStE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE;QAChC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;IAEzC,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,QAAQ,GAAuB,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,gCAAgC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,6CAA6C;gBAC7C,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,iDAAiD;gBACjD,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
@@ -1,2 +1,3 @@
1
- import type { DateLib, DayPickerProps, Selection } from "../types/index.js";
1
+ import type { DateLib } from "../lib/index.js";
2
+ import type { DayPickerProps, Selection } from "../types/index.js";
2
3
  export declare function useRange<T extends DayPickerProps>(props: T, dateLib: DateLib): Selection<T>;
@@ -6,7 +6,8 @@ const index_js_1 = require("../utils/index.js");
6
6
  const rangeIncludesDate_js_1 = require("../utils/rangeIncludesDate.js");
7
7
  function useRange(props, dateLib) {
8
8
  const { disabled, excludeDisabled, selected: initiallySelected, required, onSelect } = props;
9
- const [selected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
9
+ const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
10
+ const selected = !onSelect ? internallySelected : initiallySelected;
10
11
  const isSelected = (date) => selected && (0, rangeIncludesDate_js_1.rangeIncludesDate)(selected, date, false, dateLib);
11
12
  const select = (triggerDate, modifiers, e) => {
12
13
  const { min, max } = props;
@@ -27,7 +28,9 @@ function useRange(props, dateLib) {
27
28
  }
28
29
  }
29
30
  }
30
- setSelected(newRange);
31
+ if (!onSelect) {
32
+ setSelected(newRange);
33
+ }
31
34
  onSelect?.(newRange, triggerDate, modifiers, e);
32
35
  return newRange;
33
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useRange.js","sourceRoot":"","sources":["../../../src/selection/useRange.tsx"],"names":[],"mappings":";;AAaA,4BA0DC;AArED,4EAAsE;AAQtE,gDAAmE;AACnE,wEAAkE;AAElE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EACR,eAAe,EACf,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAChD,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAChC,QAAQ,IAAI,IAAA,wCAAiB,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,IAAA,qBAAU,EAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,OAAO,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtC,IACE,eAAe;oBACf,QAAQ;oBACR,IAAA,6BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC9C,CAAC;oBACD,kDAAkD;oBAClD,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC5B,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,WAAW,CAAC,QAAQ,CAAC,CAAC;QACtB,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"useRange.js","sourceRoot":"","sources":["../../../src/selection/useRange.tsx"],"names":[],"mappings":";;AAaA,4BA8DC;AAzED,4EAAsE;AAQtE,gDAAmE;AACnE,wEAAkE;AAElE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EACR,eAAe,EACf,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAChC,QAAQ,IAAI,IAAA,wCAAiB,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,IAAA,qBAAU,EAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,OAAO,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtC,IACE,eAAe;oBACf,QAAQ;oBACR,IAAA,6BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC9C,CAAC;oBACD,kDAAkD;oBAClD,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC5B,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { DateLib, DayPickerProps, SelectHandler, SelectedValue, Selection } from "../types/index.js";
1
+ import type { DateLib } from "../lib/index.js";
2
+ import type { DayPickerProps, SelectHandler, SelectedValue, Selection } from "../types/index.js";
2
3
  export type UseSingle<T extends DayPickerProps> = {
3
4
  select: SelectHandler<T>;
4
5
  isSelected: (date: Date) => boolean;
@@ -4,7 +4,8 @@ exports.useSingle = useSingle;
4
4
  const useControlledValue_js_1 = require("../helpers/useControlledValue.js");
5
5
  function useSingle(props, dateLib) {
6
6
  const { selected: initiallySelected, required, onSelect } = props;
7
- const [selected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
7
+ const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
8
+ const selected = !onSelect ? internallySelected : initiallySelected;
8
9
  const { isSameDay } = dateLib;
9
10
  const isSelected = (compareDate) => {
10
11
  return selected ? isSameDay(selected, compareDate) : false;
@@ -15,7 +16,9 @@ function useSingle(props, dateLib) {
15
16
  // If the date is the same, clear the selection.
16
17
  newDate = undefined;
17
18
  }
18
- setSelected(newDate);
19
+ if (!onSelect) {
20
+ setSelected(newDate);
21
+ }
19
22
  if (required) {
20
23
  onSelect?.(newDate, triggerDate, modifiers, e);
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useSingle.js","sourceRoot":"","sources":["../../../src/selection/useSingle.tsx"],"names":[],"mappings":";;AAmBA,8BA6CC;AA9DD,4EAAsE;AAiBtE,SAAgB,SAAS,CACvB,KAAqB,EACrB,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAoB,CAAC;IAEzB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAChD,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,WAAiB,EAAE,EAAE;QACvC,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,OAAO,GAAqB,WAAW,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,gDAAgD;YAChD,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC,OAAe,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"useSingle.js","sourceRoot":"","sources":["../../../src/selection/useSingle.tsx"],"names":[],"mappings":";;AAmBA,8BAiDC;AAlED,4EAAsE;AAiBtE,SAAgB,SAAS,CACvB,KAAqB,EACrB,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAoB,CAAC;IAEzB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,WAAiB,EAAE,EAAE;QACvC,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,OAAO,GAAqB,WAAW,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,gDAAgD;YAChD,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC,OAAe,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import type { DeprecatedUI } from "../UI.js";
3
- import type { Locale } from "../lib/dateLib.js";
4
- import type { ClassNames, ModifiersClassNames, Styles, ModifiersStyles, CustomComponents, Matcher, Labels, Formatters, MonthChangeEventHandler, DayEventHandler, Modifiers, DateRange, Mode, DateLib } from "./shared.js";
3
+ import type { Locale, DateLib } from "../lib/dateLib.js";
4
+ import type { ClassNames, ModifiersClassNames, Styles, ModifiersStyles, CustomComponents, Matcher, Labels, Formatters, MonthChangeEventHandler, DayEventHandler, Modifiers, DateRange, Mode } from "./shared.js";
5
5
  /**
6
6
  * The props for the `<DayPicker />` component.
7
7
  *
@@ -228,6 +228,21 @@ export interface PropsBase {
228
228
  * @see https://en.wikipedia.org/wiki/ISO_week_date
229
229
  */
230
230
  ISOWeek?: boolean;
231
+ /**
232
+ * The time zone (IANA or UTC offset) to use in the calendar (experimental).
233
+ * See
234
+ * [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
235
+ * for the possible values.
236
+ *
237
+ * Time zones are supported by the `TZDate` object by the
238
+ * [@date-fns/tz](https://github.com/date-fns/tz) package. Please refer to the
239
+ * package documentation for more information.
240
+ *
241
+ * @since 9.1.1
242
+ * @experimental
243
+ * @see https://daypicker.dev/docs/localization#time-zone
244
+ */
245
+ timeZone?: string | undefined;
231
246
  /**
232
247
  * Change the components used for rendering the calendar elements.
233
248
  *
@@ -310,15 +325,16 @@ export interface PropsBase {
310
325
  /** Add the language tag to the container element. */
311
326
  lang?: HTMLDivElement["lang"];
312
327
  /**
313
- * The locale object used to localize dates. Pass a locale from `date-fns` to
314
- * localize the calendar.
328
+ * The locale object used to localize dates. Pass a locale from
329
+ * `react-day-picker/locale` to localize the calendar.
315
330
  *
316
331
  * @example
317
- * import { es } from "date-fns/locale";
332
+ * import { es } from "react-day-picker/locale";
318
333
  * <DayPicker locale={es} />
319
334
  *
320
335
  * @defaultValue enUS - The English locale default of `date-fns`.
321
336
  * @see https://daypicker.dev/docs/localization
337
+ * @see https://github.com/date-fns/date-fns/tree/main/src/locale for a list of the supported locales
322
338
  */
323
339
  locale?: Partial<Locale> | undefined;
324
340
  /**
@@ -435,7 +451,16 @@ export interface PropsBase {
435
451
  */
436
452
  onDayTouchStart?: DayEventHandler<React.TouchEvent>;
437
453
  }
438
- /** Shared handler type for onSelect events */
454
+ /**
455
+ * Shared handler type for `onSelect` callback when a selection mode is set.
456
+ *
457
+ * @template T - The type of the selected item.
458
+ * @callback OnSelectHandler
459
+ * @param {T} selected - The selected item after the event.
460
+ * @param {Date} triggerDate - The date when the event was triggered.
461
+ * @param {Modifiers} modifiers - The modifiers associated with the event.
462
+ * @param {React.MouseEvent | React.KeyboardEvent} e - The event object.
463
+ */
439
464
  export type OnSelectHandler<T> = (selected: T, triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => void;
440
465
  /**
441
466
  * The props when the single selection is required.
@@ -1,5 +1,5 @@
1
1
  import type { DayPickerProps } from "./props.js";
2
- import type { DateRange, Modifiers } from "./shared.js";
2
+ import type { DateRange, Mode, Modifiers } from "./shared.js";
3
3
  export type Selection<T extends DayPickerProps> = {
4
4
  /** The selected date(s). */
5
5
  selected: SelectedValue<T> | undefined;
@@ -27,10 +27,19 @@ export type SelectedValue<T> = T extends {
27
27
  mode: "range";
28
28
  required?: boolean;
29
29
  } ? SelectedRange<T> : undefined;
30
- export type SelectHandlerSingle<T extends DayPickerProps> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date : Date | undefined;
31
- export type SelectHandlerMulti<T extends DayPickerProps> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date[] : Date[] | undefined;
32
- export type SelectHandlerRange<T extends DayPickerProps> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? DateRange : DateRange | undefined;
33
- export type SelectHandler<T extends DayPickerProps> = T extends {
30
+ export type SelectHandlerSingle<T extends {
31
+ required?: boolean | undefined;
32
+ }> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date : Date | undefined;
33
+ export type SelectHandlerMulti<T extends {
34
+ required?: boolean | undefined;
35
+ }> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date[] : Date[] | undefined;
36
+ export type SelectHandlerRange<T extends {
37
+ required?: boolean | undefined;
38
+ }> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? DateRange : DateRange | undefined;
39
+ export type SelectHandler<T extends {
40
+ mode?: Mode | undefined;
41
+ required?: boolean | undefined;
42
+ }> = T extends {
34
43
  mode: "single";
35
44
  } ? SelectHandlerSingle<T> : T extends {
36
45
  mode: "multiple";
@@ -3,7 +3,6 @@ import { UI, DayFlag, SelectionState } from "../UI.js";
3
3
  import * as components from "../components/custom-components.js";
4
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
- import { dateLib } from "../lib/index.js";
7
6
  /**
8
7
  * Selection modes supported by DayPicker.
9
8
  *
@@ -78,8 +77,6 @@ export type CustomComponents = {
78
77
  /** Render the dropdown with the years. */
79
78
  YearsDropdown: typeof components.YearsDropdown;
80
79
  };
81
- /** @private */
82
- export type DateLib = typeof dateLib;
83
80
  /** Represent a map of formatters used to render localized content. */
84
81
  export type Formatters = {
85
82
  /** Format the caption of a month grid. */
@@ -283,15 +280,27 @@ export type Styles = {
283
280
  [key in UI | SelectionState | DayFlag]: CSSProperties | undefined;
284
281
  };
285
282
  /**
286
- * The modifiers that are matching a day in the calendar.
283
+ * Represents the modifiers that match a specific day in the calendar.
284
+ *
285
+ * - Retrieve modifiers using the {@link OnSelectHandler} via the `onSelect` prop,
286
+ * or within custom components using the {@link useDayPicker} hook.
287
+ * - Includes built-in modifiers from {@link DayFlag} and {@link SelectionState}.
288
+ * - Add custom modifiers using the `modifiers` prop.
287
289
  *
288
290
  * @example
289
291
  * const modifiers: Modifiers = {
290
- * today: false, // the day is not today
291
- * selected: true, // the day is selected
292
- * weekend: false // the day is not in the weekend
293
- * // etc
292
+ * today: false, // the day is not today
293
+ * selected: true, // the day is selected
294
+ * disabled: false, // the day is not disabled
295
+ * outside: false, // the day is not outside the month
296
+ * focused: false, // the day is not focused
297
+ *
298
+ * weekend: false // custom modifier example for matching a weekend
299
+ * booked: true // custom modifier example for matching a booked day
300
+ * available: false // custom modifier example for matching an available day
294
301
  * };
302
+ *
303
+ * @see https://daypicker.dev/guides/custom-modifiers
295
304
  */
296
305
  export type Modifiers = Record<string, boolean>;
297
306
  /**
@@ -1,6 +1,6 @@
1
1
  import type { CalendarWeek, CalendarDay, CalendarMonth } from "./classes/index.js";
2
+ import type { DateLib } from "./lib/index.js";
2
3
  import type { DayPickerProps } from "./types/props.js";
3
- import type { DateLib } from "./types/shared.js";
4
4
  /**
5
5
  * Return the calendar object to work with the calendar in custom components.
6
6
  *
@@ -45,4 +45,4 @@ export interface Calendar {
45
45
  goToDay: (day: CalendarDay) => void;
46
46
  }
47
47
  /** @private */
48
- export declare function useCalendar(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "fixedWeeks" | "ISOWeek" | "weekStartsOn" | "numberOfMonths" | "disableNavigation" | "onMonthChange" | "month" | "defaultMonth" | "fromMonth" | "fromYear" | "toMonth" | "toYear">, dateLib: DateLib): Calendar;
48
+ export declare function useCalendar(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "fixedWeeks" | "ISOWeek" | "weekStartsOn" | "numberOfMonths" | "disableNavigation" | "onMonthChange" | "month" | "defaultMonth" | "timeZone" | "fromMonth" | "fromYear" | "toMonth" | "toYear">, dateLib: DateLib): Calendar;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useCalendar = useCalendar;
4
+ const react_1 = require("react");
4
5
  const getDates_js_1 = require("./helpers/getDates.js");
5
6
  const getDays_js_1 = require("./helpers/getDays.js");
6
7
  const getDisplayMonths_js_1 = require("./helpers/getDisplayMonths.js");
@@ -17,6 +18,11 @@ function useCalendar(props, dateLib) {
17
18
  const { startOfMonth, endOfMonth } = dateLib;
18
19
  const initialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);
19
20
  const [firstMonth, setFirstMonth] = (0, useControlledValue_js_1.useControlledValue)(initialMonth, props.month ? startOfMonth(props.month) : undefined);
21
+ (0, react_1.useEffect)(() => {
22
+ const newInitialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);
23
+ setFirstMonth(newInitialMonth);
24
+ // eslint-disable-next-line react-hooks/exhaustive-deps
25
+ }, [props.timeZone]);
20
26
  /** The months displayed in the calendar. */
21
27
  const displayMonths = (0, getDisplayMonths_js_1.getDisplayMonths)(firstMonth, navEnd, props, dateLib);
22
28
  /** 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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"}
@@ -1,11 +1,24 @@
1
1
  import { CalendarDay } from "./classes/CalendarDay.js";
2
2
  import { CalendarMonth } from "./classes/CalendarMonth.js";
3
- import type { DayPickerProps } from "./types/props.js";
4
3
  import type { SelectedValue, SelectHandler } from "./types/selection.js";
5
- import { ClassNames, CustomComponents, Formatters, Labels, Modifiers, Styles } from "./types/shared.js";
4
+ import { ClassNames, CustomComponents, Formatters, Labels, Mode, Modifiers, Styles } from "./types/shared.js";
6
5
  /** @private */
7
- export declare const dayPickerContext: import("react").Context<DayPickerContext<DayPickerProps> | undefined>;
8
- export type DayPickerContext<T extends DayPickerProps> = {
6
+ export declare const dayPickerContext: import("react").Context<DayPickerContext<{
7
+ mode?: Mode | undefined;
8
+ required?: boolean | undefined;
9
+ }> | undefined>;
10
+ /**
11
+ * Represents the context for the DayPicker component, providing various
12
+ * properties and methods to interact with the calendar.
13
+ *
14
+ * @template T - The type of the DayPicker props, which must optionally include
15
+ * `mode` and `required` properties. This type can be used to refine the type
16
+ * returned by the hook.
17
+ */
18
+ export type DayPickerContext<T extends {
19
+ mode?: Mode | undefined;
20
+ required?: boolean | undefined;
21
+ }> = {
9
22
  /** The months displayed in the calendar. */
10
23
  months: CalendarMonth[];
11
24
  /** The next month to display. */
@@ -34,9 +47,20 @@ export type DayPickerContext<T extends DayPickerProps> = {
34
47
  formatters: Formatters;
35
48
  };
36
49
  /**
37
- * Return the context to work with `<DayPicker />` inside custom components.
50
+ * Returns the context to work with `<DayPicker />` inside custom components.
51
+ *
52
+ * This hook provides access to the DayPicker context, which includes various
53
+ * properties and methods to interact with the DayPicker component. It must be
54
+ * used within a custom component.
38
55
  *
56
+ * @template T - Use this type to refine the returned context type with a
57
+ * specific selection mode.
58
+ * @returns {DayPickerContext<T>} The context to work with DayPicker.
59
+ * @throws {Error} If the hook is used outside of a DayPicker provider.
39
60
  * @group Hooks
40
61
  * @see https://daypicker.dev/guides/custom-components
41
62
  */
42
- export declare function useDayPicker<T extends DayPickerProps>(props?: T): DayPickerContext<T>;
63
+ export declare function useDayPicker<T extends {
64
+ mode?: Mode | undefined;
65
+ required?: boolean | undefined;
66
+ }>(): DayPickerContext<T>;