# AI composer

A focused assistant thread where messages lift out of the composer and replies stream in.

Integration notes: The original component retains its sample conversation and simulated replies. onSend delivers the outgoing message; the current API does not accept a controlled conversation or external assistant reply. Treat it as a composer interaction example, not a connected AI backend.

- ID: `ai-composer`
- Import: `animui/ai-composer`
- Category: block
- Runtime exports: `AiComposer`
- Declaration: `types/pro/ai-composer.d.ts`
- Type provenance: reconstructed-from-docs-and-runtime
- Related: text-shimmer, support-conversation, command-palette, copy-button

```tsx
import { AiComposer } from 'animui/ai-composer';
```

This import example is not a complete render recipe: read the declaration below and its local references for required props, data, callbacks and provider context. Use `animui info ai-composer` to resolve the local declaration graph. Global setup is in `llms.txt`.

```ts
/** Reconstructed from saved Arc documentation and runtime binding evidence; original TypeScript source was unavailable. */
import type { ComponentType, ReactNode, CSSProperties, Ref, ButtonHTMLAttributes, HTMLAttributes, ReactElement } from 'react';

export interface AiComposerMessage { text: string; files: string[]; }
export interface AiComposerProps { onSend?: (message: AiComposerMessage) => void; title?: string; subtitle?: string; busy?: boolean; disabled?: boolean; onStop?: () => void; }

export declare const AiComposer: ComponentType<AiComposerProps>;

export default AiComposer;
```
