@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,86 +0,0 @@
|
|
|
1
|
-
import React, { useMemo } from "react";
|
|
2
|
-
import { Image, StyleSheet } from "react-native";
|
|
3
|
-
import { PhotoUploadCard } from "../../../../presentation/components/PhotoUploadCard";
|
|
4
|
-
import { SingleImageFeatureLayout } from "../../../../presentation/layouts";
|
|
5
|
-
import type { SingleImageInputRenderProps, ResultRenderProps } from "../../../../presentation/layouts";
|
|
6
|
-
import { useRemoveBackgroundFeature } from "../hooks";
|
|
7
|
-
import type { RemoveBackgroundTranslations, RemoveBackgroundFeatureConfig } from "../../domain/types";
|
|
8
|
-
|
|
9
|
-
export interface RemoveBackgroundFeatureProps {
|
|
10
|
-
config: RemoveBackgroundFeatureConfig;
|
|
11
|
-
translations: RemoveBackgroundTranslations & {
|
|
12
|
-
modalTitle?: string;
|
|
13
|
-
modalMessage?: string;
|
|
14
|
-
modalHint?: string;
|
|
15
|
-
modalBackgroundHint?: string;
|
|
16
|
-
};
|
|
17
|
-
onSelectImage: () => Promise<string | null>;
|
|
18
|
-
onSaveImage: (imageUrl: string) => Promise<void>;
|
|
19
|
-
onBeforeProcess?: () => Promise<boolean>;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const RemoveBackgroundFeature: React.FC<RemoveBackgroundFeatureProps> = ({
|
|
23
|
-
config,
|
|
24
|
-
translations,
|
|
25
|
-
onSelectImage,
|
|
26
|
-
onSaveImage,
|
|
27
|
-
onBeforeProcess,
|
|
28
|
-
}) => {
|
|
29
|
-
const feature = useRemoveBackgroundFeature({
|
|
30
|
-
config,
|
|
31
|
-
onSelectImage,
|
|
32
|
-
onSaveImage,
|
|
33
|
-
onBeforeProcess,
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
const modalTranslations = useMemo(
|
|
37
|
-
() => ({
|
|
38
|
-
title: translations.modalTitle || "Processing",
|
|
39
|
-
message: translations.modalMessage || "AI is removing the background...",
|
|
40
|
-
hint: translations.modalHint || "This may take a moment",
|
|
41
|
-
backgroundHint: translations.modalBackgroundHint || "Continue in background",
|
|
42
|
-
}),
|
|
43
|
-
[translations],
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
return (
|
|
47
|
-
<SingleImageFeatureLayout
|
|
48
|
-
feature={feature}
|
|
49
|
-
translations={translations}
|
|
50
|
-
modalTranslations={modalTranslations}
|
|
51
|
-
renderInput={({ imageUri, onSelect, isDisabled, isProcessing }: SingleImageInputRenderProps) => (
|
|
52
|
-
<PhotoUploadCard
|
|
53
|
-
imageUri={imageUri}
|
|
54
|
-
onPress={onSelect}
|
|
55
|
-
isValidating={isProcessing}
|
|
56
|
-
disabled={isDisabled}
|
|
57
|
-
translations={{
|
|
58
|
-
tapToUpload: translations.uploadTitle,
|
|
59
|
-
selectPhoto: translations.uploadSubtitle,
|
|
60
|
-
change: translations.uploadChange,
|
|
61
|
-
analyzing: translations.uploadAnalyzing,
|
|
62
|
-
}}
|
|
63
|
-
config={{
|
|
64
|
-
aspectRatio: 1,
|
|
65
|
-
borderRadius: 24,
|
|
66
|
-
showValidationStatus: false,
|
|
67
|
-
allowChange: true,
|
|
68
|
-
}}
|
|
69
|
-
/>
|
|
70
|
-
)}
|
|
71
|
-
renderResult={({ imageUrl, imageSize }: ResultRenderProps) => (
|
|
72
|
-
<Image
|
|
73
|
-
source={{ uri: imageUrl }}
|
|
74
|
-
style={[styles.resultImage, { width: imageSize, height: imageSize }]}
|
|
75
|
-
resizeMode="contain"
|
|
76
|
-
/>
|
|
77
|
-
)}
|
|
78
|
-
/>
|
|
79
|
-
);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const styles = StyleSheet.create({
|
|
83
|
-
resultImage: {
|
|
84
|
-
borderRadius: 16,
|
|
85
|
-
},
|
|
86
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { useRemoveBackgroundFeature, type UseRemoveBackgroundFeatureProps } from "./useRemoveBackgroundFeature";
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useRemoveBackgroundFeature Hook
|
|
3
|
-
* Uses base single image hook for background removal
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { useSingleImageFeature, type BaseSingleImageHookReturn } from "../../../image-to-image";
|
|
7
|
-
import type { RemoveBackgroundFeatureConfig } from "../../domain/types";
|
|
8
|
-
|
|
9
|
-
export interface UseRemoveBackgroundFeatureProps {
|
|
10
|
-
config: RemoveBackgroundFeatureConfig;
|
|
11
|
-
onSelectImage: () => Promise<string | null>;
|
|
12
|
-
onSaveImage: (imageUrl: string) => Promise<void>;
|
|
13
|
-
onBeforeProcess?: () => Promise<boolean>;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export function useRemoveBackgroundFeature(props: UseRemoveBackgroundFeatureProps): BaseSingleImageHookReturn {
|
|
17
|
-
const { config, onSelectImage, onSaveImage, onBeforeProcess } = props;
|
|
18
|
-
|
|
19
|
-
return useSingleImageFeature<RemoveBackgroundFeatureConfig>(
|
|
20
|
-
{ config: config as never, onSelectImage, onSaveImage, onBeforeProcess },
|
|
21
|
-
{
|
|
22
|
-
buildInput: (imageBase64, cfg) => ({
|
|
23
|
-
imageBase64,
|
|
24
|
-
options: cfg.defaultOptions,
|
|
25
|
-
}),
|
|
26
|
-
},
|
|
27
|
-
);
|
|
28
|
-
}
|
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
# Remove Object Feature
|
|
2
|
-
|
|
3
|
-
Remove unwanted objects from images using AI.
|
|
4
|
-
|
|
5
|
-
## 📍 Import Path
|
|
6
|
-
|
|
7
|
-
```typescript
|
|
8
|
-
import { useRemoveObjectFeature } from '@umituz/react-native-ai-generation-content';
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
**Location**: `src/features/remove-object/`
|
|
12
|
-
|
|
13
|
-
## 🎯 Feature Purpose
|
|
14
|
-
|
|
15
|
-
Intelligently remove unwanted objects from photos with automatic background reconstruction. Uses AI to fill in the removed area with natural-looking content that matches the surroundings.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 📋 Usage Strategy
|
|
20
|
-
|
|
21
|
-
### When to Use This Feature
|
|
22
|
-
|
|
23
|
-
✅ **Use Cases:**
|
|
24
|
-
- Removing photobombers from photos
|
|
25
|
-
- Cleaning up distracting elements
|
|
26
|
-
- Removing text, logos, or watermarks
|
|
27
|
-
- Eliminating trash or signs from nature photos
|
|
28
|
-
- Removing unwanted objects from backgrounds
|
|
29
|
-
|
|
30
|
-
❌ **When NOT to Use:**
|
|
31
|
-
- Background removal (use Remove Background)
|
|
32
|
-
- Filling missing areas (use Inpainting)
|
|
33
|
-
- Photo restoration (use Photo Restoration)
|
|
34
|
-
- Replacing background (use Replace Background)
|
|
35
|
-
|
|
36
|
-
### Implementation Strategy
|
|
37
|
-
|
|
38
|
-
1. **Select image** with unwanted objects
|
|
39
|
-
2. **Create mask** by painting over objects to remove
|
|
40
|
-
3. **Choose fill method** (smart, blur, color)
|
|
41
|
-
4. **Configure options** (edge feathering, context preservation)
|
|
42
|
-
5. **Process removal** with progress tracking
|
|
43
|
-
6. **Preview and compare** with original
|
|
44
|
-
7. **Save or adjust** result
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## ⚠️ Critical Rules (MUST FOLLOW)
|
|
49
|
-
|
|
50
|
-
### 1. Image Requirements
|
|
51
|
-
- **MUST** provide ONE image with objects to remove
|
|
52
|
-
- **MUST** use high-quality images (min 512x512 recommended)
|
|
53
|
-
- **MUST** have clear, visible objects to remove
|
|
54
|
-
- **MUST NOT** exceed file size limits (10MB max)
|
|
55
|
-
- **MUST** create accurate mask for objects
|
|
56
|
-
|
|
57
|
-
### 2. Mask Requirements
|
|
58
|
-
- **MUST** provide valid mask image
|
|
59
|
-
- **MUST** paint mask completely over objects
|
|
60
|
-
- **MUST** ensure mask covers entire object
|
|
61
|
-
- **MUST** include mask creation interface
|
|
62
|
-
- **MUST** validate mask before processing
|
|
63
|
-
|
|
64
|
-
### 3. Configuration
|
|
65
|
-
- **MUST** provide valid `userId` for tracking
|
|
66
|
-
- **MUST** specify `fillMethod` (smart, blur, color)
|
|
67
|
-
- **MUST** implement `onError` callback
|
|
68
|
-
- **MUST** implement `onSelectImage` callback
|
|
69
|
-
- **MUST** implement `onCreateMask` callback
|
|
70
|
-
|
|
71
|
-
### 4. State Management
|
|
72
|
-
- **MUST** check `isReady` before enabling remove button
|
|
73
|
-
- **MUST** verify both image and mask are provided
|
|
74
|
-
- **MUST** display progress during removal
|
|
75
|
-
- **MUST** display `error` state with clear messages
|
|
76
|
-
- **MUST** implement proper cleanup on unmount
|
|
77
|
-
|
|
78
|
-
### 5. Performance
|
|
79
|
-
- **MUST** implement image compression before upload
|
|
80
|
-
- **MUST** show progress indicator for processing
|
|
81
|
-
- **MUST** cache results locally
|
|
82
|
-
- **MUST** allow users to cancel processing
|
|
83
|
-
- **MUST NOT** remove multiple objects simultaneously (combine masks)
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## 🚫 Prohibitions (MUST AVOID)
|
|
88
|
-
|
|
89
|
-
### Strictly Forbidden
|
|
90
|
-
|
|
91
|
-
❌ **NEVER** do the following:
|
|
92
|
-
|
|
93
|
-
1. **No Missing Mask**
|
|
94
|
-
- Always validate mask is created
|
|
95
|
-
- Never call process() without mask
|
|
96
|
-
|
|
97
|
-
2. **No Auto-Processing**
|
|
98
|
-
- Never start removal without user action
|
|
99
|
-
- Always require explicit "Remove" button press
|
|
100
|
-
- Show mask 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 removal failures
|
|
108
|
-
- Always explain what went wrong
|
|
109
|
-
- Provide retry or alternative options
|
|
110
|
-
|
|
111
|
-
5. **No Memory Leaks**
|
|
112
|
-
- Never store both original and result simultaneously
|
|
113
|
-
- Clean up temporary mask images
|
|
114
|
-
- Implement proper image disposal
|
|
115
|
-
|
|
116
|
-
6. **No Blocked UI**
|
|
117
|
-
- Never block main thread with mask processing
|
|
118
|
-
- Always show progress indicator
|
|
119
|
-
- Allow cancellation
|
|
120
|
-
|
|
121
|
-
7. **No Incomplete Masking**
|
|
122
|
-
- Never use partial masks that don't cover entire object
|
|
123
|
-
- Always provide tools for complete object coverage
|
|
124
|
-
- Allow mask adjustment before processing
|
|
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 remove object 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 useRemoveObjectFeature hook
|
|
142
|
-
3. Implement image selection UI
|
|
143
|
-
4. Implement mask creation UI with drawing tools
|
|
144
|
-
5. Select fill method (smart, blur, color)
|
|
145
|
-
6. Configure options (featherEdges, preserveContext)
|
|
146
|
-
7. Validate both image and mask before processing
|
|
147
|
-
8. Show before/after comparison
|
|
148
|
-
9. Handle long processing times with progress
|
|
149
|
-
10. Implement proper error handling
|
|
150
|
-
11. Implement cleanup on unmount
|
|
151
|
-
|
|
152
|
-
CRITICAL RULES:
|
|
153
|
-
- MUST validate both image and mask before calling process()
|
|
154
|
-
- MUST provide mask drawing/creation interface
|
|
155
|
-
- MUST show before/after comparison
|
|
156
|
-
- MUST handle fill method selection
|
|
157
|
-
- MUST implement debouncing (300ms)
|
|
158
|
-
- MUST allow multiple removal attempts
|
|
159
|
-
|
|
160
|
-
CONFIGURATION:
|
|
161
|
-
- Provide valid userId (string)
|
|
162
|
-
- Set fillMethod: 'smart' | 'blur' | 'color'
|
|
163
|
-
- Set featherEdges: boolean (soften edges)
|
|
164
|
-
- Set preserveContext: boolean (maintain surroundings)
|
|
165
|
-
- Implement onSelectImage callback
|
|
166
|
-
- Implement onCreateMask callback
|
|
167
|
-
- Implement onSaveResult callback
|
|
168
|
-
- Configure callbacks: onProcessingStart, onProcessingComplete, onError
|
|
169
|
-
|
|
170
|
-
FILL METHODS:
|
|
171
|
-
- smart: AI-powered intelligent reconstruction (recommended)
|
|
172
|
-
- blur: Blur and blend surrounding area
|
|
173
|
-
- color: Fill with average surrounding color
|
|
174
|
-
|
|
175
|
-
OPTIONS:
|
|
176
|
-
- featherEdges: Soften edges for natural look (default: true)
|
|
177
|
-
- preserveContext: Maintain surrounding context (default: true)
|
|
178
|
-
|
|
179
|
-
STRICTLY FORBIDDEN:
|
|
180
|
-
- No missing mask validation
|
|
181
|
-
- No auto-processing without user action
|
|
182
|
-
- No hardcoded API keys
|
|
183
|
-
- No unhandled errors
|
|
184
|
-
- No memory leaks
|
|
185
|
-
- No blocking UI
|
|
186
|
-
- No incomplete masking
|
|
187
|
-
|
|
188
|
-
QUALITY CHECKLIST:
|
|
189
|
-
- [ ] Image selection implemented
|
|
190
|
-
- [ ] Mask creation/drawing interface added
|
|
191
|
-
- [ ] Fill method selector included
|
|
192
|
-
- [ ] Mask validation before processing
|
|
193
|
-
- [ ] Before/after comparison view
|
|
194
|
-
- [ ] Progress indicator during processing
|
|
195
|
-
- [ ] Error display with retry option
|
|
196
|
-
- [ ] Download/share functionality
|
|
197
|
-
- [ ] Multiple removal attempts supported
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
#### AI Implementation Checklist
|
|
201
|
-
|
|
202
|
-
Use this checklist when generating code:
|
|
203
|
-
|
|
204
|
-
- [ ] Feature imported from correct path
|
|
205
|
-
- [ ] Image selection implemented
|
|
206
|
-
- [ ] Mask drawing interface implemented
|
|
207
|
-
- [ ] Fill method selector added
|
|
208
|
-
- [ ] Validation before process() (image + mask)
|
|
209
|
-
- [ ] Before/after comparison view
|
|
210
|
-
- [ ] Progress indicator during processing
|
|
211
|
-
- [ ] Error display with user-friendly message
|
|
212
|
-
- [ ] Download/share buttons
|
|
213
|
-
- [ ] Multiple removal attempts option
|
|
214
|
-
- [ ] Cleanup on unmount
|
|
215
|
-
- [ ] Original image preserved
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
## 🛠️ Configuration Strategy
|
|
220
|
-
|
|
221
|
-
### Essential Configuration
|
|
222
|
-
|
|
223
|
-
```typescript
|
|
224
|
-
// Required fields
|
|
225
|
-
{
|
|
226
|
-
userId: string
|
|
227
|
-
fillMethod: 'smart' | 'blur' | 'color'
|
|
228
|
-
onSelectImage: () => Promise<string | null>
|
|
229
|
-
onCreateMask: () => Promise<string | null>
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
// Optional callbacks
|
|
233
|
-
{
|
|
234
|
-
onProcessingStart?: () => void
|
|
235
|
-
onProcessingComplete?: (result) => void
|
|
236
|
-
onError?: (error: string) => void
|
|
237
|
-
}
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
### Recommended Settings
|
|
241
|
-
|
|
242
|
-
1. **Fill Methods**
|
|
243
|
-
- Smart: AI-powered intelligent reconstruction (recommended for most cases)
|
|
244
|
-
- Blur: Blurred fill for simple backgrounds
|
|
245
|
-
- Color: Solid color fill for uniform areas
|
|
246
|
-
|
|
247
|
-
2. **Options**
|
|
248
|
-
- featherEdges: Soften edges for natural look (default: true)
|
|
249
|
-
- preserveContext: Maintain surrounding context (default: true)
|
|
250
|
-
|
|
251
|
-
3. **Image Quality**
|
|
252
|
-
- Minimum: 512x512 resolution
|
|
253
|
-
- Recommended: 1024x1024 or higher
|
|
254
|
-
- Format: JPEG or PNG
|
|
255
|
-
- Max size: 10MB
|
|
256
|
-
|
|
257
|
-
4. **Mask Quality**
|
|
258
|
-
- Complete coverage of object
|
|
259
|
-
- Slight margin around object edges
|
|
260
|
-
- Semi-transparent for preview
|
|
261
|
-
|
|
262
|
-
---
|
|
263
|
-
|
|
264
|
-
## 📊 State Management
|
|
265
|
-
|
|
266
|
-
### Feature States
|
|
267
|
-
|
|
268
|
-
**isReady**: boolean
|
|
269
|
-
- Image selected and mask created
|
|
270
|
-
- Check before enabling remove button
|
|
271
|
-
|
|
272
|
-
**isProcessing**: boolean
|
|
273
|
-
- Object removal in progress
|
|
274
|
-
- Show loading/progress indicator
|
|
275
|
-
- Disable remove button
|
|
276
|
-
|
|
277
|
-
**progress**: number (0-100)
|
|
278
|
-
- Removal progress percentage
|
|
279
|
-
- Update progress bar
|
|
280
|
-
|
|
281
|
-
**error**: string | null
|
|
282
|
-
- Error message if removal failed
|
|
283
|
-
- Display to user with clear message
|
|
284
|
-
|
|
285
|
-
**result**: {
|
|
286
|
-
imageUrl: string
|
|
287
|
-
originalImageUrl?: string
|
|
288
|
-
fillMethod?: string
|
|
289
|
-
metadata?: any
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## 🎨 Best Practices
|
|
295
|
-
|
|
296
|
-
### Mask Creation
|
|
297
|
-
|
|
298
|
-
1. **Object Coverage**
|
|
299
|
-
- Good: Complete coverage with slight margin
|
|
300
|
-
- Bad: Incomplete coverage, missing edges
|
|
301
|
-
|
|
302
|
-
2. **Background Complexity**
|
|
303
|
-
- Simple backgrounds: Easier removal
|
|
304
|
-
- Complex backgrounds: May require multiple attempts
|
|
305
|
-
- Smart fill works best for most cases
|
|
306
|
-
|
|
307
|
-
3. **Multiple Objects**
|
|
308
|
-
- Combine multiple objects into single mask
|
|
309
|
-
- Process all at once for consistency
|
|
310
|
-
|
|
311
|
-
### User Experience
|
|
312
|
-
|
|
313
|
-
1. **Mask Drawing Tools**
|
|
314
|
-
- Adjustable brush size
|
|
315
|
-
- Eraser for corrections
|
|
316
|
-
- Undo/redo support
|
|
317
|
-
- Zoom for precision
|
|
318
|
-
|
|
319
|
-
2. **Preview**
|
|
320
|
-
- Show mask overlay before processing
|
|
321
|
-
- Allow mask adjustments
|
|
322
|
-
- Preview fill method settings
|
|
323
|
-
|
|
324
|
-
3. **Before/After Comparison**
|
|
325
|
-
- Side-by-side comparison
|
|
326
|
-
- Slider for easy comparison
|
|
327
|
-
- Zoom for detail inspection
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
## 🐛 Common Pitfalls
|
|
332
|
-
|
|
333
|
-
### Mask Issues
|
|
334
|
-
|
|
335
|
-
❌ **Problem**: Object not fully removed
|
|
336
|
-
✅ **Solution**: Ensure mask covers entire object completely
|
|
337
|
-
|
|
338
|
-
### Background Issues
|
|
339
|
-
|
|
340
|
-
❌ **Problem**: Unnatural looking fill
|
|
341
|
-
✅ **Solution**: Try smart fill, enable context preservation
|
|
342
|
-
|
|
343
|
-
### Edge Issues
|
|
344
|
-
|
|
345
|
-
❌ **Problem**: Visible edges around removed area
|
|
346
|
-
✅ **Solution**: Enable edge feathering, improve mask precision
|
|
347
|
-
|
|
348
|
-
### Complex Objects
|
|
349
|
-
|
|
350
|
-
❌ **Problem**: Difficult to remove complex objects
|
|
351
|
-
✅ **Solution**: Use smart fill, may require multiple attempts
|
|
352
|
-
|
|
353
|
-
---
|
|
354
|
-
|
|
355
|
-
## 📦 Related Components
|
|
356
|
-
|
|
357
|
-
Use these components from the library:
|
|
358
|
-
|
|
359
|
-
- **PhotoUploadCard**: Upload image interface
|
|
360
|
-
- **MaskEditor**: Create mask with drawing tools
|
|
361
|
-
- **FillMethodSelector**: Choose fill strategy
|
|
362
|
-
- **ResultDisplay**: Before/after comparison
|
|
363
|
-
- **ProgressBar**: Progress display
|
|
364
|
-
|
|
365
|
-
Located at: `src/presentation/components/`
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
## 🔄 Migration Strategy
|
|
370
|
-
|
|
371
|
-
If migrating from previous implementation:
|
|
372
|
-
|
|
373
|
-
1. **Update imports** to new path
|
|
374
|
-
2. **Add mask creation interface**
|
|
375
|
-
3. **Implement fill method selector**
|
|
376
|
-
4. **Update state handling** for new structure
|
|
377
|
-
5. **Add before/after comparison**
|
|
378
|
-
6. **Test all fill methods**
|
|
379
|
-
|
|
380
|
-
---
|
|
381
|
-
|
|
382
|
-
## 📚 Additional Resources
|
|
383
|
-
|
|
384
|
-
- Main documentation: `/docs/`
|
|
385
|
-
- API reference: `/docs/api/`
|
|
386
|
-
- Examples: `/docs/examples/basic/remove-object/`
|
|
387
|
-
- Architecture: `/ARCHITECTURE.md`
|
|
388
|
-
|
|
389
|
-
---
|
|
390
|
-
|
|
391
|
-
**Last Updated**: 2025-01-08
|
|
392
|
-
**Version**: 2.0.0 (Strategy-based Documentation)
|
|
393
|
-
|
|
394
|
-
---
|
|
395
|
-
|
|
396
|
-
## 📝 Changelog
|
|
397
|
-
|
|
398
|
-
### v2.0.0 - 2025-01-08
|
|
399
|
-
- **BREAKING**: Documentation format changed to strategy-based
|
|
400
|
-
- Removed extensive code examples
|
|
401
|
-
- Added rules, prohibitions, and AI agent directions
|
|
402
|
-
- Focus on best practices and implementation guidance
|
|
403
|
-
|
|
404
|
-
### v1.0.0 - Initial Release
|
|
405
|
-
- Initial feature documentation
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remove Object Feature Types
|
|
3
|
-
* Types for object removal (inpainting)
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface RemoveObjectResult {
|
|
7
|
-
success: boolean;
|
|
8
|
-
imageUrl?: string;
|
|
9
|
-
imageBase64?: string;
|
|
10
|
-
error?: string;
|
|
11
|
-
requestId?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface RemoveObjectFeatureState {
|
|
15
|
-
imageUri: string | null;
|
|
16
|
-
maskUri: string | null;
|
|
17
|
-
prompt: string;
|
|
18
|
-
processedUrl: string | null;
|
|
19
|
-
isProcessing: boolean;
|
|
20
|
-
progress: number;
|
|
21
|
-
error: string | null;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface RemoveObjectTranslations {
|
|
25
|
-
uploadTitle: string;
|
|
26
|
-
uploadSubtitle: string;
|
|
27
|
-
uploadChange: string;
|
|
28
|
-
uploadAnalyzing: string;
|
|
29
|
-
maskTitle: string;
|
|
30
|
-
maskSubtitle: string;
|
|
31
|
-
promptPlaceholder: string;
|
|
32
|
-
description: string;
|
|
33
|
-
processingText: string;
|
|
34
|
-
processButtonText: string;
|
|
35
|
-
successText: string;
|
|
36
|
-
saveButtonText: string;
|
|
37
|
-
tryAnotherText: string;
|
|
38
|
-
beforeLabel?: string;
|
|
39
|
-
afterLabel?: string;
|
|
40
|
-
compareHint?: string;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export type RemoveObjectResultExtractor = (result: unknown) => string | undefined;
|
|
44
|
-
|
|
45
|
-
export interface RemoveObjectFeatureConfig {
|
|
46
|
-
creditCost?: number;
|
|
47
|
-
extractResult?: RemoveObjectResultExtractor;
|
|
48
|
-
prepareImage: (imageUri: string) => Promise<string>;
|
|
49
|
-
onImageSelect?: (uri: string) => void;
|
|
50
|
-
onMaskSelect?: (uri: string) => void;
|
|
51
|
-
onProcessingStart?: (data: { creationId: string; imageUri: string }) => void;
|
|
52
|
-
onProcessingComplete?: (result: RemoveObjectResult & { creationId?: string }) => void;
|
|
53
|
-
onError?: (error: string, creationId?: string) => void;
|
|
54
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Remove Object Feature
|
|
3
|
-
* Provider-agnostic object removal (inpainting) feature
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
// Domain Types
|
|
7
|
-
export type {
|
|
8
|
-
RemoveObjectResult,
|
|
9
|
-
RemoveObjectFeatureState,
|
|
10
|
-
RemoveObjectTranslations,
|
|
11
|
-
RemoveObjectFeatureConfig,
|
|
12
|
-
RemoveObjectResultExtractor,
|
|
13
|
-
} from "./domain";
|
|
14
|
-
|
|
15
|
-
// Presentation Hooks
|
|
16
|
-
export {
|
|
17
|
-
useRemoveObjectFeature,
|
|
18
|
-
type UseRemoveObjectFeatureProps,
|
|
19
|
-
type UseRemoveObjectFeatureReturn,
|
|
20
|
-
} from "./presentation";
|
|
21
|
-
|
|
22
|
-
// Presentation Components
|
|
23
|
-
export { RemoveObjectFeature, type RemoveObjectFeatureProps } from "./presentation";
|