Usage
DateInput from @prepared911/ui/date-input is a read-only formatted date beside a calendar button. The popover hosts a single-mode Calendar with Reset and Apply so operators pick a day on the grid. Use it in filter bars and forms where the calendar stays hidden until requested (ui-calendar parity).
For a committed start-end span use DateRangeInput. For Before, After, or Between limits use DateRangeInput with modes.
DateInput because the calendar should stay hidden until requested.Calendar inline instead.AdvancedDateRangePicker for Before / After / Between.RecurrenceField.Calendar bound to the shared draft while the popover is open.applyLabel and resetLabel are required. Day presses update a draft; onValueChange runs on Apply. Reset restores the draft held when the popover opened. Escape and an outside press close without committing. While the popover is open the trigger shows the committed formatted value and the hidden input keeps the committed ISO date.clearable={false} to hide it. Clear, from the field or the panel, commits an empty value at once, closes the popover and focuses the field; Escape or a press outside does not bring the old date back. Reset restores the original value.readOnly. The formatted value stays focusable and copyable; the calendar and clear controls are hidden and the popover does not open.open / onOpenChange when a parent overlay (Drawer, Dialog) coordinates focus.applyLabel, resetLabel, and clearLabel (unless clearable={false}).label: it names the read-only input for assistive technology.onOpenChange with parent overlays (Dialog, Drawer) to manage focus return correctly.DateInput inside another focus-stealing overlay without verifying focus returns to the field on close.DateInput when the calendar should always be visible; Calendar inline is clearer in that case.DateInput is a read-only textbox, popover, and calendar. The mode select on other pickers is a separate combobox; DateInput has no mode select. See the Accessibility page for the full contract.