> 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-participants Renders one absolutely-positioned overlay tile per remote participant in the MCU layout, plus per-participant menu hooks. ```html ``` Subscribes to `call.layoutLayers$` and `call.participants$` and renders a `
` for each layer whose `member_id` matches a remote participant (the local user is excluded — use `` for that). Each overlay is positioned via percentage `top` / `left` / `width` / `height`, so it tracks the MCU layout exactly as the renderer sees it. Each tile also exposes a small "⋯" menu trigger in its top-left corner. Clicking it opens a popover whose content is provided by a **named slot** keyed on the participant's id: `controls-${memberId}`. Drop a `` (or any UI of your choosing) into that slot to expose mute / volume / pin / remove actions for that participant only. Input precedence (most specific wins): **`.call` > context**. Mounting `` outside `` is allowed but usually you want it to overlay the remote video, so it should live inside the default slot of ``. *Class: `SwParticipants` · Module: `packages/web-components/src/components/sw-participants.ts`* ## class: `SwParticipants`, `sw-participants` ### Fields **`call`** `Call | undefined` Explicit Call — when set, subscribes directly and bypasses context. --- ### Attributes | Name | Field | Inherited From | | ------ | ----- | -------------- | | `call` | call | | ### Slots | Name | Description | | --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | | Default slot for any overlay content rendered above the tiles. | | `controls-{memberId}` | Replace \`\{memberId}\` with a participant's \`member\_id\` to inject the popover content shown when that participant's "⋯" trigger is clicked. | ### Events | Name | Detail | Description | | --------------------------- | ------ | ----------------------------------------- | | `sw-participant-mute-audio` | — | User muted/unmuted a participant's audio. | | `sw-participant-mute-video` | — | User muted/unmuted a participant's video. | | `sw-participant-remove` | — | User removed a participant from the call. | ---