timepicker-ui
4.5.0GitHub
timepicker-ui
Project / React Changelog

timepicker-ui-react Changelog

Notable changes to timepicker-ui-react, the React wrapper for timepicker-ui, newest first. The package follows Semantic Versioning.

Version 1.5.0 - 2026-10-14

Added

  • onShow, onSelectSecond, onSwitchView, onWheelScrollStart and onWheelScrollEnd props - They also work in options.callbacks.
  • onSelectPeriod and onSwitchFace props - For the core's new select:period and switch:face events.
  • SelectSecondEventData type - Re-exported. It is the payload of onSelectSecond.
  • Callback prop descriptions - Callback props show the core's JSDoc descriptions in your editor.
  • Clearer option names (from core) - Such as ui.initialView for ui.mobile. The old names still work until 5.0.
  • Optional seconds (from core) - Turn them on with clock.showSeconds: true.
  • Keyboard control of the clock face (from core)

Changed

  • Updated timepicker-ui from 4.4.0 to 4.5.0 - See the timepicker-ui 4.5.0 changelog.
  • Callbacks during create - Callback props now also get events fired while the picker is created, such as an inline picker's open or an error during init.
  • Wrapper callbacks stay in the wrapper - The core instance no longer holds them, so TimepickerUI.getById(id).options.callbacks won't list them.
  • Server markup - The <input> is now wrapped in <div class="tp-ui"> on the server too, so markup snapshots change. A <Timepicker> inside a <p> now gets React's nesting warning.
  • options changes on an open picker (from core) - The picker re-renders and resets a selection that was not confirmed.
  • behavior.returnFocus (from core) - Formerly focusInputAfterClose. It still defaults to false. We recommend true, which becomes the default in 5.0.

Deprecated

  • OptionTypes and HideEventData (from core) - Use TimepickerOptions instead of OptionTypes. HideEventData was never emitted. Both will be removed in 5.0.

Fixed

  • options.callbacks called twice - The core and the wrapper both called them. They are now called once.
  • Old callback props kept firing - After a callback prop changed, the handler from the first render no longer fires next to the new one.
  • Equal options objects - A new but equal options object, such as inline options={{...}}, no longer calls update(), so an open picker keeps its selection.
  • Documented re-exports - The package now exports TimepickerUI, PluginRegistry, EventEmitter and the core types. Before, only Timepicker and TimepickerProps were exported.
  • Conditional unmount - Unmounting a <Timepicker> while its parent stays rendered, such as {show && <Timepicker />}, no longer throws NotFoundError and breaks the React tree.
  • Range values in value or defaultValue - With range.enabled, a range value such as "10:00 AM - 12:00 PM" no longer fires onError.
  • Date in clock.currentTime.time - An equal Date no longer calls update() on every render.

Version 1.4.0 - 2026-06-10

Added

  • blueprint and blueprint-dark themes - Set options.ui.theme and import timepicker-ui/theme-blueprint.css or timepicker-ui/theme-blueprint-dark.css. There are now 12 themes.
  • 16 accessibility labels - New options.labels entries for screen-reader and ARIA text, such as hourLabel, announceHour and invalidTimeFormat.
  • Home, End, PageUp and PageDown (from core) - On the clock spinbuttons and the wheel columns.

Changed

  • Updated timepicker-ui from 4.3.0 to 4.4.0 - See the timepicker-ui 4.4.0 changelog.
  • Screen-reader text (from core) - ARIA text reads from the labels group, clock spinbuttons expose aria-valuetext, and the focus trap skips aria-disabled / aria-hidden elements.

Fixed

  • High-contrast focus halo rendering (from core)
  • Firefox spinner buttons (from core) - The native spinner buttons no longer show on the clock inputs.
  • Stuck page scroll (from core) - The scroll lock is now counted per picker, so the page no longer stays unscrollable after several pickers open and close.
  • theme-crane-straight.css (from core) - The file is now in the core package exports map.

Version 1.3.0 - 2026-03-29

Added

  • TemplateProvider and ClearHandler types - Re-exported, for the plugin templateProvider and clearHandler hooks.
  • Plugin templateProvider and clearHandler hooks (from core) - Plugins can register their own modal templates and their own Clear button logic.
  • PluginRegistry.getTemplateProvider() and getClearHandler() (from core) - Available on the re-exported PluginRegistry.

Changed

  • Updated timepicker-ui from 4.2.1 to 4.3.0 - See the timepicker-ui 4.3.0 changelog.
  • Unused plugins left out of the bundle (from core) - The wheel, range and timezone plugins are only bundled when you import them.

Version 1.2.0 - 2026-03-24

Added

  • onClear prop - Called when the Clear button is clicked. Maps to callbacks.onClear and the clear event.
  • Clear and wheel types - Re-exported ClearEventData, ClearBehaviorOptions, WheelOptions, WheelScrollStartEventData and WheelScrollEndEventData.

Changed

Version 1.1.2 - 2026-03-08

Changed

Version 1.1.1 - 2026-02-14

Added

  • Range plugin types - Re-exported RangeOptions, RangeConfirmEventData, RangeSwitchEventData and RangeValidationEventData.

Changed

Version 1.1.0 - 2026-02-08

Added

  • onTimezoneChange prop - Callback for the timezone plugin.
  • onRangeConfirm, onRangeSwitch and onRangeValidation props - Callbacks for the range plugin.
  • TimezoneChangeEventData and TimepickerEventMap types - Re-exported from timepicker-ui.

Changed

Version 1.0.1 - 2026-01-24

Changed

Version 1.0.0 - 2025-11-23

Added

  • Timepicker component - First release. Renders a timepicker-ui input in React.
  • Controlled and uncontrolled - Pass value for a controlled picker or defaultValue for an uncontrolled one.
  • forwardRef - Works with React Hook Form and other form libraries.
  • Input props - Standard <input> props go straight to the input, with no inputProps wrapper.
  • Callback props - The core callbacks as props, such as onConfirm, onCancel, onUpdate and onError.
  • options prop - Takes the grouped core options: clock, ui, labels and behavior.
  • SSR-safe - Works with Next.js, Remix, Gatsby and other server-rendering frameworks.
  • ESM only - The package ships as a tree-shakeable ES module.
  • Re-exported core types - Types come straight from timepicker-ui, with no duplicated interfaces.
  • React 17 or newer - react and react-dom 17 or newer are peer dependencies.
Esc