DatePicker allows a user to select a date or date range from a dropdown calendar.
minDate, maxDate, isDateDisabled). Never allow any date and report the problem afterward with an error.maxDate).label) that describes what the date represents.ariaLabel) in place of a visible label only when the DatePicker sits in a toolbar or filter row where a visible label competes with the surrounding controls.isRange) when the user needs both a start and an end date. Never split a required period across two DatePickers.isRange) — selects a start date and an end date.withTime) — selects a single moment in a chosen time zone.isRange with withTime) — selects a start and end moment. Use for the most granular timeframes.withPresets) — a list of common periods beside the calendar, available on range types only. Show presets wherever users return to the same periods often.withPresets for ranges that rarely repeat; the popover shows only the calendar.size="md") — the default, suitable for most forms.size="sm") — for toolbars and filter rows where the DatePicker sits beside other small controls.isDisabled) — blocks interaction and updates the background and text color.isInvalid with error) — applies critical styling and renders the error message below the field.isClearable with onClear) — resets the selection. Enable it when an empty field is a valid choice, such as an optional filter that shows all dates when cleared. The button is hidden while the field is empty.minDate, maxDate, isDateDisabled) — disabled dates can't be selected in the calendar, and presets whose period falls outside the limits are disabled.withTime) hold the selection until the user saves it, so the date, time, and time zone update the field together.minRange, maxRange) — for date ranges, days that would make the range too short or too long are disabled once the start date is chosen. For time ranges, an error explains the limit and saving is unavailable until the range fits.description text as short, complete sentences explaining how the date is used or what limits apply to it.value and onChange take @internationalized/date objects, not strings or Dates: CalendarDate for a date, { start, end } of CalendarDate for a range, ZonedDateTime with withTime, and { start, end } of ZonedDateTime with both isRange and withTime. onChange receives null when nothing is selected. The exported DatePickerValue type covers all four shapes.value with onChange to update the selection.isClearable requires onClear, and onClear must reset value itself — the clear button does not call onChange.withPresets only applies when isRange is set.presets replaces the default presets with an array of preset objects. A type: 'relative' preset takes label and timeAgo: { value, unit }; a type: 'custom' preset takes label and a callback returning { start, end }. Both accept an optional icon, tooltip, and onClick. A preset with onClick runs the callback instead of selecting its range, and date limits do not disable it.isPresetDisabled overrides the automatic preset disabling. Pass a boolean for all presets or a function receiving the preset and its calculated range.minDate and maxDate take CalendarDate. isDateDisabled takes precedence over both when provided.minRange and maxRange accept a number of days, a string like "2 weeks" or "6 months", or a DateTimeDuration. With withTime, string units can also be hours, minutes, or seconds.localTimeZone sets the time zone used to calculate "today" and the time zone selector's default. Omit it to use the user's local time zone.placeholder defaults to "Choose a date…" when empty.label, description, and error accept rich content in place of a plain string: React takes a ReactNode; Ember takes the :label, :description, and :error named blocks. Use this for labels with an optional indicator and for descriptions or errors with inline links.icon, elementBefore, and elementAfter are not accepted.defaultIsOpen renders the popover open initially. shouldAutoFocusCalendar (default true) moves focus into the calendar when it opens.popoverMiddlewareOptions, popoverAnimationTransitionDuration, and unsafe_popoverStyle configure the floating popover, not the trigger. Use unsafe_popoverStyle only as a last resort.<PlumaDatePicker> with @argName args matching the React prop names. The Ember signature type is PlumaDatePickerSignature.