Settings
Time picker input
Half-hour time selection, auto-scrolled to the current value.
Available
Ports as-is
Examples
Rendered live from the maintained Storybook story. Lantern stores only the story id and embeds Storybook rather than duplicating the component or its demo.
Time picker input
Rendered live from Storybook
Storybook must be running for this to load — bun run start:storybook from the monorepo root, or set NEXT_PUBLIC_STORYBOOK_URL to a deployed instance.
Props
The component's public API, read from its TypeScript source. Descriptions come from TSDoc on the prop, so this table cannot drift from the component.
| Prop | Type | Default | Description |
|---|---|---|---|
value* | string | — | Current time as `h:mm AM/PM`. |
onChange* | (value: string) => void | — | Fires on list select, on Enter, and on blur with the sanitised string. |
placeholder | string | "12:00 PM" | Undocumented — add TSDoc to the prop in the library. |
stepMinutes | number | 30 | Minutes between dropdown options. 30 matches the app. |
open | boolean | — | Controlled dropdown state. Leave undefined to let the field manage its own open/closed via focus, and use `defaultOpen` to pin a story to the open state. |
defaultOpen | boolean | false | Initial dropdown state when uncontrolled. |
onOpenChange | (open: boolean) => void | — | Undocumented — add TSDoc to the prop in the library. |
usePortal | boolean | true | The app always portals the list to `document.body` with fixed coordinates. Set false to render it absolutely inside the field instead — needed when the field sits in a gallery or a docs block, where an escaped portal floats over unrelated content. |
className | string | — | Undocumented — add TSDoc to the prop in the library. |
Reference
Transcribed from the component audit. If this disagrees with the source, the source is right.
- Source
src/components/settings/TimePickerInput.tsx- Portability
- Copies across unchanged — only the utils import path moves.
- Notes
- Its option builder is exported so a story can pin the list.