[LocalMode] A press-to-record / release-to-transcribe push-to-talk button with an explicit visual state machine: idle -> recording (pulse rings + live waveform) -> processing (loader) -> success/error. Recording uses getUserMedia/MediaRecorder (useVoiceRecorder); transcription routes to local Whisper (useTransc
pnpm dlx shadcn@latest add "https://registry.directory/r/localmode-ai/ui/audio/voice-button.json"