@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,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";