Перейти к основному содержимому

DatePicker

Выбор даты: Popover с Calendar (mode="single") и кнопкой-триггером (Button outline + иконка + отформатированная дата через date-fns). Вариант base — управляемый композит (value: Date | undefined / onChange), выбор даты сам закрывает поповер. В форме DatePicker кладётся в component как есть: значение поля Date | null, к контракту композита его сводит обёртка поля по статике datePickerAdapter. Формат подписи настраивается через dateFormat, текст пустого состояния — через placeholder.

Период и несколько дат — отдельные компоненты того же подпути, у каждого свой тип значения:

  • DatePickerRange — период, значение [Date, Date] | null. Выбор в два клика: начало, затем конец; пока выбрано только начало, значение поля не меняется. Кортеж, а не объект { from, to }: массив модели становится полем при любом начальном значении, в том числе с готовым периодом.
  • DatePickerMulti — несколько дат, значение Date[] | null по возрастанию. Клик добавляет день, повторный — снимает; maxItems гасит невыбранные дни (правило формы — maxLength(n)).

У обоих есть clearable — крестик сброса у правого края кнопки — и numberOfMonths.

Компонент тяжёлый (тянет react-day-picker) — импортируется из подпути @reformer/ui-kit/date-picker, а не из главного barrel.