KQ-498 · TIME/DIAL

Time Dial

A clock face for picking a time. Tapping or dragging the ring swings the hand to that hour on snap, by the shortest arc, then the face cross-fades to minutes and the hand glides across to the new scale while the readout rolls the digits that changed. Arrows step the phase you are in, Enter advances hour to minute to done, Escape steps back, and the face reports as a slider whose value text reads the whole time.

KQ-498 · TIME/DIAL
Fieldline dispatch startPicking hour
:

Enter advances hour to minute to done. Escape steps back.

Dispatch window opens 08:15 · picking hour

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/time-dial

Props

value / defaultValue
string
default "09:30"
The time as "HH:mm" in 24-hour form, controlled or initial.
onValueChange
(value: string) => void
default
Fires on every change, always "HH:mm" in 24-hour form.
format
12 | 24
default 12
Face and readout style; 24 puts 00–11 on the outer band and 12–23 on the inner one instead of an AM/PM segment.
minuteStep
number
default 5
Minute detent for the face and the arrow keys.
label
string
default "Time"
Group label; the face and the meridiem group are named from it.
onPhaseChange
(phase: "hour" | "minute" | "done") => void
default
Fires when the dial moves between hour, minute and done.