@umituz/react-native-ai-generation-content 1.26.2 → 1.26.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/domains/generation/application/feature-registry.ts +101 -0
- package/src/domains/generation/application/generation-strategy.factory.ts +128 -0
- package/src/domains/generation/domain/feature-config.types.ts +61 -0
- package/src/domains/generation/domain/generation.types.ts +74 -0
- package/src/domains/generation/index.ts +37 -0
- package/src/domains/generation/presentation/useAIGeneration.hook.ts +106 -0
- package/src/domains/wizard/infrastructure/strategies/wizard-strategy.factory.ts +3 -4
- package/src/index.ts +1 -25
- package/src/infrastructure/executors/executor-factory.ts +53 -0
- package/src/infrastructure/executors/image-executor.ts +133 -0
- package/src/infrastructure/executors/video-executor.ts +130 -0
- package/src/features/ai-hug/README.md +0 -438
- package/src/features/ai-hug/domain/index.ts +0 -5
- package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
- package/src/features/ai-hug/domain/types/index.ts +0 -7
- package/src/features/ai-hug/index.ts +0 -19
- package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
- package/src/features/ai-hug/presentation/components/index.ts +0 -2
- package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
- package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
- package/src/features/ai-hug/presentation/index.ts +0 -6
- package/src/features/ai-kiss/README.md +0 -445
- package/src/features/ai-kiss/domain/index.ts +0 -5
- package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
- package/src/features/ai-kiss/domain/types/index.ts +0 -7
- package/src/features/ai-kiss/index.ts +0 -19
- package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
- package/src/features/ai-kiss/presentation/components/index.ts +0 -2
- package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
- package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
- package/src/features/ai-kiss/presentation/index.ts +0 -6
- package/src/features/anime-selfie/README.md +0 -396
- package/src/features/anime-selfie/domain/index.ts +0 -5
- package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
- package/src/features/anime-selfie/domain/types/index.ts +0 -8
- package/src/features/anime-selfie/index.ts +0 -20
- package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
- package/src/features/anime-selfie/presentation/components/index.ts +0 -2
- package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
- package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
- package/src/features/anime-selfie/presentation/index.ts +0 -6
- package/src/features/couple-future/README.md +0 -445
- package/src/features/couple-future/domain/types.ts +0 -63
- package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
- package/src/features/couple-future/domain/wizard.types.ts +0 -121
- package/src/features/couple-future/index.ts +0 -83
- package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
- package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
- package/src/features/couple-future/infrastructure/executor.ts +0 -188
- package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
- package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
- package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
- package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
- package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
- package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
- package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
- package/src/features/couple-future/presentation/components/index.ts +0 -12
- package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
- package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
- package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
- package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
- package/src/features/face-swap/README.md +0 -431
- package/src/features/face-swap/domain/index.ts +0 -5
- package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
- package/src/features/face-swap/domain/types/index.ts +0 -7
- package/src/features/face-swap/index.ts +0 -19
- package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
- package/src/features/face-swap/presentation/components/index.ts +0 -2
- package/src/features/face-swap/presentation/hooks/index.ts +0 -6
- package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
- package/src/features/face-swap/presentation/index.ts +0 -6
- package/src/features/hd-touch-up/README.md +0 -396
- package/src/features/hd-touch-up/domain/index.ts +0 -1
- package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
- package/src/features/hd-touch-up/domain/types/index.ts +0 -9
- package/src/features/hd-touch-up/index.ts +0 -21
- package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
- package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
- package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
- package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
- package/src/features/hd-touch-up/presentation/index.ts +0 -2
- package/src/features/image-to-image/README.md +0 -459
- package/src/features/image-to-image/domain/index.ts +0 -1
- package/src/features/image-to-image/domain/types/base.types.ts +0 -48
- package/src/features/image-to-image/domain/types/index.ts +0 -1
- package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
- package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
- package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
- package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
- package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
- package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
- package/src/features/image-to-image/index.ts +0 -2
- package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
- package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
- package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
- package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
- package/src/features/image-to-image/presentation/index.ts +0 -1
- package/src/features/image-to-video/README.md +0 -414
- package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
- package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
- package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
- package/src/features/image-to-video/domain/constants/index.ts +0 -23
- package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
- package/src/features/image-to-video/domain/index.ts +0 -5
- package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
- package/src/features/image-to-video/domain/types/config.types.ts +0 -56
- package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
- package/src/features/image-to-video/domain/types/form.types.ts +0 -35
- package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
- package/src/features/image-to-video/domain/types/index.ts +0 -39
- package/src/features/image-to-video/domain/types/music.types.ts +0 -21
- package/src/features/image-to-video/index.ts +0 -116
- package/src/features/image-to-video/infrastructure/index.ts +0 -1
- package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
- package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
- package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
- package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
- package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
- package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
- package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
- package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
- package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
- package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
- package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
- package/src/features/image-to-video/presentation/components/index.ts +0 -30
- package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
- package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
- package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
- package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
- package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
- package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
- package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
- package/src/features/image-to-video/presentation/index.ts +0 -5
- package/src/features/love-message/domain/constants.ts +0 -162
- package/src/features/love-message/domain/types.ts +0 -58
- package/src/features/love-message/index.ts +0 -37
- package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
- package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
- package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
- package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
- package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
- package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
- package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
- package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
- package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
- package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
- package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
- package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
- package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
- package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
- package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
- package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
- package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
- package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
- package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
- package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
- package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
- package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
- package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
- package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
- package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
- package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
- package/src/features/meme-generator/README.md +0 -408
- package/src/features/meme-generator/index.ts +0 -3
- package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
- package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
- package/src/features/meme-generator/presentation/components/index.ts +0 -2
- package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
- package/src/features/meme-generator/presentation/screens/index.ts +0 -1
- package/src/features/partner-upload/domain/types.ts +0 -59
- package/src/features/partner-upload/index.ts +0 -30
- package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
- package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
- package/src/features/partner-upload/presentation/components/index.ts +0 -4
- package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
- package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
- package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
- package/src/features/partner-upload/presentation/screens/index.ts +0 -6
- package/src/features/photo-restoration/README.md +0 -399
- package/src/features/photo-restoration/domain/index.ts +0 -1
- package/src/features/photo-restoration/domain/types/index.ts +0 -9
- package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
- package/src/features/photo-restoration/index.ts +0 -22
- package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
- package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
- package/src/features/photo-restoration/presentation/components/index.ts +0 -4
- package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
- package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
- package/src/features/photo-restoration/presentation/index.ts +0 -2
- package/src/features/remove-background/README.md +0 -393
- package/src/features/remove-background/domain/index.ts +0 -5
- package/src/features/remove-background/domain/types/index.ts +0 -7
- package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
- package/src/features/remove-background/index.ts +0 -19
- package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
- package/src/features/remove-background/presentation/components/index.ts +0 -2
- package/src/features/remove-background/presentation/hooks/index.ts +0 -1
- package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
- package/src/features/remove-background/presentation/index.ts +0 -6
- package/src/features/remove-object/README.md +0 -405
- package/src/features/remove-object/domain/index.ts +0 -5
- package/src/features/remove-object/domain/types/index.ts +0 -7
- package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
- package/src/features/remove-object/index.ts +0 -23
- package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
- package/src/features/remove-object/presentation/components/index.ts +0 -2
- package/src/features/remove-object/presentation/hooks/index.ts +0 -9
- package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
- package/src/features/remove-object/presentation/index.ts +0 -6
- package/src/features/replace-background/README.md +0 -405
- package/src/features/replace-background/domain/types/index.ts +0 -7
- package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
- package/src/features/replace-background/index.ts +0 -23
- package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
- package/src/features/replace-background/presentation/components/index.ts +0 -6
- package/src/features/replace-background/presentation/hooks/index.ts +0 -9
- package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
- package/src/features/scenarios/domain/types.ts +0 -147
- package/src/features/scenarios/index.ts +0 -64
- package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
- package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
- package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
- package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
- package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
- package/src/features/scenarios/presentation/components/index.ts +0 -18
- package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
- package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
- package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
- package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
- package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
- package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
- package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
- package/src/features/script-generator/README.md +0 -433
- package/src/features/script-generator/domain/constants/index.ts +0 -10
- package/src/features/script-generator/domain/types/script.types.ts +0 -30
- package/src/features/script-generator/index.ts +0 -5
- package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
- package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
- package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
- package/src/features/script-generator/presentation/components/index.ts +0 -2
- package/src/features/script-generator/presentation/hooks/index.ts +0 -1
- package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
- package/src/features/shared/README.md +0 -311
- package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
- package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
- package/src/features/shared/dual-image-video/index.ts +0 -17
- package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
- package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
- package/src/features/shared/index.ts +0 -6
- package/src/features/text-to-image/README.md +0 -394
- package/src/features/text-to-image/domain/constants/index.ts +0 -8
- package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
- package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
- package/src/features/text-to-image/domain/index.ts +0 -7
- package/src/features/text-to-image/domain/types/config.types.ts +0 -75
- package/src/features/text-to-image/domain/types/form.types.ts +0 -58
- package/src/features/text-to-image/domain/types/index.ts +0 -38
- package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
- package/src/features/text-to-image/index.ts +0 -116
- package/src/features/text-to-image/infrastructure/index.ts +0 -1
- package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
- package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
- package/src/features/text-to-image/presentation/components/index.ts +0 -30
- package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
- package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
- package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
- package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
- package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
- package/src/features/text-to-image/presentation/index.ts +0 -7
- package/src/features/text-to-video/README.md +0 -412
- package/src/features/text-to-video/domain/index.ts +0 -1
- package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
- package/src/features/text-to-video/domain/types/component.types.ts +0 -106
- package/src/features/text-to-video/domain/types/config.types.ts +0 -61
- package/src/features/text-to-video/domain/types/index.ts +0 -56
- package/src/features/text-to-video/domain/types/request.types.ts +0 -36
- package/src/features/text-to-video/domain/types/state.types.ts +0 -53
- package/src/features/text-to-video/index.ts +0 -68
- package/src/features/text-to-video/infrastructure/index.ts +0 -1
- package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
- package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
- package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
- package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
- package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
- package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
- package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
- package/src/features/text-to-video/presentation/components/index.ts +0 -10
- package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
- package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
- package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
- package/src/features/text-to-video/presentation/index.ts +0 -7
- package/src/features/text-to-voice/README.md +0 -445
- package/src/features/text-to-voice/domain/index.ts +0 -1
- package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
- package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
- package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
- package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
- package/src/features/text-to-voice/domain/types/index.ts +0 -38
- package/src/features/text-to-voice/index.ts +0 -53
- package/src/features/text-to-voice/infrastructure/index.ts +0 -1
- package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
- package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
- package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
- package/src/features/text-to-voice/presentation/components/index.ts +0 -7
- package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
- package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
- package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
- package/src/features/text-to-voice/presentation/index.ts +0 -2
- package/src/features/upscaling/README.md +0 -396
- package/src/features/upscaling/domain/index.ts +0 -1
- package/src/features/upscaling/domain/types/index.ts +0 -1
- package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
- package/src/features/upscaling/index.ts +0 -20
- package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
- package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
- package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
- package/src/features/upscaling/presentation/components/index.ts +0 -6
- package/src/features/upscaling/presentation/hooks/index.ts +0 -1
- package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
- package/src/features/upscaling/presentation/index.ts +0 -2
- package/src/features/wizard/domain/types.ts +0 -154
- package/src/features/wizard/index.ts +0 -43
- package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
- package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
- package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
- package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
# Text to Voice Feature
|
|
2
|
-
|
|
3
|
-
Convert text to natural-sounding speech using AI.
|
|
4
|
-
|
|
5
|
-
## 📍 Import Path
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { useTextToVoiceFeature } from '@umituz/react-native-ai-generation-content';
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**Location**: `src/features/text-to-voice/`
|
|
12
|
-
|
|
13
|
-
## 🎯 Feature Purpose
|
|
14
|
-
|
|
15
|
-
Convert written text into lifelike speech using AI-powered text-to-speech technology. Support for multiple voices, languages, adjustable speed and pitch, with natural intonation and expression for audiobooks, accessibility, voice assistants, and more.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 📋 Usage Strategy
|
|
20
|
-
|
|
21
|
-
### When to Use This Feature
|
|
22
|
-
|
|
23
|
-
✅ **Use Cases:**
|
|
24
|
-
- Creating audiobooks and narration
|
|
25
|
-
- Building voice assistants
|
|
26
|
-
- Accessibility features for visually impaired
|
|
27
|
-
- Voiceovers for videos and presentations
|
|
28
|
-
- Podcast and content creation
|
|
29
|
-
|
|
30
|
-
❌ **When NOT to Use:**
|
|
31
|
-
- Generating audio from descriptions (use Audio Generation)
|
|
32
|
-
- Real-time translation (use translation services)
|
|
33
|
-
- Voice cloning or impersonation
|
|
34
|
-
- Music generation
|
|
35
|
-
|
|
36
|
-
### Implementation Strategy
|
|
37
|
-
|
|
38
|
-
1. **Enter text** to convert to speech
|
|
39
|
-
2. **Select voice** from available options
|
|
40
|
-
3. **Adjust settings** (speed, pitch)
|
|
41
|
-
4. **Generate speech** with progress tracking
|
|
42
|
-
5. **Preview audio** with playback controls
|
|
43
|
-
6. **Save or share** final audio file
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## ⚠️ Critical Rules (MUST FOLLOW)
|
|
48
|
-
|
|
49
|
-
### 1. Input Requirements
|
|
50
|
-
- **MUST** provide text to convert
|
|
51
|
-
- **MUST** select valid voice
|
|
52
|
-
- **MUST** keep text under character limits (5000 chars recommended)
|
|
53
|
-
- **MUST NOT** use copyrighted material without permission
|
|
54
|
-
- **MUST NOT** generate offensive or harmful content
|
|
55
|
-
|
|
56
|
-
### 2. Configuration
|
|
57
|
-
- **MUST** provide valid `userId` for tracking
|
|
58
|
-
- **MUST** specify voice selection
|
|
59
|
-
- **MUST** implement `onError` callback
|
|
60
|
-
- **MUST** implement audio playback controls
|
|
61
|
-
- **MUST** handle file saving locally
|
|
62
|
-
|
|
63
|
-
### 3. State Management
|
|
64
|
-
- **MUST** check `isReady` before enabling generate button
|
|
65
|
-
- **MUST** validate text and voice before generation
|
|
66
|
-
- **MUST** handle `isProcessing` state to prevent duplicate requests
|
|
67
|
-
- **MUST** display `error` state with clear messages
|
|
68
|
-
- **MUST** implement proper cleanup on unmount (dispose audio)
|
|
69
|
-
|
|
70
|
-
### 4. Performance
|
|
71
|
-
- **MUST** implement progress indicators during generation
|
|
72
|
-
- **MUST** cache generated audio locally
|
|
73
|
-
- **MUST** allow users to cancel long generations
|
|
74
|
-
- **MUST** implement proper audio file disposal
|
|
75
|
-
- **MUST NOT** generate multiple audio files simultaneously
|
|
76
|
-
|
|
77
|
-
### 5. Audio Quality
|
|
78
|
-
- **MUST** provide audio preview with playback controls
|
|
79
|
-
- **MUST** support common audio formats (MP3, WAV)
|
|
80
|
-
- **MUST** handle large audio file sizes
|
|
81
|
-
- **MUST** implement play/pause/stop controls
|
|
82
|
-
- **MUST** offer regeneration with different settings
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## 🚫 Prohibitions (MUST AVOID)
|
|
87
|
-
|
|
88
|
-
### Strictly Forbidden
|
|
89
|
-
|
|
90
|
-
❌ **NEVER** do the following:
|
|
91
|
-
|
|
92
|
-
1. **No Empty Text**
|
|
93
|
-
- Always validate text is provided
|
|
94
|
-
- Never call generate() without text
|
|
95
|
-
- Guide users with example texts
|
|
96
|
-
|
|
97
|
-
2. **No Auto-Generation**
|
|
98
|
-
- Never start generation without user action
|
|
99
|
-
- Always require explicit "Generate" button press
|
|
100
|
-
- Show preview before processing
|
|
101
|
-
|
|
102
|
-
3. **No Hardcoded Credentials**
|
|
103
|
-
- Never store API keys in component files
|
|
104
|
-
- Use environment variables or secure storage
|
|
105
|
-
|
|
106
|
-
4. **No Unhandled Errors**
|
|
107
|
-
- Never ignore generation failures
|
|
108
|
-
- Always explain what went wrong
|
|
109
|
-
- Provide retry or alternative options
|
|
110
|
-
|
|
111
|
-
5. **No Memory Leaks**
|
|
112
|
-
- Never store multiple audio files in memory
|
|
113
|
-
- Always cleanup audio references on unmount
|
|
114
|
-
- Implement proper audio disposal (unloadAsync)
|
|
115
|
-
|
|
116
|
-
6. **No Blocked UI**
|
|
117
|
-
- Never block main thread with audio processing
|
|
118
|
-
- Always show progress indicator
|
|
119
|
-
- Allow cancellation
|
|
120
|
-
|
|
121
|
-
7. **No Copyright Infringement**
|
|
122
|
-
- Never generate copyrighted content without permission
|
|
123
|
-
- Never use for voice cloning or impersonation
|
|
124
|
-
- Implement content moderation
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## 🤖 AI Agent Directions
|
|
129
|
-
|
|
130
|
-
### For AI Code Generation Tools
|
|
131
|
-
|
|
132
|
-
When using this feature with AI code generation tools, follow these guidelines:
|
|
133
|
-
|
|
134
|
-
#### Prompt Template for AI Agents
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
You are implementing a text to voice feature using @umituz/react-native-ai-generation-content.
|
|
138
|
-
|
|
139
|
-
REQUIREMENTS:
|
|
140
|
-
1. Import from: @umituz/react-native-ai-generation-content
|
|
141
|
-
2. Use the useTextToVoiceFeature hook
|
|
142
|
-
3. Select voice from available options
|
|
143
|
-
4. Implement text input for speech content
|
|
144
|
-
5. Adjust settings (speed, pitch)
|
|
145
|
-
6. Validate text and voice before generation
|
|
146
|
-
7. Implement audio playback for preview
|
|
147
|
-
8. Handle long processing times with progress
|
|
148
|
-
9. Implement proper error handling
|
|
149
|
-
10. Implement cleanup on unmount (CRITICAL: dispose audio)
|
|
150
|
-
|
|
151
|
-
CRITICAL RULES:
|
|
152
|
-
- MUST validate text and voice before calling generate()
|
|
153
|
-
- MUST implement audio playback controls (play, pause, stop)
|
|
154
|
-
- MUST handle voice selection
|
|
155
|
-
- MUST handle speed and pitch adjustments
|
|
156
|
-
- MUST implement debouncing (300ms)
|
|
157
|
-
- MUST allow regeneration with different settings
|
|
158
|
-
- MUST properly dispose audio on unmount (useEffect cleanup)
|
|
159
|
-
|
|
160
|
-
CONFIGURATION:
|
|
161
|
-
- Provide valid userId (string)
|
|
162
|
-
- Set voice: string (voice ID)
|
|
163
|
-
- Set speed?: number (speech rate 0.25 - 4.0, default: 1.0)
|
|
164
|
-
- Set pitch?: number (pitch adjustment -20.0 - 20.0, default: 0)
|
|
165
|
-
- Set language?: string (language code, default: 'en-US')
|
|
166
|
-
- Implement onSaveAudio callback
|
|
167
|
-
- Configure callbacks: onTextChange, onProcessingStart, onProcessingComplete, onError
|
|
168
|
-
|
|
169
|
-
VOICE OPTIONS:
|
|
170
|
-
- English: Multiple male/female voices (US, UK, etc.)
|
|
171
|
-
- Multi-language: Spanish, French, German, Italian, Japanese, Korean, Chinese
|
|
172
|
-
- Default voice: Set in config
|
|
173
|
-
|
|
174
|
-
SETTINGS:
|
|
175
|
-
- speed: Speech rate (0.25 - 4.0, default: 1.0)
|
|
176
|
-
- pitch: Pitch adjustment (-20.0 - 20.0, default: 0)
|
|
177
|
-
- language: Language code (e.g., 'en-US', 'es-ES')
|
|
178
|
-
|
|
179
|
-
AUDIO CONTROLS:
|
|
180
|
-
- Play: Start audio playback
|
|
181
|
-
- Pause: Pause current playback
|
|
182
|
-
- Stop: Stop and reset playback
|
|
183
|
-
- Unload: Dispose audio resource (CRITICAL for cleanup)
|
|
184
|
-
|
|
185
|
-
STRICTLY FORBIDDEN:
|
|
186
|
-
- No empty text validation
|
|
187
|
-
- No auto-generation without user action
|
|
188
|
-
- No hardcoded API keys
|
|
189
|
-
- No unhandled errors
|
|
190
|
-
- No memory leaks (especially audio)
|
|
191
|
-
- No blocking UI
|
|
192
|
-
- No copyright infringement
|
|
193
|
-
|
|
194
|
-
CLEANUP CHECKLIST:
|
|
195
|
-
- [ ] Audio unloaded on unmount
|
|
196
|
-
- [ ] Sound reference nullified
|
|
197
|
-
- [ ] Event listeners removed
|
|
198
|
-
- [ ] No memory leaks
|
|
199
|
-
|
|
200
|
-
QUALITY CHECKLIST:
|
|
201
|
-
- [ ] Text input for speech content
|
|
202
|
-
- [ ] Voice selector added
|
|
203
|
-
- [ ] Speed control implemented
|
|
204
|
-
- [ ] Pitch control implemented
|
|
205
|
-
- [ ] Validation before generate()
|
|
206
|
-
- [ ] Audio playback controls (play, pause, stop)
|
|
207
|
-
- [ ] Progress indicator during processing
|
|
208
|
-
- [ ] Error display with retry option
|
|
209
|
-
- [ ] Save/share functionality
|
|
210
|
-
- [ ] Regeneration with different settings
|
|
211
|
-
- [ ] Proper cleanup on unmount
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
#### AI Implementation Checklist
|
|
215
|
-
|
|
216
|
-
Use this checklist when generating code:
|
|
217
|
-
|
|
218
|
-
- [ ] Feature imported from correct path
|
|
219
|
-
- [ ] Text input for speech content implemented
|
|
220
|
-
- [ ] Voice selector added
|
|
221
|
-
- [ ] Speed control implemented
|
|
222
|
-
- [ ] Pitch control implemented
|
|
223
|
-
- [ ] Validation before generate()
|
|
224
|
-
- [ ] Audio playback controls (play, pause, stop)
|
|
225
|
-
- [ ] Progress indicator during processing
|
|
226
|
-
- [ ] Error display with user-friendly message
|
|
227
|
-
- [ ] Save/share buttons
|
|
228
|
-
- [ ] Regeneration option
|
|
229
|
-
- [ ] **CRITICAL**: Audio cleanup on unmount
|
|
230
|
-
- [ ] **CRITICAL**: Sound reference disposal
|
|
231
|
-
- [ ] **CRITICAL**: Event listener cleanup
|
|
232
|
-
|
|
233
|
-
---
|
|
234
|
-
|
|
235
|
-
## 🛠️ Configuration Strategy
|
|
236
|
-
|
|
237
|
-
### Essential Configuration
|
|
238
|
-
|
|
239
|
-
```typescript
|
|
240
|
-
// Required fields
|
|
241
|
-
{
|
|
242
|
-
userId: string
|
|
243
|
-
voice: string
|
|
244
|
-
text: string
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
// Optional callbacks
|
|
248
|
-
{
|
|
249
|
-
speed?: number // 0.25 - 4.0, default: 1.0
|
|
250
|
-
pitch?: number // -20.0 - 20.0, default: 0
|
|
251
|
-
language?: string // e.g., 'en-US', 'es-ES'
|
|
252
|
-
onTextChange?: (text: string) => void
|
|
253
|
-
onProcessingStart?: () => void
|
|
254
|
-
onProcessingComplete?: (result) => void
|
|
255
|
-
onError?: (error: string) => void
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### Recommended Settings
|
|
260
|
-
|
|
261
|
-
1. **Voices**
|
|
262
|
-
- English: Multiple options (male/female, US/UK)
|
|
263
|
-
- Multi-language: Support for major languages
|
|
264
|
-
- Default: Set in configuration
|
|
265
|
-
|
|
266
|
-
2. **Speed Settings**
|
|
267
|
-
- 0.25 - 0.75: Slow (audiobooks, learning)
|
|
268
|
-
- 0.8 - 1.2: Normal (most use cases)
|
|
269
|
-
- 1.3 - 2.0: Fast (quick consumption)
|
|
270
|
-
- 2.1 - 4.0: Very fast (skimming)
|
|
271
|
-
|
|
272
|
-
3. **Pitch Settings**
|
|
273
|
-
- -20 to -5: Lower pitch
|
|
274
|
-
- -5 to 5: Normal range (default: 0)
|
|
275
|
-
- 5 to 20: Higher pitch
|
|
276
|
-
|
|
277
|
-
4. **Text Length**
|
|
278
|
-
- Recommended: Under 5000 characters
|
|
279
|
-
- Long texts: Consider chunking
|
|
280
|
-
- Short texts: Better for performance
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
## 📊 State Management
|
|
285
|
-
|
|
286
|
-
### Feature States
|
|
287
|
-
|
|
288
|
-
**isReady**: boolean
|
|
289
|
-
- Text provided and voice selected
|
|
290
|
-
- Check before enabling generate button
|
|
291
|
-
|
|
292
|
-
**isProcessing**: boolean
|
|
293
|
-
- Speech generation in progress
|
|
294
|
-
- Show loading/progress indicator
|
|
295
|
-
- Disable generate button
|
|
296
|
-
|
|
297
|
-
**progress**: number (0-100)
|
|
298
|
-
- Generation progress percentage
|
|
299
|
-
- Update progress bar
|
|
300
|
-
|
|
301
|
-
**error**: string | null
|
|
302
|
-
- Error message if generation failed
|
|
303
|
-
- Display to user with clear message
|
|
304
|
-
|
|
305
|
-
**result**: {
|
|
306
|
-
audioUrl: string
|
|
307
|
-
voice?: string
|
|
308
|
-
text?: string
|
|
309
|
-
speed?: number
|
|
310
|
-
pitch?: number
|
|
311
|
-
language?: string
|
|
312
|
-
metadata?: any
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
## 🎨 Best Practices
|
|
318
|
-
|
|
319
|
-
### Text Preparation
|
|
320
|
-
|
|
321
|
-
1. **Text Length**
|
|
322
|
-
- Keep under 5000 characters for best results
|
|
323
|
-
- Consider chunking for long texts
|
|
324
|
-
- Test with shorter texts first
|
|
325
|
-
|
|
326
|
-
2. **Punctuation**
|
|
327
|
-
- Use proper punctuation for natural pauses
|
|
328
|
-
- Include commas, periods, question marks
|
|
329
|
-
- Use punctuation to control pacing
|
|
330
|
-
|
|
331
|
-
3. **Formatting**
|
|
332
|
-
- Clear, readable text
|
|
333
|
-
- Remove unnecessary whitespace
|
|
334
|
-
- Use abbreviations consistently
|
|
335
|
-
|
|
336
|
-
### Voice Selection
|
|
337
|
-
|
|
338
|
-
1. **Match Content Type**
|
|
339
|
-
- Audiobooks: Clear, pleasant voice
|
|
340
|
-
- Presentations: Professional voice
|
|
341
|
-
- Entertainment: Dynamic voice
|
|
342
|
-
- Accessibility: Clear, neutral voice
|
|
343
|
-
|
|
344
|
-
2. **Language Matching**
|
|
345
|
-
- Match voice to text language
|
|
346
|
-
- Consider accent preferences
|
|
347
|
-
- Test different voices
|
|
348
|
-
|
|
349
|
-
### Settings Optimization
|
|
350
|
-
|
|
351
|
-
1. **Speed**
|
|
352
|
-
- 0.8-1.2: Most natural speech
|
|
353
|
-
- Adjust based on content type
|
|
354
|
-
- Test with playback before saving
|
|
355
|
-
|
|
356
|
-
2. **Pitch**
|
|
357
|
-
- Keep near 0 for natural sound
|
|
358
|
-
- Small adjustments (-5 to +5)
|
|
359
|
-
- Avoid extreme values
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## 🐛 Common Pitfalls
|
|
364
|
-
|
|
365
|
-
### Audio Playback Issues
|
|
366
|
-
|
|
367
|
-
❌ **Problem**: Audio won't play
|
|
368
|
-
✅ **Solution**: Check audio URL, format compatibility
|
|
369
|
-
|
|
370
|
-
### Memory Leaks
|
|
371
|
-
|
|
372
|
-
❌ **Problem**: App crashes after multiple generations
|
|
373
|
-
✅ **Solution**: Implement proper audio cleanup in useEffect
|
|
374
|
-
|
|
375
|
-
### Quality Issues
|
|
376
|
-
|
|
377
|
-
❌ **Problem**: Speech sounds unnatural
|
|
378
|
-
✅ **Solution**: Adjust speed and pitch, try different voice
|
|
379
|
-
|
|
380
|
-
### Long Text Issues
|
|
381
|
-
|
|
382
|
-
❌ **Problem**: Generation fails for long texts
|
|
383
|
-
✅ **Solution**: Chunk text into smaller segments
|
|
384
|
-
|
|
385
|
-
### Cleanup Issues
|
|
386
|
-
|
|
387
|
-
❌ **Problem**: Audio continues playing after unmount
|
|
388
|
-
✅ **Solution**: Implement proper cleanup with unloadAsync
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## 📦 Related Components
|
|
393
|
-
|
|
394
|
-
Use these components from the library:
|
|
395
|
-
|
|
396
|
-
- **TextInput**: For speech content
|
|
397
|
-
- **VoiceSelector**: Choose voice
|
|
398
|
-
- **SpeedControl**: Adjust speech rate
|
|
399
|
-
- **PitchControl**: Adjust pitch
|
|
400
|
-
- **AudioPlayer**: Play generated audio
|
|
401
|
-
- **ProgressBar**: Progress display
|
|
402
|
-
|
|
403
|
-
Located at: `src/presentation/components/`
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## 🔄 Migration Strategy
|
|
408
|
-
|
|
409
|
-
If migrating from previous implementation:
|
|
410
|
-
|
|
411
|
-
1. **Update imports** to new path
|
|
412
|
-
2. **Add voice selector**
|
|
413
|
-
3. **Implement speed/pitch controls**
|
|
414
|
-
4. **Add audio playback controls**
|
|
415
|
-
5. **Update state handling** for new structure
|
|
416
|
-
6. **Implement proper audio cleanup** (CRITICAL)
|
|
417
|
-
7. **Test all voices**
|
|
418
|
-
|
|
419
|
-
---
|
|
420
|
-
|
|
421
|
-
## 📚 Additional Resources
|
|
422
|
-
|
|
423
|
-
- Main documentation: `/docs/`
|
|
424
|
-
- API reference: `/docs/api/`
|
|
425
|
-
- Examples: `/docs/examples/basic/text-to-voice/`
|
|
426
|
-
- Architecture: `/ARCHITECTURE.md`
|
|
427
|
-
|
|
428
|
-
---
|
|
429
|
-
|
|
430
|
-
**Last Updated**: 2025-01-08
|
|
431
|
-
**Version**: 2.0.0 (Strategy-based Documentation)
|
|
432
|
-
|
|
433
|
-
---
|
|
434
|
-
|
|
435
|
-
## 📝 Changelog
|
|
436
|
-
|
|
437
|
-
### v2.0.0 - 2025-01-08
|
|
438
|
-
- **BREAKING**: Documentation format changed to strategy-based
|
|
439
|
-
- Removed extensive code examples
|
|
440
|
-
- Added rules, prohibitions, and AI agent directions
|
|
441
|
-
- Focus on best practices and implementation guidance
|
|
442
|
-
- Added critical audio cleanup guidance
|
|
443
|
-
|
|
444
|
-
### v1.0.0 - Initial Release
|
|
445
|
-
- Initial feature documentation
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./types";
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Voice Component Types
|
|
3
|
-
* Props types for UI components
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { ReactNode } from "react";
|
|
7
|
-
import type { StyleProp, ViewStyle } from "react-native";
|
|
8
|
-
|
|
9
|
-
export interface TextToVoiceTextInputProps {
|
|
10
|
-
value: string;
|
|
11
|
-
onChangeText: (text: string) => void;
|
|
12
|
-
maxLength?: number;
|
|
13
|
-
labelKey: string;
|
|
14
|
-
placeholderKey: string;
|
|
15
|
-
characterCountKey: string;
|
|
16
|
-
style?: StyleProp<ViewStyle>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export interface TextToVoiceOptionalInputProps {
|
|
20
|
-
title: string;
|
|
21
|
-
value: string;
|
|
22
|
-
onChangeText: (text: string) => void;
|
|
23
|
-
placeholder: string;
|
|
24
|
-
hint: string;
|
|
25
|
-
style?: StyleProp<ViewStyle>;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface TextToVoiceExamplePromptsProps {
|
|
29
|
-
prompts: string[];
|
|
30
|
-
onSelectPrompt: (prompt: string) => void;
|
|
31
|
-
labelKey: string;
|
|
32
|
-
style?: StyleProp<ViewStyle>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface TextToVoiceGenerateButtonProps {
|
|
36
|
-
isGenerating: boolean;
|
|
37
|
-
progress: number;
|
|
38
|
-
disabled: boolean;
|
|
39
|
-
onPress: () => void;
|
|
40
|
-
buttonTextKey: string;
|
|
41
|
-
generatingTextKey: string;
|
|
42
|
-
style?: StyleProp<ViewStyle>;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface TextToVoiceAudioPlayerProps {
|
|
46
|
-
audioUrl: string;
|
|
47
|
-
onPlay: () => void;
|
|
48
|
-
successTextKey: string;
|
|
49
|
-
playButtonTextKey: string;
|
|
50
|
-
style?: StyleProp<ViewStyle>;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface TextToVoiceErrorMessageProps {
|
|
54
|
-
message: string;
|
|
55
|
-
style?: StyleProp<ViewStyle>;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface TextToVoiceHeaderProps {
|
|
59
|
-
titleKey: string;
|
|
60
|
-
descriptionKey: string;
|
|
61
|
-
iconName: string;
|
|
62
|
-
navigationType?: "back" | "close";
|
|
63
|
-
headerContent?: ReactNode;
|
|
64
|
-
style?: StyleProp<ViewStyle>;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export interface TextToVoiceScreenConfig {
|
|
68
|
-
maxTextLength: number;
|
|
69
|
-
creditCost: number;
|
|
70
|
-
defaultModel?: string;
|
|
71
|
-
defaultVoice?: string;
|
|
72
|
-
defaultSpeed?: number;
|
|
73
|
-
defaultStability?: number;
|
|
74
|
-
defaultSimilarityBoost?: number;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface TextToVoiceTranslationKeys {
|
|
78
|
-
title: string;
|
|
79
|
-
description: string;
|
|
80
|
-
textInputLabel: string;
|
|
81
|
-
textInputPlaceholder: string;
|
|
82
|
-
characterCount: string;
|
|
83
|
-
voiceLabel: string;
|
|
84
|
-
voicePlaceholder: string;
|
|
85
|
-
voiceHint: string;
|
|
86
|
-
examplesLabel: string;
|
|
87
|
-
generateButton: string;
|
|
88
|
-
generatingText: string;
|
|
89
|
-
successText: string;
|
|
90
|
-
playButton: string;
|
|
91
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Voice Config Types
|
|
3
|
-
* Feature configuration types
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { TextToVoiceOptions, TextToVoiceResult } from "./generation.types";
|
|
7
|
-
|
|
8
|
-
export type TextToVoiceInputBuilder = (
|
|
9
|
-
text: string,
|
|
10
|
-
options?: TextToVoiceOptions,
|
|
11
|
-
) => Record<string, unknown>;
|
|
12
|
-
|
|
13
|
-
export type TextToVoiceResultExtractor = (
|
|
14
|
-
result: unknown,
|
|
15
|
-
) => { audioUrl?: string; duration?: number } | undefined;
|
|
16
|
-
|
|
17
|
-
export interface TextToVoiceFeatureConfig {
|
|
18
|
-
providerId?: string;
|
|
19
|
-
creditCost?: number;
|
|
20
|
-
model: string;
|
|
21
|
-
buildInput: TextToVoiceInputBuilder;
|
|
22
|
-
extractResult?: TextToVoiceResultExtractor;
|
|
23
|
-
onTextChange?: (text: string) => void;
|
|
24
|
-
onProcessingStart?: () => void;
|
|
25
|
-
onProcessingComplete?: (result: TextToVoiceResult) => void;
|
|
26
|
-
onError?: (error: string) => void;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface TextToVoiceExecuteOptions {
|
|
30
|
-
model: string;
|
|
31
|
-
buildInput: TextToVoiceInputBuilder;
|
|
32
|
-
extractResult?: TextToVoiceResultExtractor;
|
|
33
|
-
onProgress?: (progress: number) => void;
|
|
34
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Voice Form Types
|
|
3
|
-
* Form state and setter types
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { TextToVoiceRequest } from "./generation.types";
|
|
7
|
-
|
|
8
|
-
export interface TextToVoiceFormState {
|
|
9
|
-
text: string;
|
|
10
|
-
model: string;
|
|
11
|
-
voice: string;
|
|
12
|
-
speed: number;
|
|
13
|
-
stability: number;
|
|
14
|
-
similarityBoost: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface TextToVoiceFormSetters {
|
|
18
|
-
setText: (text: string) => void;
|
|
19
|
-
setModel: (model: string) => void;
|
|
20
|
-
setVoice: (voice: string) => void;
|
|
21
|
-
setSpeed: (speed: number) => void;
|
|
22
|
-
setStability: (stability: number) => void;
|
|
23
|
-
setSimilarityBoost: (similarityBoost: number) => void;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface TextToVoiceFormReturn extends TextToVoiceFormSetters {
|
|
27
|
-
formState: TextToVoiceFormState;
|
|
28
|
-
buildRequest: () => TextToVoiceRequest;
|
|
29
|
-
resetForm: () => void;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface TextToVoiceFormConfig {
|
|
33
|
-
initialText?: string;
|
|
34
|
-
initialModel?: string;
|
|
35
|
-
initialVoice?: string;
|
|
36
|
-
initialSpeed?: number;
|
|
37
|
-
initialStability?: number;
|
|
38
|
-
initialSimilarityBoost?: number;
|
|
39
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Voice Generation Types
|
|
3
|
-
* Request, result, and state types for voice generation
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface TextToVoiceOptions {
|
|
7
|
-
voice?: string;
|
|
8
|
-
speed?: number;
|
|
9
|
-
pitch?: number;
|
|
10
|
-
stability?: number;
|
|
11
|
-
similarityBoost?: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface TextToVoiceRequest {
|
|
15
|
-
text: string;
|
|
16
|
-
userId: string;
|
|
17
|
-
model?: string;
|
|
18
|
-
options?: TextToVoiceOptions;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface TextToVoiceResult {
|
|
22
|
-
success: boolean;
|
|
23
|
-
audioUrl?: string;
|
|
24
|
-
error?: string;
|
|
25
|
-
requestId?: string;
|
|
26
|
-
duration?: number;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface TextToVoiceGenerationState {
|
|
30
|
-
isGenerating: boolean;
|
|
31
|
-
progress: number;
|
|
32
|
-
audioUrl: string | null;
|
|
33
|
-
error: string | null;
|
|
34
|
-
requestId: string | null;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface VoiceGeneration {
|
|
38
|
-
id: string;
|
|
39
|
-
text: string;
|
|
40
|
-
audioUrl: string;
|
|
41
|
-
provider: string;
|
|
42
|
-
createdAt: string;
|
|
43
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Voice Domain Types
|
|
3
|
-
* Barrel export for all types
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export type {
|
|
7
|
-
TextToVoiceOptions,
|
|
8
|
-
TextToVoiceRequest,
|
|
9
|
-
TextToVoiceResult,
|
|
10
|
-
TextToVoiceGenerationState,
|
|
11
|
-
VoiceGeneration,
|
|
12
|
-
} from "./generation.types";
|
|
13
|
-
|
|
14
|
-
export type {
|
|
15
|
-
TextToVoiceFormState,
|
|
16
|
-
TextToVoiceFormSetters,
|
|
17
|
-
TextToVoiceFormReturn,
|
|
18
|
-
TextToVoiceFormConfig,
|
|
19
|
-
} from "./form.types";
|
|
20
|
-
|
|
21
|
-
export type {
|
|
22
|
-
TextToVoiceTextInputProps,
|
|
23
|
-
TextToVoiceOptionalInputProps,
|
|
24
|
-
TextToVoiceExamplePromptsProps,
|
|
25
|
-
TextToVoiceGenerateButtonProps,
|
|
26
|
-
TextToVoiceAudioPlayerProps,
|
|
27
|
-
TextToVoiceErrorMessageProps,
|
|
28
|
-
TextToVoiceHeaderProps,
|
|
29
|
-
TextToVoiceScreenConfig,
|
|
30
|
-
TextToVoiceTranslationKeys,
|
|
31
|
-
} from "./component.types";
|
|
32
|
-
|
|
33
|
-
export type {
|
|
34
|
-
TextToVoiceInputBuilder,
|
|
35
|
-
TextToVoiceResultExtractor,
|
|
36
|
-
TextToVoiceFeatureConfig,
|
|
37
|
-
TextToVoiceExecuteOptions,
|
|
38
|
-
} from "./config.types";
|