/** * TranscriptDisplay.jsx * Shows the live and final transcription output. * * During streaming: * - `stable` text is rendered normally * - `unstable` text is rendered dimmed/italic (LocalAgreement-2 unconfirmed prefix) * * Props: * stable {string} – confirmed transcript text * unstable {string} – pending / unconfirmed suffix * loading {bool} – show a spinner while waiting for the first token * mode {string} – 'webgpu' | 'server' */ export default function TranscriptDisplay({ stable, unstable, loading, mode }) { const isEmpty = !stable && !unstable && !loading; return (