Problem
The registry has no audio or media-player component, so any property with audio
content (podcasts, embedded clips) hand-rolls play/pause, scrubbing, duration,
and transcript UI — including the a11y that's easy to get wrong. Consumers import
components and override via props/className; there's nothing to import here.
Proposal
An accessible AudioPlayer: play/pause, seek/scrub, elapsed + duration
(tabular-nums), optional transcript toggle, optional playback-rate. Token-driven
colors, lucide-react icons, full keyboard support, aria-* on the scrubber,
respects prefers-reduced-motion.
Acceptance
Problem
The registry has no audio or media-player component, so any property with audio
content (podcasts, embedded clips) hand-rolls play/pause, scrubbing, duration,
and transcript UI — including the a11y that's easy to get wrong. Consumers import
components and override via props/
className; there's nothing to import here.Proposal
An accessible
AudioPlayer: play/pause, seek/scrub, elapsed + duration(
tabular-nums), optional transcript toggle, optional playback-rate. Token-drivencolors,
lucide-reacticons, full keyboard support,aria-*on the scrubber,respects
prefers-reduced-motion.Acceptance
aria-valuenow/aria-valuetexton the scrubber