@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,147 +0,0 @@
1
- /**
2
- * Scenario Domain Types
3
- * Generic types for scenario selection feature
4
- * Supports both flat and hierarchical category systems
5
- */
6
-
7
- export enum ScenarioCategory {
8
- TIME_TRAVEL = "time_travel",
9
- FAMILY = "family",
10
- LIFESTYLE = "lifestyle",
11
- FANTASY = "fantasy",
12
- CAREER = "career",
13
- TRAVEL = "travel",
14
- CULTURAL = "cultural",
15
- }
16
-
17
- /**
18
- * Output type for AI generation
19
- */
20
- export type ScenarioOutputType = 'image' | 'video' | 'both';
21
-
22
- /**
23
- * Scenario media configuration
24
- */
25
- export interface ScenarioMedia {
26
- readonly imageUrl?: string; // Preview/thumbnail image
27
- readonly videoUrl?: string; // Preview video URL
28
- readonly previewImageUrl?: string; // Smaller thumbnail
29
- }
30
-
31
- export interface ScenarioData {
32
- readonly id: string;
33
- readonly category?: ScenarioCategory | string;
34
-
35
- // Content (app provides in target language)
36
- readonly title: string;
37
- readonly description: string;
38
-
39
- // AI Configuration
40
- readonly outputType: ScenarioOutputType; // What this scenario generates
41
- readonly aiPrompt: string; // AI generation prompt
42
- readonly storyTemplate?: string; // Story template with placeholders (optional)
43
-
44
- // Media
45
- readonly icon: string;
46
- readonly imageUrl?: string; // Preview image
47
- readonly videoUrl?: string; // Preview video
48
- readonly previewImageUrl?: string; // Thumbnail
49
-
50
- // Requirements
51
- readonly requiresPhoto?: boolean; // Requires user photo upload
52
- readonly requiresMultiplePhotos?: boolean; // Requires multiple photos (e.g., couples)
53
- readonly minPhotos?: number; // Minimum photos required
54
- readonly maxPhotos?: number; // Maximum photos allowed
55
-
56
- // Display
57
- readonly hidden?: boolean; // Hide from UI
58
- readonly featured?: boolean; // Featured/promoted scenario
59
- readonly order?: number; // Display order
60
-
61
- // Metadata
62
- readonly tags?: readonly string[]; // Search/filter tags
63
- readonly duration?: number; // Video duration (for video scenarios)
64
- readonly aspectRatio?: string; // Output aspect ratio (e.g., "16:9", "9:16")
65
- }
66
-
67
- /**
68
- * Scenario Main Category (Top-level grouping for hierarchical system)
69
- */
70
- export interface ScenarioMainCategory {
71
- readonly id: string;
72
- readonly title: string;
73
- readonly description?: string;
74
- readonly icon?: string;
75
- readonly emoji?: string;
76
- readonly order: number;
77
- readonly subCategoryIds: readonly string[];
78
- }
79
-
80
- /**
81
- * Scenario Sub Category (Second-level grouping for hierarchical system)
82
- */
83
- export interface ScenarioSubCategory {
84
- readonly id: string;
85
- readonly title: string;
86
- readonly description?: string;
87
- readonly icon?: string;
88
- readonly emoji?: string;
89
- readonly mainCategoryId: string;
90
- readonly scenarioCategories: readonly string[];
91
- readonly order: number;
92
- }
93
-
94
- /**
95
- * Hierarchical scenario category configuration
96
- */
97
- export interface ScenarioHierarchyConfig {
98
- readonly mainCategories: readonly ScenarioMainCategory[];
99
- readonly subCategories: readonly ScenarioSubCategory[];
100
- }
101
-
102
- export interface ScenarioSelectorConfig {
103
- readonly titleKey: string;
104
- readonly subtitleKey: string;
105
- readonly showCategoryFilter?: boolean;
106
- readonly enableSearch?: boolean;
107
- readonly pageSize?: number;
108
- }
109
-
110
- export interface ScenarioPreviewConfig {
111
- readonly showTips?: boolean;
112
- readonly showDetails?: boolean;
113
- readonly enableCustomization?: boolean;
114
- }
115
-
116
- export interface MagicPromptConfig {
117
- readonly maxLength: number;
118
- readonly minLength: number;
119
- readonly headerKey: string;
120
- readonly headlinePart1Key: string;
121
- readonly headlinePart2Key: string;
122
- readonly subtitleKey: string;
123
- readonly inputLabelKey: string;
124
- readonly surpriseButtonKey: string;
125
- readonly placeholderKey: string;
126
- readonly styleTitleKey: string;
127
- readonly inspirationTitleKey: string;
128
- readonly continueKey: string;
129
- }
130
-
131
- export interface VisualStyleOption {
132
- readonly id: string;
133
- readonly icon: string;
134
- readonly labelKey: string;
135
- }
136
-
137
- export interface InspirationChipData {
138
- readonly id: string;
139
- readonly labelKey: string;
140
- readonly promptKey: string;
141
- }
142
-
143
- export const SCENARIO_DEFAULTS = {
144
- pageSize: 10,
145
- maxPromptLength: 500,
146
- minPromptLength: 10,
147
- } as const;
@@ -1,64 +0,0 @@
1
- /**
2
- * Scenarios Feature
3
- * Config-driven scenario selection and preview screens
4
- */
5
-
6
- // Domain types
7
- export type {
8
- ScenarioData,
9
- ScenarioSelectorConfig,
10
- ScenarioPreviewConfig,
11
- MagicPromptConfig,
12
- VisualStyleOption,
13
- InspirationChipData,
14
- ScenarioMainCategory,
15
- ScenarioSubCategory,
16
- ScenarioHierarchyConfig,
17
- } from "./domain/types";
18
- export { SCENARIO_DEFAULTS } from "./domain/types";
19
-
20
- // Note: ScenarioCategory is now exported from domains/scenarios
21
- // Import from there instead: import { ScenarioCategory } from '@umituz/react-native-ai-generation-content'
22
-
23
- // Components
24
- export {
25
- ScenarioHeader,
26
- ScenarioGrid,
27
- MagicPromptHeadline,
28
- InspirationChips,
29
- StyleSelector,
30
- } from "./presentation/components";
31
- export type {
32
- ScenarioHeaderProps,
33
- ScenarioGridProps,
34
- MagicPromptHeadlineProps,
35
- InspirationChipsProps,
36
- StyleSelectorProps,
37
- } from "./presentation/components";
38
-
39
- // Screens
40
- export { ScenarioSelectorScreen } from "./presentation/screens/ScenarioSelectorScreen";
41
- export type { ScenarioSelectorScreenProps } from "./presentation/screens/ScenarioSelectorScreen";
42
-
43
- export { ScenarioPreviewScreen } from "./presentation/screens/ScenarioPreviewScreen";
44
- export type {
45
- ScenarioPreviewScreenProps,
46
- ScenarioPreviewTranslations,
47
- } from "./presentation/screens/ScenarioPreviewScreen";
48
-
49
- export { MagicPromptScreen } from "./presentation/screens/MagicPromptScreen";
50
- export type { MagicPromptScreenProps } from "./presentation/screens/MagicPromptScreen";
51
-
52
- // Hierarchical Screens
53
- export { MainCategoryScreen } from "./presentation/screens/MainCategoryScreen";
54
- export type { MainCategoryScreenProps } from "./presentation/screens/MainCategoryScreen";
55
-
56
- export { SubCategoryScreen } from "./presentation/screens/SubCategoryScreen";
57
- export type { SubCategoryScreenProps } from "./presentation/screens/SubCategoryScreen";
58
-
59
- export { HierarchicalScenarioListScreen } from "./presentation/screens/HierarchicalScenarioListScreen";
60
- export type { HierarchicalScenarioListScreenProps } from "./presentation/screens/HierarchicalScenarioListScreen";
61
-
62
- // Containers
63
- export { CategoryNavigationContainer } from "./presentation/containers/CategoryNavigationContainer";
64
- export type { CategoryNavigationContainerProps } from "./presentation/containers/CategoryNavigationContainer";
@@ -1,82 +0,0 @@
1
- /**
2
- * InspirationChips Component
3
- * Horizontal scrollable suggestion chips for Magic Prompt
4
- */
5
-
6
- import React, { useMemo } from "react";
7
- import { View, StyleSheet, ScrollView, TouchableOpacity } from "react-native";
8
- import {
9
- AtomicText,
10
- useAppDesignTokens,
11
- } from "@umituz/react-native-design-system";
12
- import type { InspirationChipData } from "../../domain/types";
13
-
14
- export interface InspirationChipsProps {
15
- readonly chips: readonly InspirationChipData[];
16
- readonly title: string;
17
- readonly onSelect: (promptKey: string) => void;
18
- readonly t: (key: string) => string;
19
- }
20
-
21
- export const InspirationChips: React.FC<InspirationChipsProps> = ({
22
- chips,
23
- title,
24
- onSelect,
25
- t,
26
- }) => {
27
- const tokens = useAppDesignTokens();
28
-
29
- const styles = useMemo(
30
- () =>
31
- StyleSheet.create({
32
- container: {
33
- marginBottom: tokens.spacing.lg,
34
- },
35
- sectionTitle: {
36
- fontWeight: "700",
37
- marginBottom: tokens.spacing.sm,
38
- },
39
- chipsContainer: {
40
- gap: tokens.spacing.sm,
41
- paddingBottom: 4,
42
- },
43
- chip: {
44
- paddingHorizontal: tokens.spacing.md,
45
- paddingVertical: 10,
46
- borderRadius: 999,
47
- borderWidth: 1,
48
- borderColor: tokens.colors.border,
49
- backgroundColor: tokens.colors.surface,
50
- },
51
- }),
52
- [tokens],
53
- );
54
-
55
- return (
56
- <View style={styles.container}>
57
- <AtomicText type="labelLarge" style={styles.sectionTitle}>
58
- {title}
59
- </AtomicText>
60
- <ScrollView
61
- horizontal
62
- showsHorizontalScrollIndicator={false}
63
- contentContainerStyle={styles.chipsContainer}
64
- >
65
- {chips.map((chip) => (
66
- <TouchableOpacity
67
- key={chip.id}
68
- style={styles.chip}
69
- onPress={() => onSelect(chip.promptKey)}
70
- >
71
- <AtomicText
72
- type="bodySmall"
73
- style={{ color: tokens.colors.textPrimary }}
74
- >
75
- {t(chip.labelKey)}
76
- </AtomicText>
77
- </TouchableOpacity>
78
- ))}
79
- </ScrollView>
80
- </View>
81
- );
82
- };
@@ -1,79 +0,0 @@
1
- /**
2
- * MagicPromptHeadline Component
3
- * Headline section with highlighted text for Magic Prompt screen
4
- */
5
-
6
- import React from "react";
7
- import { View, StyleSheet } from "react-native";
8
- import {
9
- AtomicText,
10
- useAppDesignTokens,
11
- } from "@umituz/react-native-design-system";
12
-
13
- export interface MagicPromptHeadlineProps {
14
- readonly headlinePart1: string;
15
- readonly headlinePart2: string;
16
- readonly subtitle: string;
17
- }
18
-
19
- export const MagicPromptHeadline: React.FC<MagicPromptHeadlineProps> = ({
20
- headlinePart1,
21
- headlinePart2,
22
- subtitle,
23
- }) => {
24
- const tokens = useAppDesignTokens();
25
-
26
- return (
27
- <View style={styles.container}>
28
- <View style={styles.titleRow}>
29
- <AtomicText
30
- type="headlineLarge"
31
- style={[styles.title, { color: tokens.colors.textPrimary }]}
32
- >
33
- {headlinePart1}{" "}
34
- <AtomicText
35
- type="headlineLarge"
36
- style={[
37
- styles.titleHighlight,
38
- { color: tokens.colors.textPrimary },
39
- ]}
40
- >
41
- {headlinePart2}
42
- </AtomicText>
43
- </AtomicText>
44
- </View>
45
- <AtomicText
46
- type="bodyLarge"
47
- style={[styles.subtitle, { color: tokens.colors.textSecondary }]}
48
- >
49
- {subtitle}
50
- </AtomicText>
51
- </View>
52
- );
53
- };
54
-
55
- const styles = StyleSheet.create({
56
- container: {
57
- marginVertical: 24,
58
- },
59
- titleRow: {
60
- marginBottom: 12,
61
- },
62
- title: {
63
- fontWeight: "800",
64
- fontSize: 32,
65
- lineHeight: 40,
66
- },
67
- titleHighlight: {
68
- fontWeight: "800",
69
- fontSize: 32,
70
- lineHeight: 40,
71
- textDecorationLine: "underline",
72
- textDecorationColor: "rgba(255, 140, 90, 0.5)",
73
- textDecorationStyle: "solid",
74
- },
75
- subtitle: {
76
- fontSize: 16,
77
- lineHeight: 24,
78
- },
79
- });
@@ -1,224 +0,0 @@
1
- /**
2
- * ScenarioGrid Component
3
- * Grid display for scenario selection with category filtering
4
- */
5
-
6
- import React, { useMemo, useCallback, useState } from "react";
7
- import {
8
- View,
9
- FlatList,
10
- StyleSheet,
11
- type ListRenderItemInfo,
12
- } from "react-native";
13
- import {
14
- useAppDesignTokens,
15
- useResponsive,
16
- AtomicCard,
17
- AtomicText,
18
- AtomicSkeleton,
19
- FilterGroup,
20
- type DesignTokens,
21
- } from "@umituz/react-native-design-system";
22
- import { useSafeAreaInsets } from "react-native-safe-area-context";
23
- import type { ScenarioData, ScenarioCategory } from "../../domain/types";
24
- import { SCENARIO_DEFAULTS } from "../../domain/types";
25
-
26
- export interface ScenarioGridProps {
27
- readonly scenarios: readonly ScenarioData[];
28
- readonly selectedScenarioId: string | null;
29
- readonly onSelect: (id: string) => void;
30
- readonly categories: readonly ScenarioCategory[];
31
- readonly t: (key: string) => string;
32
- readonly pageSize?: number;
33
- readonly categoryAllLabel?: string;
34
- }
35
-
36
- export const ScenarioGrid: React.FC<ScenarioGridProps> = ({
37
- scenarios,
38
- selectedScenarioId,
39
- onSelect,
40
- categories,
41
- t,
42
- pageSize = SCENARIO_DEFAULTS.pageSize,
43
- categoryAllLabel = "All",
44
- }) => {
45
- const [category, setCategory] = useState<ScenarioCategory | "all">("all");
46
- const [displayedCount, setDisplayedCount] = useState(pageSize);
47
- const [isLoading, setIsLoading] = useState(false);
48
-
49
- const tokens = useAppDesignTokens();
50
- const insets = useSafeAreaInsets();
51
- const { width } = useResponsive();
52
-
53
- const numColumns = 2;
54
- const horizontalPadding = tokens.spacing.md;
55
- const cardSpacing = tokens.spacing.md;
56
- const availableWidth = width - horizontalPadding * 2 - cardSpacing;
57
- const cardWidth = availableWidth / numColumns;
58
-
59
- const filteredScenarios = useMemo(() => {
60
- if (category === "all") return scenarios;
61
- return scenarios.filter((s) => s.category === category);
62
- }, [scenarios, category]);
63
-
64
- const displayedScenarios = useMemo(
65
- () => filteredScenarios.slice(0, displayedCount),
66
- [filteredScenarios, displayedCount],
67
- );
68
-
69
- const hasMore = displayedCount < filteredScenarios.length;
70
- const isLoadingMore = isLoading && displayedCount > pageSize;
71
-
72
- const styles = useMemo(
73
- () => createStyles(tokens, cardWidth, cardSpacing, horizontalPadding),
74
- [tokens, cardWidth, cardSpacing, horizontalPadding],
75
- );
76
-
77
- const loadMore = useCallback(() => {
78
- if (hasMore && !isLoading) {
79
- setIsLoading(true);
80
- setTimeout(() => {
81
- setDisplayedCount((prev) =>
82
- Math.min(prev + pageSize, filteredScenarios.length),
83
- );
84
- setIsLoading(false);
85
- }, 300);
86
- }
87
- }, [hasMore, isLoading, filteredScenarios.length, pageSize]);
88
-
89
- const handleCategoryChange = useCallback(
90
- (val: ScenarioCategory | "all") => {
91
- setCategory(val);
92
- setDisplayedCount(pageSize);
93
- },
94
- [pageSize],
95
- );
96
-
97
- const ListEmptyComponent = useMemo(
98
- () => (
99
- <View style={[styles.centerContainer, { paddingHorizontal: horizontalPadding }]}>
100
- <AtomicText type="bodyMedium" color="textSecondary">
101
- {t("scenario.empty")}
102
- </AtomicText>
103
- </View>
104
- ),
105
- [t, styles.centerContainer, horizontalPadding],
106
- );
107
-
108
- const ListFooterComponent = useMemo(
109
- () =>
110
- isLoadingMore ? (
111
- <View style={[styles.footerLoader, { paddingHorizontal: horizontalPadding }]}>
112
- <AtomicSkeleton pattern="card" count={2} />
113
- </View>
114
- ) : null,
115
- [isLoadingMore, styles.footerLoader, horizontalPadding],
116
- );
117
-
118
- const ListHeaderComponent = useMemo(
119
- () => (
120
- <View style={{ marginBottom: tokens.spacing.md }}>
121
- <FilterGroup
122
- items={[
123
- { label: categoryAllLabel, value: "all" },
124
- ...categories.map((cat) => ({
125
- label: t(`category.${cat}`),
126
- value: cat,
127
- })),
128
- ]}
129
- selectedValue={category}
130
- onSelect={(val) =>
131
- handleCategoryChange(val as ScenarioCategory | "all")
132
- }
133
- contentContainerStyle={{ paddingHorizontal: horizontalPadding }}
134
- />
135
- </View>
136
- ),
137
- [
138
- category,
139
- t,
140
- horizontalPadding,
141
- tokens.spacing.md,
142
- categories,
143
- categoryAllLabel,
144
- handleCategoryChange,
145
- ],
146
- );
147
-
148
- const renderItem = useCallback(
149
- ({ item }: ListRenderItemInfo<ScenarioData>) => {
150
- const title = t(`scenario.${item.id}.title`);
151
- const description = t(`scenario.${item.id}.description`);
152
-
153
- return (
154
- <AtomicCard
155
- image={item.previewImageUrl ?? item.imageUrl ?? ""}
156
- title={title}
157
- subtitle={description}
158
- selected={selectedScenarioId === item.id}
159
- imageAspectRatio={1.25}
160
- style={{ width: cardWidth }}
161
- onPress={() => onSelect(item.id)}
162
- testID={`scenario-card-${item.id}`}
163
- />
164
- );
165
- },
166
- [cardWidth, selectedScenarioId, onSelect, t],
167
- );
168
-
169
- return (
170
- <FlatList
171
- data={displayedScenarios}
172
- numColumns={numColumns}
173
- key={`grid-${numColumns}`}
174
- showsVerticalScrollIndicator={false}
175
- columnWrapperStyle={styles.row}
176
- renderItem={renderItem}
177
- keyExtractor={(item: ScenarioData) => item.id}
178
- ListHeaderComponent={ListHeaderComponent}
179
- ListEmptyComponent={filteredScenarios.length === 0 ? ListEmptyComponent : null}
180
- ListFooterComponent={ListFooterComponent}
181
- onEndReached={loadMore}
182
- onEndReachedThreshold={0.5}
183
- contentContainerStyle={[
184
- styles.listContent,
185
- {
186
- paddingBottom: insets.bottom + 100,
187
- },
188
- ]}
189
- initialNumToRender={pageSize}
190
- maxToRenderPerBatch={pageSize}
191
- windowSize={5}
192
- />
193
- );
194
- };
195
-
196
- const createStyles = (
197
- tokens: DesignTokens,
198
- cardWidth: number,
199
- cardSpacing: number,
200
- horizontalPadding: number,
201
- ) =>
202
- StyleSheet.create({
203
- container: {
204
- flex: 1,
205
- },
206
- listContent: {
207
- paddingTop: tokens.spacing.sm,
208
- flexGrow: 1,
209
- },
210
- row: {
211
- gap: cardSpacing,
212
- marginBottom: cardSpacing,
213
- paddingHorizontal: horizontalPadding,
214
- },
215
- centerContainer: {
216
- flex: 1,
217
- justifyContent: "center",
218
- alignItems: "center",
219
- paddingVertical: tokens.spacing.xl,
220
- },
221
- footerLoader: {
222
- paddingVertical: tokens.spacing.md,
223
- },
224
- });
@@ -1,55 +0,0 @@
1
- /**
2
- * ScenarioHeader Component
3
- * Header section for scenario selection screen
4
- */
5
-
6
- import React from "react";
7
- import { View, StyleSheet } from "react-native";
8
- import {
9
- AtomicText,
10
- useAppDesignTokens,
11
- type DesignTokens,
12
- } from "@umituz/react-native-design-system";
13
-
14
- export interface ScenarioHeaderProps {
15
- readonly title: string;
16
- readonly subtitle: string;
17
- }
18
-
19
- export const ScenarioHeader: React.FC<ScenarioHeaderProps> = ({
20
- title,
21
- subtitle,
22
- }) => {
23
- const tokens = useAppDesignTokens();
24
- const styles = React.useMemo(() => createStyles(tokens), [tokens]);
25
-
26
- return (
27
- <View style={styles.container}>
28
- <AtomicText type="headlineLarge" style={styles.title}>
29
- {title}
30
- </AtomicText>
31
- <AtomicText
32
- type="bodyMedium"
33
- color="textSecondary"
34
- style={styles.subtitle}
35
- >
36
- {subtitle}
37
- </AtomicText>
38
- </View>
39
- );
40
- };
41
-
42
- const createStyles = (tokens: DesignTokens) =>
43
- StyleSheet.create({
44
- container: {
45
- paddingHorizontal: tokens.spacing.md,
46
- paddingBottom: tokens.spacing.md,
47
- gap: tokens.spacing.xs,
48
- },
49
- title: {
50
- lineHeight: 34,
51
- },
52
- subtitle: {
53
- lineHeight: 22,
54
- },
55
- });