AhaSlides Design
v0.52.0React · Vue · Lit

Components · Data Entry

TimePicker

Pick a time of day from scrolling hour/minute/second columns — schedules, reminders, durations — rendered through the shared TimePicker.

Examples

API

PropTypeDefaultNotes
valueDayjsSelected time
size'small' | 'middle' | 'large''middle'Field height: 24 / 32 / 40
status'error' | 'warning'Validation state — tints the border
disabledbooleanfalseNon-interactive, greyed field
formatstringHH:mm:ssDisplay/parse format (HH:mm · HH:mm:ss · h:mm a)
use12Hoursbooleanfalse12-hour clock with AM/PM
allowClearbooleantrueShow the clear (×) affordance
minuteStepnumber1Granularity of the minute column
onChange(time) => voidFires with the new time

Install

# .npmrc — once: point the @ahaslides-product scope at GitHub Packages
@ahaslides-product:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}   # a GitHub token with read:packages

npm i @ahaslides-product/design
import '@ahaslides-product/design/tokens.css';   // once, at the app root
import '@ahaslides-product/design/time-picker-theme';   // registers <time-picker>

Agent feed for this component (absolute, fetchable anywhere): time-picker.agent.json · time-picker.md · time-picker.llms.txt

When to use

When to use
  • TimePicker — a time of day on its own — a reminder, a daily schedule slot
  • DatePicker showTime — a date AND a time together — a precise timestamp
  • Select — a small fixed set of times (e.g. 15-min slots) — a list beats scrolling
Match format to the precision you need — HH:mm hides seconds. Use minuteStep to snap to sensible increments rather than every minute. Times use Day.js.
Surfaces
editor dashboard settings

Spec

Field height 32 · radius 8 · 1px #E3E3E3 border · Sizes small 24 · default 32 · large 40 (via size) · Status error/warning tints the border (#FF5A7A error) · Selected cell brand #6A1EBB · Hover cell #F7F7F7 (gray-20) · Format HH:mm · HH:mm:ss · h:mm a (use12Hours) · Range TimePicker.RangePicker — start → end · Placeholder #8A8A8A