A duration field normalized to seconds — carrying h/m/s spinbutton segments (type 90 minutes, get 1h 30m) or a free-text mode that parses "1h30", "90m" and "1:30".
npx shadcn@latest add @zyeon/duration-inputZyeon UI limits how often it can be asked, and Duration Input hasn't had its turn. Its source will show here once it has.