> 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-content-drawer Slide-in drawer that displays rich content the agent pushed mid-call (a snippet, a markdown article, a sanitized HTML fragment, or plain text) without leaving the call view. ```html

Article

Rich content pushed from the agent appears here.

``` Used by `` to render `display_content` user events from the AI agent. The drawer auto-orients itself to the available space: * **Wide containers** — slides in from the right at \~360 px wide. * **Narrow containers** (parent ≤ 480 px) — slides up from the bottom at \~50 % container height for better mobile ergonomics. Four content formats are supported, each with appropriate sanitisation: * `text` — rendered verbatim with whitespace preserved. * `markdown` — parsed via `marked`, sanitised via DOMPurify with a strict tag/attribute allowlist; `target="_blank"` links are rewritten with `rel="noopener noreferrer"`. * `code` — highlighted via Prism; the language must be supplied in `payload.language` and is loaded lazily. * `html` — passed through DOMPurify with the same allowlist as markdown. *Class: `SwUiContentDrawer` · Module: `packages/web-components/src/components/UI/layout/sw-ui-content-drawer.ts`* ## class: `SwUiContentDrawer`, `sw-ui-content-drawer` ### Fields **`open`** `boolean` — default: false `open` field. --- **`narrow`** `boolean` — default: false `narrow` field. --- **`title`** `string` — default: '' `title` field. --- **`content`** `string` — default: '' `content` field. --- **`format`** `ContentFormat` — default: 'text' `format` field. --- **`language`** `string` — default: '' `language` field. --- ### Attributes | Name | Field | Inherited From | | ---------- | -------- | -------------- | | `open` | open | | | `narrow` | narrow | | | `title` | title | | | `content` | content | | | `format` | format | | | `language` | language | | ### CSS Properties | Name | Default | Description | | -------------------- | ------- | ------------------------------------------------ | | `--bg-page` | | Drawer background. | | `--fg-default` | | Primary text color. | | `--border-default` | | Header divider color. | | `--shadow-md` | | Drawer drop shadow. | | `--radius-md` | | Drawer corner rounding (only the visible edges). | | `--type-family-body` | | Body font family. | | `--type-size-small` | | Body font size. | ### CSS Parts | Name | Description | | ----------- | ------------------------------------- | | `container` | Outer drawer container. | | `header` | Sticky header (title + close button). | | `title` | Title heading. | | `close` | Close-button anchor. | | `body` | Scrollable content body. | ### Events | Name | Detail | Description | | ------------------------- | ------ | ----------------------------------------- | | `sw-content-drawer-close` | — | User clicked the close button. No detail. | ---