Time Picker
Input segmentado de horário (HH:MM ou HH:MM:SS) com navegação por teclado. Cada segmento é um input independente com auto-focus, arrow keys e formatação automática.
valor:
09:30Utilização
index.tsx
import { TimePicker } from "@convertcompany/ui";
Interações de teclado
| Tecla | Ação |
|---|---|
| ↑ / ↓ | Incrementa/decrementa o segmento atual (wrap automático: 23 → 0, -1 → 59) |
| → | Pula pro próximo segmento quando o cursor está no fim |
| ← | Volta pro segmento anterior quando o cursor está no início |
| Backspace em segmento vazio | Volta pro anterior |
| Auto-focus | Ao completar 2 dígitos, foco vai pro próximo segmento |
| Blur | Formata com zero à esquerda (5 → 05) e clampa ao máximo (99 em horas → 23) |
Exemplos
Com segundos
valor:
14:45:30Disabled
Combo Data + Hora
Formato do valor
value é uma string no formato HH:MM ou HH:MM:SS:
index.tsx
const [time, setTime] = useState("09:30"); // sem segundos
const [time2, setTime2] = useState("14:45:30"); // com segundos
Durante a digitação, segmentos parciais são emitidos sem padding ("9:30"). Ao perder foco, são normalizados ("09:30").
Props
| Propriedade | Tipo |
|---|---|
| valueHorário no formato "HH:MM" ou "HH:MM:SS" dependendo de showSeconds. | string |
| onChangeCallback ao mudar o valor. | (value: string) => void |
| showSecondsExibe o segmento de segundos. Default false. | boolean |
| disabledDesabilita os inputs. | boolean |
| classNameClasse CSS adicional para o container. | string |
| ...propsDemais props nativas do <div>. | HTMLAttributes<HTMLDivElement> |