@umituz/react-native-ai-generation-content 1.26.2 → 1.26.5

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 (333) 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 +3 -29
  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/presentation/components/index.ts +0 -3
  14. package/src/presentation/hooks/index.ts +0 -7
  15. package/src/features/ai-hug/README.md +0 -438
  16. package/src/features/ai-hug/domain/index.ts +0 -5
  17. package/src/features/ai-hug/domain/types/ai-hug.types.ts +0 -25
  18. package/src/features/ai-hug/domain/types/index.ts +0 -7
  19. package/src/features/ai-hug/index.ts +0 -19
  20. package/src/features/ai-hug/presentation/components/AIHugFeature.tsx +0 -77
  21. package/src/features/ai-hug/presentation/components/index.ts +0 -2
  22. package/src/features/ai-hug/presentation/hooks/index.ts +0 -9
  23. package/src/features/ai-hug/presentation/hooks/useAIHugFeature.ts +0 -34
  24. package/src/features/ai-hug/presentation/index.ts +0 -6
  25. package/src/features/ai-kiss/README.md +0 -445
  26. package/src/features/ai-kiss/domain/index.ts +0 -5
  27. package/src/features/ai-kiss/domain/types/ai-kiss.types.ts +0 -25
  28. package/src/features/ai-kiss/domain/types/index.ts +0 -7
  29. package/src/features/ai-kiss/index.ts +0 -19
  30. package/src/features/ai-kiss/presentation/components/AIKissFeature.tsx +0 -77
  31. package/src/features/ai-kiss/presentation/components/index.ts +0 -2
  32. package/src/features/ai-kiss/presentation/hooks/index.ts +0 -9
  33. package/src/features/ai-kiss/presentation/hooks/useAIKissFeature.ts +0 -34
  34. package/src/features/ai-kiss/presentation/index.ts +0 -6
  35. package/src/features/anime-selfie/README.md +0 -396
  36. package/src/features/anime-selfie/domain/index.ts +0 -5
  37. package/src/features/anime-selfie/domain/types/anime-selfie.types.ts +0 -52
  38. package/src/features/anime-selfie/domain/types/index.ts +0 -8
  39. package/src/features/anime-selfie/index.ts +0 -20
  40. package/src/features/anime-selfie/presentation/components/AnimeSelfieFeature.tsx +0 -86
  41. package/src/features/anime-selfie/presentation/components/index.ts +0 -2
  42. package/src/features/anime-selfie/presentation/hooks/index.ts +0 -9
  43. package/src/features/anime-selfie/presentation/hooks/useAnimeSelfieFeature.ts +0 -59
  44. package/src/features/anime-selfie/presentation/index.ts +0 -6
  45. package/src/features/couple-future/README.md +0 -445
  46. package/src/features/couple-future/domain/types.ts +0 -63
  47. package/src/features/couple-future/domain/wizard-config.adapter.ts +0 -76
  48. package/src/features/couple-future/domain/wizard.types.ts +0 -121
  49. package/src/features/couple-future/index.ts +0 -83
  50. package/src/features/couple-future/infrastructure/coupleFeatureRegistry.ts +0 -76
  51. package/src/features/couple-future/infrastructure/couplePromptEnhancer.ts +0 -100
  52. package/src/features/couple-future/infrastructure/executor.ts +0 -188
  53. package/src/features/couple-future/infrastructure/generationUtils.ts +0 -228
  54. package/src/features/couple-future/presentation/components/ArtStyleSelector.tsx +0 -146
  55. package/src/features/couple-future/presentation/components/ArtistStyleSelector.tsx +0 -122
  56. package/src/features/couple-future/presentation/components/CoupleFutureWizard.tsx +0 -239
  57. package/src/features/couple-future/presentation/components/GeneratingStepContent.tsx +0 -86
  58. package/src/features/couple-future/presentation/components/RomanticMoodSelector.tsx +0 -147
  59. package/src/features/couple-future/presentation/components/WardrobeSelector.tsx +0 -141
  60. package/src/features/couple-future/presentation/components/index.ts +0 -12
  61. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.ts +0 -166
  62. package/src/features/couple-future/presentation/hooks/useCoupleFutureFlow.types.ts +0 -69
  63. package/src/features/couple-future/presentation/hooks/useCoupleFutureHandlers.ts +0 -117
  64. package/src/features/couple-future/presentation/screens/CoupleFeatureScreen.tsx +0 -113
  65. package/src/features/face-swap/README.md +0 -431
  66. package/src/features/face-swap/domain/index.ts +0 -5
  67. package/src/features/face-swap/domain/types/face-swap.types.ts +0 -26
  68. package/src/features/face-swap/domain/types/index.ts +0 -7
  69. package/src/features/face-swap/index.ts +0 -19
  70. package/src/features/face-swap/presentation/components/FaceSwapFeature.tsx +0 -87
  71. package/src/features/face-swap/presentation/components/index.ts +0 -2
  72. package/src/features/face-swap/presentation/hooks/index.ts +0 -6
  73. package/src/features/face-swap/presentation/hooks/useFaceSwapFeature.ts +0 -35
  74. package/src/features/face-swap/presentation/index.ts +0 -6
  75. package/src/features/hd-touch-up/README.md +0 -396
  76. package/src/features/hd-touch-up/domain/index.ts +0 -1
  77. package/src/features/hd-touch-up/domain/types/hd-touch-up.types.ts +0 -62
  78. package/src/features/hd-touch-up/domain/types/index.ts +0 -9
  79. package/src/features/hd-touch-up/index.ts +0 -21
  80. package/src/features/hd-touch-up/presentation/components/HDTouchUpFeature.tsx +0 -86
  81. package/src/features/hd-touch-up/presentation/components/index.ts +0 -2
  82. package/src/features/hd-touch-up/presentation/hooks/index.ts +0 -1
  83. package/src/features/hd-touch-up/presentation/hooks/useHDTouchUpFeature.ts +0 -23
  84. package/src/features/hd-touch-up/presentation/index.ts +0 -2
  85. package/src/features/image-to-image/README.md +0 -459
  86. package/src/features/image-to-image/domain/index.ts +0 -1
  87. package/src/features/image-to-image/domain/types/base.types.ts +0 -48
  88. package/src/features/image-to-image/domain/types/index.ts +0 -1
  89. package/src/features/image-to-image/domain/types/partials/config.types.ts +0 -37
  90. package/src/features/image-to-image/domain/types/partials/hook.types.ts +0 -53
  91. package/src/features/image-to-image/domain/types/partials/metadata.types.ts +0 -32
  92. package/src/features/image-to-image/domain/types/partials/result.types.ts +0 -44
  93. package/src/features/image-to-image/domain/types/partials/state.types.ts +0 -34
  94. package/src/features/image-to-image/domain/types/partials/translation.types.ts +0 -57
  95. package/src/features/image-to-image/index.ts +0 -2
  96. package/src/features/image-to-image/presentation/hooks/index.ts +0 -3
  97. package/src/features/image-to-image/presentation/hooks/useDualImageFeature.ts +0 -204
  98. package/src/features/image-to-image/presentation/hooks/useImageWithPromptFeature.ts +0 -223
  99. package/src/features/image-to-image/presentation/hooks/useSingleImageFeature.ts +0 -166
  100. package/src/features/image-to-image/presentation/index.ts +0 -1
  101. package/src/features/image-to-video/README.md +0 -414
  102. package/src/features/image-to-video/domain/constants/animation.constants.ts +0 -47
  103. package/src/features/image-to-video/domain/constants/duration.constants.ts +0 -13
  104. package/src/features/image-to-video/domain/constants/form.constants.ts +0 -22
  105. package/src/features/image-to-video/domain/constants/index.ts +0 -23
  106. package/src/features/image-to-video/domain/constants/music.constants.ts +0 -53
  107. package/src/features/image-to-video/domain/index.ts +0 -5
  108. package/src/features/image-to-video/domain/types/animation.types.ts +0 -20
  109. package/src/features/image-to-video/domain/types/config.types.ts +0 -56
  110. package/src/features/image-to-video/domain/types/duration.types.ts +0 -11
  111. package/src/features/image-to-video/domain/types/form.types.ts +0 -35
  112. package/src/features/image-to-video/domain/types/image-to-video.types.ts +0 -122
  113. package/src/features/image-to-video/domain/types/index.ts +0 -39
  114. package/src/features/image-to-video/domain/types/music.types.ts +0 -21
  115. package/src/features/image-to-video/index.ts +0 -116
  116. package/src/features/image-to-video/infrastructure/index.ts +0 -1
  117. package/src/features/image-to-video/infrastructure/services/image-to-video-executor.ts +0 -154
  118. package/src/features/image-to-video/infrastructure/services/index.ts +0 -5
  119. package/src/features/image-to-video/presentation/components/AddMoreCard.tsx +0 -52
  120. package/src/features/image-to-video/presentation/components/AnimationStyleSelector.tsx +0 -135
  121. package/src/features/image-to-video/presentation/components/DurationSelector.tsx +0 -110
  122. package/src/features/image-to-video/presentation/components/EmptyGridState.tsx +0 -69
  123. package/src/features/image-to-video/presentation/components/GridImageItem.tsx +0 -64
  124. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.styles.ts +0 -84
  125. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.tsx +0 -77
  126. package/src/features/image-to-video/presentation/components/ImageSelectionGrid.types.ts +0 -18
  127. package/src/features/image-to-video/presentation/components/MusicMoodSelector.tsx +0 -181
  128. package/src/features/image-to-video/presentation/components/index.ts +0 -30
  129. package/src/features/image-to-video/presentation/hooks/index.ts +0 -27
  130. package/src/features/image-to-video/presentation/hooks/useFormState.ts +0 -116
  131. package/src/features/image-to-video/presentation/hooks/useGeneration.ts +0 -85
  132. package/src/features/image-to-video/presentation/hooks/useGenerationExecution.ts +0 -143
  133. package/src/features/image-to-video/presentation/hooks/useImageToVideoFeature.ts +0 -107
  134. package/src/features/image-to-video/presentation/hooks/useImageToVideoForm.ts +0 -119
  135. package/src/features/image-to-video/presentation/hooks/useImageToVideoValidation.ts +0 -46
  136. package/src/features/image-to-video/presentation/index.ts +0 -5
  137. package/src/features/love-message/domain/constants.ts +0 -162
  138. package/src/features/love-message/domain/types.ts +0 -58
  139. package/src/features/love-message/index.ts +0 -37
  140. package/src/features/love-message/infrastructure/persistence/PartnerProfileRepository.ts +0 -52
  141. package/src/features/love-message/infrastructure/prompts/messagePromptBuilder.ts +0 -109
  142. package/src/features/love-message/infrastructure/services/LoveMessageService.ts +0 -35
  143. package/src/features/love-message/presentation/components/CategoryGrid.tsx +0 -88
  144. package/src/features/love-message/presentation/components/DetailsInput.tsx +0 -74
  145. package/src/features/love-message/presentation/components/ExploreHeader.tsx +0 -67
  146. package/src/features/love-message/presentation/components/FieldInput.tsx +0 -83
  147. package/src/features/love-message/presentation/components/GeneratorHeader.tsx +0 -88
  148. package/src/features/love-message/presentation/components/LoveMessageHeroSection.tsx +0 -114
  149. package/src/features/love-message/presentation/components/MessageListItem.tsx +0 -77
  150. package/src/features/love-message/presentation/components/MessageResult.tsx +0 -105
  151. package/src/features/love-message/presentation/components/PartnerInput.tsx +0 -78
  152. package/src/features/love-message/presentation/components/ProgressDots.tsx +0 -48
  153. package/src/features/love-message/presentation/components/StepDetails.tsx +0 -23
  154. package/src/features/love-message/presentation/components/StepPartner.tsx +0 -116
  155. package/src/features/love-message/presentation/components/StepVibe.tsx +0 -30
  156. package/src/features/love-message/presentation/components/ToneSelector.tsx +0 -100
  157. package/src/features/love-message/presentation/components/TrendingSection.tsx +0 -130
  158. package/src/features/love-message/presentation/components/TypeSelector.tsx +0 -99
  159. package/src/features/love-message/presentation/hooks/useLoveMessageGenerator.ts +0 -114
  160. package/src/features/love-message/presentation/hooks/usePartnerProfile.ts +0 -43
  161. package/src/features/love-message/presentation/navigation/LoveMessageStack.tsx +0 -39
  162. package/src/features/love-message/presentation/screens/LoveMessageExploreScreen.tsx +0 -53
  163. package/src/features/love-message/presentation/screens/LoveMessageGeneratorScreen.tsx +0 -169
  164. package/src/features/love-message/presentation/screens/MessageListScreen.tsx +0 -127
  165. package/src/features/love-message/presentation/screens/PartnerProfileScreen.tsx +0 -119
  166. package/src/features/meme-generator/README.md +0 -408
  167. package/src/features/meme-generator/index.ts +0 -3
  168. package/src/features/meme-generator/infrastructure/services/MemeGenerationService.ts +0 -87
  169. package/src/features/meme-generator/presentation/components/MemeGeneratorFeature.tsx +0 -180
  170. package/src/features/meme-generator/presentation/components/index.ts +0 -2
  171. package/src/features/meme-generator/presentation/screens/MemeGeneratorScreen.tsx +0 -168
  172. package/src/features/meme-generator/presentation/screens/index.ts +0 -1
  173. package/src/features/partner-upload/domain/types.ts +0 -59
  174. package/src/features/partner-upload/index.ts +0 -30
  175. package/src/features/partner-upload/presentation/components/PartnerInfoInput.tsx +0 -112
  176. package/src/features/partner-upload/presentation/components/PhotoTips.tsx +0 -53
  177. package/src/features/partner-upload/presentation/components/index.ts +0 -4
  178. package/src/features/partner-upload/presentation/hooks/index.ts +0 -7
  179. package/src/features/partner-upload/presentation/hooks/usePartnerStep.ts +0 -130
  180. package/src/features/partner-upload/presentation/screens/PartnerStepScreen.tsx +0 -231
  181. package/src/features/partner-upload/presentation/screens/index.ts +0 -6
  182. package/src/features/photo-restoration/README.md +0 -399
  183. package/src/features/photo-restoration/domain/index.ts +0 -1
  184. package/src/features/photo-restoration/domain/types/index.ts +0 -9
  185. package/src/features/photo-restoration/domain/types/photo-restore.types.ts +0 -64
  186. package/src/features/photo-restoration/index.ts +0 -22
  187. package/src/features/photo-restoration/presentation/components/PhotoRestoreFeature.tsx +0 -88
  188. package/src/features/photo-restoration/presentation/components/PhotoRestoreResultView.tsx +0 -86
  189. package/src/features/photo-restoration/presentation/components/index.ts +0 -4
  190. package/src/features/photo-restoration/presentation/hooks/index.ts +0 -1
  191. package/src/features/photo-restoration/presentation/hooks/usePhotoRestoreFeature.ts +0 -23
  192. package/src/features/photo-restoration/presentation/index.ts +0 -2
  193. package/src/features/remove-background/README.md +0 -393
  194. package/src/features/remove-background/domain/index.ts +0 -5
  195. package/src/features/remove-background/domain/types/index.ts +0 -7
  196. package/src/features/remove-background/domain/types/remove-background.types.ts +0 -28
  197. package/src/features/remove-background/index.ts +0 -19
  198. package/src/features/remove-background/presentation/components/RemoveBackgroundFeature.tsx +0 -86
  199. package/src/features/remove-background/presentation/components/index.ts +0 -2
  200. package/src/features/remove-background/presentation/hooks/index.ts +0 -1
  201. package/src/features/remove-background/presentation/hooks/useRemoveBackgroundFeature.ts +0 -28
  202. package/src/features/remove-background/presentation/index.ts +0 -6
  203. package/src/features/remove-object/README.md +0 -405
  204. package/src/features/remove-object/domain/index.ts +0 -5
  205. package/src/features/remove-object/domain/types/index.ts +0 -7
  206. package/src/features/remove-object/domain/types/remove-object.types.ts +0 -54
  207. package/src/features/remove-object/index.ts +0 -23
  208. package/src/features/remove-object/presentation/components/RemoveObjectFeature.tsx +0 -136
  209. package/src/features/remove-object/presentation/components/index.ts +0 -2
  210. package/src/features/remove-object/presentation/hooks/index.ts +0 -9
  211. package/src/features/remove-object/presentation/hooks/useRemoveObjectFeature.ts +0 -221
  212. package/src/features/remove-object/presentation/index.ts +0 -6
  213. package/src/features/replace-background/README.md +0 -405
  214. package/src/features/replace-background/domain/types/index.ts +0 -7
  215. package/src/features/replace-background/domain/types/replace-background.types.ts +0 -33
  216. package/src/features/replace-background/index.ts +0 -23
  217. package/src/features/replace-background/presentation/components/ReplaceBackgroundFeature.tsx +0 -105
  218. package/src/features/replace-background/presentation/components/index.ts +0 -6
  219. package/src/features/replace-background/presentation/hooks/index.ts +0 -9
  220. package/src/features/replace-background/presentation/hooks/useReplaceBackgroundFeature.ts +0 -55
  221. package/src/features/scenarios/domain/types.ts +0 -147
  222. package/src/features/scenarios/index.ts +0 -64
  223. package/src/features/scenarios/presentation/components/InspirationChips.tsx +0 -82
  224. package/src/features/scenarios/presentation/components/MagicPromptHeadline.tsx +0 -79
  225. package/src/features/scenarios/presentation/components/ScenarioGrid.tsx +0 -224
  226. package/src/features/scenarios/presentation/components/ScenarioHeader.tsx +0 -55
  227. package/src/features/scenarios/presentation/components/StyleSelector.tsx +0 -119
  228. package/src/features/scenarios/presentation/components/index.ts +0 -18
  229. package/src/features/scenarios/presentation/containers/CategoryNavigationContainer.tsx +0 -178
  230. package/src/features/scenarios/presentation/screens/HierarchicalScenarioListScreen.tsx +0 -266
  231. package/src/features/scenarios/presentation/screens/MagicPromptScreen.tsx +0 -242
  232. package/src/features/scenarios/presentation/screens/MainCategoryScreen.tsx +0 -198
  233. package/src/features/scenarios/presentation/screens/ScenarioPreviewScreen.tsx +0 -164
  234. package/src/features/scenarios/presentation/screens/ScenarioSelectorScreen.tsx +0 -66
  235. package/src/features/scenarios/presentation/screens/SubCategoryScreen.tsx +0 -216
  236. package/src/features/script-generator/README.md +0 -433
  237. package/src/features/script-generator/domain/constants/index.ts +0 -10
  238. package/src/features/script-generator/domain/types/script.types.ts +0 -30
  239. package/src/features/script-generator/index.ts +0 -5
  240. package/src/features/script-generator/infrastructure/services/ScriptGenerationService.ts +0 -62
  241. package/src/features/script-generator/presentation/components/ScriptDisplay.tsx +0 -158
  242. package/src/features/script-generator/presentation/components/VideoTypeSelector.tsx +0 -102
  243. package/src/features/script-generator/presentation/components/index.ts +0 -2
  244. package/src/features/script-generator/presentation/hooks/index.ts +0 -1
  245. package/src/features/script-generator/presentation/hooks/useScriptGenerator.ts +0 -77
  246. package/src/features/shared/README.md +0 -311
  247. package/src/features/shared/dual-image-video/domain/types/dual-image-video.types.ts +0 -88
  248. package/src/features/shared/dual-image-video/domain/types/index.ts +0 -14
  249. package/src/features/shared/dual-image-video/index.ts +0 -17
  250. package/src/features/shared/dual-image-video/presentation/hooks/index.ts +0 -5
  251. package/src/features/shared/dual-image-video/presentation/hooks/useDualImageVideoFeature.ts +0 -185
  252. package/src/features/shared/index.ts +0 -6
  253. package/src/features/text-to-image/README.md +0 -394
  254. package/src/features/text-to-image/domain/constants/index.ts +0 -8
  255. package/src/features/text-to-image/domain/constants/options.constants.ts +0 -39
  256. package/src/features/text-to-image/domain/constants/styles.constants.ts +0 -34
  257. package/src/features/text-to-image/domain/index.ts +0 -7
  258. package/src/features/text-to-image/domain/types/config.types.ts +0 -75
  259. package/src/features/text-to-image/domain/types/form.types.ts +0 -58
  260. package/src/features/text-to-image/domain/types/index.ts +0 -38
  261. package/src/features/text-to-image/domain/types/text-to-image.types.ts +0 -58
  262. package/src/features/text-to-image/index.ts +0 -116
  263. package/src/features/text-to-image/infrastructure/index.ts +0 -1
  264. package/src/features/text-to-image/infrastructure/services/index.ts +0 -5
  265. package/src/features/text-to-image/infrastructure/services/text-to-image-executor.ts +0 -147
  266. package/src/features/text-to-image/presentation/components/index.ts +0 -30
  267. package/src/features/text-to-image/presentation/hooks/index.ts +0 -30
  268. package/src/features/text-to-image/presentation/hooks/useFormState.ts +0 -103
  269. package/src/features/text-to-image/presentation/hooks/useGeneration.ts +0 -139
  270. package/src/features/text-to-image/presentation/hooks/useTextToImageFeature.ts +0 -111
  271. package/src/features/text-to-image/presentation/hooks/useTextToImageForm.ts +0 -58
  272. package/src/features/text-to-image/presentation/index.ts +0 -7
  273. package/src/features/text-to-video/README.md +0 -412
  274. package/src/features/text-to-video/domain/index.ts +0 -1
  275. package/src/features/text-to-video/domain/types/callback.types.ts +0 -69
  276. package/src/features/text-to-video/domain/types/component.types.ts +0 -106
  277. package/src/features/text-to-video/domain/types/config.types.ts +0 -61
  278. package/src/features/text-to-video/domain/types/index.ts +0 -56
  279. package/src/features/text-to-video/domain/types/request.types.ts +0 -36
  280. package/src/features/text-to-video/domain/types/state.types.ts +0 -53
  281. package/src/features/text-to-video/index.ts +0 -68
  282. package/src/features/text-to-video/infrastructure/index.ts +0 -1
  283. package/src/features/text-to-video/infrastructure/services/index.ts +0 -5
  284. package/src/features/text-to-video/infrastructure/services/text-to-video-executor.ts +0 -141
  285. package/src/features/text-to-video/presentation/components/FrameSelector.tsx +0 -153
  286. package/src/features/text-to-video/presentation/components/GenerationTabs.tsx +0 -73
  287. package/src/features/text-to-video/presentation/components/HeroSection.tsx +0 -61
  288. package/src/features/text-to-video/presentation/components/HintCarousel.tsx +0 -96
  289. package/src/features/text-to-video/presentation/components/OptionsPanel.tsx +0 -121
  290. package/src/features/text-to-video/presentation/components/index.ts +0 -10
  291. package/src/features/text-to-video/presentation/hooks/index.ts +0 -17
  292. package/src/features/text-to-video/presentation/hooks/useTextToVideoFeature.ts +0 -225
  293. package/src/features/text-to-video/presentation/hooks/useTextToVideoForm.ts +0 -134
  294. package/src/features/text-to-video/presentation/index.ts +0 -7
  295. package/src/features/text-to-voice/README.md +0 -445
  296. package/src/features/text-to-voice/domain/index.ts +0 -1
  297. package/src/features/text-to-voice/domain/types/component.types.ts +0 -91
  298. package/src/features/text-to-voice/domain/types/config.types.ts +0 -34
  299. package/src/features/text-to-voice/domain/types/form.types.ts +0 -39
  300. package/src/features/text-to-voice/domain/types/generation.types.ts +0 -43
  301. package/src/features/text-to-voice/domain/types/index.ts +0 -38
  302. package/src/features/text-to-voice/index.ts +0 -53
  303. package/src/features/text-to-voice/infrastructure/index.ts +0 -1
  304. package/src/features/text-to-voice/infrastructure/services/index.ts +0 -4
  305. package/src/features/text-to-voice/infrastructure/services/text-to-voice-executor.ts +0 -103
  306. package/src/features/text-to-voice/presentation/components/TextToVoiceAudioPlayer.tsx +0 -81
  307. package/src/features/text-to-voice/presentation/components/index.ts +0 -7
  308. package/src/features/text-to-voice/presentation/hooks/index.ts +0 -6
  309. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceForm.ts +0 -91
  310. package/src/features/text-to-voice/presentation/hooks/useTextToVoiceGeneration.ts +0 -116
  311. package/src/features/text-to-voice/presentation/index.ts +0 -2
  312. package/src/features/upscaling/README.md +0 -396
  313. package/src/features/upscaling/domain/index.ts +0 -1
  314. package/src/features/upscaling/domain/types/index.ts +0 -1
  315. package/src/features/upscaling/domain/types/upscale.types.ts +0 -23
  316. package/src/features/upscaling/index.ts +0 -20
  317. package/src/features/upscaling/presentation/components/ComparisonSlider.tsx +0 -200
  318. package/src/features/upscaling/presentation/components/UpscaleFeature.tsx +0 -89
  319. package/src/features/upscaling/presentation/components/UpscaleResultView.tsx +0 -98
  320. package/src/features/upscaling/presentation/components/index.ts +0 -6
  321. package/src/features/upscaling/presentation/hooks/index.ts +0 -1
  322. package/src/features/upscaling/presentation/hooks/useUpscaleFeature.ts +0 -28
  323. package/src/features/upscaling/presentation/index.ts +0 -2
  324. package/src/features/wizard/domain/types.ts +0 -154
  325. package/src/features/wizard/index.ts +0 -43
  326. package/src/features/wizard/presentation/components/AIFeatureWizard.tsx +0 -231
  327. package/src/features/wizard/presentation/components/AIGenerationWizard.tsx +0 -132
  328. package/src/features/wizard/presentation/hooks/useWizard.ts +0 -120
  329. package/src/features/wizard/presentation/store/useWizardStore.ts +0 -82
  330. package/src/presentation/components/flows/AIGenerateWizardFlow.tsx +0 -231
  331. package/src/presentation/components/flows/AIGenerateWizardFlow.types.ts +0 -66
  332. package/src/presentation/components/flows/useAIGenerateWizardFlow.ts +0 -130
  333. package/src/presentation/hooks/useAIGenerateWizard.ts +0 -164
