<!-- GENERATED by scripts/build-llms.mjs from llms/conversation.md — do not edit this file. -->

# `lr-handoff-divider`

- **Import** `import '@aceshooting/lyra-ui/components/lr-handoff-divider.js';` (stable tag alias; registers the tag)
- **Class** `LyraHandoffDivider`, also available unregistered from `@aceshooting/lyra-ui/components/conversation/handoff-divider/handoff-divider.class.js`
- **Family** `components/conversation/` — see `llms/index.md` for its siblings
- **Status** `stable` since `4.0.0` — see the maturity and deprecation policy in `llms/shared.md`
- **Release history** [CHANGELOG.md](../../CHANGELOG.md); family-wide breaking-change summaries: [llms-full.txt](../../llms-full.txt)
- **Deprecations** none
- **Optional peers** none
- **Themeable via** 5 parts, 0 custom properties — see this component's own `@csspart`/`@cssprop` list below
- **Library-wide behavior** (events, form association, `locale`/`strings`, tokens, TS types): `llms/shared.md`

---

## `lr-handoff-divider`

A labeled semantic separator marking control transfer between agents in a transcript ("Transferred
to Research Agent"), with an optional agent avatar. Purely presentational: no events, no
interactivity, no restore semantics. The computed label is announced once, on first connect,
through an internal `<lr-live-region>`.

**Properties:** `toAgent: string = ''` (attribute `to-agent`), `fromAgent: string = ''` (attribute
`from-agent`), and `label: string = ''`. With both agent names the localized text is “Transferred
from {from} to {to}”; `label` overrides it. An explicit host `aria-label`, including an empty one,
wins for the separator and mount-time announcement.

**Slots:** `avatar` — the incoming agent's `<lr-avatar>` (or icon), hidden entirely while empty.

**CSS parts:** `base` (the separator root, `role="separator"`), `line` (each of the two flanking
rules), `chip` (the visual `aria-hidden` chip wrapping the avatar and label), `avatar` (wrapper
around the `avatar` slot, only shown while the slot has content), and `label`.
