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

# Sources

> Attribute a response with a collapsible text-only source list.

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

<Sources
  sources={[
    { id: "docs", label: "Smithers UI reference", href: "/reference/ui" },
    { id: "notes", label: "Local research notes" },
  ]}
  onNavigate={(href, event) => router.navigate(href)}
/>
```

The trigger reads `Used N source` or `Used N sources`. The list starts closed
and unmounts while closed. Sources are text-only by design: no favicon
requests.

Scheme-less, `http`, `https`, and `mailto` links are allowed; other schemes
render as plain text and never reach `onNavigate`, which otherwise receives
the sanitized URL after default navigation is prevented.

## Props

| Prop                                  | Type                       | Description                                         |
| ------------------------------------- | -------------------------- | --------------------------------------------------- |
| `sources`                             | `readonly SourceItem[]`    | Items with `id`, `label`, and optional `href`.      |
| `open`, `defaultOpen`, `onOpenChange` | controlled disclosure trio | Controls the source list; `defaultOpen` is `false`. |
| `onNavigate`                          | `(href, event) => void`    | Intercepts safe source-link navigation.             |

**Source**: `packages/ui/src/agentic/Sources.tsx`

**Tests**: `packages/ui/tests/sources.test.tsx`
