@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.
Files changed (327) hide show
  1. package/package.json +3 -2
  2. package/src/domains/generation/application/feature-registry.ts +101 -0
  3. package/src/domains/generation/application/generation-strategy.factory.ts +128 -0
  4. package/src/domains/generation/domain/feature-config.types.ts +61 -0
  5. package/src/domains/generation/domain/generation.types.ts +74 -0
  6. package/src/domains/generation/index.ts +37 -0
  7. package/src/domains/generation/presentation/useAIGeneration.hook.ts +106 -0
  8. package/src/domains/wizard/infrastructure/strategies/wizard-strategy.factory.ts +3 -4
  9. package/src/index.ts +1 -25
  10. package/src/infrastructure/executors/executor-factory.ts +53 -0
  11. package/src/infrastructure/executors/image-executor.ts +133 -0
  12. package/src/infrastructure/executors/video-executor.ts +130 -0
  13. package/src/features/ai-hug/README.md +0 -438
  14. package/src/features/ai-hug/domain/index.ts +0 -5
  15. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  16. package/src/features/ai-hug/domain/types/index.ts +0 -7
  17. package/src/features/ai-hug/index.ts +0 -19
  18. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  19. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  20. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  21. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  22. package/src/features/ai-hug/presentation/index.ts +0 -6
  23. package/src/features/ai-kiss/README.md +0 -445
  24. package/src/features/ai-kiss/domain/index.ts +0 -5
  25. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  26. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  27. package/src/features/ai-kiss/index.ts +0 -19
  28. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  29. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  30. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  31. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  32. package/src/features/ai-kiss/presentation/index.ts +0 -6
  33. package/src/features/anime-selfie/README.md +0 -396
  34. package/src/features/anime-selfie/domain/index.ts +0 -5
  35. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  36. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  37. package/src/features/anime-selfie/index.ts +0 -20
  38. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  39. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  40. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  41. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  42. package/src/features/anime-selfie/presentation/index.ts +0 -6
  43. package/src/features/couple-future/README.md +0 -445
  44. package/src/features/couple-future/domain/types.ts +0 -63
  45. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  46. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  47. package/src/features/couple-future/index.ts +0 -83
  48. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  49. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  50. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  51. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  52. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  53. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  54. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  55. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  56. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  57. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  58. package/src/features/couple-future/presentation/components/index.ts +0 -12
  59. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  60. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  62. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  63. package/src/features/face-swap/README.md +0 -431
  64. package/src/features/face-swap/domain/index.ts +0 -5
  65. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  66. package/src/features/face-swap/domain/types/index.ts +0 -7
  67. package/src/features/face-swap/index.ts +0 -19
  68. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  69. package/src/features/face-swap/presentation/components/index.ts +0 -2
  70. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  71. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  72. package/src/features/face-swap/presentation/index.ts +0 -6
  73. package/src/features/hd-touch-up/README.md +0 -396
  74. package/src/features/hd-touch-up/domain/index.ts +0 -1
  75. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  76. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  77. package/src/features/hd-touch-up/index.ts +0 -21
  78. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  79. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  80. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  81. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  82. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  83. package/src/features/image-to-image/README.md +0 -459
  84. package/src/features/image-to-image/domain/index.ts +0 -1
  85. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  86. package/src/features/image-to-image/domain/types/index.ts +0 -1
  87. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  88. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  89. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  90. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  91. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  92. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  93. package/src/features/image-to-image/index.ts +0 -2
  94. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  95. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  96. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  97. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  98. package/src/features/image-to-image/presentation/index.ts +0 -1
  99. package/src/features/image-to-video/README.md +0 -414
  100. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  101. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  102. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  103. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  104. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  105. package/src/features/image-to-video/domain/index.ts +0 -5
  106. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  107. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  108. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  109. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  110. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  111. package/src/features/image-to-video/domain/types/index.ts +0 -39
  112. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  113. package/src/features/image-to-video/index.ts +0 -116
  114. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  115. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  116. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  117. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  118. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  119. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  120. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  121. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  122. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  123. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  125. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  126. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  127. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  128. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  129. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  130. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  131. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  132. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  134. package/src/features/image-to-video/presentation/index.ts +0 -5
  135. package/src/features/love-message/domain/constants.ts +0 -162
  136. package/src/features/love-message/domain/types.ts +0 -58
  137. package/src/features/love-message/index.ts +0 -37
  138. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  139. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  140. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  141. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  142. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  143. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  144. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  145. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  146. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  147. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  148. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  149. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  150. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  151. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  152. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  153. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  154. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  155. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  156. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  157. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  158. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  159. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  160. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  161. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  162. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  163. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  164. package/src/features/meme-generator/README.md +0 -408
  165. package/src/features/meme-generator/index.ts +0 -3
  166. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  167. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  168. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  169. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  170. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  171. package/src/features/partner-upload/domain/types.ts +0 -59
  172. package/src/features/partner-upload/index.ts +0 -30
  173. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  174. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  175. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  176. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  177. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  178. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  179. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  180. package/src/features/photo-restoration/README.md +0 -399
  181. package/src/features/photo-restoration/domain/index.ts +0 -1
  182. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  183. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  184. package/src/features/photo-restoration/index.ts +0 -22
  185. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  186. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  187. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  188. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  189. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  190. package/src/features/photo-restoration/presentation/index.ts +0 -2
  191. package/src/features/remove-background/README.md +0 -393
  192. package/src/features/remove-background/domain/index.ts +0 -5
  193. package/src/features/remove-background/domain/types/index.ts +0 -7
  194. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  195. package/src/features/remove-background/index.ts +0 -19
  196. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  197. package/src/features/remove-background/presentation/components/index.ts +0 -2
  198. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  199. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  200. package/src/features/remove-background/presentation/index.ts +0 -6
  201. package/src/features/remove-object/README.md +0 -405
  202. package/src/features/remove-object/domain/index.ts +0 -5
  203. package/src/features/remove-object/domain/types/index.ts +0 -7
  204. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  205. package/src/features/remove-object/index.ts +0 -23
  206. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  207. package/src/features/remove-object/presentation/components/index.ts +0 -2
  208. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  209. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  210. package/src/features/remove-object/presentation/index.ts +0 -6
  211. package/src/features/replace-background/README.md +0 -405
  212. package/src/features/replace-background/domain/types/index.ts +0 -7
  213. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  214. package/src/features/replace-background/index.ts +0 -23
  215. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  216. package/src/features/replace-background/presentation/components/index.ts +0 -6
  217. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  218. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  219. package/src/features/scenarios/domain/types.ts +0 -147
  220. package/src/features/scenarios/index.ts +0 -64
  221. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  222. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  223. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  224. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  225. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  226. package/src/features/scenarios/presentation/components/index.ts +0 -18
  227. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  228. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  229. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  230. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  231. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  232. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  233. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  234. package/src/features/script-generator/README.md +0 -433
  235. package/src/features/script-generator/domain/constants/index.ts +0 -10
  236. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  237. package/src/features/script-generator/index.ts +0 -5
  238. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  239. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  240. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  241. package/src/features/script-generator/presentation/components/index.ts +0 -2
  242. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  243. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  244. package/src/features/shared/README.md +0 -311
  245. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  246. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  247. package/src/features/shared/dual-image-video/index.ts +0 -17
  248. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  249. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  250. package/src/features/shared/index.ts +0 -6
  251. package/src/features/text-to-image/README.md +0 -394
  252. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  253. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  254. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  255. package/src/features/text-to-image/domain/index.ts +0 -7
  256. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  257. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  258. package/src/features/text-to-image/domain/types/index.ts +0 -38
  259. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  260. package/src/features/text-to-image/index.ts +0 -116
  261. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  262. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  263. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  264. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  265. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  266. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  267. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  268. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  269. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  270. package/src/features/text-to-image/presentation/index.ts +0 -7
  271. package/src/features/text-to-video/README.md +0 -412
  272. package/src/features/text-to-video/domain/index.ts +0 -1
  273. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  274. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  275. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  276. package/src/features/text-to-video/domain/types/index.ts +0 -56
  277. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  278. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  279. package/src/features/text-to-video/index.ts +0 -68
  280. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  281. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  282. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  283. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  284. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  285. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  286. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  287. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  288. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  289. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  290. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  291. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  292. package/src/features/text-to-video/presentation/index.ts +0 -7
  293. package/src/features/text-to-voice/README.md +0 -445
  294. package/src/features/text-to-voice/domain/index.ts +0 -1
  295. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  296. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  297. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  298. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  299. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  300. package/src/features/text-to-voice/index.ts +0 -53
  301. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  302. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  303. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  304. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  305. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  306. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  307. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  308. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  309. package/src/features/text-to-voice/presentation/index.ts +0 -2
  310. package/src/features/upscaling/README.md +0 -396
  311. package/src/features/upscaling/domain/index.ts +0 -1
  312. package/src/features/upscaling/domain/types/index.ts +0 -1
  313. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  314. package/src/features/upscaling/index.ts +0 -20
  315. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  316. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  317. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  318. package/src/features/upscaling/presentation/components/index.ts +0 -6
  319. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  320. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  321. package/src/features/upscaling/presentation/index.ts +0 -2
  322. package/src/features/wizard/domain/types.ts +0 -154
  323. package/src/features/wizard/index.ts +0 -43
  324. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  325. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  326. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  327. package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
