Skip to content

Date & time

Date picker

A segmented field with a calendar attached. Every segment is a labelled spinbutton, so the whole value is editable from the keyboard — and there is no ambiguous “2/3/4” to parse, because the order comes from the locale.

Examples

Single date

`onValueChange` reports a CalendarDate or null. The footer actions are per instance: a filter bar wants Today, a record form usually does not.

Required, and typeable in the segments or pickable from the calendar.

Bound to the quarter; anything after 30 September is unreachable.

canonical value: 2026-09-18 · displayed as Sep 18, 2026

Dates you cannot book

`isDateUnavailable` keeps a day in the grid — focusable and announced — but refuses to select it. A quiet, honest refusal beats a date that silently disappears.

Weekends and 21–24 September are unavailable.

Local date and time

`DateTimePicker` edits a CalendarDateTime: a wall clock with no zone. Two people in different zones see the same 09:30, which is what a market session or a meeting time actually means.

Local wall clock, no zone attached.

The field gains a seconds segment, so the value is exact to the second.

canonical value: Sep 18, 2026, 09:30 AM

Zoned date and time

A ZonedDateTime carries its own identifier. The component never converts it, never guesses a zone and never drops the offset — “09:30 Berlin” stays 09:30 Berlin.

Europe/Berlin; DST is the zone's business, not the field's.

A different zone is a different value, on purpose.

serialised: 2026-09-18T09:30:00+02:00[Europe/Berlin] · absolute: 2026-09-18T07:30:00.000Z

A field with no calendar

`DateField` is the same segmented control without the popover — for a dense filter bar where a month grid would be too much surface.

01092026
26092026
9262026

The same value, US ordering.

States

One shell, five states plus the size scale — the same shell every other control in the library uses, so a date field never looks like a different product.

Empty

Filled

Invalid

Disabled

Read-only

Small

Usage

import { DateField, DatePicker, DateTimePicker } from "@luc/ui";
<DatePicker aria-label="Settlement" value={date} onValueChange={setDate} />

Choose the component by the value it stores, not by how it looks: `DateField` and `DatePicker` edit a `CalendarDate`, `DateTimePicker` a `CalendarDateTime`, `ZonedDateTimePicker` a `ZonedDateTime`. Nothing is converted for you, because converting an instant into a date is a decision the product has to make.

API

Read from the published TypeScript API, so a prop that is not listed here does not exist and a default that is listed is the one the compiler sees.

