@adminide-stack/yantra-mobile 12.0.69-alpha.9 → 12.0.69

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 (522) hide show
  1. package/lib/components/GatewayConnector/GatewayConnector.js +2 -2
  2. package/lib/components/GatewayConnector/GatewayConnector.js.map +1 -1
  3. package/lib/components/KeyboardComposerDock.js +8 -1
  4. package/lib/components/KeyboardComposerDock.js.map +1 -1
  5. package/lib/components/NavigationHeader/NavigationHeader.js +2 -2
  6. package/lib/components/NavigationHeader/NavigationHeader.js.map +1 -1
  7. package/lib/config/env-config.js +4 -0
  8. package/lib/config/env-config.js.map +1 -1
  9. package/lib/contexts/ChatLiveStreamContext.js +4 -1
  10. package/lib/contexts/ChatLiveStreamContext.js.map +1 -1
  11. package/lib/features/agent-chat/NativeAgentChat.js +2 -0
  12. package/lib/features/agent-chat/NativeAgentChat.js.map +1 -1
  13. package/lib/features/apps/AppsCatalog.js +2 -2
  14. package/lib/features/apps/AppsCatalog.js.map +1 -1
  15. package/lib/features/audio-input/MicErrorBoundary.js +2 -2
  16. package/lib/features/audio-input/MicErrorBoundary.js.map +1 -1
  17. package/lib/features/canvas/AudioEditorExperience.js +308 -0
  18. package/lib/features/canvas/AudioEditorExperience.js.map +1 -0
  19. package/lib/features/canvas/CanvasAgentChatPane.js +310 -0
  20. package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -0
  21. package/lib/features/canvas/CanvasBoardsGrid.js +414 -0
  22. package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -0
  23. package/lib/features/canvas/CanvasChatResultCard.js +113 -0
  24. package/lib/features/canvas/CanvasChatResultCard.js.map +1 -0
  25. package/lib/features/canvas/CanvasEditToolsPanel.js +179 -0
  26. package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -0
  27. package/lib/features/canvas/CanvasExperience.js +859 -0
  28. package/lib/features/canvas/CanvasExperience.js.map +1 -0
  29. package/lib/features/canvas/CanvasGeneratePanel.js +514 -0
  30. package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -0
  31. package/lib/features/canvas/CanvasLibrarySheet.js +355 -0
  32. package/lib/features/canvas/CanvasLibrarySheet.js.map +1 -0
  33. package/lib/features/canvas/CanvasLooksPanel.js +184 -0
  34. package/lib/features/canvas/CanvasLooksPanel.js.map +1 -0
  35. package/lib/features/canvas/CanvasTasksPanel.js +138 -0
  36. package/lib/features/canvas/CanvasTasksPanel.js.map +1 -0
  37. package/lib/features/canvas/CanvasTemplatesPanel.js +226 -0
  38. package/lib/features/canvas/CanvasTemplatesPanel.js.map +1 -0
  39. package/lib/features/canvas/CanvasToolDock.js +423 -0
  40. package/lib/features/canvas/CanvasToolDock.js.map +1 -0
  41. package/lib/features/canvas/FrameExtractorExperience.js +242 -0
  42. package/lib/features/canvas/FrameExtractorExperience.js.map +1 -0
  43. package/lib/features/canvas/ImageEditorExperience.js +491 -0
  44. package/lib/features/canvas/ImageEditorExperience.js.map +1 -0
  45. package/lib/features/canvas/InfluencerStudioExperience.js +288 -0
  46. package/lib/features/canvas/InfluencerStudioExperience.js.map +1 -0
  47. package/lib/features/canvas/MoodboardExperience.js +205 -0
  48. package/lib/features/canvas/MoodboardExperience.js.map +1 -0
  49. package/lib/features/canvas/NativeCanvasViewer.js +929 -0
  50. package/lib/features/canvas/NativeCanvasViewer.js.map +1 -0
  51. package/lib/features/canvas/PromoContextFields.js +150 -0
  52. package/lib/features/canvas/PromoContextFields.js.map +1 -0
  53. package/lib/features/canvas/SetStudioExperience.js +323 -0
  54. package/lib/features/canvas/SetStudioExperience.js.map +1 -0
  55. package/lib/features/canvas/VideoClipsExperience.js +175 -0
  56. package/lib/features/canvas/VideoClipsExperience.js.map +1 -0
  57. package/lib/features/canvas/VideoEditExperience.js +824 -0
  58. package/lib/features/canvas/VideoEditExperience.js.map +1 -0
  59. package/lib/features/canvas/VideoEditorExperience.js +3050 -0
  60. package/lib/features/canvas/VideoEditorExperience.js.map +1 -0
  61. package/lib/features/canvas/VideoGeneratorExperience.js +415 -0
  62. package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -0
  63. package/lib/features/canvas/aiEdit.js +53 -0
  64. package/lib/features/canvas/aiEdit.js.map +1 -0
  65. package/lib/features/canvas/canvasAgentChat.js +76 -0
  66. package/lib/features/canvas/canvasAgentChat.js.map +1 -0
  67. package/lib/features/canvas/canvasBoardsCatalog.js +59 -0
  68. package/lib/features/canvas/canvasBoardsCatalog.js.map +1 -0
  69. package/lib/features/canvas/canvasBoardsSnapshot.js +14 -1
  70. package/lib/features/canvas/canvasBoardsSnapshot.js.map +1 -1
  71. package/lib/features/canvas/canvasChatDisplay.js +38 -0
  72. package/lib/features/canvas/canvasChatDisplay.js.map +1 -0
  73. package/lib/features/canvas/canvasChatTemplates.js +219 -0
  74. package/lib/features/canvas/canvasChatTemplates.js.map +1 -0
  75. package/lib/features/canvas/canvasCore.js +138 -1
  76. package/lib/features/canvas/canvasCore.js.map +1 -1
  77. package/lib/features/canvas/canvasEditOps.js +224 -0
  78. package/lib/features/canvas/canvasEditOps.js.map +1 -0
  79. package/lib/features/canvas/canvasTasks.js +187 -0
  80. package/lib/features/canvas/canvasTasks.js.map +1 -0
  81. package/lib/features/canvas/designPromptTemplates.js +3084 -0
  82. package/lib/features/canvas/designPromptTemplates.js.map +1 -0
  83. package/lib/features/canvas/editTools.js +54 -0
  84. package/lib/features/canvas/editTools.js.map +1 -0
  85. package/lib/features/canvas/extendVideo.js +5 -0
  86. package/lib/features/canvas/extendVideo.js.map +1 -0
  87. package/lib/features/canvas/frameExtract.js +33 -0
  88. package/lib/features/canvas/frameExtract.js.map +1 -0
  89. package/lib/features/canvas/generationModels.js +201 -0
  90. package/lib/features/canvas/generationModels.js.map +1 -0
  91. package/lib/features/canvas/influencer/influencerPipeline.js +170 -0
  92. package/lib/features/canvas/influencer/influencerPipeline.js.map +1 -0
  93. package/lib/features/canvas/influencer/productReel.js +72 -0
  94. package/lib/features/canvas/influencer/productReel.js.map +1 -0
  95. package/lib/features/canvas/influencer/reelPlan.js +159 -0
  96. package/lib/features/canvas/influencer/reelPlan.js.map +1 -0
  97. package/lib/features/canvas/moodboardCore.js +13 -0
  98. package/lib/features/canvas/moodboardCore.js.map +1 -0
  99. package/lib/features/canvas/promoProjectImport.js +99 -0
  100. package/lib/features/canvas/promoProjectImport.js.map +1 -0
  101. package/lib/features/canvas/promoVideo.js +312 -0
  102. package/lib/features/canvas/promoVideo.js.map +1 -0
  103. package/lib/features/canvas/recorder/CameraRecorderExperience.js +109 -0
  104. package/lib/features/canvas/recorder/CameraRecorderExperience.js.map +1 -0
  105. package/lib/features/canvas/sessionIdentity.js +28 -1
  106. package/lib/features/canvas/sessionIdentity.js.map +1 -1
  107. package/lib/features/canvas/set/SetViewportWebView.js +133 -0
  108. package/lib/features/canvas/set/SetViewportWebView.js.map +1 -0
  109. package/lib/features/canvas/set/cameraPath.js +194 -0
  110. package/lib/features/canvas/set/cameraPath.js.map +1 -0
  111. package/lib/features/canvas/set/setProject.js +24 -0
  112. package/lib/features/canvas/set/setProject.js.map +1 -0
  113. package/lib/features/canvas/storageLibrary.js +184 -0
  114. package/lib/features/canvas/storageLibrary.js.map +1 -0
  115. package/lib/features/canvas/studioCatalog.js +129 -0
  116. package/lib/features/canvas/studioCatalog.js.map +1 -0
  117. package/lib/features/canvas/studioLooks.js +189 -0
  118. package/lib/features/canvas/studioLooks.js.map +1 -0
  119. package/lib/features/canvas/surfaceIndex.js +63 -1
  120. package/lib/features/canvas/surfaceIndex.js.map +1 -1
  121. package/lib/features/canvas/templateImport/invideoNative.js +221 -0
  122. package/lib/features/canvas/templateImport/invideoNative.js.map +1 -0
  123. package/lib/features/canvas/templateImport/loadTemplate.js +43 -0
  124. package/lib/features/canvas/templateImport/loadTemplate.js.map +1 -0
  125. package/lib/features/canvas/templateImport/renderConfig.js +93 -0
  126. package/lib/features/canvas/templateImport/renderConfig.js.map +1 -0
  127. package/lib/features/canvas/useStudioCatalogTemplates.js +134 -0
  128. package/lib/features/canvas/useStudioCatalogTemplates.js.map +1 -0
  129. package/lib/features/canvas/video3d.js +109 -0
  130. package/lib/features/canvas/video3d.js.map +1 -0
  131. package/lib/features/canvas/videoClips.js +42 -0
  132. package/lib/features/canvas/videoClips.js.map +1 -0
  133. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +120 -0
  134. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -0
  135. package/lib/features/canvas/videoEditor/agent/agentLoop.js +69 -0
  136. package/lib/features/canvas/videoEditor/agent/agentLoop.js.map +1 -0
  137. package/lib/features/canvas/videoEditor/agent/brainClient.js +45 -0
  138. package/lib/features/canvas/videoEditor/agent/brainClient.js.map +1 -0
  139. package/lib/features/canvas/videoEditor/agent/cutTools.js +129 -0
  140. package/lib/features/canvas/videoEditor/agent/cutTools.js.map +1 -0
  141. package/lib/features/canvas/videoEditor/editorModel.js +346 -0
  142. package/lib/features/canvas/videoEditor/editorModel.js.map +1 -0
  143. package/lib/features/canvas/videoEditor/exportRenderer.js +214 -0
  144. package/lib/features/canvas/videoEditor/exportRenderer.js.map +1 -0
  145. package/lib/features/canvas/videoEditor/filters.js +41 -0
  146. package/lib/features/canvas/videoEditor/filters.js.map +1 -0
  147. package/lib/features/canvas/videoEditor/mediaActions.js +57 -0
  148. package/lib/features/canvas/videoEditor/mediaActions.js.map +1 -0
  149. package/lib/features/canvas/videoEditor/remoteMediaClient.js +129 -0
  150. package/lib/features/canvas/videoEditor/remoteMediaClient.js.map +1 -0
  151. package/lib/features/canvas/videoEditor/solidColorPng.js +115 -0
  152. package/lib/features/canvas/videoEditor/solidColorPng.js.map +1 -0
  153. package/lib/features/canvas/videoEditor/videoEditOps.js +191 -0
  154. package/lib/features/canvas/videoEditor/videoEditOps.js.map +1 -0
  155. package/lib/features/canvas/videoEditor/videoProjectsStore.js +82 -0
  156. package/lib/features/canvas/videoEditor/videoProjectsStore.js.map +1 -0
  157. package/lib/features/canvas/videoRenderer.js +8 -0
  158. package/lib/features/canvas/videoRenderer.js.map +1 -0
  159. package/lib/features/canvas/withRemoteSafeArea.js +2 -2
  160. package/lib/features/canvas/withRemoteSafeArea.js.map +1 -1
  161. package/lib/features/characters/characterStudioProps.js +14 -0
  162. package/lib/features/characters/characterStudioProps.js.map +1 -0
  163. package/lib/features/chat/ChatCodeBlock.js +7 -3
  164. package/lib/features/chat/ChatCodeBlock.js.map +1 -1
  165. package/lib/features/chat/ChatTranscript.js +7 -3
  166. package/lib/features/chat/ChatTranscript.js.map +1 -1
  167. package/lib/features/chat/ChatWidgetCard.js +13 -0
  168. package/lib/features/chat/ChatWidgetCard.js.map +1 -0
  169. package/lib/features/chat/ConnectorConnectCard.js +164 -0
  170. package/lib/features/chat/ConnectorConnectCard.js.map +1 -0
  171. package/lib/features/chat/ConnectorConnectPrompt.js +254 -0
  172. package/lib/features/chat/ConnectorConnectPrompt.js.map +1 -0
  173. package/lib/features/chat/MessageActionBar.js.map +1 -1
  174. package/lib/features/chat/QueuedFollowUps.js +71 -0
  175. package/lib/features/chat/QueuedFollowUps.js.map +1 -0
  176. package/lib/features/chat/chatWidgets.js +37 -0
  177. package/lib/features/chat/chatWidgets.js.map +1 -0
  178. package/lib/features/chat/connectorConnect.js +179 -0
  179. package/lib/features/chat/connectorConnect.js.map +1 -0
  180. package/lib/features/chat/connectorConnectHandbacks.js +55 -0
  181. package/lib/features/chat/connectorConnectHandbacks.js.map +1 -0
  182. package/lib/features/design/DesignEditorExperience.js +643 -0
  183. package/lib/features/design/DesignEditorExperience.js.map +1 -0
  184. package/lib/features/design/DesignExperience.js +444 -0
  185. package/lib/features/design/DesignExperience.js.map +1 -0
  186. package/lib/features/design/designCore.js +298 -0
  187. package/lib/features/design/designCore.js.map +1 -0
  188. package/lib/features/design/designIndex.js +150 -0
  189. package/lib/features/design/designIndex.js.map +1 -0
  190. package/lib/features/design/exportDesign.js +133 -0
  191. package/lib/features/design/exportDesign.js.map +1 -0
  192. package/lib/features/job-search/ApplicationsPanel.js +907 -0
  193. package/lib/features/job-search/ApplicationsPanel.js.map +1 -0
  194. package/lib/features/job-search/ContactsPanel.js +627 -0
  195. package/lib/features/job-search/ContactsPanel.js.map +1 -0
  196. package/lib/features/job-search/InsightsPanel.js +299 -0
  197. package/lib/features/job-search/InsightsPanel.js.map +1 -0
  198. package/lib/features/job-search/InterviewPanel.js +637 -0
  199. package/lib/features/job-search/InterviewPanel.js.map +1 -0
  200. package/lib/features/job-search/JdPastePrompt.js +130 -0
  201. package/lib/features/job-search/JdPastePrompt.js.map +1 -0
  202. package/lib/features/job-search/JobCard.js +199 -0
  203. package/lib/features/job-search/JobCard.js.map +1 -0
  204. package/lib/features/job-search/JobDetailSheet.js +255 -0
  205. package/lib/features/job-search/JobDetailSheet.js.map +1 -0
  206. package/lib/features/job-search/JobSearchAgentChatPane.js +377 -0
  207. package/lib/features/job-search/JobSearchAgentChatPane.js.map +1 -0
  208. package/lib/features/job-search/JobSearchExperience.js +1324 -0
  209. package/lib/features/job-search/JobSearchExperience.js.map +1 -0
  210. package/lib/features/job-search/JobSearchLocationField.js +231 -0
  211. package/lib/features/job-search/JobSearchLocationField.js.map +1 -0
  212. package/lib/features/job-search/ProfilePanel.js +679 -0
  213. package/lib/features/job-search/ProfilePanel.js.map +1 -0
  214. package/lib/features/job-search/RepliesPanel.js +344 -0
  215. package/lib/features/job-search/RepliesPanel.js.map +1 -0
  216. package/lib/features/job-search/SavedPanel.js +297 -0
  217. package/lib/features/job-search/SavedPanel.js.map +1 -0
  218. package/lib/features/job-search/chat/widgetContent.js +29 -0
  219. package/lib/features/job-search/chat/widgetContent.js.map +1 -0
  220. package/lib/features/job-search/cvText.js +91 -0
  221. package/lib/features/job-search/cvText.js.map +1 -0
  222. package/lib/features/job-search/jobAgentSwipe.js +7 -0
  223. package/lib/features/job-search/jobAgentSwipe.js.map +1 -0
  224. package/lib/features/job-search/jobSearchClient.js +184 -0
  225. package/lib/features/job-search/jobSearchClient.js.map +1 -0
  226. package/lib/features/job-search/jobSearchExec.js +14 -0
  227. package/lib/features/job-search/jobSearchExec.js.map +1 -0
  228. package/lib/features/job-search/jobSearchRuntime.js +50 -0
  229. package/lib/features/job-search/jobSearchRuntime.js.map +1 -0
  230. package/lib/features/job-search/jobSearchTheme.js +44 -0
  231. package/lib/features/job-search/jobSearchTheme.js.map +1 -0
  232. package/lib/features/job-search/savedJobs.js +85 -0
  233. package/lib/features/job-search/savedJobs.js.map +1 -0
  234. package/lib/features/job-search/searchHistory.js +117 -0
  235. package/lib/features/job-search/searchHistory.js.map +1 -0
  236. package/lib/features/job-search/types.js +36 -0
  237. package/lib/features/job-search/types.js.map +1 -0
  238. package/lib/features/job-search/useJobSearchSession.js +558 -0
  239. package/lib/features/job-search/useJobSearchSession.js.map +1 -0
  240. package/lib/features/messaging/ChatComponents.js +529 -0
  241. package/lib/features/messaging/ChatComponents.js.map +1 -0
  242. package/lib/features/messaging/ChatInviteDeepLink.js +116 -0
  243. package/lib/features/messaging/ChatInviteDeepLink.js.map +1 -0
  244. package/lib/features/messaging/ContactsScreen.js +288 -0
  245. package/lib/features/messaging/ContactsScreen.js.map +1 -0
  246. package/lib/features/messaging/ConversationListScreen.js +147 -0
  247. package/lib/features/messaging/ConversationListScreen.js.map +1 -0
  248. package/lib/features/messaging/MessageActions.js +290 -0
  249. package/lib/features/messaging/MessageActions.js.map +1 -0
  250. package/lib/features/messaging/NativeChatExperience.js +189 -0
  251. package/lib/features/messaging/NativeChatExperience.js.map +1 -0
  252. package/lib/features/messaging/RegistrationScreen.js +11 -14
  253. package/lib/features/messaging/RegistrationScreen.js.map +1 -1
  254. package/lib/features/messaging/ThreadScreen.js +215 -0
  255. package/lib/features/messaging/ThreadScreen.js.map +1 -0
  256. package/lib/features/messaging/chatInviteLink.js +52 -0
  257. package/lib/features/messaging/chatInviteLink.js.map +1 -0
  258. package/lib/features/messaging/chatModel.js +278 -0
  259. package/lib/features/messaging/chatModel.js.map +1 -0
  260. package/lib/features/messaging/chatOperations.js +106 -1
  261. package/lib/features/messaging/chatOperations.js.map +1 -1
  262. package/lib/features/messaging/emojiCatalog.js +60 -0
  263. package/lib/features/messaging/emojiCatalog.js.map +1 -0
  264. package/lib/features/messaging/emojiKeywords.js +1592 -0
  265. package/lib/features/messaging/emojiKeywords.js.map +1 -0
  266. package/lib/features/messaging/nativeChatChannelQuery.js +27 -0
  267. package/lib/features/messaging/nativeChatChannelQuery.js.map +1 -0
  268. package/lib/features/messaging/phoneNumbers.js +52 -1
  269. package/lib/features/messaging/phoneNumbers.js.map +1 -1
  270. package/lib/features/messaging/sha256.js +68 -0
  271. package/lib/features/messaging/sha256.js.map +1 -0
  272. package/lib/features/messaging/useChatData.js +421 -0
  273. package/lib/features/messaging/useChatData.js.map +1 -0
  274. package/lib/features/messaging/useContactMatches.js +191 -0
  275. package/lib/features/messaging/useContactMatches.js.map +1 -0
  276. package/lib/features/messaging/usePhoneVerification.js +12 -12
  277. package/lib/features/messaging/usePhoneVerification.js.map +1 -1
  278. package/lib/features/messaging/yantraChatOrg.js +8 -3
  279. package/lib/features/messaging/yantraChatOrg.js.map +1 -1
  280. package/lib/features/resume/AnnotateModal.js +100 -0
  281. package/lib/features/resume/AnnotateModal.js.map +1 -0
  282. package/lib/features/resume/AnnotationBar.js +69 -0
  283. package/lib/features/resume/AnnotationBar.js.map +1 -0
  284. package/lib/features/resume/ExportSheet.js +105 -0
  285. package/lib/features/resume/ExportSheet.js.map +1 -0
  286. package/lib/features/resume/ResumeAgentChatPane.js +95 -0
  287. package/lib/features/resume/ResumeAgentChatPane.js.map +1 -0
  288. package/lib/features/resume/ResumeEditor.js +676 -0
  289. package/lib/features/resume/ResumeEditor.js.map +1 -0
  290. package/lib/features/resume/ResumeExperience.js +235 -0
  291. package/lib/features/resume/ResumeExperience.js.map +1 -0
  292. package/lib/features/resume/ResumeListPanel.js +262 -0
  293. package/lib/features/resume/ResumeListPanel.js.map +1 -0
  294. package/lib/features/resume/ResumeToolbar.js +236 -0
  295. package/lib/features/resume/ResumeToolbar.js.map +1 -0
  296. package/lib/features/resume/annotations.js +17 -0
  297. package/lib/features/resume/annotations.js.map +1 -0
  298. package/lib/features/resume/documentCss.js +52 -0
  299. package/lib/features/resume/documentCss.js.map +1 -0
  300. package/lib/features/resume/draft.js +89 -0
  301. package/lib/features/resume/draft.js.map +1 -0
  302. package/lib/features/resume/exportResume.js +43 -0
  303. package/lib/features/resume/exportResume.js.map +1 -0
  304. package/lib/features/resume/pickResumePhoto.js +22 -0
  305. package/lib/features/resume/pickResumePhoto.js.map +1 -0
  306. package/lib/features/resume/renderResume.js +121 -0
  307. package/lib/features/resume/renderResume.js.map +1 -0
  308. package/lib/features/resume/resumeClient.js +69 -0
  309. package/lib/features/resume/resumeClient.js.map +1 -0
  310. package/lib/features/resume/resumeExec.js +14 -0
  311. package/lib/features/resume/resumeExec.js.map +1 -0
  312. package/lib/features/resume/resumeIndex.js +244 -0
  313. package/lib/features/resume/resumeIndex.js.map +1 -0
  314. package/lib/features/resume/resumeRuntime.js +50 -0
  315. package/lib/features/resume/resumeRuntime.js.map +1 -0
  316. package/lib/features/resume/resumeTheme.js +34 -0
  317. package/lib/features/resume/resumeTheme.js.map +1 -0
  318. package/lib/features/resume/resumeToolbox.js +49 -0
  319. package/lib/features/resume/resumeToolbox.js.map +1 -0
  320. package/lib/features/resume/templates.js +90 -0
  321. package/lib/features/resume/templates.js.map +1 -0
  322. package/lib/features/resume/types.js +10 -0
  323. package/lib/features/resume/types.js.map +1 -0
  324. package/lib/features/resume/useResumeSession.js +183 -0
  325. package/lib/features/resume/useResumeSession.js.map +1 -0
  326. package/lib/features/shopping/DealsPanel.js +254 -0
  327. package/lib/features/shopping/DealsPanel.js.map +1 -0
  328. package/lib/features/shopping/HistoryPanel.js +147 -0
  329. package/lib/features/shopping/HistoryPanel.js.map +1 -0
  330. package/lib/features/shopping/OrdersPanel.js +157 -0
  331. package/lib/features/shopping/OrdersPanel.js.map +1 -0
  332. package/lib/features/shopping/ProductCard.js +326 -0
  333. package/lib/features/shopping/ProductCard.js.map +1 -0
  334. package/lib/features/shopping/ProductDetailSheet.js +313 -0
  335. package/lib/features/shopping/ProductDetailSheet.js.map +1 -0
  336. package/lib/features/shopping/ProductFilterBar.js +153 -0
  337. package/lib/features/shopping/ProductFilterBar.js.map +1 -0
  338. package/lib/features/shopping/ProductPhoto.js +27 -0
  339. package/lib/features/shopping/ProductPhoto.js.map +1 -0
  340. package/lib/features/shopping/SavedPanel.js +139 -0
  341. package/lib/features/shopping/SavedPanel.js.map +1 -0
  342. package/lib/features/shopping/ShoppingAgentChatPane.js +436 -0
  343. package/lib/features/shopping/ShoppingAgentChatPane.js.map +1 -0
  344. package/lib/features/shopping/ShoppingExperience.js +888 -0
  345. package/lib/features/shopping/ShoppingExperience.js.map +1 -0
  346. package/lib/features/shopping/TrendingSections.js +199 -0
  347. package/lib/features/shopping/TrendingSections.js.map +1 -0
  348. package/lib/features/shopping/WatchlistPanel.js +148 -0
  349. package/lib/features/shopping/WatchlistPanel.js.map +1 -0
  350. package/lib/features/shopping/catalog.js +238 -0
  351. package/lib/features/shopping/catalog.js.map +1 -0
  352. package/lib/features/shopping/chat/ShoppingChatResultCard.js +175 -0
  353. package/lib/features/shopping/chat/ShoppingChatResultCard.js.map +1 -0
  354. package/lib/features/shopping/chat/streamAssistantReply.js +34 -0
  355. package/lib/features/shopping/chat/streamAssistantReply.js.map +1 -0
  356. package/lib/features/shopping/chat/widgetContent.js +233 -0
  357. package/lib/features/shopping/chat/widgetContent.js.map +1 -0
  358. package/lib/features/shopping/hooks/useTrendingProducts.js +162 -0
  359. package/lib/features/shopping/hooks/useTrendingProducts.js.map +1 -0
  360. package/lib/features/shopping/productImage.js +42 -0
  361. package/lib/features/shopping/productImage.js.map +1 -0
  362. package/lib/features/shopping/savedProducts.js +84 -0
  363. package/lib/features/shopping/savedProducts.js.map +1 -0
  364. package/lib/features/shopping/services/catalogActions.js +166 -0
  365. package/lib/features/shopping/services/catalogActions.js.map +1 -0
  366. package/lib/features/shopping/services/parsePriceCheckIntent.js +58 -0
  367. package/lib/features/shopping/services/parsePriceCheckIntent.js.map +1 -0
  368. package/lib/features/shopping/services/parseShoppingIntent.js +67 -0
  369. package/lib/features/shopping/services/parseShoppingIntent.js.map +1 -0
  370. package/lib/features/shopping/services/productAvailability.js +25 -0
  371. package/lib/features/shopping/services/productAvailability.js.map +1 -0
  372. package/lib/features/shopping/services/productFilters.js +72 -0
  373. package/lib/features/shopping/services/productFilters.js.map +1 -0
  374. package/lib/features/shopping/services/retailerUrl.js +75 -0
  375. package/lib/features/shopping/services/retailerUrl.js.map +1 -0
  376. package/lib/features/shopping/services/shoppingChatReply.js +46 -0
  377. package/lib/features/shopping/services/shoppingChatReply.js.map +1 -0
  378. package/lib/features/shopping/services/shoppingProductSearch.js +336 -0
  379. package/lib/features/shopping/services/shoppingProductSearch.js.map +1 -0
  380. package/lib/features/shopping/services/shoppingSearchConnectorClient.js +41 -0
  381. package/lib/features/shopping/services/shoppingSearchConnectorClient.js.map +1 -0
  382. package/lib/features/shopping/shopAgentSwipe.js +7 -0
  383. package/lib/features/shopping/shopAgentSwipe.js.map +1 -0
  384. package/lib/features/shopping/shoppingCart.js +116 -0
  385. package/lib/features/shopping/shoppingCart.js.map +1 -0
  386. package/lib/features/shopping/shoppingExec.js +14 -0
  387. package/lib/features/shopping/shoppingExec.js.map +1 -0
  388. package/lib/features/shopping/shoppingHistoryStore.js +176 -0
  389. package/lib/features/shopping/shoppingHistoryStore.js.map +1 -0
  390. package/lib/features/shopping/shoppingRuntime.js +63 -0
  391. package/lib/features/shopping/shoppingRuntime.js.map +1 -0
  392. package/lib/features/shopping/timeAgo.js +14 -0
  393. package/lib/features/shopping/timeAgo.js.map +1 -0
  394. package/lib/features/shopping/useShoppingSearch.js +262 -0
  395. package/lib/features/shopping/useShoppingSearch.js.map +1 -0
  396. package/lib/features/travel/BookHeaderGlow.js +48 -0
  397. package/lib/features/travel/BookHeaderGlow.js.map +1 -0
  398. package/lib/features/travel/BookingsPanel.js +29 -0
  399. package/lib/features/travel/BookingsPanel.js.map +1 -0
  400. package/lib/features/travel/DiscoverPanel.js +155 -0
  401. package/lib/features/travel/DiscoverPanel.js.map +1 -0
  402. package/lib/features/travel/FlightCompareBar.js +86 -0
  403. package/lib/features/travel/FlightCompareBar.js.map +1 -0
  404. package/lib/features/travel/FlightDealsBoard.js +100 -0
  405. package/lib/features/travel/FlightDealsBoard.js.map +1 -0
  406. package/lib/features/travel/HistoryPanel.js +82 -0
  407. package/lib/features/travel/HistoryPanel.js.map +1 -0
  408. package/lib/features/travel/PopularDestinations.js +144 -0
  409. package/lib/features/travel/PopularDestinations.js.map +1 -0
  410. package/lib/features/travel/SavedPanel.js +27 -0
  411. package/lib/features/travel/SavedPanel.js.map +1 -0
  412. package/lib/features/travel/TravelAgentChatPane.js +303 -0
  413. package/lib/features/travel/TravelAgentChatPane.js.map +1 -0
  414. package/lib/features/travel/TravelBookHero.js +425 -0
  415. package/lib/features/travel/TravelBookHero.js.map +1 -0
  416. package/lib/features/travel/TravelDatesField.js +234 -0
  417. package/lib/features/travel/TravelDatesField.js.map +1 -0
  418. package/lib/features/travel/TravelDetailSheet.js +106 -0
  419. package/lib/features/travel/TravelDetailSheet.js.map +1 -0
  420. package/lib/features/travel/TravelExperience.js +624 -0
  421. package/lib/features/travel/TravelExperience.js.map +1 -0
  422. package/lib/features/travel/TravelGuestsField.js +85 -0
  423. package/lib/features/travel/TravelGuestsField.js.map +1 -0
  424. package/lib/features/travel/TravelLanding.js +318 -0
  425. package/lib/features/travel/TravelLanding.js.map +1 -0
  426. package/lib/features/travel/TravelLocationField.js +179 -0
  427. package/lib/features/travel/TravelLocationField.js.map +1 -0
  428. package/lib/features/travel/TravelPropertyCard.js +266 -0
  429. package/lib/features/travel/TravelPropertyCard.js.map +1 -0
  430. package/lib/features/travel/TravelPropertyPhoto.js +22 -0
  431. package/lib/features/travel/TravelPropertyPhoto.js.map +1 -0
  432. package/lib/features/travel/TravelRailFlyout.js +79 -0
  433. package/lib/features/travel/TravelRailFlyout.js.map +1 -0
  434. package/lib/features/travel/TravelResultsMap.js +126 -0
  435. package/lib/features/travel/TravelResultsMap.js.map +1 -0
  436. package/lib/features/travel/WorkspacePanel.js +148 -0
  437. package/lib/features/travel/WorkspacePanel.js.map +1 -0
  438. package/lib/features/travel/appNav.js +244 -0
  439. package/lib/features/travel/appNav.js.map +1 -0
  440. package/lib/features/travel/calendarDays.js +50 -0
  441. package/lib/features/travel/calendarDays.js.map +1 -0
  442. package/lib/features/travel/catalog.js +72 -0
  443. package/lib/features/travel/catalog.js.map +1 -0
  444. package/lib/features/travel/chat/TravelChatResultCard.js +107 -0
  445. package/lib/features/travel/chat/TravelChatResultCard.js.map +1 -0
  446. package/lib/features/travel/chat/widgetContent.js +107 -0
  447. package/lib/features/travel/chat/widgetContent.js.map +1 -0
  448. package/lib/features/travel/flightDeals.js +65 -0
  449. package/lib/features/travel/flightDeals.js.map +1 -0
  450. package/lib/features/travel/mapCoordinates.js +36 -0
  451. package/lib/features/travel/mapCoordinates.js.map +1 -0
  452. package/lib/features/travel/parseTravelIntent.js +303 -0
  453. package/lib/features/travel/parseTravelIntent.js.map +1 -0
  454. package/lib/features/travel/savedStays.js +66 -0
  455. package/lib/features/travel/savedStays.js.map +1 -0
  456. package/lib/features/travel/services/flightDealsBoard.js +111 -0
  457. package/lib/features/travel/services/flightDealsBoard.js.map +1 -0
  458. package/lib/features/travel/services/flightSearchConnectorClient.js +42 -0
  459. package/lib/features/travel/services/flightSearchConnectorClient.js.map +1 -0
  460. package/lib/features/travel/services/geocodeLocation.js +79 -0
  461. package/lib/features/travel/services/geocodeLocation.js.map +1 -0
  462. package/lib/features/travel/services/placePredictions.js +113 -0
  463. package/lib/features/travel/services/placePredictions.js.map +1 -0
  464. package/lib/features/travel/services/resolveOriginCity.js +27 -0
  465. package/lib/features/travel/services/resolveOriginCity.js.map +1 -0
  466. package/lib/features/travel/services/resortifiConnectorClient.js +76 -0
  467. package/lib/features/travel/services/resortifiConnectorClient.js.map +1 -0
  468. package/lib/features/travel/services/travelFlightSearch.js +289 -0
  469. package/lib/features/travel/services/travelFlightSearch.js.map +1 -0
  470. package/lib/features/travel/services/travelPropertySearch.js +377 -0
  471. package/lib/features/travel/services/travelPropertySearch.js.map +1 -0
  472. package/lib/features/travel/travelAgentSwipe.js +7 -0
  473. package/lib/features/travel/travelAgentSwipe.js.map +1 -0
  474. package/lib/features/travel/travelExec.js +14 -0
  475. package/lib/features/travel/travelExec.js.map +1 -0
  476. package/lib/features/travel/travelHistoryStore.js +108 -0
  477. package/lib/features/travel/travelHistoryStore.js.map +1 -0
  478. package/lib/features/travel/travelRuntime.js +62 -0
  479. package/lib/features/travel/travelRuntime.js.map +1 -0
  480. package/lib/features/travel/types.js +9 -0
  481. package/lib/features/travel/types.js.map +1 -0
  482. package/lib/features/travel/useTravelSearch.js +330 -0
  483. package/lib/features/travel/useTravelSearch.js.map +1 -0
  484. package/lib/features/travel/workspaceContent.js +548 -0
  485. package/lib/features/travel/workspaceContent.js.map +1 -0
  486. package/lib/hooks/useCdecliChannel.js +128 -6
  487. package/lib/hooks/useCdecliChannel.js.map +1 -1
  488. package/lib/hooks/useChatApi.js +4 -2
  489. package/lib/hooks/useChatApi.js.map +1 -1
  490. package/lib/hooks/useChatStream.js +77 -63
  491. package/lib/hooks/useChatStream.js.map +1 -1
  492. package/lib/hooks/useHostConnectorCard.js +24 -0
  493. package/lib/hooks/useHostConnectorCard.js.map +1 -0
  494. package/lib/hooks/useObtainSystemToken.js +23 -5
  495. package/lib/hooks/useObtainSystemToken.js.map +1 -1
  496. package/lib/hooks/webViewRetentionPolicy.js +1 -0
  497. package/lib/hooks/webViewRetentionPolicy.js.map +1 -1
  498. package/lib/index.js +1 -1
  499. package/lib/index.js.map +1 -1
  500. package/lib/screens/Chat/index.js +51 -22
  501. package/lib/screens/Chat/index.js.map +1 -1
  502. package/lib/screens/ChatNative/index.js +13 -2
  503. package/lib/screens/ChatNative/index.js.map +1 -1
  504. package/lib/screens/Home/HomeScreen.js +3 -3
  505. package/lib/screens/Home/HomeScreen.js.map +1 -1
  506. package/lib/screens/Home/components/ChatHistoryLanding.js +32 -32
  507. package/lib/screens/Home/components/ChatHistoryLanding.js.map +1 -1
  508. package/lib/screens/JobSearchNative/useJobSearchHostChat.js +12 -6
  509. package/lib/screens/JobSearchNative/useJobSearchHostChat.js.map +1 -1
  510. package/lib/screens/ResumeNative/useResumeHostChat.js +12 -6
  511. package/lib/screens/ResumeNative/useResumeHostChat.js.map +1 -1
  512. package/lib/screens/ShoppingNative/useShoppingHostChat.js +12 -6
  513. package/lib/screens/ShoppingNative/useShoppingHostChat.js.map +1 -1
  514. package/lib/screens/TravelNative/useTravelHostChat.js +12 -6
  515. package/lib/screens/TravelNative/useTravelHostChat.js.map +1 -1
  516. package/lib/screens/WebBuilder/WebViewWithNavigation.js +2 -2
  517. package/lib/screens/WebBuilder/WebViewWithNavigation.js.map +1 -1
  518. package/lib/services/brainQuickReply.js +38 -1
  519. package/lib/services/brainQuickReply.js.map +1 -1
  520. package/lib/state/chatThreadMerge.js +6 -1
  521. package/lib/state/chatThreadMerge.js.map +1 -1
  522. package/package.json +6 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoEditorExperience.js","sources":["../../../src/features/canvas/VideoEditorExperience.tsx"],"sourcesContent":["/**\n * Native video editor - the phone twin of the web canvas's video editor,\n * rebuilt to the CapCut-class reference: dark stage, filmstrip timeline with\n * a text track, per-clip trim / filter / speed / audio panels behind a tabbed\n * toolbar.\n *\n * Ships INSIDE the federated remote: every iteration arrives by surface\n * deploy, never an app build. The only native capability it needs - video\n * playback - comes through the videoRenderer seam.\n *\n * Everything interactive here is honest: trim, speed, volume and mute drive\n * the real player; filters store the graded look's id and preview it as a\n * tint approximation (no shader pipeline without Skia - the render service\n * applies the true grade); speed curves are picked here, rendered there.\n * `onExport` hands the finished spec to the host's renderer (yantra-video).\n */\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n ActivityIndicator,\n Alert,\n FlatList,\n Platform,\n Pressable,\n ScrollView,\n StyleSheet,\n Text,\n TextInput,\n useWindowDimensions,\n View,\n} from 'react-native';\nimport { KeyboardAwareScreen, KeyboardLiftSpacer } from '../../components/KeyboardComposerDock';\nimport { dismissKeyboard } from '../../utils/keyboardController';\nimport { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { Image } from 'expo-image';\nimport type { CanvasItem } from './canvasCore';\nimport { getVideoPreviewRenderer } from './videoRenderer';\nimport {\n friendlyMediaError,\n generationMediaUrl,\n resultUrl,\n type AudioRecorderSeam,\n type RunMediaAction,\n} from './videoEditor/mediaActions';\nimport type { Soundtrack, Voiceover } from './videoEditor/editorModel';\nimport {\n CLIP_TRANSITIONS,\n DEFAULT_IMAGE_SEC,\n kenBurnsFor,\n MOTION_MOVES,\n MOTION_STRENGTHS,\n moveIdOf,\n newSegment,\n SPEED_CURVES,\n SPEED_PRESETS,\n buildExportSpec,\n clipFromColor,\n clipFromItem,\n clipTimelineSec,\n emptyTimeline,\n moveClip,\n removeClip,\n removeText,\n TEXT_PRESETS,\n textClipAt,\n timelineDuration,\n trimClip,\n updateClip,\n updateText,\n type EditorClip,\n type EditorTimeline,\n type FilterId,\n type SegmentKind,\n type SpeedCurve,\n type VideoExportSpec,\n} from './videoEditor/editorModel';\nimport { FILTER_PRESETS, filterById } from './videoEditor/filters';\nimport { useSafeInsets } from './withRemoteSafeArea';\nimport { buildVideoGenerateParams, STATIC_VIDEO_MODELS } from './generationModels';\nimport type { MediaPickSource } from './CanvasToolDock';\nimport { mapDesignCorpus, playableTemplatePreviewUrl, type CanvasPromptTemplate } from './canvasChatTemplates';\nimport { config } from '../../config/env-config';\nimport { useStudioCatalogTemplates } from './useStudioCatalogTemplates';\nimport { DESIGN_PROMPT_TEMPLATES } from './designPromptTemplates';\nimport { loadTemplateTimeline, templateHasUsableConfig } from './templateImport/loadTemplate';\nimport {\n loadVideoProjects,\n newVideoProjectId,\n persistVideoProjects,\n projectHasWork,\n relativeProjectTime,\n snapshotProject,\n upsertVideoProject,\n type SavedVideoProject,\n} from './videoEditor/videoProjectsStore';\nimport { AgentCutPane } from './videoEditor/agent/AgentCutPane';\n\nfunction nextProjectTitle(rows: readonly SavedVideoProject[], currentTitle: string): string {\n const used = new Set(rows.map((row) => row.title.trim()));\n used.add(currentTitle.trim());\n if (!used.has('Untitled project')) return 'Untitled project';\n let n = 2;\n while (used.has(`Untitled project ${n}`)) n += 1;\n return `Untitled project ${n}`;\n}\n\nexport type { VideoExportSpec } from './videoEditor/editorModel';\n\nexport interface VideoEditorExperienceProps {\n /** The board's media - the bin. Audio has no picture; v1 leaves it out. */\n items: readonly CanvasItem[];\n /** Seed the timeline with this item (toolbar \"Create Video\" entry path). */\n seedItemId?: string | null;\n onClose: () => void;\n /** Hand the finished spec to whatever renders it (yantra-video service).\n * Absent -> the export button explains what is missing. */\n onExport?: (spec: VideoExportSpec) => void;\n /** Open the device library and resolve picked media as canvas-item shapes\n * (src may be a file:// URI - the export chain uploads those). Absent ->\n * the bin offers only the board's media. */\n onPickLocalMedia?: (onStatus?: (message: string) => void, source?: MediaPickSource) => Promise<CanvasItem[]>;\n /** Connector runner (voicebox SPEAK/LIST_VOICES/TRANSCRIBE/CLONE ride it).\n * Absent -> the Voice tab explains what is missing. */\n runAction?: RunMediaAction;\n /** Host uploader (file:// -> store URL) - recordings ride it to voicebox. */\n uploadMedia?: (localUri: string) => Promise<string>;\n /** Host microphone - powers speak-to-type and voice cloning. */\n audioRecorder?: AudioRecorderSeam;\n /** Host Apollo client (typePolicies on formTemplateSubmissions). */\n apolloClient?: import('./useStudioCatalogTemplates').StudioCatalogClient | null;\n /** Board title shown in the editor header (web: Untitled project). */\n projectTitle?: string;\n /** Open with this timeline (promo design lane / imported templates). */\n initialTimeline?: EditorTimeline;\n /** Brand mark from a designed promo project. */\n initialLogoSrc?: string | null;\n /** Session token for AI cut agent (brain chat). */\n token?: string | null;\n /** Index URL used to derive the agent endpoint. */\n indexUrl?: string | null;\n /** Open with this rail panel (e.g. agent cut from DockStudio). */\n initialRailTab?: string | null;\n}\n\n/** Phone rail — canvas-surface VideoEditor RAIL_ITEMS (projects first, record above). */\ntype RailTab =\n | 'projects'\n | 'media'\n | 'templates'\n | 'text'\n | 'elements'\n | 'music'\n | 'voiceover'\n | 'captions'\n | 'audio'\n | 'logo'\n | 'agent';\ntype Tab = RailTab | 'trim' | 'filter' | 'speed' | 'voice' | 'ai' | 'segment';\n\nconst TABS: ReadonlyArray<{\n id: RailTab;\n icon: React.ComponentProps<typeof MaterialCommunityIcons>['name'];\n label: string;\n}> = [\n { id: 'projects', icon: 'folder-open-outline', label: 'Projects' },\n { id: 'media', icon: 'image-plus', label: 'Media' },\n { id: 'templates', icon: 'view-grid-outline', label: 'Templates' },\n { id: 'text', icon: 'format-title', label: 'Text' },\n { id: 'elements', icon: 'shape-outline', label: 'Elements' },\n { id: 'music', icon: 'music', label: 'Music' },\n { id: 'voiceover', icon: 'microphone-outline', label: 'Voiceover' },\n { id: 'captions', icon: 'closed-caption', label: 'Captions' },\n { id: 'audio', icon: 'waveform', label: 'Audio' },\n { id: 'logo', icon: 'postage-stamp', label: 'Logo' },\n { id: 'agent', icon: 'robot-outline', label: 'AI cut' },\n];\n\nconst SEGMENT_KINDS: ReadonlyArray<{\n kind: SegmentKind;\n label: string;\n hint: string;\n icon: React.ComponentProps<typeof MaterialCommunityIcons>['name'];\n}> = [\n { kind: 'speed', label: 'Speed', hint: 'Play this range faster or slower', icon: 'speedometer' },\n { kind: 'zoom', label: 'Zoom', hint: 'Punch in on a spot for this range', icon: 'magnify-plus-outline' },\n { kind: 'crop', label: 'Crop', hint: 'Show only a region for this range', icon: 'crop' },\n { kind: 'trim', label: 'Trim', hint: 'Skip this range in playback and export', icon: 'content-cut' },\n];\n\nconst SCENE_COLORS = ['#101014', '#f4f4f5', '#1d4ed8', '#7c2d12'] as const;\n\nconst SPEED_CURVE_LABEL: Record<SpeedCurve, string> = {\n constant: 'Constant',\n 'ease-in': 'Ease in',\n 'ease-out': 'Ease out',\n pulse: 'Pulse',\n};\n\nfunction loadEditorWebView(): React.ComponentType<Record<string, unknown>> | null {\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports, global-require\n return require('react-native-webview').WebView as React.ComponentType<Record<string, unknown>>;\n } catch {\n return null;\n }\n}\n\nfunction canvasDocumentBase(): string {\n const raw = (config.CANVAS_SURFACE_URL || '').trim();\n if (/^https:\\/\\//i.test(raw) && !/localhost/i.test(raw)) {\n return raw.endsWith('/') ? raw : `${raw}/`;\n }\n const template = config.SURFACE_URL_TEMPLATE || 'https://{slug}-surface.yantra-app-v1.cdebase.dev/';\n return template.replace('{slug}', 'canvas').replace(/\\/?$/, '/');\n}\n\nfunction htmlVideoPage(src: string, poster?: string): string {\n const esc = (value: string) => value.replace(/&/g, '&amp;').replace(/\"/g, '&quot;');\n const posterAttr = poster ? ` poster=\"${esc(poster)}\"` : '';\n return `<!DOCTYPE html><html><head>\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1,maximum-scale=1\">\n<style>html,body{margin:0;height:100%;background:#000}video{width:100%;height:100%;object-fit:contain;background:#000}</style>\n</head><body>\n<video src=\"${esc(src)}\"${posterAttr} autoplay loop controls playsinline webkit-playsinline></video>\n</body></html>`;\n}\n\n/** Twin of web PreviewStage: HTML5 &lt;video src={coverVideo}&gt; — S3 mp4#preview, not Stream iframe. */\nfunction TemplateWebPreview({ src, poster }: { src: string; poster?: string }) {\n const WebView = loadEditorWebView();\n const playable = playableTemplatePreviewUrl(src);\n if (!playable || !WebView) {\n return poster ? (\n <Image source={{ uri: poster }} style={styles.templatePreviewImage} contentFit=\"contain\" />\n ) : null;\n }\n return (\n <WebView\n source={{ html: htmlVideoPage(playable, poster), baseUrl: canvasDocumentBase() }}\n style={styles.templateWebView}\n allowsInlineMediaPlayback\n mediaPlaybackRequiresUserAction={false}\n javaScriptEnabled\n allowsFullscreenVideo\n originWhitelist={['*']}\n mixedContentMode=\"always\"\n setSupportMultipleWindows={false}\n scrollEnabled={false}\n />\n );\n}\n\nfunction TemplateCatalogCard({\n row,\n generating,\n using,\n onGenerate,\n onPreview,\n onUse,\n}: {\n row: CanvasPromptTemplate;\n generating: boolean;\n using: boolean;\n onGenerate: (row: CanvasPromptTemplate) => void;\n onPreview: (row: CanvasPromptTemplate) => void;\n onUse?: (row: CanvasPromptTemplate) => void;\n}) {\n const canPreview = Boolean(row.coverVideo || row.cover);\n const canUse = Boolean(onUse && templateHasUsableConfig(row));\n return (\n <View style={styles.templateCard}>\n {row.cover ? (\n <Image source={{ uri: row.cover }} style={styles.templateCover} contentFit=\"cover\" />\n ) : (\n <View style={[styles.templateCover, styles.mediaThumbVideo]}>\n <MaterialCommunityIcons name=\"movie-open-outline\" size={22} color=\"#9A9AA5\" />\n </View>\n )}\n <Text style={styles.templateTitle} numberOfLines={2}>\n {row.title}\n </Text>\n <View style={styles.templateActions}>\n {canUse ? (\n <Pressable\n onPress={() => onUse?.(row)}\n disabled={using || generating}\n style={[styles.templateGenerate, (using || generating) && styles.disabled]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Use template ${row.title}`}\n >\n {using ? (\n <ActivityIndicator color=\"#F2F2F5\" size=\"small\" />\n ) : (\n <MaterialCommunityIcons name=\"layers-outline\" size={13} color=\"#F2F2F5\" />\n )}\n <Text style={styles.templateGenerateLabel} numberOfLines={1}>\n Use\n </Text>\n </Pressable>\n ) : (\n <Pressable\n onPress={() => onGenerate(row)}\n disabled={generating || !row.prompt.trim()}\n style={[styles.templateGenerate, (generating || !row.prompt.trim()) && styles.disabled]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Generate ${row.title}`}\n >\n {generating ? (\n <ActivityIndicator color=\"#F2F2F5\" size=\"small\" />\n ) : (\n <MaterialCommunityIcons name=\"auto-fix\" size={13} color=\"#F2F2F5\" />\n )}\n <Text style={styles.templateGenerateLabel} numberOfLines={1}>\n Generate\n </Text>\n </Pressable>\n )}\n <Pressable\n onPress={() => onPreview(row)}\n disabled={!canPreview}\n style={[styles.templatePreviewBtn, !canPreview && styles.disabled]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Preview ${row.title}`}\n >\n <MaterialCommunityIcons name=\"play\" size={13} color=\"#D8D8E0\" />\n <Text style={styles.templatePreviewLabel} numberOfLines={1}>\n Preview\n </Text>\n </Pressable>\n </View>\n </View>\n );\n}\n\nexport function VideoEditorExperience({\n items,\n seedItemId,\n onClose,\n onExport,\n onPickLocalMedia,\n runAction,\n uploadMedia,\n audioRecorder,\n apolloClient,\n projectTitle,\n initialTimeline,\n initialLogoSrc,\n token,\n indexUrl,\n initialRailTab,\n}: VideoEditorExperienceProps) {\n const insets = useSafeInsets();\n const { width: windowWidth } = useWindowDimensions();\n const templateCols = windowWidth >= 700 ? 3 : 2;\n const [deviceMedia, setDeviceMedia] = useState<CanvasItem[]>([]);\n const [logoSrc, setLogoSrc] = useState<string | null>(initialLogoSrc ?? null);\n const media = useMemo(\n () => [...deviceMedia, ...items].filter((i) => i.type === 'image' || i.type === 'video' || i.type === 'audio'),\n [items, deviceMedia],\n );\n\n const [timeline, setTimeline] = useState<EditorTimeline>(() => {\n if (initialTimeline && (initialTimeline.clips.length > 0 || initialTimeline.texts.length > 0)) {\n return initialTimeline;\n }\n const bin = items.filter((i) => i.type === 'image' || i.type === 'video');\n if (seedItemId) {\n const seed = bin.find((i) => i.id === seedItemId);\n return { clips: seed ? [clipFromItem(seed)] : [], texts: [] };\n }\n // Web createInitialProject: library only — the cut starts empty.\n return { clips: [], texts: [] };\n });\n const [selectedClipId, setSelectedClipId] = useState<string | null>(timeline.clips[0]?.id ?? null);\n const [selectedTextId, setSelectedTextId] = useState<string | null>(null);\n const [tab, setTab] = useState<Tab>('media');\n const [railTab, setRailTab] = useState<RailTab | null>(() => {\n const seed = initialRailTab;\n if (seed === 'agent' || seed === 'media' || seed === 'projects') return seed;\n return null;\n });\n const [recordOn, setRecordOn] = useState(false);\n const [recordOpen, setRecordOpen] = useState(false);\n const [recordError, setRecordError] = useState<string | null>(null);\n const [micTakeOn, setMicTakeOn] = useState(false);\n const [segmentMenuOpen, setSegmentMenuOpen] = useState(false);\n const [selectedSegmentId, setSelectedSegmentId] = useState<string | null>(null);\n const [audioPrompt, setAudioPrompt] = useState('');\n const [audioBusy, setAudioBusy] = useState(false);\n const [stageTool, setStageTool] = useState<'animate' | 'look' | 'transition' | null>(null);\n const [aiPrompt, setAiPrompt] = useState('');\n const [aiBusy, setAiBusy] = useState(false);\n const [usingTemplateId, setUsingTemplateId] = useState<string | null>(null);\n const [notice, setNotice] = useState<string | null>(null);\n const [playing, setPlaying] = useState(false);\n const [playhead, setPlayhead] = useState(0);\n /** Source duration per clip id, learned from the preview's onTime. */\n const [sourceSec, setSourceSec] = useState<Record<string, number>>({});\n const [scrub, setScrub] = useState<{ sec: number; nonce: number }>({ sec: 0, nonce: 0 });\n const [dirty, setDirty] = useState(false);\n const [mediaBusy, setMediaBusy] = useState(false);\n const [uploadStatus, setUploadStatus] = useState<string | null>(null);\n const [templateQuery, setTemplateQuery] = useState('');\n const [templateSearch, setTemplateSearch] = useState('');\n const [templatePreview, setTemplatePreview] = useState<{\n src: string;\n poster?: string;\n title: string;\n kind: 'video' | 'image';\n aspect?: string;\n } | null>(null);\n const pickLock = useRef(false);\n const [projectRows, setProjectRows] = useState<SavedVideoProject[]>([]);\n const [activeProjectId, setActiveProjectId] = useState<string | null>(null);\n const [localTitle, setLocalTitle] = useState(() => projectTitle?.trim() || 'Untitled project');\n const [renameId, setRenameId] = useState<string | null>(null);\n const [renameDraft, setRenameDraft] = useState('');\n const timelineRef = useRef(timeline);\n timelineRef.current = timeline;\n const titleRef = useRef(localTitle);\n titleRef.current = localTitle;\n const logoRef = useRef(logoSrc);\n logoRef.current = logoSrc;\n const activeIdRef = useRef(activeProjectId);\n activeIdRef.current = activeProjectId;\n const rowsRef = useRef(projectRows);\n rowsRef.current = projectRows;\n\n useEffect(() => {\n let live = true;\n void loadVideoProjects().then((rows) => {\n if (live) setProjectRows(rows);\n });\n return () => {\n live = false;\n };\n }, []);\n\n useEffect(() => {\n if (timeline.clips.length === 0 && playing) setPlaying(false);\n }, [timeline.clips.length, playing]);\n\n const flushProject = useCallback(() => {\n const current = timelineRef.current;\n if (!projectHasWork(current)) return;\n const id = activeIdRef.current ?? newVideoProjectId();\n if (!activeIdRef.current) {\n activeIdRef.current = id;\n setActiveProjectId(id);\n }\n const snap = snapshotProject(id, titleRef.current, current, logoRef.current);\n const next = upsertVideoProject(rowsRef.current, snap);\n rowsRef.current = next;\n setProjectRows(next);\n persistVideoProjects(next);\n setDirty(false);\n }, []);\n\n useEffect(() => {\n if (!dirty || !projectHasWork(timeline)) return undefined;\n const handle = setTimeout(() => flushProject(), 800);\n return () => clearTimeout(handle);\n }, [dirty, timeline, localTitle, logoSrc, flushProject]);\n\n const applyNewProject = useCallback((name: string) => {\n dismissKeyboard();\n setRenameId(null);\n const current = timelineRef.current;\n let rows = rowsRef.current;\n if (projectHasWork(current) || activeIdRef.current) {\n const id = activeIdRef.current ?? newVideoProjectId();\n rows = upsertVideoProject(rows, snapshotProject(id, titleRef.current, current, logoRef.current));\n }\n const title = name.trim() || nextProjectTitle(rows, titleRef.current);\n const newId = newVideoProjectId();\n const blank = emptyTimeline();\n rows = upsertVideoProject(rows, snapshotProject(newId, title, blank, null));\n rowsRef.current = rows;\n persistVideoProjects(rows);\n setProjectRows(rows);\n timelineRef.current = blank;\n logoRef.current = null;\n activeIdRef.current = newId;\n titleRef.current = title;\n setTimeline(blank);\n setLogoSrc(null);\n setSelectedClipId(null);\n setSelectedTextId(null);\n setActiveProjectId(newId);\n setLocalTitle(title);\n setDirty(false);\n setPlaying(false);\n setPlayhead(0);\n setStageTool(null);\n setRailTab('projects');\n setTab('projects');\n setNotice(`Created “${title}”. Tap Open Media to add clips.`);\n }, []);\n\n const startNewProject = useCallback(() => {\n const suggested = nextProjectTitle(rowsRef.current, titleRef.current);\n if (Platform.OS === 'ios') {\n Alert.prompt(\n 'New project',\n 'Name this cut, then add clips from Media.',\n [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Create', onPress: (value?: string) => applyNewProject(value || suggested) },\n ],\n 'plain-text',\n suggested,\n );\n return;\n }\n Alert.alert('New project', `Create “${suggested}”?`, [\n { text: 'Cancel', style: 'cancel' },\n { text: 'Create', onPress: () => applyNewProject(suggested) },\n ]);\n }, [applyNewProject]);\n\n const openSavedProject = useCallback(\n (row: SavedVideoProject) => {\n flushProject();\n setTimeline({\n clips: [...row.timeline.clips],\n texts: [...row.timeline.texts],\n segments: row.timeline.segments ? [...row.timeline.segments] : [],\n voiceover: row.timeline.voiceover ?? null,\n soundtrack: row.timeline.soundtrack ?? null,\n });\n setLogoSrc(row.logoSrc);\n setActiveProjectId(row.id);\n activeIdRef.current = row.id;\n setLocalTitle(row.title);\n setSelectedClipId(row.timeline.clips[0]?.id ?? null);\n setSelectedTextId(null);\n setDirty(false);\n setPlaying(false);\n setRailTab(null);\n },\n [flushProject],\n );\n\n const deleteSavedProject = useCallback((id: string) => {\n const next = rowsRef.current.filter((row) => row.id !== id);\n rowsRef.current = next;\n setProjectRows(next);\n persistVideoProjects(next);\n if (activeIdRef.current !== id) return;\n setTimeline(emptyTimeline());\n setLogoSrc(null);\n setSelectedClipId(null);\n setSelectedTextId(null);\n setActiveProjectId(null);\n activeIdRef.current = null;\n setLocalTitle('Untitled project');\n setDirty(false);\n setRailTab(null);\n }, []);\n\n useEffect(() => {\n const handle = setTimeout(() => setTemplateSearch(templateQuery.trim()), templateQuery.trim() ? 300 : 0);\n return () => clearTimeout(handle);\n }, [templateQuery]);\n\n const videoCorpus = useMemo(() => mapDesignCorpus('video', DESIGN_PROMPT_TEMPLATES), []);\n const {\n templates,\n loading: templatesLoading,\n loadingMore: templatesLoadingMore,\n loadMore: fetchMoreTemplates,\n } = useStudioCatalogTemplates(templateSearch, apolloClient, runAction, videoCorpus);\n\n const loadMoreTemplates = useCallback(() => {\n fetchMoreTemplates();\n }, [fetchMoreTemplates]);\n\n const templateGrid = useMemo(() => {\n const rows: CanvasPromptTemplate[][] = [];\n for (let i = 0; i < templates.length; i += templateCols) {\n rows.push(templates.slice(i, i + templateCols));\n }\n return rows;\n }, [templateCols, templates]);\n\n const selected = timeline.clips.find((c) => c.id === selectedClipId) ?? null;\n const selectedIndex = selected ? timeline.clips.indexOf(selected) : -1;\n const selectedText = timeline.texts.find((t) => t.id === selectedTextId) ?? null;\n const total = timelineDuration(timeline.clips);\n\n const patchSelected = useCallback(\n (patch: Partial<EditorClip>) => {\n if (!selectedClipId) return;\n setDirty(true);\n setTimeline((t) => updateClip(t, selectedClipId, patch));\n },\n [selectedClipId],\n );\n\n const addClip = useCallback((item: CanvasItem) => {\n const clip = clipFromItem(item);\n setDirty(true);\n setTimeline((t) => ({ ...t, clips: [...t.clips, clip] }));\n setSelectedClipId(clip.id);\n setSelectedTextId(null);\n setRailTab(null);\n setNotice('Added to the timeline');\n }, []);\n\n const addBlankScene = useCallback(() => {\n const clip = clipFromColor('#101014');\n const title = textClipAt(0, { text: 'Build your own scene', x: 0.5, y: 0.46 });\n setDirty(true);\n setTimeline((t) => ({ ...t, clips: [...t.clips, clip], texts: [...t.texts, title] }));\n setSelectedClipId(clip.id);\n setSelectedTextId(title.id);\n setRailTab(null);\n setNotice('Blank scene added — edit the title or open Media.');\n }, []);\n\n const previewStudioTemplate = useCallback((row: CanvasPromptTemplate) => {\n const sample = playableTemplatePreviewUrl(row.coverVideo);\n if (sample) {\n setPlaying(false);\n setTemplatePreview({\n src: sample,\n poster: row.cover,\n title: row.title,\n kind: 'video',\n aspect: row.aspect,\n });\n return;\n }\n if (row.cover) {\n setPlaying(false);\n setTemplatePreview({\n src: row.cover,\n poster: row.cover,\n title: row.title,\n kind: 'image',\n aspect: row.aspect,\n });\n return;\n }\n setNotice('This template has no sample to preview.');\n }, []);\n\n const useStudioTemplate = useCallback(\n async (row: CanvasPromptTemplate) => {\n if (!templateHasUsableConfig(row) || usingTemplateId) return;\n setUsingTemplateId(row.id);\n setNotice(null);\n try {\n const imported = await loadTemplateTimeline(row);\n setDirty(true);\n setTimeline(imported.timeline);\n setSelectedClipId(imported.timeline.clips[0]?.id ?? null);\n setSelectedTextId(imported.timeline.texts[0]?.id ?? null);\n if (imported.logoSrc) setLogoSrc(imported.logoSrc);\n setRailTab(null);\n setNotice(\n `Loaded “${imported.title}” · ${imported.scenes} scene${imported.scenes === 1 ? '' : 's'} (${imported.aspect})`,\n );\n } catch (err: unknown) {\n setNotice(err instanceof Error ? err.message : 'Could not load the template');\n } finally {\n setUsingTemplateId(null);\n }\n },\n [usingTemplateId],\n );\n\n const addText = useCallback(\n (preset?: { text: string; x: number; y: number }) => {\n const text = textClipAt(playhead, preset);\n setTimeline((t) => ({ ...t, texts: [...t.texts, text] }));\n setSelectedTextId(text.id);\n setTab('text');\n },\n [playhead],\n );\n\n const pickIntoLibrary = useCallback(\n (source?: MediaPickSource) => {\n if (!onPickLocalMedia || pickLock.current) return;\n pickLock.current = true;\n onPickLocalMedia((message) => {\n setMediaBusy(true);\n setUploadStatus(message);\n }, source)\n .then((picked) => {\n if (picked.length === 0) return;\n setDeviceMedia((prev) => [...picked, ...prev]);\n const visual = picked.find((p) => p.type === 'image' || p.type === 'video');\n if (visual && timelineRef.current.clips.length === 0) {\n addClip(visual);\n return;\n }\n setRailTab('media');\n setTab('media');\n setNotice(\n picked.length === 1\n ? 'In Media — tap it to add to the timeline'\n : `${picked.length} items in Media — tap one to add`,\n );\n })\n .catch((err: unknown) => {\n setNotice(friendlyMediaError(err, 'media pick'));\n })\n .finally(() => {\n pickLock.current = false;\n setMediaBusy(false);\n setUploadStatus(null);\n });\n },\n [onPickLocalMedia, addClip],\n );\n\n const pickLogo = useCallback(() => {\n if (!onPickLocalMedia || pickLock.current) return;\n pickLock.current = true;\n onPickLocalMedia((message) => {\n setMediaBusy(true);\n setUploadStatus(message);\n }, 'library')\n .then((picked) => {\n const image = picked.find((p) => p.type === 'image');\n if (image) {\n setLogoSrc(image.src);\n setDeviceMedia((prev) => [...picked, ...prev]);\n } else if (picked.length) {\n setNotice('Pick an image for the logo.');\n }\n })\n .catch((err: unknown) => {\n setNotice(friendlyMediaError(err, 'logo pick'));\n })\n .finally(() => {\n pickLock.current = false;\n setMediaBusy(false);\n setUploadStatus(null);\n });\n }, [onPickLocalMedia]);\n\n const captureFromRecord = useCallback(\n (source: MediaPickSource) => {\n if (!onPickLocalMedia) {\n setRecordError('Recording needs the host camera and library seam.');\n return;\n }\n if (pickLock.current) return;\n pickLock.current = true;\n setRecordOn(true);\n setRecordError(null);\n onPickLocalMedia((message) => {\n setMediaBusy(true);\n setUploadStatus(message);\n }, source)\n .then((picked) => {\n if (picked.length === 0) return;\n setDeviceMedia((prev) => [...picked, ...prev]);\n const visual = picked.find((p) => p.type === 'image' || p.type === 'video');\n if (visual) {\n addClip(visual);\n setRecordOpen(false);\n return;\n }\n if (picked[0]?.type === 'audio') {\n setTimeline((t) => ({\n ...t,\n soundtrack: {\n audioUrl: picked[0].src,\n mode: 'mix',\n title: picked[0].generatedAssetName || 'Recording',\n },\n }));\n setDirty(true);\n setRecordOpen(false);\n setNotice('Recording added as the soundtrack.');\n return;\n }\n setNotice('Saved in Media — tap it to add to the timeline.');\n })\n .catch((err: unknown) => {\n setRecordError(friendlyMediaError(err, 'record'));\n })\n .finally(() => {\n pickLock.current = false;\n setRecordOn(false);\n setMediaBusy(false);\n setUploadStatus(null);\n });\n },\n [onPickLocalMedia, addClip],\n );\n\n const toggleMicTake = useCallback(() => {\n if (!audioRecorder || !uploadMedia) {\n setRecordError('Microphone recording needs the host recorder. Use Voiceover after opening that tab.');\n return;\n }\n if (micTakeOn) {\n audioRecorder\n .stop()\n .then(async (uri) => {\n setMicTakeOn(false);\n if (!uri) return;\n const url = await uploadMedia(uri);\n setTimeline((t) => ({\n ...t,\n voiceover: { audioUrl: url, mode: 'mix', voiceLabel: 'Recorded take' },\n }));\n setDirty(true);\n setRecordOpen(false);\n setNotice('Voice take added under Audio.');\n })\n .catch((err: unknown) => {\n setMicTakeOn(false);\n setRecordError(friendlyMediaError(err, 'record'));\n });\n return;\n }\n audioRecorder\n .start()\n .then(() => setMicTakeOn(true))\n .catch((err: unknown) => setRecordError(friendlyMediaError(err, 'record')));\n }, [audioRecorder, uploadMedia, micTakeOn]);\n\n const dropSegment = useCallback(\n (kind: SegmentKind) => {\n if (timeline.clips.length === 0) {\n setNotice('Add a scene first — segments sit across the cut.');\n return;\n }\n const seg = newSegment(kind, playhead, Math.max(total.knownSec, 2));\n setTimeline((t) => ({ ...t, segments: [...(t.segments ?? []), seg] }));\n setSelectedSegmentId(seg.id);\n setSegmentMenuOpen(false);\n setDirty(true);\n },\n [playhead, timeline.clips.length, total.knownSec],\n );\n\n const generateAiAudio = useCallback(() => {\n const prompt = audioPrompt.trim();\n if (!runAction || !prompt || audioBusy) return;\n setAudioBusy(true);\n runAction('yantra-audio', 'YANTRA_AUDIO_RUN_PROMPT', {\n prompt,\n model: 'fal-ai/elevenlabs/music',\n durationSec: 15,\n format: 'mp3',\n })\n .then((result) => {\n const url = resultUrl(result, 'RUN_PROMPT');\n setDeviceMedia((prev) => [\n {\n id: `audio-${Date.now()}`,\n type: 'audio',\n src: url,\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n zIndex: 0,\n generatedAssetName: prompt.slice(0, 28),\n },\n ...prev,\n ]);\n setRailTab('media');\n setTab('media');\n setAudioPrompt('');\n })\n .catch((err: unknown) => setNotice(friendlyMediaError(err, 'AI audio')))\n .finally(() => setAudioBusy(false));\n }, [audioBusy, audioPrompt, runAction]);\n\n const generateAiScene = useCallback(\n (promptOverride?: string, opts?: { stayOnTemplates?: boolean; aspect?: string }) => {\n const prompt = (promptOverride ?? aiPrompt).trim();\n if (!runAction || !prompt || aiBusy) return;\n setAiBusy(true);\n setNotice(null);\n setTemplatePreview(null);\n const still = selected?.type === 'image' ? selected.src : undefined;\n const aspect =\n opts?.aspect === '9:16' || opts?.aspect === '16:9' || opts?.aspect === '1:1'\n ? opts.aspect\n : promptOverride\n ? '9:16'\n : '16:9';\n runAction(\n 'yantra-video-generation',\n 'YANTRA_VIDEO_GENERATION_GENERATE',\n buildVideoGenerateParams({\n prompt,\n aspectRatio: aspect,\n // Template Generate matches web: no forced model. The AI\n // scene box still sends the fallback Veo id.\n ...(promptOverride ? {} : { model: STATIC_VIDEO_MODELS[0]?.id }),\n referenceImageUrl: still,\n }),\n )\n .then((result) => {\n const url = generationMediaUrl(result);\n addClip({\n id: `ai-${Date.now()}`,\n type: 'video',\n src: url,\n x: 0,\n y: 0,\n width: 640,\n height: 360,\n zIndex: 1,\n generatedAssetName: `Scene · ${prompt.slice(0, 24)}`,\n });\n setAiPrompt('');\n if (!opts?.stayOnTemplates) {\n setRailTab('media');\n setTab('media');\n }\n })\n .catch((err: unknown) => setNotice(friendlyMediaError(err, 'AI scene')))\n .finally(() => setAiBusy(false));\n },\n [addClip, aiBusy, aiPrompt, runAction, selected],\n );\n\n const onPreviewTime = useCallback(\n (currentSec: number, durationSec: number) => {\n setPlayhead(currentSec);\n if (selectedClipId && durationSec > 0) {\n setSourceSec((prev) =>\n prev[selectedClipId] === durationSec ? prev : { ...prev, [selectedClipId]: durationSec },\n );\n }\n },\n [selectedClipId],\n );\n\n const exportTimeline = useCallback(() => {\n if (timeline.clips.length === 0) {\n setNotice('Add clips to the timeline first.');\n return;\n }\n flushProject();\n setRailTab(null);\n if (onExport) onExport(buildExportSpec(timeline));\n else setNotice('Export renders through the yantra-video service - not wired in this host yet.');\n }, [flushProject, timeline, onExport]);\n\n const previewPlay = useCallback(() => {\n if (timeline.clips.length === 0) {\n setNotice('Add a clip from Media, then tap Preview.');\n return;\n }\n setRailTab(null);\n setPlaying((on) => !on);\n }, [timeline.clips.length]);\n\n const VideoPreview = getVideoPreviewRenderer();\n const selectedFilter = filterById(selected?.filter ?? 'none');\n const selectedSource = selected ? sourceSec[selected.id] : undefined;\n const projectList = useMemo(() => {\n if (activeProjectId && projectRows.some((row) => row.id === activeProjectId)) return projectRows;\n return [\n {\n id: '__current__',\n title: localTitle,\n timeline,\n logoSrc,\n updatedAt: Date.now(),\n },\n ...projectRows,\n ];\n }, [activeProjectId, localTitle, timeline, logoSrc, projectRows]);\n\n return (\n <GestureHandlerRootView style={styles.root}>\n <KeyboardAwareScreen style={styles.root} testID=\"video-editor\">\n <View style={styles.header}>\n <View style={styles.headerCopy}>\n <Text style={styles.headerProject} numberOfLines={1}>\n {localTitle}\n </Text>\n <Text style={styles.headerSaved}>\n {dirty ? 'Unsaved' : 'Saved'}\n <Text style={styles.headerSavedDim}> · 30 fps MP4</Text>\n </Text>\n </View>\n <Pressable\n onPress={previewPlay}\n disabled={timeline.clips.length === 0}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel={playing ? 'Pause preview' : 'Preview'}\n style={timeline.clips.length === 0 ? styles.disabled : styles.headerGhostBtn}\n >\n <Text style={styles.headerGhost}>{playing ? 'Pause' : 'Preview'}</Text>\n </Pressable>\n <Pressable\n onPress={exportTimeline}\n disabled={timeline.clips.length === 0}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Export video\"\n accessibilityHint={\n timeline.clips.length === 0 ? 'Add a scene or clip before exporting' : undefined\n }\n style={[styles.exportBtn, timeline.clips.length === 0 ? styles.disabled : null]}\n >\n <Text style={styles.exportBtnLabel}>Export</Text>\n </Pressable>\n <Pressable\n onPress={() => {\n flushProject();\n dismissKeyboard();\n onClose();\n }}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Close editor\"\n >\n <MaterialCommunityIcons name=\"close\" size={22} color=\"#E8E8EE\" />\n </Pressable>\n </View>\n\n <View style={styles.workspace}>\n {railTab || recordOpen ? (\n <View style={[styles.sheet, railTab === 'templates' && !recordOpen ? styles.sheetTall : null]}>\n <View style={styles.sheetHead}>\n <Text style={styles.sheetTitle}>\n {recordOpen\n ? 'Record'\n : (TABS.find((entry) => entry.id === railTab)?.label ?? 'Tools')}\n </Text>\n {railTab === 'projects' && !recordOpen ? (\n <Pressable\n onPress={startNewProject}\n style={styles.sheetNewBtn}\n accessibilityRole=\"button\"\n accessibilityLabel=\"New project\"\n >\n <MaterialCommunityIcons name=\"plus\" size={14} color=\"#101013\" />\n <Text style={styles.sheetNewBtnLabel}>New</Text>\n </Pressable>\n ) : null}\n <Pressable\n onPress={() => {\n setRailTab(null);\n setRecordOpen(false);\n setMicTakeOn(false);\n }}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Close tools\"\n >\n <MaterialCommunityIcons name=\"close\" size={18} color=\"#F2F2F5\" />\n </Pressable>\n </View>\n {railTab === 'templates' && !recordOpen ? (\n <View style={styles.templateSheetBody}>\n <FlatList\n data={templateGrid}\n keyExtractor={(pair) => pair.map((row) => row.id).join(':')}\n keyboardShouldPersistTaps=\"handled\"\n style={styles.templateList}\n contentContainerStyle={styles.templateListInner}\n extraData={`${templatesLoadingMore}:${templates.length}`}\n ListHeaderComponent={\n <View style={styles.templatesPane}>\n <View style={styles.searchField}>\n <MaterialCommunityIcons name=\"magnify\" size={20} color=\"#8A8A94\" />\n <TextInput\n value={templateQuery}\n onChangeText={setTemplateQuery}\n placeholder=\"Search templates…\"\n placeholderTextColor=\"#6A6A74\"\n style={styles.searchInput}\n autoCorrect={false}\n autoCapitalize=\"none\"\n autoFocus={false}\n returnKeyType=\"search\"\n accessibilityLabel=\"Search templates\"\n onSubmitEditing={() => setTemplateSearch(templateQuery.trim())}\n />\n {templateQuery.length > 0 ? (\n <Pressable\n onPress={() => {\n setTemplateQuery('');\n setTemplateSearch('');\n dismissKeyboard();\n }}\n style={styles.searchClear}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Clear search\"\n >\n <MaterialCommunityIcons\n name=\"close-circle\"\n size={18}\n color=\"#8A8A94\"\n />\n </Pressable>\n ) : null}\n </View>\n {templatesLoading && templates.length === 0 ? (\n <View style={styles.emptyPanel}>\n <ActivityIndicator color=\"#E8E8EE\" />\n </View>\n ) : templates.length === 0 ? (\n <View style={styles.emptyPanel}>\n <MaterialCommunityIcons\n name=\"view-grid-outline\"\n size={22}\n color=\"#6A6A74\"\n />\n <Text style={styles.stageEmptyTitle}>No templates</Text>\n <Text style={styles.stageEmptyDetail}>\n {templateSearch\n ? 'No templates match that search.'\n : 'The studio catalog is empty in this environment.'}\n </Text>\n </View>\n ) : null}\n </View>\n }\n ListFooterComponent={\n templates.length === 0 ? null : (\n <View style={styles.templateLoadBar}>\n <Pressable\n onPress={loadMoreTemplates}\n disabled={templatesLoadingMore}\n style={[\n styles.loadMoreBtn,\n templatesLoadingMore ? styles.disabled : null,\n ]}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Load more templates\"\n >\n {templatesLoadingMore ? (\n <ActivityIndicator color=\"#101013\" />\n ) : (\n <>\n <MaterialCommunityIcons\n name=\"chevron-down\"\n size={20}\n color=\"#101013\"\n />\n <Text style={styles.loadMoreBtnLabel}>Load more</Text>\n </>\n )}\n </Pressable>\n </View>\n )\n }\n renderItem={({ item: pair }) => (\n <View style={styles.templateRow}>\n {pair.map((row) => (\n <TemplateCatalogCard\n key={row.id}\n row={row}\n generating={aiBusy}\n using={usingTemplateId === row.id}\n onGenerate={(item) =>\n generateAiScene(item.prompt, {\n stayOnTemplates: true,\n aspect: item.aspect,\n })\n }\n onPreview={previewStudioTemplate}\n onUse={(item) => void useStudioTemplate(item)}\n />\n ))}\n {pair.length < templateCols ? <View style={{ flex: 1 }} /> : null}\n </View>\n )}\n />\n </View>\n ) : (\n <ScrollView\n style={styles.sidePaneScroll}\n contentContainerStyle={styles.sidePaneInner}\n keyboardShouldPersistTaps=\"always\"\n >\n <View style={styles.panel}>\n {recordOpen ? (\n <View style={styles.recordPane}>\n <Text style={styles.panelHint}>\n Web records the screen, a window, or the camera, then drops the take\n on the timeline. On the phone that is camera, mic, or the library —\n screen capture stays on desktop.\n </Text>\n {recordError ? (\n <Text style={styles.recordError}>{recordError}</Text>\n ) : null}\n {(\n [\n {\n id: 'camera-video' as const,\n icon: 'video-outline' as const,\n label: 'Record video',\n hint: 'Rear camera, up to 2 minutes',\n },\n {\n id: 'camera-photo' as const,\n icon: 'camera-outline' as const,\n label: 'Take photo',\n hint: 'Still lands as a scene',\n },\n {\n id: 'library' as const,\n icon: 'image-multiple-outline' as const,\n label: 'Photo Library',\n hint: 'Same as Open Media',\n },\n {\n id: 'file' as const,\n icon: 'folder-outline' as const,\n label: 'Choose file',\n hint: 'Video, image, or audio',\n },\n ] as const\n ).map((row) => (\n <Pressable\n key={row.id}\n onPress={() => captureFromRecord(row.id)}\n disabled={recordOn || !onPickLocalMedia}\n style={[\n styles.recordRow,\n (recordOn || !onPickLocalMedia) && styles.disabled,\n ]}\n accessibilityRole=\"button\"\n >\n <MaterialCommunityIcons\n name={row.icon}\n size={22}\n color=\"#F2F2F5\"\n />\n <View style={styles.segmentMenuCopy}>\n <Text style={styles.segmentMenuLabel}>{row.label}</Text>\n <Text style={styles.segmentMenuHint}>{row.hint}</Text>\n </View>\n </Pressable>\n ))}\n <Pressable\n onPress={toggleMicTake}\n disabled={!audioRecorder}\n style={[styles.recordRow, !audioRecorder && styles.disabled]}\n accessibilityRole=\"button\"\n >\n <MaterialCommunityIcons\n name={micTakeOn ? 'stop-circle-outline' : 'microphone-outline'}\n size={22}\n color={micTakeOn ? '#F87171' : '#F2F2F5'}\n />\n <View style={styles.segmentMenuCopy}>\n <Text style={styles.segmentMenuLabel}>\n {micTakeOn ? 'Stop voice take' : 'Record voice'}\n </Text>\n <Text style={styles.segmentMenuHint}>\n {audioRecorder\n ? 'Adds a voiceover on the Audio lane'\n : 'Host microphone is not wired in this build'}\n </Text>\n </View>\n </Pressable>\n </View>\n ) : railTab === 'media' ? (\n <View style={styles.mediaPane}>\n {onPickLocalMedia ? (\n <View style={styles.pickRow}>\n {(\n [\n {\n id: 'library' as const,\n icon: 'image-multiple-outline' as const,\n label: 'Photos',\n },\n {\n id: 'camera' as const,\n icon: 'camera-outline' as const,\n label: 'Camera',\n },\n {\n id: 'file' as const,\n icon: 'folder-outline' as const,\n label: 'Files',\n },\n ] as const\n ).map((source) => (\n <Pressable\n key={source.id}\n onPress={() => pickIntoLibrary(source.id)}\n disabled={mediaBusy}\n style={[styles.pickBtn, mediaBusy && styles.disabled]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Upload from ${source.label}`}\n >\n <MaterialCommunityIcons\n name={source.icon}\n size={18}\n color=\"#E8E8EE\"\n />\n <Text style={styles.pickBtnLabel}>{source.label}</Text>\n </Pressable>\n ))}\n </View>\n ) : null}\n {media.length === 0 ? (\n <View style={styles.emptyPanel}>\n <MaterialCommunityIcons\n name=\"image-plus\"\n size={22}\n color=\"#6A6A74\"\n />\n <Text style={styles.stageEmptyTitle}>No media yet</Text>\n <Text style={styles.stageEmptyDetail}>\n Upload from this phone, or tap a clip from this canvas to\n add it to the timeline.\n </Text>\n </View>\n ) : (\n <View style={styles.mediaGrid}>\n {media.map((item) => (\n <Pressable\n key={item.id}\n onPress={() => {\n if (item.type === 'audio') {\n setTimeline((t) => ({\n ...t,\n soundtrack: {\n audioUrl: item.src,\n mode: 'mix',\n title:\n item.generatedAssetName || 'Audio',\n },\n }));\n setRailTab('music');\n setTab('music');\n return;\n }\n addClip(item);\n }}\n style={styles.mediaTile}\n >\n {item.type === 'image' ? (\n <Image\n source={{ uri: item.src }}\n style={styles.mediaThumb}\n contentFit=\"cover\"\n />\n ) : (\n <View\n style={[\n styles.mediaThumb,\n styles.mediaThumbVideo,\n ]}\n >\n <MaterialCommunityIcons\n name={\n item.type === 'audio' ? 'music' : 'play'\n }\n size={18}\n color=\"#9A9AA5\"\n />\n </View>\n )}\n <View style={styles.mediaAdd}>\n <MaterialCommunityIcons\n name=\"plus\"\n size={12}\n color=\"#0A0A0C\"\n />\n </View>\n </Pressable>\n ))}\n </View>\n )}\n </View>\n ) : railTab === 'projects' ? (\n <View style={styles.projectsPane}>\n <Text style={styles.panelHint}>\n A project is a saved timeline. Create one, then add clips from\n Media.\n </Text>\n <Pressable\n onPress={startNewProject}\n style={styles.solidBtn}\n accessibilityRole=\"button\"\n accessibilityLabel=\"New project\"\n >\n <MaterialCommunityIcons name=\"plus\" size={16} color=\"#101013\" />\n <Text style={styles.solidBtnLabel}>Create project</Text>\n </Pressable>\n <Text style={styles.panelHint}>\n {dirty\n ? 'Unsaved changes — saves as soon as you edit.'\n : projectHasWork(timeline)\n ? 'All changes saved'\n : 'Saves as soon as you edit.'}\n </Text>\n {projectList.map((row) => {\n const current =\n row.id === '__current__' || row.id === activeProjectId;\n const clips = row.timeline.clips.length;\n const isDraft = row.id === '__current__';\n return (\n <Pressable\n key={row.id}\n onPress={() => {\n if (isDraft) return;\n openSavedProject(row);\n }}\n style={[styles.projectRow, current && styles.projectRowOn]}\n >\n {renameId === row.id ? (\n <TextInput\n value={renameDraft}\n onChangeText={setRenameDraft}\n onSubmitEditing={() => {\n const title =\n renameDraft.trim() || 'Untitled project';\n const next = upsertVideoProject(projectRows, {\n ...row,\n title,\n });\n persistVideoProjects(next);\n setProjectRows(next);\n if (row.id === activeProjectId)\n setLocalTitle(title);\n setRenameId(null);\n }}\n autoFocus\n style={styles.renameInput}\n />\n ) : (\n <View style={styles.projectRowCopy}>\n <Text\n style={styles.projectRowTitle}\n numberOfLines={1}\n >\n {row.title}\n </Text>\n <Text style={styles.projectRowMeta}>\n {clips} clip{clips === 1 ? '' : 's'} ·{' '}\n {relativeProjectTime(row.updatedAt)}\n </Text>\n </View>\n )}\n {!isDraft ? (\n <>\n <Pressable\n onPress={() => {\n setRenameId(row.id);\n setRenameDraft(row.title);\n }}\n hitSlop={8}\n accessibilityLabel=\"Rename project\"\n >\n <MaterialCommunityIcons\n name=\"pencil-outline\"\n size={16}\n color=\"#8B8B96\"\n />\n </Pressable>\n <Pressable\n onPress={() => deleteSavedProject(row.id)}\n hitSlop={8}\n accessibilityLabel=\"Delete project\"\n >\n <MaterialCommunityIcons\n name=\"trash-can-outline\"\n size={16}\n color=\"#FF6B6B\"\n />\n </Pressable>\n </>\n ) : (\n <Text style={styles.projectRowMeta}>Current</Text>\n )}\n </Pressable>\n );\n })}\n </View>\n ) : tab === 'ai' ? (\n <View>\n <Text style={styles.panelBarTitle}>Create with AI</Text>\n <TextInput\n value={aiPrompt}\n onChangeText={setAiPrompt}\n placeholder=\"Continue the scene…\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.textInput}\n multiline\n />\n <Pressable\n onPress={() => generateAiScene()}\n disabled={aiBusy || !aiPrompt.trim()}\n style={[styles.chip, styles.chipActive, styles.chipWide]}\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n {aiBusy ? 'Generating…' : 'Generate scene'}\n </Text>\n </Pressable>\n </View>\n ) : railTab === 'elements' ? (\n <View>\n <Text style={styles.panelBarTitle}>Blank scene</Text>\n <View style={styles.panelRow}>\n {SCENE_COLORS.map((color) => (\n <Pressable\n key={color}\n onPress={() => {\n const clip = clipFromColor(color);\n setDirty(true);\n setTimeline((t) => ({\n ...t,\n clips: [...t.clips, clip],\n }));\n setSelectedClipId(clip.id);\n setNotice('Blank scene added');\n }}\n style={[styles.sceneSwatch, { backgroundColor: color }]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Add blank scene ${color}`}\n />\n ))}\n </View>\n <Text style={styles.panelHint}>\n Adds a colored still at the end of the timeline — hold duration in\n clip tools.\n </Text>\n </View>\n ) : railTab === 'logo' ? (\n <View>\n {logoSrc ? (\n <Image\n source={{ uri: logoSrc }}\n style={styles.logoPreview}\n contentFit=\"contain\"\n />\n ) : (\n <Text style={styles.panelEmpty}>\n A brand mark that rides every frame and exports with the video.\n </Text>\n )}\n <View style={styles.panelRow}>\n <Pressable\n onPress={pickLogo}\n disabled={mediaBusy}\n style={[\n styles.chip,\n styles.chipActive,\n mediaBusy && styles.disabled,\n ]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n {logoSrc ? 'Replace logo' : 'Upload logo'}\n </Text>\n </Pressable>\n {logoSrc ? (\n <Pressable onPress={() => setLogoSrc(null)} style={styles.chip}>\n <Text style={[styles.chipLabel, styles.chipDanger]}>\n Remove\n </Text>\n </Pressable>\n ) : null}\n </View>\n </View>\n ) : tab === 'trim' ? (\n selected ? (\n <TrimPanel\n clip={selected}\n sourceSec={selectedSource}\n onTrim={(start, end) =>\n patchSelected(trimClip(selected, start, end))\n }\n onImageDuration={(sec) => patchSelected({ durationSec: sec })}\n onMove={(dir) => setTimeline((t) => moveClip(t, selected.id, dir))}\n onRemove={() => {\n setTimeline((t) => removeClip(t, selected.id));\n setSelectedClipId(null);\n }}\n canMoveLeft={selectedIndex > 0}\n canMoveRight={\n selectedIndex >= 0 && selectedIndex < timeline.clips.length - 1\n }\n />\n ) : (\n <Text style={styles.panelEmpty}>\n Pick a clip on the timeline to change its timing, trim, motion, look\n and audio.\n </Text>\n )\n ) : tab === 'filter' && selected ? (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.panelRow}\n >\n {FILTER_PRESETS.map((preset) => {\n const active = selected.filter === preset.id;\n return (\n <Pressable\n key={preset.id}\n onPress={() => patchSelected({ filter: preset.id })}\n style={styles.filterTile}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <View\n style={[\n styles.filterThumb,\n active && styles.filterThumbActive,\n ]}\n >\n {selected.type === 'image' ? (\n <Image\n source={{ uri: selected.src }}\n style={StyleSheet.absoluteFill}\n contentFit=\"cover\"\n />\n ) : (\n <View\n style={[\n StyleSheet.absoluteFill,\n styles.mediaThumbVideo,\n ]}\n />\n )}\n {preset.overlays.map(([color, opacity]) => (\n <View\n key={`${color}-${opacity}`}\n style={[\n StyleSheet.absoluteFill,\n { backgroundColor: color, opacity },\n ]}\n />\n ))}\n {preset.id === 'none' ? (\n <MaterialCommunityIcons\n name=\"cancel\"\n size={18}\n color=\"#9A9AA5\"\n style={styles.filterNoneGlyph}\n />\n ) : null}\n </View>\n <Text\n style={[\n styles.filterLabel,\n active && styles.filterLabelActive,\n ]}\n >\n {preset.label}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n ) : tab === 'speed' && selected ? (\n <View>\n <View style={styles.panelRow}>\n {SPEED_PRESETS.map((speed) => {\n const active = selected.speed === speed;\n return (\n <Pressable\n key={speed}\n onPress={() => patchSelected({ speed })}\n style={[styles.chip, active && styles.chipActive]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <Text\n style={[\n styles.chipLabel,\n active && styles.chipLabelActive,\n ]}\n >\n {speed}×\n </Text>\n </Pressable>\n );\n })}\n </View>\n <View style={styles.panelRow}>\n {SPEED_CURVES.map((curve) => {\n const active = selected.speedCurve === curve;\n return (\n <Pressable\n key={curve}\n onPress={() => patchSelected({ speedCurve: curve })}\n style={[styles.chip, active && styles.chipActive]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <Text\n style={[\n styles.chipLabel,\n active && styles.chipLabelActive,\n ]}\n >\n {SPEED_CURVE_LABEL[curve]}\n </Text>\n </Pressable>\n );\n })}\n </View>\n {selected.speedCurve !== 'constant' ? (\n <Text style={styles.panelHint}>\n Curves render on export; preview plays {selected.speed}×.\n </Text>\n ) : null}\n </View>\n ) : railTab === 'text' ? (\n <View>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.panelRow}\n >\n {TEXT_PRESETS.map((preset) => (\n <Pressable\n key={preset.id}\n onPress={() =>\n addText({ text: preset.text, x: preset.x, y: preset.y })\n }\n style={styles.textPreset}\n accessibilityRole=\"button\"\n accessibilityLabel={`Add ${preset.label}`}\n >\n <Text style={styles.textPresetSample} numberOfLines={1}>\n {preset.text}\n </Text>\n <Text style={styles.textPresetLabel}>{preset.label}</Text>\n </Pressable>\n ))}\n </ScrollView>\n <Text style={styles.panelHint}>\n Lands at the playhead. Tap the preview to edit, drag to place.\n </Text>\n {selectedText ? (\n <>\n <TextInput\n value={selectedText.text}\n onChangeText={(text) =>\n setTimeline((t) =>\n updateText(t, selectedText.id, { text }),\n )\n }\n style={styles.textInput}\n placeholder=\"Title\"\n placeholderTextColor=\"#5A5A66\"\n selectionColor=\"#8B7CFF\"\n selectTextOnFocus\n returnKeyType=\"done\"\n onSubmitEditing={dismissKeyboard}\n />\n <View style={styles.panelRow}>\n <Stepper\n label=\"Start\"\n value={`${selectedText.startSec.toFixed(1)}s`}\n onLess={() =>\n setTimeline((t) =>\n updateText(t, selectedText.id, {\n startSec: Math.max(\n 0,\n selectedText.startSec - 0.5,\n ),\n }),\n )\n }\n onMore={() =>\n setTimeline((t) =>\n updateText(t, selectedText.id, {\n startSec: selectedText.startSec + 0.5,\n }),\n )\n }\n />\n <Stepper\n label=\"For\"\n value={`${selectedText.durationSec.toFixed(1)}s`}\n onLess={() =>\n setTimeline((t) =>\n updateText(t, selectedText.id, {\n durationSec: Math.max(\n 0.5,\n selectedText.durationSec - 0.5,\n ),\n }),\n )\n }\n onMore={() =>\n setTimeline((t) =>\n updateText(t, selectedText.id, {\n durationSec: selectedText.durationSec + 0.5,\n }),\n )\n }\n />\n <Pressable\n onPress={() => {\n setTimeline((t) => removeText(t, selectedText.id));\n setSelectedTextId(null);\n }}\n style={styles.chip}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, styles.chipDanger]}>\n Remove\n </Text>\n </Pressable>\n </View>\n </>\n ) : null}\n </View>\n ) : railTab === 'music' ? (\n <SoundtrackPanel\n runAction={runAction}\n soundtrack={timeline.soundtrack ?? null}\n totalSec={total.knownSec}\n onSoundtrack={(soundtrack) =>\n setTimeline((t) => ({ ...t, soundtrack }))\n }\n onNotice={setNotice}\n />\n ) : railTab === 'voiceover' ? (\n <VoicePanel\n runAction={runAction}\n uploadMedia={uploadMedia}\n audioRecorder={audioRecorder}\n voiceover={timeline.voiceover ?? null}\n selectedClip={selected}\n onVoiceover={(voiceover) => setTimeline((t) => ({ ...t, voiceover }))}\n onNotice={setNotice}\n />\n ) : railTab === 'agent' ? (\n <AgentCutPane\n timeline={timeline}\n setTimeline={setTimeline}\n token={token}\n indexUrl={indexUrl}\n />\n ) : railTab === 'captions' ? (\n <View>\n <Text style={styles.panelBarTitle}>Captions</Text>\n <Text style={styles.panelHint}>\n One captions lane — add at the playhead, then tap a row to edit.\n </Text>\n <Pressable\n onPress={() => {\n const preset = TEXT_PRESETS.find((p) => p.id === 'caption');\n addText(\n preset\n ? { text: preset.text, x: preset.x, y: preset.y }\n : { text: 'Caption', x: 0.5, y: 0.86 },\n );\n }}\n style={[styles.chip, styles.chipActive, styles.chipWide]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n Add caption at playhead\n </Text>\n </Pressable>\n {timeline.texts.length === 0 ? (\n <Text style={styles.panelEmpty}>No captions yet.</Text>\n ) : (\n timeline.texts.map((row) => (\n <Pressable\n key={row.id}\n onPress={() => {\n setSelectedTextId(row.id);\n setTab('text');\n }}\n style={styles.captionRow}\n >\n <Text style={styles.captionRowText} numberOfLines={1}>\n {row.text || 'Caption'}\n </Text>\n <Text style={styles.captionRowMeta}>\n {row.startSec.toFixed(1)}s\n </Text>\n </Pressable>\n ))\n )}\n </View>\n ) : railTab === 'audio' ? (\n <View>\n <Text style={styles.panelBarTitle}>AI audio</Text>\n <TextInput\n value={audioPrompt}\n onChangeText={setAudioPrompt}\n placeholder=\"Music or narration prompt…\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.textInput}\n multiline\n />\n <Pressable\n onPress={generateAiAudio}\n disabled={audioBusy || !audioPrompt.trim()}\n style={[styles.chip, styles.chipActive, styles.chipWide]}\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n {audioBusy ? 'Generating…' : 'Generate'}\n </Text>\n </Pressable>\n <Text style={styles.panelHint}>\n Lands in the media library — tap it there to add to the timeline.\n Mood music with auto-duck lives under Music.\n </Text>\n </View>\n ) : tab === 'segment' ? (\n <View>\n <Text style={styles.panelBarTitle}>Segment</Text>\n {selectedSegmentId &&\n (timeline.segments ?? []).find((s) => s.id === selectedSegmentId) ? (\n <Text style={styles.panelEmpty}>\n {\n (timeline.segments ?? []).find(\n (s) => s.id === selectedSegmentId,\n )?.name\n }{' '}\n · 2s range at the playhead. Hide the segment lane to switch it\n off.\n </Text>\n ) : (\n <Text style={styles.panelEmpty}>\n Speed, zoom, crop or trim a 2s range at the playhead.\n </Text>\n )}\n </View>\n ) : (\n <Text style={styles.panelEmpty}>\n Pick a clip on the timeline to change its timing, trim, motion, look and\n audio.\n </Text>\n )}\n </View>\n </ScrollView>\n )}\n </View>\n ) : null}\n <View style={styles.stageCol}>\n <View style={styles.stageWell} onTouchStart={dismissKeyboard}>\n <View style={styles.stage}>\n {selected === null ? (\n <View style={styles.stageEmptyCopy}>\n <MaterialCommunityIcons\n name=\"filmstrip-box-multiple\"\n size={32}\n color=\"#6A6A74\"\n />\n <Text style={styles.stageEmptyTitle}>Start a scene</Text>\n <Text style={styles.stageEmptyDetail}>\n Drop in a photo, a camera take, or a blank card — the same doors as the web\n studio.\n </Text>\n <View style={styles.stageEmptyActions}>\n <Pressable\n onPress={addBlankScene}\n style={styles.solidBtn}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Add blank scene\"\n >\n <MaterialCommunityIcons name=\"plus\" size={16} color=\"#101013\" />\n <Text style={styles.solidBtnLabel}>Blank scene</Text>\n </Pressable>\n <Pressable\n onPress={() => {\n setRailTab('media');\n setTab('media');\n }}\n style={styles.ghostBtn}\n accessibilityRole=\"button\"\n >\n <MaterialCommunityIcons name=\"image-plus\" size={16} color=\"#F2F2F5\" />\n <Text style={styles.ghostBtnLabel}>Open Media</Text>\n </Pressable>\n </View>\n </View>\n ) : (\n <>\n {selected.type === 'video' && VideoPreview ? (\n <VideoPreview\n src={selected.src}\n playing={playing}\n rate={selected.speed}\n volume={selected.volume}\n muted={selected.muted}\n trimStartSec={selected.trimStartSec}\n trimEndSec={selected.trimEndSec}\n scrubToSec={scrub.sec}\n scrubNonce={scrub.nonce}\n onTime={onPreviewTime}\n />\n ) : selected.type === 'video' ? (\n <View style={styles.stageEmpty}>\n <MaterialCommunityIcons\n name=\"play-circle-outline\"\n size={40}\n color=\"#4A4A55\"\n />\n <Text style={styles.stageEmptyDetail}>\n Video preview needs the host's player - editing still works.\n </Text>\n </View>\n ) : (\n <Image\n source={{ uri: selected.src }}\n style={StyleSheet.absoluteFill}\n contentFit=\"contain\"\n />\n )}\n {selectedFilter.overlays.map(([color, opacity]) => (\n <View\n key={`${color}-${opacity}`}\n pointerEvents=\"none\"\n style={[StyleSheet.absoluteFill, { backgroundColor: color, opacity }]}\n />\n ))}\n {timeline.texts.map((t) => (\n <DraggableText\n key={t.id}\n text={t.text}\n x={t.x}\n y={t.y}\n active={t.id === selectedTextId}\n onSelect={() => {\n setSelectedTextId(t.id);\n setTab('text');\n }}\n onMove={(x, y) => setTimeline((tl) => updateText(tl, t.id, { x, y }))}\n />\n ))}\n {logoSrc ? (\n <Image\n source={{ uri: logoSrc }}\n style={styles.logoOverlay}\n contentFit=\"contain\"\n pointerEvents=\"none\"\n />\n ) : null}\n <View style={styles.stageToolbar}>\n <Pressable\n onPress={() =>\n setStageTool((t) => (t === 'animate' ? null : 'animate'))\n }\n style={[styles.stagePill, selected.kenBurns && styles.stagePillOn]}\n >\n <Text style={styles.stagePillLabel}>Animate</Text>\n </Pressable>\n <Pressable\n onPress={() => setStageTool((t) => (t === 'look' ? null : 'look'))}\n style={[\n styles.stagePill,\n selected.filter !== 'none' && styles.stagePillOn,\n ]}\n >\n <Text style={styles.stagePillLabel}>Look</Text>\n </Pressable>\n <Pressable\n onPress={() =>\n setStageTool((t) => (t === 'transition' ? null : 'transition'))\n }\n style={[styles.stagePill, selected.transitionIn && styles.stagePillOn]}\n >\n <Text style={styles.stagePillLabel}>Transition</Text>\n </Pressable>\n </View>\n </>\n )}\n </View>\n </View>\n {selected && stageTool ? (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.stageToolRow}\n >\n {stageTool === 'animate'\n ? MOTION_MOVES.map((m) => {\n const on = moveIdOf(selected.kenBurns) === m.id;\n return (\n <Pressable\n key={m.id}\n onPress={() =>\n patchSelected({\n kenBurns: kenBurnsFor(\n m.id,\n Math.max(\n selected.kenBurns?.zoomStart ?? 1.3,\n selected.kenBurns?.zoomEnd ?? 1.3,\n ),\n ),\n })\n }\n style={[styles.chip, on && styles.chipActive]}\n >\n <Text style={[styles.chipLabel, on && styles.chipLabelActive]}>\n {m.label}\n </Text>\n </Pressable>\n );\n })\n : null}\n {stageTool === 'animate' && selected.kenBurns\n ? MOTION_STRENGTHS.map((s) => (\n <Pressable\n key={s.id}\n onPress={() =>\n patchSelected({\n kenBurns: kenBurnsFor(moveIdOf(selected.kenBurns), s.zoom),\n })\n }\n style={styles.chip}\n >\n <Text style={styles.chipLabel}>{s.label}</Text>\n </Pressable>\n ))\n : null}\n {stageTool === 'look'\n ? FILTER_PRESETS.map((preset) => {\n const on = selected.filter === preset.id;\n return (\n <Pressable\n key={preset.id}\n onPress={() => patchSelected({ filter: preset.id as FilterId })}\n style={[styles.chip, on && styles.chipActive]}\n >\n <Text style={[styles.chipLabel, on && styles.chipLabelActive]}>\n {preset.label}\n </Text>\n </Pressable>\n );\n })\n : null}\n {stageTool === 'transition'\n ? CLIP_TRANSITIONS.map((fx) => {\n const on = selected.transitionIn?.effect === fx;\n return (\n <Pressable\n key={fx}\n onPress={() =>\n patchSelected({\n transitionIn: on ? null : { effect: fx, durationMs: 1000 },\n })\n }\n style={[styles.chip, on && styles.chipActive]}\n >\n <Text style={[styles.chipLabel, on && styles.chipLabelActive]}>\n {fx}\n </Text>\n </Pressable>\n );\n })\n : null}\n </ScrollView>\n ) : null}\n\n {/* Timeline */}\n <TimelineTrack\n timeline={timeline}\n selectedClipId={selectedClipId}\n selectedTextId={selectedTextId}\n selectedSegmentId={selectedSegmentId}\n segmentMenuOpen={segmentMenuOpen}\n playing={playing}\n playhead={playhead}\n totalSec={total.knownSec}\n onTogglePlay={previewPlay}\n onSkipStart={() => {\n setPlaying(false);\n setPlayhead(0);\n setScrub((s) => ({ sec: 0, nonce: s.nonce + 1 }));\n }}\n onSkipEnd={() => {\n setPlaying(false);\n setPlayhead(total.knownSec);\n setScrub((s) => ({ sec: total.knownSec, nonce: s.nonce + 1 }));\n }}\n onToggleSegmentMenu={() => setSegmentMenuOpen((v) => !v)}\n onAddSegment={dropSegment}\n onSelectSegment={(id) => {\n setSelectedSegmentId(id);\n setTab('segment');\n }}\n compact={timeline.clips.length === 0}\n onAddScene={addBlankScene}\n onLayers={() => {\n setRailTab('elements');\n setTab('elements');\n }}\n onSelectClip={(id) => {\n setSelectedClipId(id);\n setPlaying(false);\n setStageTool(null);\n setRailTab(null);\n }}\n onSelectText={(id) => {\n setSelectedTextId(id);\n setRailTab('text');\n setTab('text');\n }}\n />\n {selected && !railTab ? (\n <View style={styles.clipInspector}>\n <Text style={styles.clipInspectorTitle} numberOfLines={1}>\n {selected.name}\n </Text>\n <TrimPanel\n clip={selected}\n sourceSec={selectedSource}\n onTrim={(start, end) => patchSelected(trimClip(selected, start, end))}\n onImageDuration={(sec) => patchSelected({ durationSec: sec })}\n onMove={(dir) => setTimeline((t) => moveClip(t, selected.id, dir))}\n onRemove={() => {\n setTimeline((t) => removeClip(t, selected.id));\n setSelectedClipId(null);\n }}\n canMoveLeft={selectedIndex > 0}\n canMoveRight={selectedIndex >= 0 && selectedIndex < timeline.clips.length - 1}\n />\n </View>\n ) : null}\n </View>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n style={styles.dock}\n contentContainerStyle={[styles.dockInner, { paddingBottom: Math.max(insets.bottom, 8) }]}\n keyboardShouldPersistTaps=\"handled\"\n >\n <Pressable\n onPress={() => {\n setRailTab(null);\n setRecordError(null);\n setRecordOpen((open) => !open);\n }}\n style={[styles.dockTab, styles.dockRecord, recordOpen && styles.dockRecordOn]}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Record\"\n accessibilityState={{ selected: recordOpen }}\n >\n <MaterialCommunityIcons\n name=\"record-circle\"\n size={22}\n color={recordOpen || recordOn ? '#F87171' : '#8B8B96'}\n />\n <Text style={[styles.dockLabel, recordOpen && styles.dockRecordLabel]}>Record</Text>\n </Pressable>\n <View style={styles.dockRule} />\n {TABS.map((entry) => {\n const active = railTab === entry.id;\n return (\n <Pressable\n key={entry.id}\n onPress={() => {\n setRecordOpen(false);\n setRailTab((cur) => (cur === entry.id ? null : entry.id));\n setTab(entry.id);\n }}\n style={[styles.dockTab, active && styles.dockTabOn]}\n accessibilityRole=\"tab\"\n accessibilityState={{ selected: active }}\n accessibilityLabel={entry.label}\n >\n <MaterialCommunityIcons\n name={entry.icon}\n size={20}\n color={active ? '#F2F2F5' : '#8B8B96'}\n />\n <Text style={[styles.dockLabel, active && styles.dockLabelOn]}>{entry.label}</Text>\n </Pressable>\n );\n })}\n </ScrollView>\n {templatePreview ? (\n <View style={styles.templatePreviewOverlay}>\n <View style={styles.templatePreviewBar}>\n <Text style={styles.templatePreviewKicker}>Template preview</Text>\n <Text style={styles.templatePreviewBarTitle} numberOfLines={1}>\n {templatePreview.title}\n </Text>\n {templatePreview.aspect ? (\n <Text style={styles.templatePreviewAspect}>{templatePreview.aspect}</Text>\n ) : null}\n <Pressable\n onPress={() => setTemplatePreview(null)}\n hitSlop={8}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Close template preview\"\n >\n <MaterialCommunityIcons name=\"close\" size={18} color=\"#F2F2F5\" />\n </Pressable>\n </View>\n <Text style={styles.templatePreviewHint}>\n Not part of your video — Generate adds a fresh clip\n </Text>\n <View style={styles.templatePreviewMedia}>\n {templatePreview.kind === 'video' ? (\n <TemplateWebPreview src={templatePreview.src} poster={templatePreview.poster} />\n ) : (\n <Image\n source={{ uri: templatePreview.poster || templatePreview.src }}\n style={styles.templatePreviewImage}\n contentFit=\"contain\"\n recyclingKey={templatePreview.src}\n />\n )}\n </View>\n </View>\n ) : null}\n </View>\n {notice ? (\n <View style={styles.notice}>\n <Text style={styles.noticeText}>{notice}</Text>\n <Pressable onPress={() => setNotice(null)} hitSlop={8}>\n <Text style={styles.noticeDismiss}>OK</Text>\n </Pressable>\n </View>\n ) : null}\n {mediaBusy || aiBusy ? (\n <View style={styles.busyOverlay} pointerEvents=\"auto\">\n <View style={styles.busyCard}>\n <ActivityIndicator color=\"#F7F7FA\" />\n <Text style={styles.busyTitle}>\n {aiBusy ? 'Generating scene' : mediaBusy ? 'Uploading' : 'Working'}\n </Text>\n <Text style={styles.busyDetail}>\n {aiBusy\n ? 'This can take a minute. Keep the editor open.'\n : uploadStatus || 'Preparing your media…'}\n </Text>\n {mediaBusy ? (\n <View style={styles.busyTrack}>\n <View style={styles.busyTrackFill} />\n </View>\n ) : null}\n </View>\n </View>\n ) : null}\n <KeyboardLiftSpacer />\n </KeyboardAwareScreen>\n </GestureHandlerRootView>\n );\n}\n\n/* ---------------------------------- pieces --------------------------------- */\n\nfunction formatSec(sec: number): string {\n const m = Math.floor(sec / 60);\n const s = sec - m * 60;\n return `${m}:${s.toFixed(1).padStart(4, '0')}`;\n}\n\nfunction DraggableText({\n text,\n x,\n y,\n active,\n onSelect,\n onMove,\n}: {\n text: string;\n x: number;\n y: number;\n active: boolean;\n onSelect: () => void;\n onMove: (x: number, y: number) => void;\n}) {\n const stage = useRef({ w: 1, h: 1 });\n const start = useRef({ x, y });\n const pan = Gesture.Pan()\n .runOnJS(true)\n .onStart(() => {\n start.current = { x, y };\n onSelect();\n })\n .onUpdate((e) => {\n onMove(\n Math.min(1, Math.max(0, start.current.x + e.translationX / stage.current.w)),\n Math.min(1, Math.max(0, start.current.y + e.translationY / stage.current.h)),\n );\n });\n const tap = Gesture.Tap().runOnJS(true).onEnd(onSelect);\n\n return (\n <View\n style={StyleSheet.absoluteFill}\n pointerEvents=\"box-none\"\n onLayout={(e) => {\n stage.current = {\n w: Math.max(1, e.nativeEvent.layout.width),\n h: Math.max(1, e.nativeEvent.layout.height),\n };\n }}\n >\n <GestureDetector gesture={Gesture.Race(pan, tap)}>\n <View\n style={[\n styles.stageText,\n active && styles.stageTextActive,\n { left: `${x * 100}%`, top: `${y * 100}%` },\n ]}\n >\n <Text style={styles.stageTextLabel}>{text}</Text>\n </View>\n </GestureDetector>\n </View>\n );\n}\n\nfunction TimelineTrack({\n timeline,\n selectedClipId,\n selectedTextId,\n selectedSegmentId,\n segmentMenuOpen,\n compact,\n onToggleSegmentMenu,\n onAddSegment,\n onSelectSegment,\n onAddScene,\n onLayers,\n onSelectClip,\n onSelectText,\n playing,\n playhead,\n totalSec,\n onTogglePlay,\n onSkipStart,\n onSkipEnd,\n}: {\n timeline: EditorTimeline;\n selectedClipId: string | null;\n selectedTextId: string | null;\n selectedSegmentId: string | null;\n segmentMenuOpen: boolean;\n compact?: boolean;\n onToggleSegmentMenu: () => void;\n onAddSegment: (kind: SegmentKind) => void;\n onSelectSegment: (id: string) => void;\n onAddScene?: () => void;\n onLayers?: () => void;\n onSelectClip: (id: string) => void;\n onSelectText: (id: string) => void;\n playing: boolean;\n playhead: number;\n totalSec: number;\n onTogglePlay: () => void;\n onSkipStart: () => void;\n onSkipEnd: () => void;\n}) {\n const segments = timeline.segments ?? [];\n const hasAudio = Boolean(timeline.voiceover || timeline.soundtrack);\n return (\n <View style={[styles.timeline, compact && styles.timelineCompact]}>\n <View style={styles.timelineBar}>\n <Pressable\n onPress={onLayers}\n hitSlop={6}\n style={styles.timelineIconBtn}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Open layers\"\n >\n <MaterialCommunityIcons name=\"layers-outline\" size={20} color=\"#F2F2F5\" />\n </Pressable>\n <View style={styles.timelineRule} />\n <Pressable\n onPress={onAddScene}\n hitSlop={6}\n style={styles.timelineIconBtn}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Add blank scene\"\n >\n <MaterialCommunityIcons name=\"plus\" size={22} color=\"#F2F2F5\" />\n </Pressable>\n <Pressable\n onPress={onToggleSegmentMenu}\n hitSlop={6}\n style={[styles.timelineIconBtn, segmentMenuOpen && styles.dockTabOn]}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Add segment (speed, zoom, crop, trim)\"\n >\n <MaterialCommunityIcons name=\"arrow-split-horizontal\" size={20} color=\"#F2F2F5\" />\n </Pressable>\n <View style={styles.headerSpacer} />\n <Pressable\n onPress={onSkipStart}\n hitSlop={8}\n style={styles.transportBtn}\n accessibilityLabel=\"Skip to start\"\n >\n <MaterialCommunityIcons name=\"skip-previous\" size={24} color=\"#F2F2F5\" />\n </Pressable>\n <Pressable\n onPress={onTogglePlay}\n style={styles.transportPlay}\n accessibilityLabel={playing ? 'Pause' : 'Play'}\n >\n <MaterialCommunityIcons name={playing ? 'pause' : 'play'} size={26} color=\"#101013\" />\n </Pressable>\n <Pressable onPress={onSkipEnd} hitSlop={8} style={styles.transportBtn} accessibilityLabel=\"Skip to end\">\n <MaterialCommunityIcons name=\"skip-next\" size={24} color=\"#F2F2F5\" />\n </Pressable>\n <Text style={styles.transportTime}>\n {formatSec(playhead)}\n <Text style={styles.transportTimeDim}> / {formatSec(totalSec)}</Text>\n </Text>\n </View>\n {segmentMenuOpen ? (\n <View style={styles.segmentMenu}>\n {SEGMENT_KINDS.map((entry) => (\n <Pressable\n key={entry.kind}\n onPress={() => onAddSegment(entry.kind)}\n style={styles.segmentMenuRow}\n accessibilityRole=\"button\"\n accessibilityLabel={entry.label}\n >\n <MaterialCommunityIcons name={entry.icon} size={16} color=\"#A9A9B4\" />\n <View style={styles.segmentMenuCopy}>\n <Text style={styles.segmentMenuLabel}>{entry.label}</Text>\n <Text style={styles.segmentMenuHint}>{entry.hint}</Text>\n </View>\n </Pressable>\n ))}\n <Text style={styles.panelHint}>\n Drops a 2s range at the playhead, across scenes. Playback and export honour it.\n </Text>\n </View>\n ) : null}\n <ScrollView showsVerticalScrollIndicator={false}>\n <View style={styles.laneRow}>\n <View style={styles.laneGutter}>\n <MaterialCommunityIcons name=\"video\" size={14} color=\"#8B8B96\" />\n <Text style={styles.laneLabel}>Video</Text>\n </View>\n <ScrollView horizontal showsHorizontalScrollIndicator={false} style={styles.laneBody}>\n <View style={styles.clipTrack}>\n {timeline.clips.length === 0 ? (\n <Pressable\n onPress={onAddScene}\n style={styles.clipTrackEmpty}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Add blank scene\"\n >\n <MaterialCommunityIcons name=\"plus\" size={16} color=\"#8B8B96\" />\n <Text style={styles.clipTrackEmptyLabel}>Blank scene</Text>\n </Pressable>\n ) : (\n timeline.clips.map((clip, index) => {\n const active = clip.id === selectedClipId;\n const sec = clipTimelineSec(clip);\n return (\n <Pressable\n key={clip.id}\n onPress={() => onSelectClip(clip.id)}\n style={[styles.clipBlock, active && styles.clipBlockActive]}\n >\n {clip.type === 'image' ? (\n <Image\n source={{ uri: clip.src }}\n style={StyleSheet.absoluteFill}\n contentFit=\"cover\"\n />\n ) : (\n <View style={[StyleSheet.absoluteFill, styles.mediaThumbVideo]}>\n <MaterialCommunityIcons name=\"play\" size={14} color=\"#9A9AA5\" />\n </View>\n )}\n <View style={styles.clipMeta}>\n <Text style={styles.clipMetaText}>{index + 1}</Text>\n <Text style={styles.clipMetaText}>\n {sec === null ? 'video' : `${Math.round(sec * 10) / 10}s`}\n {clip.speed !== 1 ? ` · ${clip.speed}×` : ''}\n </Text>\n </View>\n </Pressable>\n );\n })\n )}\n </View>\n </ScrollView>\n </View>\n {compact ? null : (\n <View style={styles.laneRow}>\n <View style={styles.laneGutter}>\n <MaterialCommunityIcons name=\"image-outline\" size={14} color=\"#9A9AA5\" />\n <Text style={styles.laneLabel}>Overlay</Text>\n </View>\n <View style={styles.laneBody} />\n </View>\n )}\n {compact && timeline.texts.length === 0 ? null : (\n <View style={styles.laneRow}>\n <View style={styles.laneGutter}>\n <MaterialCommunityIcons name=\"format-title\" size={14} color=\"#8B8B96\" />\n <Text style={styles.laneLabel}>Text</Text>\n </View>\n <ScrollView horizontal showsHorizontalScrollIndicator={false} style={styles.laneBody}>\n <View style={styles.textTrack}>\n {timeline.texts.map((t) => (\n <Pressable\n key={t.id}\n onPress={() => onSelectText(t.id)}\n style={[styles.textPill, t.id === selectedTextId && styles.textPillActive]}\n >\n <MaterialCommunityIcons name=\"format-text\" size={11} color=\"#F7F7FA\" />\n <Text numberOfLines={1} style={styles.textPillLabel}>\n {t.text}\n </Text>\n </Pressable>\n ))}\n </View>\n </ScrollView>\n </View>\n )}\n {compact && !hasAudio ? null : (\n <View style={styles.laneRow}>\n <View style={styles.laneGutter}>\n <MaterialCommunityIcons name=\"music-note\" size={14} color=\"#9A9AA5\" />\n <Text style={styles.laneLabel}>Audio</Text>\n </View>\n <View style={styles.laneBody}>\n {timeline.voiceover ? (\n <View style={styles.voTrack}>\n <MaterialCommunityIcons name=\"account-voice\" size={11} color=\"#DCD6FF\" />\n <Text numberOfLines={1} style={styles.voTrackLabel}>\n {timeline.voiceover.voiceLabel || 'Voiceover'}\n </Text>\n </View>\n ) : null}\n {timeline.soundtrack ? (\n <View style={styles.voTrack}>\n <MaterialCommunityIcons name=\"music-note\" size={11} color=\"#DCD6FF\" />\n <Text numberOfLines={1} style={styles.voTrackLabel}>\n {timeline.soundtrack.title || 'Soundtrack'}\n </Text>\n </View>\n ) : null}\n </View>\n </View>\n )}\n {compact && segments.length === 0 ? null : (\n <View style={styles.laneRow}>\n <View style={styles.laneGutter}>\n <MaterialCommunityIcons name=\"arrow-split-horizontal\" size={14} color=\"#8B8B96\" />\n <Text style={styles.laneLabel}>Segment</Text>\n </View>\n <ScrollView horizontal showsHorizontalScrollIndicator={false} style={styles.laneBody}>\n <View style={styles.textTrack}>\n {segments.map((seg) => (\n <Pressable\n key={seg.id}\n onPress={() => onSelectSegment(seg.id)}\n style={[styles.textPill, seg.id === selectedSegmentId && styles.textPillActive]}\n >\n <Text numberOfLines={1} style={styles.textPillLabel}>\n {seg.name}\n </Text>\n </Pressable>\n ))}\n </View>\n </ScrollView>\n </View>\n )}\n </ScrollView>\n </View>\n );\n}\n\nfunction TrimPanel({\n clip,\n sourceSec,\n onTrim,\n onImageDuration,\n onMove,\n onRemove,\n canMoveLeft,\n canMoveRight,\n}: {\n clip: EditorClip;\n sourceSec: number | undefined;\n onTrim: (startSec: number, endSec: number | null) => void;\n onImageDuration: (sec: number) => void;\n onMove: (dir: -1 | 1) => void;\n onRemove: () => void;\n canMoveLeft: boolean;\n canMoveRight: boolean;\n}) {\n const [trackW, setTrackW] = useState(1);\n const source = sourceSec && sourceSec > 0 ? sourceSec : null;\n const end = clip.trimEndSec ?? source;\n const pxPerSec = source ? trackW / source : 0;\n\n const dragStart = useRef(0);\n const startHandle = Gesture.Pan()\n .runOnJS(true)\n .onStart(() => {\n dragStart.current = clip.trimStartSec;\n })\n .onUpdate((e) => {\n if (!source) return;\n onTrim(Math.min(source, dragStart.current + e.translationX / pxPerSec), clip.trimEndSec);\n });\n const endHandle = Gesture.Pan()\n .runOnJS(true)\n .onStart(() => {\n dragStart.current = end ?? 0;\n })\n .onUpdate((e) => {\n if (!source) return;\n onTrim(clip.trimStartSec, Math.min(source, Math.max(0.1, dragStart.current + e.translationX / pxPerSec)));\n });\n\n return (\n <View>\n {clip.type === 'image' ? (\n <View style={styles.panelRow}>\n <Stepper\n label=\"Hold for\"\n value={`${clip.durationSec ?? DEFAULT_IMAGE_SEC}s`}\n onLess={() => onImageDuration(Math.max(1, (clip.durationSec ?? DEFAULT_IMAGE_SEC) - 1))}\n onMore={() => onImageDuration(Math.min(30, (clip.durationSec ?? DEFAULT_IMAGE_SEC) + 1))}\n />\n </View>\n ) : source === null ? (\n <Text style={styles.panelHint}>Play the clip once so its length is known, then trim.</Text>\n ) : (\n <View style={styles.trimTrack} onLayout={(e) => setTrackW(Math.max(1, e.nativeEvent.layout.width))}>\n <View\n style={[\n styles.trimWindow,\n {\n left: clip.trimStartSec * pxPerSec,\n width: Math.max(8, ((end ?? source) - clip.trimStartSec) * pxPerSec),\n },\n ]}\n />\n <GestureDetector gesture={startHandle}>\n <View style={[styles.trimHandle, { left: clip.trimStartSec * pxPerSec - 10 }]} hitSlop={12}>\n <View style={styles.trimHandleBar} />\n </View>\n </GestureDetector>\n <GestureDetector gesture={endHandle}>\n <View style={[styles.trimHandle, { left: (end ?? source) * pxPerSec - 10 }]} hitSlop={12}>\n <View style={styles.trimHandleBar} />\n </View>\n </GestureDetector>\n <Text style={styles.trimReadout}>\n {clip.trimStartSec.toFixed(1)}s – {(end ?? source).toFixed(1)}s of {source.toFixed(1)}s\n </Text>\n </View>\n )}\n <View style={styles.panelRow}>\n <IconChip icon=\"arrow-left\" disabled={!canMoveLeft} onPress={() => onMove(-1)} label=\"Move left\" />\n <IconChip icon=\"arrow-right\" disabled={!canMoveRight} onPress={() => onMove(1)} label=\"Move right\" />\n <Pressable onPress={onRemove} style={styles.chip} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"trash-can-outline\" size={14} color=\"#FF6B6B\" />\n <Text style={[styles.chipLabel, styles.chipDanger]}>Remove</Text>\n </Pressable>\n </View>\n </View>\n );\n}\n\nfunction IconChip({\n icon,\n label,\n disabled,\n onPress,\n}: {\n icon: React.ComponentProps<typeof MaterialCommunityIcons>['name'];\n label: string;\n disabled?: boolean;\n onPress: () => void;\n}) {\n return (\n <Pressable\n onPress={onPress}\n disabled={disabled}\n style={[styles.chip, disabled && styles.chipDisabled]}\n accessibilityRole=\"button\"\n accessibilityLabel={label}\n >\n <MaterialCommunityIcons name={icon} size={14} color=\"#F7F7FA\" />\n </Pressable>\n );\n}\n\nfunction Stepper({\n label,\n value,\n onLess,\n onMore,\n}: {\n label: string;\n value: string;\n onLess: () => void;\n onMore: () => void;\n}) {\n return (\n <View style={styles.stepper}>\n <Text style={styles.stepperLabel}>{label}</Text>\n <Pressable onPress={onLess} hitSlop={8} accessibilityRole=\"button\" accessibilityLabel={`${label} less`}>\n <MaterialCommunityIcons name=\"minus\" size={15} color=\"#F7F7FA\" />\n </Pressable>\n <Text style={styles.stepperValue}>{value}</Text>\n <Pressable onPress={onMore} hitSlop={8} accessibilityRole=\"button\" accessibilityLabel={`${label} more`}>\n <MaterialCommunityIcons name=\"plus\" size={15} color=\"#F7F7FA\" />\n </Pressable>\n </View>\n );\n}\n\ninterface VoiceOption {\n id: string;\n label: string;\n /** true when this is a cloned profile (SPEAK takes profileId not voice). */\n profile?: boolean;\n /** Preset voices are engine-bound - SPEAK must name it or the server\n * rejects with \"only supports engine X\" (measured live). */\n engine?: string;\n}\n\nfunction parseVoices(result: Record<string, unknown>): VoiceOption[] {\n // Live shape (VoiceBox server): ONE flat `voices` array, each entry\n // { id, name, kind: 'preset' | 'profile', engine, language, gender }.\n // Presets also appear wrapped as profiles named \"preset:<engine>:<id>\" -\n // duplicates for the picker, so those are dropped.\n const raw = (Array.isArray(result.voices) ? result.voices : Array.isArray(result) ? result : []) as unknown[];\n const out: VoiceOption[] = [];\n for (const entry of raw) {\n if (!entry || typeof entry !== 'object') continue;\n const e = entry as Record<string, unknown>;\n const id = (e.id ?? e.profileId ?? e.voice ?? e.name) as string | undefined;\n if (!id) continue;\n const name = String(e.name ?? e.label ?? id);\n const kind = String(e.kind ?? 'preset');\n if (kind === 'profile' && name.startsWith('preset:')) continue;\n out.push({\n id: String(id),\n label: name,\n profile: kind === 'profile',\n engine: typeof e.engine === 'string' ? e.engine : undefined,\n });\n }\n return out;\n}\n\n/**\n * Voiceover for the timeline, powered by the voicebox connector (the\n * VoiceBox server behind it does the actual TTS/cloning):\n * - pick a voice (LIST_VOICES: engine voices + the user's cloned profiles)\n * - optional style direction (SPEAK's `instruct`)\n * - narrate typed text, or transcribe the selected clip and re-voice it\n * - clone your own voice from a board audio sample (CLONE_VOICE)\n * The generated audio lands on the timeline as the voiceover track; export\n * muxes it under the video (ADD_AUDIO, mix or replace).\n */\nfunction VoicePanel({\n runAction,\n uploadMedia,\n audioRecorder,\n voiceover,\n selectedClip,\n onVoiceover,\n onNotice,\n}: {\n runAction?: RunMediaAction;\n uploadMedia?: (localUri: string) => Promise<string>;\n audioRecorder?: AudioRecorderSeam;\n voiceover: Voiceover | null;\n selectedClip: EditorClip | null;\n onVoiceover: (voiceover: Voiceover | null) => void;\n onNotice: (text: string | null) => void;\n}) {\n const [voices, setVoices] = useState<VoiceOption[]>([]);\n const [voice, setVoice] = useState<VoiceOption | null>(null);\n const [text, setText] = useState(voiceover?.text ?? '');\n const [instruct, setInstruct] = useState('');\n const [busy, setBusy] = useState<string | null>(null);\n /** null = idle; otherwise which flow the mic is recording for. */\n const [recording, setRecording] = useState<'dictate' | 'clone' | null>(null);\n const [cloneName, setCloneName] = useState('');\n const [cloneSample, setCloneSample] = useState<{ url: string; referenceText: string } | null>(null);\n\n const canRecord = Boolean(audioRecorder && uploadMedia && runAction);\n\n /** One press-to-toggle record flow: capture -> upload -> transcribe. */\n const toggleRecord = (purpose: 'dictate' | 'clone') => {\n if (!audioRecorder || !uploadMedia || !runAction) return;\n if (recording === purpose) {\n setRecording(null);\n setBusy('Processing recording');\n audioRecorder\n .stop()\n .then(async (uri) => {\n if (!uri) throw new Error('Nothing was recorded.');\n const url = await uploadMedia(uri);\n const result = await runAction('yantra-voicebox', 'YANTRA_VOICEBOX_TRANSCRIBE', { audioUrl: url });\n const transcript =\n (result.text as string | undefined) ??\n (result.transcript as string | undefined) ??\n (typeof result.output === 'string' ? result.output : '');\n if (purpose === 'dictate') {\n if (!transcript) throw new Error('Could not hear any words in that.');\n setText(transcript);\n onNotice('Heard you - pick a voice and Generate to say it as them.');\n } else {\n setCloneSample({ url, referenceText: transcript });\n onNotice(\n transcript\n ? 'Sample ready - check the transcript matches what you said, then create your voice.'\n : 'Sample uploaded, but transcription was empty - type what you said, then create.',\n );\n }\n })\n .catch((err: unknown) => onNotice(friendlyMediaError(err, 'voice transcription')))\n .finally(() => setBusy(null));\n return;\n }\n if (recording !== null) return;\n audioRecorder\n .start()\n .then(() => setRecording(purpose))\n .catch((err: unknown) => onNotice(friendlyMediaError(err, 'voice recording')));\n };\n\n const createCloneVoice = () => {\n if (!runAction || !cloneSample || !cloneName.trim() || !cloneSample.referenceText.trim() || busy) return;\n setBusy('Creating your voice');\n runAction('yantra-voicebox', 'YANTRA_VOICEBOX_CLONE_VOICE', {\n name: cloneName.trim(),\n sampleUrl: cloneSample.url,\n referenceText: cloneSample.referenceText.trim(),\n })\n .then(async () => {\n const result = await runAction('yantra-voicebox', 'YANTRA_VOICEBOX_LIST_VOICES', {});\n const parsed = parseVoices(result);\n setVoices(parsed);\n const mine = parsed.find((v) => v.profile && v.label === cloneName.trim());\n if (mine) setVoice(mine);\n setCloneSample(null);\n setCloneName('');\n onNotice('Your voice is ready - it is selected, Generate speaks as you.');\n })\n .catch((err: unknown) => onNotice(friendlyMediaError(err, 'voice cloning')))\n .finally(() => setBusy(null));\n };\n\n useEffect(() => {\n if (!runAction) return;\n let cancelled = false;\n runAction('yantra-voicebox', 'YANTRA_VOICEBOX_LIST_VOICES', {})\n .then((result) => {\n if (cancelled) return;\n const parsed = parseVoices(result);\n setVoices(parsed);\n setVoice((prev) => prev ?? parsed[0] ?? null);\n })\n .catch(() => {\n if (!cancelled) setVoices([]);\n });\n return () => {\n cancelled = true;\n };\n }, [runAction]);\n\n if (!runAction) {\n return <Text style={styles.panelHint}>Voiceover needs the host connector - not wired in this host.</Text>;\n }\n\n const transcribeClip = () => {\n if (!selectedClip || selectedClip.type !== 'video' || busy) return;\n setBusy('Transcribing');\n runAction('yantra-voicebox', 'YANTRA_VOICEBOX_TRANSCRIBE', { audioUrl: selectedClip.src })\n .then((result) => {\n const t =\n (result.text as string | undefined) ??\n (result.transcript as string | undefined) ??\n (typeof result.output === 'string' ? result.output : undefined);\n if (!t) throw new Error('No transcript came back.');\n setText(t);\n })\n .catch((err: unknown) => onNotice(friendlyMediaError(err, 'transcription')))\n .finally(() => setBusy(null));\n };\n\n const generate = () => {\n if (!text.trim() || busy) return;\n setBusy('Generating');\n runAction('yantra-voicebox', 'YANTRA_VOICEBOX_SPEAK', {\n text: text.trim(),\n ...(voice\n ? voice.profile\n ? { profileId: voice.id }\n : { voice: voice.id, ...(voice.engine ? { engine: voice.engine } : {}) }\n : {}),\n ...(instruct.trim() ? { instruct: instruct.trim() } : {}),\n })\n .then((result) => {\n const audioUrl = resultUrl(result, 'SPEAK');\n onVoiceover({\n audioUrl,\n mode: voiceover?.mode ?? 'mix',\n voiceLabel: voice?.label,\n text: text.trim(),\n });\n onNotice('Voiceover ready - it plays under the whole timeline on export.');\n })\n .catch((err: unknown) => onNotice(friendlyMediaError(err, 'voiceover')))\n .finally(() => setBusy(null));\n };\n\n return (\n <ScrollView style={styles.voiceScroll} keyboardShouldPersistTaps=\"handled\">\n <ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.panelRow}>\n {voices.length === 0 ? (\n <Text style={styles.panelHint}>Loading voices…</Text>\n ) : (\n voices.map((v) => {\n const active = voice?.id === v.id;\n return (\n <Pressable\n key={`${v.profile ? 'p' : 'v'}-${v.id}`}\n onPress={() => setVoice(v)}\n style={[styles.chip, active && styles.chipActive]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: active }}\n >\n <Text style={[styles.chipLabel, active && styles.chipLabelActive]}>\n {v.profile ? '★ ' : ''}\n {v.label}\n </Text>\n </Pressable>\n );\n })\n )}\n </ScrollView>\n <TextInput\n value={instruct}\n onChangeText={setInstruct}\n placeholder=\"Direction (optional) - calm, warm, excited…\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.voiceInstruct}\n selectionColor=\"#8B7CFF\"\n />\n <TextInput\n value={text}\n onChangeText={setText}\n placeholder=\"What should the voice say?\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.voiceText}\n selectionColor=\"#8B7CFF\"\n multiline\n />\n <View style={styles.panelRow}>\n {canRecord ? (\n <Pressable\n onPress={() => toggleRecord('dictate')}\n style={[styles.chip, recording === 'dictate' && styles.chipRecording]}\n accessibilityRole=\"button\"\n accessibilityLabel={recording === 'dictate' ? 'Stop recording' : 'Speak instead of typing'}\n >\n <MaterialCommunityIcons\n name={recording === 'dictate' ? 'stop-circle-outline' : 'microphone'}\n size={14}\n color={recording === 'dictate' ? '#FF8484' : '#F7F7FA'}\n />\n <Text style={[styles.chipLabel, recording === 'dictate' && styles.chipDanger]}>\n {recording === 'dictate' ? 'Stop' : 'Speak'}\n </Text>\n </Pressable>\n ) : null}\n {selectedClip?.type === 'video' ? (\n <Pressable onPress={transcribeClip} style={styles.chip} accessibilityRole=\"button\">\n <Text style={styles.chipLabel}>{busy === 'Transcribing' ? 'Transcribing…' : 'From clip'}</Text>\n </Pressable>\n ) : null}\n <Pressable\n onPress={generate}\n disabled={!text.trim() || busy !== null}\n style={[styles.chip, styles.chipActive, (!text.trim() || busy !== null) && styles.chipDisabled]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n {busy === 'Generating' ? 'Generating…' : voiceover ? 'Regenerate' : 'Generate voiceover'}\n </Text>\n </Pressable>\n </View>\n {canRecord ? (\n <View style={styles.cloneBox}>\n <Text style={styles.cloneTitle}>MY VOICE</Text>\n {cloneSample === null ? (\n <View style={styles.panelRow}>\n <Pressable\n onPress={() => toggleRecord('clone')}\n style={[styles.chip, recording === 'clone' && styles.chipRecording]}\n accessibilityRole=\"button\"\n >\n <MaterialCommunityIcons\n name={recording === 'clone' ? 'stop-circle-outline' : 'microphone-plus'}\n size={14}\n color={recording === 'clone' ? '#FF8484' : '#F7F7FA'}\n />\n <Text style={[styles.chipLabel, recording === 'clone' && styles.chipDanger]}>\n {recording === 'clone' ? 'Stop' : 'Record a sample'}\n </Text>\n </Pressable>\n <Text style={styles.cloneHint}>Read a sentence or two, naturally.</Text>\n </View>\n ) : (\n <>\n <TextInput\n value={cloneName}\n onChangeText={setCloneName}\n placeholder=\"Name this voice - e.g. Me\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.voiceInstruct}\n selectionColor=\"#8B7CFF\"\n />\n <TextInput\n value={cloneSample.referenceText}\n onChangeText={(referenceText) => setCloneSample({ ...cloneSample, referenceText })}\n placeholder=\"What you said in the sample\"\n placeholderTextColor=\"#5A5A66\"\n style={styles.voiceText}\n selectionColor=\"#8B7CFF\"\n multiline\n />\n <View style={styles.panelRow}>\n <Pressable\n onPress={createCloneVoice}\n disabled={!cloneName.trim() || !cloneSample.referenceText.trim() || busy !== null}\n style={[\n styles.chip,\n styles.chipActive,\n (!cloneName.trim() || !cloneSample.referenceText.trim() || busy !== null) &&\n styles.chipDisabled,\n ]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, styles.chipLabelActive]}>\n {busy === 'Creating your voice' ? 'Creating…' : 'Create my voice'}\n </Text>\n </Pressable>\n <Pressable\n onPress={() => setCloneSample(null)}\n style={styles.chip}\n accessibilityRole=\"button\"\n >\n <Text style={styles.chipLabel}>Discard</Text>\n </Pressable>\n </View>\n </>\n )}\n </View>\n ) : null}\n {voiceover ? (\n <View style={styles.panelRow}>\n {(['mix', 'replace'] as const).map((mode) => {\n const active = voiceover.mode === mode;\n return (\n <Pressable\n key={mode}\n onPress={() => onVoiceover({ ...voiceover, mode })}\n style={[styles.chip, active && styles.chipActive]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, active && styles.chipLabelActive]}>\n {mode === 'mix' ? 'Mix under audio' : 'Replace audio'}\n </Text>\n </Pressable>\n );\n })}\n <Pressable onPress={() => onVoiceover(null)} style={styles.chip} accessibilityRole=\"button\">\n <Text style={[styles.chipLabel, styles.chipDanger]}>Remove</Text>\n </Pressable>\n </View>\n ) : null}\n </ScrollView>\n );\n}\n\n/**\n * Soundtrack under the whole cut - an original track composed on demand by\n * the yantra-audio connector from a style prompt (licensing-clean, unlike\n * fetching commercial songs), muxed at export via ADD_AUDIO before the\n * voiceover. mix ducks under the clips' audio; replace swaps it out.\n */\nfunction SoundtrackPanel({\n runAction,\n soundtrack,\n totalSec,\n onSoundtrack,\n onNotice,\n}: {\n runAction?: RunMediaAction;\n soundtrack: Soundtrack | null;\n totalSec: number;\n onSoundtrack: (soundtrack: Soundtrack | null) => void;\n onNotice: (notice: string) => void;\n}) {\n const [prompt, setPrompt] = useState('');\n const [busy, setBusy] = useState(false);\n\n const generate = useCallback(async () => {\n const styleText = prompt.trim();\n if (!styleText || !runAction || busy) return;\n setBusy(true);\n try {\n // Compose to the cut's length; the model floors around 10s.\n const durationSec = Math.min(120, Math.max(10, Math.ceil(totalSec || 15)));\n // Model pin matters: live-smoked - without it the run dies, with\n // it the connector delivers an mp3 (falling back across providers\n // if the primary lane fails). Contract:\n // {status, artifacts:[{type:'audio', url}]}.\n const result = await runAction('yantra-audio', 'YANTRA_AUDIO_RUN_PROMPT', {\n prompt: styleText,\n model: 'fal-ai/elevenlabs/music',\n durationSec,\n format: 'mp3',\n });\n onSoundtrack({ audioUrl: resultUrl(result, 'RUN_PROMPT'), mode: 'mix', title: styleText });\n } catch (err) {\n onNotice(friendlyMediaError(err, 'soundtrack'));\n } finally {\n setBusy(false);\n }\n }, [prompt, runAction, busy, totalSec, onSoundtrack, onNotice]);\n\n if (!runAction) return null;\n\n return (\n <View style={styles.soundtrackSection}>\n {soundtrack ? (\n <View style={styles.panelRow}>\n <MaterialCommunityIcons name=\"music-note\" size={14} color=\"#8B7CFF\" />\n <Text style={styles.soundtrackTitle} numberOfLines={1}>\n {soundtrack.title || 'Soundtrack'}\n </Text>\n {(['mix', 'replace'] as const).map((mode) => {\n const active = soundtrack.mode === mode;\n return (\n <Pressable\n key={mode}\n onPress={() => onSoundtrack({ ...soundtrack, mode })}\n style={[styles.chip, active && styles.chipActive]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, active && styles.chipLabelActive]}>\n {mode === 'mix' ? 'Mix under audio' : 'Replace audio'}\n </Text>\n </Pressable>\n );\n })}\n <Pressable onPress={() => onSoundtrack(null)} style={styles.chip} accessibilityRole=\"button\">\n <Text style={[styles.chipLabel, styles.chipDanger]}>Remove</Text>\n </Pressable>\n </View>\n ) : (\n <>\n <View style={styles.panelRow}>\n <TextInput\n value={prompt}\n onChangeText={setPrompt}\n style={[styles.textInput, styles.soundtrackInput]}\n placeholder=\"Soundtrack style - e.g. energetic Punjabi hip hop, heavy bassline\"\n placeholderTextColor=\"#5A5A66\"\n selectionColor=\"#8B7CFF\"\n returnKeyType=\"done\"\n editable={!busy}\n />\n <Pressable\n onPress={() => void generate()}\n disabled={busy || !prompt.trim()}\n style={[styles.chip, prompt.trim() && !busy ? styles.chipActive : null]}\n accessibilityRole=\"button\"\n >\n <Text style={[styles.chipLabel, prompt.trim() && !busy ? styles.chipLabelActive : null]}>\n {busy ? 'Composing…' : 'Generate'}\n </Text>\n </Pressable>\n </View>\n <Text style={styles.panelHint}>\n An original track is composed for the whole cut - describe genre, mood, and energy.\n </Text>\n </>\n )}\n </View>\n );\n}\n\n/* ---------------------------------- styles --------------------------------- */\n\nconst styles = StyleSheet.create({\n root: { flex: 1, backgroundColor: '#101013' },\n header: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n height: 52,\n paddingHorizontal: 14,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n backgroundColor: '#17171b',\n },\n headerCopy: { flex: 1, minWidth: 0, gap: 2 },\n headerProject: { color: '#F2F2F5', fontSize: 16, fontWeight: '600' },\n headerSaved: { color: '#C8C8D0', fontSize: 12, fontWeight: '600' },\n headerSavedDim: { color: '#8B8B96', fontWeight: '500' },\n headerGhostBtn: { paddingHorizontal: 8, paddingVertical: 8, minHeight: 44, justifyContent: 'center' },\n headerGhost: { color: '#E8E8EE', fontSize: 14, fontWeight: '600' },\n headerSpacer: { flex: 1, minWidth: 8 },\n exportBtn: {\n paddingHorizontal: 12,\n paddingVertical: 7,\n borderRadius: 8,\n backgroundColor: '#E8E8EE',\n },\n exportBtnLabel: { color: '#101013', fontSize: 13, fontWeight: '700' },\n projectsPane: { gap: 10 },\n projectActions: { flexDirection: 'row', gap: 8 },\n solidBtn: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n minHeight: 44,\n paddingHorizontal: 14,\n borderRadius: 10,\n backgroundColor: '#F2F2F5',\n },\n solidBtnLabel: { color: '#101013', fontSize: 14, fontWeight: '700' },\n projectRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingHorizontal: 10,\n paddingVertical: 10,\n borderRadius: 10,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#32323a',\n backgroundColor: '#1a1a20',\n },\n projectRowOn: { borderColor: '#5B6CFF', backgroundColor: '#1c2440' },\n projectRowCopy: { flex: 1, minWidth: 0, gap: 2 },\n projectRowTitle: { color: '#F2F2F5', fontSize: 14, fontWeight: '600' },\n projectRowMeta: { color: '#8B8B96', fontSize: 11 },\n renameInput: {\n flex: 1,\n color: '#F2F2F5',\n fontSize: 14,\n paddingVertical: 4,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#5B6CFF',\n },\n stageEmptyCopy: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n gap: 10,\n paddingHorizontal: 28,\n },\n stageEmptyActions: { width: '100%', maxWidth: 280, gap: 8, marginTop: 4 },\n ghostBtn: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 6,\n minHeight: 44,\n paddingHorizontal: 14,\n borderRadius: 10,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#3A3A44',\n backgroundColor: '#1A1A20',\n },\n ghostBtnLabel: { color: '#F2F2F5', fontSize: 14, fontWeight: '700' },\n disabled: { opacity: 0.35 },\n workspace: { flex: 1, minHeight: 0, position: 'relative' },\n sheet: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 76,\n maxHeight: 360,\n zIndex: 40,\n backgroundColor: '#17171b',\n borderTopLeftRadius: 18,\n borderTopRightRadius: 18,\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: '#2c2c34',\n overflow: 'hidden',\n shadowColor: '#000',\n shadowOpacity: 0.35,\n shadowRadius: 16,\n shadowOffset: { width: 0, height: -4 },\n elevation: 12,\n },\n sheetTall: { maxHeight: 480, height: 480 },\n templateSheetBody: { flex: 1, minHeight: 0 },\n sheetHead: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingHorizontal: 14,\n height: 44,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n },\n sheetTitle: { color: '#F2F2F5', fontSize: 15, fontWeight: '600', flex: 1 },\n sheetNewBtn: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 10,\n height: 30,\n borderRadius: 8,\n backgroundColor: '#F2F2F5',\n },\n sheetNewBtnLabel: { color: '#101013', fontSize: 12, fontWeight: '700' },\n dock: {\n flexGrow: 0,\n flexShrink: 0,\n maxHeight: 76,\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: '#26262c',\n backgroundColor: '#141418',\n },\n dockInner: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 8, gap: 6, paddingTop: 8 },\n dockTab: { minWidth: 68, alignItems: 'center', gap: 4, paddingVertical: 8, paddingHorizontal: 6, borderRadius: 12 },\n dockTabOn: { backgroundColor: '#243a5e' },\n recordPane: { gap: 8 },\n recordRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n minHeight: 52,\n paddingHorizontal: 10,\n borderRadius: 12,\n backgroundColor: '#1A1A20',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#32323A',\n },\n recordError: {\n color: '#FECACA',\n fontSize: 13,\n lineHeight: 18,\n padding: 10,\n borderRadius: 10,\n backgroundColor: 'rgba(248, 113, 113, 0.12)',\n },\n dockRecord: { minWidth: 72 },\n dockRecordOn: { backgroundColor: 'rgba(248, 113, 113, 0.16)' },\n dockRecordLabel: { color: '#FECACA' },\n dockRule: { width: StyleSheet.hairlineWidth, height: 28, backgroundColor: '#32323A', marginHorizontal: 4 },\n dockLabel: { color: '#8B8B96', fontSize: 10, fontWeight: '600' },\n dockLabelOn: { color: '#F2F2F5' },\n captionRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n paddingVertical: 10,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n },\n captionRowText: { flex: 1, color: '#F2F2F5', fontSize: 14 },\n captionRowMeta: { color: '#8B8B96', fontSize: 11, fontVariant: ['tabular-nums'] },\n sidePaneScroll: { maxHeight: 268 },\n sidePaneInner: { paddingBottom: 20 },\n stageCol: { flex: 1, minHeight: 0, backgroundColor: '#101013' },\n stageWell: {\n flex: 1,\n backgroundColor: '#08080a',\n padding: 10,\n minHeight: 0,\n position: 'relative',\n },\n stage: {\n flex: 1,\n overflow: 'hidden',\n backgroundColor: '#000000',\n borderRadius: 2,\n },\n stageEmpty: { flex: 1, position: 'relative' },\n stageEmptyTitle: { color: '#E8E8EE', fontSize: 15, fontWeight: '600' },\n stageEmptyDetail: { color: '#7A7A88', fontSize: 12.5, textAlign: 'center', lineHeight: 18 },\n stageText: {\n position: 'absolute',\n transform: [{ translateX: -60 }, { translateY: -14 }],\n maxWidth: 160,\n paddingHorizontal: 10,\n paddingVertical: 5,\n borderRadius: 8,\n backgroundColor: 'rgba(10, 10, 12, 0.55)',\n borderWidth: 1,\n borderColor: 'transparent',\n },\n stageTextActive: { borderColor: '#8B7CFF' },\n stageTextLabel: { color: '#F7F7FA', fontSize: 15, fontWeight: '600' },\n transport: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 12,\n paddingVertical: 8,\n },\n transportDisabled: { opacity: 0.3 },\n transportTime: { color: '#F7F7FA', fontSize: 12.5, fontVariant: ['tabular-nums'] },\n transportTimeDim: { color: '#7A7A88' },\n timeline: {\n height: 200,\n flexGrow: 0,\n flexShrink: 0,\n backgroundColor: '#17171b',\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: '#26262c',\n },\n timelineCompact: { height: 128 },\n timelineBar: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 52,\n paddingHorizontal: 6,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n },\n timelineIconBtn: { width: 40, height: 40, alignItems: 'center', justifyContent: 'center' },\n transportBtn: { width: 40, height: 40, alignItems: 'center', justifyContent: 'center' },\n transportPlay: {\n width: 44,\n height: 44,\n borderRadius: 22,\n backgroundColor: '#F2F2F5',\n alignItems: 'center',\n justifyContent: 'center',\n marginHorizontal: 4,\n },\n timelineRule: { width: StyleSheet.hairlineWidth, height: 16, backgroundColor: '#26262c', marginHorizontal: 4 },\n segmentMenu: {\n paddingHorizontal: 10,\n paddingBottom: 8,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n gap: 2,\n },\n segmentMenuRow: { flexDirection: 'row', alignItems: 'center', gap: 8, paddingVertical: 6 },\n segmentMenuCopy: { flex: 1, minWidth: 0 },\n segmentMenuLabel: { color: '#F2F2F5', fontSize: 13, fontWeight: '600' },\n segmentMenuHint: { color: '#8B8B96', fontSize: 11 },\n timelineBarActions: { flexDirection: 'row', alignItems: 'center', gap: 4 },\n laneRow: {\n flexDirection: 'row',\n height: 56,\n borderBottomWidth: StyleSheet.hairlineWidth,\n borderBottomColor: '#26262c',\n },\n laneGutter: {\n width: 108,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingHorizontal: 8,\n borderRightWidth: StyleSheet.hairlineWidth,\n borderRightColor: '#26262c',\n backgroundColor: '#17171b',\n },\n laneBody: { flex: 1, minWidth: 0 },\n laneLabelRow: { paddingBottom: 4 },\n laneLabel: { color: '#9A9AA5', fontSize: 10, fontWeight: '700', letterSpacing: 0.6, textTransform: 'uppercase' },\n textTrack: { flexDirection: 'row', gap: 6, marginBottom: 6 },\n textPill: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 5,\n paddingHorizontal: 9,\n paddingVertical: 4,\n borderRadius: 7,\n backgroundColor: '#2A2440',\n borderWidth: 1,\n borderColor: 'transparent',\n maxWidth: 150,\n },\n textPillActive: { borderColor: '#8B7CFF' },\n textPillLabel: { color: '#DCD6FF', fontSize: 11.5 },\n clipTrack: { flexDirection: 'row', gap: 6, minHeight: 56 },\n clipTrackEmpty: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n margin: 8,\n paddingHorizontal: 12,\n height: 40,\n borderRadius: 8,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#3A3A44',\n borderStyle: 'dashed',\n backgroundColor: '#1A1A20',\n },\n clipTrackEmptyLabel: { color: '#8B8B96', fontSize: 13, fontWeight: '600' },\n clipBlock: {\n width: 96,\n height: 56,\n borderRadius: 9,\n overflow: 'hidden',\n backgroundColor: '#16161A',\n borderWidth: 1.5,\n borderColor: 'transparent',\n },\n clipBlockActive: { borderColor: '#8B7CFF' },\n clipMeta: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingHorizontal: 6,\n paddingVertical: 2,\n backgroundColor: 'rgba(10, 10, 12, 0.6)',\n },\n clipMetaText: { color: '#E8E8EE', fontSize: 9.5, fontVariant: ['tabular-nums'] },\n panel: {\n flex: 1,\n minHeight: 0,\n paddingHorizontal: 10,\n paddingVertical: 10,\n },\n mediaPane: { gap: 12 },\n pickRow: { flexDirection: 'row', gap: 8 },\n pickBtn: {\n flex: 1,\n alignItems: 'center',\n gap: 6,\n paddingVertical: 12,\n borderRadius: 12,\n backgroundColor: '#222228',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: '#32323a',\n },\n pickBtnLabel: { color: '#E8E8EE', fontSize: 12, fontWeight: '600' },\n dropzone: {\n alignItems: 'center',\n gap: 4,\n paddingVertical: 22,\n paddingHorizontal: 10,\n borderRadius: 12,\n borderWidth: 1,\n borderStyle: 'dashed',\n borderColor: 'rgba(255,255,255,0.18)',\n backgroundColor: '#16161A',\n },\n dropzoneTitle: { color: '#F7F7FA', fontSize: 13, fontWeight: '600' },\n dropzoneHint: { color: '#7A7A88', fontSize: 11, textAlign: 'center' },\n mediaGrid: { flexDirection: 'row', flexWrap: 'wrap', gap: 8, paddingBottom: 16 },\n panelRow: { flexDirection: 'row', alignItems: 'center', gap: 8, paddingVertical: 4 },\n panelEmpty: { color: '#7A7A88', fontSize: 13 },\n panelHint: { color: '#7A7A88', fontSize: 11.5, marginTop: 6 },\n panelBar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 8,\n },\n panelBarTitle: {\n color: '#C8C8D0',\n fontSize: 11,\n fontWeight: '700',\n letterSpacing: 0.6,\n textTransform: 'uppercase',\n },\n panelBarBtn: { flexDirection: 'row', alignItems: 'center', gap: 4, paddingHorizontal: 8, paddingVertical: 5 },\n panelBarBtnLabel: { color: '#F7F7FA', fontSize: 12, fontWeight: '600' },\n emptyPanel: {\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: 8,\n paddingVertical: 16,\n paddingHorizontal: 12,\n },\n templatesPane: { gap: 10, paddingBottom: 12 },\n generateField: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n minHeight: 88,\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 12,\n paddingBottom: 10,\n gap: 10,\n borderRadius: 12,\n backgroundColor: '#141418',\n borderWidth: 1,\n borderColor: '#2E2E38',\n },\n generateIcon: { marginTop: 2 },\n generateInput: {\n flex: 1,\n color: '#F2F2F5',\n fontSize: 16,\n lineHeight: 22,\n minHeight: 64,\n padding: 0,\n },\n generateBtn: {\n minHeight: 44,\n borderRadius: 12,\n backgroundColor: '#8B7CFF',\n alignItems: 'center',\n justifyContent: 'center',\n },\n generateBtnLabel: { color: '#0A0A0C', fontSize: 15, fontWeight: '700' },\n searchField: {\n flexDirection: 'row',\n alignItems: 'center',\n minHeight: 44,\n marginTop: 4,\n paddingLeft: 12,\n paddingRight: 8,\n gap: 8,\n borderRadius: 12,\n backgroundColor: '#141418',\n borderWidth: 1,\n borderColor: '#2E2E38',\n },\n searchInput: {\n flex: 1,\n color: '#F2F2F5',\n fontSize: 16,\n paddingVertical: 10,\n },\n searchClear: {\n width: 36,\n height: 36,\n alignItems: 'center',\n justifyContent: 'center',\n },\n templateList: { flex: 1 },\n templateListInner: { paddingHorizontal: 12, paddingBottom: 16 },\n templateRow: { flexDirection: 'row', alignItems: 'flex-start', gap: 8, marginBottom: 10 },\n templateGrid: { flexDirection: 'row', flexWrap: 'wrap', gap: 8 },\n templateCard: { flex: 1, gap: 6, minWidth: 0 },\n templateCover: { width: '100%', aspectRatio: 16 / 9, borderRadius: 8, backgroundColor: '#121216' },\n templateTitle: { color: '#E8E8EE', fontSize: 12, fontWeight: '600', minHeight: 32 },\n templateActions: { flexDirection: 'row', alignItems: 'stretch', gap: 6 },\n templateGenerate: {\n flex: 1,\n minHeight: 32,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 4,\n borderRadius: 8,\n backgroundColor: '#2A2A32',\n borderWidth: 1,\n borderColor: '#3A3A44',\n paddingHorizontal: 4,\n },\n templateGenerateLabel: { color: '#F2F2F5', fontSize: 11, fontWeight: '600' },\n templatePreviewBtn: {\n flex: 1,\n minHeight: 32,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 4,\n borderRadius: 8,\n backgroundColor: '#141418',\n borderWidth: 1,\n borderColor: '#2E2E38',\n paddingHorizontal: 4,\n },\n templatePreviewLabel: { color: '#D8D8E0', fontSize: 11, fontWeight: '600' },\n templatePreviewOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 76,\n zIndex: 60,\n backgroundColor: 'rgba(8,8,10,0.94)',\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n gap: 6,\n },\n templatePreviewBar: { flexDirection: 'row', alignItems: 'center', gap: 8 },\n templatePreviewKicker: {\n color: '#F2F2F5',\n fontSize: 10,\n fontWeight: '700',\n letterSpacing: 0.3,\n backgroundColor: 'rgba(255,255,255,0.15)',\n overflow: 'hidden',\n paddingHorizontal: 8,\n paddingVertical: 3,\n borderRadius: 99,\n },\n templatePreviewBarTitle: { flex: 1, color: 'rgba(255,255,255,0.85)', fontSize: 13 },\n templatePreviewAspect: {\n color: 'rgba(255,255,255,0.7)',\n fontSize: 11,\n backgroundColor: 'rgba(255,255,255,0.1)',\n overflow: 'hidden',\n paddingHorizontal: 6,\n paddingVertical: 2,\n borderRadius: 4,\n },\n templatePreviewHint: { color: 'rgba(255,255,255,0.5)', fontSize: 11 },\n templatePreviewMedia: {\n flex: 1,\n minHeight: 220,\n overflow: 'hidden',\n backgroundColor: '#000',\n borderRadius: 4,\n },\n templatePreviewMediaFill: { flex: 1, minHeight: 220 },\n templateWebView: { flex: 1, minHeight: 220, backgroundColor: '#000' },\n templatePreviewImage: { width: '100%', height: '100%', minHeight: 220 },\n templateFooter: {\n height: 8,\n },\n templateLoadBar: {\n width: '100%',\n paddingTop: 10,\n paddingBottom: 16,\n backgroundColor: '#17171b',\n },\n loadMoreBtn: {\n width: '100%',\n minHeight: 48,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n borderRadius: 12,\n backgroundColor: '#E8E8EE',\n },\n loadMoreBtnPressed: { opacity: 0.88 },\n loadMoreBtnLabel: { color: '#101013', fontSize: 16, fontWeight: '700' },\n templateFooterHint: {\n color: '#6A6A74',\n fontSize: 11,\n textAlign: 'center',\n paddingVertical: 8,\n },\n clipInspector: {\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: '#26262c',\n backgroundColor: '#141418',\n paddingHorizontal: 12,\n paddingVertical: 8,\n gap: 6,\n },\n clipInspectorTitle: { color: '#F2F2F5', fontSize: 13, fontWeight: '600' },\n busyOverlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 80,\n backgroundColor: 'rgba(8,8,10,0.62)',\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 28,\n },\n busyCard: {\n width: '100%',\n maxWidth: 320,\n borderRadius: 16,\n backgroundColor: '#1c1c22',\n paddingHorizontal: 20,\n paddingVertical: 22,\n alignItems: 'center',\n gap: 10,\n },\n busyTitle: { color: '#F7F7FA', fontSize: 16, fontWeight: '600' },\n busyDetail: { color: '#A9A9B4', fontSize: 13, textAlign: 'center', lineHeight: 18 },\n busyTrack: {\n marginTop: 6,\n width: '100%',\n height: 4,\n borderRadius: 99,\n backgroundColor: '#2c2c34',\n overflow: 'hidden',\n },\n busyTrackFill: {\n width: '62%',\n height: '100%',\n borderRadius: 99,\n backgroundColor: '#7C8CFF',\n },\n sceneSwatch: { width: 36, height: 36, borderRadius: 8, borderWidth: 1, borderColor: 'rgba(255,255,255,0.12)' },\n logoPreview: { height: 48, width: '100%', marginBottom: 8 },\n logoOverlay: { position: 'absolute', right: 10, bottom: 10, width: 72, height: 28 },\n stageToolbar: {\n position: 'absolute',\n left: 10,\n right: 10,\n bottom: 10,\n flexDirection: 'row',\n gap: 6,\n justifyContent: 'center',\n },\n stagePill: {\n paddingHorizontal: 10,\n paddingVertical: 6,\n borderRadius: 999,\n backgroundColor: 'rgba(10,10,12,0.72)',\n },\n stagePillOn: { backgroundColor: '#8B7CFF' },\n stagePillLabel: { color: '#F7F7FA', fontSize: 11, fontWeight: '600' },\n stageToolRow: { paddingHorizontal: 12, paddingVertical: 6, gap: 6, flexDirection: 'row' },\n textPreset: {\n minWidth: 108,\n paddingHorizontal: 12,\n paddingVertical: 10,\n borderRadius: 10,\n backgroundColor: '#16161A',\n borderWidth: 1,\n borderColor: 'rgba(255,255,255,0.08)',\n },\n textPresetSample: { color: '#F7F7FA', fontSize: 15, fontWeight: '700' },\n textPresetLabel: { color: '#7A7A88', fontSize: 11, marginTop: 4 },\n voiceScroll: { maxHeight: 240 },\n voiceInstruct: {\n color: '#F7F7FA',\n fontSize: 13,\n paddingHorizontal: 12,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#16161A',\n marginTop: 6,\n },\n voiceText: {\n minHeight: 64,\n color: '#F7F7FA',\n fontSize: 13.5,\n lineHeight: 19,\n padding: 12,\n borderRadius: 9,\n backgroundColor: '#16161A',\n marginTop: 8,\n textAlignVertical: 'top',\n },\n chipRecording: { backgroundColor: 'rgba(255, 132, 132, 0.16)' },\n cloneBox: {\n marginTop: 10,\n paddingTop: 10,\n borderTopWidth: StyleSheet.hairlineWidth,\n borderTopColor: 'rgba(255,255,255,0.08)',\n gap: 4,\n },\n cloneTitle: { color: '#8B7CFF', fontSize: 10.5, fontWeight: '700', letterSpacing: 0.8, marginBottom: 2 },\n cloneHint: { color: '#7A7A88', fontSize: 11.5, flexShrink: 1 },\n voTrack: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 6,\n paddingVertical: 4,\n paddingHorizontal: 2,\n marginBottom: 4,\n },\n voTrackLabel: { color: '#DCD6FF', fontSize: 11 },\n mediaTile: { width: 84, height: 56 },\n devicePick: {\n borderRadius: 10,\n borderWidth: 1.5,\n borderColor: '#2A2440',\n borderStyle: 'dashed',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 3,\n },\n devicePickLabel: { color: '#8B7CFF', fontSize: 10, fontWeight: '600' },\n mediaThumb: { width: 84, height: 56, borderRadius: 8, backgroundColor: '#16161A' },\n mediaThumbVideo: { alignItems: 'center', justifyContent: 'center', backgroundColor: '#16161A' },\n mediaAdd: {\n position: 'absolute',\n right: 3,\n top: 3,\n width: 18,\n height: 18,\n borderRadius: 9,\n backgroundColor: '#8B7CFF',\n alignItems: 'center',\n justifyContent: 'center',\n },\n filterTile: { alignItems: 'center', gap: 5, width: 62 },\n filterThumb: {\n width: 56,\n height: 56,\n borderRadius: 10,\n overflow: 'hidden',\n backgroundColor: '#16161A',\n borderWidth: 1.5,\n borderColor: 'transparent',\n },\n filterThumbActive: { borderColor: '#8B7CFF' },\n filterNoneGlyph: { position: 'absolute', alignSelf: 'center', top: 19 },\n filterLabel: { color: '#9A9AA5', fontSize: 10.5 },\n filterLabelActive: { color: '#F7F7FA', fontWeight: '600' },\n chip: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 5,\n paddingHorizontal: 12,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#1F1F24',\n },\n chipWide: { alignSelf: 'flex-start' },\n chipActive: { backgroundColor: '#8B7CFF' },\n chipDisabled: { opacity: 0.35 },\n chipLabel: { color: '#F7F7FA', fontSize: 12.5, fontWeight: '500' },\n chipLabelActive: { color: '#0A0A0C' },\n chipDanger: { color: '#FF6B6B' },\n textInput: {\n color: '#F7F7FA',\n fontSize: 14,\n paddingHorizontal: 12,\n paddingVertical: 9,\n borderRadius: 9,\n backgroundColor: '#16161A',\n },\n soundtrackSection: { marginTop: 10 },\n soundtrackInput: { flex: 1, minWidth: 0 },\n soundtrackTitle: { flexShrink: 1, fontSize: 12, fontWeight: '600', color: '#F7F7FA' },\n stepper: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 9,\n paddingHorizontal: 12,\n paddingVertical: 8,\n borderRadius: 9,\n backgroundColor: '#1F1F24',\n },\n stepperLabel: { color: '#9A9AA5', fontSize: 11.5 },\n stepperValue: {\n color: '#F7F7FA',\n fontSize: 12.5,\n fontVariant: ['tabular-nums'],\n minWidth: 34,\n textAlign: 'center',\n },\n trimTrack: {\n height: 40,\n borderRadius: 8,\n backgroundColor: '#16161A',\n justifyContent: 'center',\n marginBottom: 4,\n },\n trimWindow: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n borderRadius: 8,\n backgroundColor: 'rgba(139, 124, 255, 0.28)',\n borderWidth: 1.5,\n borderColor: '#8B7CFF',\n },\n trimHandle: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n width: 20,\n alignItems: 'center',\n justifyContent: 'center',\n },\n trimHandleBar: { width: 4, height: 22, borderRadius: 2, backgroundColor: '#F7F7FA' },\n trimReadout: { color: '#9A9AA5', fontSize: 10.5, textAlign: 'center', fontVariant: ['tabular-nums'] },\n toolbarScroll: { flexGrow: 0, borderTopWidth: StyleSheet.hairlineWidth, borderTopColor: 'rgba(255,255,255,0.08)' },\n toolbar: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 10,\n paddingVertical: 8,\n paddingBottom: 10,\n },\n toolbarTab: { alignItems: 'center', gap: 3, minWidth: 56, paddingHorizontal: 6 },\n toolbarLabel: { color: '#C8C8D0', fontSize: 10 },\n toolbarLabelActive: { color: '#8B7CFF', fontWeight: '600' },\n notice: {\n position: 'absolute',\n left: 20,\n right: 20,\n bottom: 84,\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n paddingHorizontal: 14,\n paddingVertical: 11,\n borderRadius: 12,\n backgroundColor: 'rgba(248, 250, 252, 0.96)',\n },\n noticeText: { flex: 1, color: '#0f172a', fontSize: 13 },\n noticeDismiss: { color: '#6C5CE7', fontSize: 13, fontWeight: '600' },\n});\n\nexport default VideoEditorExperience;\n"],"names":["_a","_b","_c","_d"],"mappings":"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"}