UI

Date Picker

Campo de data com digitação e calendário em popover, para uma data (DatePicker) ou um período (DateRangePicker).

Data da visita técnica
Digite a data ou abra o calendário.

Instalação

npx shadcn@latest add @lenstech/date-picker

Uso

import { I18nProvider } from "react-aria-components"
import { DatePicker, DateRangePicker } from "@/components/ui/date-picker"
<I18nProvider locale="pt-BR">
  <DatePicker label="Data da visita" name="visita" />
</I18nProvider>

Datas são CalendarDate, não Date

O valor é um objeto do pacote @internationalized/date (CalendarDate), sem hora nem fuso. No DateRangePicker o valor é { start, end }, cada um um CalendarDate.

  • Criar: today(getLocalTimeZone()), parseDate("2026-10-15").
  • Enviar para a API: data.toString() → "2026-10-15". Em formulários, name (ou startName/endName) já envia em ISO.
  • Converter para Date: data.toDate(getLocalTimeZone()).
  • Calcular: data.add({ days: 30 }), data.compare(outra) (negativo = antes).

Exemplos

Período (DateRangePicker)

Para filtros de relatório e reservas. Digite início e fim ou selecione os dois extremos no calendário.

Período do relatório
Últimos 30 dias por padrão.

Datas mínima, máxima e indisponíveis

minValue/maxValue limitam o intervalo; isDateUnavailable bloqueia dias específicos — aqui, fins de semana.

Agendar reunião de briefing
Segunda a sexta, nos próximos 60 dias.

Controlado

Use value e onChange para definir a data por código (atalhos, limpar o campo) e ver o valor que seria enviado.

Vencimento da fatura

Valor enviado ao servidor: null

Validação

isRequired, minValue e validate funcionam com o Form. Clique em Criar campanha para ver os erros.

Data do evento
Período da campanha

Quando usar

  • Use em formulários de agendamento, vencimentos e filtros de período.
  • Não use para datas distantes que a pessoa sabe de cor (nascimento) — use Date Field, mais rápido de digitar.
  • Não use quando o calendário deve ficar sempre visível na tela — use Calendar.
  • Para relatórios, use o DateRangePicker com um período padrão (ex.: últimos 30 dias) e maxValue em hoje.

API

DatePicker

Aceita todas as props do DatePicker do React Aria, mais:

Prop

Type

DateRangePicker

Aceita todas as props do DateRangePicker do React Aria, mais label, description e errorMessage. Diferenças principais:

Prop

Type

On this page