import React from 'react'; import { UserSettings } from '../types'; import { X, Volume2, Check, Info, Mic2, Settings2 } from 'lucide-react'; import Tooltip from './Tooltip'; import AudioDeviceSelector from './AudioDeviceSelector'; interface SettingsModalProps { settings: UserSettings; onUpdate: (settings: UserSettings) => void; onClose: () => void; } interface VoiceOption { id: UserSettings['voiceName']; label: string; gender: 'Male' | 'Female' | 'Neutral'; style: string; description: string; } const VOICE_OPTIONS: VoiceOption[] = [ { id: 'Zephyr', label: 'Zephyr', gender: 'Neutral', style: 'Helpful', description: 'A balanced, clear, and professional tone suitable for most scenarios.' }, { id: 'Puck', label: 'Puck', gender: 'Male', style: 'Youthful', description: 'Energetic and friendly, ideal for peer-to-peer or informal interactions.' }, { id: 'Kore', label: 'Kore', gender: 'Female', style: 'Calm', description: 'Soothing and professional, perfect for clinical or high-stress roleplay.' }, { id: 'Charon', label: 'Charon', gender: 'Male', style: 'Authoritative', description: 'Deep and commanding, useful for workplace or boundary-testing scenarios.' }, { id: 'Fenrir', label: 'Fenrir', gender: 'Male', style: 'Rugged', description: 'Direct and matter-of-fact tone with a slightly more serious edge.' }, ]; const SettingsModal: React.FC = ({ settings, onUpdate, onClose }) => { return (

Voice & Persona Settings

Configure your AI clinical partner

Vocal Profile

{VOICE_OPTIONS.map((voice) => ( ))}

Hardware Configuration

onUpdate({ ...settings, preferredAudioDeviceId: deviceId })} />

These settings apply to Voice Mode interactions only. Text-based roleplay personas are dynamically generated based on each specific scenario.

); }; export default SettingsModal;