react-day-picker 9.13.2 → 10.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/DayPicker.js +85 -83
  3. package/dist/cjs/UI.d.ts +0 -230
  4. package/dist/cjs/classes/DateLib.d.ts +0 -21
  5. package/dist/cjs/classes/DateLib.js +3 -13
  6. package/dist/cjs/components/Dropdown.d.ts +0 -11
  7. package/dist/cjs/components/Dropdown.js +3 -1
  8. package/dist/cjs/components/NextMonthButton.js +1 -3
  9. package/dist/cjs/components/PreviousMonthButton.js +1 -3
  10. package/dist/cjs/components/custom-components.d.ts +0 -1
  11. package/dist/cjs/components/custom-components.js +0 -1
  12. package/dist/cjs/formatters/formatCaption.d.ts +0 -6
  13. package/dist/cjs/formatters/formatCaption.js +0 -7
  14. package/dist/cjs/formatters/formatYearDropdown.d.ts +0 -6
  15. package/dist/cjs/formatters/formatYearDropdown.js +0 -7
  16. package/dist/cjs/helpers/getFormatters.d.ts +0 -2
  17. package/dist/cjs/helpers/getFormatters.js +0 -7
  18. package/dist/cjs/helpers/getInitialMonth.d.ts +1 -1
  19. package/dist/cjs/helpers/getNavMonth.d.ts +1 -1
  20. package/dist/cjs/helpers/getNavMonth.js +1 -21
  21. package/dist/cjs/hijri/index.d.ts +28 -0
  22. package/dist/cjs/hijri/index.js +92 -0
  23. package/dist/cjs/hijri/lib/addMonths.d.ts +1 -0
  24. package/dist/cjs/hijri/lib/addMonths.js +9 -0
  25. package/dist/cjs/hijri/lib/addYears.d.ts +1 -0
  26. package/dist/cjs/hijri/lib/addYears.js +9 -0
  27. package/dist/cjs/hijri/lib/differenceInCalendarMonths.d.ts +1 -0
  28. package/dist/cjs/hijri/lib/differenceInCalendarMonths.js +10 -0
  29. package/dist/cjs/hijri/lib/eachMonthOfInterval.d.ts +2 -0
  30. package/dist/cjs/hijri/lib/eachMonthOfInterval.js +29 -0
  31. package/dist/cjs/hijri/lib/eachYearOfInterval.d.ts +2 -0
  32. package/dist/cjs/hijri/lib/eachYearOfInterval.js +19 -0
  33. package/dist/cjs/hijri/lib/endOfMonth.d.ts +1 -0
  34. package/dist/cjs/hijri/lib/endOfMonth.js +14 -0
  35. package/dist/cjs/hijri/lib/endOfYear.d.ts +1 -0
  36. package/dist/cjs/hijri/lib/endOfYear.js +14 -0
  37. package/dist/cjs/hijri/lib/fallbackLocaleData.d.ts +5 -0
  38. package/dist/cjs/hijri/lib/fallbackLocaleData.js +111 -0
  39. package/dist/cjs/hijri/lib/format.d.ts +3 -0
  40. package/dist/cjs/hijri/lib/format.js +149 -0
  41. package/dist/cjs/hijri/lib/getMonth.d.ts +1 -0
  42. package/dist/cjs/hijri/lib/getMonth.js +7 -0
  43. package/dist/cjs/hijri/lib/getYear.d.ts +1 -0
  44. package/dist/cjs/hijri/lib/getYear.js +7 -0
  45. package/dist/cjs/hijri/lib/index.d.ts +17 -0
  46. package/dist/cjs/hijri/lib/index.js +33 -0
  47. package/dist/cjs/hijri/lib/isSameMonth.d.ts +1 -0
  48. package/dist/cjs/hijri/lib/isSameMonth.js +10 -0
  49. package/dist/cjs/hijri/lib/isSameYear.d.ts +1 -0
  50. package/dist/cjs/hijri/lib/isSameYear.js +9 -0
  51. package/dist/cjs/hijri/lib/newDate.d.ts +1 -0
  52. package/dist/cjs/hijri/lib/newDate.js +7 -0
  53. package/dist/cjs/hijri/lib/setMonth.d.ts +1 -0
  54. package/dist/cjs/hijri/lib/setMonth.js +27 -0
  55. package/dist/cjs/hijri/lib/setYear.d.ts +1 -0
  56. package/dist/cjs/hijri/lib/setYear.js +15 -0
  57. package/dist/cjs/hijri/lib/startOfMonth.d.ts +1 -0
  58. package/dist/cjs/hijri/lib/startOfMonth.js +12 -0
  59. package/dist/cjs/hijri/lib/startOfYear.d.ts +1 -0
  60. package/dist/cjs/hijri/lib/startOfYear.js +12 -0
  61. package/dist/cjs/hijri/utils/conversion.d.ts +5 -0
  62. package/dist/cjs/hijri/utils/conversion.js +40 -0
  63. package/dist/cjs/hijri/utils/daysInMonth.d.ts +1 -0
  64. package/dist/cjs/hijri/utils/daysInMonth.js +24 -0
  65. package/dist/cjs/hijri/utils/range.d.ts +21 -0
  66. package/dist/cjs/hijri/utils/range.js +104 -0
  67. package/dist/cjs/hijri/utils/types.d.ts +5 -0
  68. package/dist/cjs/hijri/utils/types.js +2 -0
  69. package/dist/cjs/labels/labelDayButton.d.ts +0 -5
  70. package/dist/cjs/labels/labelDayButton.js +0 -6
  71. package/dist/cjs/labels/labelGrid.d.ts +0 -5
  72. package/dist/cjs/labels/labelGrid.js +0 -6
  73. package/dist/cjs/selection/useRange.js +22 -4
  74. package/dist/cjs/types/index.d.ts +0 -1
  75. package/dist/cjs/types/index.js +0 -1
  76. package/dist/cjs/types/props.d.ts +30 -100
  77. package/dist/cjs/types/shared.d.ts +1 -45
  78. package/dist/cjs/useCalendar.d.ts +1 -1
  79. package/dist/cjs/utils/dateMatchModifiers.d.ts +0 -5
  80. package/dist/cjs/utils/dateMatchModifiers.js +0 -6
  81. package/dist/cjs/utils/rangeIncludesDate.d.ts +0 -5
  82. package/dist/cjs/utils/rangeIncludesDate.js +0 -7
  83. package/dist/esm/DayPicker.js +85 -83
  84. package/dist/esm/UI.d.ts +0 -230
  85. package/dist/esm/classes/DateLib.d.ts +0 -21
  86. package/dist/esm/classes/DateLib.js +2 -12
  87. package/dist/esm/components/Dropdown.d.ts +0 -11
  88. package/dist/esm/components/Dropdown.js +3 -1
  89. package/dist/esm/components/NextMonthButton.js +1 -3
  90. package/dist/esm/components/PreviousMonthButton.js +1 -3
  91. package/dist/esm/components/custom-components.d.ts +0 -1
  92. package/dist/esm/components/custom-components.js +0 -1
  93. package/dist/esm/formatters/formatCaption.d.ts +0 -6
  94. package/dist/esm/formatters/formatCaption.js +0 -6
  95. package/dist/esm/formatters/formatYearDropdown.d.ts +0 -6
  96. package/dist/esm/formatters/formatYearDropdown.js +0 -6
  97. package/dist/esm/helpers/getFormatters.d.ts +0 -2
  98. package/dist/esm/helpers/getFormatters.js +0 -7
  99. package/dist/esm/helpers/getInitialMonth.d.ts +1 -1
  100. package/dist/esm/helpers/getNavMonth.d.ts +1 -1
  101. package/dist/esm/helpers/getNavMonth.js +1 -21
  102. package/dist/esm/hijri/index.d.ts +28 -0
  103. package/dist/esm/hijri/index.js +49 -0
  104. package/dist/esm/hijri/lib/addMonths.d.ts +1 -0
  105. package/dist/esm/hijri/lib/addMonths.js +6 -0
  106. package/dist/esm/hijri/lib/addYears.d.ts +1 -0
  107. package/dist/esm/hijri/lib/addYears.js +6 -0
  108. package/dist/esm/hijri/lib/differenceInCalendarMonths.d.ts +1 -0
  109. package/dist/esm/hijri/lib/differenceInCalendarMonths.js +7 -0
  110. package/dist/esm/hijri/lib/eachMonthOfInterval.d.ts +2 -0
  111. package/dist/esm/hijri/lib/eachMonthOfInterval.js +26 -0
  112. package/dist/esm/hijri/lib/eachYearOfInterval.d.ts +2 -0
  113. package/dist/esm/hijri/lib/eachYearOfInterval.js +16 -0
  114. package/dist/esm/hijri/lib/endOfMonth.d.ts +1 -0
  115. package/dist/esm/hijri/lib/endOfMonth.js +11 -0
  116. package/dist/esm/hijri/lib/endOfYear.d.ts +1 -0
  117. package/dist/esm/hijri/lib/endOfYear.js +11 -0
  118. package/dist/esm/hijri/lib/fallbackLocaleData.d.ts +5 -0
  119. package/dist/esm/hijri/lib/fallbackLocaleData.js +105 -0
  120. package/dist/esm/hijri/lib/format.d.ts +3 -0
  121. package/dist/esm/hijri/lib/format.js +146 -0
  122. package/dist/esm/hijri/lib/getMonth.d.ts +1 -0
  123. package/dist/esm/hijri/lib/getMonth.js +4 -0
  124. package/dist/esm/hijri/lib/getYear.d.ts +1 -0
  125. package/dist/esm/hijri/lib/getYear.js +4 -0
  126. package/dist/esm/hijri/lib/index.d.ts +17 -0
  127. package/dist/esm/hijri/lib/index.js +17 -0
  128. package/dist/esm/hijri/lib/isSameMonth.d.ts +1 -0
  129. package/dist/esm/hijri/lib/isSameMonth.js +7 -0
  130. package/dist/esm/hijri/lib/isSameYear.d.ts +1 -0
  131. package/dist/esm/hijri/lib/isSameYear.js +6 -0
  132. package/dist/esm/hijri/lib/newDate.d.ts +1 -0
  133. package/dist/esm/hijri/lib/newDate.js +4 -0
  134. package/dist/esm/hijri/lib/setMonth.d.ts +1 -0
  135. package/dist/esm/hijri/lib/setMonth.js +24 -0
  136. package/dist/esm/hijri/lib/setYear.d.ts +1 -0
  137. package/dist/esm/hijri/lib/setYear.js +12 -0
  138. package/dist/esm/hijri/lib/startOfMonth.d.ts +1 -0
  139. package/dist/esm/hijri/lib/startOfMonth.js +9 -0
  140. package/dist/esm/hijri/lib/startOfYear.d.ts +1 -0
  141. package/dist/esm/hijri/lib/startOfYear.js +9 -0
  142. package/dist/esm/hijri/utils/conversion.d.ts +5 -0
  143. package/dist/esm/hijri/utils/conversion.js +36 -0
  144. package/dist/esm/hijri/utils/daysInMonth.d.ts +1 -0
  145. package/dist/esm/hijri/utils/daysInMonth.js +21 -0
  146. package/dist/esm/hijri/utils/range.d.ts +21 -0
  147. package/dist/esm/hijri/utils/range.js +96 -0
  148. package/dist/esm/hijri/utils/types.d.ts +5 -0
  149. package/dist/esm/hijri/utils/types.js +1 -0
  150. package/dist/esm/labels/labelDayButton.d.ts +0 -5
  151. package/dist/esm/labels/labelDayButton.js +0 -5
  152. package/dist/esm/labels/labelGrid.d.ts +0 -5
  153. package/dist/esm/labels/labelGrid.js +0 -5
  154. package/dist/esm/selection/useRange.js +22 -4
  155. package/dist/esm/types/index.d.ts +0 -1
  156. package/dist/esm/types/index.js +0 -1
  157. package/dist/esm/types/props.d.ts +30 -100
  158. package/dist/esm/types/shared.d.ts +1 -45
  159. package/dist/esm/useCalendar.d.ts +1 -1
  160. package/dist/esm/utils/dateMatchModifiers.d.ts +0 -5
  161. package/dist/esm/utils/dateMatchModifiers.js +0 -5
  162. package/dist/esm/utils/rangeIncludesDate.d.ts +0 -5
  163. package/dist/esm/utils/rangeIncludesDate.js +0 -5
  164. package/hijri.d.ts +1 -0
  165. package/hijri.js +2 -0
  166. package/package.json +24 -23
  167. package/dist/cjs/components/Button.d.ts +0 -9
  168. package/dist/cjs/components/Button.js +0 -16
  169. package/dist/cjs/jalali.d.ts +0 -2
  170. package/dist/cjs/jalali.js +0 -18
  171. package/dist/cjs/types/deprecated.d.ts +0 -180
  172. package/dist/cjs/types/deprecated.js +0 -26
  173. package/dist/esm/components/Button.d.ts +0 -9
  174. package/dist/esm/components/Button.js +0 -10
  175. package/dist/esm/jalali.d.ts +0 -2
  176. package/dist/esm/jalali.js +0 -2
  177. package/dist/esm/types/deprecated.d.ts +0 -180
  178. package/dist/esm/types/deprecated.js +0 -23
  179. package/jalali.d.ts +0 -1
  180. package/jalali.js +0 -3
