@umituz/react-native-ai-generation-content 1.26.2 → 1.26.5

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 (333) 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 +3 -29
  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/presentation/components/index.ts +0 -3
  14. package/src/presentation/hooks/index.ts +0 -7
  15. package/src/features/ai-hug/README.md +0 -438
  16. package/src/features/ai-hug/domain/index.ts +0 -5
  17. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  18. package/src/features/ai-hug/domain/types/index.ts +0 -7
  19. package/src/features/ai-hug/index.ts +0 -19
  20. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  21. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  22. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  23. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  24. package/src/features/ai-hug/presentation/index.ts +0 -6
  25. package/src/features/ai-kiss/README.md +0 -445
  26. package/src/features/ai-kiss/domain/index.ts +0 -5
  27. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  28. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  29. package/src/features/ai-kiss/index.ts +0 -19
  30. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  31. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  32. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  33. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  34. package/src/features/ai-kiss/presentation/index.ts +0 -6
  35. package/src/features/anime-selfie/README.md +0 -396
  36. package/src/features/anime-selfie/domain/index.ts +0 -5
  37. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  38. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  39. package/src/features/anime-selfie/index.ts +0 -20
  40. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  41. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  42. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  43. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  44. package/src/features/anime-selfie/presentation/index.ts +0 -6
  45. package/src/features/couple-future/README.md +0 -445
  46. package/src/features/couple-future/domain/types.ts +0 -63
  47. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  48. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  49. package/src/features/couple-future/index.ts +0 -83
  50. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  51. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  52. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  53. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  54. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  55. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  56. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  57. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  58. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  59. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  60. package/src/features/couple-future/presentation/components/index.ts +0 -12
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  62. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  63. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  64. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  65. package/src/features/face-swap/README.md +0 -431
  66. package/src/features/face-swap/domain/index.ts +0 -5
  67. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  68. package/src/features/face-swap/domain/types/index.ts +0 -7
  69. package/src/features/face-swap/index.ts +0 -19
  70. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  71. package/src/features/face-swap/presentation/components/index.ts +0 -2
  72. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  73. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  74. package/src/features/face-swap/presentation/index.ts +0 -6
  75. package/src/features/hd-touch-up/README.md +0 -396
  76. package/src/features/hd-touch-up/domain/index.ts +0 -1
  77. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  78. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  79. package/src/features/hd-touch-up/index.ts +0 -21
  80. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  81. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  82. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  83. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  84. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  85. package/src/features/image-to-image/README.md +0 -459
  86. package/src/features/image-to-image/domain/index.ts +0 -1
  87. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  88. package/src/features/image-to-image/domain/types/index.ts +0 -1
  89. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  90. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  91. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  92. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  93. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  94. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  95. package/src/features/image-to-image/index.ts +0 -2
  96. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  97. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  98. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  99. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  100. package/src/features/image-to-image/presentation/index.ts +0 -1
  101. package/src/features/image-to-video/README.md +0 -414
  102. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  103. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  104. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  105. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  106. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  107. package/src/features/image-to-video/domain/index.ts +0 -5
  108. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  109. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  110. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  111. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  112. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  113. package/src/features/image-to-video/domain/types/index.ts +0 -39
  114. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  115. package/src/features/image-to-video/index.ts +0 -116
  116. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  117. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  118. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  119. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  120. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  121. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  122. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  123. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  125. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  126. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  127. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  128. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  129. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  130. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  131. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  132. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  134. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  135. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  136. package/src/features/image-to-video/presentation/index.ts +0 -5
  137. package/src/features/love-message/domain/constants.ts +0 -162
  138. package/src/features/love-message/domain/types.ts +0 -58
  139. package/src/features/love-message/index.ts +0 -37
  140. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  141. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  142. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  143. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  144. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  145. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  146. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  147. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  148. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  149. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  150. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  151. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  152. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  153. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  154. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  155. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  156. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  157. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  158. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  159. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  160. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  161. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  162. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  163. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  164. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  165. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  166. package/src/features/meme-generator/README.md +0 -408
  167. package/src/features/meme-generator/index.ts +0 -3
  168. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  169. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  170. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  171. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  172. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  173. package/src/features/partner-upload/domain/types.ts +0 -59
  174. package/src/features/partner-upload/index.ts +0 -30
  175. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  176. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  177. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  178. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  179. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  180. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  181. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  182. package/src/features/photo-restoration/README.md +0 -399
  183. package/src/features/photo-restoration/domain/index.ts +0 -1
  184. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  185. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  186. package/src/features/photo-restoration/index.ts +0 -22
  187. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  188. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  189. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  190. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  191. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  192. package/src/features/photo-restoration/presentation/index.ts +0 -2
  193. package/src/features/remove-background/README.md +0 -393
  194. package/src/features/remove-background/domain/index.ts +0 -5
  195. package/src/features/remove-background/domain/types/index.ts +0 -7
  196. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  197. package/src/features/remove-background/index.ts +0 -19
  198. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  199. package/src/features/remove-background/presentation/components/index.ts +0 -2
  200. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  201. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  202. package/src/features/remove-background/presentation/index.ts +0 -6
  203. package/src/features/remove-object/README.md +0 -405
  204. package/src/features/remove-object/domain/index.ts +0 -5
  205. package/src/features/remove-object/domain/types/index.ts +0 -7
  206. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  207. package/src/features/remove-object/index.ts +0 -23
  208. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  209. package/src/features/remove-object/presentation/components/index.ts +0 -2
  210. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  211. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  212. package/src/features/remove-object/presentation/index.ts +0 -6
  213. package/src/features/replace-background/README.md +0 -405
  214. package/src/features/replace-background/domain/types/index.ts +0 -7
  215. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  216. package/src/features/replace-background/index.ts +0 -23
  217. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  218. package/src/features/replace-background/presentation/components/index.ts +0 -6
  219. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  220. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  221. package/src/features/scenarios/domain/types.ts +0 -147
  222. package/src/features/scenarios/index.ts +0 -64
  223. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  224. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  225. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  226. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  227. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  228. package/src/features/scenarios/presentation/components/index.ts +0 -18
  229. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  230. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  231. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  232. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  233. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  234. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  235. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  236. package/src/features/script-generator/README.md +0 -433
  237. package/src/features/script-generator/domain/constants/index.ts +0 -10
  238. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  239. package/src/features/script-generator/index.ts +0 -5
  240. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  241. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  242. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  243. package/src/features/script-generator/presentation/components/index.ts +0 -2
  244. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  245. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  246. package/src/features/shared/README.md +0 -311
  247. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  248. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  249. package/src/features/shared/dual-image-video/index.ts +0 -17
  250. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  251. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  252. package/src/features/shared/index.ts +0 -6
  253. package/src/features/text-to-image/README.md +0 -394
  254. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  255. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  256. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  257. package/src/features/text-to-image/domain/index.ts +0 -7
  258. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  259. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  260. package/src/features/text-to-image/domain/types/index.ts +0 -38
  261. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  262. package/src/features/text-to-image/index.ts +0 -116
  263. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  264. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  265. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  266. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  267. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  268. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  269. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  270. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  271. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  272. package/src/features/text-to-image/presentation/index.ts +0 -7
  273. package/src/features/text-to-video/README.md +0 -412
  274. package/src/features/text-to-video/domain/index.ts +0 -1
  275. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  276. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  277. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  278. package/src/features/text-to-video/domain/types/index.ts +0 -56
  279. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  280. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  281. package/src/features/text-to-video/index.ts +0 -68
  282. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  283. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  284. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  285. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  286. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  287. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  288. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  289. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  290. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  291. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  292. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  293. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  294. package/src/features/text-to-video/presentation/index.ts +0 -7
  295. package/src/features/text-to-voice/README.md +0 -445
  296. package/src/features/text-to-voice/domain/index.ts +0 -1
  297. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  298. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  299. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  300. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  301. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  302. package/src/features/text-to-voice/index.ts +0 -53
  303. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  304. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  305. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  306. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  307. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  308. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  309. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  310. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  311. package/src/features/text-to-voice/presentation/index.ts +0 -2
  312. package/src/features/upscaling/README.md +0 -396
  313. package/src/features/upscaling/domain/index.ts +0 -1
  314. package/src/features/upscaling/domain/types/index.ts +0 -1
  315. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  316. package/src/features/upscaling/index.ts +0 -20
  317. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  318. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  319. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  320. package/src/features/upscaling/presentation/components/index.ts +0 -6
  321. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  322. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  323. package/src/features/upscaling/presentation/index.ts +0 -2
  324. package/src/features/wizard/domain/types.ts +0 -154
  325. package/src/features/wizard/index.ts +0 -43
  326. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  327. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  328. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  329. package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
  330. package/src/presentation/components/flows/AIGenerateWizardFlow.tsx +0 -231
  331. package/src/presentation/components/flows/AIGenerateWizardFlow.types.ts +0 -66
  332. package/src/presentation/components/flows/useAIGenerateWizardFlow.ts +0 -130
  333. package/src/presentation/hooks/useAIGenerateWizard.ts +0 -164
@@ -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,2 +0,0 @@
1
- export { RemoveBackgroundFeature } from "./RemoveBackgroundFeature";
2
- export type { RemoveBackgroundFeatureProps } from "./RemoveBackgroundFeature";
@@ -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,6 +0,0 @@
1
- /**
2
- * Remove Background Presentation Index
3
- */
4
-
5
- export * from "./hooks";
6
- export * from "./components";
@@ -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,5 +0,0 @@
1
- /**
2
- * Remove Object Domain Index
3
- */
4
-
5
- export * from "./types";
@@ -1,7 +0,0 @@
1
- export type {
2
- RemoveObjectResult,
3
- RemoveObjectFeatureState,
4
- RemoveObjectTranslations,
5
- RemoveObjectResultExtractor,
6
- RemoveObjectFeatureConfig,
7
- } from "./remove-object.types";
@@ -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";