@adminide-stack/yantra-mobile 12.0.128 → 12.0.129-alpha.1

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 (360) hide show
  1. package/lib/compute.js +57 -1
  2. package/lib/compute.js.map +1 -1
  3. package/lib/features/agent-chat/NativeAgentChat.js +3 -2
  4. package/lib/features/agent-chat/NativeAgentChat.js.map +1 -1
  5. package/lib/features/apps/AppsCatalog.js +10 -0
  6. package/lib/features/apps/AppsCatalog.js.map +1 -1
  7. package/lib/features/apps/mobileAppCatalog.js +11 -0
  8. package/lib/features/apps/mobileAppCatalog.js.map +1 -1
  9. package/lib/features/canvas/AudioEditorExperience.js +448 -105
  10. package/lib/features/canvas/AudioEditorExperience.js.map +1 -1
  11. package/lib/features/canvas/CanvasAgentChatPane.js +33 -14
  12. package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -1
  13. package/lib/features/canvas/CanvasBoardsGrid.js +493 -41
  14. package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
  15. package/lib/features/canvas/CanvasChatResultCard.js.map +1 -1
  16. package/lib/features/canvas/CanvasEditToolsPanel.js +37 -1
  17. package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -1
  18. package/lib/features/canvas/CanvasExperience.js +237 -22
  19. package/lib/features/canvas/CanvasExperience.js.map +1 -1
  20. package/lib/features/canvas/CanvasGeneratePanel.js +119 -26
  21. package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -1
  22. package/lib/features/canvas/CanvasLooksPanel.js +17 -6
  23. package/lib/features/canvas/CanvasLooksPanel.js.map +1 -1
  24. package/lib/features/canvas/CanvasTasksPanel.js +18 -1
  25. package/lib/features/canvas/CanvasTasksPanel.js.map +1 -1
  26. package/lib/features/canvas/DesignCategoryGallery.js +423 -0
  27. package/lib/features/canvas/DesignCategoryGallery.js.map +1 -0
  28. package/lib/features/canvas/ImageEditorExperience.js +763 -187
  29. package/lib/features/canvas/ImageEditorExperience.js.map +1 -1
  30. package/lib/features/canvas/SetStudioExperience.js +199 -11
  31. package/lib/features/canvas/SetStudioExperience.js.map +1 -1
  32. package/lib/features/canvas/VideoEditorExperience.js +59 -40
  33. package/lib/features/canvas/VideoEditorExperience.js.map +1 -1
  34. package/lib/features/canvas/VideoGeneratorExperience.js +134 -34
  35. package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -1
  36. package/lib/features/canvas/aiEdit.js +4 -2
  37. package/lib/features/canvas/aiEdit.js.map +1 -1
  38. package/lib/features/canvas/audioEditor/AudioWaveform.js +96 -0
  39. package/lib/features/canvas/audioEditor/AudioWaveform.js.map +1 -0
  40. package/lib/features/canvas/audioEditor/audioPeaks.js +93 -0
  41. package/lib/features/canvas/audioEditor/audioPeaks.js.map +1 -0
  42. package/lib/features/canvas/canvasTaskSync.js +34 -7
  43. package/lib/features/canvas/canvasTaskSync.js.map +1 -1
  44. package/lib/features/canvas/canvasTasks.js +23 -3
  45. package/lib/features/canvas/canvasTasks.js.map +1 -1
  46. package/lib/features/canvas/canvasTheme.js +10 -24
  47. package/lib/features/canvas/canvasTheme.js.map +1 -1
  48. package/lib/features/canvas/canvasUi.js +1 -1
  49. package/lib/features/canvas/canvasUi.js.map +1 -1
  50. package/lib/features/canvas/createTiles.js +17 -9
  51. package/lib/features/canvas/createTiles.js.map +1 -1
  52. package/lib/features/canvas/deepLinks.js +35 -5
  53. package/lib/features/canvas/deepLinks.js.map +1 -1
  54. package/lib/features/canvas/designCatalog.js +165 -0
  55. package/lib/features/canvas/designCatalog.js.map +1 -0
  56. package/lib/features/canvas/designCategories.js +262 -0
  57. package/lib/features/canvas/designCategories.js.map +1 -0
  58. package/lib/features/canvas/editorControls.js +406 -0
  59. package/lib/features/canvas/editorControls.js.map +1 -0
  60. package/lib/features/canvas/generationModels.js +5 -3
  61. package/lib/features/canvas/generationModels.js.map +1 -1
  62. package/lib/features/canvas/generationTasks.js +162 -0
  63. package/lib/features/canvas/generationTasks.js.map +1 -0
  64. package/lib/features/canvas/generator/BottomSheet.js +167 -0
  65. package/lib/features/canvas/generator/BottomSheet.js.map +1 -0
  66. package/lib/features/canvas/generator/BusinessCardChatCard.js +155 -0
  67. package/lib/features/canvas/generator/BusinessCardChatCard.js.map +1 -0
  68. package/lib/features/canvas/generator/DirectorSheet.js +163 -0
  69. package/lib/features/canvas/generator/DirectorSheet.js.map +1 -0
  70. package/lib/features/canvas/generator/ReframePreview.js +122 -0
  71. package/lib/features/canvas/generator/ReframePreview.js.map +1 -0
  72. package/lib/features/canvas/generator/RunLogCard.js +119 -0
  73. package/lib/features/canvas/generator/RunLogCard.js.map +1 -0
  74. package/lib/features/canvas/generator/ShotPanel.js +261 -0
  75. package/lib/features/canvas/generator/ShotPanel.js.map +1 -0
  76. package/lib/features/canvas/generator/businessCardWidget.js +117 -0
  77. package/lib/features/canvas/generator/businessCardWidget.js.map +1 -0
  78. package/lib/features/canvas/generator/cameraVocabulary.js +142 -0
  79. package/lib/features/canvas/generator/cameraVocabulary.js.map +1 -0
  80. package/lib/features/canvas/generator/cinematicVocabulary.js +416 -0
  81. package/lib/features/canvas/generator/cinematicVocabulary.js.map +1 -0
  82. package/lib/features/canvas/generator/direction.js +41 -0
  83. package/lib/features/canvas/generator/direction.js.map +1 -0
  84. package/lib/features/canvas/generator/reframeGeometry.js +108 -0
  85. package/lib/features/canvas/generator/reframeGeometry.js.map +1 -0
  86. package/lib/features/canvas/generator/runLog.js +71 -0
  87. package/lib/features/canvas/generator/runLog.js.map +1 -0
  88. package/lib/features/canvas/generator/shot.js +133 -0
  89. package/lib/features/canvas/generator/shot.js.map +1 -0
  90. package/lib/features/canvas/generator/useShotSpec.js +87 -0
  91. package/lib/features/canvas/generator/useShotSpec.js.map +1 -0
  92. package/lib/features/canvas/home/HeroComposer.js +214 -0
  93. package/lib/features/canvas/home/HeroComposer.js.map +1 -0
  94. package/lib/features/canvas/home/HeroMonitor.js +225 -0
  95. package/lib/features/canvas/home/HeroMonitor.js.map +1 -0
  96. package/lib/features/canvas/home/LookDetail.js +185 -0
  97. package/lib/features/canvas/home/LookDetail.js.map +1 -0
  98. package/lib/features/canvas/home/LoopingVideo.js +37 -0
  99. package/lib/features/canvas/home/LoopingVideo.js.map +1 -0
  100. package/lib/features/canvas/home/TemplatesGallery.js +253 -0
  101. package/lib/features/canvas/home/TemplatesGallery.js.map +1 -0
  102. package/lib/features/canvas/home/heroShots.js +100 -0
  103. package/lib/features/canvas/home/heroShots.js.map +1 -0
  104. package/lib/features/canvas/homeWork.js +62 -3
  105. package/lib/features/canvas/homeWork.js.map +1 -1
  106. package/lib/features/canvas/imageEditor/ImageMarkup.js +195 -0
  107. package/lib/features/canvas/imageEditor/ImageMarkup.js.map +1 -0
  108. package/lib/features/canvas/imageEditor/imageEditOps.js +367 -0
  109. package/lib/features/canvas/imageEditor/imageEditOps.js.map +1 -0
  110. package/lib/features/canvas/nativeViewerRegistry.js.map +1 -1
  111. package/lib/features/canvas/rankedCatalogSearch.js +375 -0
  112. package/lib/features/canvas/rankedCatalogSearch.js.map +1 -0
  113. package/lib/features/canvas/recorder/CameraRecorderExperience.js +68 -20
  114. package/lib/features/canvas/recorder/CameraRecorderExperience.js.map +1 -1
  115. package/lib/features/canvas/recorder/RecordingReview.js +272 -0
  116. package/lib/features/canvas/recorder/RecordingReview.js.map +1 -0
  117. package/lib/features/canvas/recorder/RecordingsList.js +179 -0
  118. package/lib/features/canvas/recorder/RecordingsList.js.map +1 -0
  119. package/lib/features/canvas/recorder/recorderOps.js +99 -0
  120. package/lib/features/canvas/recorder/recorderOps.js.map +1 -0
  121. package/lib/features/canvas/seedanceShowcase.js +314 -0
  122. package/lib/features/canvas/seedanceShowcase.js.map +1 -0
  123. package/lib/features/canvas/serverTasks.js +149 -15
  124. package/lib/features/canvas/serverTasks.js.map +1 -1
  125. package/lib/features/canvas/sessionRenewal.js +114 -0
  126. package/lib/features/canvas/sessionRenewal.js.map +1 -0
  127. package/lib/features/canvas/set/SetViewportWebView.js +34 -1
  128. package/lib/features/canvas/set/SetViewportWebView.js.map +1 -1
  129. package/lib/features/canvas/set/agent/setTurn.js +4 -2
  130. package/lib/features/canvas/set/agent/setTurn.js.map +1 -1
  131. package/lib/features/canvas/set/setPresets.js +85 -0
  132. package/lib/features/canvas/set/setPresets.js.map +1 -0
  133. package/lib/features/canvas/set/setProject.js +4 -1
  134. package/lib/features/canvas/set/setProject.js.map +1 -1
  135. package/lib/features/canvas/studioCatalog.js +59 -4
  136. package/lib/features/canvas/studioCatalog.js.map +1 -1
  137. package/lib/features/canvas/studioLooks.js +31 -4
  138. package/lib/features/canvas/studioLooks.js.map +1 -1
  139. package/lib/features/canvas/surfaceIndex.js +1 -14
  140. package/lib/features/canvas/surfaceIndex.js.map +1 -1
  141. package/lib/features/canvas/templateSearch.js +489 -0
  142. package/lib/features/canvas/templateSearch.js.map +1 -0
  143. package/lib/features/canvas/useCanvasSession.js +28 -6
  144. package/lib/features/canvas/useCanvasSession.js.map +1 -1
  145. package/lib/features/canvas/useStudioCatalogTemplates.js +41 -5
  146. package/lib/features/canvas/useStudioCatalogTemplates.js.map +1 -1
  147. package/lib/features/canvas/videoEditor/EditorPanels.js +531 -0
  148. package/lib/features/canvas/videoEditor/EditorPanels.js.map +1 -0
  149. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +48 -4
  150. package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -1
  151. package/lib/features/canvas/videoEditor/agent/agentLoop.js +2 -0
  152. package/lib/features/canvas/videoEditor/agent/agentLoop.js.map +1 -1
  153. package/lib/features/canvas/videoEditor/agent/brainClient.js +97 -27
  154. package/lib/features/canvas/videoEditor/agent/brainClient.js.map +1 -1
  155. package/lib/features/canvas/videoEditor/agent/cutTools.js +707 -3
  156. package/lib/features/canvas/videoEditor/agent/cutTools.js.map +1 -1
  157. package/lib/features/canvas/videoEditor/audioServices.js +165 -0
  158. package/lib/features/canvas/videoEditor/audioServices.js.map +1 -0
  159. package/lib/features/canvas/videoEditor/captions.js +144 -0
  160. package/lib/features/canvas/videoEditor/captions.js.map +1 -0
  161. package/lib/features/canvas/videoEditor/compileTimeline.js +24 -16
  162. package/lib/features/canvas/videoEditor/compileTimeline.js.map +1 -1
  163. package/lib/features/canvas/videoEditor/editorModel.js +12 -2
  164. package/lib/features/canvas/videoEditor/editorModel.js.map +1 -1
  165. package/lib/features/canvas/videoEditor/exportTask.js +89 -7
  166. package/lib/features/canvas/videoEditor/exportTask.js.map +1 -1
  167. package/lib/features/canvas/videoEditor/layers.js +117 -0
  168. package/lib/features/canvas/videoEditor/layers.js.map +1 -0
  169. package/lib/features/canvas/videoEditor/remoteMediaClient.js +45 -18
  170. package/lib/features/canvas/videoEditor/remoteMediaClient.js.map +1 -1
  171. package/lib/features/canvas/videoEditor/renderTimeline.js +18 -6
  172. package/lib/features/canvas/videoEditor/renderTimeline.js.map +1 -1
  173. package/lib/features/canvas/videoEditor/revoice.js +138 -0
  174. package/lib/features/canvas/videoEditor/revoice.js.map +1 -0
  175. package/lib/features/canvas/videoEditor/storageUpload.js +34 -0
  176. package/lib/features/canvas/videoEditor/storageUpload.js.map +1 -0
  177. package/lib/features/canvas/videoEditor/textMotion.js +109 -0
  178. package/lib/features/canvas/videoEditor/textMotion.js.map +1 -0
  179. package/lib/features/canvas/videoEditor/transitions.js +31 -0
  180. package/lib/features/canvas/videoEditor/transitions.js.map +1 -0
  181. package/lib/features/chat/TemplatesChatCards.js +8 -3
  182. package/lib/features/chat/TemplatesChatCards.js.map +1 -1
  183. package/lib/features/design/DesignEditorExperience.js +674 -644
  184. package/lib/features/design/DesignEditorExperience.js.map +1 -1
  185. package/lib/features/design/DesignExperience.js +285 -538
  186. package/lib/features/design/DesignExperience.js.map +1 -1
  187. package/lib/features/design/designCore.js +2 -212
  188. package/lib/features/design/designCore.js.map +1 -1
  189. package/lib/features/design/designIndex.js +1 -50
  190. package/lib/features/design/designIndex.js.map +1 -1
  191. package/lib/features/design/doc/aiDesign.js +247 -0
  192. package/lib/features/design/doc/aiDesign.js.map +1 -0
  193. package/lib/features/design/doc/artifacts.js +280 -0
  194. package/lib/features/design/doc/artifacts.js.map +1 -0
  195. package/lib/features/design/doc/chart.js +98 -0
  196. package/lib/features/design/doc/chart.js.map +1 -0
  197. package/lib/features/design/doc/crop.js +104 -0
  198. package/lib/features/design/doc/crop.js.map +1 -0
  199. package/lib/features/design/doc/curve.js +49 -0
  200. package/lib/features/design/doc/curve.js.map +1 -0
  201. package/lib/features/design/doc/docOps.js +397 -0
  202. package/lib/features/design/doc/docOps.js.map +1 -0
  203. package/lib/features/design/doc/findReplace.js +112 -0
  204. package/lib/features/design/doc/findReplace.js.map +1 -0
  205. package/lib/features/design/doc/fonts.js +79 -0
  206. package/lib/features/design/doc/fonts.js.map +1 -0
  207. package/lib/features/design/doc/frames.js +17 -0
  208. package/lib/features/design/doc/frames.js.map +1 -0
  209. package/lib/features/design/doc/geometry.js +133 -0
  210. package/lib/features/design/doc/geometry.js.map +1 -0
  211. package/lib/features/design/doc/imageAdjust.js +203 -0
  212. package/lib/features/design/doc/imageAdjust.js.map +1 -0
  213. package/lib/features/design/doc/legacyDoc.js +107 -0
  214. package/lib/features/design/doc/legacyDoc.js.map +1 -0
  215. package/lib/features/design/doc/newDoc.js +335 -0
  216. package/lib/features/design/doc/newDoc.js.map +1 -0
  217. package/lib/features/design/doc/pageRange.js +17 -0
  218. package/lib/features/design/doc/pageRange.js.map +1 -0
  219. package/lib/features/design/doc/pathScale.js +68 -0
  220. package/lib/features/design/doc/pathScale.js.map +1 -0
  221. package/lib/features/design/doc/qr.js +62 -0
  222. package/lib/features/design/doc/qr.js.map +1 -0
  223. package/lib/features/design/doc/shapes.js +366 -0
  224. package/lib/features/design/doc/shapes.js.map +1 -0
  225. package/lib/features/design/doc/sizes.js +230 -0
  226. package/lib/features/design/doc/sizes.js.map +1 -0
  227. package/lib/features/design/doc/textEffects.js +134 -0
  228. package/lib/features/design/doc/textEffects.js.map +1 -0
  229. package/lib/features/design/doc/textLayout.js +182 -0
  230. package/lib/features/design/doc/textLayout.js.map +1 -0
  231. package/lib/features/design/doc/types.js +30 -0
  232. package/lib/features/design/doc/types.js.map +1 -0
  233. package/lib/features/design/editor/AiPanel.js +194 -0
  234. package/lib/features/design/editor/AiPanel.js.map +1 -0
  235. package/lib/features/design/editor/ChartDataPanel.js +182 -0
  236. package/lib/features/design/editor/ChartDataPanel.js.map +1 -0
  237. package/lib/features/design/editor/CropOverlay.js +199 -0
  238. package/lib/features/design/editor/CropOverlay.js.map +1 -0
  239. package/lib/features/design/editor/DesignCanvas.js +363 -0
  240. package/lib/features/design/editor/DesignCanvas.js.map +1 -0
  241. package/lib/features/design/editor/ExportSheet.js +123 -0
  242. package/lib/features/design/editor/ExportSheet.js.map +1 -0
  243. package/lib/features/design/editor/FindReplacePanel.js +93 -0
  244. package/lib/features/design/editor/FindReplacePanel.js.map +1 -0
  245. package/lib/features/design/editor/ImageTools.js +188 -0
  246. package/lib/features/design/editor/ImageTools.js.map +1 -0
  247. package/lib/features/design/editor/LayerTools.js +485 -0
  248. package/lib/features/design/editor/LayerTools.js.map +1 -0
  249. package/lib/features/design/editor/PageStrip.js +203 -0
  250. package/lib/features/design/editor/PageStrip.js.map +1 -0
  251. package/lib/features/design/editor/Slideshow.js +97 -0
  252. package/lib/features/design/editor/Slideshow.js.map +1 -0
  253. package/lib/features/design/editor/ToolPanels.js +695 -0
  254. package/lib/features/design/editor/ToolPanels.js.map +1 -0
  255. package/lib/features/design/editor/controls.js +630 -0
  256. package/lib/features/design/editor/controls.js.map +1 -0
  257. package/lib/features/design/editor/useDesignSave.js +91 -0
  258. package/lib/features/design/editor/useDesignSave.js.map +1 -0
  259. package/lib/features/design/export/exportDesign.js +170 -0
  260. package/lib/features/design/export/exportDesign.js.map +1 -0
  261. package/lib/features/design/export/pdf.js +143 -0
  262. package/lib/features/design/export/pdf.js.map +1 -0
  263. package/lib/features/design/home/DesignHome.js +688 -0
  264. package/lib/features/design/home/DesignHome.js.map +1 -0
  265. package/lib/features/design/home/studioHome.js +61 -0
  266. package/lib/features/design/home/studioHome.js.map +1 -0
  267. package/lib/features/design/pickDesignImage.js +60 -0
  268. package/lib/features/design/pickDesignImage.js.map +1 -0
  269. package/lib/features/design/render/DesignPageView.js +69 -0
  270. package/lib/features/design/render/DesignPageView.js.map +1 -0
  271. package/lib/features/design/render/PageCapture.js +288 -0
  272. package/lib/features/design/render/PageCapture.js.map +1 -0
  273. package/lib/features/design/render/TextMeasure.js +115 -0
  274. package/lib/features/design/render/TextMeasure.js.map +1 -0
  275. package/lib/features/design/render/fontRegistry.js +110 -0
  276. package/lib/features/design/render/fontRegistry.js.map +1 -0
  277. package/lib/features/design/render/layers.js +392 -0
  278. package/lib/features/design/render/layers.js.map +1 -0
  279. package/lib/features/design/render/svg.js +35 -0
  280. package/lib/features/design/render/svg.js.map +1 -0
  281. package/lib/features/design/render/svgParts.js +435 -0
  282. package/lib/features/design/render/svgParts.js.map +1 -0
  283. package/lib/features/design/surface/BoardScreen.js +529 -0
  284. package/lib/features/design/surface/BoardScreen.js.map +1 -0
  285. package/lib/features/design/surface/CompareView.js +138 -0
  286. package/lib/features/design/surface/CompareView.js.map +1 -0
  287. package/lib/features/design/surface/CreationScreen.js +294 -0
  288. package/lib/features/design/surface/CreationScreen.js.map +1 -0
  289. package/lib/features/design/surface/DesignAgentChatPane.js +444 -0
  290. package/lib/features/design/surface/DesignAgentChatPane.js.map +1 -0
  291. package/lib/features/design/surface/DesignBoards.js +441 -0
  292. package/lib/features/design/surface/DesignBoards.js.map +1 -0
  293. package/lib/features/design/surface/DesignPreview.js +159 -0
  294. package/lib/features/design/surface/DesignPreview.js.map +1 -0
  295. package/lib/features/design/surface/DesignSurfaceExperience.js +80 -0
  296. package/lib/features/design/surface/DesignSurfaceExperience.js.map +1 -0
  297. package/lib/features/design/surface/FullScreenPreview.js +59 -0
  298. package/lib/features/design/surface/FullScreenPreview.js.map +1 -0
  299. package/lib/features/design/surface/NewSystemDialog.js +122 -0
  300. package/lib/features/design/surface/NewSystemDialog.js.map +1 -0
  301. package/lib/features/design/surface/PickerSheet.js +175 -0
  302. package/lib/features/design/surface/PickerSheet.js.map +1 -0
  303. package/lib/features/design/surface/TemplatesGallery.js +156 -0
  304. package/lib/features/design/surface/TemplatesGallery.js.map +1 -0
  305. package/lib/features/design/surface/WetPaint.js +140 -0
  306. package/lib/features/design/surface/WetPaint.js.map +1 -0
  307. package/lib/features/design/surface/agentTurn.js +229 -0
  308. package/lib/features/design/surface/agentTurn.js.map +1 -0
  309. package/lib/features/design/surface/designBoard.js +218 -0
  310. package/lib/features/design/surface/designBoard.js.map +1 -0
  311. package/lib/features/design/surface/designChannel.js +186 -0
  312. package/lib/features/design/surface/designChannel.js.map +1 -0
  313. package/lib/features/design/surface/designChat.js +141 -0
  314. package/lib/features/design/surface/designChat.js.map +1 -0
  315. package/lib/features/design/surface/designConnector.js +266 -0
  316. package/lib/features/design/surface/designConnector.js.map +1 -0
  317. package/lib/features/design/surface/designDocument.js +40 -0
  318. package/lib/features/design/surface/designDocument.js.map +1 -0
  319. package/lib/features/design/surface/designExport.js +55 -0
  320. package/lib/features/design/surface/designExport.js.map +1 -0
  321. package/lib/features/design/surface/designLinks.js +64 -0
  322. package/lib/features/design/surface/designLinks.js.map +1 -0
  323. package/lib/features/design/surface/designPalette.js +24 -0
  324. package/lib/features/design/surface/designPalette.js.map +1 -0
  325. package/lib/features/design/surface/designRun.js +161 -0
  326. package/lib/features/design/surface/designRun.js.map +1 -0
  327. package/lib/features/design/surface/designTheme.js +119 -0
  328. package/lib/features/design/surface/designTheme.js.map +1 -0
  329. package/lib/features/design/surface/execStream.js +206 -0
  330. package/lib/features/design/surface/execStream.js.map +1 -0
  331. package/lib/features/design/surface/metaball.js +48 -0
  332. package/lib/features/design/surface/metaball.js.map +1 -0
  333. package/lib/features/design/surface/pickReferenceFiles.js +35 -0
  334. package/lib/features/design/surface/pickReferenceFiles.js.map +1 -0
  335. package/lib/features/design/surface/useDesignSurface.js +379 -0
  336. package/lib/features/design/surface/useDesignSurface.js.map +1 -0
  337. package/lib/features/docs/DocBlockRow.js +336 -0
  338. package/lib/features/docs/DocBlockRow.js.map +1 -0
  339. package/lib/features/docs/DocsEditorExperience.js +949 -0
  340. package/lib/features/docs/DocsEditorExperience.js.map +1 -0
  341. package/lib/features/docs/DocsToolbar.js +247 -0
  342. package/lib/features/docs/DocsToolbar.js.map +1 -0
  343. package/lib/features/docs/blocks.js +560 -0
  344. package/lib/features/docs/blocks.js.map +1 -0
  345. package/lib/features/docs/docArtifacts.js +129 -0
  346. package/lib/features/docs/docArtifacts.js.map +1 -0
  347. package/lib/features/docs/docEdits.js +201 -0
  348. package/lib/features/docs/docEdits.js.map +1 -0
  349. package/lib/features/docs/docExport.js +235 -0
  350. package/lib/features/docs/docExport.js.map +1 -0
  351. package/lib/features/docs/docShare.js +62 -0
  352. package/lib/features/docs/docShare.js.map +1 -0
  353. package/lib/features/links/openInApp.js +38 -2
  354. package/lib/features/links/openInApp.js.map +1 -1
  355. package/lib/routes.json +54 -0
  356. package/lib/screens/DesignNative/index.js +35 -0
  357. package/lib/screens/DesignNative/index.js.map +1 -0
  358. package/package.json +4 -4
  359. package/lib/features/design/exportDesign.js +0 -133
  360. package/lib/features/design/exportDesign.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useMemo,useState,useRef,useEffect}from'react';import {View,ScrollView,Text,TextInput,ActivityIndicator,StyleSheet}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {resultUrl,friendlyMediaError,generationImageUrl,generationMediaUrl}from'./videoEditor/mediaActions.js';import {unwrapProxyUrl}from'./videoEditor/remoteMediaClient.js';import {STATIC_IMAGE_MODELS,normalizeModels,promptAudioModels,STATIC_VIDEO_MODELS,generationCapabilities,videoReferenceCap,modelThatReadsImages,videoDurationOptions,buildVideoGenerateParams}from'./generationModels.js';import {MAX_REFERENCE_IMAGES,PROMO_MAX_REFERENCES,addReference,imageLaneCall}from'./generatorReferences.js';import {modelForCommand,parseCommandLine,matchCommands,laneForCommand,findCommand,missingFor,MISSING_LABEL,VIDEO_INPUT_MODEL,commandPrompt}from'./generatorCommands.js';import {ReferenceStrip,StillRoleSwitch,FrameSlot}from'./GeneratorReferenceSlots.js';import {CanvasTemplatesPanel}from'./CanvasTemplatesPanel.js';import {nearestAspect}from'./studioLooks.js';import {ensureFetchableMediaUrls,ensureFetchableMediaUrl}from'./mediaUrls.js';import {DEFAULT_PROMO_PRESET,EMPTY_PROMO_CONTEXT,defaultPromoQuality,PROMO_PRESETS,PROMO_DURATIONS,PROMO_ASPECT_RATIOS,PROMO_PLAYBOOKS,lookupPromoPreset,designPromoProject,PROMO_CONNECTOR}from'./promoVideo.js';import {PromoContextFields,PromoProductionFields}from'./PromoContextFields.js';import {startPromoTask}from'./canvasTasks.js';import {CLIP_COUNT_CHOICES,CLIP_ASPECT_RATIOS,CLIP_RESOLUTIONS,buildClipRunParams,parseClipRunResult}from'./videoClips.js';import {NativeDictationBar}from'../audio-input/NativeDictationBar.js';import {useCanvasTheme,themedStyles}from'./canvasTheme.js';import {Segmented,Pressable,pressedStyle,SPACE,RADIUS,HIT,TYPE}from'./canvasUi.js';var __defProp = Object.defineProperty;
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useMemo,useState,useRef,useEffect}from'react';import {View,ScrollView,Text,TextInput,ActivityIndicator,StyleSheet}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {resultUrl,friendlyMediaError,generationImageUrl,generationMediaUrl}from'./videoEditor/mediaActions.js';import {unwrapProxyUrl}from'./videoEditor/remoteMediaClient.js';import {STATIC_IMAGE_MODELS,normalizeModels,promptAudioModels,STATIC_VIDEO_MODELS,generationCapabilities,videoReferenceCap,modelThatReadsImages,videoDurationOptions,buildVideoGenerateParams}from'./generationModels.js';import {MAX_REFERENCE_IMAGES,PROMO_MAX_REFERENCES,addReference,imageLaneCall}from'./generatorReferences.js';import {modelForCommand,parseCommandLine,matchCommands,laneForCommand,findCommand,missingFor,MISSING_LABEL,VIDEO_INPUT_MODEL,commandPrompt}from'./generatorCommands.js';import {ReferenceStrip,StillRoleSwitch,FrameSlot}from'./GeneratorReferenceSlots.js';import {CanvasTemplatesPanel}from'./CanvasTemplatesPanel.js';import {nearestAspect}from'./studioLooks.js';import {ensureFetchableMediaUrls,ensureFetchableMediaUrl}from'./mediaUrls.js';import {DEFAULT_PROMO_PRESET,EMPTY_PROMO_CONTEXT,defaultPromoQuality,defaultNarration,PROMO_PRESETS,PROMO_DURATIONS,PROMO_ASPECT_RATIOS,PROMO_PLAYBOOKS,lookupPromoPreset,designPromoProject,PROMO_CONNECTOR}from'./promoVideo.js';import {PromoContextFields,PromoProductionFields}from'./PromoContextFields.js';import {startPromoTask}from'./canvasTasks.js';import {runTrackedGeneration}from'./generationTasks.js';import {DirectorPill,DirectorSheet}from'./generator/DirectorSheet.js';import {EMPTY_DIRECTION,directedPrompt}from'./generator/direction.js';import {ShotPanel,ShotStructureButton}from'./generator/ShotPanel.js';import {briefWorthStructuring}from'./generator/shot.js';import {useShotSpec}from'./generator/useShotSpec.js';import {RunLogCard}from'./generator/RunLogCard.js';import {logStep,startRun,finishRun,failRun}from'./generator/runLog.js';import {CLIP_COUNT_CHOICES,CLIP_ASPECT_RATIOS,CLIP_RESOLUTIONS,buildClipRunParams,parseClipRunResult}from'./videoClips.js';import {NativeDictationBar}from'../audio-input/NativeDictationBar.js';import {useCanvasTheme,themedStyles}from'./canvasTheme.js';import {Segmented,Pressable,pressedStyle,SPACE,RADIUS,HIT,TYPE}from'./canvasUi.js';var __defProp = Object.defineProperty;
2
2
  var __defProps = Object.defineProperties;
