

<InteractiveDemo
  name="dialog"
  engine="source"
  controls="[
  	{
  		type: &#x22;string&#x22;,
  		name: &#x22;title&#x22;,
  		defaultValue: &#x22;Dialog Title&#x22;,
  	},
  	{
  		type: &#x22;string&#x22;,
  		name: &#x22;description&#x22;,
  		defaultValue: &#x22;This is a dialog description.&#x22;,
  	},
  	{
  		type: &#x22;boolean&#x22;,
  		name: &#x22;isDismissable&#x22;,
  		defaultValue: true,
  	},
  ]"
/>

## 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/dialog
    ```
  </CodeBlockTab>

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

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

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

## Usage [#usage]

Use dialog to grab the user's attention for critical tasks, like confirming actions, providing additional details, or capturing input.

```tsx
import { Button } from "@/components/ui/button";
import {
	Dialog,
	DialogBody,
	DialogContent,
	DialogDescription,
	DialogFooter,
	DialogHeader,
	DialogTitle,
} from "@/components/ui/dialog";
import { Overlay } from "@/components/ui/overlay";
```

```tsx
<Dialog>
	<Button>Open dialog</Button>
	<Overlay>
		<DialogContent>
			<DialogHeader>
				<DialogTitle>Dialog Title</DialogTitle>
				<DialogDescription>Dialog description</DialogDescription>
			</DialogHeader>
			<DialogBody>Content</DialogBody>
			<DialogFooter>
				<Button slot="close">Close</Button>
			</DialogFooter>
		</DialogContent>
	</Overlay>
</Dialog>
```

## Examples [#examples]

<Examples>
  <Example name="dialog/demos/basic" />

  <Example name="dialog/demos/title" />

  <Example name="dialog/demos/description" />

  <Example name="dialog/demos/types" />

  <Example name="dialog/demos/dismissable" />

  <Example name="dialog/demos/alert-dialog" />

  <Example name="dialog/demos/composition" />

  <Example name="dialog/demos/controlled" />

  <Example name="dialog/demos/nested" />

  <Example name="dialog/demos/inset-content" />

  <Example name="dialog/demos/async-form-submission" />
</Examples>

## API Reference [#api-reference]

### Dialog [#dialog]

<Reference name="dialog" />

### DialogContent [#dialogcontent]

<Reference name="dialog-content" />

### DialogHeader [#dialogheader]

<Reference name="dialog-header" />

### DialogTitle [#dialogtitle]

<Reference name="dialog-heading" />

### DialogDescription [#dialogdescription]

<Reference name="dialog-description" />

### DialogBody [#dialogbody]

<Reference name="dialog-body" />

### DialogFooter [#dialogfooter]

<Reference name="dialog-footer" />
