Primitives

Time and date-time pickers

Values stay plain strings: “14:30”, “2026-10-10T14:30”.

Import#

Everything comes from the package root. The example above uses:

your-component.tsx
import { DateTimePicker, Label, TimePicker } from "@waveinno/ui";

Props#

Read from the source of this version, so they match the code exactly.

<TimePicker>

src/components/ui/time-picker.tsx
PropTypeDefaultDescription
valuerequiredstring—"HH:mm" (24-hour) or "".
onChangerequired(value: string) => void—
idstring—
placeholderstring"Pick a time"
stepnumber5
hourCycle12 | 2424
minstring—
maxstring—
localestring"en-GB"
disabledboolean—
clearablebooleantrue
classNamestring—
labels{ now?: string; done?: string; clear?: string }—

<DateTimePicker>

src/components/ui/date-picker.tsx
PropTypeDefaultDescription
idstring—
placeholderstring"Pick a date and time"
disabledboolean—
clearablebooleantrue
classNamestring—
localestring"en-GB"Month and weekday names and digits, e.g. "bn-BD".
weekStartsOnWeekday10 = Sunday … 6 = Saturday.
valuerequiredstring—"2026-10-10T14:30" (local wall time) or "".
onChangerequired(value: string) => void—
minstring—Earliest / latest, "YYYY-MM-DDTHH:mm".
maxstring—
stepnumber5
hourCycle12 | 2424
defaultTimestring"09:00"Time used when a day is picked before any time.
labels{ now?: string; done?: string; clear?: string; time?: string }—

<Label>

src/components/ui/label.tsx
PropTypeDefaultDescription
requiredboolean—

Also takes ComponentPropsWithoutRef<typeof LabelPrimitive.Root>.

Install#

If the project does not have the package yet, add it, then follow the setup for Next.js or Vite once.

$ npm install @waveinno/ui