> ## Documentation Index
> Fetch the complete documentation index at: https://smithers.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Reasoning

> Render a streaming-aware disclosure for model reasoning content.

`Reasoning` holds thinking or extended-reasoning content without coupling the
UI package to Markdown; pass `Markdown` or another renderer as children for
Markdown content.

```tsx theme={"theme":{"light":"github-light","dark":"github-dark"}}
import { Markdown, Reasoning } from "smithers-orchestrator/ui";

<Reasoning streaming={isStreaming} duration={72}>
  <Markdown content={reasoningText} />
</Reasoning>
```

## Props

| Prop           | Type                      | Default      | Purpose                                                                            |
| -------------- | ------------------------- | ------------ | ---------------------------------------------------------------------------------- |
| `streaming`    | `boolean`                 | `false`      | Shimmers the title and auto-toggles open/close until the user toggles it manually. |
| `open`         | `boolean`                 | uncontrolled | Controls the disclosure.                                                           |
| `defaultOpen`  | `boolean`                 | `streaming`  | Sets the initial uncontrolled state.                                               |
| `onOpenChange` | `(open: boolean) => void` | none         | Receives user toggles and automatic streaming transitions.                         |
| `duration`     | `number`                  | none         | Renders elapsed seconds as `Thought for Ns` or `Mm SSs` after streaming.           |
| `title`        | `string`                  | `Reasoning`  | Header text.                                                                       |

Uncontrolled mode: a streaming transition opens or closes the block until the
first user toggle. Controlled mode never changes itself.
