DatePicker
DatePicker captures single dates and related date-picker states with typed callbacks.
@duskmoon-dev/components/date-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.
DatePicker is most often configured through `value`, `defaultValue`, `onChange`, `onBlur`.
Renders picker input with value, 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 DatePicker from its package subpath, then render it with the core props.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function Example() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Renders picker input with value, size, status, and classes
test-backedDatePicker scenario from the component test coverage: renders picker input with value, size, status, and classes.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerRendersPickerInputWithDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Supports uncontrolled changes and clear
test-backedDatePicker scenario from the component test coverage: supports uncontrolled changes and clear.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerSupportsUncontrolledChangesAndDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Supports presets and showNow
test-backedDatePicker scenario from the component test coverage: supports presets and shownow.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerSupportsPresetsAndShowNowDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Blocks disabledDate values
test-backedDatePicker scenario from the component test coverage: blocks disableddate values.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerBlocksDisabledDateValuesDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Supports range picker values
test-backedDatePicker scenario from the component test coverage: supports range picker values.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerSupportsRangePickerValuesDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Exposes static picker aliases
test-backedDatePicker scenario from the component test coverage: exposes static picker aliases.
import "@duskmoon-dev/components/styles.css";
import { DatePicker } from "@duskmoon-dev/components/date-picker";
export function DatePickerExposesStaticPickerAliasesDemo() {
return (<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>);
} Theme aware
Docs previews inherit the DuskMoon data-theme value. Use the header switch to compare light and dark rendering.
<div data-theme="sunshine">
<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>
</div>
<div data-theme="moonlight">
<DatePicker
defaultValue="2026-05-25"
size="lg"
status="success"
onChange={(value) => console.log(value)}
/>
</div> API
The API reference below lists every parsed exported type or interface for DatePicker. Start with `value`, `defaultValue`, `onChange`, `onBlur` for common usage.
packages/components/src/components/date-picker/DatePicker.types.ts
Scenarios: packages/components/src/components/date-picker/DatePicker.test.tsx | Prop | Type | Required | Description |
|---|---|---|---|
value | DatePickerValue | No | value configures DatePicker. |
defaultValue | DatePickerValue | No | defaultValue configures DatePicker. |
onChange | (value: DatePickerValue | undefined, dateString: string) => void | No | onChange configures DatePicker. |
onBlur | (event: DatePickerInputFocusEvent) => void | No | onBlur configures DatePicker. |
onFocus | (event: DatePickerInputFocusEvent) => void | No | onFocus configures DatePicker. |
onOpenChange | (open: boolean) => void | No | onOpenChange configures DatePicker. |
picker | DatePickerPicker | No | picker configures DatePicker. |
format | string | No | format configures DatePicker. |
placeholder | string | No | placeholder configures DatePicker. |
disabled | boolean | No | disabled configures DatePicker. |
disabledDate | (value: DatePickerValue) => boolean | No | disabledDate configures DatePicker. |
presets | DatePickerPreset[] | No | presets configures DatePicker. |
showNow | boolean | No | showNow configures DatePicker. |
allowClear | boolean | No | allowClear configures DatePicker. |
open | boolean | No | open configures DatePicker. |
defaultOpen | boolean | No | defaultOpen configures DatePicker. |
size | DatePickerSize | No | size configures DatePicker. |
status | DatePickerStatus | No | status configures DatePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
label | ReactNode | Yes | label configures DatePicker. |
value | DatePickerValue | Yes | value configures DatePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
value | DatePickerRangeValue | No | value configures DatePicker. |
defaultValue | DatePickerRangeValue | No | defaultValue configures DatePicker. |
onChange | ( | No | onChange configures DatePicker. |
value | DatePickerRangeValue, | Yes | value configures DatePicker. |
dateStrings | [string, string], | Yes | dateStrings configures DatePicker. |
placeholder | [string, string] | No | placeholder configures DatePicker. |
separator | ReactNode | No | separator configures DatePicker. |
| Prop | Type | Required | Description |
|---|---|---|---|
RangePicker | ForwardRefExoticComponent< | Yes | RangePicker configures DatePicker. |
WeekPicker | ForwardRefExoticComponent< | Yes | WeekPicker configures DatePicker. |
MonthPicker | ForwardRefExoticComponent< | Yes | MonthPicker configures DatePicker. |
QuarterPicker | ForwardRefExoticComponent< | Yes | QuarterPicker configures DatePicker. |
YearPicker | ForwardRefExoticComponent< | Yes | YearPicker configures DatePicker. |
string [ DatePickerValue | undefined, DatePickerValue | undefined, ] | "date" | "week" | "month" | "quarter" | "year" | "time" "sm" | "md" | "lg" "error" | "success" ChangeEvent<HTMLInputElement> FocusEvent<HTMLInputElement>