Exported symbols
ExportKindSignature
DateField60 documented props<T extends DateValue = DateValue>({ size, invalid, disabled, readOnly, className, trailingAction, ...props }: DateFieldProps<T>) => import("@types/react").JSX.Element
DatePicker60 documented props<T extends DateValue = DateValue>({ onValueChange, size, invalid, disabled, readOnly, required, locale, viewSwitch, showTodayAction, showClearAction, calendarButtonLabel, footer, className, todayValu…
DateRangePicker60 documented props<T extends DateValue = DateValue>({ onValueChange, size, invalid, disabled, readOnly, required, locale, months, presets, showTodayAction, showClearAction, calendarButtonLabel, footer, className, toda…
Exported symbols
ExportKindSignature
DateTimePicker60 documented props({ granularity, ...props }: DateTimePickerProps) => import("@types/react").JSX.Element
ZonedDateTimePicker60 documented props({ granularity, ...props }: ZonedDateTimePickerProps) => import("@types/react").JSX.Element

DatePicker props

Type: DatePickerProps<T>

Values the compiler reads from the declaration.

DatePicker props
PropTypeDefaultNotes
aria-describedby?inheritedstring | undefined—Identifies the element (or elements) that describes the object.
aria-details?inheritedstring | undefined—Identifies the element (or elements) that provide a detailed, extended description for the object.
aria-label?inheritedstring | undefined—Defines a string value that labels the current element.
aria-labelledby?inheritedstring | undefined—Identifies the element (or elements) that labels the current element.
autoComplete?inheritedstring | undefined—Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete…
autoFocus?inheritedboolean | undefined—Whether the element should receive focus on render.
calendarButtonLabel?string | undefined—Accessible name for the calendar button. Localized by React Aria by default.
className?string | undefined—
defaultOpen?inheritedboolean | undefined—Whether the overlay is open by default (uncontrolled).
defaultValue?inheritedT | null | undefined—The default value (uncontrolled).
dir?inheritedstring | undefined—
disabled?boolean | undefined—
firstDayOfWeek?inherited"sun" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | undefined—The day that starts the week.
footer?ReactNode—Extra footer content beside the quick actions.
form?inheritedstring | undefined—The `<form>` element to associate the input with. The value of this attribute must be the id of a `<form>` in the same document. See [MDN](https://developer.mozilla.org/en-US/docs…
granularity?inheritedGranularity | undefined—Determines the smallest unit that is displayed in the date picker. By default, this is `"day"` for dates, and `"minute"` for times.
hidden?inheritedboolean | undefined—
hideTimeZone?inheritedboolean | undefinedWhether to hide the time zone abbreviation.
hourCycle?inherited24 | 12 | undefined—Whether to display the time in 12 or 24 hour format. By default, this is determined by the user's locale.
id?inheritedstring | undefined—The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id).
inert?inheritedboolean | undefined—
invalid?boolean | undefined—
isDateUnavailable?inherited((date: DateValue) => boolean) | undefined—Callback that is called for each date of the calendar. If it returns true, then the date is unavailable.
isOpen?inheritedboolean | undefined—Whether the overlay is open by default (controlled).
lang?inheritedstring | undefined—
locale?string | undefined—
maxValue?inheritedDateValue | null | undefined—The maximum allowed date that a user may select.
minValue?inheritedDateValue | null | undefined—The minimum allowed date that a user may select.
name?inheritedstring | undefined—The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).
onAnimationEnd?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationEndCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIteration?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIterationCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStart?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStartCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAuxClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onAuxClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onBlur?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element loses focus.
onClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenu?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenuCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onFocus?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element receives focus.
onFocusChange?inherited((isFocused: boolean) => void) | undefined—Handler that is called when the element's focus status changes.
onGotPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onGotPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onKeyDown?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is pressed.
onKeyUp?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is released.
onLostPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onLostPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onMouseDown?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseDownCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseEnter?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseLeave?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMove?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMoveCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOut?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOutCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—

DateTimePicker props

Type: DateTimePickerProps

Values the compiler reads from the declaration.

DateTimePicker props
PropTypeDefaultNotes
aria-describedby?inheritedstring | undefined—Identifies the element (or elements) that describes the object.
aria-details?inheritedstring | undefined—Identifies the element (or elements) that provide a detailed, extended description for the object.
aria-label?inheritedstring | undefined—Defines a string value that labels the current element.
aria-labelledby?inheritedstring | undefined—Identifies the element (or elements) that labels the current element.
autoComplete?inheritedstring | undefined—Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete…
autoFocus?inheritedboolean | undefined—Whether the element should receive focus on render.
calendarButtonLabel?string | undefined—Accessible name for the calendar button. Localized by React Aria by default.
className?string | undefined—
defaultOpen?inheritedboolean | undefined—Whether the overlay is open by default (uncontrolled).
defaultValue?inheritedCalendarDateTime | null | undefined—The default value (uncontrolled).
dir?inheritedstring | undefined—
disabled?boolean | undefined—
firstDayOfWeek?inherited"sun" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | undefined—The day that starts the week.
footer?ReactNode—Extra footer content beside the quick actions.
form?inheritedstring | undefined—The `<form>` element to associate the input with. The value of this attribute must be the id of a `<form>` in the same document. See [MDN](https://developer.mozilla.org/en-US/docs…
granularity?"minute" | "second" | undefined—`minute` (default) or `second`.
hidden?inheritedboolean | undefined—
hideTimeZone?inheritedboolean | undefinedWhether to hide the time zone abbreviation.
hourCycle?inherited24 | 12 | undefined—Whether to display the time in 12 or 24 hour format. By default, this is determined by the user's locale.
id?inheritedstring | undefined—The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id).
inert?inheritedboolean | undefined—
invalid?boolean | undefined—
isDateUnavailable?inherited((date: DateValue) => boolean) | undefined—Callback that is called for each date of the calendar. If it returns true, then the date is unavailable.
isOpen?inheritedboolean | undefined—Whether the overlay is open by default (controlled).
lang?inheritedstring | undefined—
locale?string | undefined—
maxValue?inheritedDateValue | null | undefined—The maximum allowed date that a user may select.
minValue?inheritedDateValue | null | undefined—The minimum allowed date that a user may select.
name?inheritedstring | undefined—The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).
onAnimationEnd?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationEndCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIteration?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIterationCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStart?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStartCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAuxClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onAuxClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onBlur?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element loses focus.
onClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenu?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenuCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onFocus?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element receives focus.
onFocusChange?inherited((isFocused: boolean) => void) | undefined—Handler that is called when the element's focus status changes.
onGotPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onGotPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onKeyDown?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is pressed.
onKeyUp?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is released.
onLostPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onLostPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onMouseDown?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseDownCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseEnter?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseLeave?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMove?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMoveCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOut?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOutCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
DateField props60 props

DateField props

Type: DateFieldProps<T>

Values the compiler reads from the declaration.

DateField props
PropTypeDefaultNotes
aria-describedby?inheritedstring | undefined—Identifies the element (or elements) that describes the object.
aria-details?inheritedstring | undefined—Identifies the element (or elements) that provide a detailed, extended description for the object.
aria-label?inheritedstring | undefined—Defines a string value that labels the current element.
aria-labelledby?inheritedstring | undefined—Identifies the element (or elements) that labels the current element.
autoComplete?inheritedstring | undefined—Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete…
autoFocus?inheritedboolean | undefined—Whether the element should receive focus on render.
className?string | undefined—
defaultValue?inheritedT | null | undefined—The default value (uncontrolled).
dir?inheritedstring | undefined—
disabled?boolean | undefined—
form?inheritedstring | undefined—The `<form>` element to associate the input with. The value of this attribute must be the id of a `<form>` in the same document. See [MDN](https://developer.mozilla.org/en-US/docs…
granularity?inheritedGranularity | undefined—Determines the smallest unit that is displayed in the date picker. By default, this is `"day"` for dates, and `"minute"` for times.
hidden?inheritedboolean | undefined—
hideTimeZone?inheritedboolean | undefinedWhether to hide the time zone abbreviation.
hourCycle?inherited24 | 12 | undefined—Whether to display the time in 12 or 24 hour format. By default, this is determined by the user's locale.
id?inheritedstring | undefined—The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id).
inert?inheritedboolean | undefined—
invalid?boolean | undefined—
isDateUnavailable?inherited((date: DateValue) => boolean) | undefined—Callback that is called for each date of the calendar. If it returns true, then the date is unavailable.
isRequired?inheritedboolean | undefined—Whether user input is required on the input before form submission.
lang?inheritedstring | undefined—
locale?string | undefined—BCP-47 locale for segment order, weekday names and the visible month.
maxValue?inheritedDateValue | null | undefined—The maximum allowed date that a user may select.
minValue?inheritedDateValue | null | undefined—The minimum allowed date that a user may select.
name?inheritedstring | undefined—The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).
onAnimationEnd?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationEndCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIteration?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIterationCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStart?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStartCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAuxClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onAuxClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onBlur?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element loses focus.
onChange?inherited((value: MappedDateValue<T> | null) => void) | undefined—Handler that is called when the value changes.
onClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenu?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenuCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onFocus?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element receives focus.
onFocusChange?inherited((isFocused: boolean) => void) | undefined—Handler that is called when the element's focus status changes.
onGotPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onGotPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onKeyDown?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is pressed.
onKeyUp?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is released.
onLostPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onLostPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onMouseDown?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseDownCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseEnter?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseLeave?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMove?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMoveCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOut?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOutCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOver?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOverCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseUp?inheritedMouseEventHandler<HTMLDivElement> | undefined—
DateRangePicker props60 props

DateRangePicker props

Type: DateRangePickerProps<T>

Values the compiler reads from the declaration.

DateRangePicker props
PropTypeDefaultNotes
allowsNonContiguousRanges?inheritedboolean | undefined—When combined with `isDateUnavailable`, determines whether non-contiguous ranges, i.e. ranges containing unavailable dates, may be selected.
aria-describedby?inheritedstring | undefined—Identifies the element (or elements) that describes the object.
aria-details?inheritedstring | undefined—Identifies the element (or elements) that provide a detailed, extended description for the object.
aria-label?inheritedstring | undefined—Defines a string value that labels the current element.
aria-labelledby?inheritedstring | undefined—Identifies the element (or elements) that labels the current element.
autoFocus?inheritedboolean | undefined—Whether the element should receive focus on render.
calendarButtonLabel?string | undefined—
className?string | undefined—
defaultOpen?inheritedboolean | undefined—Whether the overlay is open by default (uncontrolled).
defaultValue?inheritedRangeValue<T> | null | undefined—The default value (uncontrolled).
dir?inheritedstring | undefined—
disabled?boolean | undefined—
firstDayOfWeek?inherited"sun" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | undefined—The day that starts the week.
footer?ReactNode—
form?inheritedstring | undefined—The `<form>` element to associate the input with. The value of this attribute must be the id of a `<form>` in the same document. See [MDN](https://developer.mozilla.org/en-US/docs…
granularity?inheritedGranularity | undefined—Determines the smallest unit that is displayed in the date picker. By default, this is `"day"` for dates, and `"minute"` for times.
hidden?inheritedboolean | undefined—
hideTimeZone?inheritedboolean | undefinedWhether to hide the time zone abbreviation.
hourCycle?inherited24 | 12 | undefined—Whether to display the time in 12 or 24 hour format. By default, this is determined by the user's locale.
id?inheritedstring | undefined—The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id).
inert?inheritedboolean | undefined—
invalid?boolean | undefined—
isDateUnavailable?inherited((date: DateValue, anchorDate: CalendarDate | null) => boolean) | undefined—Callback that is called for each date of the calendar. If it returns true, then the date is unavailable.
isOpen?inheritedboolean | undefined—Whether the overlay is open by default (controlled).
lang?inheritedstring | undefined—
locale?string | undefined—
maxValue?inheritedDateValue | null | undefined—The maximum allowed date that a user may select.
minValue?inheritedDateValue | null | undefined—The minimum allowed date that a user may select.
months?1 | 2 | undefined—Months shown at once. Default `2`; the caller drops to 1 on mobile.
onAnimationEnd?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationEndCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIteration?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIterationCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStart?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStartCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAuxClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onAuxClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onBlur?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element loses focus.
onClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenu?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenuCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onFocus?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element receives focus.
onFocusChange?inherited((isFocused: boolean) => void) | undefined—Handler that is called when the element's focus status changes.
onGotPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onGotPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onKeyDown?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is pressed.
onKeyUp?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is released.
onLostPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onLostPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onMouseDown?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseDownCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseEnter?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseLeave?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMove?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMoveCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOut?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOutCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
ZonedDateTimePicker props60 props

ZonedDateTimePicker props

Type: ZonedDateTimePickerProps

Values the compiler reads from the declaration.

ZonedDateTimePicker props
PropTypeDefaultNotes
aria-describedby?inheritedstring | undefined—Identifies the element (or elements) that describes the object.
aria-details?inheritedstring | undefined—Identifies the element (or elements) that provide a detailed, extended description for the object.
aria-label?inheritedstring | undefined—Defines a string value that labels the current element.
aria-labelledby?inheritedstring | undefined—Identifies the element (or elements) that labels the current element.
autoComplete?inheritedstring | undefined—Describes the type of autocomplete functionality the input should provide if any. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefautocomplete…
autoFocus?inheritedboolean | undefined—Whether the element should receive focus on render.
calendarButtonLabel?string | undefined—Accessible name for the calendar button. Localized by React Aria by default.
className?string | undefined—
defaultOpen?inheritedboolean | undefined—Whether the overlay is open by default (uncontrolled).
defaultValue?inheritedZonedDateTime | null | undefined—The default value (uncontrolled).
dir?inheritedstring | undefined—
disabled?boolean | undefined—
firstDayOfWeek?inherited"sun" | "mon" | "tue" | "wed" | "thu" | "fri" | "sat" | undefined—The day that starts the week.
footer?ReactNode—Extra footer content beside the quick actions.
form?inheritedstring | undefined—The `<form>` element to associate the input with. The value of this attribute must be the id of a `<form>` in the same document. See [MDN](https://developer.mozilla.org/en-US/docs…
granularity?"minute" | "second" | undefined—
hidden?inheritedboolean | undefined—
hideTimeZone?inheritedboolean | undefinedWhether to hide the time zone abbreviation.
hourCycle?inherited24 | 12 | undefined—Whether to display the time in 12 or 24 hour format. By default, this is determined by the user's locale.
id?inheritedstring | undefined—The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id).
inert?inheritedboolean | undefined—
invalid?boolean | undefined—
isDateUnavailable?inherited((date: DateValue) => boolean) | undefined—Callback that is called for each date of the calendar. If it returns true, then the date is unavailable.
isOpen?inheritedboolean | undefined—Whether the overlay is open by default (controlled).
lang?inheritedstring | undefined—
locale?string | undefined—
maxValue?inheritedDateValue | null | undefined—The maximum allowed date that a user may select.
minValue?inheritedDateValue | null | undefined—The minimum allowed date that a user may select.
name?inheritedstring | undefined—The name of the input element, used when submitting an HTML form. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#htmlattrdefname).
onAnimationEnd?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationEndCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIteration?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationIterationCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStart?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAnimationStartCapture?inheritedAnimationEventHandler<HTMLDivElement> | undefined—
onAuxClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onAuxClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onBlur?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element loses focus.
onClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenu?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onContextMenuCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClick?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onDoubleClickCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onFocus?inherited((e: FocusEvent<Element, Element>) => void) | undefined—Handler that is called when the element receives focus.
onFocusChange?inherited((isFocused: boolean) => void) | undefined—Handler that is called when the element's focus status changes.
onGotPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onGotPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onKeyDown?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is pressed.
onKeyUp?inherited((e: KeyboardEvent) => void) | undefined—Handler that is called when a key is released.
onLostPointerCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onLostPointerCaptureCapture?inheritedPointerEventHandler<HTMLDivElement> | undefined—
onMouseDown?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseDownCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseEnter?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseLeave?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMove?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseMoveCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOut?inheritedMouseEventHandler<HTMLDivElement> | undefined—
onMouseOutCapture?inheritedMouseEventHandler<HTMLDivElement> | undefined—

Guidelines

Do

  • Choose the component by the value it stores, not by the layout: a date is `DatePicker`, a wall clock is `DateTimePicker`, an instant in a named zone is `ZonedDateTimePicker`.
  • Separate the two constraints — `minValue`/`maxValue` bound the range a value may fall in, `isDateUnavailable` names the exceptions inside it.
  • Pass `todayValue` wherever the result has to be reproducible (a demo, a test, a server render), so the Today action cannot mean a different day tomorrow.
  • Use `DateField` in a dense filter bar where a month grid would be too much surface; it is the same segmented control without the popover.

Don't

  • Substitute a plain text input for the segmented field: the segments are the keyboard contract, and their order is the locale's rather than the one you guessed.
  • Convert a zoned value to a date inside the component's value — `ZonedDateTimePicker` keeps the identifier it was given, and dropping it is a product decision.
  • Rely on `required` for the message: it marks the control, `Field` with an `error` explains it.

Accessibility

The field is one tab stop whose segments take arrow keys (Up and Down step a segment, Tab leaves the field), and a partially typed date is announced as incomplete rather than as an error. The calendar button is a second tab stop with its own name, the popover returns focus to the field when it closes, and `isDateUnavailable` reports through `aria-disabled` so a blocked day is announced as unavailable rather than as absent.

Luc UI v1.0DatePickerdark theme