For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReferenceClick-to-Call
GuidesReferenceClick-to-Call
  • Core
    • Overview
  • Entities
    • SignalWire
    • Address
    • Participant
    • ClientPreferences
    • SelfCapabilities
    • SelfParticipant
    • User
    • WebRTCCall
  • Web Components
    • Overview
    • sw-audio-level
    • sw-call-controls
    • sw-call-dialpad
    • sw-call-media
    • sw-call-provider
    • sw-call-status
    • sw-call-widget
    • sw-click-to-call
    • sw-device-selector
    • sw-directory
    • sw-local-camera
    • sw-participant-controls
    • sw-participants
    • sw-self-media
    • sw-ui-alert
    • sw-ui-background
    • sw-ui-call-layout
    • sw-ui-content-drawer
    • sw-ui-control-bar
    • sw-ui-dialpad
    • sw-ui-dropup
    • sw-ui-icon
    • sw-ui-modal
    • sw-ui-responsive-container
    • sw-ui-split-button
    • sw-ui-transcript-view
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • class: SwParticipants, sw-participants
  • Fields
  • call
  • Attributes
  • Slots
  • Events
Web Components

sw-participants

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

sw-self-media

Next
Built with

Renders one absolutely-positioned overlay tile per remote participant in the MCU layout, plus per-participant menu hooks.

1<sw-call-provider token="YOUR_GUEST_TOKEN">
2 <sw-call-media>
3 <sw-participants></sw-participants>
4 </sw-call-media>
5</sw-call-provider>

Subscribes to call.layoutLayers$ and call.participants$ and renders a <div> for each layer whose member_id matches a remote participant (the local user is excluded — use <sw-self-media> 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 <sw-participant-controls> (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 <sw-participants> outside <sw-call-media> is allowed but usually you want it to overlay the remote video, so it should live inside the default slot of <sw-call-media>.

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

NameFieldInherited From
callcall

Slots

NameDescription
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

NameDetailDescription
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.