@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,412 +0,0 @@
|
|
|
1
|
-
# Text to Video Feature
|
|
2
|
-
|
|
3
|
-
Generate videos from text descriptions using AI.
|
|
4
|
-
|
|
5
|
-
## 📍 Import Path
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { useTextToVideoFeature } from '@umituz/react-native-ai-generation-content';
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**Location**: `src/features/text-to-video/`
|
|
12
|
-
|
|
13
|
-
## 🎯 Feature Purpose
|
|
14
|
-
|
|
15
|
-
Generate AI-powered videos from natural language text descriptions. Supports various durations, aspect ratios, and cinematic styles.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 📋 Usage Strategy
|
|
20
|
-
|
|
21
|
-
### When to Use This Feature
|
|
22
|
-
|
|
23
|
-
✅ **Use Cases:**
|
|
24
|
-
- Creating marketing videos
|
|
25
|
-
- Generating social media content
|
|
26
|
-
- Producing promotional materials
|
|
27
|
-
- Creating concept videos
|
|
28
|
-
- Video prototyping and storyboarding
|
|
29
|
-
|
|
30
|
-
❌ **When NOT to Use:**
|
|
31
|
-
- Simple image generation (use Text to Image)
|
|
32
|
-
- Video editing of existing footage (use video editing software)
|
|
33
|
-
- Adding text overlays to video (use video editing tools)
|
|
34
|
-
- Animated text videos (use animation software)
|
|
35
|
-
|
|
36
|
-
### Implementation Strategy
|
|
37
|
-
|
|
38
|
-
1. **Input text description** of desired video
|
|
39
|
-
2. **Select duration** and aspect ratio
|
|
40
|
-
3. **Choose cinematic style** (optional)
|
|
41
|
-
4. **Generate video** with progress tracking
|
|
42
|
-
5. **Preview result** and offer regeneration
|
|
43
|
-
6. **Download or share** final video
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## ⚠️ Critical Rules (MUST FOLLOW)
|
|
48
|
-
|
|
49
|
-
### 1. Prompt Requirements
|
|
50
|
-
- **MUST** use descriptive, specific prompts
|
|
51
|
-
- **MUST** include subject, action, and scene details
|
|
52
|
-
- **MUST** specify camera movements if important
|
|
53
|
-
- **MUST** use English for best results
|
|
54
|
-
- **MUST NOT** exceed character limits (check model limits)
|
|
55
|
-
- **MUST NOT** include copyrighted characters or brands
|
|
56
|
-
|
|
57
|
-
### 2. Configuration
|
|
58
|
-
- **MUST** provide valid `userId` for tracking
|
|
59
|
-
- **MUST** implement `onError` callback
|
|
60
|
-
- **MUST** handle `isProcessing` state to prevent duplicate requests
|
|
61
|
-
- **MUST** validate prompts before generation
|
|
62
|
-
- **MUST NOT** call `generate()` when `isReady` is false
|
|
63
|
-
|
|
64
|
-
### 3. State Management
|
|
65
|
-
- **MUST** check `isReady` before enabling generate button
|
|
66
|
-
- **MUST** handle `isProcessing` state with loading indicators
|
|
67
|
-
- **MUST** display `error` state to users
|
|
68
|
-
- **MUST** handle `result.videoUrl` existence check
|
|
69
|
-
- **MUST** implement proper cleanup on unmount
|
|
70
|
-
|
|
71
|
-
### 4. Performance
|
|
72
|
-
- **MUST** implement debouncing for prompt inputs (>500ms)
|
|
73
|
-
- **MUST** limit concurrent requests (max 1 per user)
|
|
74
|
-
- **MUST** cache generated videos locally
|
|
75
|
-
- **MUST** implement retry logic (max 3 attempts)
|
|
76
|
-
- **MUST NOT** generate multiple videos simultaneously
|
|
77
|
-
|
|
78
|
-
### 5. Content Safety
|
|
79
|
-
- **MUST** validate and sanitize user prompts
|
|
80
|
-
- **MUST** implement content moderation
|
|
81
|
-
- **MUST** check for inappropriate content
|
|
82
|
-
- **MUST** store userId securely
|
|
83
|
-
- **MUST NOT** expose API keys in client code
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## 🚫 Prohibitions (MUST AVOID)
|
|
88
|
-
|
|
89
|
-
### Strictly Forbidden
|
|
90
|
-
|
|
91
|
-
❌ **NEVER** do the following:
|
|
92
|
-
|
|
93
|
-
1. **No Empty Prompts**
|
|
94
|
-
- Always validate prompt has meaningful content
|
|
95
|
-
- Minimum 20 characters recommended for video generation
|
|
96
|
-
|
|
97
|
-
2. **No Concurrent Generation**
|
|
98
|
-
- Never call `generate()` while `isProcessing === true`
|
|
99
|
-
- Always disable generate button during processing
|
|
100
|
-
|
|
101
|
-
3. **No Hardcoded Credentials**
|
|
102
|
-
- Never store API keys in component files
|
|
103
|
-
- Use environment variables or secure storage
|
|
104
|
-
|
|
105
|
-
4. **No Unhandled Errors**
|
|
106
|
-
- Never ignore error states
|
|
107
|
-
- Always implement error boundaries
|
|
108
|
-
|
|
109
|
-
5. **No Memory Leaks**
|
|
110
|
-
- Never forget cleanup on unmount
|
|
111
|
-
- Always cancel pending requests
|
|
112
|
-
|
|
113
|
-
6. **No Excessive Re-renders**
|
|
114
|
-
- Never pass new config objects on each render
|
|
115
|
-
- Always memoize configuration objects
|
|
116
|
-
|
|
117
|
-
7. **No Blocked Main Thread**
|
|
118
|
-
- Never perform heavy operations in render
|
|
119
|
-
- Use background tasks for video processing
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## 🤖 AI Agent Directions
|
|
124
|
-
|
|
125
|
-
### For AI Code Generation Tools
|
|
126
|
-
|
|
127
|
-
When using this feature with AI code generation tools, follow these guidelines:
|
|
128
|
-
|
|
129
|
-
#### Prompt Template for AI Agents
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
You are implementing a text-to-video generation feature using @umituz/react-native-ai-generation-content.
|
|
133
|
-
|
|
134
|
-
REQUIREMENTS:
|
|
135
|
-
1. Import from: @umituz/react-native-ai-generation-content
|
|
136
|
-
2. Use the useTextToVideoFeature hook
|
|
137
|
-
3. Implement all state handlers (loading, success, error)
|
|
138
|
-
4. Add debouncing for prompt input (500ms minimum)
|
|
139
|
-
5. Validate prompts before generation
|
|
140
|
-
6. Handle isReady and isProcessing states correctly
|
|
141
|
-
7. Implement proper error handling with user feedback
|
|
142
|
-
8. Add loading indicators during generation
|
|
143
|
-
9. Display results safely with null checks
|
|
144
|
-
10. Implement cleanup on unmount
|
|
145
|
-
|
|
146
|
-
CRITICAL RULES:
|
|
147
|
-
- NEVER call generate() when isProcessing is true
|
|
148
|
-
- ALWAYS validate prompt before calling generate()
|
|
149
|
-
- MUST handle error state with user-friendly message
|
|
150
|
-
- MUST disable generate button during processing
|
|
151
|
-
- MUST implement debouncing (500ms minimum)
|
|
152
|
-
- MUST validate for copyrighted content
|
|
153
|
-
|
|
154
|
-
CONFIGURATION:
|
|
155
|
-
- Provide valid userId (string)
|
|
156
|
-
- Set model (default: 'veo-3')
|
|
157
|
-
- Configure callbacks: onProcessingStart, onProcessingComplete, onError
|
|
158
|
-
|
|
159
|
-
GENERATION OPTIONS:
|
|
160
|
-
- duration: 4 | 8 | 16 (seconds)
|
|
161
|
-
- aspectRatio: '16:9' | '9:16' | '1:1'
|
|
162
|
-
- style: 'cinematic' | 'anime' | '3d' | 'artistic'
|
|
163
|
-
|
|
164
|
-
STRICTLY FORBIDDEN:
|
|
165
|
-
- No empty prompts
|
|
166
|
-
- No concurrent generation calls
|
|
167
|
-
- No hardcoded API keys
|
|
168
|
-
- No unhandled errors
|
|
169
|
-
- No memory leaks
|
|
170
|
-
- No copyright violations
|
|
171
|
-
|
|
172
|
-
QUALITY CHECKLIST:
|
|
173
|
-
- [ ] Feature imported from correct path
|
|
174
|
-
- [ ] Hook initialized with proper config
|
|
175
|
-
- [ ] All state handlers implemented
|
|
176
|
-
- [ ] Debouncing added to input
|
|
177
|
-
- [ ] Validation before generate()
|
|
178
|
-
- [ ] Loading indicator during processing
|
|
179
|
-
- [ ] Error display with user-friendly message
|
|
180
|
-
- [ ] Button disabled when processing
|
|
181
|
-
- [ ] Cleanup on unmount
|
|
182
|
-
- [ ] Null checks on result
|
|
183
|
-
- [ ] Retry logic implemented
|
|
184
|
-
- [ ] Video caching configured
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
#### AI Implementation Checklist
|
|
188
|
-
|
|
189
|
-
Use this checklist when generating code:
|
|
190
|
-
|
|
191
|
-
- [ ] Feature imported from correct path
|
|
192
|
-
- [ ] Hook initialized with proper config
|
|
193
|
-
- [ ] All state handlers implemented
|
|
194
|
-
- [ ] Debouncing added to input
|
|
195
|
-
- [ ] Validation before generate()
|
|
196
|
-
- [ ] Loading indicator during processing
|
|
197
|
-
- [ ] Error display with user-friendly message
|
|
198
|
-
- [ ] Button disabled when processing
|
|
199
|
-
- [ ] Cleanup on unmount
|
|
200
|
-
- [ ] Null checks on result
|
|
201
|
-
- [ ] Retry logic implemented
|
|
202
|
-
- [ ] Video caching configured
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## 🛠️ Configuration Strategy
|
|
207
|
-
|
|
208
|
-
### Essential Configuration
|
|
209
|
-
|
|
210
|
-
```typescript
|
|
211
|
-
// Required fields
|
|
212
|
-
{
|
|
213
|
-
userId: string // User identifier for tracking
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Optional callbacks
|
|
217
|
-
{
|
|
218
|
-
onProcessingStart?: () => void
|
|
219
|
-
onProcessingComplete?: (result) => void
|
|
220
|
-
onError?: (error: string) => void
|
|
221
|
-
}
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
### Recommended Settings
|
|
225
|
-
|
|
226
|
-
1. **Model Selection**
|
|
227
|
-
- Default: `veo-3`
|
|
228
|
-
- Fastest: `veo-2`
|
|
229
|
-
- Highest quality: `veo-3`
|
|
230
|
-
|
|
231
|
-
2. **Generation Options**
|
|
232
|
-
- Duration: 4s (standard), 8s (long), 16s (extended)
|
|
233
|
-
- Aspect Ratio: 16:9 (landscape), 9:16 (portrait), 1:1 (square)
|
|
234
|
-
- Style: Choose based on use case
|
|
235
|
-
|
|
236
|
-
3. **Performance Settings**
|
|
237
|
-
- Enable video caching
|
|
238
|
-
- Set reasonable timeouts (video generation can take 2-5 minutes)
|
|
239
|
-
- Implement retry with backoff
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## 📊 State Management
|
|
244
|
-
|
|
245
|
-
### Feature States
|
|
246
|
-
|
|
247
|
-
**isReady**: boolean
|
|
248
|
-
- Feature initialized and ready to use
|
|
249
|
-
- Check before enabling generate button
|
|
250
|
-
|
|
251
|
-
**isProcessing**: boolean
|
|
252
|
-
- Video generation in progress
|
|
253
|
-
- Show loading indicator
|
|
254
|
-
- Disable generate button
|
|
255
|
-
|
|
256
|
-
**progress**: number (0-100)
|
|
257
|
-
- Generation progress percentage
|
|
258
|
-
- Update progress bar
|
|
259
|
-
|
|
260
|
-
**error**: string | null
|
|
261
|
-
- Error message if generation failed
|
|
262
|
-
- Display to user with clear message
|
|
263
|
-
|
|
264
|
-
**result**: {
|
|
265
|
-
videoUrl: string
|
|
266
|
-
thumbnailUrl?: string
|
|
267
|
-
duration?: number
|
|
268
|
-
metadata?: any
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
---
|
|
272
|
-
|
|
273
|
-
## 🔐 Security Considerations
|
|
274
|
-
|
|
275
|
-
### Content Moderation
|
|
276
|
-
|
|
277
|
-
- **MUST** implement prompt content filtering
|
|
278
|
-
- **MUST** check for inappropriate content
|
|
279
|
-
- **MUST** block harmful or illegal prompts
|
|
280
|
-
- **MUST** check for copyright violations
|
|
281
|
-
- **MUST** log moderation actions
|
|
282
|
-
|
|
283
|
-
### API Security
|
|
284
|
-
|
|
285
|
-
- **MUST** use environment variables for API keys
|
|
286
|
-
- **MUST** implement rate limiting
|
|
287
|
-
- **MUST** validate all user inputs
|
|
288
|
-
- **MUST** use HTTPS for all API calls
|
|
289
|
-
|
|
290
|
-
### Data Privacy
|
|
291
|
-
|
|
292
|
-
- **MUST** comply with data protection regulations
|
|
293
|
-
- **MUST** obtain user consent for generation
|
|
294
|
-
- **MUST** provide privacy policy
|
|
295
|
-
- **MUST** allow data deletion requests
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## 🎨 Best Practices
|
|
300
|
-
|
|
301
|
-
### Prompt Engineering
|
|
302
|
-
|
|
303
|
-
1. **Be Specific**
|
|
304
|
-
- Good: "A sunset over mountains with birds flying, camera pans left, cinematic lighting"
|
|
305
|
-
- Bad: "A sunset video"
|
|
306
|
-
|
|
307
|
-
2. **Include Camera Movement**
|
|
308
|
-
- Specify: pans, zooms, tracking shots
|
|
309
|
-
- Example: "camera slowly zooms in on subject"
|
|
310
|
-
|
|
311
|
-
3. **Add Technical Details**
|
|
312
|
-
- Lighting, camera angle, composition
|
|
313
|
-
- Example: "golden hour lighting, wide angle shot"
|
|
314
|
-
|
|
315
|
-
4. **Specify Style**
|
|
316
|
-
- Genre, mood, atmosphere
|
|
317
|
-
- Example: "cinematic, epic orchestral feel"
|
|
318
|
-
|
|
319
|
-
### Performance Optimization
|
|
320
|
-
|
|
321
|
-
1. **Debounce Input**
|
|
322
|
-
- Wait 500ms after user stops typing
|
|
323
|
-
- Prevents unnecessary validations
|
|
324
|
-
|
|
325
|
-
2. **Progress Feedback**
|
|
326
|
-
- Show realistic time estimates
|
|
327
|
-
- Video generation takes 2-5 minutes
|
|
328
|
-
|
|
329
|
-
3. **Cache Results**
|
|
330
|
-
- Store generated videos locally
|
|
331
|
-
- Implement cache invalidation strategy
|
|
332
|
-
|
|
333
|
-
4. **Thumbnail Generation**
|
|
334
|
-
- Generate thumbnail for preview
|
|
335
|
-
- Use first frame or midpoint
|
|
336
|
-
|
|
337
|
-
---
|
|
338
|
-
|
|
339
|
-
## 🐛 Common Pitfalls
|
|
340
|
-
|
|
341
|
-
### Prompt Issues
|
|
342
|
-
|
|
343
|
-
❌ **Problem**: Video doesn't match expectations
|
|
344
|
-
✅ **Solution**: Be more specific in prompt, include camera movements
|
|
345
|
-
|
|
346
|
-
### Performance Issues
|
|
347
|
-
|
|
348
|
-
❌ **Problem**: Very slow generation
|
|
349
|
-
✅ **Solution**: Show progress, allow cancellation, use shorter duration
|
|
350
|
-
|
|
351
|
-
### Memory Issues
|
|
352
|
-
|
|
353
|
-
❌ **Problem**: App crashes during generation
|
|
354
|
-
✅ **Solution**: Clean up properly, implement streaming, optimize memory
|
|
355
|
-
|
|
356
|
-
### Quality Issues
|
|
357
|
-
|
|
358
|
-
❌ **Problem**: Poor video quality
|
|
359
|
-
✅ **Solution**: Use higher quality model, better prompts
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## 📦 Related Components
|
|
364
|
-
|
|
365
|
-
Use these components from the library:
|
|
366
|
-
|
|
367
|
-
- **GenerationProgressModal**: Progress display
|
|
368
|
-
- **StyleSelector**: Style selection UI
|
|
369
|
-
- **AspectRatioSelector**: Aspect ratio picker
|
|
370
|
-
- **DurationSelector**: Duration options
|
|
371
|
-
- **VideoPlayer**: Video playback component
|
|
372
|
-
|
|
373
|
-
Located at: `src/presentation/components/`
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
## 🔄 Migration Strategy
|
|
378
|
-
|
|
379
|
-
If migrating from previous implementation:
|
|
380
|
-
|
|
381
|
-
1. **Update imports** to new path
|
|
382
|
-
2. **Replace old config** with new structure
|
|
383
|
-
3. **Update state handling** to match new interface
|
|
384
|
-
4. **Test all error cases**
|
|
385
|
-
5. **Update UI components** for new state structure
|
|
386
|
-
|
|
387
|
-
---
|
|
388
|
-
|
|
389
|
-
## 📚 Additional Resources
|
|
390
|
-
|
|
391
|
-
- Main documentation: `/docs/`
|
|
392
|
-
- API reference: `/docs/api/`
|
|
393
|
-
- Examples: `/docs/examples/basic/text-to-video/`
|
|
394
|
-
- Architecture: `/ARCHITECTURE.md`
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
**Last Updated**: 2025-01-08
|
|
399
|
-
**Version**: 2.0.0 (Strategy-based Documentation)
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## 📝 Changelog
|
|
404
|
-
|
|
405
|
-
### v2.0.0 - 2025-01-08
|
|
406
|
-
- **BREAKING**: Documentation format changed to strategy-based
|
|
407
|
-
- Removed extensive code examples
|
|
408
|
-
- Added rules, prohibitions, and AI agent directions
|
|
409
|
-
- Focus on best practices and implementation guidance
|
|
410
|
-
|
|
411
|
-
### v1.0.0 - Initial Release
|
|
412
|
-
- Initial feature documentation
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./types";
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Video Callback Types
|
|
3
|
-
* Single Responsibility: Define callback function signatures
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { TextToVideoResult } from "./request.types";
|
|
7
|
-
|
|
8
|
-
export interface VideoModerationResult {
|
|
9
|
-
allowed: boolean;
|
|
10
|
-
warnings: string[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export interface ProjectData {
|
|
14
|
-
videoUrl: string;
|
|
15
|
-
thumbnailUrl?: string;
|
|
16
|
-
prompt: string;
|
|
17
|
-
aspectRatio: string;
|
|
18
|
-
duration: number;
|
|
19
|
-
style: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface CreationData {
|
|
23
|
-
type: "text-to-video";
|
|
24
|
-
videoUrl: string;
|
|
25
|
-
thumbnailUrl?: string;
|
|
26
|
-
prompt: string;
|
|
27
|
-
metadata?: Record<string, unknown>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface GenerationStartData {
|
|
31
|
-
creationId: string;
|
|
32
|
-
type: "text-to-video";
|
|
33
|
-
prompt: string;
|
|
34
|
-
metadata?: Record<string, unknown>;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface TextToVideoCallbacks {
|
|
38
|
-
onCreditCheck?: (cost: number) => Promise<boolean>;
|
|
39
|
-
onCreditDeduct?: (cost: number) => Promise<void>;
|
|
40
|
-
onAuthCheck?: () => boolean;
|
|
41
|
-
onModeration?: (prompt: string) => Promise<VideoModerationResult>;
|
|
42
|
-
/** Called when generation starts - save a "processing" creation */
|
|
43
|
-
onGenerationStart?: (data: GenerationStartData) => Promise<void>;
|
|
44
|
-
/** Called when generation completes - update creation to "completed" */
|
|
45
|
-
onCreationSave?: (data: CreationData & { creationId: string }) => Promise<void>;
|
|
46
|
-
onGenerate?: (result: TextToVideoResult) => void;
|
|
47
|
-
onError?: (error: string) => void;
|
|
48
|
-
onProgress?: (progress: number) => void;
|
|
49
|
-
onPromptChange?: (prompt: string) => void;
|
|
50
|
-
onStyleChange?: (style: string) => void;
|
|
51
|
-
onTabChange?: (tab: string) => void;
|
|
52
|
-
onShowPaywall?: (cost: number) => void;
|
|
53
|
-
onShowModerationWarning?: (
|
|
54
|
-
warnings: string[],
|
|
55
|
-
onCancel: () => void,
|
|
56
|
-
onProceed: () => void,
|
|
57
|
-
) => void;
|
|
58
|
-
onNavigateToProjects?: () => void;
|
|
59
|
-
onNavigateToEditor?: (videoUrl: string) => void;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export interface TextToVideoTranslations {
|
|
63
|
-
promptPlaceholder: string;
|
|
64
|
-
generateButtonText: string;
|
|
65
|
-
processingText: string;
|
|
66
|
-
successText: string;
|
|
67
|
-
missingPromptTitle: string;
|
|
68
|
-
missingPromptMessage: string;
|
|
69
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Video Component Prop Types
|
|
3
|
-
* Single Responsibility: Define component prop interfaces
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { ViewStyle } from "react-native";
|
|
7
|
-
import type { FrameData } from "./state.types";
|
|
8
|
-
import type { TabConfig, VideoStyleOption, AspectRatioOption, VideoDurationOption } from "./config.types";
|
|
9
|
-
|
|
10
|
-
export interface GenerationTabsProps {
|
|
11
|
-
tabs: TabConfig[];
|
|
12
|
-
activeTab: string;
|
|
13
|
-
onTabChange: (tabId: string) => void;
|
|
14
|
-
getLabel: (key: string) => string;
|
|
15
|
-
style?: ViewStyle;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface FrameSelectorProps {
|
|
19
|
-
frames: FrameData[];
|
|
20
|
-
onFrameChange: (index: number) => void;
|
|
21
|
-
onFrameDelete: (index: number) => void;
|
|
22
|
-
startLabel: string;
|
|
23
|
-
endLabel: string;
|
|
24
|
-
changeLabel: string;
|
|
25
|
-
deleteLabel: string;
|
|
26
|
-
style?: ViewStyle;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export interface OptionsPanelProps {
|
|
30
|
-
soundEnabled: boolean;
|
|
31
|
-
onSoundToggle: (value: boolean) => void;
|
|
32
|
-
professionalMode: boolean;
|
|
33
|
-
onProfessionalModeToggle: (value: boolean) => void;
|
|
34
|
-
duration: number;
|
|
35
|
-
soundLabel: string;
|
|
36
|
-
soundBadge?: string;
|
|
37
|
-
professionalLabel: string;
|
|
38
|
-
style?: ViewStyle;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface HeroSectionProps {
|
|
42
|
-
title: string;
|
|
43
|
-
subtitle: string;
|
|
44
|
-
icon?: string;
|
|
45
|
-
style?: ViewStyle;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export interface HintCarouselProps {
|
|
49
|
-
hints: HintItem[];
|
|
50
|
-
onHintSelect: (hint: HintItem) => void;
|
|
51
|
-
onRefresh?: () => void;
|
|
52
|
-
style?: ViewStyle;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export interface HintItem {
|
|
56
|
-
id: string;
|
|
57
|
-
imageUrl: string;
|
|
58
|
-
prompt?: string;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export interface StyleSelectorProps {
|
|
62
|
-
styles: VideoStyleOption[];
|
|
63
|
-
selectedStyle: string;
|
|
64
|
-
onStyleSelect: (styleId: string) => void;
|
|
65
|
-
getLabel: (key: string) => string;
|
|
66
|
-
title: string;
|
|
67
|
-
style?: ViewStyle;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export interface AspectRatioSelectorProps {
|
|
71
|
-
ratios: AspectRatioOption[];
|
|
72
|
-
selectedRatio: string;
|
|
73
|
-
onRatioSelect: (ratioId: string) => void;
|
|
74
|
-
getLabel: (key: string) => string;
|
|
75
|
-
style?: ViewStyle;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export interface DurationSelectorProps {
|
|
79
|
-
durations: VideoDurationOption[];
|
|
80
|
-
selectedDuration: number;
|
|
81
|
-
onDurationSelect: (duration: number) => void;
|
|
82
|
-
getLabel: (key: string) => string;
|
|
83
|
-
style?: ViewStyle;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export interface GenerateButtonProps {
|
|
87
|
-
isGenerating: boolean;
|
|
88
|
-
isDisabled: boolean;
|
|
89
|
-
onPress: () => void;
|
|
90
|
-
credits?: number;
|
|
91
|
-
label: string;
|
|
92
|
-
generatingLabel: string;
|
|
93
|
-
style?: ViewStyle;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface ExamplePromptsProps {
|
|
97
|
-
prompts: ExamplePrompt[];
|
|
98
|
-
onPromptSelect: (prompt: string) => void;
|
|
99
|
-
style?: ViewStyle;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export interface ExamplePrompt {
|
|
103
|
-
id: string;
|
|
104
|
-
text: string;
|
|
105
|
-
emoji?: string;
|
|
106
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Video Configuration Types
|
|
3
|
-
* Single Responsibility: Define configuration interfaces for flexibility
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface TabConfig {
|
|
7
|
-
id: string;
|
|
8
|
-
labelKey: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface VideoStyleOption {
|
|
12
|
-
id: string;
|
|
13
|
-
nameKey: string;
|
|
14
|
-
descriptionKey?: string;
|
|
15
|
-
thumbnail?: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface AspectRatioOption {
|
|
19
|
-
id: string;
|
|
20
|
-
value: string;
|
|
21
|
-
labelKey: string;
|
|
22
|
-
icon?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface VideoDurationOption {
|
|
26
|
-
value: number;
|
|
27
|
-
labelKey: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface OptionToggleConfig {
|
|
31
|
-
id: string;
|
|
32
|
-
labelKey: string;
|
|
33
|
-
badgeKey?: string;
|
|
34
|
-
defaultValue?: boolean;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export interface TextToVideoConfig {
|
|
38
|
-
model: string;
|
|
39
|
-
creditCost: number;
|
|
40
|
-
maxPromptLength?: number;
|
|
41
|
-
enableFrames?: boolean;
|
|
42
|
-
enableHints?: boolean;
|
|
43
|
-
enableSound?: boolean;
|
|
44
|
-
enableProfessionalMode?: boolean;
|
|
45
|
-
tabs?: TabConfig[];
|
|
46
|
-
styles?: VideoStyleOption[];
|
|
47
|
-
aspectRatios?: AspectRatioOption[];
|
|
48
|
-
durations?: VideoDurationOption[];
|
|
49
|
-
options?: OptionToggleConfig[];
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export interface HeroConfig {
|
|
53
|
-
titleKey: string;
|
|
54
|
-
subtitleKey: string;
|
|
55
|
-
icon?: string;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export interface ProgressConfig {
|
|
59
|
-
titleKey: string;
|
|
60
|
-
hintKey: string;
|
|
61
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Text-to-Video Domain Types
|
|
3
|
-
* Single Responsibility: Export all domain types
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export type {
|
|
7
|
-
TextToVideoOptions,
|
|
8
|
-
TextToVideoRequest,
|
|
9
|
-
TextToVideoResult,
|
|
10
|
-
TextToVideoInputBuilder,
|
|
11
|
-
TextToVideoResultExtractor,
|
|
12
|
-
} from "./request.types";
|
|
13
|
-
|
|
14
|
-
export type {
|
|
15
|
-
TextToVideoFeatureState,
|
|
16
|
-
TextToVideoFormState,
|
|
17
|
-
TextToVideoGenerationState,
|
|
18
|
-
FrameData,
|
|
19
|
-
} from "./state.types";
|
|
20
|
-
|
|
21
|
-
export { INITIAL_FORM_STATE, INITIAL_GENERATION_STATE } from "./state.types";
|
|
22
|
-
|
|
23
|
-
export type {
|
|
24
|
-
TabConfig,
|
|
25
|
-
VideoStyleOption,
|
|
26
|
-
AspectRatioOption,
|
|
27
|
-
VideoDurationOption,
|
|
28
|
-
OptionToggleConfig,
|
|
29
|
-
TextToVideoConfig,
|
|
30
|
-
HeroConfig,
|
|
31
|
-
ProgressConfig,
|
|
32
|
-
} from "./config.types";
|
|
33
|
-
|
|
34
|
-
export type {
|
|
35
|
-
VideoModerationResult,
|
|
36
|
-
ProjectData,
|
|
37
|
-
CreationData,
|
|
38
|
-
GenerationStartData,
|
|
39
|
-
TextToVideoCallbacks,
|
|
40
|
-
TextToVideoTranslations,
|
|
41
|
-
} from "./callback.types";
|
|
42
|
-
|
|
43
|
-
export type {
|
|
44
|
-
GenerationTabsProps,
|
|
45
|
-
FrameSelectorProps,
|
|
46
|
-
OptionsPanelProps,
|
|
47
|
-
HeroSectionProps,
|
|
48
|
-
HintCarouselProps,
|
|
49
|
-
HintItem,
|
|
50
|
-
StyleSelectorProps,
|
|
51
|
-
AspectRatioSelectorProps,
|
|
52
|
-
DurationSelectorProps,
|
|
53
|
-
GenerateButtonProps,
|
|
54
|
-
ExamplePromptsProps,
|
|
55
|
-
ExamplePrompt,
|
|
56
|
-
} from "./component.types";
|