Releases: Hacker0x01/react-datepicker
🎄 React Datepicker v9.0.0 - Holiday Release 🎁
🌟 Major New Features
🌍 Timezone Support (Finally!)
The most requested feature is here! Add the timeZone prop to display and handle dates in any timezone. Works with date-fns-tz as an optional peer dependency. <DatePicker timeZone="America/New_York" />
⏰ Time Selection with Date Ranges
showTimeSelect and showTimeInput now work beautifully with selectsRange! Select time for both start and end dates independently. 🎉
🎁 New Props Under the Tree
- 🎯
popperTargetRef- Custom popper positioning for advanced layouts - 📍
monthHeaderPosition- Control month header placement (top, middle, bottom) - 🗓️
renderCustomDayName- Customize weekday header rendering - 📝
formatMultipleDates- Custom formatting for multi-select dates - ♿
aria-label- Better accessibility support
🔧 Bug Fixes & Improvements
- 🎯 Navigate calendar view when typing partial dates
- 📅 Calendar view updates when selected/startDate props change programmatically
- 🕐 Fixed infinite height growth in time picker
- 🗓️ Fixed month view jump when selecting from second calendar in range mode
- ✍️ Allow typing dates before 1800 when minDate permits
- 🌐 Parse holiday date strings as local time (no more timezone shifts!)
- 📐 Use em units internally - easily inherit font size from parent!
- 🎨 Fixed in-selecting-range highlight for days outside current month
- 🔗 Hiding popper arrow now properly removes offset
- 🔄 Fixed preSelection updates for selectsRange input changes
- 📊 Improved source maps (no more Webpack warnings!)
- 🏷️ Better TypeScript discriminated union type inference
🛠️ Under the Hood
- 🚀 Node 24.x LTS - Upgraded CI to latest LTS
- 📦 Updated dependencies across the board
- 🧪 Significantly improved test coverage
- 📚 New timezone documentation
💫 Happy Holidays!
Thank you to all contributors who made this release possible! May your dates always be in the right timezone! 🎅🎄
What's Changed
- feat: add aria-label prop support for DatePicker by @martijnrusschen in #6057
- fix: reset monthSelectedIn when changeMonth is called in custom header by @martijnrusschen in #6058
- feat: add formatMultipleDates prop to DatePicker by @kykim00 in #6067
- fix: Hiding popper arrow should remove offset by @tejas-agravat-dev in #6071
- fix: prevent in-selecting-range highlight for days outside current month by @martijnrusschen in #6073
- fix: showTimeSelect now works with selectsRange (#4332) by @martijnrusschen in #6074
- fix: add explicit return type to TabLoop render method (#6075) by @martijnrusschen in #6077
- fix: improve DatePickerProps discriminated union type inference by @martijnrusschen in #6078
- fix: update preSelection when input changes for selectsRange by @martijnrusschen in #6101
- feat: Add monthHeaderPosition prop for flexible calendar header placement by @gnato in #6092
- feat: add popperTargetRef prop for custom popper positioning by @martijnrusschen in #6102
- fix: prevent infinite height growth in time picker by @martijnrusschen in #6104
- fix: prevent month view jump when selecting from second calendar in range mode by @martijnrusschen in #6103
- Fix the broken doc-site example - Custom input with popper positioning by @balajis-qb in #6110
- fix: allow manually typing dates before 1800 when minDate permits by @martijnrusschen in #6107
- fix: parse holiday date strings as local time to prevent timezone shift by @martijnrusschen in #6106
- fix: Inline source content in source maps to prevent Webpack warnings by @martijnrusschen in #6112
- fix: Update calendar view when selected/startDate props change programmatically by @martijnrusschen in #6111
- fix: Navigate calendar view when typing partial dates (#5459) by @martijnrusschen in #6113
- fix: support time selection with selectsRange for showTimeInput by @martijnrusschen in #6079
- fix: use em units for internal sizing to allow font-size inheritance by @martijnrusschen in #6076
- Timezone support by @martijnrusschen in #6068
New Contributors
Full Changelog: v8.10.0...v9.0.0
8.10.0
What's Changed
- Enhance the readability of doc-sites examples by @balajis-qb in #6040
- Fix export support for webpack <5.94 by @robtayl0r in #6033
- Add tests for month and year logic and improve coverage by @martijnrusschen in #6025
- feat: add keyboard accessibility for timepicker by @asajjad2 in #6039
- Remove flushSync usage in ShadowRoot component by @martijnrusschen in #6053
- Fix/5939 : The calendar doesn't display the startDate as first month by @tejas-fullstack in #5948
- Fix keyboard focus loss during same-month navigation in inline mode by @martijnrusschen in #6054
- Add timezone handling documentation by @martijnrusschen in #6055
- Support standard HTML aria attribute names by @martijnrusschen in #6056
New Contributors
- @robtayl0r made their first contribution in #6033
- @asajjad2 made their first contribution in #6039
- @tejas-fullstack made their first contribution in #5948
Full Changelog: v8.9.0...v8.10.0
8.9.0
What's Changed
- 🎨♿ Fix keyboard-selected + hovered date text color for accessibility by @balajis-qb in #5955
- QuarterYearPicker: align selected styling with other pickers and fix multi-select highlighting by @balajis-qb in #5972
- Improve Documentation: Add Comprehensive Import Guidance by @codomposer in #5980
- add unit test to missing components by @codomposer in #5997
- Improve test coverage by @martijnrusschen in #5974
- fix: Add inline mode support to
CalendarComponentcomponent with correct accessibility attrs by @ilchenkoArtem in #6008 - Add coverage tests for calendar interactions by @martijnrusschen in #6009
New Contributors
- @codomposer made their first contribution in #5980
Full Changelog: v8.8.0...v8.9.0
8.8.0
What's Changed
Major overhaul to the Docs site with new Typscript examples
- ✨ docs-site(ts): Migrate examples to TypeScript, add live transpilation to JavaScript + Copy code feature by @balajis-qb in #5865
- docs: add typescript examples by @SergeyKazarinov in #5605
- Fix loading indicator flicker when switching TypeScript/JavaScript tabs in docs-site by @balajis-qb in #5894
- (docs-site) 🐛 Fix the cursor position auto-reset while typing in progress by @balajis-qb in #5922
- 🐛 Configure esbuild-wasm initialize to use installed package version by @balajis-qb in #5893
Other changes
- fix: Center align day names in DatePicker for improved layout by @ilchenkoArtem in #5836
- ✨ Add
selectionMetaparam to the onChangeRaw event call - to give additional details about the selected date by @balajis-qb in #5858 - ✨ feat(datepicker): add full disabled state support across all picker modes by @balajis-qb in #5890
- chore: fix typos in test by @noritaka1166 in #5864
New Contributors
- @noritaka1166 made their first contribution in #5864
Full Changelog: v8.7.0...v8.8.0
8.7.0
What's Changed
- Add jest-axe Accessibility Testing and Fix ARIA Structure Issues by @martijnrusschen in #5808
- ♿ Add scoped .react-datepicker__sr-only utility class for accessibility by @balajis-qb in #5813
Full Changelog: v8.6.0...v8.7.0
8.6.0
What's Changed
- Fix React 19 compatibility issues with @floating-ui/react by @martijnrusschen in #5787
- Add dropdown keyboard accessibility by @eelikivi in #5728
- Enhance DatePicker behavior for date range selection and refocus logic by @balajis-qb in #5793
- fix: Improve behaviour of highlight dates with swapRange by @ilchenkoArtem in #5800
New Contributors
- @eelikivi made their first contribution in #5728
- @ilchenkoArtem made their first contribution in #5800
Full Changelog: v8.5.0...v8.6.0
8.5.0
What's Changed
- ✏️ Renamed the
startDatevariable in the example code to theselectedDateto improve clarity and better reflect it's purpose by @balajis-qb in #5501 - fix: correct usage of customHeaderCount to keep arrows on any monthsShown prop by @johannrp27 in #5618
- fix(calendar): Change type on YearButtonLabel to be the type ReactNode. by @KeeganW in #5659
- 🐛 Enable --keyboard-selected class to the YearPicker irrespective of the availability of selected prop by @balajis-qb in #5670
- 🐛 Reset inputValue back to null on blur of input (even when the calendar popup is not open) by @balajis-qb in #5703
- ✨ Add a support for
visibleYearsRangein therenderCustomHeaderof the YearPicker by @balajis-qb in #5687 - fix preview: custom header with two months displayed by @navedqb in #5686
- feat: expose outsideClickIgnoreClass by @meriouma in #5645
- ♿️ Improve calendar header accessibility by adding screen reader text for week numbers by @balajis-qb in #5731
- Include src files in package to resolve source map warnings by @John-Youngblood in #5710
- Create security.yml by @martijnrusschen in #5764
- feat: ✨ Add customizable range separator for date range selection in DatePicker by @balajis-qb in #5737
- feat: adding named exports for react datepicker by @skitscha in #5749
- ♻️ Refactor the input value get logic by @balajis-qb in #5743
- Week classname support by @marcelltoth in #5745
- 🐛 Refactor DatePicker component to handle null startDate date range selection properly by @balajis-qb in #5782
New Contributors
- @johannrp27 made their first contribution in #5618
- @KeeganW made their first contribution in #5659
- @John-Youngblood made their first contribution in #5710
- @skitscha made their first contribution in #5749
- @marcelltoth made their first contribution in #5745
Full Changelog: v8.4.0...v8.5.0
8.4.0
What's Changed
- Fix readOnly prop for a clearButton and inline calendare by @SergeyKazarinov in #5564
- Fix #5573 🐛 Fix the Selected Year Picker style when no date is selected by @balajis-qb in #5584
- Parse date range with dashes by @alexz-sg in #5578
- Include SCSS files in exports by @saltire in #5560
- 🐛 Add missing datepicker close call onPopperKeyDown event - to handle ESC keydown event outside the day component by @balajis-qb in #5621
- 🐛 Fix EndDatePicker selection range progress by @balajis-qb in #5619
- Add Claude Code GitHub Workflow by @martijnrusschen in #5640
- Move away from @import by @martijnrusschen in #5426
- 🐛 Apply --keyboard-selected to only if it's not already selected by @balajis-qb in #5651
New Contributors
Full Changelog: v8.3.0...v8.4.0
8.3.0
What's Changed
- 🐛🎨 Apply the
--selectedclass for the YearPicker when theselectsMultipleis enabled by @balajis-qb in #5524 - Fix #5502: 🐛 Fix '--in-selecting-range' class apply condition for End Date Picker by @balajis-qb in #5503
- 🎨🔨 Re-adjust the height of TimePicker on Calendar resize due to number of days by @balajis-qb in #5539
Full Changelog: v8.2.1...v8.3.0
8.2.1
What's Changed
- Remove console.log from deferBlur by @ryangreenberg in #5482
New Contributors
- @ryangreenberg made their first contribution in #5482
Full Changelog: v8.2.0...v8.2.1