---
## Chat
Thin full-height layout shell for a chat surface: an optional pinned
`header` (border-b), the scrollable conversation area as `children` (the consumer
drops a ChatMessageList here — the shell itself never scrolls, the body child does),
and an optional pinned `composer` at the bottom (border-t, e.g. PromptInput). No
state, no context, no provider — pure structure with `min-h-0` flex discipline so it
fills its parent and hands scrolling to its body.
**Import:** `import { Chat } from '@urbicon-ui/blocks';`
### Examples
```svelte
{#snippet header()}…{/snippet}
{#snippet composer()}{/snippet}
```
### Api
| Prop | Type | Required | Default | Description |
| --- | --- | :---: | --- | --- |
| ...ChatVariants | `VariantProps` | no | | Styling variants from ChatVariants |
| ...HTMLAttributes | `HTMLAttributes` | no | | HTML attributes (excluding: 'children' | 'class') |
| children | `Snippet` | no | | The scrollable conversation area — typically a ChatMessageList. |
| class | `string` | no | | Extra classes merged onto the root element. |
| composer | `Snippet` | no | | Optional pinned composer rendered below the conversation (border-t) — e.g. PromptInput. |
| header | `Snippet` | no | | Optional pinned header rendered above the conversation (border-b). |
| preset | `string` | no | | Apply a named preset registered via ``. Prefer this over `class` overrides for reusable custom looks. |
| slotClasses | `Partial>` | no | | Per-slot class overrides. Slots: root | header | body | composer |
| unstyled | `boolean` | no | | Remove all default tv classes. |
Inherited from:
- ChatVariants (external)
- Omit, 'children' | 'class'> (omit-pattern)