@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,166 +0,0 @@
1
- /**
2
- * useCoupleFutureFlow Hook
3
- * Optimized: Merged flow + generation logic
4
- * Uses centralized orchestrator with lifecycle management
5
- */
6
-
7
- import { useEffect, useRef, useMemo } from "react";
8
- import {
9
- useGenerationOrchestrator,
10
- type GenerationStrategy,
11
- } from "../../../../presentation/hooks/generation";
12
- import { executeCoupleFuture } from "../../infrastructure/executor";
13
- import { buildGenerationInputFromConfig } from "../../infrastructure/generationUtils";
14
- import { createCreationsRepository } from "../../../../domains/creations/infrastructure/adapters";
15
- import type { CoupleFutureInput } from "../../domain/types";
16
- import type { CoupleFutureFlowProps } from "./useCoupleFutureFlow.types";
17
- import { useCoupleFutureHandlers } from "./useCoupleFutureHandlers";
18
-
19
- export type {
20
- CoupleFutureFlowConfig,
21
- CoupleFutureFlowState,
22
- CoupleFutureFlowActions,
23
- CoupleFutureFlowProps,
24
- } from "./useCoupleFutureFlow.types";
25
-
26
- declare const __DEV__: boolean;
27
-
28
- export const useCoupleFutureFlow = <TStep, TScenarioId, TResult>(
29
- props: CoupleFutureFlowProps<TStep, TScenarioId, TResult>,
30
- ) => {
31
- const { config, state, actions, generationConfig, alertMessages, userId } = props;
32
- const { processResult, buildCreation, onCreditsExhausted } = props;
33
- const hasStarted = useRef(false);
34
- const lastInputRef = useRef<CoupleFutureInput | null>(null);
35
- const repository = useMemo(() => createCreationsRepository("creations"), []);
36
-
37
- // Strategy for orchestrator - directly uses executor
38
- const strategy: GenerationStrategy<CoupleFutureInput, TResult> = useMemo(
39
- () => ({
40
- execute: async (input, onProgress) => {
41
- if (typeof __DEV__ !== "undefined" && __DEV__) {
42
- console.log("[CoupleFutureFlow] 🎯 Executing generation...");
43
- }
44
- lastInputRef.current = input;
45
- const result = await executeCoupleFuture(
46
- { partnerABase64: input.partnerABase64, partnerBBase64: input.partnerBBase64, prompt: input.prompt },
47
- { onProgress },
48
- );
49
- if (!result.success || !result.imageUrl) throw new Error(result.error || "Generation failed");
50
- return processResult(result.imageUrl, input);
51
- },
52
- getCreditCost: () => 1,
53
- save: async (result, uid) => {
54
- const input = lastInputRef.current;
55
- if (!input) return;
56
- const creation = buildCreation(result, input);
57
- if (creation) await repository.create(uid, creation);
58
- },
59
- }),
60
- [processResult, buildCreation, repository],
61
- );
62
-
63
- // Use orchestrator with centralized lifecycle management
64
- const { generate, isGenerating, progress } = useGenerationOrchestrator(strategy, {
65
- userId,
66
- alertMessages,
67
- onCreditsExhausted,
68
- onSuccess: (result) => {
69
- if (typeof __DEV__ !== "undefined" && __DEV__) {
70
- console.log("[CoupleFutureFlow] 🎉 Success - calling generationSuccess");
71
- }
72
- actions.generationSuccess(result as TResult);
73
- },
74
- onError: (err) => {
75
- if (typeof __DEV__ !== "undefined" && __DEV__) {
76
- console.log("[CoupleFutureFlow] ❌ Error:", err.message);
77
- }
78
- actions.generationError(err.message);
79
- },
80
- // Centralized lifecycle management - navigation handled by orchestrator
81
- lifecycle: {
82
- onComplete: (status) => {
83
- if (typeof __DEV__ !== "undefined" && __DEV__) {
84
- console.log("[CoupleFutureFlow] 📍 Lifecycle onComplete:", status);
85
- }
86
- if (status === "success") {
87
- if (typeof __DEV__ !== "undefined" && __DEV__) {
88
- console.log("[CoupleFutureFlow] 🚀 Navigating to History");
89
- }
90
- actions.onNavigateToHistory();
91
- }
92
- },
93
- completeDelay: 500,
94
- },
95
- });
96
-
97
- // Trigger generation when step changes to GENERATING
98
- useEffect(() => {
99
- const step = state.step;
100
- const isProcessing = state.isProcessing;
101
-
102
- if (typeof __DEV__ !== "undefined" && __DEV__) {
103
- console.log("[CoupleFutureFlow] 📍 Step effect triggered:", {
104
- currentStep: step,
105
- targetStep: config.steps.GENERATING,
106
- isProcessing,
107
- hasStarted: hasStarted.current,
108
- });
109
- }
110
-
111
- if (step !== config.steps.GENERATING) {
112
- hasStarted.current = false;
113
- return;
114
- }
115
-
116
- if (!isProcessing || hasStarted.current) {
117
- if (typeof __DEV__ !== "undefined" && __DEV__) {
118
- console.log("[CoupleFutureFlow] ⏭️ Skipping generation:", {
119
- reason: !isProcessing ? "not processing" : "already started",
120
- });
121
- }
122
- return;
123
- }
124
-
125
- hasStarted.current = true;
126
-
127
- if (typeof __DEV__ !== "undefined" && __DEV__) {
128
- console.log("[CoupleFutureFlow] ✅ Step is GENERATING and isProcessing is true, building input...");
129
- }
130
-
131
- const input = buildGenerationInputFromConfig({
132
- partnerA: state.partnerA as never,
133
- partnerB: state.partnerB as never,
134
- partnerAName: state.partnerAName,
135
- partnerBName: state.partnerBName,
136
- scenario: state.scenarioConfig as never,
137
- customPrompt: state.customPrompt || undefined,
138
- visualStyle: state.visualStyle || "",
139
- defaultPartnerAName: generationConfig.defaultPartnerAName,
140
- defaultPartnerBName: generationConfig.defaultPartnerBName,
141
- coupleFeatureSelection: state.selection as never,
142
- visualStyles: generationConfig.visualStyleModifiers,
143
- customScenarioId: config.customScenarioId as string,
144
- });
145
-
146
- if (input) {
147
- if (typeof __DEV__ !== "undefined" && __DEV__) {
148
- console.log("[CoupleFutureFlow] 🚀 Starting generation with input");
149
- }
150
- generate(input);
151
- } else {
152
- if (typeof __DEV__ !== "undefined" && __DEV__) {
153
- console.log("[CoupleFutureFlow] ⚠️ No input built, skipping generation");
154
- }
155
- }
156
- }, [state.step, state.isProcessing, state.partnerA, state.partnerB, state.partnerAName, state.partnerBName, state.scenarioConfig, state.customPrompt, state.visualStyle, state.selection, config.steps.GENERATING, config.customScenarioId, generationConfig, generate]);
157
-
158
- // Use extracted handlers hook
159
- const handlers = useCoupleFutureHandlers({ config, state, actions });
160
-
161
- return {
162
- isGenerating,
163
- progress,
164
- handlers,
165
- };
166
- };
@@ -1,69 +0,0 @@
1
- /**
2
- * useCoupleFutureFlow Types
3
- * Type definitions for couple future flow hook
4
- */
5
-
6
- import type { AlertMessages } from "../../../../presentation/hooks/generation";
7
- import type { CoupleFutureInput } from "../../domain/types";
8
- import type { Creation } from "../../../../domains/creations/domain/entities/Creation";
9
-
10
- export interface CoupleFutureFlowConfig<TStep, TScenarioId> {
11
- steps: {
12
- SCENARIO: TStep;
13
- SCENARIO_PREVIEW: TStep;
14
- COUPLE_FEATURE_SELECTOR: TStep;
15
- TEXT_INPUT: TStep;
16
- PARTNER_A: TStep;
17
- PARTNER_B: TStep;
18
- GENERATING: TStep;
19
- };
20
- customScenarioId: TScenarioId;
21
- }
22
-
23
- export interface CoupleFutureFlowState<TStep, TScenarioId> {
24
- step: TStep;
25
- selectedScenarioId: TScenarioId | null;
26
- selectedFeature: string | null;
27
- partnerA: unknown;
28
- partnerB: unknown;
29
- partnerAName: string;
30
- partnerBName: string;
31
- customPrompt: string | null;
32
- visualStyle: string | null;
33
- selection: unknown;
34
- isProcessing: boolean;
35
- scenarioConfig: unknown;
36
- selectedScenarioData: { requiresPhoto?: boolean } | null;
37
- }
38
-
39
- export interface CoupleFutureFlowActions<TStep, TScenarioId, TResult> {
40
- setStep: (step: TStep) => void;
41
- selectScenario: (id: TScenarioId) => void;
42
- setPartnerA: (image: unknown) => void;
43
- setPartnerAName: (name: string) => void;
44
- setPartnerB: (image: unknown) => void;
45
- setPartnerBName: (name: string) => void;
46
- setCustomPrompt: (prompt: string) => void;
47
- setVisualStyle: (style: string) => void;
48
- startGeneration: () => void;
49
- generationSuccess: (result: TResult) => void;
50
- generationError: (error: string) => void;
51
- requireFeature: (callback: () => void) => void;
52
- onNavigateToHistory: () => void;
53
- }
54
-
55
- export interface CoupleFutureFlowProps<TStep, TScenarioId, TResult> {
56
- userId?: string;
57
- config: CoupleFutureFlowConfig<TStep, TScenarioId>;
58
- state: CoupleFutureFlowState<TStep, TScenarioId>;
59
- actions: CoupleFutureFlowActions<TStep, TScenarioId, TResult>;
60
- generationConfig: {
61
- visualStyleModifiers: Record<string, string>;
62
- defaultPartnerAName: string;
63
- defaultPartnerBName: string;
64
- };
65
- alertMessages: AlertMessages;
66
- processResult: (imageUrl: string, input: CoupleFutureInput) => TResult;
67
- buildCreation: (result: TResult, input: CoupleFutureInput) => Creation | null;
68
- onCreditsExhausted: () => void;
69
- }
@@ -1,117 +0,0 @@
1
- /**
2
- * useCoupleFutureHandlers Hook
3
- * Step navigation handlers for couple future flow
4
- */
5
-
6
- import { useCallback } from "react";
7
- import type { UploadedImage } from "../../../partner-upload/domain/types";
8
- import type { CoupleFutureFlowConfig, CoupleFutureFlowState, CoupleFutureFlowActions } from "./useCoupleFutureFlow.types";
9
-
10
- declare const __DEV__: boolean;
11
-
12
- interface UseCoupleFutureHandlersProps<TStep, TScenarioId, TResult> {
13
- config: CoupleFutureFlowConfig<TStep, TScenarioId>;
14
- state: CoupleFutureFlowState<TStep, TScenarioId>;
15
- actions: CoupleFutureFlowActions<TStep, TScenarioId, TResult>;
16
- }
17
-
18
- export function useCoupleFutureHandlers<TStep, TScenarioId, TResult>(
19
- props: UseCoupleFutureHandlersProps<TStep, TScenarioId, TResult>,
20
- ) {
21
- const { config, state, actions } = props;
22
-
23
- const handleScenarioSelect = useCallback(
24
- (id: string) => {
25
- actions.selectScenario(id as TScenarioId);
26
- actions.setStep(config.steps.SCENARIO_PREVIEW);
27
- },
28
- [actions, config.steps.SCENARIO_PREVIEW],
29
- );
30
-
31
- const handleScenarioPreviewBack = useCallback(
32
- () => actions.setStep(config.steps.SCENARIO),
33
- [actions, config.steps.SCENARIO],
34
- );
35
-
36
- const handleScenarioPreviewContinue = useCallback(() => {
37
- if (state.selectedFeature) {
38
- actions.setStep(config.steps.COUPLE_FEATURE_SELECTOR);
39
- } else if (
40
- state.selectedScenarioId === config.customScenarioId ||
41
- state.selectedScenarioData?.requiresPhoto === false
42
- ) {
43
- actions.setStep(config.steps.TEXT_INPUT);
44
- } else {
45
- actions.setStep(config.steps.PARTNER_A);
46
- }
47
- }, [actions, config, state.selectedFeature, state.selectedScenarioId, state.selectedScenarioData]);
48
-
49
- const handlePartnerAContinue = useCallback(
50
- (image: UploadedImage, name: string) => {
51
- actions.setPartnerA(image);
52
- actions.setPartnerAName(name);
53
- actions.setStep(config.steps.PARTNER_B);
54
- },
55
- [actions, config.steps.PARTNER_B],
56
- );
57
-
58
- const handlePartnerABack = useCallback(() => {
59
- const targetStep =
60
- state.selectedScenarioId === config.customScenarioId
61
- ? config.steps.TEXT_INPUT
62
- : config.steps.SCENARIO_PREVIEW;
63
- actions.setStep(targetStep);
64
- }, [actions, config, state.selectedScenarioId]);
65
-
66
- const handlePartnerBContinue = useCallback(
67
- (image: UploadedImage, name: string) => {
68
- if (typeof __DEV__ !== "undefined" && __DEV__) {
69
- console.log("[CoupleFutureHandlers] 🎬 handlePartnerBContinue called");
70
- }
71
- actions.requireFeature(() => {
72
- if (typeof __DEV__ !== "undefined" && __DEV__) {
73
- console.log("[CoupleFutureHandlers] 🚀 Executing: setPartnerB, setPartnerBName, startGeneration");
74
- }
75
- actions.setPartnerB(image);
76
- actions.setPartnerBName(name);
77
- actions.startGeneration();
78
- });
79
- },
80
- [actions],
81
- );
82
-
83
- const handlePartnerBBack = useCallback(
84
- () => actions.setStep(config.steps.PARTNER_A),
85
- [actions, config.steps.PARTNER_A],
86
- );
87
-
88
- const handleMagicPromptContinue = useCallback(
89
- (prompt: string, style: string) => {
90
- actions.setCustomPrompt(prompt);
91
- actions.setVisualStyle(style);
92
- if (state.selectedScenarioId === config.customScenarioId) {
93
- actions.setStep(config.steps.PARTNER_A);
94
- } else {
95
- actions.startGeneration();
96
- }
97
- },
98
- [actions, config, state.selectedScenarioId],
99
- );
100
-
101
- const handleMagicPromptBack = useCallback(
102
- () => actions.setStep(config.steps.SCENARIO_PREVIEW),
103
- [actions, config.steps.SCENARIO_PREVIEW],
104
- );
105
-
106
- return {
107
- handleScenarioSelect,
108
- handleScenarioPreviewBack,
109
- handleScenarioPreviewContinue,
110
- handlePartnerAContinue,
111
- handlePartnerABack,
112
- handlePartnerBContinue,
113
- handlePartnerBBack,
114
- handleMagicPromptContinue,
115
- handleMagicPromptBack,
116
- };
117
- }
@@ -1,113 +0,0 @@
1
- /**
2
- * Couple Feature Screen
3
- * Generic screen for couple feature selection with NavigationHeader pattern
4
- */
5
-
6
- import React from "react";
7
- import { View, StyleSheet, TouchableOpacity } from "react-native";
8
- import {
9
- AtomicText,
10
- AtomicIcon,
11
- NavigationHeader,
12
- ScreenLayout,
13
- useAppDesignTokens,
14
- } from "@umituz/react-native-design-system";
15
- import type { CoupleFeatureId, CoupleFeatureSelection } from "../../domain/types";
16
- import { COUPLE_FEATURE_CONFIGS } from "../../infrastructure/coupleFeatureRegistry";
17
- import { RomanticMoodSelector } from "../components/RomanticMoodSelector";
18
- import { ArtStyleSelector } from "../components/ArtStyleSelector";
19
- import { ArtistStyleSelector } from "../components/ArtistStyleSelector";
20
- import { WardrobeSelector } from "../components/WardrobeSelector";
21
-
22
- export interface CoupleFeatureScreenProps {
23
- featureId: CoupleFeatureId;
24
- selection: CoupleFeatureSelection;
25
- onSelectionChange: (selection: CoupleFeatureSelection) => void;
26
- onContinue: () => void;
27
- onBack: () => void;
28
- t: (key: string) => string;
29
- }
30
-
31
- const FeatureComponentMap = {
32
- "romantic-mood": RomanticMoodSelector,
33
- "art-style": ArtStyleSelector,
34
- "artist-style": ArtistStyleSelector,
35
- "wardrobe": WardrobeSelector,
36
- };
37
-
38
- export const CoupleFeatureScreen: React.FC<CoupleFeatureScreenProps> = ({
39
- featureId,
40
- selection,
41
- onSelectionChange,
42
- onContinue,
43
- onBack,
44
- t,
45
- }) => {
46
- const tokens = useAppDesignTokens();
47
- const config = COUPLE_FEATURE_CONFIGS[featureId];
48
-
49
- if (__DEV__) {
50
- console.log("[CoupleFeatureScreen] Render:", {
51
- featureId,
52
- hasConfig: !!config,
53
- hasComponent: !!FeatureComponentMap[featureId],
54
- });
55
- }
56
-
57
- if (!config) return null;
58
-
59
- const FeatureComponent = FeatureComponentMap[featureId];
60
- if (!FeatureComponent) return null;
61
-
62
- const selectorProps = {
63
- selection,
64
- onSelectionChange,
65
- translationPrefix: config.translationPrefix,
66
- t,
67
- };
68
-
69
- return (
70
- <View style={[styles.container, { backgroundColor: tokens.colors.backgroundPrimary }]}>
71
- <NavigationHeader
72
- title={t(`${config.translationPrefix}.title`)}
73
- onBackPress={onBack}
74
- rightElement={
75
- <TouchableOpacity
76
- onPress={onContinue}
77
- activeOpacity={0.7}
78
- style={{
79
- flexDirection: "row",
80
- alignItems: "center",
81
- backgroundColor: tokens.colors.primary,
82
- paddingHorizontal: tokens.spacing.md,
83
- paddingVertical: tokens.spacing.xs,
84
- borderRadius: tokens.borders.radius.full,
85
- }}
86
- >
87
- <AtomicText
88
- type="bodyMedium"
89
- style={{ fontWeight: "800", color: tokens.colors.onPrimary, marginRight: 4 }}
90
- >
91
- {t("common.continue")}
92
- </AtomicText>
93
- <AtomicIcon name="arrow-forward" size="sm" color="onPrimary" />
94
- </TouchableOpacity>
95
- }
96
- />
97
- <ScreenLayout
98
- edges={["left", "right"]}
99
- backgroundColor="transparent"
100
- scrollable={true}
101
- contentContainerStyle={styles.scrollContent}
102
- hideScrollIndicator={true}
103
- >
104
- <FeatureComponent {...selectorProps} />
105
- </ScreenLayout>
106
- </View>
107
- );
108
- };
109
-
110
- const styles = StyleSheet.create({
111
- container: { flex: 1 },
112
- scrollContent: { paddingBottom: 24 },
113
- });