Import ControlIsland, ControlIslandRole, and ControlIslandStatus from @prepared911/ui/blocks/control-island.
Prop
Type
Default
label
LocalizedMessage
required
roles
readonly ControlIslandRoleItem[]
required
role
ControlIslandRole
—
defaultRole
ControlIslandRole
first role
onRoleChange
(role, details) => void
—
raiseHandIcon
Glyph
required
raisedHandIcon
Glyph
raiseHandIcon
raiseHandLabel
LocalizedMessage
required
raisedHand
boolean
—
defaultRaisedHand
boolean
false
onRaisedHandChange
(raised, details) => void
—
availability
ControlIslandAvailability
—
size
ButtonSize
Medium
className
string
—
id
string
—
ref
Ref<HTMLDivElement>
—
Component
Prop
Type
Default
label
LocalizedMessage
required
roles
readonly ControlIslandRoleItem[]
required
role
ControlIslandRole
uncontrolled
defaultRole
ControlIslandRole
none
onRoleChange
(role, details) => void
none
raiseHandIcon
Glyph
required
raiseHandLabel
LocalizedMessage
required
raisedHand
boolean
uncontrolled
defaultRaisedHand
boolean
false
onRaisedHandChange
(raised, details) => void
none
availability
ControlIslandAvailability
none
size
ButtonSize
Medium
ControlIslandRoleItem: role, icon, label, optional queueLabel (Call taker and Dispatcher).
ControlIslandAvailability
Field
Type
Default
status
ControlIslandStatus
Ready when uncontrolled
defaultStatus
ControlIslandStatus
Ready
onStatusChange
(ControlIslandChoosableStatus, details) => void
none
statusItems
ControlIslandStatusItems (WrapUp and icon optional)
required
showStatusIcons
boolean
true
wrapUpSeconds
number (1 to 59)
15
statusMenuLabel
LocalizedMessage
required
statusMenuIcon
Glyph
required
ringingAnnouncement
LocalizedMessage
required
Dialing and Busy have no member: hosts map those station statuses to on-call.
ControlIslandChoosableStatus is ready, on-break, or not-ready only.
Development
Block sources live under packages/ui/src/blocks/control-island/. After .tw.css edits run pnpm tw:build and pnpm css:types in packages/ui. Unit, browser, and Storybook tests are listed in development.md in the same folder.