<!-- source-hash: bde5cd5df57a305212c78a5d9d2b8add -->
A **deprecated** modal dialog component set providing accessible overlay UI primitives. All exports are superseded by `ModalV2` from `./modal-v2`.

> ⚠️ **Deprecated** — Migrate to `ModalV2` and its sub-components from `./modal-v2`.

## Key Components

| Export | Description |
|--------|-------------|
| `Modal` | Root overlay container; handles `Escape` key, backdrop click, and scroll locking |
| `ModalContent` | Scrollable body area (`overflow-y-auto`) |
| `ModalHeader` | Top section with bottom border, fixed height |
| `ModalTitle` | Styled `<h2>` heading within the header |
| `ModalFooter` | Bottom action bar, right-aligned with gap |

All components use `React.forwardRef` and accept an optional `className` for Tailwind overrides via `cn()`.

## Usage Example

```typescript
import { Modal, ModalContent, ModalHeader, ModalTitle, ModalFooter } from "./modal"

function ExampleDialog({ open, onClose }: { open: boolean; onClose: () => void }) {
  return (
    <Modal isOpen={open} onClose={onClose}>
      <ModalHeader>
        <ModalTitle>Confirm Action</ModalTitle>
      </ModalHeader>
      <ModalContent className="px-6 py-4">
        <p>Are you sure you want to proceed?</p>
      </ModalContent>
      <ModalFooter>
        <button onClick={onClose}>Cancel</button>
        <button onClick={onClose}>Confirm</button>
      </ModalFooter>
    </Modal>
  )
}
```

## Behavior Notes

- Backdrop click and `Escape` key both trigger `onClose`
- `document.body` scroll is blocked (`overflow: hidden`) while modal is open and restored on close/unmount
- Renders at `z-index: 1300` using a fixed full-screen overlay