Raleigh Athletic
U15
VS.
Charlotte FC
U15
9:00 AM
Dix Park Fields — Field 1
Day-view fixture list. Filter bar (date picker + club dropdown + age pills) drives a single grid of MatchCards. Defaults to the upcoming Saturday.
Pick a different date and the grid re-renders. Club and age narrow further; the date always stays selected.
Home crest + name, kickoff, away crest + name. Footer shows field + competition + age. Stacks single-column below 640px.
Renders inside the calendar area when the filter set yields zero matches.
No matches on that date.
Try loosening a filter — or reset all of them.
| Prop | Type | Default | Description |
|---|---|---|---|
kickoff | string | — | ISO datetime string. Rendered as 12-hour local + day label. |
home | CalendarClub | — | Home team — { id, name, conference, logoUrl }. |
away | CalendarClub | — | Away team — same shape as home. |
field | string | — | Field / venue label — trimmed with ellipsis if it overflows. |
competition | "Premiership" | "Cup" | "Development" | — | Drives the pill color. |
ageGroup | "U13" | "U14" | "U15" | "U16" | "U17" | "U19" | — | Age-group pill. |
notes | string | — | Optional italic note — semifinal, extra time, etc. |
| Prop | Type | Default | Description |
|---|---|---|---|
clubs | CalendarClub[] | — | All clubs — populates the Club dropdown. |
value | LeagueCalendarFilterValue | — | Controlled — { date, clubId, ageGroup }. `date` is YYYY-MM-DD; always populated. |
onChange | (next) => void | — | Called on every filter change. Parent owns the state. |