# TypedTerminal

> An animated terminal that proves "you write this, it does that": a short spec or command types itself out line by line, then its output prints, holds, and the loop restarts.

```ts
import { TypedTerminal } from "@sdxc/ui/landing";
```

Renders the session as one `<pre>` in the terminal panel, with its pause toggle in the
panel's title bar, centred against the title.
Every line's full text is in the markup from the start, clipped only visually while it
types, so screen readers and copy read the whole session and reduced motion shows it done.

## Examples

```tsx
<TypedTerminal
	aria-label="A sign-in spec and its run"
	title="sign-in.spec"
	lines={[
		{ kind: "input", text: 'visit "/login"' },
		{ kind: "output", text: "✓ 1 step · 0.4s", status: "ok" },
	]}
/>
```

## Props

| Prop | Type | Description |
| --- | --- | --- |
| `"aria-label"` | `string` | Accessible name of the session's figure. Required — the library ships no copy. |
| `pauseLabel?` | `string` | Accessible name of the pause toggle. |
| `title?` | `RemixNode` | Window title, such as a file name or a shell. |
| `prompt?` | `string` | Glyph before every input line, such as `$`; omit it for editor-style lines. |
| `lines` | `readonly Line[]` | The session, in the order it plays. |

Also accepts everything in `Omit<TagProps<"div">, "children" | "title">`.


## Types

| Name | Values | What it decides |
| --- | --- | --- |
| `Status` | `"ok" \| "fail" \| "muted"` | Ink an output line prints in: a pass, a failure, or a quiet aside. |
