@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,412 +0,0 @@
1
- # Text to Video Feature
2
-
3
- Generate videos from text descriptions using AI.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import { useTextToVideoFeature } from '@umituz/react-native-ai-generation-content';
9
- ```
10
-
11
- **Location**: `src/features/text-to-video/`
12
-
13
- ## 🎯 Feature Purpose
14
-
15
- Generate AI-powered videos from natural language text descriptions. Supports various durations, aspect ratios, and cinematic styles.
16
-
17
- ---
18
-
19
- ## 📋 Usage Strategy
20
-
21
- ### When to Use This Feature
22
-
23
- ✅ **Use Cases:**
24
- - Creating marketing videos
25
- - Generating social media content
26
- - Producing promotional materials
27
- - Creating concept videos
28
- - Video prototyping and storyboarding
29
-
30
- ❌ **When NOT to Use:**
31
- - Simple image generation (use Text to Image)
32
- - Video editing of existing footage (use video editing software)
33
- - Adding text overlays to video (use video editing tools)
34
- - Animated text videos (use animation software)
35
-
36
- ### Implementation Strategy
37
-
38
- 1. **Input text description** of desired video
39
- 2. **Select duration** and aspect ratio
40
- 3. **Choose cinematic style** (optional)
41
- 4. **Generate video** with progress tracking
42
- 5. **Preview result** and offer regeneration
43
- 6. **Download or share** final video
44
-
45
- ---
46
-
47
- ## ⚠️ Critical Rules (MUST FOLLOW)
48
-
49
- ### 1. Prompt Requirements
50
- - **MUST** use descriptive, specific prompts
51
- - **MUST** include subject, action, and scene details
52
- - **MUST** specify camera movements if important
53
- - **MUST** use English for best results
54
- - **MUST NOT** exceed character limits (check model limits)
55
- - **MUST NOT** include copyrighted characters or brands
56
-
57
- ### 2. Configuration
58
- - **MUST** provide valid `userId` for tracking
59
- - **MUST** implement `onError` callback
60
- - **MUST** handle `isProcessing` state to prevent duplicate requests
61
- - **MUST** validate prompts before generation
62
- - **MUST NOT** call `generate()` when `isReady` is false
63
-
64
- ### 3. State Management
65
- - **MUST** check `isReady` before enabling generate button
66
- - **MUST** handle `isProcessing` state with loading indicators
67
- - **MUST** display `error` state to users
68
- - **MUST** handle `result.videoUrl` existence check
69
- - **MUST** implement proper cleanup on unmount
70
-
71
- ### 4. Performance
72
- - **MUST** implement debouncing for prompt inputs (>500ms)
73
- - **MUST** limit concurrent requests (max 1 per user)
74
- - **MUST** cache generated videos locally
75
- - **MUST** implement retry logic (max 3 attempts)
76
- - **MUST NOT** generate multiple videos simultaneously
77
-
78
- ### 5. Content Safety
79
- - **MUST** validate and sanitize user prompts
80
- - **MUST** implement content moderation
81
- - **MUST** check for inappropriate content
82
- - **MUST** store userId securely
83
- - **MUST NOT** expose API keys in client code
84
-
85
- ---
86
-
87
- ## 🚫 Prohibitions (MUST AVOID)
88
-
89
- ### Strictly Forbidden
90
-
91
- ❌ **NEVER** do the following:
92
-
93
- 1. **No Empty Prompts**
94
- - Always validate prompt has meaningful content
95
- - Minimum 20 characters recommended for video generation
96
-
97
- 2. **No Concurrent Generation**
98
- - Never call `generate()` while `isProcessing === true`
99
- - Always disable generate button during processing
100
-
101
- 3. **No Hardcoded Credentials**
102
- - Never store API keys in component files
103
- - Use environment variables or secure storage
104
-
105
- 4. **No Unhandled Errors**
106
- - Never ignore error states
107
- - Always implement error boundaries
108
-
109
- 5. **No Memory Leaks**
110
- - Never forget cleanup on unmount
111
- - Always cancel pending requests
112
-
113
- 6. **No Excessive Re-renders**
114
- - Never pass new config objects on each render
115
- - Always memoize configuration objects
116
-
117
- 7. **No Blocked Main Thread**
118
- - Never perform heavy operations in render
119
- - Use background tasks for video processing
120
-
121
- ---
122
-
123
- ## 🤖 AI Agent Directions
124
-
125
- ### For AI Code Generation Tools
126
-
127
- When using this feature with AI code generation tools, follow these guidelines:
128
-
129
- #### Prompt Template for AI Agents
130
-
131
- ```
132
- You are implementing a text-to-video generation feature using @umituz/react-native-ai-generation-content.
133
-
134
- REQUIREMENTS:
135
- 1. Import from: @umituz/react-native-ai-generation-content
136
- 2. Use the useTextToVideoFeature hook
137
- 3. Implement all state handlers (loading, success, error)
138
- 4. Add debouncing for prompt input (500ms minimum)
139
- 5. Validate prompts before generation
140
- 6. Handle isReady and isProcessing states correctly
141
- 7. Implement proper error handling with user feedback
142
- 8. Add loading indicators during generation
143
- 9. Display results safely with null checks
144
- 10. Implement cleanup on unmount
145
-
146
- CRITICAL RULES:
147
- - NEVER call generate() when isProcessing is true
148
- - ALWAYS validate prompt before calling generate()
149
- - MUST handle error state with user-friendly message
150
- - MUST disable generate button during processing
151
- - MUST implement debouncing (500ms minimum)
152
- - MUST validate for copyrighted content
153
-
154
- CONFIGURATION:
155
- - Provide valid userId (string)
156
- - Set model (default: 'veo-3')
157
- - Configure callbacks: onProcessingStart, onProcessingComplete, onError
158
-
159
- GENERATION OPTIONS:
160
- - duration: 4 | 8 | 16 (seconds)
161
- - aspectRatio: '16:9' | '9:16' | '1:1'
162
- - style: 'cinematic' | 'anime' | '3d' | 'artistic'
163
-
164
- STRICTLY FORBIDDEN:
165
- - No empty prompts
166
- - No concurrent generation calls
167
- - No hardcoded API keys
168
- - No unhandled errors
169
- - No memory leaks
170
- - No copyright violations
171
-
172
- QUALITY CHECKLIST:
173
- - [ ] Feature imported from correct path
174
- - [ ] Hook initialized with proper config
175
- - [ ] All state handlers implemented
176
- - [ ] Debouncing added to input
177
- - [ ] Validation before generate()
178
- - [ ] Loading indicator during processing
179
- - [ ] Error display with user-friendly message
180
- - [ ] Button disabled when processing
181
- - [ ] Cleanup on unmount
182
- - [ ] Null checks on result
183
- - [ ] Retry logic implemented
184
- - [ ] Video caching configured
185
- ```
186
-
187
- #### AI Implementation Checklist
188
-
189
- Use this checklist when generating code:
190
-
191
- - [ ] Feature imported from correct path
192
- - [ ] Hook initialized with proper config
193
- - [ ] All state handlers implemented
194
- - [ ] Debouncing added to input
195
- - [ ] Validation before generate()
196
- - [ ] Loading indicator during processing
197
- - [ ] Error display with user-friendly message
198
- - [ ] Button disabled when processing
199
- - [ ] Cleanup on unmount
200
- - [ ] Null checks on result
201
- - [ ] Retry logic implemented
202
- - [ ] Video caching configured
203
-
204
- ---
205
-
206
- ## 🛠️ Configuration Strategy
207
-
208
- ### Essential Configuration
209
-
210
- ```typescript
211
- // Required fields
212
- {
213
- userId: string // User identifier for tracking
214
- }
215
-
216
- // Optional callbacks
217
- {
218
- onProcessingStart?: () => void
219
- onProcessingComplete?: (result) => void
220
- onError?: (error: string) => void
221
- }
222
- ```
223
-
224
- ### Recommended Settings
225
-
226
- 1. **Model Selection**
227
- - Default: `veo-3`
228
- - Fastest: `veo-2`
229
- - Highest quality: `veo-3`
230
-
231
- 2. **Generation Options**
232
- - Duration: 4s (standard), 8s (long), 16s (extended)
233
- - Aspect Ratio: 16:9 (landscape), 9:16 (portrait), 1:1 (square)
234
- - Style: Choose based on use case
235
-
236
- 3. **Performance Settings**
237
- - Enable video caching
238
- - Set reasonable timeouts (video generation can take 2-5 minutes)
239
- - Implement retry with backoff
240
-
241
- ---
242
-
243
- ## 📊 State Management
244
-
245
- ### Feature States
246
-
247
- **isReady**: boolean
248
- - Feature initialized and ready to use
249
- - Check before enabling generate button
250
-
251
- **isProcessing**: boolean
252
- - Video generation in progress
253
- - Show loading indicator
254
- - Disable generate button
255
-
256
- **progress**: number (0-100)
257
- - Generation progress percentage
258
- - Update progress bar
259
-
260
- **error**: string | null
261
- - Error message if generation failed
262
- - Display to user with clear message
263
-
264
- **result**: {
265
- videoUrl: string
266
- thumbnailUrl?: string
267
- duration?: number
268
- metadata?: any
269
- }
270
-
271
- ---
272
-
273
- ## 🔐 Security Considerations
274
-
275
- ### Content Moderation
276
-
277
- - **MUST** implement prompt content filtering
278
- - **MUST** check for inappropriate content
279
- - **MUST** block harmful or illegal prompts
280
- - **MUST** check for copyright violations
281
- - **MUST** log moderation actions
282
-
283
- ### API Security
284
-
285
- - **MUST** use environment variables for API keys
286
- - **MUST** implement rate limiting
287
- - **MUST** validate all user inputs
288
- - **MUST** use HTTPS for all API calls
289
-
290
- ### Data Privacy
291
-
292
- - **MUST** comply with data protection regulations
293
- - **MUST** obtain user consent for generation
294
- - **MUST** provide privacy policy
295
- - **MUST** allow data deletion requests
296
-
297
- ---
298
-
299
- ## 🎨 Best Practices
300
-
301
- ### Prompt Engineering
302
-
303
- 1. **Be Specific**
304
- - Good: "A sunset over mountains with birds flying, camera pans left, cinematic lighting"
305
- - Bad: "A sunset video"
306
-
307
- 2. **Include Camera Movement**
308
- - Specify: pans, zooms, tracking shots
309
- - Example: "camera slowly zooms in on subject"
310
-
311
- 3. **Add Technical Details**
312
- - Lighting, camera angle, composition
313
- - Example: "golden hour lighting, wide angle shot"
314
-
315
- 4. **Specify Style**
316
- - Genre, mood, atmosphere
317
- - Example: "cinematic, epic orchestral feel"
318
-
319
- ### Performance Optimization
320
-
321
- 1. **Debounce Input**
322
- - Wait 500ms after user stops typing
323
- - Prevents unnecessary validations
324
-
325
- 2. **Progress Feedback**
326
- - Show realistic time estimates
327
- - Video generation takes 2-5 minutes
328
-
329
- 3. **Cache Results**
330
- - Store generated videos locally
331
- - Implement cache invalidation strategy
332
-
333
- 4. **Thumbnail Generation**
334
- - Generate thumbnail for preview
335
- - Use first frame or midpoint
336
-
337
- ---
338
-
339
- ## 🐛 Common Pitfalls
340
-
341
- ### Prompt Issues
342
-
343
- ❌ **Problem**: Video doesn't match expectations
344
- ✅ **Solution**: Be more specific in prompt, include camera movements
345
-
346
- ### Performance Issues
347
-
348
- ❌ **Problem**: Very slow generation
349
- ✅ **Solution**: Show progress, allow cancellation, use shorter duration
350
-
351
- ### Memory Issues
352
-
353
- ❌ **Problem**: App crashes during generation
354
- ✅ **Solution**: Clean up properly, implement streaming, optimize memory
355
-
356
- ### Quality Issues
357
-
358
- ❌ **Problem**: Poor video quality
359
- ✅ **Solution**: Use higher quality model, better prompts
360
-
361
- ---
362
-
363
- ## 📦 Related Components
364
-
365
- Use these components from the library:
366
-
367
- - **GenerationProgressModal**: Progress display
368
- - **StyleSelector**: Style selection UI
369
- - **AspectRatioSelector**: Aspect ratio picker
370
- - **DurationSelector**: Duration options
371
- - **VideoPlayer**: Video playback component
372
-
373
- Located at: `src/presentation/components/`
374
-
375
- ---
376
-
377
- ## 🔄 Migration Strategy
378
-
379
- If migrating from previous implementation:
380
-
381
- 1. **Update imports** to new path
382
- 2. **Replace old config** with new structure
383
- 3. **Update state handling** to match new interface
384
- 4. **Test all error cases**
385
- 5. **Update UI components** for new state structure
386
-
387
- ---
388
-
389
- ## 📚 Additional Resources
390
-
391
- - Main documentation: `/docs/`
392
- - API reference: `/docs/api/`
393
- - Examples: `/docs/examples/basic/text-to-video/`
394
- - Architecture: `/ARCHITECTURE.md`
395
-
396
- ---
397
-
398
- **Last Updated**: 2025-01-08
399
- **Version**: 2.0.0 (Strategy-based Documentation)
400
-
401
- ---
402
-
403
- ## 📝 Changelog
404
-
405
- ### v2.0.0 - 2025-01-08
406
- - **BREAKING**: Documentation format changed to strategy-based
407
- - Removed extensive code examples
408
- - Added rules, prohibitions, and AI agent directions
409
- - Focus on best practices and implementation guidance
410
-
411
- ### v1.0.0 - Initial Release
412
- - Initial feature documentation
@@ -1 +0,0 @@
1
- export * from "./types";
@@ -1,69 +0,0 @@
1
- /**
2
- * Text-to-Video Callback Types
3
- * Single Responsibility: Define callback function signatures
4
- */
5
-
6
- import type { TextToVideoResult } from "./request.types";
7
-
8
- export interface VideoModerationResult {
9
- allowed: boolean;
10
- warnings: string[];
11
- }
12
-
13
- export interface ProjectData {
14
- videoUrl: string;
15
- thumbnailUrl?: string;
16
- prompt: string;
17
- aspectRatio: string;
18
- duration: number;
19
- style: string;
20
- }
21
-
22
- export interface CreationData {
23
- type: "text-to-video";
24
- videoUrl: string;
25
- thumbnailUrl?: string;
26
- prompt: string;
27
- metadata?: Record<string, unknown>;
28
- }
29
-
30
- export interface GenerationStartData {
31
- creationId: string;
32
- type: "text-to-video";
33
- prompt: string;
34
- metadata?: Record<string, unknown>;
35
- }
36
-
37
- export interface TextToVideoCallbacks {
38
- onCreditCheck?: (cost: number) => Promise<boolean>;
39
- onCreditDeduct?: (cost: number) => Promise<void>;
40
- onAuthCheck?: () => boolean;
41
- onModeration?: (prompt: string) => Promise<VideoModerationResult>;
42
- /** Called when generation starts - save a "processing" creation */
43
- onGenerationStart?: (data: GenerationStartData) => Promise<void>;
44
- /** Called when generation completes - update creation to "completed" */
45
- onCreationSave?: (data: CreationData & { creationId: string }) => Promise<void>;
46
- onGenerate?: (result: TextToVideoResult) => void;
47
- onError?: (error: string) => void;
48
- onProgress?: (progress: number) => void;
49
- onPromptChange?: (prompt: string) => void;
50
- onStyleChange?: (style: string) => void;
51
- onTabChange?: (tab: string) => void;
52
- onShowPaywall?: (cost: number) => void;
53
- onShowModerationWarning?: (
54
- warnings: string[],
55
- onCancel: () => void,
56
- onProceed: () => void,
57
- ) => void;
58
- onNavigateToProjects?: () => void;
59
- onNavigateToEditor?: (videoUrl: string) => void;
60
- }
61
-
62
- export interface TextToVideoTranslations {
63
- promptPlaceholder: string;
64
- generateButtonText: string;
65
- processingText: string;
66
- successText: string;
67
- missingPromptTitle: string;
68
- missingPromptMessage: string;
69
- }
@@ -1,106 +0,0 @@
1
- /**
2
- * Text-to-Video Component Prop Types
3
- * Single Responsibility: Define component prop interfaces
4
- */
5
-
6
- import type { ViewStyle } from "react-native";
7
- import type { FrameData } from "./state.types";
8
- import type { TabConfig, VideoStyleOption, AspectRatioOption, VideoDurationOption } from "./config.types";
9
-
10
- export interface GenerationTabsProps {
11
- tabs: TabConfig[];
12
- activeTab: string;
13
- onTabChange: (tabId: string) => void;
14
- getLabel: (key: string) => string;
15
- style?: ViewStyle;
16
- }
17
-
18
- export interface FrameSelectorProps {
19
- frames: FrameData[];
20
- onFrameChange: (index: number) => void;
21
- onFrameDelete: (index: number) => void;
22
- startLabel: string;
23
- endLabel: string;
24
- changeLabel: string;
25
- deleteLabel: string;
26
- style?: ViewStyle;
27
- }
28
-
29
- export interface OptionsPanelProps {
30
- soundEnabled: boolean;
31
- onSoundToggle: (value: boolean) => void;
32
- professionalMode: boolean;
33
- onProfessionalModeToggle: (value: boolean) => void;
34
- duration: number;
35
- soundLabel: string;
36
- soundBadge?: string;
37
- professionalLabel: string;
38
- style?: ViewStyle;
39
- }
40
-
41
- export interface HeroSectionProps {
42
- title: string;
43
- subtitle: string;
44
- icon?: string;
45
- style?: ViewStyle;
46
- }
47
-
48
- export interface HintCarouselProps {
49
- hints: HintItem[];
50
- onHintSelect: (hint: HintItem) => void;
51
- onRefresh?: () => void;
52
- style?: ViewStyle;
53
- }
54
-
55
- export interface HintItem {
56
- id: string;
57
- imageUrl: string;
58
- prompt?: string;
59
- }
60
-
61
- export interface StyleSelectorProps {
62
- styles: VideoStyleOption[];
63
- selectedStyle: string;
64
- onStyleSelect: (styleId: string) => void;
65
- getLabel: (key: string) => string;
66
- title: string;
67
- style?: ViewStyle;
68
- }
69
-
70
- export interface AspectRatioSelectorProps {
71
- ratios: AspectRatioOption[];
72
- selectedRatio: string;
73
- onRatioSelect: (ratioId: string) => void;
74
- getLabel: (key: string) => string;
75
- style?: ViewStyle;
76
- }
77
-
78
- export interface DurationSelectorProps {
79
- durations: VideoDurationOption[];
80
- selectedDuration: number;
81
- onDurationSelect: (duration: number) => void;
82
- getLabel: (key: string) => string;
83
- style?: ViewStyle;
84
- }
85
-
86
- export interface GenerateButtonProps {
87
- isGenerating: boolean;
88
- isDisabled: boolean;
89
- onPress: () => void;
90
- credits?: number;
91
- label: string;
92
- generatingLabel: string;
93
- style?: ViewStyle;
94
- }
95
-
96
- export interface ExamplePromptsProps {
97
- prompts: ExamplePrompt[];
98
- onPromptSelect: (prompt: string) => void;
99
- style?: ViewStyle;
100
- }
101
-
102
- export interface ExamplePrompt {
103
- id: string;
104
- text: string;
105
- emoji?: string;
106
- }
@@ -1,61 +0,0 @@
1
- /**
2
- * Text-to-Video Configuration Types
3
- * Single Responsibility: Define configuration interfaces for flexibility
4
- */
5
-
6
- export interface TabConfig {
7
- id: string;
8
- labelKey: string;
9
- }
10
-
11
- export interface VideoStyleOption {
12
- id: string;
13
- nameKey: string;
14
- descriptionKey?: string;
15
- thumbnail?: string;
16
- }
17
-
18
- export interface AspectRatioOption {
19
- id: string;
20
- value: string;
21
- labelKey: string;
22
- icon?: string;
23
- }
24
-
25
- export interface VideoDurationOption {
26
- value: number;
27
- labelKey: string;
28
- }
29
-
30
- export interface OptionToggleConfig {
31
- id: string;
32
- labelKey: string;
33
- badgeKey?: string;
34
- defaultValue?: boolean;
35
- }
36
-
37
- export interface TextToVideoConfig {
38
- model: string;
39
- creditCost: number;
40
- maxPromptLength?: number;
41
- enableFrames?: boolean;
42
- enableHints?: boolean;
43
- enableSound?: boolean;
44
- enableProfessionalMode?: boolean;
45
- tabs?: TabConfig[];
46
- styles?: VideoStyleOption[];
47
- aspectRatios?: AspectRatioOption[];
48
- durations?: VideoDurationOption[];
49
- options?: OptionToggleConfig[];
50
- }
51
-
52
- export interface HeroConfig {
53
- titleKey: string;
54
- subtitleKey: string;
55
- icon?: string;
56
- }
57
-
58
- export interface ProgressConfig {
59
- titleKey: string;
60
- hintKey: string;
61
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * Text-to-Video Domain Types
3
- * Single Responsibility: Export all domain types
4
- */
5
-
6
- export type {
7
- TextToVideoOptions,
8
- TextToVideoRequest,
9
- TextToVideoResult,
10
- TextToVideoInputBuilder,
11
- TextToVideoResultExtractor,
12
- } from "./request.types";
13
-
14
- export type {
15
- TextToVideoFeatureState,
16
- TextToVideoFormState,
17
- TextToVideoGenerationState,
18
- FrameData,
19
- } from "./state.types";
20
-
21
- export { INITIAL_FORM_STATE, INITIAL_GENERATION_STATE } from "./state.types";
22
-
23
- export type {
24
- TabConfig,
25
- VideoStyleOption,
26
- AspectRatioOption,
27
- VideoDurationOption,
28
- OptionToggleConfig,
29
- TextToVideoConfig,
30
- HeroConfig,
31
- ProgressConfig,
32
- } from "./config.types";
33
-
34
- export type {
35
- VideoModerationResult,
36
- ProjectData,
37
- CreationData,
38
- GenerationStartData,
39
- TextToVideoCallbacks,
40
- TextToVideoTranslations,
41
- } from "./callback.types";
42
-
43
- export type {
44
- GenerationTabsProps,
45
- FrameSelectorProps,
46
- OptionsPanelProps,
47
- HeroSectionProps,
48
- HintCarouselProps,
49
- HintItem,
50
- StyleSelectorProps,
51
- AspectRatioSelectorProps,
52
- DurationSelectorProps,
53
- GenerateButtonProps,
54
- ExamplePromptsProps,
55
- ExamplePrompt,
56
- } from "./component.types";