> 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-participant-controls Per-participant action panel — mute / unmute audio & video, adjust volume, pin / unpin, and remove a single participant from the call. ```html ``` Identifies the target participant from the `participant-id` attribute by looking it up in `callState.participants` (or in the live `Call` when `.call` is set). Available actions are gated by the call's `capabilities` list — for instance, "Remove" only renders when the server has granted the `end_member` (or equivalent) capability to the local user, and audio/video mute toggles require `member_mute` / etc. Designed to be slotted into ``'s `controls-${memberId}` named slot, but it works standalone anywhere you have a `participant-id`. Input precedence (most specific wins): **`.call` > context**. *Class: `SwParticipantControls` · Module: `packages/web-components/src/components/sw-participant-controls.ts`* ## class: `SwParticipantControls`, `sw-participant-controls` ### Fields **`participantId`** `string` — default: '' `participantId` field. --- **`showVolume`** `boolean` — default: false `showVolume` field. --- **`showPin`** `boolean` — default: false `showPin` field. --- **`call`** `Call | undefined` Explicit Call — when set, subscribes directly and bypasses context. --- ### Attributes | Name | Field | Inherited From | | ---------------- | ------------- | -------------- | | `participant-id` | participantId | | | `show-volume` | showVolume | | | `show-pin` | showPin | | | `call` | call | | ### CSS Properties | Name | Default | Description | | ---------------------------------------- | ------- | -------------------------------------------- | | `--bg-page` | | Panel background. | | `--bg-surface` | | Hover background for action buttons. | | `--bg-surface-raised` | | Active/pressed button background. | | `--fg-default` | | Foreground text & icon color. | | `--border-default` | | Border between sections. | | `--radius-md` | | Panel border radius. | | `--shadow-md` | | Panel drop shadow. | | `--type-family-body` | | Body font family. | | `--type-size-small` | | Body font size. | | `--interactive-button-destructive-bg` | | Background for the "Remove" button. | | `--interactive-button-destructive-hover` | | Hover background for "Remove". | | `--transition-fast` | | Transition duration for hover/active states. | ### Events | Name | Detail | Description | | ------------------------------ | ------ | ------------------------- | | `sw-participant-mute-audio` | — | Audio mute toggled. | | `sw-participant-mute-video` | — | Video mute toggled. | | `sw-participant-pin-toggle` | — | Pin / unpin clicked. | | `sw-participant-remove` | — | Remove-from-call clicked. | | `sw-participant-volume-change` | — | Volume slider released. | ---