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
Record<ControlIslandStatus, { label; icon }>
required
statusMenuLabel
LocalizedMessage
required
statusMenuIcon
Glyph
required
ringingAnnouncement
LocalizedMessage
required
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.