package/README.md CHANGED
@@ -18,7 +18,7 @@ See **[daypicker.dev](https://daypicker.dev)** for guides, examples and API refe
18
18
  - 🎨 Minimal design that can be [easily styled](https://daypicker.dev/docs/styling) with CSS or any CSS framework.
19
19
  - 📅 Supports [selections](https://daypicker.dev/docs/selection-modes) of single days, multiple days, ranges of days, or [custom selections](https://daypicker.dev/guides/custom-selections).
20
20
  - 🌍 Can be [localized](https://daypicker.dev/docs/localization) into any language and [time zones](https://daypicker.dev/docs/time-zone).
21
- - 🌐 Support for [ISO 8601](http://daypicker.dev/localization/iso-and-broadcast#iso-8601-calendar), [Persian](http://daypicker.dev/localization/persian), [Buddhist (Thai)](http://daypicker.dev/localization/buddhist), [Ethiopic](http://daypicker.dev/localization/ethiopic), [Hebrew](http://daypicker.dev/localization/hebrew) and [broadcast](http://daypicker.dev/localization/iso-and-broadcast#broadcast-calendar) calendar.
21
+ - 🌐 Support for [ISO 8601](http://daypicker.dev/localization/iso-and-broadcast#iso-8601-calendar), [Persian](http://daypicker.dev/localization/persian), [Hijri](http://daypicker.dev/localization/hijri), [Buddhist (Thai)](http://daypicker.dev/localization/buddhist), [Ethiopic](http://daypicker.dev/localization/ethiopic), [Hebrew](http://daypicker.dev/localization/hebrew) and [broadcast](http://daypicker.dev/localization/iso-and-broadcast#broadcast-calendar) calendar.
22
22
  - 🦮 Complies with WCAG 2.1 AA requirements for [accessibility](https://daypicker.dev/guides/accessibility).
23
23
  - ⚙️ [Customizable components](https://daypicker.dev/guides/custom-components) to extend the rendered elements.
24
24
  - 🔤 Easy integration [with input fields](https://daypicker.dev/guides/input-fields).
@@ -164,8 +164,12 @@ function DayPicker(initialProps) {
164
164
  props.labels,
165
165
  props.classNames,
166
166
  ]);
167
- if (!props.today) {
168
- props = { ...props, today: dateLib.today() };
167
+ if (!props.today || props.navLayout === undefined) {
168
+ props = {
169
+ ...props,
170
+ today: props.today ?? dateLib.today(),
171
+ navLayout: props.navLayout ?? "after",
172
+ };
169
173
  }
170
174
  const { captionLayout, mode, navLayout, numberOfMonths = 1, onDayBlur, onDayClick, onDayFocus, onDayKeyDown, onDayMouseEnter, onDayMouseLeave, onNextClick, onPrevClick, showWeekNumber, styles, } = props;
171
175
  const { formatCaption, formatDay, formatMonthDropdown, formatWeekNumber, formatWeekNumberHeader, formatWeekdayName, formatYearDropdown, } = formatters;
@@ -279,86 +283,84 @@ function DayPicker(initialProps) {
279
283
  formatters,
280
284
  };
281
285
  return (react_1.default.createElement(useDayPicker_js_1.dayPickerContext.Provider, { value: contextValue },
282
- react_1.default.createElement(components.Root, { rootRef: props.animate ? rootElRef : undefined, className: className, style: style, dir: props.dir, id: props.id, lang: props.lang, nonce: props.nonce, title: props.title, role: props.role, "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], ...dataAttributes },
283
- react_1.default.createElement(components.Months, { className: classNames[UI_js_1.UI.Months], style: styles?.[UI_js_1.UI.Months] },
284
- !props.hideNavigation && !navLayout && (react_1.default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Nav], style: styles?.[UI_js_1.UI.Nav], "aria-label": labelNav(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth: previousMonth, nextMonth: nextMonth })),
285
- months.map((calendarMonth, displayIndex) => {
286
- return (react_1.default.createElement(components.Month, { "data-animated-month": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Month], style: styles?.[UI_js_1.UI.Month],
287
- // biome-ignore lint/suspicious/noArrayIndexKey: breaks animation
288
- key: displayIndex, displayIndex: displayIndex, calendarMonth: calendarMonth },
289
- navLayout === "around" &&
290
- !props.hideNavigation &&
291
- displayIndex === 0 && (react_1.default.createElement(components.PreviousMonthButton, { type: "button", className: classNames[UI_js_1.UI.PreviousMonthButton], tabIndex: previousMonth ? undefined : -1, "aria-disabled": previousMonth ? undefined : true, "aria-label": labelPrevious(previousMonth), onClick: handlePreviousClick, "data-animated-button": props.animate ? "true" : undefined },
292
- react_1.default.createElement(components.Chevron, { disabled: previousMonth ? undefined : true, className: classNames[UI_js_1.UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" }))),
293
- react_1.default.createElement(components.MonthCaption, { "data-animated-caption": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.MonthCaption], style: styles?.[UI_js_1.UI.MonthCaption], calendarMonth: calendarMonth, displayIndex: displayIndex }, captionLayout?.startsWith("dropdown") ? (react_1.default.createElement(components.DropdownNav, { className: classNames[UI_js_1.UI.Dropdowns], style: styles?.[UI_js_1.UI.Dropdowns] },
294
- (() => {
295
- const monthControl = captionLayout === "dropdown" ||
296
- captionLayout === "dropdown-months" ? (react_1.default.createElement(components.MonthsDropdown, { key: "month", className: classNames[UI_js_1.UI.MonthsDropdown], "aria-label": labelMonthDropdown(), classNames: classNames, components: components, disabled: Boolean(props.disableNavigation), onChange: handleMonthChange(calendarMonth.date), options: (0, getMonthOptions_js_1.getMonthOptions)(calendarMonth.date, navStart, navEnd, formatters, dateLib), style: styles?.[UI_js_1.UI.Dropdown], value: dateLib.getMonth(calendarMonth.date) })) : (react_1.default.createElement("span", { key: "month" }, formatMonthDropdown(calendarMonth.date, dateLib)));
297
- const yearControl = captionLayout === "dropdown" ||
298
- captionLayout === "dropdown-years" ? (react_1.default.createElement(components.YearsDropdown, { key: "year", className: classNames[UI_js_1.UI.YearsDropdown], "aria-label": labelYearDropdown(dateLib.options), classNames: classNames, components: components, disabled: Boolean(props.disableNavigation), onChange: handleYearChange(calendarMonth.date), options: (0, getYearOptions_js_1.getYearOptions)(navStart, navEnd, formatters, dateLib, Boolean(props.reverseYears)), style: styles?.[UI_js_1.UI.Dropdown], value: dateLib.getYear(calendarMonth.date) })) : (react_1.default.createElement("span", { key: "year" }, formatYearDropdown(calendarMonth.date, dateLib)));
299
- const controls = dateLib.getMonthYearOrder() === "year-first"
300
- ? [yearControl, monthControl]
301
- : [monthControl, yearControl];
302
- return controls;
303
- })(),
304
- react_1.default.createElement("span", { role: "status", "aria-live": "polite", style: {
305
- border: 0,
306
- clip: "rect(0 0 0 0)",
307
- height: "1px",
308
- margin: "-1px",
309
- overflow: "hidden",
310
- padding: 0,
311
- position: "absolute",
312
- width: "1px",
313
- whiteSpace: "nowrap",
314
- wordWrap: "normal",
315
- } }, formatCaption(calendarMonth.date, dateLib.options, dateLib)))) : (react_1.default.createElement(components.CaptionLabel, { className: classNames[UI_js_1.UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption(calendarMonth.date, dateLib.options, dateLib)))),
316
- navLayout === "around" &&
317
- !props.hideNavigation &&
318
- displayIndex === numberOfMonths - 1 && (react_1.default.createElement(components.NextMonthButton, { type: "button", className: classNames[UI_js_1.UI.NextMonthButton], tabIndex: nextMonth ? undefined : -1, "aria-disabled": nextMonth ? undefined : true, "aria-label": labelNext(nextMonth), onClick: handleNextClick, "data-animated-button": props.animate ? "true" : undefined },
319
- react_1.default.createElement(components.Chevron, { disabled: nextMonth ? undefined : true, className: classNames[UI_js_1.UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" }))),
320
- displayIndex === numberOfMonths - 1 &&
321
- navLayout === "after" &&
322
- !props.hideNavigation && (react_1.default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Nav], style: styles?.[UI_js_1.UI.Nav], "aria-label": labelNav(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth: previousMonth, nextMonth: nextMonth })),
323
- react_1.default.createElement(components.MonthGrid, { role: "grid", "aria-multiselectable": mode === "multiple" || mode === "range", "aria-label": labelGrid(calendarMonth.date, dateLib.options, dateLib) ||
324
- undefined, className: classNames[UI_js_1.UI.MonthGrid], style: styles?.[UI_js_1.UI.MonthGrid] },
325
- !props.hideWeekdays && (react_1.default.createElement(components.Weekdays, { "data-animated-weekdays": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Weekdays], style: styles?.[UI_js_1.UI.Weekdays] },
326
- showWeekNumber && (react_1.default.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader(dateLib.options), className: classNames[UI_js_1.UI.WeekNumberHeader], style: styles?.[UI_js_1.UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader())),
327
- weekdays.map((weekday) => (react_1.default.createElement(components.Weekday, { "aria-label": labelWeekday(weekday, dateLib.options, dateLib), className: classNames[UI_js_1.UI.Weekday], key: String(weekday), style: styles?.[UI_js_1.UI.Weekday], scope: "col" }, formatWeekdayName(weekday, dateLib.options, dateLib)))))),
328
- react_1.default.createElement(components.Weeks, { "data-animated-weeks": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Weeks], style: styles?.[UI_js_1.UI.Weeks] }, calendarMonth.weeks.map((week) => {
329
- return (react_1.default.createElement(components.Week, { className: classNames[UI_js_1.UI.Week], key: week.weekNumber, style: styles?.[UI_js_1.UI.Week], week: week },
330
- showWeekNumber && (react_1.default.createElement(components.WeekNumber, { week: week, style: styles?.[UI_js_1.UI.WeekNumber], "aria-label": labelWeekNumber(week.weekNumber, {
331
- locale,
332
- }), className: classNames[UI_js_1.UI.WeekNumber], scope: "row", role: "rowheader" }, formatWeekNumber(week.weekNumber, dateLib))),
333
- week.days.map((day) => {
334
- const { date } = day;
335
- const modifiers = getModifiers(day);
336
- modifiers[UI_js_1.DayFlag.focused] =
337
- !modifiers.hidden &&
338
- Boolean(focused?.isEqualTo(day));
339
- modifiers[UI_js_1.SelectionState.selected] =
340
- isSelected?.(date) || modifiers.selected;
341
- if ((0, typeguards_js_1.isDateRange)(selectedValue)) {
342
- // add range modifiers
343
- const { from, to } = selectedValue;
344
- modifiers[UI_js_1.SelectionState.range_start] = Boolean(from && to && dateLib.isSameDay(date, from));
345
- modifiers[UI_js_1.SelectionState.range_end] = Boolean(from && to && dateLib.isSameDay(date, to));
346
- modifiers[UI_js_1.SelectionState.range_middle] =
347
- (0, rangeIncludesDate_js_1.rangeIncludesDate)(selectedValue, date, true, dateLib);
348
- }
349
- const style = (0, getStyleForModifiers_js_1.getStyleForModifiers)(modifiers, styles, props.modifiersStyles);
350
- const className = (0, getClassNamesForModifiers_js_1.getClassNamesForModifiers)(modifiers, classNames, props.modifiersClassNames);
351
- const ariaLabel = !isInteractive && !modifiers.hidden
352
- ? labelGridcell(date, modifiers, dateLib.options, dateLib)
353
- : undefined;
354
- return (react_1.default.createElement(components.Day, { key: `${day.isoDate}_${day.displayMonthId}`, day: day, modifiers: modifiers, className: className.join(" "), style: style, role: "gridcell", "aria-selected": modifiers.selected || undefined, "aria-label": ariaLabel, "data-day": day.isoDate, "data-month": day.outside ? day.dateMonthId : undefined, "data-selected": modifiers.selected || undefined, "data-disabled": modifiers.disabled || undefined, "data-hidden": modifiers.hidden || undefined, "data-outside": day.outside || undefined, "data-focused": modifiers.focused || undefined, "data-today": modifiers.today || undefined }, !modifiers.hidden && isInteractive ? (react_1.default.createElement(components.DayButton, { className: classNames[UI_js_1.UI.DayButton], style: styles?.[UI_js_1.UI.DayButton], type: "button", day: day, modifiers: modifiers, disabled: (!modifiers.focused &&
355
- modifiers.disabled) ||
356
- undefined, "aria-disabled": (modifiers.focused &&
357
- modifiers.disabled) ||
358
- undefined, tabIndex: isFocusTarget(day) ? 0 : -1, "aria-label": labelDayButton(date, modifiers, dateLib.options, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay(date, dateLib.options, dateLib))) : (!modifiers.hidden &&
359
- formatDay(day.date, dateLib.options, dateLib))));
360
- })));
361
- })))));
362
- })),
286
+ react_1.default.createElement(components.Root, { rootRef: props.animate ? rootElRef : undefined, className: className, style: style, dir: props.dir, id: props.id, lang: props.lang ?? locale.code, nonce: props.nonce, title: props.title, role: props.role, "aria-label": props["aria-label"], "aria-labelledby": props["aria-labelledby"], ...dataAttributes },
287
+ react_1.default.createElement(components.Months, { className: classNames[UI_js_1.UI.Months], style: styles?.[UI_js_1.UI.Months] }, months.map((calendarMonth, displayIndex) => {
288
+ return (react_1.default.createElement(components.Month, { "data-animated-month": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Month], style: styles?.[UI_js_1.UI.Month],
289
+ // biome-ignore lint/suspicious/noArrayIndexKey: breaks animation
290
+ key: displayIndex, displayIndex: displayIndex, calendarMonth: calendarMonth },
291
+ navLayout === "around" &&
292
+ !props.hideNavigation &&
293
+ displayIndex === 0 && (react_1.default.createElement(components.PreviousMonthButton, { type: "button", className: classNames[UI_js_1.UI.PreviousMonthButton], tabIndex: previousMonth ? undefined : -1, "aria-disabled": previousMonth ? undefined : true, "aria-label": labelPrevious(previousMonth), onClick: handlePreviousClick, "data-animated-button": props.animate ? "true" : undefined },
294
+ react_1.default.createElement(components.Chevron, { disabled: previousMonth ? undefined : true, className: classNames[UI_js_1.UI.Chevron], orientation: props.dir === "rtl" ? "right" : "left" }))),
295
+ react_1.default.createElement(components.MonthCaption, { "data-animated-caption": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.MonthCaption], style: styles?.[UI_js_1.UI.MonthCaption], calendarMonth: calendarMonth, displayIndex: displayIndex }, captionLayout?.startsWith("dropdown") ? (react_1.default.createElement(components.DropdownNav, { className: classNames[UI_js_1.UI.Dropdowns], style: styles?.[UI_js_1.UI.Dropdowns] },
296
+ (() => {
297
+ const monthControl = captionLayout === "dropdown" ||
298
+ captionLayout === "dropdown-months" ? (react_1.default.createElement(components.MonthsDropdown, { key: "month", className: classNames[UI_js_1.UI.MonthsDropdown], "aria-label": labelMonthDropdown(), disabled: Boolean(props.disableNavigation), onChange: handleMonthChange(calendarMonth.date), options: (0, getMonthOptions_js_1.getMonthOptions)(calendarMonth.date, navStart, navEnd, formatters, dateLib), style: styles?.[UI_js_1.UI.Dropdown], value: dateLib.getMonth(calendarMonth.date) })) : (react_1.default.createElement("span", { key: "month" }, formatMonthDropdown(calendarMonth.date, dateLib)));
299
+ const yearControl = captionLayout === "dropdown" ||
300
+ captionLayout === "dropdown-years" ? (react_1.default.createElement(components.YearsDropdown, { key: "year", className: classNames[UI_js_1.UI.YearsDropdown], "aria-label": labelYearDropdown(dateLib.options), disabled: Boolean(props.disableNavigation), onChange: handleYearChange(calendarMonth.date), options: (0, getYearOptions_js_1.getYearOptions)(navStart, navEnd, formatters, dateLib, Boolean(props.reverseYears)), style: styles?.[UI_js_1.UI.Dropdown], value: dateLib.getYear(calendarMonth.date) })) : (react_1.default.createElement("span", { key: "year" }, formatYearDropdown(calendarMonth.date, dateLib)));
301
+ const controls = dateLib.getMonthYearOrder() === "year-first"
302
+ ? [yearControl, monthControl]
303
+ : [monthControl, yearControl];
304
+ return controls;
305
+ })(),
306
+ react_1.default.createElement("span", { role: "status", "aria-live": "polite", style: {
307
+ border: 0,
308
+ clip: "rect(0 0 0 0)",
309
+ height: "1px",
310
+ margin: "-1px",
311
+ overflow: "hidden",
312
+ padding: 0,
313
+ position: "absolute",
314
+ width: "1px",
315
+ whiteSpace: "nowrap",
316
+ wordWrap: "normal",
317
+ } }, formatCaption(calendarMonth.date, dateLib.options, dateLib)))) : (react_1.default.createElement(components.CaptionLabel, { className: classNames[UI_js_1.UI.CaptionLabel], role: "status", "aria-live": "polite" }, formatCaption(calendarMonth.date, dateLib.options, dateLib)))),
318
+ navLayout === "around" &&
319
+ !props.hideNavigation &&
320
+ displayIndex === numberOfMonths - 1 && (react_1.default.createElement(components.NextMonthButton, { type: "button", className: classNames[UI_js_1.UI.NextMonthButton], tabIndex: nextMonth ? undefined : -1, "aria-disabled": nextMonth ? undefined : true, "aria-label": labelNext(nextMonth), onClick: handleNextClick, "data-animated-button": props.animate ? "true" : undefined },
321
+ react_1.default.createElement(components.Chevron, { disabled: nextMonth ? undefined : true, className: classNames[UI_js_1.UI.Chevron], orientation: props.dir === "rtl" ? "left" : "right" }))),
322
+ displayIndex === numberOfMonths - 1 &&
323
+ navLayout === "after" &&
324
+ !props.hideNavigation && (react_1.default.createElement(components.Nav, { "data-animated-nav": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Nav], style: styles?.[UI_js_1.UI.Nav], "aria-label": labelNav(), onPreviousClick: handlePreviousClick, onNextClick: handleNextClick, previousMonth: previousMonth, nextMonth: nextMonth })),
325
+ react_1.default.createElement(components.MonthGrid, { role: "grid", "aria-multiselectable": mode === "multiple" || mode === "range", "aria-label": labelGrid(calendarMonth.date, dateLib.options, dateLib) ||
326
+ undefined, className: classNames[UI_js_1.UI.MonthGrid], style: styles?.[UI_js_1.UI.MonthGrid] },
327
+ !props.hideWeekdays && (react_1.default.createElement(components.Weekdays, { "data-animated-weekdays": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Weekdays], style: styles?.[UI_js_1.UI.Weekdays] },
328
+ showWeekNumber && (react_1.default.createElement(components.WeekNumberHeader, { "aria-label": labelWeekNumberHeader(dateLib.options), className: classNames[UI_js_1.UI.WeekNumberHeader], style: styles?.[UI_js_1.UI.WeekNumberHeader], scope: "col" }, formatWeekNumberHeader())),
329
+ weekdays.map((weekday) => (react_1.default.createElement(components.Weekday, { "aria-label": labelWeekday(weekday, dateLib.options, dateLib), className: classNames[UI_js_1.UI.Weekday], key: String(weekday), style: styles?.[UI_js_1.UI.Weekday], scope: "col" }, formatWeekdayName(weekday, dateLib.options, dateLib)))))),
330
+ react_1.default.createElement(components.Weeks, { "data-animated-weeks": props.animate ? "true" : undefined, className: classNames[UI_js_1.UI.Weeks], style: styles?.[UI_js_1.UI.Weeks] }, calendarMonth.weeks.map((week) => {
331
+ return (react_1.default.createElement(components.Week, { className: classNames[UI_js_1.UI.Week], key: week.weekNumber, style: styles?.[UI_js_1.UI.Week], week: week },
332
+ showWeekNumber && (react_1.default.createElement(components.WeekNumber, { week: week, style: styles?.[UI_js_1.UI.WeekNumber], "aria-label": labelWeekNumber(week.weekNumber, {
333
+ locale,
334
+ }), className: classNames[UI_js_1.UI.WeekNumber], scope: "row", role: "rowheader" }, formatWeekNumber(week.weekNumber, dateLib))),
335
+ week.days.map((day) => {
336
+ const { date } = day;
337
+ const modifiers = getModifiers(day);
338
+ modifiers[UI_js_1.DayFlag.focused] =
339
+ !modifiers.hidden &&
340
+ Boolean(focused?.isEqualTo(day));
341
+ modifiers[UI_js_1.SelectionState.selected] =
342
+ isSelected?.(date) || modifiers.selected;
343
+ if ((0, typeguards_js_1.isDateRange)(selectedValue)) {
344
+ // add range modifiers
345
+ const { from, to } = selectedValue;
346
+ modifiers[UI_js_1.SelectionState.range_start] = Boolean(from && to && dateLib.isSameDay(date, from));
347
+ modifiers[UI_js_1.SelectionState.range_end] = Boolean(from && to && dateLib.isSameDay(date, to));
348
+ modifiers[UI_js_1.SelectionState.range_middle] =
349
+ (0, rangeIncludesDate_js_1.rangeIncludesDate)(selectedValue, date, true, dateLib);
350
+ }
351
+ const style = (0, getStyleForModifiers_js_1.getStyleForModifiers)(modifiers, styles, props.modifiersStyles);
352
+ const className = (0, getClassNamesForModifiers_js_1.getClassNamesForModifiers)(modifiers, classNames, props.modifiersClassNames);
353
+ const ariaLabel = !isInteractive && !modifiers.hidden
354
+ ? labelGridcell(date, modifiers, dateLib.options, dateLib)
355
+ : undefined;
356
+ return (react_1.default.createElement(components.Day, { key: `${day.isoDate}_${day.displayMonthId}`, day: day, modifiers: modifiers, className: className.join(" "), style: style, role: "gridcell", "aria-selected": modifiers.selected || undefined, "aria-label": ariaLabel, "data-day": day.isoDate, "data-month": day.outside ? day.dateMonthId : undefined, "data-selected": modifiers.selected || undefined, "data-disabled": modifiers.disabled || undefined, "data-hidden": modifiers.hidden || undefined, "data-outside": day.outside || undefined, "data-focused": modifiers.focused || undefined, "data-today": modifiers.today || undefined }, !modifiers.hidden && isInteractive ? (react_1.default.createElement(components.DayButton, { className: classNames[UI_js_1.UI.DayButton], style: styles?.[UI_js_1.UI.DayButton], type: "button", day: day, modifiers: modifiers, disabled: (!modifiers.focused &&
357
+ modifiers.disabled) ||
358
+ undefined, "aria-disabled": (modifiers.focused &&
359
+ modifiers.disabled) ||
360
+ undefined, tabIndex: isFocusTarget(day) ? 0 : -1, "aria-label": labelDayButton(date, modifiers, dateLib.options, dateLib), onClick: handleDayClick(day, modifiers), onBlur: handleDayBlur(day, modifiers), onFocus: handleDayFocus(day, modifiers), onKeyDown: handleDayKeyDown(day, modifiers), onMouseEnter: handleDayMouseEnter(day, modifiers), onMouseLeave: handleDayMouseLeave(day, modifiers) }, formatDay(date, dateLib.options, dateLib))) : (!modifiers.hidden &&
361
+ formatDay(day.date, dateLib.options, dateLib))));
362
+ })));
363
+ })))));
364
+ })),
363
365
  props.footer && (react_1.default.createElement(components.Footer, { className: classNames[UI_js_1.UI.Footer], style: styles?.[UI_js_1.UI.Footer], role: "status", "aria-live": "polite" }, props.footer)))));
364
366
  }
package/dist/cjs/UI.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { CSSProperties } from "react";
2
1
  /**
3
2
  * Enum representing the UI elements composing DayPicker. These elements are
4
3
  * mapped to {@link CustomComponents}, {@link ClassNames}, and {@link Styles}.
@@ -115,232 +114,3 @@ export declare enum Animation {
115
114
  /** The exiting caption when it disappears before the entering month. */
116
115
  caption_before_exit = "caption_before_exit"
117
116
  }
118
- /**
119
- * Deprecated UI elements and flags from previous versions of DayPicker.
120
- *
121
- * These elements are kept for backward compatibility and to assist in
122
- * transitioning to the new {@link UI} elements.
123
- *
124
- * @deprecated
125
- * @since 9.0.1
126
- * @template T - The type of the deprecated UI element (e.g., CSS class or
127
- * style).
128
- * @see https://daypicker.dev/upgrading
129
- * @see https://daypicker.dev/docs/styling
130
- */
131
- export type DeprecatedUI<T extends CSSProperties | string> = {
132
- /**
133
- * This element was applied to the style of any button in DayPicker and it is
134
- * replaced by {@link UI | UI.PreviousMonthButton} and {@link UI | UI.NextMonthButton}.
135
- *
136
- * @deprecated
137
- */
138
- button: T;
139
- /**
140
- * This element was resetting the style of any button in DayPicker and it is
141
- * replaced by {@link UI | UI.PreviousMonthButton} and {@link UI | UI.NextMonthButton}.
142
- *
143
- * @deprecated
144
- */
145
- button_reset: T;
146
- /**
147
- * This element has been renamed to {@link UI | UI.MonthCaption}.
148
- *
149
- * @deprecated
150
- */
151
- caption: T;
152
- /**
153
- * This element has been removed. Captions are styled via
154
- * {@link UI | UI.MonthCaption}.
155
- *
156
- * @deprecated
157
- */
158
- caption_between: T;
159
- /**
160
- * This element has been renamed to {@link UI | UI.Dropdowns}.
161
- *
162
- * @deprecated
163
- */
164
- caption_dropdowns: T;
165
- /**
166
- * This element has been removed. Captions are styled via
167
- * {@link UI | UI.MonthCaption}.
168
- *
169
- * @deprecated
170
- */
171
- caption_end: T;
172
- /**
173
- * This element has been removed.
174
- *
175
- * @deprecated
176
- */
177
- caption_start: T;
178
- /**
179
- * This element has been renamed to {@link UI | UI.Day}.
180
- *
181
- * @deprecated
182
- */
183
- cell: T;
184
- /**
185
- * This element has been renamed to {@link DayFlag | DayFlag.disabled}.
186
- *
187
- * @deprecated
188
- */
189
- day_disabled: T;
190
- /**
191
- * This element has been renamed to {@link DayFlag | DayFlag.hidden}.
192
- *
193
- * @deprecated
194
- */
195
- day_hidden: T;
196
- /**
197
- * This element has been renamed to {@link DayFlag | DayFlag.outside}.
198
- *
199
- * @deprecated
200
- */
201
- day_outside: T;
202
- /**
203
- * This element has been renamed to {@link SelectionState | SelectionState.range_end}.
204
- *
205
- * @deprecated
206
- */
207
- day_range_end: T;
208
- /**
209
- * This element has been renamed to {@link SelectionState | SelectionState.range_middle}.
210
- *
211
- * @deprecated
212
- */
213
- day_range_middle: T;
214
- /**
215
- * This element has been renamed to {@link SelectionState | SelectionState.range_start}.
216
- *
217
- * @deprecated
218
- */
219
- day_range_start: T;
220
- /**
221
- * This element has been renamed to {@link SelectionState | SelectionState.selected}.
222
- *
223
- * @deprecated
224
- */
225
- day_selected: T;
226
- /**
227
- * This element has been renamed to {@link DayFlag | DayFlag.today}.
228
- *
229
- * @deprecated
230
- */
231
- day_today: T;
232
- /**
233
- * This element has been removed. The dropdown icon is now {@link UI | UI.Chevron}
234
- * inside a {@link UI | UI.CaptionLabel}.
235
- *
236
- * @deprecated
237
- */
238
- dropdown_icon: T;
239
- /**
240
- * This element has been renamed to {@link UI | UI.MonthsDropdown}.
241
- *
242
- * @deprecated
243
- */
244
- dropdown_month: T;
245
- /**
246
- * This element has been renamed to {@link UI | UI.YearsDropdown}.
247
- *
248
- * @deprecated
249
- */
250
- dropdown_year: T;
251
- /**
252
- * This element has been removed.
253
- *
254
- * @deprecated
255
- */
256
- head: T;
257
- /**
258
- * This element has been renamed to {@link UI | UI.Weekday}.
259
- *
260
- * @deprecated
261
- */
262
- head_cell: T;
263
- /**
264
- * This element has been renamed to {@link UI | UI.Weekdays}.
265
- *
266
- * @deprecated
267
- */
268
- head_row: T;
269
- /**
270
- * This flag has been removed. Use `data-multiple-months` in your CSS
271
- * selectors.
272
- *
273
- * @deprecated
274
- */
275
- multiple_months: T;
276
- /**
277
- * This element has been removed. To style the navigation buttons, use
278
- * {@link UI | UI.PreviousMonthButton} and {@link UI | UI.NextMonthButton}.
279
- *
280
- * @deprecated
281
- */
282
- nav_button: T;
283
- /**
284
- * This element has been renamed to {@link UI | UI.NextMonthButton}.
285
- *
286
- * @deprecated
287
- */
288
- nav_button_next: T;
289
- /**
290
- * This element has been renamed to {@link UI | UI.PreviousMonthButton}.
291
- *
292
- * @deprecated
293
- */
294
- nav_button_previous: T;
295
- /**
296
- * This element has been removed. The dropdown icon is now {@link UI | UI.Chevron}
297
- * inside a {@link UI | UI.NextMonthButton} or a {@link UI | UI.PreviousMonthButton}.
298
- *
299
- * @deprecated
300
- */
301
- nav_icon: T;
302
- /**
303
- * This element has been renamed to {@link UI | UI.Week}.
304
- *
305
- * @deprecated
306
- */
307
- row: T;
308
- /**
309
- * This element has been renamed to {@link UI | UI.MonthGrid}.
310
- *
311
- * @deprecated
312
- */
313
- table: T;
314
- /**
315
- * This element has been renamed to {@link UI | UI.Weeks}.
316
- *
317
- * @deprecated
318
- */
319
- tbody: T;
320
- /**
321
- * This element has been removed. The {@link UI | UI.Footer} is now a single element
322
- * below the months.
323
- *
324
- * @deprecated
325
- */
326
- tfoot: T;
327
- /**
328
- * This flag has been removed. There are no "visually hidden" elements in
329
- * DayPicker 9.
330
- *
331
- * @deprecated
332
- */
333
- vhidden: T;
334
- /**
335
- * This element has been renamed. Use {@link UI | UI.WeekNumber} instead.
336
- *
337
- * @deprecated
338
- */
339
- weeknumber: T;
340
- /**
341
- * This flag has been removed. Use `data-week-numbers` in your CSS.
342
- *
343
- * @deprecated
344
- */
345
- with_weeknumber: T;
346
- };
@@ -20,16 +20,6 @@ export interface DayPickerLocale extends DateFnsLocale {
20
20
  labels?: DayPickerLocaleLabels;
21
21
  }
22
22
  export type Locale = DayPickerLocale;
23
- /**
24
- * @ignore
25
- * @deprecated Use {@link DateLibOptions} instead.
26
- */
27
- export type FormatOptions = DateLibOptions;
28
- /**
29
- * @ignore
30
- * @deprecated Use {@link DateLibOptions} instead.
31
- */
32
- export type LabelOptions = DateLibOptions;
33
23
  /** Indicates the preferred ordering of month and year for localized labels. */
34
24
  export type MonthYearOrder = "month-first" | "year-first";
35
25
  /**
@@ -116,12 +106,6 @@ export declare class DateLib {
116
106
  */
117
107
  formatMonthYear(date: Date): string;
118
108
  private static readonly yearFirstLocales;
119
- /**
120
- * Reference to the built-in Date constructor.
121
- *
122
- * @deprecated Use `newDate()` or `today()`.
123
- */
124
- Date: typeof Date;
125
109
  /**
126
110
  * Creates a new `Date` object representing today's date.
127
111
  *
@@ -400,8 +384,3 @@ export { enUS as defaultLocale } from "../locale/en-US.js";
400
384
  * @since 9.2.0
401
385
  */
402
386
  export declare const defaultDateLib: DateLib;
403
- /**
404
- * @ignore
405
- * @deprecated Use `defaultDateLib`.
406
- */
407
- export declare const dateLib: DateLib;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dateLib = exports.defaultDateLib = exports.defaultLocale = exports.DateLib = void 0;
3
+ exports.defaultDateLib = exports.defaultLocale = exports.DateLib = void 0;
4
4
  const tz_1 = require("@date-fns/tz");
5
5
  const date_fns_1 = require("date-fns");
6
6
  const endOfBroadcastWeek_js_1 = require("../helpers/endOfBroadcastWeek.js");
@@ -23,12 +23,6 @@ class DateLib {
23
23
  * @param overrides Custom overrides for the date library functions.
24
24
  */
25
25
  constructor(options, overrides) {
26
- /**
27
- * Reference to the built-in Date constructor.
28
- *
29
- * @deprecated Use `newDate()` or `today()`.
30
- */
31
- this.Date = Date;
32
26
  /**
33
27
  * Creates a new `Date` object representing today's date.
34
28
  *
@@ -42,7 +36,8 @@ class DateLib {
42
36
  if (this.options.timeZone) {
43
37
  return tz_1.TZDate.tz(this.options.timeZone);
44
38
  }
45
- return new this.Date();
39
+ const DateCtor = this.options.Date ?? Date;
40
+ return new DateCtor();
46
41
  };
47
42
  /**
48
43
  * Creates a new `Date` object with the specified year, month, and day.
@@ -574,8 +569,3 @@ Object.defineProperty(exports, "defaultLocale", { enumerable: true, get: functio
574
569
  * @since 9.2.0
575
570
  */
576
571
  exports.defaultDateLib = new DateLib();
577
- /**
578
- * @ignore
579
- * @deprecated Use `defaultDateLib`.
580
- */
581
- exports.dateLib = exports.defaultDateLib;
@@ -1,5 +1,4 @@
1
1
  import React, { type SelectHTMLAttributes } from "react";
2
- import type { ClassNames, CustomComponents } from "../types/index.js";
3
2
  /** An option to use in the dropdown. Maps to the `<option>` HTML element. */
4
3
  export type DropdownOption = {
5
4
  /** The value of the option. */
@@ -16,16 +15,6 @@ export type DropdownOption = {
16
15
  * @see https://daypicker.dev/guides/custom-components
17
16
  */
18
17
  export declare function Dropdown(props: {
19
- /**
20
- * @deprecated Use {@link useDayPicker} hook to get the list of internal
21
- * components.
22
- */
23
- components: CustomComponents;
24
- /**
25
- * @deprecated Use {@link useDayPicker} hook to get the list of internal
26
- * class names.
27
- */
28
- classNames: ClassNames;
29
18
  /** The options to display in the dropdown. */
30
19
  options?: DropdownOption[] | undefined;
31
20
  } & Omit<SelectHTMLAttributes<HTMLSelectElement>, "children">): React.JSX.Element;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Dropdown = Dropdown;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const UI_js_1 = require("../UI.js");
9
+ const useDayPicker_js_1 = require("../useDayPicker.js");
9
10
  /**
10
11
  * Render a dropdown component for navigation in the calendar.
11
12
  *
@@ -13,7 +14,8 @@ const UI_js_1 = require("../UI.js");
13
14
  * @see https://daypicker.dev/guides/custom-components
14
15
  */
15
16
  function Dropdown(props) {
16
- const { options, className, components, classNames, ...selectProps } = props;
17
+ const { options, className, ...selectProps } = props;
18
+ const { classNames, components } = (0, useDayPicker_js_1.useDayPicker)();
17
19
  const cssClassSelect = [classNames[UI_js_1.UI.Dropdown], className].join(" ");
18
20
  const selectedOption = options?.find(({ value }) => value === selectProps.value);
19
21
  return (react_1.default.createElement("span", { "data-disabled": selectProps.disabled, className: classNames[UI_js_1.UI.DropdownRoot] },
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.NextMonthButton = NextMonthButton;
7
7
  const react_1 = __importDefault(require("react"));
8
- const useDayPicker_js_1 = require("../useDayPicker.js");
9
8
  /**
10
9
  * Render the button to navigate to the next month in the calendar.
11
10
  *
@@ -13,6 +12,5 @@ const useDayPicker_js_1 = require("../useDayPicker.js");
13
12
  * @see https://daypicker.dev/guides/custom-components
14
13
  */
15
14
  function NextMonthButton(props) {
16
- const { components } = (0, useDayPicker_js_1.useDayPicker)();
17
- return react_1.default.createElement(components.Button, { ...props });
15
+ return react_1.default.createElement("button", { ...props });
18
16
  }
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PreviousMonthButton = PreviousMonthButton;
7
7
  const react_1 = __importDefault(require("react"));
8
- const useDayPicker_js_1 = require("../useDayPicker.js");
9
8
  /**
10
9
  * Render the button to navigate to the previous month in the calendar.
11
10
  *
@@ -13,6 +12,5 @@ const useDayPicker_js_1 = require("../useDayPicker.js");
13
12
  * @see https://daypicker.dev/guides/custom-components
14
13
  */
15
14
  function PreviousMonthButton(props) {
16
- const { components } = (0, useDayPicker_js_1.useDayPicker)();
17
- return react_1.default.createElement(components.Button, { ...props });
15
+ return react_1.default.createElement("button", { ...props });
18
16
  }
@@ -1,4 +1,3 @@
1
- export * from "./Button.js";
2
1
  export * from "./CaptionLabel.js";
3
2
  export * from "./Chevron.js";
4
3
  export * from "./Day.js";
@@ -14,7 +14,6 @@ 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
- __exportStar(require("./Button.js"), exports);
18
17
  __exportStar(require("./CaptionLabel.js"), exports);
19
18
  __exportStar(require("./Chevron.js"), exports);
20
19
  __exportStar(require("./Day.js"), exports);
@@ -12,9 +12,3 @@ import { DateLib, type DateLibOptions } from "../classes/DateLib.js";
12
12
  * @see https://daypicker.dev/docs/translation#custom-formatters
13
13
  */
14
14
  export declare function formatCaption(month: Date, options?: DateLibOptions, dateLib?: DateLib): string;
15
- /**
16
- * @private
17
- * @deprecated Use {@link formatCaption} instead.
18
- * @group Formatters
19
- */
20
- export declare const formatMonthCaption: typeof formatCaption;