Usage
@prepared911/ui/blocks/control-island from its subpath. Load @prepared911/ui/styles.css once at the document root.roles the person may use; the island renders an Expanding ButtonGroup with per-role content.raiseHandIcon while the hand is down and raisedHandIcon while it is raised. The design pairs the outlined hand (hand-alt-outlined) with the filled hand (hand-alt-filled); leave raisedHandIcon out to keep one glyph in both states.roles. The island renders one Expanding ButtonGroup; operator content opens beside the selected role segment.role ?? defaultRole ?? roles[0].role. One role still renders expanded. Several roles share one Expanding ButtonGroup with accent fill on the selected segment.availability on Call taker to hide the status pill. Choosable statuses are Ready and Not Ready (radio menu); On Break stays in the enum but its row is commented out until the backend set changes. On Call, Ringing and Wrap Up are host-driven, static, and not in the tab order. Hosts map the station statuses Dialing and Busy to ControlIslandStatus.OnCall, so they render as the On Call pill; the enum has no Dialing or Busy member. Ready uses cool green; Not Ready uses the transient surface; On Call and Wrap Up use dusty red; Ringing uses cobalt with a one-time ringingAnnouncement.showStatusIcons={false} to hide the lead glyphs, for agencies that configure their own statuses.statusItems[ControlIslandStatus.WrapUp] and set status to WrapUp: the pill counts down from wrapUpSeconds (default 15) with the design system's odometer, and goes instant under reduced motion. At 00:00 the island calls onStatusChange(Ready, details) once with ChangeReason.Ended. Set Ready in that handler, or call details.cancel() to stay in Wrap Up.aria-pressed, controlled or uncontrolled via raisedHand / defaultRaisedHand.onStatusChange cannot overwrite them, and the person's last choice returns when the call ends.status and raisedHand to let the island hold the value, and pass defaultStatus or defaultRaisedHand for the first value (Ready and lowered by default).usage.md for the size table.NavbarStart after the brand. See Composition stories for full-header examples.