> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # sw-ui-transcript-view Chat-bubble timeline that renders an array of `TranscriptEntry` items, each tagged as user / agent / system with optional rich content. ```html ``` Designed to live inside ``'s `transcript` slot or `` body. The view auto-scrolls to the latest entry, distinguishes "partial" (in-progress) entries with a subtle pulse, and renders rich `meta` payloads: * **Links** — clickable anchors injected as a footer beneath the bubble. * **Code** — Prism-highlighted snippet (language is loaded lazily). * **Display content** — content the agent pushed via a `display_content` user event; preserved verbatim so the download button can serialise the full payload back to markdown. The header includes a download icon that exports the entire transcript as a `.md` file via `transcriptToMarkdown()` so users can save the conversation. *Class: `SwUiTranscriptView` · Module: `packages/web-components/src/components/UI/sw-ui-transcript-view.ts`* ## class: `SwUiTranscriptView`, `sw-ui-transcript-view` ### Fields **`entries`** `TranscriptEntry[]` — default: \[] `entries` field. --- **`header`** `string` — default: 'Transcript' `header` field. --- **`emptyText`** `string` — default: '' `emptyText` field. --- ### Attributes | Name | Field | Inherited From | | ------------ | --------- | -------------- | | `header` | header | | | `empty-text` | emptyText | | ### CSS Properties | Name | Default | Description | | --------------------- | ------- | ---------------------------------------------- | | `--bg-page` | | Background of the transcript surface. | | `--bg-surface` | | Background of agent/system bubbles. | | `--bg-surface-raised` | | Background of user bubbles. | | `--fg-default` | | Primary text color. | | `--border-default` | | Header divider and bubble borders. | | `--type-family-body` | | Body font family. | | `--type-size-small` | | Body font size. | | `--transition-fast` | | Transition duration for hover / state changes. | ### CSS Parts | Name | Description | | --------------- | ------------------------------------------------------- | | `container` | Outer flex column. | | `header` | Sticky header row with the download button. | | `download-btn` | The download icon button. | | `entries` | Scrollable container for transcript bubbles. | | `entry` | One transcript entry bubble. | | `entry-user` | Entry bubble when from the user. | | `entry-agent` | Entry bubble when from the agent. | | `entry-system` | Entry bubble when from system events. | | `entry-partial` | Bubble while still streaming (\`state === 'partial'\`). | ### Events | Name | Detail | Description | | ------------------------ | ------ | --------------------------------- | | `sw-transcript-download` | — | User clicked the download button. | ---