| | |
| | | return ( |
| | | <FeatureCard |
| | | icon={ |
| | | <div className='shrink-0 rounded-lg border-[0.5px] border-divider-subtle bg-util-colors-violet-violet-600 p-1 shadow-xs'> |
| | | <TextToAudio className='h-4 w-4 text-text-primary-on-surface' /> |
| | | <div className='shrink-0 p-1 rounded-lg border-[0.5px] border-divider-subtle shadow-xs bg-util-colors-violet-violet-600'> |
| | | <TextToAudio className='w-4 h-4 text-text-primary-on-surface' /> |
| | | </div> |
| | | } |
| | | title={t('appDebug.feature.textToSpeech.title')} |
| | |
| | | > |
| | | <> |
| | | {!features.text2speech?.enabled && ( |
| | | <div className='system-xs-regular line-clamp-2 min-h-8 text-text-tertiary'>{t('appDebug.feature.textToSpeech.description')}</div> |
| | | <div className='min-h-8 text-text-tertiary system-xs-regular line-clamp-2'>{t('appDebug.feature.textToSpeech.description')}</div> |
| | | )} |
| | | {!!features.text2speech?.enabled && ( |
| | | <> |
| | | {!isHovering && !modalOpen && ( |
| | | <div className='flex items-center gap-4 pt-0.5'> |
| | | <div className='pt-0.5 flex items-center gap-4'> |
| | | <div className=''> |
| | | <div className='system-2xs-medium-uppercase mb-0.5 text-text-tertiary'>{t('appDebug.voice.voiceSettings.language')}</div> |
| | | <div className='system-xs-regular text-text-secondary'>{languageInfo?.name || '-'}</div> |
| | | <div className='mb-0.5 text-text-tertiary system-2xs-medium-uppercase'>{t('appDebug.voice.voiceSettings.language')}</div> |
| | | <div className='text-text-secondary system-xs-regular'>{languageInfo?.name || '-'}</div> |
| | | </div> |
| | | <div className='h-[27px] w-px rotate-12 bg-divider-subtle'></div> |
| | | <div className='w-px h-[27px] bg-divider-subtle rotate-12'></div> |
| | | <div className=''> |
| | | <div className='system-2xs-medium-uppercase mb-0.5 text-text-tertiary'>{t('appDebug.voice.voiceSettings.voice')}</div> |
| | | <div className='system-xs-regular text-text-secondary'>{features.text2speech?.voice || t('appDebug.voice.defaultDisplay')}</div> |
| | | <div className='mb-0.5 text-text-tertiary system-2xs-medium-uppercase'>{t('appDebug.voice.voiceSettings.voice')}</div> |
| | | <div className='text-text-secondary system-xs-regular'>{features.text2speech?.voice || t('appDebug.voice.defaultDisplay')}</div> |
| | | </div> |
| | | <div className='h-[27px] w-px rotate-12 bg-divider-subtle'></div> |
| | | <div className='w-px h-[27px] bg-divider-subtle rotate-12'></div> |
| | | <div className=''> |
| | | <div className='system-2xs-medium-uppercase mb-0.5 text-text-tertiary'>{t('appDebug.voice.voiceSettings.autoPlay')}</div> |
| | | <div className='system-xs-regular text-text-secondary'>{features.text2speech?.autoPlay === TtsAutoPlay.enabled ? t('appDebug.voice.voiceSettings.autoPlayEnabled') : t('appDebug.voice.voiceSettings.autoPlayDisabled')}</div> |
| | | <div className='mb-0.5 text-text-tertiary system-2xs-medium-uppercase'>{t('appDebug.voice.voiceSettings.autoPlay')}</div> |
| | | <div className='text-text-secondary system-xs-regular'>{features.text2speech?.autoPlay === TtsAutoPlay.enabled ? t('appDebug.voice.voiceSettings.autoPlayEnabled') : t('appDebug.voice.voiceSettings.autoPlayDisabled')}</div> |
| | | </div> |
| | | </div> |
| | | )} |
| | | {(isHovering || modalOpen) && ( |
| | | <VoiceSettings open={modalOpen && !disabled} onOpen={setModalOpen} onChange={onChange}> |
| | | <Button className='w-full' disabled={disabled}> |
| | | <RiEqualizer2Line className='mr-1 h-4 w-4' /> |
| | | <RiEqualizer2Line className='mr-1 w-4 h-4' /> |
| | | {t('appDebug.voice.voiceSettings.title')} |
| | | </Button> |
| | | </VoiceSettings> |