@@ -1,216 +0,0 @@
1
- /**
2
- * SubCategoryScreen
3
- * Displays sub-categories for a selected main category
4
- */
5
-
6
- import React, { useMemo, useCallback, useEffect } from "react";
7
- import {
8
- View,
9
- FlatList,
10
- StyleSheet,
11
- TouchableOpacity,
12
- type ListRenderItemInfo,
13
- } from "react-native";
14
- import {
15
- AtomicText,
16
- AtomicIcon,
17
- useAppDesignTokens,
18
- ScreenLayout,
19
- type DesignTokens,
20
- } from "@umituz/react-native-design-system";
21
- import { useSafeAreaInsets } from "react-native-safe-area-context";
22
- import { AIGenScreenHeader } from "../../../../presentation/components";
23
- import type { ScenarioSubCategory } from "../../domain/types";
24
-
25
- export interface SubCategoryScreenProps {
26
- readonly mainCategoryId: string;
27
- readonly subCategories: readonly ScenarioSubCategory[];
28
- readonly onSelectSubCategory: (subCategoryId: string) => void;
29
- readonly onBack: () => void;
30
- readonly t: (key: string) => string;
31
- readonly headerTitleKey?: string;
32
- readonly headerDescriptionKey?: string;
33
- }
34
-
35
- export const SubCategoryScreen: React.FC<SubCategoryScreenProps> = ({
36
- mainCategoryId,
37
- subCategories,
38
- onSelectSubCategory,
39
- onBack,
40
- t,
41
- headerTitleKey,
42
- headerDescriptionKey,
43
- }) => {
44
- const tokens = useAppDesignTokens();
45
- const insets = useSafeAreaInsets();
46
-
47
- const filteredSubCategories = useMemo(() => {
48
- const filtered = subCategories.filter((sub) => sub.mainCategoryId === mainCategoryId);
49
-
50
- if (typeof __DEV__ !== "undefined" && __DEV__) {
51
- console.log("[SubCategoryScreen] Filtered sub-categories", {
52
- mainCategoryId,
53
- totalSubCategories: subCategories.length,
54
- filteredCount: filtered.length,
55
- sampleMainCategoryIds: subCategories.slice(0, 5).map(s => s.mainCategoryId),
56
- });
57
- }
58
-
59
- return filtered;
60
- }, [subCategories, mainCategoryId]);
61
-
62
- // Debug: Monitor component state
63
- useEffect(() => {
64
- if (typeof __DEV__ !== "undefined" && __DEV__) {
65
- console.log("[SubCategoryScreen] Component mounted/updated", {
66
- mainCategoryId,
67
- filteredSubCategoriesCount: filteredSubCategories.length,
68
- });
69
- }
70
- }, [mainCategoryId, filteredSubCategories]);
71
-
72
- const styles = useMemo(() => createStyles(tokens), [tokens]);
73
-
74
- const handleSubCategoryPress = useCallback(
75
- (subCategoryId: string) => {
76
- if (typeof __DEV__ !== "undefined" && __DEV__) {
77
- console.log("[SubCategoryScreen] Sub-category pressed", { subCategoryId });
78
- }
79
- onSelectSubCategory(subCategoryId);
80
- },
81
- [onSelectSubCategory]
82
- );
83
-
84
- const renderItem = useCallback(
85
- ({ item }: ListRenderItemInfo<ScenarioSubCategory>) => {
86
- const title = item.title;
87
- const description = item.description || "";
88
-
89
- return (
90
- <TouchableOpacity
91
- style={[
92
- styles.card,
93
- {
94
- backgroundColor: tokens.colors.surface,
95
- borderColor: tokens.colors.border,
96
- },
97
- ]}
98
- onPress={() => handleSubCategoryPress(item.id)}
99
- activeOpacity={0.7}
100
- testID={`sub-category-${item.id}`}
101
- >
102
- <View style={styles.cardContent}>
103
- <View
104
- style={[
105
- styles.iconContainer,
106
- { backgroundColor: tokens.colors.surfaceVariant },
107
- ]}
108
- >
109
- {item.emoji ? (
110
- <AtomicText style={styles.emoji}>{item.emoji}</AtomicText>
111
- ) : (
112
- <AtomicIcon name={item.icon as never} size="lg" color="primary" />
113
- )}
114
- </View>
115
- <View style={styles.textContent}>
116
- <AtomicText
117
- style={[styles.title, { color: tokens.colors.textPrimary }]}
118
- >
119
- {title}
120
- </AtomicText>
121
- {description ? (
122
- <AtomicText
123
- style={[
124
- styles.description,
125
- { color: tokens.colors.textSecondary },
126
- ]}
127
- numberOfLines={2}
128
- >
129
- {description}
130
- </AtomicText>
131
- ) : null}
132
- </View>
133
- <AtomicIcon
134
- name="chevron-forward"
135
- size="md"
136
- color="textSecondary"
137
- />
138
- </View>
139
- </TouchableOpacity>
140
- );
141
- },
142
- [tokens, styles, handleSubCategoryPress]
143
- );
144
-
145
- return (
146
- <ScreenLayout
147
- scrollable={false}
148
- edges={["left", "right"]}
149
- backgroundColor={tokens.colors.backgroundPrimary}
150
- >
151
- <AIGenScreenHeader
152
- title={headerTitleKey ? t(headerTitleKey) : t("scenario.sub_category.title")}
153
- description={headerDescriptionKey ? t(headerDescriptionKey) : t("scenario.sub_category.subtitle")}
154
- onNavigationPress={onBack}
155
- />
156
- <FlatList
157
- data={filteredSubCategories}
158
- showsVerticalScrollIndicator={false}
159
- renderItem={renderItem}
160
- keyExtractor={(item) => item.id}
161
- contentContainerStyle={[
162
- styles.listContent,
163
- { paddingBottom: insets.bottom + 100 },
164
- ]}
165
- removeClippedSubviews
166
- maxToRenderPerBatch={10}
167
- updateCellsBatchingPeriod={50}
168
- initialNumToRender={10}
169
- windowSize={11}
170
- />
171
- </ScreenLayout>
172
- );
173
- };
174
-
175
- const createStyles = (tokens: DesignTokens) =>
176
- StyleSheet.create({
177
- listContent: {
178
- paddingHorizontal: tokens.spacing.md,
179
- paddingBottom: tokens.spacing.xl,
180
- gap: tokens.spacing.sm,
181
- },
182
- card: {
183
- borderRadius: tokens.borders.radius.lg,
184
- borderWidth: 1,
185
- overflow: "hidden",
186
- },
187
- cardContent: {
188
- flexDirection: "row",
189
- alignItems: "center",
190
- padding: tokens.spacing.md,
191
- },
192
- iconContainer: {
193
- width: 56,
194
- height: 56,
195
- borderRadius: 28,
196
- justifyContent: "center",
197
- alignItems: "center",
198
- marginRight: tokens.spacing.md,
199
- },
200
- emoji: {
201
- fontSize: 28,
202
- },
203
- textContent: {
204
- flex: 1,
205
- marginRight: tokens.spacing.sm,
206
- },
207
- title: {
208
- fontSize: 17,
209
- fontWeight: "700",
210
- marginBottom: 2,
211
- },
212
- description: {
213
- fontSize: 14,
214
- lineHeight: 18,
215
- },
216
- });
@@ -1,433 +0,0 @@
1
- # Script Generator Feature
2
-
3
- Generate scripts for videos, podcasts, and content using AI.
4
-
5
- ## 📍 Import Path
6
-
7
- ```typescript
8
- import { useScriptGeneratorFeature } from '@umituz/react-native-ai-generation-content';
9
- ```
10
-
11
- **Location**: `src/features/script-generator/`
12
-
13
- ## 🎯 Feature Purpose
14
-
15
- Generate professional scripts for various content types including videos, podcasts, social media, and presentations. Customize tone, duration, and format for high-quality content creation with visual cues and production notes.
16
-
17
- ---
18
-
19
- ## 📋 Usage Strategy
20
-
21
- ### When to Use This Feature
22
-
23
- ✅ **Use Cases:**
24
- - Creating YouTube video scripts
25
- - Generating podcast episode scripts
26
- - Writing social media content (TikTok, Reels)
27
- - Preparing presentation scripts
28
- - Content ideation and planning
29
-
30
- ❌ **When NOT to Use:**
31
- - Converting scripts to speech (use Text to Voice)
32
- - Generating visual content (use Text to Image/Video)
33
- - Real-time captioning
34
- - Collaborative script editing
35
-
36
- ### Implementation Strategy
37
-
38
- 1. **Enter topic/description** for the script
39
- 2. **Choose script type** (video, podcast, social, presentation)
40
- 3. **Select tone** (casual, professional, humorous, dramatic)
41
- 4. **Set duration** target
42
- 5. **Generate script** with progress tracking
43
- 6. **Review and edit** generated script
44
- 7. **Save or export** final script
45
-
46
- ---
47
-
48
- ## ⚠️ Critical Rules (MUST FOLLOW)
49
-
50
- ### 1. Input Requirements
51
- - **MUST** provide clear topic or description
52
- - **MUST** specify script type
53
- - **MUST** set duration target
54
- - **MUST** select appropriate tone
55
- - **MUST NOT** use copyrighted material in prompts
56
-
57
- ### 2. Configuration
58
- - **MUST** provide valid `userId` for tracking
59
- - **MUST** specify `scriptType` (video, podcast, social, presentation)
60
- - **MUST** specify `tone` (casual, professional, humorous, dramatic)
61
- - **MUST** implement `onError` callback
62
- - **MUST** handle script display and export
63
-
64
- ### 3. State Management
65
- - **MUST** check `isReady` before enabling generate button
66
- - **MUST** validate topic and duration before generation
67
- - **MUST** handle `isProcessing` state to prevent duplicate requests
68
- - **MUST** display `error` state with clear messages
69
- - **MUST** implement proper cleanup on unmount
70
-
71
- ### 4. Performance
72
- - **MUST** implement progress indicators during generation
73
- - **MUST** cache generated scripts locally
74
- - **MUST** allow users to cancel long generations
75
- - **MUST** handle long scripts efficiently
76
- - **MUST NOT** generate multiple scripts simultaneously
77
-
78
- ### 5. Content Quality
79
- - **MUST** provide editable script output
80
- - **MUST** support visual cues (for video scripts)
81
- - **MUST** handle various script formats
82
- - **MUST** offer regeneration with different settings
83
- - **MUST** implement copy/export functionality
84
-
85
- ---
86
-
87
- ## 🚫 Prohibitions (MUST AVOID)
88
-
89
- ### Strictly Forbidden
90
-
91
- ❌ **NEVER** do the following:
92
-
93
- 1. **No Empty Topics**
94
- - Always validate topic is provided
95
- - Never call generate() without description
96
- - Guide users with example topics
97
-
98
- 2. **No Auto-Generation**
99
- - Never start generation without user action
100
- - Always require explicit "Generate" button press
101
- - Show preview before processing
102
-
103
- 3. **No Hardcoded Credentials**
104
- - Never store API keys in component files
105
- - Use environment variables or secure storage
106
-
107
- 4. **No Unhandled Errors**
108
- - Never ignore generation failures
109
- - Always explain what went wrong
110
- - Provide retry or alternative options
111
-
112
- 5. **No Memory Leaks**
113
- - Never store multiple scripts unnecessarily
114
- - Clean up old scripts
115
- - Implement proper cleanup
116
-
117
- 6. **No Blocked UI**
118
- - Never block main thread with processing
119
- - Always show progress indicator
120
- - Allow cancellation
121
-
122
- 7. **No Copyright Infringement**
123
- - Never generate copyrighted content
124
- - Never use trademarked material without permission
125
- - Implement content moderation
126
-
127
- ---
128
-
129
- ## 🤖 AI Agent Directions
130
-
131
- ### For AI Code Generation Tools
132
-
133
- When using this feature with AI code generation tools, follow these guidelines:
134
-
135
- #### Prompt Template for AI Agents
136
-
137
- ```
138
- You are implementing a script generator feature using @umituz/react-native-ai-generation-content.
139
-
140
- REQUIREMENTS:
141
- 1. Import from: @umituz/react-native-ai-generation-content
142
- 2. Use the useScriptGeneratorFeature hook
143
- 3. Select script type (video, podcast, social, presentation)
144
- 4. Select tone (casual, professional, humorous, dramatic)
145
- 5. Implement topic/description input
146
- 6. Set duration target
147
- 7. Configure options (visual cues, production notes)
148
- 8. Validate input before generation
149
- 9. Display editable script output
150
- 10. Handle long processing times with progress
151
- 11. Implement proper error handling
152
- 12. Implement cleanup on unmount
153
-
154
- CRITICAL RULES:
155
- - MUST validate topic and duration before calling generate()
156
- - MUST display script in editable format
157
- - MUST handle script type selection
158
- - MUST handle tone selection
159
- - MUST implement debouncing (300ms)
160
- - MUST allow regeneration with different settings
161
- - MUST implement copy/export functionality
162
-
163
- CONFIGURATION:
164
- - Provide valid userId (string)
165
- - Set scriptType: 'video' | 'podcast' | 'social' | 'presentation'
166
- - Set tone: 'casual' | 'professional' | 'humorous' | 'dramatic'
167
- - Set duration: number (target duration in seconds)
168
- - Set includeVisuals?: boolean (include visual cues, default: true for video)
169
- - Set includeNotes?: boolean (include production notes, default: false)
170
- - Configure callbacks: onProcessingStart, onProcessingComplete, onError
171
-
172
- SCRIPT TYPES:
173
- - video: Video scripts with visual cues and scene descriptions
174
- - podcast: Conversational podcast scripts
175
- - social: Short-form social media content (TikTok, Reels, etc.)
176
- - presentation: Professional presentation scripts
177
-
178
- TONES:
179
- - casual: Conversational and friendly tone
180
- - professional: Formal and business-appropriate
181
- - humorous: Funny and entertaining
182
- - dramatic: Emotional and engaging
183
-
184
- OPTIONS:
185
- - includeVisuals: Include visual cues for video (default: true)
186
- - includeNotes: Include production notes (default: false)
187
- - language: Script language (default: 'en')
188
-
189
- STRICTLY FORBIDDEN:
190
- - No empty topic validation
191
- - No auto-generation without user action
192
- - No hardcoded API keys
193
- - No unhandled errors
194
- - No memory leaks
195
- - No blocking UI
196
- - No copyright infringement
197
-
198
- QUALITY CHECKLIST:
199
- - [ ] Topic/description input implemented
200
- - [ ] Script type selector added
201
- - [ ] Tone selector added
202
- - [ ] Duration input included
203
- - [ ] Validation before generate()
204
- - [ ] Editable script display
205
- - [ ] Visual cues display (for video)
206
- - [ ] Progress indicator during processing
207
- - [ ] Error display with retry option
208
- - [ ] Copy/export functionality
209
- - [ ] Regeneration with different settings
210
- ```
211
-
212
- #### AI Implementation Checklist
213
-
214
- Use this checklist when generating code:
215
-
216
- - [ ] Feature imported from correct path
217
- - [ ] Topic input implemented
218
- - [ ] Script type selector added
219
- - [ ] Tone selector added
220
- - [ ] Duration input implemented
221
- - [ ] Options toggles (visual cues, notes)
222
- - [ ] Validation before generate()
223
- - [ ] Editable script display
224
- - [ ] Progress indicator during processing
225
- - [ ] Error display with user-friendly message
226
- - [ ] Copy to clipboard button
227
- - [ ] Export functionality
228
- - [ ] Regeneration option
229
- - [ ] Cleanup on unmount
230
-
231
- ---
232
-
233
- ## 🛠️ Configuration Strategy
234
-
235
- ### Essential Configuration
236
-
237
- ```typescript
238
- // Required fields
239
- {
240
- userId: string
241
- scriptType: 'video' | 'podcast' | 'social' | 'presentation'
242
- tone: 'casual' | 'professional' | 'humorous' | 'dramatic'
243
- prompt: string
244
- duration: number
245
- }
246
-
247
- // Optional callbacks
248
- {
249
- includeVisuals?: boolean
250
- includeNotes?: boolean
251
- onProcessingStart?: () => void
252
- onProcessingComplete?: (result) => void
253
- onError?: (error: string) => void
254
- }
255
- ```
256
-
257
- ### Recommended Settings
258
-
259
- 1. **Script Types**
260
- - Video: YouTube, tutorials, vlogs (with visual cues)
261
- - Podcast: Conversational, interviews, storytelling
262
- - Social: TikTok, Reels, Shorts (short-form)
263
- - Presentation: Business, educational, formal
264
-
265
- 2. **Tones**
266
- - Casual: Conversational content (vlogs, lifestyle)
267
- - Professional: Business and educational content
268
- - Humorous: Entertainment and comedy
269
- - Dramatic: Storytelling and narratives
270
-
271
- 3. **Duration Targets**
272
- - Social: 15-60 seconds
273
- - Short video: 60-180 seconds (1-3 minutes)
274
- - Medium video: 180-600 seconds (3-10 minutes)
275
- - Long video: 600-3600 seconds (10-60 minutes)
276
- - Podcast: 1800-3600 seconds (30-60 minutes)
277
-
278
- ---
279
-
280
- ## 📊 State Management
281
-
282
- ### Feature States
283
-
284
- **isReady**: boolean
285
- - Topic provided and duration set
286
- - Check before enabling generate button
287
-
288
- **isProcessing**: boolean
289
- - Script generation in progress
290
- - Show loading/progress indicator
291
- - Disable generate button
292
-
293
- **progress**: number (0-100)
294
- - Generation progress percentage
295
- - Update progress bar
296
-
297
- **error**: string | null
298
- - Error message if generation failed
299
- - Display to user with clear message
300
-
301
- **result**: {
302
- script: string
303
- scriptType?: string
304
- tone?: string
305
- duration?: number
306
- includeVisuals?: boolean
307
- includeNotes?: boolean
308
- metadata?: any
309
- }
310
-
311
- ---
312
-
313
- ## 🎨 Best Practices
314
-
315
- ### Topic Writing
316
-
317
- 1. **Be Specific**
318
- - Good: "How to cook pasta from scratch, including ingredients and step-by-step instructions"
319
- - Bad: "Pasta"
320
-
321
- 2. **Include Key Points**
322
- - Mention important topics to cover
323
- - Specify target audience
324
- - Include format preferences
325
-
326
- 3. **Set Realistic Duration**
327
- - Social: 60 seconds maximum
328
- - YouTube: 5-10 minutes typical
329
- - Podcast: 30-60 minutes
330
-
331
- ### Script Type Selection
332
-
333
- 1. **Video**
334
- - Use for: YouTube, tutorials, vlogs
335
- - Features: Visual cues, scene descriptions
336
- - Best: High-quality, structured content
337
-
338
- 2. **Podcast**
339
- - Use for: Audio content, interviews, discussions
340
- - Features: Conversational format
341
- - Best: Engaging, natural dialogue
342
-
343
- 3. **Social**
344
- - Use for: TikTok, Reels, Shorts
345
- - Features: Short-form, punchy
346
- - Best: Quick, engaging content
347
-
348
- 4. **Presentation**
349
- - Use for: Business, educational, formal
350
- - Features: Structured, professional
351
- - Best: Clear, informative content
352
-
353
- ---
354
-
355
- ## 🐛 Common Pitfalls
356
-
357
- ### Quality Issues
358
-
359
- ❌ **Problem**: Script doesn't match expectations
360
- ✅ **Solution**: Be more specific in topic, try different tone
361
-
362
- ### Duration Issues
363
-
364
- ❌ **Problem**: Script too long/short
365
- ✅ **Solution**: Adjust duration target, be more specific about scope
366
-
367
- ### Format Issues
368
-
369
- ❌ **Problem**: Wrong format for platform
370
- ✅ **Solution**: Match script type to use case
371
-
372
- ### Editing Issues
373
-
374
- ❌ **Problem**: Can't edit generated script
375
- ✅ **Solution**: Always provide editable text area
376
-
377
- ---
378
-
379
- ## 📦 Related Components
380
-
381
- Use these components from the library:
382
-
383
- - **TextInput**: For topic/description
384
- - **ScriptTypeSelector**: Choose script type
385
- - **ToneSelector**: Choose tone
386
- - **DurationInput**: Set target duration
387
- - **OptionsToggles**: Enable/disable visual cues, notes
388
- - **ScriptDisplay**: Editable script display
389
- - **ProgressBar**: Progress display
390
-
391
- Located at: `src/presentation/components/`
392
-
393
- ---
394
-
395
- ## 🔄 Migration Strategy
396
-
397
- If migrating from previous implementation:
398
-
399
- 1. **Update imports** to new path
400
- 2. **Add script type selector**
401
- 3. **Add tone selector**
402
- 4. **Implement duration input**
403
- 5. **Add visual cues options**
404
- 6. **Update state handling** for new structure
405
- 7. **Implement export functionality**
406
- 8. **Test all script types**
407
-
408
- ---
409
-
410
- ## 📚 Additional Resources
411
-
412
- - Main documentation: `/docs/`
413
- - API reference: `/docs/api/`
414
- - Examples: `/docs/examples/basic/script-generator/`
415
- - Architecture: `/ARCHITECTURE.md`
416
-
417
- ---
418
-
419
- **Last Updated**: 2025-01-08
420
- **Version**: 2.0.0 (Strategy-based Documentation)
421
-
422
- ---
423
-
424
- ## 📝 Changelog
425
-
426
- ### v2.0.0 - 2025-01-08
427
- - **BREAKING**: Documentation format changed to strategy-based
428
- - Removed extensive code examples
429
- - Added rules, prohibitions, and AI agent directions
430
- - Focus on best practices and implementation guidance
431
-
432
- ### v1.0.0 - Initial Release
433
- - Initial feature documentation
@@ -1,10 +0,0 @@
1
- import { VideoTypeOption } from "../types/script.types";
2
-
3
- export const DEFAULT_VIDEO_TYPES: readonly VideoTypeOption[] = [
4
- { id: "product", name: "Product Demo", emoji: "📦" },
5
- { id: "tutorial", name: "Tutorial", emoji: "🎓" },
6
- { id: "promo", name: "Promo/Ad", emoji: "📣" },
7
- { id: "story", name: "Storytelling", emoji: "📖" },
8
- { id: "explainer", name: "Explainer", emoji: "💡" },
9
- { id: "vlog", name: "Vlog", emoji: "🎥" },
10
- ];
@@ -1,30 +0,0 @@
1
- /**
2
- * AI Script Generator Types
3
- */
4
-
5
- export interface VideoTypeOption {
6
- readonly id: string;
7
- readonly name: string;
8
- readonly emoji: string;
9
- }
10
-
11
- export interface ScriptSection {
12
- readonly id: string;
13
- readonly type: "hook" | "intro" | "main" | "transition" | "cta";
14
- readonly title: string;
15
- readonly content: string;
16
- readonly duration: number; // in seconds
17
- readonly notes?: string;
18
- }
19
-
20
- export interface ScriptGenerationRequest {
21
- readonly topic: string;
22
- readonly videoType: string;
23
- readonly duration: number;
24
- readonly targetAudience?: string;
25
- readonly keyPoints?: string;
26
- }
27
-
28
- export interface ScriptGenerationResponse {
29
- readonly script: readonly ScriptSection[];
30
- }
@@ -1,5 +0,0 @@
1
- export * from "./domain/types/script.types";
2
- export * from "./domain/constants";
3
- export * from "./presentation/components";
4
- export * from "./presentation/hooks";
5
- export * from "./infrastructure/services/ScriptGenerationService";