Track player arrival and waiver readiness before first pitch.
Roster check-in
Backyard Bombers
1 / 4 ready
PlayerArrivedWaiver
Riley Chen
#7
Marcus Hill
#12
Eli Brooks
#4
Noah Patel
#21
A small registration-desk surface for the two questions that slow down first pitch: is the player here, and is the waiver complete? A player counts as ready only when both are true.
Install#
npx shadcn@latest add https://benhof.ai/r/roster-check-in.json
import { RosterCheckIn } from "@/components/roster-check-in"
;<RosterCheckIn
team="Backyard Bombers"
players={players}
onPlayerChange={(id, changes) => updatePlayer(id, changes)}
/>
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
team | string | - | Team label in the header. |
players | RosterCheckInPlayer[] | - | Controlled roster with arrival and waiver booleans. |
onPlayerChange | (id, changes) => void | - | Handles one status change. Omit for a read-only board. |
Status controls use pressed-button semantics, keyboard focus rings, and a polite ready-count announcement for assistive technology.