The number of agents in the room: the agent-vision button speaks of "agents" when there is more than one.
Whether the user lets agents see their camera and shared screen.
When true, the leave button becomes a Zoom/Teams-style split that opens a menu offering Leave
(you disconnect, the meeting continues) vs. End meeting for everyone (the host tears it down).
When false (default), the button is a plain Leave — the parent decides whether ending-for-all is
even possible (this generic component knows nothing about agents/MJ; it only emits EndForAll).
Whether the chat panel is currently open (highlights the chat button).
Show the camera toggle.
Show the chat toggle.
Show the device-settings button.
Show the layout-switcher button.
Show the leave button.
Show the microphone toggle.
Show the participants toggle.
Show the recording toggle (server-authorized; the host wires the actual egress call).
Show the screen-share toggle.
Show the Share button's arrow, whose menu asks the browser's picker for an entire screen, a window or a browser tab first. Off by default: a host that turns it on handles ScreenShareRequested.
Show the whiteboard toggle.
The user chose "End meeting for everyone" from the split-leave menu (only reachable when CanEndForAll).
Whether a recording is currently in progress.
The user clicked leave (they disconnect; any meeting continues for everyone else).
Whether the Zoom-style leave menu (Leave vs. End for everyone) is open.
The current local-media toggle state, to render the mic/cam/screen button states.
The user clicked the device-settings button.
The user picked one of SharePanels under "This panel": the panel's key.
Participant count, shown as a badge on the participants button.
Whether the participants panel is currently open.
The user picked, from the Share menu, the kind of surface the browser's picker should offer first.
Panels of the page the user can share on their own, offered in the Share menu under "This panel" (with the menu on). With none, "This panel" is left out. A host that lists some handles PanelShareRequested.
Show the "Let the agent see me" button: an agent in the room watches.
The user asked to let agents see their camera and screen (true) or to stop (false).
The user clicked the camera toggle.
The user clicked the chat toggle.
The user clicked the layout-switcher button.
The user clicked the microphone toggle.
The user clicked the participants toggle.
The user clicked the recording toggle.
The user clicked the screen-share toggle.
The user clicked the whiteboard toggle.
Unread chat message count, shown as a badge on the chat button.
Whether the whiteboard surface is currently active.
The chat button's name, with the unread count its badge shows.
The participants button's name, with the count its badge shows.
Hands a Share request on: a panel picked under "This panel" as PanelShareRequested, a kind of surface picked from the menu as ScreenShareRequested, the main button's request (no preference) as ToggleScreenShare.
The room control bar: the microphone, camera and Share buttons (
mj-media-controls), then layout, device settings, chat, participants, whiteboard, recording and leave, all roundmjButtons. Every control is individually gated by an@Input; the bar only emits intent — the host component drives the LiveKitRoomController.