MicButton
Round microphone button for the composer toolbar. It never touches the microphone: you record, and you move state through idle, requesting, listening, processing, error and unsupported. onToggle is called on click in idle, requesting, listening and error; processing and unsupported ignore clicks. While listening, level from 0 to 1 scales a ring around the button through a CSS variable, so only the button re-renders; under prefers-reduced-motion the ring stays still at the size of the button. The button keeps one accessible name, labels.dictation, and reports listening through aria-pressed and waiting through aria-busy; in requesting, processing, error and unsupported the state, or the error text, is also its accessible description. A tooltip names the state for pointer users.
$pnpm add @sinups/ai-kit @mantine/core @mantine/hooks @tabler/icons-react