@umituz/react-native-ai-generation-content 1.26.1 → 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 (328) 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/infrastructure/providers/generation-config.provider.tsx +20 -9
  14. package/src/features/ai-hug/README.md +0 -438
  15. package/src/features/ai-hug/domain/index.ts +0 -5
  16. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  17. package/src/features/ai-hug/domain/types/index.ts +0 -7
  18. package/src/features/ai-hug/index.ts +0 -19
  19. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  20. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  21. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  22. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  23. package/src/features/ai-hug/presentation/index.ts +0 -6
  24. package/src/features/ai-kiss/README.md +0 -445
  25. package/src/features/ai-kiss/domain/index.ts +0 -5
  26. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  27. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  28. package/src/features/ai-kiss/index.ts +0 -19
  29. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  30. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  31. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  32. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  33. package/src/features/ai-kiss/presentation/index.ts +0 -6
  34. package/src/features/anime-selfie/README.md +0 -396
  35. package/src/features/anime-selfie/domain/index.ts +0 -5
  36. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  37. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  38. package/src/features/anime-selfie/index.ts +0 -20
  39. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  40. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  41. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  42. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  43. package/src/features/anime-selfie/presentation/index.ts +0 -6
  44. package/src/features/couple-future/README.md +0 -445
  45. package/src/features/couple-future/domain/types.ts +0 -63
  46. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  47. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  48. package/src/features/couple-future/index.ts +0 -83
  49. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  50. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  51. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  52. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  53. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  54. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  55. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  56. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  57. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  58. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  59. package/src/features/couple-future/presentation/components/index.ts +0 -12
  60. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  62. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  63. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  64. package/src/features/face-swap/README.md +0 -431
  65. package/src/features/face-swap/domain/index.ts +0 -5
  66. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  67. package/src/features/face-swap/domain/types/index.ts +0 -7
  68. package/src/features/face-swap/index.ts +0 -19
  69. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  70. package/src/features/face-swap/presentation/components/index.ts +0 -2
  71. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  72. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  73. package/src/features/face-swap/presentation/index.ts +0 -6
  74. package/src/features/hd-touch-up/README.md +0 -396
  75. package/src/features/hd-touch-up/domain/index.ts +0 -1
  76. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  77. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  78. package/src/features/hd-touch-up/index.ts +0 -21
  79. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  80. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  81. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  82. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  83. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  84. package/src/features/image-to-image/README.md +0 -459
  85. package/src/features/image-to-image/domain/index.ts +0 -1
  86. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  87. package/src/features/image-to-image/domain/types/index.ts +0 -1
  88. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  89. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  90. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  91. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  92. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  93. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  94. package/src/features/image-to-image/index.ts +0 -2
  95. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  96. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  97. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  98. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  99. package/src/features/image-to-image/presentation/index.ts +0 -1
  100. package/src/features/image-to-video/README.md +0 -414
  101. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  102. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  103. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  104. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  105. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  106. package/src/features/image-to-video/domain/index.ts +0 -5
  107. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  108. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  109. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  110. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  111. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  112. package/src/features/image-to-video/domain/types/index.ts +0 -39
  113. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  114. package/src/features/image-to-video/index.ts +0 -116
  115. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  116. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  117. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  118. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  119. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  120. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  121. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  122. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  123. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  125. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  126. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  127. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  128. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  129. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  130. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  131. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  132. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  134. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  135. package/src/features/image-to-video/presentation/index.ts +0 -5
  136. package/src/features/love-message/domain/constants.ts +0 -162
  137. package/src/features/love-message/domain/types.ts +0 -58
  138. package/src/features/love-message/index.ts +0 -37
  139. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  140. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  141. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  142. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  143. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  144. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  145. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  146. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  147. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  148. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  149. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  150. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  151. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  152. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  153. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  154. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  155. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  156. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  157. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  158. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  159. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  160. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  161. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  162. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  163. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  164. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  165. package/src/features/meme-generator/README.md +0 -408
  166. package/src/features/meme-generator/index.ts +0 -3
  167. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  168. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  169. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  170. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  171. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  172. package/src/features/partner-upload/domain/types.ts +0 -59
  173. package/src/features/partner-upload/index.ts +0 -30
  174. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  175. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  176. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  177. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  178. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  179. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  180. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  181. package/src/features/photo-restoration/README.md +0 -399
  182. package/src/features/photo-restoration/domain/index.ts +0 -1
  183. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  184. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  185. package/src/features/photo-restoration/index.ts +0 -22
  186. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  187. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  188. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  189. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  190. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  191. package/src/features/photo-restoration/presentation/index.ts +0 -2
  192. package/src/features/remove-background/README.md +0 -393
  193. package/src/features/remove-background/domain/index.ts +0 -5
  194. package/src/features/remove-background/domain/types/index.ts +0 -7
  195. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  196. package/src/features/remove-background/index.ts +0 -19
  197. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  198. package/src/features/remove-background/presentation/components/index.ts +0 -2
  199. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  200. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  201. package/src/features/remove-background/presentation/index.ts +0 -6
  202. package/src/features/remove-object/README.md +0 -405
  203. package/src/features/remove-object/domain/index.ts +0 -5
  204. package/src/features/remove-object/domain/types/index.ts +0 -7
  205. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  206. package/src/features/remove-object/index.ts +0 -23
  207. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  208. package/src/features/remove-object/presentation/components/index.ts +0 -2
  209. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  210. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  211. package/src/features/remove-object/presentation/index.ts +0 -6
  212. package/src/features/replace-background/README.md +0 -405
  213. package/src/features/replace-background/domain/types/index.ts +0 -7
  214. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  215. package/src/features/replace-background/index.ts +0 -23
  216. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  217. package/src/features/replace-background/presentation/components/index.ts +0 -6
  218. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  219. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  220. package/src/features/scenarios/domain/types.ts +0 -147
  221. package/src/features/scenarios/index.ts +0 -64
  222. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  223. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  224. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  225. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  226. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  227. package/src/features/scenarios/presentation/components/index.ts +0 -18
  228. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  229. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  230. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  231. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  232. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  233. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  234. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  235. package/src/features/script-generator/README.md +0 -433
  236. package/src/features/script-generator/domain/constants/index.ts +0 -10
  237. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  238. package/src/features/script-generator/index.ts +0 -5
  239. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  240. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  241. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  242. package/src/features/script-generator/presentation/components/index.ts +0 -2
  243. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  244. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  245. package/src/features/shared/README.md +0 -311
  246. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  247. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  248. package/src/features/shared/dual-image-video/index.ts +0 -17
  249. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  250. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  251. package/src/features/shared/index.ts +0 -6
  252. package/src/features/text-to-image/README.md +0 -394
  253. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  254. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  255. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  256. package/src/features/text-to-image/domain/index.ts +0 -7
  257. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  258. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  259. package/src/features/text-to-image/domain/types/index.ts +0 -38
  260. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  261. package/src/features/text-to-image/index.ts +0 -116
  262. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  263. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  264. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  265. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  266. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  267. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  268. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  269. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  270. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  271. package/src/features/text-to-image/presentation/index.ts +0 -7
  272. package/src/features/text-to-video/README.md +0 -412
  273. package/src/features/text-to-video/domain/index.ts +0 -1
  274. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  275. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  276. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  277. package/src/features/text-to-video/domain/types/index.ts +0 -56
  278. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  279. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  280. package/src/features/text-to-video/index.ts +0 -68
  281. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  282. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  283. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  284. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  285. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  286. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  287. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  288. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  289. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  290. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  291. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  292. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  293. package/src/features/text-to-video/presentation/index.ts +0 -7
  294. package/src/features/text-to-voice/README.md +0 -445
  295. package/src/features/text-to-voice/domain/index.ts +0 -1
  296. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  297. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  298. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  299. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  300. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  301. package/src/features/text-to-voice/index.ts +0 -53
  302. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  303. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  304. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  305. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  306. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  307. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  308. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  309. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  310. package/src/features/text-to-voice/presentation/index.ts +0 -2
  311. package/src/features/upscaling/README.md +0 -396
  312. package/src/features/upscaling/domain/index.ts +0 -1
  313. package/src/features/upscaling/domain/types/index.ts +0 -1
  314. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  315. package/src/features/upscaling/index.ts +0 -20
  316. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  317. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  318. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  319. package/src/features/upscaling/presentation/components/index.ts +0 -6
  320. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  321. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  322. package/src/features/upscaling/presentation/index.ts +0 -2
  323. package/src/features/wizard/domain/types.ts +0 -154
  324. package/src/features/wizard/index.ts +0 -43
  325. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  326. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  327. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  328. package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