3
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
4
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
@@ -55,6 +55,7 @@ function CanvasGeneratePanel({
55
55
  onPromoQueued,
56
56
  pickStill
57
57
  }) {
58
+ var _a;
58
59
  const theme = useCanvasTheme();
59
60
  const styles = useMemo(() => makeStyles(theme), [theme]);
60
61
  const [mode, setMode] = useState("image");
@@ -91,6 +92,13 @@ function CanvasGeneratePanel({
91
92
  const [promoNarrator, setPromoNarrator] = useState("");
92
93
  const [promoUseCases, setPromoUseCases] = useState("");
93
94
  const [promoDesignModel, setPromoDesignModel] = useState("");
95
+ const [videoResolution, setVideoResolution] = useState("1080p");
96
+ const [promoCaptions, setPromoCaptions] = useState(false);
97
+ const [promoNarration, setPromoNarration] = useState(() => defaultNarration(DEFAULT_PROMO_PRESET));
98
+ const [direction, setDirection] = useState(EMPTY_DIRECTION);
99
+ const [directorOpen, setDirectorOpen] = useState(false);
100
+ const [runLog, setRunLog] = useState(null);
101
+ const shot = useShotSpec(runAction);
94
102
  const pendingCommand = useRef(null);
95
103
  useEffect(() => {
96
104
  if (frameUrl) setStartFrame(frameUrl);
@@ -126,7 +134,7 @@ function CanvasGeneratePanel({
126
134
  let cancelled = false;
127
135
  const job = mode === "image" ? runAction("yantra-image-generation", "YANTRA_GEMINI_IMAGE_LIST_MODELS", {}) : mode === "audio" ? runAction("yantra-audio", "YANTRA_AUDIO_LIST_MODELS", {}) : runAction("yantra-video-generation", "YANTRA_VIDEO_GENERATION_LIST_MODELS", {});
128
136
  job.then((result) => {
129
- var _a, _b, _c, _d;
137
+ var _a2, _b, _c, _d;
130
138
  if (cancelled) return;
131
139
  let list = normalizeModels(result);
132
140
  if (mode === "audio") list = promptAudioModels(list);
@@ -135,7 +143,7 @@ function CanvasGeneratePanel({
135
143
  setModels(list);
136
144
  const cmd = pendingCommand.current;
137
145
  pendingCommand.current = null;
138
- setSelectedModel(cmd ? modelForCommand(cmd, list, (_b = (_a = list[0]) == null ? void 0 : _a.id) != null ? _b : "") : (_d = (_c = list[0]) == null ? void 0 : _c.id) != null ? _d : "");
146
+ setSelectedModel(cmd ? modelForCommand(cmd, list, (_b = (_a2 = list[0]) == null ? void 0 : _a2.id) != null ? _b : "") : (_d = (_c = list[0]) == null ? void 0 : _c.id) != null ? _d : "");
139
147
  }).catch(() => {
140
148
  if (cancelled) return;
141
149
  if (mode === "video") {
@@ -153,6 +161,8 @@ function CanvasGeneratePanel({
153
161
  const modelInfo = models.find((m) => m.id === selectedModel);
154
162
  const videoCaps = generationCapabilities(modelInfo);
155
163
  const refCap = videoReferenceCap(models, selectedModel);
164
+ const resolutions = mode === "video" ? (_a = modelInfo == null ? void 0 : modelInfo.resolutions) != null ? _a : [] : [];
165
+ const effectiveResolution = resolutions.length ? resolutions.includes(videoResolution) ? videoResolution : resolutions.includes("1080p") ? "1080p" : resolutions[resolutions.length - 1] : void 0;
156
166
  const footageSrc = (seedItem == null ? void 0 : seedItem.type) === "video" ? unwrapProxyUrl(seedItem.src) : void 0;
157
167
  const hasStill = mode === "image" ? imageStills.length > 0 : Boolean(startFrame || imageStills[0]);
158
168
  const commandLine = parseCommandLine(prompt);
@@ -204,7 +214,7 @@ function CanvasGeneratePanel({
204
214
  const durations = mode === "video" ? videoDurationOptions(modelInfo) : [];
205
215
  const noun = mode === "promo" ? "marketing video" : mode === "slides" ? "slides" : mode;
206
216
  const generate = () => {
207
- var _a, _b;
217
+ var _a2, _b;
208
218
  if (mode === "slides") {
209
219
  onSlides();
210
220
  return;
@@ -255,11 +265,23 @@ function CanvasGeneratePanel({
255
265
  setNotice(`${cmd.label} needs ${MISSING_LABEL[missing]}`);
256
266
  return;
257
267
  }
258
- model = has.footage && lane === "video" ? (_b = (_a = models.find((m) => m.supportsVideoInput)) == null ? void 0 : _a.id) != null ? _b : VIDEO_INPUT_MODEL : modelForCommand(cmd, models, selectedModel);
268
+ model = has.footage && lane === "video" ? (_b = (_a2 = models.find((m) => m.supportsVideoInput)) == null ? void 0 : _a2.id) != null ? _b : VIDEO_INPUT_MODEL : modelForCommand(cmd, models, selectedModel);
259
269
  }
260
- const text = cmd ? commandPrompt(raw) : raw;
270
+ const typed = cmd ? commandPrompt(raw) : raw;
271
+ const {
272
+ compiled: capturedShot,
273
+ snapshot: shotSnapshot
274
+ } = mode === "video" ? shot.capture() : {
275
+ compiled: null,
276
+ snapshot: null
277
+ };
278
+ const text = mode === "video" ? directedPrompt((capturedShot == null ? void 0 : capturedShot.prompt) || typed, direction) : typed;
279
+ if (capturedShot) shot.clear();
261
280
  setBusy(true);
262
281
  setNotice(null);
282
+ let log = startRun(`Generate ${noun}`);
283
+ log = logStep(log, mode === "promo" ? "Submitting the production\u2026" : "Submitting\u2026");
284
+ setRunLog(log);
263
285
  const footage = mode === "video" && footageSrc && (restyle || cmd && cmd.needs !== "image") ? footageSrc : void 0;
264
286
  const promoRequest = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({
265
287
  prompt: text,
@@ -284,17 +306,37 @@ function CanvasGeneratePanel({
284
306
  stills,
285
307
  role: cmd ? "source" : stillRole
286
308
  });
287
- return generationImageUrl(await runAction("yantra-image-generation", call.action, call.params));
288
- })() : mode === "audio" ? runAction("yantra-audio", "YANTRA_AUDIO_RUN_PROMPT", __spreadValues({
289
- prompt: text
290
- }, model ? {
291
- model
292
- } : {})).then((result) => resultUrl(result, "YANTRA_AUDIO_RUN_PROMPT")) : mode === "promo" ? startPromoTask(runAction, {
309
+ return runTrackedGeneration({
310
+ run: runAction,
311
+ connector: "yantra-image-generation",
312
+ action: call.action,
313
+ params: call.params,
314
+ mode: "image",
315
+ prompt: text,
316
+ boardId,
317
+ resolveUrl: generationImageUrl
318
+ });
319
+ })() : mode === "audio" ? runTrackedGeneration({
320
+ run: runAction,
321
+ connector: "yantra-audio",
322
+ action: "YANTRA_AUDIO_RUN_PROMPT",
323
+ params: __spreadValues({
324
+ prompt: text
325
+ }, model ? {
326
+ model
327
+ } : {}),
328
+ mode: "audio",
329
+ prompt: text,
330
+ boardId,
331
+ resolveUrl: (result) => resultUrl(result, "YANTRA_AUDIO_RUN_PROMPT")
332
+ }) : mode === "promo" ? startPromoTask(runAction, {
293
333
  boardId: boardId || "global",
294
334
  brief: text,
295
335
  request: __spreadValues(__spreadValues(__spreadProps(__spreadValues({}, promoRequest), {
336
+ captions: promoCaptions,
337
+ narration: promoNarration,
296
338
  quality: promoQuality
297
- }), promoNarrator ? {
339
+ }), promoNarration && promoNarrator ? {
298
340
  narratorVoice: promoNarrator
299
341
  } : {}), promoUseCases.trim() ? {
300
342
  useCases: promoUseCases
@@ -307,25 +349,46 @@ function CanvasGeneratePanel({
307
349
  const first = startFrame && !footage && videoCaps.canStartFrame ? await ensureFetchableMediaUrl(runAction, startFrame) : void 0;
308
350
  const last = endFrame && videoCaps.canEndFrame ? await ensureFetchableMediaUrl(runAction, endFrame) : void 0;
309
351
  const refs = await ensureFetchableMediaUrls(runAction, videoRefs.slice(0, refCap));
310
- const result = await runAction("yantra-video-generation", "YANTRA_VIDEO_GENERATION_GENERATE", buildVideoGenerateParams({
352
+ return runTrackedGeneration({
353
+ run: runAction,
354
+ connector: "yantra-video-generation",
355
+ action: "YANTRA_VIDEO_GENERATION_GENERATE",
356
+ params: buildVideoGenerateParams({
357
+ prompt: text,
358
+ // The spec's framing wins when it has one: the compiled prompt was written against it.
359
+ aspectRatio: (capturedShot == null ? void 0 : capturedShot.aspectRatio) || aspect,
360
+ model,
361
+ durationSeconds: (capturedShot == null ? void 0 : capturedShot.durationSeconds) || videoDuration || void 0,
362
+ referenceImageUrl: first,
363
+ referenceEndImageUrl: last,
364
+ styleReferenceUrls: refs,
365
+ referenceVideoUrl: footage,
366
+ resolution: effectiveResolution,
367
+ // Constraints ride the provider's negative_prompt, never the prompt.
368
+ negativePrompt: capturedShot == null ? void 0 : capturedShot.negativePrompt
369
+ }),
370
+ mode: "video",
311
371
  prompt: text,
312
- aspectRatio: aspect,
313
- model,
314
- durationSeconds: videoDuration || void 0,
315
- referenceImageUrl: first,
316
- referenceEndImageUrl: last,
317
- styleReferenceUrls: refs,
318
- referenceVideoUrl: footage
319
- }));
320
- return generationMediaUrl(result);
372
+ boardId,
373
+ resolveUrl: generationMediaUrl
374
+ });
321
375
  })();
376
+ log = logStep(log, mode === "promo" ? "Queued as a background task" : `Generating ${noun}\u2026`);
377
+ setRunLog(log);
322
378
  job.then((url) => {
323
379
  if (url) onGenerated(url, {
324
380
  prompt: text,
325
381
  aspect,
326
382
  mode
327
383
  });
328
- }).catch((err) => setNotice(friendlyMediaError(err, `${noun} generation`))).finally(() => setBusy(false));
384
+ const summary = mode === "promo" ? "Production queued. Track it under More > Tasks." : mode === "video" ? `Generated a ${(capturedShot == null ? void 0 : capturedShot.durationSeconds) || videoDuration ? `${(capturedShot == null ? void 0 : capturedShot.durationSeconds) || videoDuration}s ` : ""}${(capturedShot == null ? void 0 : capturedShot.aspectRatio) || aspect}${effectiveResolution ? ` ${effectiveResolution}` : ""} video and placed it on the board.` : `Generated ${mode === "image" ? "an image" : "audio"} and placed it on the board.`;
385
+ setRunLog(finishRun(log, summary));
386
+ }).catch((err) => {
387
+ const message = friendlyMediaError(err, `${noun} generation`);
388
+ setNotice(message);
389
+ setRunLog(failRun(log, message));
390
+ if (shotSnapshot == null ? void 0 : shotSnapshot.spec) shot.restore(shotSnapshot);
391
+ }).finally(() => setBusy(false));
329
392
  };
330
393
  const placeholder = mode === "clips" ? "Paste a video URL\u2026" : `Describe the ${mode === "promo" ? "promo" : mode} you want to generate\u2026`;
331
394
  const cta = mode === "slides" ? "Open slides studio" : `Generate ${noun}`;
@@ -374,6 +437,16 @@ function CanvasGeneratePanel({
374
437
  /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "clock-outline", size: 14, color: theme.mutedForeground }),
375
438
  /* @__PURE__ */ jsx(Text, { style: styles.pillLabel, children: videoDuration ? `${videoDuration}s` : "Auto" })
376
439
  ] }) : null,
440
+ effectiveResolution ? /* @__PURE__ */ jsxs(Pressable, { onPress: () => {
441
+ const i = resolutions.indexOf(effectiveResolution);
442
+ setVideoResolution(resolutions[(i + 1) % resolutions.length]);
443
+ }, style: ({
444
+ pressed
445
+ }) => [styles.pill, pressedStyle(pressed)], accessibilityRole: "button", accessibilityLabel: `Resolution ${effectiveResolution}`, children: [
446
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "high-definition-box", size: 14, color: theme.mutedForeground }),
447
+ /* @__PURE__ */ jsx(Text, { style: styles.pillLabel, children: effectiveResolution })
448
+ ] }) : null,
449
+ mode === "video" ? /* @__PURE__ */ jsx(DirectorPill, { value: direction, onPress: () => setDirectorOpen(true) }) : null,
377
450
  /* @__PURE__ */ jsxs(Pressable, { onPress: () => setTemplatesOpen((v) => !v), style: ({
378
451
  pressed
379
452
  }) => [styles.pill, templatesOpen && styles.pillOn, pressedStyle(pressed)], accessibilityRole: "button", accessibilityLabel: "Browse prompt templates", children: [
@@ -413,6 +486,7 @@ function CanvasGeneratePanel({
413
486
  setPromoPreset(p.id);
414
487
  setPromoDuration(p.defaultDurationSeconds);
415
488
  setPromoQuality(defaultPromoQuality(p.id));
489
+ setPromoNarration(defaultNarration(p.id));
416
490
  }, style: ({
417
491
  pressed
418
492
  }) => [styles.pill, promoPreset === p.id && styles.pillOn, pressedStyle(pressed)], children: /* @__PURE__ */ jsx(Text, { style: [styles.pillLabel, promoPreset === p.id && styles.pillLabelOn], children: p.name }) }, p.id)) }) : null,
@@ -435,6 +509,14 @@ function CanvasGeneratePanel({
435
509
  designModel: promoDesignModel,
436
510
  onDesignModel: setPromoDesignModel
437
511
  } : {})) : null,
512
+ mode === "promo" ? /* @__PURE__ */ jsx(View, { style: styles.pills, children: [["Captions", "closed-caption-outline", promoCaptions, () => setPromoCaptions((v) => !v)], ["Narration", "microphone-outline", promoNarration, () => setPromoNarration((v) => !v)]].map(([label, icon, on, toggle]) => /* @__PURE__ */ jsxs(Pressable, { onPress: toggle, style: ({
513
+ pressed
514
+ }) => [styles.pill, on && styles.pillOn, pressedStyle(pressed)], accessibilityRole: "switch", accessibilityState: {
515
+ checked: on
516
+ }, accessibilityHint: label === "Captions" ? "Burn word-level captions into the video" : "Write and voice a script; off leaves music and on-screen text to carry it", children: [
517
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: icon, size: 14, color: on ? theme.background : theme.mutedForeground }),
518
+ /* @__PURE__ */ jsx(Text, { style: [styles.pillLabel, on && styles.pillLabelOn], children: label })
519
+ ] }, label)) }) : null,
438
520
  mode === "clips" ? /* @__PURE__ */ jsxs(Fragment, { children: [
439
521
  /* @__PURE__ */ jsx(TextInput, { value: clipUrl, onChangeText: setClipUrl, placeholder: "Paste a video URL\u2026", placeholderTextColor: theme.mutedForeground, autoCapitalize: "none", style: styles.field }),
440
522
  /* @__PURE__ */ jsx(View, { style: styles.pills, children: CLIP_COUNT_CHOICES.map((n) => /* @__PURE__ */ jsx(Pressable, { onPress: () => setClipCount(n), style: ({
@@ -449,7 +531,12 @@ function CanvasGeneratePanel({
449
531
  label: `${value}p`
450
532
  })), value: clipRes, onChange: setClipRes, style: styles.segmented })
451
533
  ] }) : mode === "slides" ? /* @__PURE__ */ jsx(Text, { style: styles.hint, children: "Opens the slides studio, the same as Generate, then Slides, on the web." }) : /* @__PURE__ */ jsxs(Fragment, { children: [
452
- /* @__PURE__ */ jsx(TextInput, { value: prompt, onChangeText: setPrompt, placeholder: mode === "image" || mode === "video" ? `${placeholder} Type / for effects` : placeholder, placeholderTextColor: theme.mutedForeground, multiline: true, style: styles.prompt }),
534
+ mode === "video" && shot.spec && shot.constraints ? /* @__PURE__ */ jsx(ShotPanel, { spec: shot.spec, constraints: shot.constraints, onChange: shot.setSpec, onDiscard: () => {
535
+ const brief = shot.discard();
536
+ if (brief) setPrompt(brief);
537
+ }, onRestructure: () => void shot.structure(shot.brief.current, selectedModel), busy: shot.busy }) : /* @__PURE__ */ jsx(TextInput, { value: prompt, onChangeText: setPrompt, placeholder: mode === "image" || mode === "video" ? `${placeholder} Type / for effects` : placeholder, placeholderTextColor: theme.mutedForeground, multiline: true, style: styles.prompt }),
538
+ mode === "video" && !shot.spec && briefWorthStructuring(prompt) && runAction ? /* @__PURE__ */ jsx(ShotStructureButton, { busy: shot.busy, onPress: () => void shot.structure(prompt, selectedModel) }) : null,
539
+ shot.error && mode === "video" ? /* @__PURE__ */ jsx(Text, { style: styles.hint, children: shot.error }) : null,
453
540
  commandSuggestions.length > 0 ? /* @__PURE__ */ jsx(ScrollView, { horizontal: true, keyboardShouldPersistTaps: "handled", showsHorizontalScrollIndicator: false, style: styles.hScroll, contentContainerStyle: styles.pills, children: commandSuggestions.map((cmd) => /* @__PURE__ */ jsxs(Pressable, { onPress: () => applyCommand(cmd), style: ({
454
541
  pressed
455
542
  }) => [styles.pill, pressedStyle(pressed)], accessibilityRole: "button", accessibilityHint: cmd.blurb, children: [
@@ -461,6 +548,7 @@ function CanvasGeneratePanel({
461
548
  ] }, cmd.id)) }) : null
462
549
  ] })
463
550
  ] }),
551
+ runLog ? /* @__PURE__ */ jsx(View, { style: styles.runLog, children: /* @__PURE__ */ jsx(RunLogCard, { run: runLog }) }) : null,
464
552
  notice ? /* @__PURE__ */ jsx(Text, { style: styles.notice, children: notice }) : null,
465
553
  /* @__PURE__ */ jsxs(View, { style: styles.actions, children: [
466
554
  dictating ? /* @__PURE__ */ jsx(View, { style: {
@@ -501,13 +589,18 @@ function CanvasGeneratePanel({
501
589
  /* @__PURE__ */ jsx(Text, { style: styles.ctaLabel, children: cta }),
502
590
  /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "arrow-right", size: 18, color: theme.primaryForeground })
503
591
  ] }) })
504
- ] })
592
+ ] }),
593
+ directorOpen && mode === "video" ? /* @__PURE__ */ jsx(DirectorSheet, { value: direction, onChange: setDirection, onClose: () => setDirectorOpen(false), prompt }) : null
505
594
  ] });
506
595
  }
507
596
  const makeStyles = themedStyles((theme) => StyleSheet.create({
508
597
  root: {
509
598
  flex: 1
510
599
  },
600
+ runLog: {
601
+ paddingHorizontal: SPACE.lg,
602
+ paddingBottom: SPACE.sm
603
+ },
511
604
  hScroll: {
512
605
  flexGrow: 0
513
606
  },