@@ -1,405 +0,0 @@
1
- # Replace Background Feature
2
-
3
- Replace image backgrounds with new scenes using AI.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import { useReplaceBackgroundFeature } from '@umituz/react-native-ai-generation-content';
9
- ```
10
-
11
- **Location**: `src/features/replace-background/`
12
-
13
- ## 🎯 Feature Purpose
14
-
15
- Remove existing backgrounds from images and replace them with custom backgrounds or built-in templates. Features automatic subject detection, natural edge blending, and optional lighting/color matching for seamless results.
16
-
17
- ---
18
-
19
- ## 📋 Usage Strategy
20
-
21
- ### When to Use This Feature
22
-
23
- ✅ **Use Cases:**
24
- - Creating professional photos with studio backgrounds
25
- - Adding travel backgrounds to portraits
26
- - Creating product photos with clean backgrounds
27
- - Creative background replacements for social media
28
- - Replacing distracting backgrounds
29
-
30
- ❌ **When NOT to Use:**
31
- - Simple background removal (use Remove Background)
32
- - Removing objects from images (use Remove Object)
33
- - Background removal without replacement (use Remove Background)
34
-
35
- ### Implementation Strategy
36
-
37
- 1. **Select foreground image** with subject
38
- 2. **Select new background** (upload or template)
39
- 3. **Configure options** (edge smoothness, lighting, colors)
40
- 4. **Process replacement** with progress tracking
41
- 5. **Preview result** and offer regeneration
42
- 6. **Save or share** final image
43
-
44
- ---
45
-
46
- ## ⚠️ Critical Rules (MUST FOLLOW)
47
-
48
- ### 1. Image Requirements
49
- - **MUST** provide TWO images (foreground + background)
50
- - **MUST** use high-quality images (min 512x512 recommended)
51
- - **MUST** have clear subject in foreground
52
- - **MUST NOT** exceed file size limits (10MB each)
53
- - **MUST** validate both images before processing
54
-
55
- ### 2. Configuration
56
- - **MUST** provide valid `userId` for tracking
57
- - **MUST** specify `edgeSmoothness` (low, medium, high)
58
- - **MUST** implement `onError` callback
59
- - **MUST** implement `onSelectForeground` callback
60
- - **MUST** implement `onSelectBackground` callback
61
-
62
- ### 3. State Management
63
- - **MUST** check `isReady` before enabling replace button
64
- - **MUST** verify both images are selected
65
- - **MUST** display progress during replacement
66
- - **MUST** display `error` state with clear messages
67
- - **MUST** implement proper cleanup on unmount
68
-
69
- ### 4. Performance
70
- - **MUST** implement image compression before upload
71
- - **MUST** show progress indicator for processing
72
- - **MUST** cache results locally
73
- - **MUST** allow users to cancel processing
74
- - **MUST NOT** replace multiple backgrounds simultaneously
75
-
76
- ### 5. Quality Options
77
- - **MUST** provide edge smoothness control
78
- - **MUST** support lighting adjustment
79
- - **MUST** support color matching
80
- - **MUST** offer background blur option
81
- - **MUST** handle various image types
82
-
83
- ---
84
-
85
- ## 🚫 Prohibitions (MUST AVOID)
86
-
87
- ### Strictly Forbidden
88
-
89
- ❌ **NEVER** do the following:
90
-
91
- 1. **No Missing Images**
92
- - Always validate both foreground and background are selected
93
- - Never call process() without both images
94
-
95
- 2. **No Auto-Processing**
96
- - Never start replacement without user action
97
- - Always require explicit "Replace" button press
98
- - Show preview before processing
99
-
100
- 3. **No Hardcoded Credentials**
101
- - Never store API keys in component files
102
- - Use environment variables or secure storage
103
-
104
- 4. **No Unhandled Errors**
105
- - Never ignore replacement failures
106
- - Always explain what went wrong
107
- - Provide retry or alternative options
108
-
109
- 5. **No Memory Leaks**
110
- - Never store all images simultaneously in state
111
- - Clean up temporary images
112
- - Implement proper image disposal
113
-
114
- 6. **No Blocked UI**
115
- - Never block main thread with image processing
116
- - Always show progress indicator
117
- - Allow cancellation
118
-
119
- 7. **No Perspective Mismatch**
120
- - Never warn about perspective mismatches between images
121
- - Always provide guidance on background selection
122
- - Show preview before final processing
123
-
124
- ---
125
-
126
- ## 🤖 AI Agent Directions
127
-
128
- ### For AI Code Generation Tools
129
-
130
- When using this feature with AI code generation tools, follow these guidelines:
131
-
132
- #### Prompt Template for AI Agents
133
-
134
- ```
135
- You are implementing a replace background feature using @umituz/react-native-ai-generation-content.
136
-
137
- REQUIREMENTS:
138
- 1. Import from: @umituz/react-native-ai-generation-content
139
- 2. Use the useReplaceBackgroundFeature hook
140
- 3. Implement dual image selection (foreground + background)
141
- 4. Provide background templates or custom upload
142
- 5. Set edge smoothness level (low, medium, high)
143
- 6. Configure options (adjustLighting, adjustColors, blurBackground)
144
- 7. Validate both images before processing
145
- 8. Show result preview
146
- 9. Handle long processing times with progress
147
- 10. Implement proper error handling
148
- 11. Implement cleanup on unmount
149
-
150
- CRITICAL RULES:
151
- - MUST validate both foreground and background images before calling process()
152
- - MUST provide clear UI for foreground vs background selection
153
- - MUST show result preview with quality check
154
- - MUST handle edge smoothness adjustment
155
- - MUST implement debouncing (300ms)
156
- - MUST allow background regeneration
157
-
158
- CONFIGURATION:
159
- - Provide valid userId (string)
160
- - Set edgeSmoothness: 'low' | 'medium' | 'high'
161
- - Set adjustLighting: boolean (match foreground/background lighting)
162
- - Set adjustColors: boolean (color-grade foreground to match background)
163
- - Set blurBackground: boolean (add blur for depth effect)
164
- - Implement onSelectForeground callback
165
- - Implement onSelectBackground callback
166
- - Implement onSaveResult callback
167
- - Configure callbacks: onProcessingStart, onProcessingComplete, onError
168
-
169
- OPTIONS:
170
- - edgeSmoothness: Edge blending quality
171
- - adjustLighting: Match lighting between images
172
- - adjustColors: Harmonize colors
173
- - blurBackground: Add depth with background blur
174
-
175
- STRICTLY FORBIDDEN:
176
- - No missing image validation (both images required)
177
- - No auto-processing without user action
178
- - No hardcoded API keys
179
- - No unhandled errors
180
- - No memory leaks
181
- - No blocking UI
182
- - No perspective mismatch warnings
183
-
184
- QUALITY CHECKLIST:
185
- - [ ] Foreground selection implemented
186
- - [ ] Background selection/template picker added
187
- - [ ] Edge smoothness selector included
188
- - [ ] Lighting/color adjustment toggles
189
- - [ ] Validation before process() (both images)
190
- - [ ] Result preview display
191
- - [ ] Progress indicator during processing
192
- - [ ] Error display with retry option
193
- - [ ] Download/share functionality
194
- - [ ] Background template library
195
- ```
196
-
197
- #### AI Implementation Checklist
198
-
199
- Use this checklist when generating code:
200
-
201
- - [ ] Feature imported from correct path
202
- - [ ] Dual image selection implemented
203
- - [ ] Background templates provided
204
- - [ ] Edge smoothness selector added
205
- - [ ] Lighting/color adjustment toggles
206
- - [ ] Validation before process() (both images)
207
- - [ ] Result preview display
208
- - [ ] Progress indicator during processing
209
- - [ ] Error display with user-friendly message
210
- - [ ] Download/share buttons
211
- - [ ] Cleanup on unmount
212
- - [ ] Original images preserved
213
-
214
- ---
215
-
216
- ## 🛠️ Configuration Strategy
217
-
218
- ### Essential Configuration
219
-
220
- ```typescript
221
- // Required fields
222
- {
223
- userId: string
224
- edgeSmoothness: 'low' | 'medium' | 'high'
225
- onSelectForeground: () => Promise<string | null>
226
- onSelectBackground: () => Promise<string | null>
227
- }
228
-
229
- // Optional callbacks
230
- {
231
- onProcessingStart?: () => void
232
- onProcessingComplete?: (result) => void
233
- onError?: (error: string) => void
234
- }
235
- ```
236
-
237
- ### Recommended Settings
238
-
239
- 1. **Edge Smoothness**
240
- - Low: Sharp, precise edges (products, objects)
241
- - Medium: Balanced edges (portraits, general use)
242
- - High: Soft, blended edges (artistic effects)
243
-
244
- 2. **Quality Options**
245
- - adjustLighting: Match foreground/background lighting
246
- - adjustColors: Color-grade foreground to match background
247
- - blurBackground: Add blur for depth effect
248
-
249
- 3. **Image Quality**
250
- - Minimum: 512x512 resolution
251
- - Recommended: 1024x1024 or higher
252
- - Format: JPEG or PNG
253
- - Max size: 10MB each
254
-
255
- 4. **Background Selection**
256
- - Use backgrounds with similar perspective
257
- - Match lighting direction when possible
258
- - Consider color harmony
259
-
260
- ---
261
-
262
- ## 📊 State Management
263
-
264
- ### Feature States
265
-
266
- **isReady**: boolean
267
- - Both images selected and validated
268
- - Check before enabling replace button
269
-
270
- **isProcessing**: boolean
271
- - Background replacement in progress
272
- - Show loading/progress indicator
273
- - Disable replace button
274
-
275
- **progress**: number (0-100)
276
- - Replacement progress percentage
277
- - Update progress bar
278
-
279
- **error**: string | null
280
- - Error message if replacement failed
281
- - Display to user with clear message
282
-
283
- **result**: {
284
- imageUrl: string
285
- foregroundImageUrl?: string
286
- backgroundImageUrl?: string
287
- edgeSmoothness?: string
288
- metadata?: any
289
- }
290
-
291
- ---
292
-
293
- ## 🎨 Best Practices
294
-
295
- ### Background Selection
296
-
297
- 1. **Perspective Matching**
298
- - Good: Similar perspective and angle
299
- - Bad: Conflicting perspectives
300
-
301
- 2. **Lighting Considerations**
302
- - Enable adjustLighting for natural results
303
- - Match lighting direction when possible
304
- - Consider time of day
305
-
306
- 3. **Color Harmony**
307
- - Use adjustColors for better integration
308
- - Consider complementary colors
309
- - Test different backgrounds
310
-
311
- ### User Experience
312
-
313
- 1. **Background Templates**
314
- - Provide curated background options
315
- - Categorize by use case (studio, travel, nature, etc.)
316
- - Show previews before selection
317
-
318
- 2. **Preview**
319
- - Show combined result before saving
320
- - Allow option adjustment
321
- - Compare with original
322
-
323
- 3. **Quality Settings**
324
- - Explain edge smoothness options
325
- - Provide presets (portrait, product, creative)
326
- - Allow fine-tuning
327
-
328
- ---
329
-
330
- ## 🐛 Common Pitfalls
331
-
332
- ### Perspective Issues
333
-
334
- ❌ **Problem**: Unnatural looking result due to perspective mismatch
335
- ✅ **Solution**: Choose background with similar perspective
336
-
337
- ### Edge Issues
338
-
339
- ❌ **Problem**: Visible edges around subject
340
- ✅ **Solution**: Adjust edge smoothness, enable lighting/color adjustment
341
-
342
- ### Quality Issues
343
-
344
- ❌ **Problem**: Poor subject detection
345
- ✅ **Solution**: Use higher quality foreground image with clear subject
346
-
347
- ### Lighting Issues
348
-
349
- ❌ **Problem**: Lighting doesn't match between images
350
- ✅ **Solution**: Enable adjustLighting and adjustColors options
351
-
352
- ---
353
-
354
- ## 📦 Related Components
355
-
356
- Use these components from the library:
357
-
358
- - **PhotoUploadCard**: Upload image interface
359
- - **DualImagePicker**: Select foreground and background
360
- - **BackgroundTemplates**: Pre-made background options
361
- - **EdgeSmoothnessSelector**: Choose edge quality
362
- - **ResultDisplay**: Show combined result
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 dual image selection** (foreground + background)
375
- 3. **Implement edge smoothness control**
376
- 4. **Add quality options** (lighting, color, blur)
377
- 5. **Update state handling** for both images
378
- 6. **Test all edge smoothness levels**
379
-
380
- ---
381
-
382
- ## 📚 Additional Resources
383
-
384
- - Main documentation: `/docs/`
385
- - API reference: `/docs/api/`
386
- - Examples: `/docs/examples/basic/replace-background/`
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,7 +0,0 @@
1
- export type {
2
- ReplaceBackgroundMode,
3
- ReplaceBackgroundResult,
4
- ReplaceBackgroundFeatureState,
5
- ReplaceBackgroundTranslations,
6
- ReplaceBackgroundFeatureConfig,
7
- } from "./replace-background.types";
@@ -1,33 +0,0 @@
1
- /**
2
- * Replace Background Feature Types
3
- * Extends base image-to-image types with replace-background options
4
- */
5
-
6
- import type {
7
- BaseImageResult,
8
- BaseImageWithPromptState,
9
- BaseImageTranslations,
10
- SingleImageConfig,
11
- } from "../../../image-to-image/domain/types";
12
-
13
- export type ReplaceBackgroundMode =
14
- | "replace"
15
- | "blur"
16
- | "creative-scene"
17
- | "solid-color";
18
-
19
- export type ReplaceBackgroundResult = BaseImageResult;
20
-
21
- export interface ReplaceBackgroundFeatureState extends BaseImageWithPromptState {
22
- mode: ReplaceBackgroundMode;
23
- }
24
-
25
- export interface ReplaceBackgroundTranslations extends BaseImageTranslations {
26
- promptPlaceholder: string;
27
- }
28
-
29
- export interface ReplaceBackgroundFeatureConfig
30
- extends SingleImageConfig<ReplaceBackgroundResult> {
31
- defaultMode?: ReplaceBackgroundMode;
32
- onPromptChange?: (prompt: string) => void;
33
- }
@@ -1,23 +0,0 @@
1
- /**
2
- * Replace Background Feature
3
- * AI-powered background replacement feature
4
- */
5
-
6
- // Domain Types
7
- export type {
8
- ReplaceBackgroundMode,
9
- ReplaceBackgroundResult,
10
- ReplaceBackgroundFeatureState,
11
- ReplaceBackgroundTranslations,
12
- ReplaceBackgroundFeatureConfig,
13
- } from "./domain/types";
14
-
15
- // Presentation Components
16
- export { ReplaceBackgroundFeature, type ReplaceBackgroundFeatureProps } from "./presentation/components";
17
-
18
- // Presentation Hooks
19
- export {
20
- useReplaceBackgroundFeature,
21
- type UseReplaceBackgroundFeatureProps,
22
- type UseReplaceBackgroundFeatureReturn,
23
- } from "./presentation/hooks";
@@ -1,105 +0,0 @@
1
- import React, { useMemo } from "react";
2
- import { View, Image, StyleSheet } from "react-native";
3
- import { AtomicInput } from "@umituz/react-native-design-system";
4
- import { PhotoUploadCard } from "../../../../presentation/components/PhotoUploadCard";
5
- import { SingleImageWithPromptFeatureLayout } from "../../../../presentation/layouts";
6
- import type { SingleImageWithPromptInputRenderProps, ResultRenderProps } from "../../../../presentation/layouts";
7
- import { useReplaceBackgroundFeature } from "../hooks";
8
- import type { ReplaceBackgroundTranslations, ReplaceBackgroundFeatureConfig } from "../../domain/types";
9
-
10
- export interface ReplaceBackgroundFeatureProps {
11
- config: ReplaceBackgroundFeatureConfig;
12
- translations: ReplaceBackgroundTranslations & {
13
- modalTitle?: string;
14
- modalMessage?: string;
15
- modalHint?: string;
16
- modalBackgroundHint?: string;
17
- };
18
- onSelectImage: () => Promise<string | null>;
19
- onSaveImage: (imageUrl: string) => Promise<void>;
20
- onBeforeProcess?: () => Promise<boolean>;
21
- }
22
-
23
- export const ReplaceBackgroundFeature: React.FC<ReplaceBackgroundFeatureProps> = ({
24
- config,
25
- translations,
26
- onSelectImage,
27
- onSaveImage,
28
- onBeforeProcess,
29
- }) => {
30
- const feature = useReplaceBackgroundFeature({
31
- config,
32
- onSelectImage,
33
- onSaveImage,
34
- onBeforeProcess,
35
- });
36
-
37
- const modalTranslations = useMemo(
38
- () => ({
39
- title: translations.modalTitle || "Processing",
40
- message: translations.modalMessage || "AI is replacing the background...",
41
- hint: translations.modalHint || "This may take a moment",
42
- backgroundHint: translations.modalBackgroundHint || "Continue in background",
43
- }),
44
- [translations],
45
- );
46
-
47
- return (
48
- <SingleImageWithPromptFeatureLayout
49
- feature={feature}
50
- translations={translations}
51
- modalTranslations={modalTranslations}
52
- renderInput={({ imageUri, onSelect, isDisabled, isProcessing, prompt, onPromptChange }: SingleImageWithPromptInputRenderProps) => (
53
- <>
54
- <PhotoUploadCard
55
- imageUri={imageUri}
56
- onPress={onSelect}
57
- isValidating={isProcessing}
58
- disabled={isDisabled}
59
- translations={{
60
- tapToUpload: translations.uploadTitle,
61
- selectPhoto: translations.uploadSubtitle,
62
- change: translations.uploadChange,
63
- analyzing: translations.uploadAnalyzing,
64
- }}
65
- config={{
66
- aspectRatio: 1,
67
- borderRadius: 24,
68
- showValidationStatus: false,
69
- allowChange: true,
70
- }}
71
- />
72
-
73
- <View style={styles.promptContainer}>
74
- <AtomicInput
75
- value={prompt}
76
- onChangeText={onPromptChange}
77
- placeholder={translations.promptPlaceholder}
78
- multiline
79
- numberOfLines={3}
80
- disabled={isProcessing}
81
- />
82
- </View>
83
- </>
84
- )}
85
- renderResult={({ imageUrl, imageSize }: ResultRenderProps) => (
86
- <Image
87
- source={{ uri: imageUrl }}
88
- style={[styles.resultImage, { width: imageSize, height: imageSize }]}
89
- resizeMode="contain"
90
- />
91
- )}
92
- />
93
- );
94
- };
95
-
96
- const styles = StyleSheet.create({
97
- promptContainer: {
98
- marginHorizontal: 24,
99
- marginTop: 16,
100
- marginBottom: 8,
101
- },
102
- resultImage: {
103
- borderRadius: 16,
104
- },
105
- });
@@ -1,6 +0,0 @@
1
- /**
2
- * Presentation Components Export
3
- */
4
-
5
- export { ReplaceBackgroundFeature } from "./ReplaceBackgroundFeature";
6
- export type { ReplaceBackgroundFeatureProps } from "./ReplaceBackgroundFeature";
@@ -1,9 +0,0 @@
1
- /**
2
- * Presentation Hooks Export
3
- */
4
-
5
- export { useReplaceBackgroundFeature } from "./useReplaceBackgroundFeature";
6
- export type {
7
- UseReplaceBackgroundFeatureProps,
8
- UseReplaceBackgroundFeatureReturn,
9
- } from "./useReplaceBackgroundFeature";
@@ -1,55 +0,0 @@
1
- /**
2
- * useReplaceBackgroundFeature Hook
3
- * Uses base image with prompt hook for background replacement
4
- */
5
-
6
- import { useState, useCallback } from "react";
7
- import {
8
- useImageWithPromptFeature,
9
- type ImageWithPromptHookReturn,
10
- } from "../../../image-to-image";
11
- import type {
12
- ReplaceBackgroundFeatureConfig,
13
- ReplaceBackgroundResult,
14
- ReplaceBackgroundMode,
15
- } from "../../domain/types";
16
-
17
- export interface UseReplaceBackgroundFeatureProps {
18
- config: ReplaceBackgroundFeatureConfig;
19
- onSelectImage: () => Promise<string | null>;
20
- onSaveImage: (imageUrl: string) => Promise<void>;
21
- onBeforeProcess?: () => Promise<boolean>;
22
- }
23
-
24
- export interface UseReplaceBackgroundFeatureReturn extends ImageWithPromptHookReturn {
25
- mode: ReplaceBackgroundMode;
26
- setMode: (mode: ReplaceBackgroundMode) => void;
27
- }
28
-
29
- export function useReplaceBackgroundFeature(
30
- props: UseReplaceBackgroundFeatureProps,
31
- ): UseReplaceBackgroundFeatureReturn {
32
- const { config, onSelectImage, onSaveImage, onBeforeProcess } = props;
33
- const [mode, setMode] = useState<ReplaceBackgroundMode>(config.defaultMode || "replace");
34
-
35
- const baseHook = useImageWithPromptFeature<ReplaceBackgroundFeatureConfig, ReplaceBackgroundResult>(
36
- { config, onSelectImage, onSaveImage, onBeforeProcess },
37
- {
38
- buildInput: (imageBase64, prompt) => ({
39
- imageBase64,
40
- prompt: prompt || undefined,
41
- options: { mode },
42
- }),
43
- },
44
- );
45
-
46
- const handleSetMode = useCallback((newMode: ReplaceBackgroundMode) => {
47
- setMode(newMode);
48
- }, []);
49
-
50
- return {
51
- ...baseHook,
52
- mode,
53
- setMode: handleSetMode,
54
- };
55
- }