@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,228 +0,0 @@
1
- /**
2
- * Generation Utilities
3
- * Config-driven input building and result processing
4
- */
5
-
6
- import { enhanceCouplePrompt } from "./couplePromptEnhancer";
7
- import type { CoupleFeatureSelection } from "../domain/types";
8
-
9
- /**
10
- * Scenario config interface - app provides this data
11
- */
12
- export interface ScenarioConfig {
13
- readonly id: string;
14
- readonly aiPrompt: string;
15
- readonly storyTemplate: string;
16
- readonly title?: string;
17
- }
18
-
19
- /**
20
- * Visual style modifiers config
21
- */
22
- export interface VisualStyleConfig {
23
- readonly [key: string]: string;
24
- }
25
-
26
- export const DEFAULT_VISUAL_STYLES: VisualStyleConfig = {
27
- realistic: "photorealistic, highly detailed, professional photography",
28
- anime: "anime art style, vibrant colors, manga aesthetic, cel-shaded",
29
- cinematic: "cinematic lighting, dramatic composition, film photography, movie scene",
30
- "3d": "3D render, octane render, unreal engine, raytraced lighting",
31
- } as const;
32
-
33
- /**
34
- * Uploaded image interface
35
- */
36
- export interface GenerationImage {
37
- readonly uri: string;
38
- readonly base64?: string;
39
- readonly previewUrl?: string;
40
- }
41
-
42
- /**
43
- * Generation input builder config
44
- */
45
- export interface BuildGenerationInputConfig {
46
- readonly partnerA: GenerationImage | null;
47
- readonly partnerB: GenerationImage | null;
48
- readonly partnerAName: string;
49
- readonly partnerBName: string;
50
- readonly scenario: ScenarioConfig | null;
51
- readonly customPrompt?: string;
52
- readonly visualStyle: string;
53
- readonly defaultPartnerAName: string;
54
- readonly defaultPartnerBName: string;
55
- readonly coupleFeatureSelection?: CoupleFeatureSelection;
56
- readonly visualStyles?: VisualStyleConfig;
57
- readonly customScenarioId?: string;
58
- }
59
-
60
- /**
61
- * Generation input with base64
62
- */
63
- export interface GenerationInputResult {
64
- readonly partnerA: GenerationImage;
65
- readonly partnerB: GenerationImage;
66
- readonly partnerABase64: string;
67
- readonly partnerBBase64: string;
68
- readonly prompt: string;
69
- readonly partnerAName: string;
70
- readonly partnerBName: string;
71
- readonly scenarioId: string;
72
- readonly customPrompt?: string;
73
- }
74
-
75
- /**
76
- * Build generation input from config
77
- */
78
- export const buildGenerationInputFromConfig = (
79
- config: BuildGenerationInputConfig,
80
- ): GenerationInputResult | null => {
81
- const {
82
- partnerA,
83
- partnerB,
84
- partnerAName,
85
- partnerBName,
86
- scenario,
87
- customPrompt,
88
- visualStyle,
89
- defaultPartnerAName,
90
- defaultPartnerBName,
91
- coupleFeatureSelection = {},
92
- visualStyles = DEFAULT_VISUAL_STYLES,
93
- customScenarioId = "custom",
94
- } = config;
95
-
96
- if (!partnerA || !partnerB || !scenario) {
97
- return null;
98
- }
99
-
100
- let prompt = scenario.aiPrompt;
101
-
102
- if (scenario.id === customScenarioId && customPrompt) {
103
- prompt = prompt.replace("{{customPrompt}}", customPrompt);
104
- }
105
-
106
- const styleModifier = visualStyles[visualStyle];
107
- if (visualStyle !== "realistic" && styleModifier) {
108
- prompt = prompt.replace(/photorealistic/gi, styleModifier);
109
- }
110
-
111
- prompt = enhanceCouplePrompt(prompt, coupleFeatureSelection);
112
-
113
- return {
114
- partnerA,
115
- partnerB,
116
- partnerABase64: partnerA.base64 || "",
117
- partnerBBase64: partnerB.base64 || "",
118
- prompt,
119
- partnerAName: partnerAName || defaultPartnerAName,
120
- partnerBName: partnerBName || defaultPartnerBName,
121
- scenarioId: scenario.id,
122
- customPrompt,
123
- };
124
- };
125
-
126
- /**
127
- * Process result config
128
- */
129
- export interface ProcessResultConfig {
130
- readonly scenarioId: string;
131
- readonly partnerAName: string;
132
- readonly partnerBName: string;
133
- readonly scenario: ScenarioConfig;
134
- }
135
-
136
- /**
137
- * Generation result
138
- */
139
- export interface GenerationResultData {
140
- readonly imageUrl: string;
141
- readonly story: string;
142
- readonly date: string;
143
- readonly scenarioId: string;
144
- readonly names: string;
145
- readonly timestamp: number;
146
- }
147
-
148
- /**
149
- * Process generation result from config
150
- */
151
- export const processGenerationResultFromConfig = (
152
- imageUrl: string,
153
- config: ProcessResultConfig,
154
- ): GenerationResultData => {
155
- const { scenario, partnerAName, partnerBName, scenarioId } = config;
156
-
157
- const futureYear = new Date().getFullYear() + 5 + Math.floor(Math.random() * 20);
158
- const months = ["May", "June", "August"];
159
- const randomMonth = months[Math.floor(Math.random() * months.length)];
160
- const randomDay = Math.floor(Math.random() * 28) + 1;
161
-
162
- const story = scenario.storyTemplate
163
- .replace(/\{\{partnerA\}\}/g, partnerAName)
164
- .replace(/\{\{partnerB\}\}/g, partnerBName)
165
- .replace(/\{\{year\}\}/g, String(futureYear));
166
-
167
- return {
168
- imageUrl,
169
- story,
170
- date: `${randomMonth} ${randomDay}, ${futureYear}`,
171
- scenarioId,
172
- names: `${partnerAName} & ${partnerBName}`,
173
- timestamp: Date.now(),
174
- };
175
- };
176
-
177
- /**
178
- * Build creation config
179
- */
180
- export interface BuildCreationConfig {
181
- readonly scenarioId: string;
182
- readonly partnerAName: string;
183
- readonly partnerBName: string;
184
- readonly scenarioTitle?: string;
185
- }
186
-
187
- /**
188
- * Creation data
189
- */
190
- export interface CoupleFutureCreationData {
191
- readonly id: string;
192
- readonly uri: string;
193
- readonly type: string;
194
- readonly prompt: string;
195
- readonly metadata: {
196
- readonly scenarioId: string;
197
- readonly partnerAName: string;
198
- readonly partnerBName: string;
199
- };
200
- readonly createdAt: Date;
201
- readonly isShared: boolean;
202
- readonly isFavorite: boolean;
203
- }
204
-
205
- /**
206
- * Build creation from result
207
- */
208
- export const buildCreationFromConfig = (
209
- result: GenerationResultData,
210
- config: BuildCreationConfig,
211
- ): CoupleFutureCreationData => {
212
- const { scenarioId, partnerAName, partnerBName, scenarioTitle } = config;
213
-
214
- return {
215
- id: `${scenarioId}_${Date.now()}`,
216
- uri: result.imageUrl,
217
- type: scenarioId,
218
- prompt: scenarioTitle || scenarioId,
219
- metadata: {
220
- scenarioId,
221
- partnerAName,
222
- partnerBName,
223
- },
224
- createdAt: new Date(),
225
- isShared: false,
226
- isFavorite: false,
227
- };
228
- };
@@ -1,146 +0,0 @@
1
- /**
2
- * Art Style Selector Component
3
- * Single-select art style selector with intensity control
4
- */
5
-
6
- import React from "react";
7
- import { View, TouchableOpacity, StyleSheet, ScrollView } from "react-native";
8
- import {
9
- AtomicText,
10
- AtomicIcon,
11
- useAppDesignTokens,
12
- } from "@umituz/react-native-design-system";
13
- import type { CoupleFeatureSelection } from "../../domain/types";
14
- import { ART_STYLE_OPTIONS } from "../../infrastructure/coupleFeatureRegistry";
15
-
16
- export interface ArtStyleSelectorProps {
17
- selection: CoupleFeatureSelection;
18
- onSelectionChange: (selection: CoupleFeatureSelection) => void;
19
- translationPrefix: string;
20
- t: (key: string) => string;
21
- }
22
-
23
- export const ArtStyleSelector: React.FC<ArtStyleSelectorProps> = ({
24
- selection,
25
- onSelectionChange,
26
- translationPrefix,
27
- t,
28
- }) => {
29
- const tokens = useAppDesignTokens();
30
- const selectedStyle = selection.artStyle;
31
- const intensity = selection.artStyleIntensity || 80;
32
-
33
- const handleStyleSelect = (styleId: string) => {
34
- onSelectionChange({ ...selection, artStyle: styleId });
35
- };
36
-
37
- const handleIntensityChange = (value: number) => {
38
- onSelectionChange({ ...selection, artStyleIntensity: value });
39
- };
40
-
41
- return (
42
- <ScrollView style={s.container}>
43
- <View style={s.section}>
44
- <AtomicText
45
- type="bodyMedium"
46
- style={[s.title, { color: tokens.colors.textPrimary }]}
47
- >
48
- {t(`${translationPrefix}.selectStyle`)}
49
- </AtomicText>
50
-
51
- <View style={s.grid}>
52
- {ART_STYLE_OPTIONS.map((style) => {
53
- const isSelected = selectedStyle === style.id;
54
- return (
55
- <TouchableOpacity
56
- key={style.id}
57
- style={[
58
- s.card,
59
- {
60
- backgroundColor: isSelected
61
- ? `${tokens.colors.primary}15`
62
- : tokens.colors.surface,
63
- borderColor: isSelected
64
- ? tokens.colors.primary
65
- : tokens.colors.borderLight,
66
- },
67
- ]}
68
- onPress={() => handleStyleSelect(style.id)}
69
- >
70
- <AtomicIcon
71
- name={style.iconKey as never}
72
- size="lg"
73
- color={isSelected ? "primary" : "textSecondary"}
74
- />
75
- <AtomicText
76
- type="labelMedium"
77
- style={[
78
- s.label,
79
- {
80
- color: isSelected
81
- ? tokens.colors.primary
82
- : tokens.colors.textSecondary,
83
- fontWeight: isSelected ? "600" : "400",
84
- },
85
- ]}
86
- >
87
- {t(`${translationPrefix}.styles.${style.labelKey}`)}
88
- </AtomicText>
89
- </TouchableOpacity>
90
- );
91
- })}
92
- </View>
93
- </View>
94
-
95
- {selectedStyle && selectedStyle !== "original" && (
96
- <View style={s.section}>
97
- <View style={s.header}>
98
- <AtomicText type="bodyMedium" style={[s.title, { color: tokens.colors.textPrimary }]}>
99
- {t(`${translationPrefix}.intensity`)}
100
- </AtomicText>
101
- <AtomicText type="bodyMedium" style={{ color: tokens.colors.primary, fontWeight: "600" }}>
102
- {intensity}%
103
- </AtomicText>
104
- </View>
105
-
106
- <View style={s.slider}>
107
- {[25, 50, 75, 100].map((value) => (
108
- <TouchableOpacity
109
- key={value}
110
- style={[
111
- s.button,
112
- {
113
- backgroundColor: intensity === value ? tokens.colors.primary : tokens.colors.surface,
114
- borderColor: intensity === value ? tokens.colors.primary : tokens.colors.borderLight,
115
- },
116
- ]}
117
- onPress={() => handleIntensityChange(value)}
118
- >
119
- <AtomicText
120
- type="labelSmall"
121
- style={{
122
- color: intensity === value ? tokens.colors.onPrimary : tokens.colors.textSecondary,
123
- }}
124
- >
125
- {value}%
126
- </AtomicText>
127
- </TouchableOpacity>
128
- ))}
129
- </View>
130
- </View>
131
- )}
132
- </ScrollView>
133
- );
134
- };
135
-
136
- const s = StyleSheet.create({
137
- container: { flex: 1 },
138
- section: { padding: 16, marginBottom: 8 },
139
- title: { fontWeight: "600", marginBottom: 12 },
140
- grid: { flexDirection: "row", flexWrap: "wrap", gap: 12 },
141
- card: { width: "30%", aspectRatio: 0.85, padding: 12, borderRadius: 12, borderWidth: 2, alignItems: "center", justifyContent: "center" },
142
- label: { marginTop: 8, textAlign: "center" },
143
- header: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" },
144
- slider: { flexDirection: "row", gap: 8, marginTop: 8 },
145
- button: { flex: 1, padding: 12, borderRadius: 8, borderWidth: 2, alignItems: "center" },
146
- });
@@ -1,122 +0,0 @@
1
- /**
2
- * Artist Style Selector Component
3
- * Single-select artist style selector with intensity control
4
- */
5
-
6
- import React from "react";
7
- import { View, TouchableOpacity, StyleSheet, ScrollView } from "react-native";
8
- import {
9
- AtomicText,
10
- AtomicIcon,
11
- useAppDesignTokens,
12
- } from "@umituz/react-native-design-system";
13
- import type { CoupleFeatureSelection } from "../../domain/types";
14
- import { ARTIST_STYLE_OPTIONS } from "../../infrastructure/coupleFeatureRegistry";
15
-
16
- export interface ArtistStyleSelectorProps {
17
- selection: CoupleFeatureSelection;
18
- onSelectionChange: (selection: CoupleFeatureSelection) => void;
19
- translationPrefix: string;
20
- t: (key: string) => string;
21
- }
22
-
23
- export const ArtistStyleSelector: React.FC<ArtistStyleSelectorProps> = ({
24
- selection,
25
- onSelectionChange,
26
- translationPrefix,
27
- t,
28
- }) => {
29
- const tokens = useAppDesignTokens();
30
- const selectedArtist = selection.artist;
31
- const intensity = selection.artistIntensity || 70;
32
-
33
- const handleArtistSelect = (artistId: string) => {
34
- onSelectionChange({ ...selection, artist: artistId });
35
- };
36
-
37
- const handleIntensityChange = (value: number) => {
38
- onSelectionChange({ ...selection, artistIntensity: value });
39
- };
40
-
41
- return (
42
- <ScrollView style={s.container}>
43
- <View style={s.section}>
44
- <AtomicText
45
- type="bodyMedium"
46
- style={[s.title, { color: tokens.colors.textPrimary }]}
47
- >
48
- {t(`${translationPrefix}.selectArtist`)}
49
- </AtomicText>
50
-
51
- <View style={s.grid}>
52
- {ARTIST_STYLE_OPTIONS.map((artist) => {
53
- const isSelected = selectedArtist === artist.id;
54
- return (
55
- <TouchableOpacity
56
- key={artist.id}
57
- style={[
58
- s.card,
59
- {
60
- backgroundColor: isSelected ? `${tokens.colors.primary}15` : tokens.colors.surface,
61
- borderColor: isSelected ? tokens.colors.primary : tokens.colors.borderLight,
62
- },
63
- ]}
64
- onPress={() => handleArtistSelect(artist.id)}
65
- >
66
- <View style={[s.iconContainer, { backgroundColor: isSelected ? tokens.colors.primary : tokens.colors.surfaceVariant }]}>
67
- <AtomicIcon name={artist.iconKey as never} size="lg" color={isSelected ? "onPrimary" : "textSecondary"} />
68
- </View>
69
- <AtomicText
70
- type="labelMedium"
71
- style={[s.label, { color: isSelected ? tokens.colors.primary : tokens.colors.textPrimary, fontWeight: isSelected ? "600" : "500" }]}
72
- >
73
- {t(`${translationPrefix}.artists.${artist.labelKey}`)}
74
- </AtomicText>
75
- </TouchableOpacity>
76
- );
77
- })}
78
- </View>
79
- </View>
80
-
81
- {selectedArtist && (
82
- <View style={s.section}>
83
- <View style={s.header}>
84
- <AtomicText type="bodyMedium" style={[s.title, { color: tokens.colors.textPrimary }]}>
85
- {t(`${translationPrefix}.intensity`)}
86
- </AtomicText>
87
- <AtomicText type="bodyMedium" style={{ color: tokens.colors.primary, fontWeight: "600" }}>
88
- {intensity}%
89
- </AtomicText>
90
- </View>
91
-
92
- <View style={s.slider}>
93
- {[25, 50, 75, 100].map((value) => (
94
- <TouchableOpacity
95
- key={value}
96
- style={[s.button, { backgroundColor: intensity === value ? tokens.colors.primary : tokens.colors.surface, borderColor: intensity === value ? tokens.colors.primary : tokens.colors.borderLight }]}
97
- onPress={() => handleIntensityChange(value)}
98
- >
99
- <AtomicText type="labelSmall" style={{ color: intensity === value ? tokens.colors.onPrimary : tokens.colors.textSecondary }}>
100
- {value}%
101
- </AtomicText>
102
- </TouchableOpacity>
103
- ))}
104
- </View>
105
- </View>
106
- )}
107
- </ScrollView>
108
- );
109
- };
110
-
111
- const s = StyleSheet.create({
112
- container: { flex: 1 },
113
- section: { padding: 16, marginBottom: 8 },
114
- title: { fontWeight: "600", marginBottom: 12 },
115
- grid: { flexDirection: "row", flexWrap: "wrap", gap: 12 },
116
- card: { width: "47%", padding: 12, borderRadius: 12, borderWidth: 2, alignItems: "center", justifyContent: "center" },
117
- iconContainer: { width: 64, height: 64, borderRadius: 32, alignItems: "center", justifyContent: "center", marginBottom: 8 },
118
- label: { textAlign: "center" },
119
- header: { flexDirection: "row", justifyContent: "space-between", alignItems: "center" },
120
- slider: { flexDirection: "row", gap: 8, marginTop: 8 },
121
- button: { flex: 1, padding: 12, borderRadius: 8, borderWidth: 2, alignItems: "center" },
122
- });