@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,431 +0,0 @@
1
- # Face Swap Feature
2
-
3
- Swap faces between people in images using AI.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import { useFaceSwapFeature } from '@umituz/react-native-ai-generation-content';
9
- ```
10
-
11
- **Location**: `src/features/face-swap/`
12
-
13
- ## 🎯 Feature Purpose
14
-
15
- Swap faces between two images using AI-powered face detection and alignment. Supports multiple faces and produces natural-looking results.
16
-
17
- ---
18
-
19
- ## 📋 Usage Strategy
20
-
21
- ### When to Use This Feature
22
-
23
- ✅ **Use Cases:**
24
- - Entertainment and fun face swaps
25
- - Movie character transformations
26
- - Historical face replacement projects
27
- - Creative content and memes
28
- - Social media engagement
29
-
30
- ❌ **When NOT to Use:**
31
- - Identity fraud or deception
32
- - Non-consensual face swapping
33
- - Misleading content creation
34
- - Defamatory purposes
35
-
36
- ### Implementation Strategy
37
-
38
- 1. **Require TWO images** - source and target
39
- 2. **Validate both images** before processing
40
- 3. **Show clear UI** for which face is which
41
- 4. **Implement confirmation dialog** before processing
42
- 5. **Provide preview** before saving
43
- 6. **Handle privacy** and consent properly
44
-
45
- ---
46
-
47
- ## ⚠️ Critical Rules (MUST FOLLOW)
48
-
49
- ### 1. Image Requirements
50
- - **MUST** provide TWO distinct images (source + target)
51
- - **MUST** contain at least one detectable face in each image
52
- - **MUST** use high-quality images (min 512x512 recommended)
53
- - **MUST** ensure faces are clearly visible
54
- - **MUST NOT** use images with no detectable faces
55
-
56
- ### 2. Configuration
57
- - **MUST** provide valid `userId` for tracking
58
- - **MUST** implement `onError` callback
59
- - **MUST** implement `onSelectSourceImage` callback
60
- - **MUST** implement `onSelectTargetImage` callback
61
- - **MUST** handle both images being selected before processing
62
-
63
- ### 3. State Management
64
- - **MUST** check `isReady` before enabling swap button
65
- - **MUST** verify both images are selected
66
- - **MUST** handle `isProcessing` state to prevent duplicate requests
67
- - **MUST** display `error` state to users
68
- - **MUST** implement proper cleanup on unmount
69
-
70
- ### 4. Performance
71
- - **MUST** limit image size (<10MB each)
72
- - **MUST** compress images before processing
73
- - **MUST** implement loading indicators during processing
74
- - **MUST** cache results locally
75
- - **MUST NOT** process multiple swaps simultaneously
76
-
77
- ### 5. Ethics & Privacy
78
- - **MUST** obtain consent from people whose faces are used
79
- - **MUST** provide clear usage terms
80
- - **MUST** implement content moderation
81
- - **MUST** prevent malicious use cases
82
- - **MUST** log processing for audit trail
83
-
84
- ---
85
-
86
- ## 🚫 Prohibitions (MUST AVOID)
87
-
88
- ### Strictly Forbidden
89
-
90
- ❌ **NEVER** do the following:
91
-
92
- 1. **No Single Image**
93
- - Always requires TWO images (source + target)
94
- - Never attempt with missing image
95
-
96
- 2. **No Non-Consensual Swaps**
97
- - Always obtain permission from subjects
98
- - Never swap faces without consent
99
- - Implement age verification for minors
100
-
101
- 3. **No Malicious Use**
102
- - Never use for fraud or deception
103
- - Never create misleading content
104
- - Never use for harassment or bullying
105
-
106
- 4. **No Unhandled Errors**
107
- - Never ignore face detection failures
108
- - Always handle "no face found" errors
109
- - Provide clear error messages
110
-
111
- 5. **No Memory Leaks**
112
- - Never store large images in state unnecessarily
113
- - Always cleanup image references on unmount
114
- - Implement proper image disposal
115
-
116
- 6. **No Blocked UI**
117
- - Never process without user confirmation
118
- - Always show progress indicator
119
- - Never block main thread with image processing
120
-
121
- 7. **No Missing Context**
122
- - Never confuse which face is source/target
123
- - Always provide clear UI labels
124
- - Show preview 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 face swap 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 useFaceSwapFeature hook
142
- 3. Require TWO images (source + target)
143
- 4. Implement dual image selection UI
144
- 5. Validate both images before processing
145
- 6. Add confirmation dialog before swap
146
- 7. Handle face detection failures gracefully
147
- 8. Implement proper error handling
148
- 9. Show clear progress indicators
149
- 10. Implement cleanup on unmount
150
-
151
- CRITICAL RULES:
152
- - MUST obtain consent from subjects
153
- - MUST validate both images before processing
154
- - MUST provide clear UI for source vs target
155
- - MUST handle "no face found" errors
156
- - MUST prevent malicious use cases
157
- - MUST implement content moderation
158
- - NEVER process without user confirmation
159
-
160
- CONFIGURATION:
161
- - Provide valid userId (string)
162
- - Implement onSelectSourceImage callback
163
- - Implement onSelectTargetImage callback
164
- - Implement onSaveImage callback
165
- - Configure callbacks: onProcessingStart, onProcessingComplete, onError
166
-
167
- OPTIONS:
168
- - enhanceFace: boolean (default: true)
169
- - matchSkinTone: boolean (default: true)
170
-
171
- STRICTLY FORBIDDEN:
172
- - No single image processing
173
- - No non-consensual swaps
174
- - No malicious use
175
- - No unhandled errors
176
- - No memory leaks
177
- - No missing UI context
178
-
179
- ETHICS CHECKLIST:
180
- - [ ] Consent mechanism implemented
181
- - [ ] Age verification for minors
182
- - [ ] Content moderation in place
183
- - [ ] Usage terms provided
184
- - [ ] Audit trail logging
185
- - [ ] Report/flag functionality
186
- ```
187
-
188
- #### AI Implementation Checklist
189
-
190
- Use this checklist when generating code:
191
-
192
- - [ ] Feature imported from correct path
193
- - [ ] Dual image selection implemented
194
- - [ ] Source/target image labels clear
195
- - [ ] Both images validated before processing
196
- - [ ] Confirmation dialog added
197
- - [ ] Face detection error handling
198
- - [ ] Progress indicator during processing
199
- - [ ] Result preview before saving
200
- - [ ] Error display with user-friendly message
201
- - [ ] Consent mechanism in place
202
- - [ ] Cleanup on unmount
203
- - [ ] Content moderation configured
204
-
205
- ---
206
-
207
- ## 🛠️ Configuration Strategy
208
-
209
- ### Essential Configuration
210
-
211
- ```typescript
212
- // Required fields
213
- {
214
- userId: string // User identifier for tracking
215
- onSelectSourceImage: () => Promise<string | null>
216
- onSelectTargetImage: () => Promise<string | null>
217
- }
218
-
219
- // Optional callbacks
220
- {
221
- onProcessingStart?: () => void
222
- onProcessingComplete?: (result) => void
223
- onError?: (error: string) => void
224
- }
225
- ```
226
-
227
- ### Recommended Settings
228
-
229
- 1. **Image Quality**
230
- - Minimum: 512x512 resolution
231
- - Recommended: 1024x1024 or higher
232
- - Format: JPEG or PNG
233
- - Max size: 10MB per image
234
-
235
- 2. **Processing Options**
236
- - enhanceFace: true (sharpen facial features)
237
- - matchSkinTone: true (natural skin tone blending)
238
-
239
- 3. **Performance Settings**
240
- - Compress images before upload
241
- - Show progress for long operations
242
- - Implement timeout (60s default)
243
-
244
- ---
245
-
246
- ## 📊 State Management
247
-
248
- ### Feature States
249
-
250
- **isReady**: boolean
251
- - Both images selected and validated
252
- - Check before enabling swap button
253
-
254
- **isProcessing**: boolean
255
- - Face swap in progress
256
- - Show loading indicator
257
- - Disable all buttons
258
-
259
- **progress**: number (0-100)
260
- - Processing progress percentage
261
- - Update progress bar
262
-
263
- **error**: string | null
264
- - Error message if processing failed
265
- - Common errors: "No face found in source image", "No face found in target image"
266
-
267
- **result**: {
268
- imageUrl: string
269
- metadata?: any
270
- }
271
-
272
- ---
273
-
274
- ## 🔐 Ethics & Privacy
275
-
276
- ### Consent Requirements
277
-
278
- - **MUST** obtain explicit consent from all subjects
279
- - **MUST** provide clear explanation of how faces will be used
280
- - **MUST** implement age verification
281
- - **MUST** allow subjects to opt-out
282
-
283
- ### Content Moderation
284
-
285
- - **MUST** filter inappropriate content
286
- - **MUST** prevent malicious use cases
287
- - **MUST** implement reporting mechanism
288
- - **MUST** review flagged content
289
-
290
- ### Usage Guidelines
291
-
292
- - **MUST** provide terms of service
293
- - **MUST** clearly label face-swapped content
294
- - **MUST** prevent deception/fraud
295
- - **MUST** comply with deepfake regulations
296
-
297
- ---
298
-
299
- ## 🎨 Best Practices
300
-
301
- ### Image Selection
302
-
303
- 1. **Face Visibility**
304
- - Good: Clear, frontal face shots
305
- - Bad: Occluded or profile faces
306
-
307
- 2. **Lighting**
308
- - Similar lighting conditions work best
309
- - Front-facing well-lit photos ideal
310
-
311
- 3. **Image Quality**
312
- - Higher resolution = better results
313
- - Minimum 512x512 recommended
314
-
315
- 4. **Multiple Faces**
316
- - Feature handles multiple faces
317
- - Warn users about all faces being swapped
318
-
319
- ### User Experience
320
-
321
- 1. **Clear UI**
322
- - Label source vs target clearly
323
- - Show preview before processing
324
- - Add confirmation dialog
325
-
326
- 2. **Error Handling**
327
- - Explain "no face found" errors
328
- - Provide troubleshooting tips
329
- - Offer retry option
330
-
331
- 3. **Performance**
332
- - Compress images before upload
333
- - Show progress for long operations
334
- - Cache results for re-download
335
-
336
- ---
337
-
338
- ## 🐛 Common Pitfalls
339
-
340
- ### Face Detection Issues
341
-
342
- ❌ **Problem**: "No face found" error
343
- ✅ **Solution**: Ensure faces are clearly visible, well-lit, frontal
344
-
345
- ### Image Quality Issues
346
-
347
- ❌ **Problem**: Poor quality results
348
- ✅ **Solution**: Use higher resolution images, better lighting
349
-
350
- ### UX Confusion
351
-
352
- ❌ **Problem**: Users confused about which face is which
353
- ✅ **Solution**: Clear labels, visual indicators, preview
354
-
355
- ### Privacy Concerns
356
-
357
- ❌ **Problem**: Non-consensual face swapping
358
- ✅ **Solution**: Implement consent mechanisms, age verification
359
-
360
- ---
361
-
362
- ## 📦 Related Components
363
-
364
- Use these components from the library:
365
-
366
- - **DualImagePicker**: Select two images
367
- - **ResultImageCard**: Display face swap result
368
- - **ConfirmationDialog**: Confirm before processing
369
- - **FaceDetectionOverlay**: Show detected faces
370
-
371
- Located at: `src/presentation/components/`
372
-
373
- ---
374
-
375
- ## 🔄 Migration Strategy
376
-
377
- If migrating from previous implementation:
378
-
379
- 1. **Update imports** to new path
380
- 2. **Add dual image selection** (source + target)
381
- 3. **Implement consent mechanism**
382
- 4. **Update state handling** for both images
383
- 5. **Add confirmation dialog**
384
- 6. **Test all error cases**
385
-
386
- ---
387
-
388
- ## ⚖️ Legal Considerations
389
-
390
- ### Compliance
391
-
392
- - **Deepfake Regulations**: Comply with local laws
393
- - **Privacy Laws**: GDPR, CCPA compliance
394
- - **Consent Requirements**: Explicit permission needed
395
- - **Age Restrictions**: Verify adult subjects
396
- - **Content Labeling**: Mark as AI-generated
397
-
398
- ### Best Practices
399
-
400
- - Provide attribution for source images
401
- - Allow content reporting/flagging
402
- - Implement audit trail logging
403
- - Cooperate with takedown requests
404
-
405
- ---
406
-
407
- ## 📚 Additional Resources
408
-
409
- - Main documentation: `/docs/`
410
- - API reference: `/docs/api/`
411
- - Examples: `/docs/examples/basic/face-swap/`
412
- - Ethics guidelines: `/docs/ethics.md`
413
-
414
- ---
415
-
416
- **Last Updated**: 2025-01-08
417
- **Version**: 2.0.0 (Strategy-based Documentation)
418
-
419
- ---
420
-
421
- ## 📝 Changelog
422
-
423
- ### v2.0.0 - 2025-01-08
424
- - **BREAKING**: Documentation format changed to strategy-based
425
- - Removed extensive code examples
426
- - Added ethics and privacy guidelines
427
- - Added rules, prohibitions, and AI agent directions
428
- - Focus on responsible AI usage
429
-
430
- ### v1.0.0 - Initial Release
431
- - Initial feature documentation
@@ -1,5 +0,0 @@
1
- /**
2
- * Face Swap Domain Index
3
- */
4
-
5
- export * from "./types";
@@ -1,26 +0,0 @@
1
- /**
2
- * Face Swap Feature Types
3
- * Extends base image-to-image types for dual image processing
4
- */
5
-
6
- import type {
7
- BaseImageResult,
8
- BaseDualImageState,
9
- BaseDualImageTranslations,
10
- DualImageConfig,
11
- } from "../../../image-to-image/domain/types";
12
-
13
- export interface FaceSwapOptions {
14
- enhanceFace?: boolean;
15
- preserveSkinTone?: boolean;
16
- }
17
-
18
- export type FaceSwapResult = BaseImageResult;
19
-
20
- export type FaceSwapFeatureState = BaseDualImageState;
21
-
22
- export type FaceSwapTranslations = BaseDualImageTranslations;
23
-
24
- export interface FaceSwapFeatureConfig extends DualImageConfig<FaceSwapResult> {
25
- defaultOptions?: FaceSwapOptions;
26
- }
@@ -1,7 +0,0 @@
1
- export type {
2
- FaceSwapOptions,
3
- FaceSwapResult,
4
- FaceSwapFeatureState,
5
- FaceSwapTranslations,
6
- FaceSwapFeatureConfig,
7
- } from "./face-swap.types";
@@ -1,19 +0,0 @@
1
- /**
2
- * Face Swap Feature
3
- * Provider-agnostic face swap generation feature
4
- */
5
-
6
- // Domain Types
7
- export type {
8
- FaceSwapOptions,
9
- FaceSwapResult,
10
- FaceSwapFeatureState,
11
- FaceSwapTranslations,
12
- FaceSwapFeatureConfig,
13
- } from "./domain";
14
-
15
- // Presentation Hooks
16
- export { useFaceSwapFeature, type UseFaceSwapFeatureProps } from "./presentation";
17
-
18
- // Presentation Components
19
- export { FaceSwapFeature, type FaceSwapFeatureProps } from "./presentation";
@@ -1,87 +0,0 @@
1
- import React, { useMemo } from "react";
2
- import { View, Image, StyleSheet } from "react-native";
3
- import { DualImagePicker } from "../../../../presentation/components/image-picker/DualImagePicker";
4
- import { DualImageFeatureLayout } from "../../../../presentation/layouts";
5
- import type { DualImageInputRenderProps, ResultRenderProps } from "../../../../presentation/layouts";
6
- import { useFaceSwapFeature } from "../hooks";
7
- import type { FaceSwapTranslations, FaceSwapFeatureConfig } from "../../domain/types";
8
-
9
- export interface FaceSwapFeatureProps {
10
- config: FaceSwapFeatureConfig;
11
- translations: FaceSwapTranslations & {
12
- modalTitle?: string;
13
- modalMessage?: string;
14
- modalHint?: string;
15
- modalBackgroundHint?: string;
16
- };
17
- onSelectSourceImage: () => Promise<string | null>;
18
- onSelectTargetImage: () => Promise<string | null>;
19
- onSaveImage: (imageUrl: string) => Promise<void>;
20
- onBeforeProcess?: () => Promise<boolean>;
21
- }
22
-
23
- export const FaceSwapFeature: React.FC<FaceSwapFeatureProps> = ({
24
- config,
25
- translations,
26
- onSelectSourceImage,
27
- onSelectTargetImage,
28
- onSaveImage,
29
- onBeforeProcess,
30
- }) => {
31
- const feature = useFaceSwapFeature({
32
- config,
33
- onSelectSourceImage,
34
- onSelectTargetImage,
35
- onSaveImage,
36
- onBeforeProcess,
37
- });
38
-
39
- const modalTranslations = useMemo(
40
- () => ({
41
- title: translations.modalTitle || "Processing",
42
- message: translations.modalMessage || "AI is swapping faces...",
43
- hint: translations.modalHint || "This may take a moment",
44
- backgroundHint: translations.modalBackgroundHint || "Continue in background",
45
- }),
46
- [translations],
47
- );
48
-
49
- return (
50
- <DualImageFeatureLayout
51
- feature={feature}
52
- translations={translations}
53
- modalTranslations={modalTranslations}
54
- renderInput={({ sourceImageUri, targetImageUri, onSelectSource, onSelectTarget, isDisabled }: DualImageInputRenderProps) => (
55
- <View style={styles.pickerContainer}>
56
- <DualImagePicker
57
- sourceImageUri={sourceImageUri}
58
- targetImageUri={targetImageUri}
59
- isDisabled={isDisabled}
60
- onSelectSource={onSelectSource}
61
- onSelectTarget={onSelectTarget}
62
- sourcePlaceholder={translations.sourceUploadTitle}
63
- targetPlaceholder={translations.targetUploadTitle}
64
- layout="horizontal"
65
- />
66
- </View>
67
- )}
68
- renderResult={({ imageUrl, imageSize }: ResultRenderProps) => (
69
- <Image
70
- source={{ uri: imageUrl }}
71
- style={[styles.resultImage, { width: imageSize, height: imageSize }]}
72
- resizeMode="contain"
73
- />
74
- )}
75
- />
76
- );
77
- };
78
-
79
- const styles = StyleSheet.create({
80
- pickerContainer: {
81
- marginHorizontal: 16,
82
- marginBottom: 16,
83
- },
84
- resultImage: {
85
- borderRadius: 16,
86
- },
87
- });
@@ -1,2 +0,0 @@
1
- export { FaceSwapFeature } from "./FaceSwapFeature";
2
- export type { FaceSwapFeatureProps } from "./FaceSwapFeature";
@@ -1,6 +0,0 @@
1
- /**
2
- * Face Swap Presentation Hooks Index
3
- */
4
-
5
- export { useFaceSwapFeature } from "./useFaceSwapFeature";
6
- export type { UseFaceSwapFeatureProps } from "./useFaceSwapFeature";
@@ -1,35 +0,0 @@
1
- /**
2
- * useFaceSwapFeature Hook
3
- * Uses base dual image hook for face swap processing
4
- */
5
-
6
- import {
7
- useDualImageFeature,
8
- type BaseDualImageHookReturn,
9
- } from "../../../image-to-image";
10
- import type { FaceSwapFeatureConfig, FaceSwapResult } from "../../domain/types";
11
-
12
- export interface UseFaceSwapFeatureProps {
13
- config: FaceSwapFeatureConfig;
14
- onSelectSourceImage: () => Promise<string | null>;
15
- onSelectTargetImage: () => Promise<string | null>;
16
- onSaveImage: (imageUrl: string) => Promise<void>;
17
- onBeforeProcess?: () => Promise<boolean>;
18
- }
19
-
20
- export function useFaceSwapFeature(
21
- props: UseFaceSwapFeatureProps,
22
- ): BaseDualImageHookReturn {
23
- const { config, onSelectSourceImage, onSelectTargetImage, onSaveImage, onBeforeProcess } = props;
24
-
25
- return useDualImageFeature<FaceSwapFeatureConfig, FaceSwapResult>(
26
- { config, onSelectSourceImage, onSelectTargetImage, onSaveImage, onBeforeProcess },
27
- {
28
- buildInput: (sourceBase64, targetBase64, cfg) => ({
29
- imageBase64: sourceBase64,
30
- targetImageBase64: targetBase64,
31
- options: cfg.defaultOptions,
32
- }),
33
- },
34
- );
35
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Face Swap Presentation Index
3
- */
4
-
5
- export * from "./hooks";
6
- export * from "./components";