@@ -1,62 +0,0 @@
1
- import {
2
- ScriptSection,
3
- ScriptGenerationRequest,
4
- } from "../../domain/types/script.types";
5
- import { DEFAULT_VIDEO_TYPES } from "../../domain/constants";
6
-
7
- /**
8
- * ScriptGenerationService
9
- * Handles building prompts and (eventually) calling AI providers for script generation.
10
- */
11
- export class ScriptGenerationService {
12
- /**
13
- * Build prompt for script generation
14
- */
15
- buildScriptPrompt(request: ScriptGenerationRequest): string {
16
- const typeInfo = DEFAULT_VIDEO_TYPES.find((t) => t.id === request.videoType);
17
-
18
- return `Generate a video script for a ${request.duration}-second ${typeInfo?.name || "video"} about: ${request.topic}
19
-
20
- ${request.targetAudience ? `Target Audience: ${request.targetAudience}` : ""}
21
- ${request.keyPoints ? `Key Points to Cover: ${request.keyPoints}` : ""}
22
-
23
- Please create a detailed script with the following structure:
24
- 1. Hook (3-5 seconds): Attention-grabbing opening
25
- 2. Introduction (5-10 seconds): Brief intro to the topic
26
- 3. Main Content (${request.duration - 15} seconds): Core message and value
27
- 4. Call-to-Action (5 seconds): Clear next step for viewers
28
-
29
- For each section, provide:
30
- - Section title
31
- - Voiceover text
32
- - Duration in seconds
33
- - Visual/scene suggestions
34
-
35
- Format as JSON with this structure:
36
- {
37
- "sections": [
38
- {
39
- "type": "hook|intro|main|cta",
40
- "title": "Section title",
41
- "content": "Voiceover text",
42
- "duration": 5,
43
- "notes": "Visual suggestions"
44
- }
45
- ],
46
- "totalDuration": ${request.duration}
47
- }`;
48
- }
49
-
50
- /**
51
- * Generate script from request
52
- */
53
- async generateScript(
54
- _request: ScriptGenerationRequest,
55
- ): Promise<readonly ScriptSection[] | null> {
56
- // NOTE: This will be implemented by the app using a specific AI provider
57
- // The package provides the structure and prompt building.
58
- return null;
59
- }
60
- }
61
-
62
- export const scriptGenerationService = new ScriptGenerationService();
@@ -1,158 +0,0 @@
1
- /**
2
- * ScriptDisplay Component
3
- * Generic display for AI-generated scripts with sections, durations and types.
4
- */
5
-
6
- import React from "react";
7
- import { View, TouchableOpacity, StyleSheet } from "react-native";
8
- import {
9
- AtomicText,
10
- AtomicIcon,
11
- useAppDesignTokens,
12
- } from "@umituz/react-native-design-system";
13
- import type { ScriptSection } from "../../domain/types/script.types";
14
-
15
- export interface ScriptDisplayProps {
16
- readonly script: readonly ScriptSection[];
17
- readonly onUseScript: () => void;
18
- readonly title?: string;
19
- readonly useButtonText?: string;
20
- }
21
-
22
- export const ScriptDisplay: React.FC<ScriptDisplayProps> = ({
23
- script,
24
- onUseScript,
25
- title = "Generated Script",
26
- useButtonText = "Use This Script",
27
- }) => {
28
- const tokens = useAppDesignTokens();
29
-
30
- return (
31
- <View style={styles.container}>
32
- <View style={styles.header}>
33
- <AtomicText
34
- type="bodyLarge"
35
- style={[styles.headerTitle, { color: tokens.colors.textPrimary }]}
36
- >
37
- 📝 {title}
38
- </AtomicText>
39
- <TouchableOpacity onPress={onUseScript}>
40
- <AtomicIcon name="checkmark-outline" size="md" color="primary" />
41
- </TouchableOpacity>
42
- </View>
43
-
44
- {script.map((section) => (
45
- <View
46
- key={section.id}
47
- style={[
48
- styles.section,
49
- { backgroundColor: tokens.colors.surface },
50
- ]}
51
- >
52
- <View style={styles.sectionHeader}>
53
- <AtomicText
54
- type="bodyMedium"
55
- style={{ color: tokens.colors.primary, fontWeight: "600" }}
56
- >
57
- {section.title} ({section.duration}s)
58
- </AtomicText>
59
- <View
60
- style={[
61
- styles.badge,
62
- { backgroundColor: tokens.colors.surfaceVariant },
63
- ]}
64
- >
65
- <AtomicText
66
- type="labelSmall"
67
- style={{ color: tokens.colors.primary }}
68
- >
69
- {section.type.toUpperCase()}
70
- </AtomicText>
71
- </View>
72
- </View>
73
- <AtomicText
74
- type="bodySmall"
75
- style={{
76
- color: tokens.colors.textPrimary,
77
- marginTop: 8,
78
- lineHeight: 22,
79
- }}
80
- >
81
- {section.content}
82
- </AtomicText>
83
- {section.notes && ( section.notes.length > 0) && (
84
- <AtomicText
85
- type="labelSmall"
86
- style={{
87
- color: tokens.colors.textSecondary,
88
- marginTop: 8,
89
- fontStyle: "italic",
90
- }}
91
- >
92
- 💡 {section.notes}
93
- </AtomicText>
94
- )}
95
- </View>
96
- ))}
97
-
98
- <TouchableOpacity
99
- style={[
100
- styles.useButton,
101
- { backgroundColor: tokens.colors.primary },
102
- ]}
103
- onPress={onUseScript}
104
- >
105
- <AtomicIcon name="checkmark-outline" size="md" color="textInverse" />
106
- <AtomicText
107
- type="bodyLarge"
108
- style={[styles.useButtonText, { color: tokens.colors.textInverse }]}
109
- >
110
- {useButtonText}
111
- </AtomicText>
112
- </TouchableOpacity>
113
- </View>
114
- );
115
- };
116
-
117
- const styles = StyleSheet.create({
118
- container: {
119
- padding: 16,
120
- width: "100%",
121
- },
122
- header: {
123
- flexDirection: "row",
124
- alignItems: "center",
125
- justifyContent: "space-between",
126
- marginBottom: 16,
127
- },
128
- headerTitle: {
129
- fontWeight: "700",
130
- },
131
- section: {
132
- padding: 16,
133
- borderRadius: 12,
134
- marginBottom: 12,
135
- },
136
- sectionHeader: {
137
- flexDirection: "row",
138
- alignItems: "center",
139
- justifyContent: "space-between",
140
- },
141
- badge: {
142
- paddingHorizontal: 8,
143
- paddingVertical: 4,
144
- borderRadius: 6,
145
- },
146
- useButton: {
147
- flexDirection: "row",
148
- alignItems: "center",
149
- justifyContent: "center",
150
- padding: 18,
151
- borderRadius: 16,
152
- marginTop: 16,
153
- },
154
- useButtonText: {
155
- fontWeight: "700",
156
- marginLeft: 12,
157
- },
158
- });
@@ -1,102 +0,0 @@
1
- /**
2
- * VideoTypeSelector Component
3
- * Horizontal scroll selector for different video types with emojis.
4
- */
5
-
6
- import React from "react";
7
- import { View, ScrollView, TouchableOpacity, StyleSheet } from "react-native";
8
- import {
9
- AtomicText,
10
- useAppDesignTokens,
11
- } from "@umituz/react-native-design-system";
12
- import { VideoTypeOption } from "../../domain/types/script.types";
13
-
14
- export interface VideoTypeSelectorProps {
15
- readonly selectedType: string;
16
- readonly onSelectType: (typeId: string) => void;
17
- readonly types: readonly VideoTypeOption[];
18
- readonly title?: string;
19
- }
20
-
21
- export const VideoTypeSelector: React.FC<VideoTypeSelectorProps> = ({
22
- selectedType,
23
- onSelectType,
24
- types,
25
- title = "Video Type",
26
- }) => {
27
- const tokens = useAppDesignTokens();
28
-
29
- return (
30
- <View style={styles.section}>
31
- <AtomicText
32
- type="bodyMedium"
33
- style={[styles.title, { color: tokens.colors.textPrimary }]}
34
- >
35
- {title}
36
- </AtomicText>
37
- <ScrollView
38
- horizontal
39
- showsHorizontalScrollIndicator={false}
40
- contentContainerStyle={styles.scrollContent}
41
- >
42
- {types.map((type) => (
43
- <TouchableOpacity
44
- key={type.id}
45
- style={[
46
- styles.card,
47
- {
48
- backgroundColor:
49
- selectedType === type.id
50
- ? tokens.colors.primary
51
- : tokens.colors.surface,
52
- borderColor:
53
- selectedType === type.id
54
- ? tokens.colors.primary
55
- : tokens.colors.borderLight,
56
- },
57
- ]}
58
- onPress={() => onSelectType(type.id)}
59
- >
60
- <AtomicText type="headlineLarge">{type.emoji}</AtomicText>
61
- <AtomicText
62
- type="bodySmall"
63
- style={{
64
- color:
65
- selectedType === type.id
66
- ? tokens.colors.onPrimary
67
- : tokens.colors.textPrimary,
68
- fontWeight: selectedType === type.id ? "600" : "400",
69
- marginTop: 8,
70
- textAlign: "center",
71
- }}
72
- >
73
- {type.name}
74
- </AtomicText>
75
- </TouchableOpacity>
76
- ))}
77
- </ScrollView>
78
- </View>
79
- );
80
- };
81
-
82
- const styles = StyleSheet.create({
83
- section: {
84
- padding: 16,
85
- width: "100%",
86
- },
87
- title: {
88
- fontWeight: "600",
89
- marginBottom: 12,
90
- },
91
- scrollContent: {
92
- paddingRight: 16,
93
- },
94
- card: {
95
- width: 100,
96
- padding: 16,
97
- borderRadius: 16,
98
- borderWidth: 2,
99
- marginRight: 12,
100
- alignItems: "center",
101
- },
102
- });
@@ -1,2 +0,0 @@
1
- export { ScriptDisplay } from "./ScriptDisplay";
2
- export { VideoTypeSelector, type VideoTypeSelectorProps } from "./VideoTypeSelector";
@@ -1 +0,0 @@
1
- export * from "./useScriptGenerator";
@@ -1,77 +0,0 @@
1
- import { useState, useCallback } from "react";
2
- import {
3
- ScriptSection,
4
- ScriptGenerationRequest,
5
- } from "../../domain/types/script.types";
6
-
7
- export interface UseScriptGeneratorProps {
8
- readonly onGenerate: (request: ScriptGenerationRequest) => Promise<readonly ScriptSection[] | null>;
9
- readonly onUseScript?: (script: readonly ScriptSection[]) => void;
10
- readonly onAuthRequired?: () => void;
11
- }
12
-
13
- export interface UseScriptGeneratorReturn {
14
- readonly isGenerating: boolean;
15
- readonly generatedScript: readonly ScriptSection[] | null;
16
- readonly generateScript: (request: ScriptGenerationRequest) => Promise<void>;
17
- readonly handleUseScript: () => void;
18
- readonly resetState: () => void;
19
- }
20
-
21
- export function useScriptGenerator({
22
- onGenerate,
23
- onUseScript,
24
- onAuthRequired,
25
- }: UseScriptGeneratorProps): UseScriptGeneratorReturn {
26
- const [isGenerating, setIsGenerating] = useState(false);
27
- const [generatedScript, setGeneratedScript] = useState<readonly ScriptSection[] | null>(null);
28
-
29
- const generateScript = useCallback(
30
- async (request: ScriptGenerationRequest) => {
31
- if (!request.topic.trim()) {
32
- return;
33
- }
34
-
35
- if (onAuthRequired) {
36
- onAuthRequired();
37
- }
38
-
39
- setIsGenerating(true);
40
-
41
- try {
42
- const script = await onGenerate(request);
43
-
44
- if (script) {
45
- setGeneratedScript(script);
46
- }
47
- } catch (error) {
48
- if (__DEV__) {
49
-
50
- console.error("Script generation error:", error);
51
- }
52
- } finally {
53
- setIsGenerating(false);
54
- }
55
- },
56
- [onGenerate, onAuthRequired],
57
- );
58
-
59
- const handleUseScript = useCallback(() => {
60
- if (generatedScript && onUseScript) {
61
- onUseScript(generatedScript);
62
- }
63
- }, [generatedScript, onUseScript]);
64
-
65
- const resetState = useCallback(() => {
66
- setGeneratedScript(null);
67
- setIsGenerating(false);
68
- }, []);
69
-
70
- return {
71
- isGenerating,
72
- generatedScript,
73
- generateScript,
74
- handleUseScript,
75
- resetState,
76
- };
77
- }
@@ -1,311 +0,0 @@
1
- # Shared Features
2
-
3
- Common functionality and utilities shared across multiple AI features.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import {
9
- useDualImageVideoProcessing,
10
- DualImagePicker,
11
- DualVideoPicker
12
- } from '@umituz/react-native-ai-generation-content';
13
- ```
14
-
15
- **Location**: `src/features/shared/`
16
-
17
- ## 🎯 Shared Purpose
18
-
19
- Provide reusable components, hooks, and utilities for common AI feature patterns. Focus on dual image/video processing for features requiring two inputs, with shared state management, validation, and error handling.
20
-
21
- ---
22
-
23
- ## 📋 Usage Strategy
24
-
25
- ### When to Use Shared Features
26
-
27
- ✅ **Use Cases:**
28
- - Features requiring two images/videos
29
- - Common state management patterns
30
- - Shared validation logic
31
- - Reusable UI components
32
- - Dual input processing
33
-
34
- ❌ **When NOT to Use:**
35
- - Single input features (use feature-specific hooks)
36
- - Complex custom logic (build custom solution)
37
- - Feature-specific requirements
38
-
39
- ### Implementation Strategy
40
-
41
- 1. **Identify common patterns** across features
42
- 2. **Use shared hooks** for dual processing
43
- 3. **Implement validation** consistently
44
- 4. **Handle errors** uniformly
45
- 5. **Track progress** with shared UI
46
- 6. **Reset states** properly
47
- 7. **Customize** when needed
48
-
49
- ---
50
-
51
- ## ⚠️ Critical Rules (MUST FOLLOW)
52
-
53
- ### 1. Dual Processing
54
- - **MUST** validate both inputs before processing
55
- - **MUST** handle missing inputs gracefully
56
- - **MUST** provide clear input labels
57
- - **MUST** implement input selection
58
- - **MUST** check `isReady` before processing
59
-
60
- ### 2. State Management
61
- - **MUST** track both inputs independently
62
- - **MUST** handle processing state
63
- - **MUST** track progress percentage
64
- - **MUST** display errors clearly
65
- - **MUST** reset state properly
66
-
67
- ### 3. Validation
68
- - **MUST** validate input types
69
- - **MUST** check file sizes
70
- - **MUST** verify input quality
71
- - **MUST** provide validation feedback
72
- - **MUST** prevent invalid operations
73
-
74
- ### 4. User Experience
75
- - **MUST** provide clear UI labels
76
- - **MUST** show progress indicators
77
- - **MUST** handle long operations
78
- - **MUST** allow cancellation
79
- - **MUST** confirm before processing
80
-
81
- ### 5. Error Handling
82
- - **MUST** handle processing errors
83
- - **MUST** provide user-friendly messages
84
- - **MUST** offer retry options
85
- - **MUST** log errors appropriately
86
- - **MUST** recover gracefully
87
-
88
- ---
89
-
90
- ## 🚫 Prohibitions (MUST AVOID)
91
-
92
- ### Strictly Forbidden
93
-
94
- ❌ **NEVER** do the following:
95
-
96
- 1. **No Missing Validation**
97
- - Always validate both inputs
98
- - Never process without checking
99
- - Provide clear validation messages
100
-
101
- 2. **No Confusing UI**
102
- - Always label inputs clearly
103
- - Never mix up source/target
104
- - Show which input is which
105
-
106
- 3. **No Silent Failures**
107
- - Always explain what went wrong
108
- - Never fail silently
109
- - Provide actionable guidance
110
-
111
- 4. **No Blocking Operations**
112
- - Never block main thread
113
- - Always show progress
114
- - Allow cancellation
115
-
116
- 5. **No State Leaks**
117
- - Always cleanup properly
118
- - Reset state when done
119
- - Clear temporary data
120
-
121
- 6. **No Missing Context**
122
- - Always explain what's happening
123
- - Show current operation
124
- - Provide progress feedback
125
-
126
- 7. **No Partial Processing**
127
- - Always complete or fail cleanly
128
- - Never leave partial state
129
- - Handle cancellation properly
130
-
131
- ---
132
-
133
- ## 🤖 AI Agent Directions
134
-
135
- ### For AI Code Generation Tools
136
-
137
- #### Prompt Template for AI Agents
138
-
139
- ```
140
- You are implementing dual image/video processing using @umituz/react-native-ai-generation-content.
141
-
142
- REQUIREMENTS:
143
- 1. Import shared processing hooks
144
- 2. Implement dual input selection
145
- 3. Validate both inputs
146
- 4. Handle processing state
147
- 5. Show progress indicators
148
- 6. Handle errors gracefully
149
- 7. Implement confirmation dialog
150
- 8. Reset state properly
151
-
152
- CRITICAL RULES:
153
- - MUST validate both inputs before processing
154
- - MUST provide clear UI labels
155
- - MUST handle missing inputs
156
- - MUST show progress during processing
157
- - MUST implement error handling
158
- - MUST allow user cancellation
159
-
160
- SHARED HOOKS:
161
- - useDualImageVideoProcessing: Main dual processing hook
162
- - DualImagePicker: Image selection component
163
- - DualVideoPicker: Video selection component
164
-
165
- CONFIGURATION:
166
- - featureType: 'face-swap' | 'ai-hug' | 'ai-kiss' | etc.
167
- - inputType: 'image' | 'video'
168
- - defaultOptions: Feature-specific options
169
- - onProcessingStart: Callback when processing starts
170
- - onProcessingComplete: Callback when processing completes
171
- - onError: Error callback
172
-
173
- STATE MANAGEMENT:
174
- - sourceImageOrVideo: First input
175
- - targetImageOrVideo: Second input
176
- - isProcessing: Processing state
177
- - progress: Progress percentage (0-100)
178
- - error: Error message if failed
179
- - result: Processing result
180
- - isReady: Both inputs provided and valid
181
-
182
- VALIDATION:
183
- - Check both inputs provided
184
- - Verify input types match
185
- - Validate file sizes
186
- - Check input quality
187
- - Provide clear feedback
188
-
189
- STRICTLY FORBIDDEN:
190
- - No missing validation
191
- - No confusing UI
192
- - No silent failures
193
- - No blocking operations
194
- - No state leaks
195
- - No missing context
196
- - No partial processing
197
-
198
- QUALITY CHECKLIST:
199
- - [ ] Both inputs validated
200
- - [ ] Clear UI labels
201
- - [ ] Progress tracking
202
- - [ ] Error handling
203
- - [ ] Confirmation dialog
204
- - [ ] State reset
205
- - [ ] Cancellation support
206
- - [ ] User feedback
207
- - [ ] Clean state management
208
- - [ ] Proper cleanup
209
- ```
210
-
211
- ---
212
-
213
- ## 🛠️ Configuration Strategy
214
-
215
- ### Dual Processing Types
216
-
217
- ```typescript
218
- type DualInputType = 'image' | 'video';
219
-
220
- interface DualImageVideoProcessingStartData {
221
- sourceImageOrVideo: string; // Base64
222
- targetImageOrVideo: string; // Base64
223
- options?: Record<string, any>;
224
- }
225
-
226
- interface DualImageVideoResult {
227
- success: boolean;
228
- result?: {
229
- imageUrl?: string;
230
- videoUrl?: string;
231
- thumbnailUrl?: string;
232
- metadata?: Record<string, any>;
233
- };
234
- error?: string;
235
- }
236
- ```
237
-
238
- ### Feature Config
239
-
240
- ```typescript
241
- interface DualImageVideoFeatureConfig {
242
- featureType: string;
243
- inputType: DualInputType;
244
- defaultOptions?: Record<string, any>;
245
- onProcessingStart?: () => void;
246
- onProcessingComplete?: (result: DualImageVideoResult) => void;
247
- onError?: (error: string) => void;
248
- }
249
- ```
250
-
251
- ---
252
-
253
- ## 📊 Features Using Shared
254
-
255
- ### Dual Image Features
256
- - **Face Swap**: Swap faces between images
257
- - **AI Hug**: Generate hug images
258
- - **AI Kiss**: Generate kiss images
259
- - **Couple Future**: Future predictions
260
-
261
- ### Shared Components
262
- - `DualImagePicker` - Image selection UI
263
- - `DualVideoPicker` - Video selection UI
264
- - `DualImageVideoState` - State management
265
-
266
- ---
267
-
268
- ## 🎨 Best Practices
269
-
270
- ### Input Labeling
271
- - "First Image/Video" vs "Second Image/Video"
272
- - "Source" vs "Target" for swap features
273
- - "Person 1" vs "Person 2" for couple features
274
- - Always show which is which
275
-
276
- ### Validation
277
- - Check both inputs present
278
- - Validate file types
279
- - Check file sizes
280
- - Verify quality
281
- - Provide clear feedback
282
-
283
- ### User Experience
284
- - Show input previews
285
- - Display progress clearly
286
- - Confirm before processing
287
- - Allow cancellation
288
- - Explain errors clearly
289
-
290
- ---
291
-
292
- ## 🐛 Common Pitfalls
293
-
294
- ❌ **Mixed up inputs**: Clear labels, visual indicators
295
- ❌ **Missing validation**: Always check both inputs
296
- ❌ **No feedback**: Show progress, errors clearly
297
- ❌ **State issues**: Proper cleanup and reset
298
-
299
- ---
300
-
301
- ## 📚 Related Features
302
-
303
- - [Face Swap](../face-swap) - Uses dual image processing
304
- - [AI Hug](../ai-hug) - Uses dual image processing
305
- - [AI Kiss](../ai-kiss) - Uses dual image processing
306
- - [Couple Future](../couple-future) - Uses dual image processing
307
-
308
- ---
309
-
310
- **Last Updated**: 2025-01-08
311
- **Version**: 2.0.0 (Strategy-based Documentation)