Text input with calendar popup for date selection. Supports single dates and date ranges with optional preset quick filters. Built on Input, Calendar, and Menu components.
Scanned 5/27/2026
Install via CLI
openskills install reaviz/skills# DateInput
Text input with calendar popup for date selection. Supports single dates and date ranges with optional preset quick filters. Built on Input, Calendar, and Menu components.
## Import
```tsx
import { DateInput } from 'reablocks';
```
## DateInput Props
Extends Input props (except `value` and `onChange`), plus:
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `value` | `Date` (single) or `[Date, Date]` (range) | — | Selected date(s) |
| `onChange` | `(value: Date) => void` or `(value: [Date, Date]) => void` | — | Date change handler |
| `isRange` | `boolean` | `false` | Enable range mode |
| `format` | `string` | `'MM/dd/yyyy'` | date-fns format string for display/parsing |
| `placement` | `Placement` | `'bottom-start'` | Calendar popup placement |
| `openOnFocus` | `boolean` | `true` | Open calendar when input is focused |
| `preset` | `PresetOption[]` | `[]` | Preset date options (shows list before calendar) |
| `openCalendarOptionName` | `string` | `'Custom Date'` / `'Custom Dates'` | Label for the "open calendar" option in preset list |
| `icon` | `ReactElement` | `<CalendarIcon />` | Icon for the calendar button |
| `theme` | `DateInputTheme` | — | Per-instance theme override |
## Single Date
```tsx
const [date, setDate] = useState(new Date());
<DateInput value={date} onChange={setDate} />
```
## Date Range
```tsx
const [range, setRange] = useState<[Date, Date]>([startDate, endDate]);
<DateInput value={range} isRange onChange={setRange} />
```
## With Presets
```tsx
const presets: PresetOption[] = [
{ label: 'Today', value: new Date() },
{ label: 'Last 7 days', value: () => [subDays(new Date(), 7), new Date()] }
];
<DateInput value={date} preset={presets} onChange={setDate} />
```
When presets are provided, a list of options is shown first. Selecting "Custom Date" opens the full calendar.
## Custom Format
```tsx
<DateInput value={date} format="yyyy-MM-dd" onChange={setDate} />
```
The input placeholder automatically shows the format in uppercase (e.g. `MM/DD/YYYY`). Users can type dates directly — the input parses them using the format string.
No comments yet. Be the first to comment!
End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches.
Orchestrate multi-phase deep research with web search, memory retrieval, pattern matching, and synthesis into structured findings
Persistent memory systems for LLM conversations including short-term, long-term, and entity-based memory Use when: conversation memory, remember, memory persistence, long-term memory, chat history.
CodeTour `.tour`ファイルを作成 — ペルソナターゲット、ステップバイステップウォークスルー(実際のファイルとラインアンカー付き)。オンボーディングツアー、アーキテクチャウォークスルー、PRツアー、RCAツアー、構造化「これがどのように機能するかを説明」リクエストに使用。
KMPプロジェクト向けのCompose MultiplatformおよびJetpack Composeパターン — 状態管理、ナビゲーション、テーマ設定、パフォーマンス、プラットフォーム固有のUI。