@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,2 +0,0 @@
1
- export { AnimeSelfieFeature } from "./AnimeSelfieFeature";
2
- export type { AnimeSelfieFeatureProps } from "./AnimeSelfieFeature";
@@ -1,9 +0,0 @@
1
- /**
2
- * Anime Selfie Presentation Hooks Index
3
- */
4
-
5
- export { useAnimeSelfieFeature } from "./useAnimeSelfieFeature";
6
- export type {
7
- UseAnimeSelfieFeatureProps,
8
- UseAnimeSelfieFeatureReturn,
9
- } from "./useAnimeSelfieFeature";
@@ -1,59 +0,0 @@
1
- /**
2
- * useAnimeSelfieFeature Hook
3
- * Uses base single image hook for anime selfie transformation
4
- * Uses centralized orchestrator for credit/error handling
5
- */
6
-
7
- import { useMemo } from "react";
8
- import {
9
- useSingleImageFeature,
10
- type BaseSingleImageHookReturn,
11
- } from "../../../image-to-image";
12
- import type { AlertMessages } from "../../../../presentation/hooks/generation";
13
- import { createAnimeSelfiePrompt } from "../../../../domains/prompts";
14
- import type { AnimeSelfieFeatureConfig } from "../../domain/types";
15
-
16
- export interface UseAnimeSelfieFeatureProps {
17
- config: AnimeSelfieFeatureConfig;
18
- onSelectImage: () => Promise<string | null>;
19
- onSaveImage: (imageUrl: string) => Promise<void>;
20
- onBeforeProcess?: () => Promise<boolean>;
21
- }
22
-
23
- export interface UseAnimeSelfieFeatureOptions {
24
- /** Alert messages for error handling */
25
- alertMessages?: AlertMessages;
26
- /** User ID for credit operations */
27
- userId?: string;
28
- /** Callback when credits are exhausted */
29
- onCreditsExhausted?: () => void;
30
- }
31
-
32
- export type UseAnimeSelfieFeatureReturn = BaseSingleImageHookReturn;
33
-
34
- export function useAnimeSelfieFeature(
35
- props: UseAnimeSelfieFeatureProps,
36
- options?: UseAnimeSelfieFeatureOptions,
37
- ): UseAnimeSelfieFeatureReturn {
38
- const { config, onSelectImage, onSaveImage, onBeforeProcess } = props;
39
-
40
- const promptConfig = useMemo(
41
- () => createAnimeSelfiePrompt(config.defaultStyle),
42
- [config.defaultStyle],
43
- );
44
-
45
- // Cast config to any to bypass strict type checking while maintaining runtime behavior
46
- return useSingleImageFeature(
47
- { config: config as never, onSelectImage, onSaveImage, onBeforeProcess },
48
- {
49
- buildInput: (imageBase64) => ({
50
- imageBase64,
51
- prompt: promptConfig.prompt,
52
- options: {
53
- guidance_scale: promptConfig.guidance_scale,
54
- },
55
- }),
56
- ...options,
57
- },
58
- );
59
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Anime Selfie Presentation Index
3
- */
4
-
5
- export * from "./hooks";
6
- export * from "./components";
@@ -1,445 +0,0 @@
1
- # Couple Future Feature
2
-
3
- Generate images showing couples in future scenarios using AI.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import { useCoupleFutureGeneration } from '@umituz/react-native-ai-generation-content';
9
- ```
10
-
11
- **Location**: `src/features/couple-future/`
12
-
13
- ## 🎯 Feature Purpose
14
-
15
- Create AI-generated images showing couples in various future scenarios including wedding day, old age, anniversary celebrations, and family moments. Features natural aging progression and high-quality facial matching for heartwarming results.
16
-
17
- ---
18
-
19
- ## 📋 Usage Strategy
20
-
21
- ### When to Use This Feature
22
-
23
- ✅ **Use Cases:**
24
- - Creating fun future predictions with partners
25
- - Generating anniversary content
26
- - Social media couple content
27
- - Creative romantic projects
28
- - Gift ideas for couples
29
-
30
- ❌ **When NOT to Use:**
31
- - Non-consensual image generation
32
- - Misleading or deceptive content
33
- - Harassment or bullying
34
- - Commercial use without permissions
35
-
36
- ### Implementation Strategy
37
-
38
- 1. **Select TWO photos** (person 1 and person 2)
39
- 2. **Choose future scenario** (wedding, old-age, anniversary, family)
40
- 3. **Validate both photos** before generation
41
- 4. **Generate future image** with progress tracking
42
- 5. **Preview result** and offer regeneration
43
- 6. **Save or share** final image
44
-
45
- ---
46
-
47
- ## ⚠️ Critical Rules (MUST FOLLOW)
48
-
49
- ### 1. Image Requirements
50
- - **MUST** provide TWO distinct images (person 1 + person 2)
51
- - **MUST** contain at least one visible person 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 people
55
-
56
- ### 2. Configuration
57
- - **MUST** provide valid `userId` for tracking
58
- - **MUST** specify `scenario` (wedding, old-age, anniversary, family)
59
- - **MUST** implement `onError` callback
60
- - **MUST** implement `onSelectPerson1` and `onSelectPerson2` callbacks
61
- - **MUST** handle both images being selected before processing
62
-
63
- ### 3. State Management
64
- - **MUST** check `isReady` before enabling generate 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** generate multiple futures simultaneously
76
-
77
- ### 5. Ethics & Privacy
78
- - **MUST** obtain consent from people whose photos 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 (person 1 + person 2)
94
- - Never attempt with missing image
95
-
96
- 2. **No Non-Consensual Generation**
97
- - Always obtain permission from subjects
98
- - Never generate futures without consent
99
- - Implement age verification for minors
100
-
101
- 3. **No Malicious Use**
102
- - Never use for harassment or bullying
103
- - Never create misleading content
104
- - Never use for deception
105
-
106
- 4. **No Unhandled Errors**
107
- - Never ignore generation failures
108
- - Always handle detection errors gracefully
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 person is which
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 couple future generation 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 useCoupleFutureGeneration hook
142
- 3. Require TWO images (person 1 + person 2)
143
- 4. Implement dual image selection UI
144
- 5. Select future scenario (wedding, old-age, anniversary, family)
145
- 6. Validate both images before generation
146
- 7. Add confirmation dialog before generation
147
- 8. Handle long processing times with progress
148
- 9. Implement proper error handling
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 person 1 vs person 2
155
- - MUST handle generation errors gracefully
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
- - Set scenario: 'wedding' | 'old-age' | 'anniversary' | 'family'
163
- - Set preserveFaces: boolean (maintain facial features)
164
- - Set enhanceQuality: boolean (enhance output quality)
165
- - Implement onSelectPerson1 callback
166
- - Implement onSelectPerson2 callback
167
- - Implement onSaveResult callback
168
- - Configure callbacks: onProcessingStart, onProcessingComplete, onError
169
-
170
- SCENARIOS:
171
- - wedding: Couples on their wedding day
172
- - old-age: The couple as elderly
173
- - anniversary: Celebrating an anniversary
174
- - family: The couple with a family
175
-
176
- OPTIONS:
177
- - preserveFaces: Maintain facial features (default: true)
178
- - enhanceQuality: Enhance output quality (default: true)
179
-
180
- STRICTLY FORBIDDEN:
181
- - No single image processing
182
- - No non-consensual generation
183
- - No malicious use
184
- - No unhandled errors
185
- - No memory leaks
186
- - No missing UI context
187
-
188
- ETHICS CHECKLIST:
189
- - [ ] Consent mechanism implemented
190
- - [ ] Age verification for minors
191
- - [ ] Content moderation in place
192
- - [ ] Usage terms provided
193
- - [ ] Audit trail logging
194
- - [ ] Report/flag functionality
195
- ```
196
-
197
- #### AI Implementation Checklist
198
-
199
- Use this checklist when generating code:
200
-
201
- - [ ] Feature imported from correct path
202
- - [ ] Dual image selection implemented
203
- - [ ] Person 1/Person 2 labels clear
204
- - [ ] Future scenario selector added
205
- - [ ] Both images validated before processing
206
- - [ ] Confirmation dialog added
207
- - [ ] Progress indicator during processing
208
- - [ ] Error display with user-friendly message
209
- - [ ] Result preview before saving
210
- - [ ] Consent mechanism in place
211
- - [ ] Cleanup on unmount
212
- - [ ] Content moderation configured
213
-
214
- ---
215
-
216
- ## 🛠️ Configuration Strategy
217
-
218
- ### Essential Configuration
219
-
220
- ```typescript
221
- // Required fields
222
- {
223
- userId: string
224
- scenario: 'wedding' | 'old-age' | 'anniversary' | 'family'
225
- onSelectPerson1: () => Promise<string | null>
226
- onSelectPerson2: () => Promise<string | null>
227
- }
228
-
229
- // Optional callbacks
230
- {
231
- onProcessingStart?: () => void
232
- onProcessingComplete?: (result) => void
233
- onError?: (error: string) => void
234
- }
235
- ```
236
-
237
- ### Recommended Settings
238
-
239
- 1. **Future Scenarios**
240
- - Wedding: Romantic wedding day imagery
241
- - Old Age: Realistic aging progression
242
- - Anniversary: Celebration scenes
243
- - Family: Couple with children
244
-
245
- 2. **Image Quality**
246
- - Minimum: 512x512 resolution
247
- - Recommended: 1024x1024 or higher
248
- - Format: JPEG or PNG
249
- - Max size: 10MB per image
250
-
251
- 3. **Performance Settings**
252
- - Compress images before upload
253
- - Show progress for long operations
254
- - Implement timeout (120s default)
255
- - Enable result caching
256
-
257
- ---
258
-
259
- ## 📊 State Management
260
-
261
- ### Feature States
262
-
263
- **isReady**: boolean
264
- - Both images selected and validated
265
- - Check before enabling generate button
266
-
267
- **isProcessing**: boolean
268
- - Future generation in progress
269
- - Show loading/progress indicator
270
- - Disable generate button
271
-
272
- **progress**: number (0-100)
273
- - Generation progress percentage
274
- - Update progress bar
275
-
276
- **error**: string | null
277
- - Error message if generation failed
278
- - Common errors: "No person found in image", "Generation failed"
279
-
280
- **result**: {
281
- imageUrl: string
282
- scenario?: string
283
- metadata?: any
284
- }
285
-
286
- ---
287
-
288
- ## 🔐 Ethics & Privacy
289
-
290
- ### Consent Requirements
291
-
292
- - **MUST** obtain explicit consent from all subjects
293
- - **MUST** provide clear explanation of how images will be used
294
- - **MUST** implement age verification
295
- - **MUST** allow subjects to opt-out
296
-
297
- ### Content Moderation
298
-
299
- - **MUST** filter inappropriate content
300
- - **MUST** prevent malicious use cases
301
- - **MUST** implement reporting mechanism
302
- - **MUST** review flagged content
303
-
304
- ### Usage Guidelines
305
-
306
- - **MUST** provide terms of service
307
- - **MUST** clearly label AI-generated content
308
- - **MUST** prevent deception/misrepresentation
309
- - **MUST** comply with deepfake regulations
310
-
311
- ---
312
-
313
- ## 🎨 Best Practices
314
-
315
- ### Photo Selection
316
-
317
- 1. **Photo Quality**
318
- - Good: High-quality, well-lit photos
319
- - Bad: Blurry, dark, low-resolution images
320
-
321
- 2. **Face Visibility**
322
- - Good: Clear, frontal face shots
323
- - Bad: Occluded or profile faces
324
-
325
- 3. **Similar Angles**
326
- - Similar head angles produce better results
327
- - Forward-facing photos work best
328
-
329
- 4. **Lighting**
330
- - Similar lighting conditions work best
331
- - Front-facing well-lit photos ideal
332
-
333
- ### User Experience
334
-
335
- 1. **Clear UI**
336
- - Label person 1 vs person 2 clearly
337
- - Show preview before processing
338
- - Add confirmation dialog
339
-
340
- 2. **Error Handling**
341
- - Explain "no person found" errors
342
- - Provide troubleshooting tips
343
- - Offer retry option
344
-
345
- 3. **Performance**
346
- - Compress images before upload
347
- - Show progress for long operations
348
- - Cache results for re-download
349
-
350
- ---
351
-
352
- ## 🐛 Common Pitfalls
353
-
354
- ### Detection Issues
355
-
356
- ❌ **Problem**: "No person found" error
357
- ✅ **Solution**: Ensure people are clearly visible, well-lit, frontal
358
-
359
- ### Quality Issues
360
-
361
- ❌ **Problem**: Poor quality generation
362
- ✅ **Solution**: Use higher resolution images, better lighting
363
-
364
- ### UX Confusion
365
-
366
- ❌ **Problem**: Users confused about which person is which
367
- ✅ **Solution**: Clear labels, visual indicators, preview
368
-
369
- ### Privacy Concerns
370
-
371
- ❌ **Problem**: Non-consensual image generation
372
- ✅ **Solution**: Implement consent mechanisms, age verification
373
-
374
- ---
375
-
376
- ## 📦 Related Components
377
-
378
- Use these components from the library:
379
-
380
- - **DualImagePicker**: Select two images
381
- - **ScenarioSelector**: Choose future scenario
382
- - **ResultImageCard**: Display result with actions
383
- - **ConfirmationDialog**: Confirm before processing
384
-
385
- Located at: `src/presentation/components/`
386
-
387
- ---
388
-
389
- ## 🔄 Migration Strategy
390
-
391
- If migrating from previous implementation:
392
-
393
- 1. **Update imports** to new path
394
- 2. **Add dual image selection** (person 1 + person 2)
395
- 3. **Implement consent mechanism**
396
- 4. **Add scenario selector**
397
- 5. **Update state handling** for both images
398
- 6. **Test all error cases**
399
-
400
- ---
401
-
402
- ## ⚖️ Legal Considerations
403
-
404
- ### Compliance
405
-
406
- - **Deepfake Regulations**: Comply with local laws
407
- - **Privacy Laws**: GDPR, CCPA compliance
408
- - **Consent Requirements**: Explicit permission needed
409
- - **Age Restrictions**: Verify adult subjects
410
- - **Content Labeling**: Mark as AI-generated
411
-
412
- ### Best Practices
413
-
414
- - Provide attribution for source images
415
- - Allow content reporting/flagging
416
- - Implement audit trail logging
417
- - Cooperate with takedown requests
418
-
419
- ---
420
-
421
- ## 📚 Additional Resources
422
-
423
- - Main documentation: `/docs/`
424
- - API reference: `/docs/api/`
425
- - Examples: `/docs/examples/basic/couple-future/`
426
- - Ethics guidelines: `/docs/ethics.md`
427
-
428
- ---
429
-
430
- **Last Updated**: 2025-01-08
431
- **Version**: 2.0.0 (Strategy-based Documentation)
432
-
433
- ---
434
-
435
- ## 📝 Changelog
436
-
437
- ### v2.0.0 - 2025-01-08
438
- - **BREAKING**: Documentation format changed to strategy-based
439
- - Removed extensive code examples
440
- - Added ethics and privacy guidelines
441
- - Added rules, prohibitions, and AI agent directions
442
- - Focus on responsible AI usage
443
-
444
- ### v1.0.0 - Initial Release
445
- - Initial feature documentation
@@ -1,63 +0,0 @@
1
- /**
2
- * Couple Future Types
3
- * Multi-reference image generation for couples using Nano Banana
4
- */
5
-
6
- export type NanoBananaAspectRatio =
7
- | "auto"
8
- | "21:9"
9
- | "16:9"
10
- | "3:2"
11
- | "4:3"
12
- | "5:4"
13
- | "1:1"
14
- | "4:5"
15
- | "3:4"
16
- | "2:3"
17
- | "9:16";
18
-
19
- export type NanoBananaOutputFormat = "jpeg" | "png" | "webp";
20
-
21
- export interface CoupleFutureInput {
22
- partnerABase64: string;
23
- partnerBBase64: string;
24
- prompt: string;
25
- }
26
-
27
- export interface CoupleFutureConfig {
28
- /** REQUIRED: AI model ID from app config */
29
- model: string;
30
- timeoutMs?: number;
31
- aspectRatio?: NanoBananaAspectRatio;
32
- outputFormat?: NanoBananaOutputFormat;
33
- onProgress?: (progress: number) => void;
34
- }
35
-
36
- export interface CoupleFutureResult {
37
- success: boolean;
38
- imageUrl?: string;
39
- error?: string;
40
- }
41
-
42
- export const COUPLE_FUTURE_DEFAULTS = {
43
- aspectRatio: "4:3" as NanoBananaAspectRatio,
44
- outputFormat: "jpeg" as NanoBananaOutputFormat,
45
- timeoutMs: 300000,
46
- };
47
-
48
- export type CoupleFeatureId =
49
- | "romantic-mood"
50
- | "art-style"
51
- | "artist-style"
52
- | "wardrobe";
53
-
54
- export interface CoupleFeatureSelection {
55
- romanticMoods?: string[];
56
- romanticIntensity?: number;
57
- artStyle?: string | null;
58
- artStyleIntensity?: number;
59
- artist?: string | null;
60
- artistIntensity?: number;
61
- wardrobeStyle?: string | null;
62
- wardrobeIntensity?: number;
63
- }
@@ -1,76 +0,0 @@
1
- /**
2
- * Wizard Configuration Adapter
3
- * Adapts old wizard config to new dynamic step system
4
- */
5
-
6
- import { buildStepsFromScenario, buildStepsWithNavigation, SCENARIO_CONFIGS } from "../../../infrastructure/flow/step-builder";
7
- import type { DynamicStepDefinition } from "../../../domain/entities/step-config.types";
8
- import type { WizardScenarioData } from "../presentation/types";
9
- import { StepType } from "../../../domain/entities/flow-config.types";
10
-
11
- /**
12
- * Build steps for a scenario
13
- * Returns dynamically generated step definitions based on scenario type
14
- */
15
- export const buildStepsForScenario = (scenario: WizardScenarioData | undefined): DynamicStepDefinition[] => {
16
- if (!scenario) {
17
- // No scenario selected - only show scenario selection
18
- return [
19
- {
20
- id: "SCENARIO_SELECTION",
21
- type: StepType.SCENARIO_SELECTION,
22
- required: true,
23
- },
24
- ];
25
- }
26
-
27
- const steps: DynamicStepDefinition[] = [];
28
-
29
- // Always start with scenario preview if scenario is selected
30
- steps.push({
31
- id: "SCENARIO_PREVIEW",
32
- type: StepType.SCENARIO_PREVIEW,
33
- required: true,
34
- });
35
-
36
- // Get scenario-specific config
37
- const scenarioConfig = SCENARIO_CONFIGS[scenario.category || ""] || SCENARIO_CONFIGS["romantic-kiss"];
38
-
39
- // Build dynamic steps from config
40
- const dynamicSteps = buildStepsFromScenario(scenario.id, scenarioConfig);
41
- steps.push(...dynamicSteps);
42
-
43
- // Add generating step
44
- steps.push({
45
- id: "GENERATING",
46
- type: StepType.GENERATING,
47
- required: true,
48
- });
49
-
50
- // Link steps together
51
- return buildStepsWithNavigation(steps);
52
- };
53
-
54
- /**
55
- * Get photo upload count for a scenario
56
- * Used to determine how many partner images are needed
57
- */
58
- export const getPhotoUploadCount = (scenario: WizardScenarioData | undefined): number => {
59
- if (!scenario) return 0;
60
-
61
- const scenarioConfig = SCENARIO_CONFIGS[scenario.category || ""] || SCENARIO_CONFIGS["romantic-kiss"];
62
- return scenarioConfig.photoUploads?.count ?? 0;
63
- };
64
-
65
- /**
66
- * Get photo upload label for a specific index
67
- */
68
- export const getPhotoUploadLabel = (
69
- scenario: WizardScenarioData | undefined,
70
- index: number,
71
- ): string => {
72
- if (!scenario) return `Photo ${index + 1}`;
73
-
74
- const scenarioConfig = SCENARIO_CONFIGS[scenario.category || ""] || SCENARIO_CONFIGS["romantic-kiss"];
75
- return scenarioConfig.photoUploads?.labels?.[index] || `Photo ${index + 1}`;
76
- };