

<Demo name="date-picker/demos/basic" />

## Installation [#installation]

<CodeBlockTabs defaultValue="npm">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="npm">
      npm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="pnpm">
      pnpm
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="yarn">
      yarn
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="bun">
      bun
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="npm">
    ```bash
    npx shadcn@latest add @dotui/date-picker
    ```
  </CodeBlockTab>

  <CodeBlockTab value="pnpm">
    ```bash
    pnpm dlx shadcn@latest add @dotui/date-picker
    ```
  </CodeBlockTab>

  <CodeBlockTab value="yarn">
    ```bash
    yarn dlx shadcn@latest add @dotui/date-picker
    ```
  </CodeBlockTab>

  <CodeBlockTab value="bun">
    ```bash
    bun x shadcn@latest add @dotui/date-picker
    ```
  </CodeBlockTab>
</CodeBlockTabs>

## Usage [#usage]

Use date pickers to allow users to select a date using a field and a calendar popover.

```tsx
import { CalendarIcon } from "lucide-react";

import { Button } from "@/components/ui/button";
import { Calendar } from "@/components/ui/calendar";
import { DatePicker } from "@/components/ui/date-picker";
import { DialogContent } from "@/components/ui/dialog";
import { Label } from "@/components/ui/field";
import { DateInput, InputAddon, InputGroup } from "@/components/ui/input";
import { Overlay } from "@/components/ui/overlay";
```

```tsx
<DatePicker>
	<Label>Date</Label>
	<InputGroup>
		<DateInput />
		<InputAddon>
			<Button variant="default" size="sm" isIconOnly>
				<CalendarIcon />
			</Button>
		</InputAddon>
	</InputGroup>
	<Overlay type="popover" mobileType="drawer">
		<DialogContent>
			<Calendar />
		</DialogContent>
	</Overlay>
</DatePicker>
```

## Examples [#examples]

<Examples>
  <Example name="date-picker/demos/basic" />

  <Example name="date-picker/demos/label" />

  <Example name="date-picker/demos/description" />

  <Example name="date-picker/demos/error-message" />

  <Example name="date-picker/demos/placeholder" />

  <Example name="date-picker/demos/granularity" />

  <Example name="date-picker/demos/hour-cycle" />

  <Example name="date-picker/demos/time-zones" />

  <Example name="date-picker/demos/hide-time-zone" />

  <Example name="date-picker/demos/disabled" />

  <Example name="date-picker/demos/read-only" />

  <Example name="date-picker/demos/required" />

  <Example name="date-picker/demos/composition" />

  <Example name="date-picker/demos/uncontrolled" />

  <Example name="date-picker/demos/controlled" />
</Examples>

## API Reference [#api-reference]

### DatePicker [#datepicker]

<Reference name="date-picker" />

### DateRangePicker [#daterangepicker]

<Reference name="date-range-picker" />
