TimePicker
TimePicker captures time values with typed parsing and status state.
@duskmoon-dev/components/time-picker Usage
When to use
- Use it inside forms, filters, settings, and any workflow that captures user input.
- Prefer controlled props when the value must stay synchronized with application state.
Implementation notes
Features
Documents default values, value props, and change callbacks for form integration.
Surfaces status, size, disabled, and option data patterns where the component supports them.
TimePicker is most often configured through `value`, `defaultValue`, `format`, `disabled`.
Renders value with format, size, status, and classes
Feature Demos
Feature demos are authored for the component page, then supplemented with behavior scenarios from the component test coverage.
Basic usage
Import the component stylesheet and TimePicker from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function Example() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Renders value with format, size, status, and classes
test-backedTimePicker scenario from the component test coverage: renders value with format, size, status, and classes.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerRendersValueWithFormatDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Supports uncontrolled changes and clear
test-backedTimePicker scenario from the component test coverage: supports uncontrolled changes and clear.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerSupportsUncontrolledChangesAndDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Supports showNow while open
test-backedTimePicker scenario from the component test coverage: supports shownow while open.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerSupportsShowNowWhileOpenDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Supports 12-hour display values
test-backedTimePicker scenario from the component test coverage: supports 12-hour display values.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerSupports12HourDisplayDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Blocks disabled time values
test-backedTimePicker scenario from the component test coverage: blocks disabled time values.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerBlocksDisabledTimeValuesDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Supports range picker values
test-backedTimePicker scenario from the component test coverage: supports range picker values.
import "@duskmoon-dev/components/styles.css";
import { TimePicker } from "@duskmoon-dev/components/time-picker";
export function TimePickerSupportsRangePickerValuesDemo() {
return (<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>
</div>
<div data-theme="moonlight">
<TimePicker
defaultValue="09:30:00"
format="HH:mm:ss"
allowClear
/>
</div> API
The API reference below lists every parsed exported type or interface for TimePicker. Start with `value`, `defaultValue`, `format`, `disabled` for common usage.
packages/components/src/components/time-picker/TimePicker.types.ts
Scenarios: packages/components/src/components/time-picker/TimePicker.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
value | TimePickerValue | No | value configures TimePicker. |
defaultValue | TimePickerValue | No | defaultValue configures TimePicker. |
format | string | No | format configures TimePicker. |
disabled | boolean | No | disabled configures TimePicker. |
disabledTime | (value?: TimePickerValue) => DisabledTimeConfig | No | disabledTime configures TimePicker. |
use12Hours | boolean | No | use12Hours configures TimePicker. |
showNow | boolean | No | showNow configures TimePicker. |
allowClear | boolean | No | allowClear configures TimePicker. |
placeholder | string | No | placeholder configures TimePicker. |
open | boolean | No | open configures TimePicker. |
defaultOpen | boolean | No | defaultOpen configures TimePicker. |
size | TimePickerSize | No | size configures TimePicker. |
status | TimePickerStatus | No | status configures TimePicker. |
onChange | (value: TimePickerValue | undefined, timeString: string) => void | No | onChange configures TimePicker. |
onOpenChange | (open: boolean) => void | No | onOpenChange configures TimePicker. |
onBlur | (event: TimePickerInputFocusEvent) => void | No | onBlur configures TimePicker. |
onFocus | (event: TimePickerInputFocusEvent) => void | No | onFocus configures TimePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
disabledHours | () => number[] | No | disabledHours configures TimePicker. |
disabledMinutes | (selectedHour: number) => number[] | No | disabledMinutes configures TimePicker. |
disabledSeconds | (selectedHour: number, selectedMinute: number) => number[] | No | disabledSeconds configures TimePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
value | TimePickerRangeValue | No | value configures TimePicker. |
defaultValue | TimePickerRangeValue | No | defaultValue configures TimePicker. |
onChange | ( | No | onChange configures TimePicker. |
value | TimePickerRangeValue, | Yes | value configures TimePicker. |
timeStrings | [string, string], | Yes | timeStrings configures TimePicker. |
placeholder | [string, string] | No | placeholder configures TimePicker. |
separator | ReactNode | No | separator configures TimePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
RangePicker | ForwardRefExoticComponent< | Yes | RangePicker configures TimePicker. |
string | Date [ TimePickerValue | undefined, TimePickerValue | undefined, ] "sm" | "md" | "lg" "error" | "success" FocusEvent<HTMLInputElement>