@adminide-stack/yantra-mobile 12.0.129-alpha.0 → 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 +3 -3
  359. package/lib/features/design/exportDesign.js +0 -133
  360. package/lib/features/design/exportDesign.js.map +0 -1
@@ -0,0 +1,138 @@
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useState,useRef}from'react';import {PanResponder,View,Text,StyleSheet}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {useCanvasTheme,themedStyles}from'../../canvas/canvasTheme.js';import {Segmented,SPACE,TYPE}from'../../canvas/canvasUi.js';import {DesignPreview}from'./DesignPreview.js';var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ function CompareView({
21
+ beforeHtml,
22
+ afterHtml,
23
+ device
24
+ }) {
25
+ const theme = useCanvasTheme();
26
+ const styles = makeStyles(theme);
27
+ const [mode, setMode] = useState("swipe");
28
+ const [width, setWidth] = useState(0);
29
+ const [split, setSplit] = useState(0.5);
30
+ const live = useRef({
31
+ width: 0,
32
+ start: 0.5
33
+ });
34
+ live.current.width = width;
35
+ const responder = useRef(PanResponder.create({
36
+ onStartShouldSetPanResponder: () => true,
37
+ onMoveShouldSetPanResponder: () => true,
38
+ onPanResponderTerminationRequest: () => false,
39
+ onPanResponderGrant: () => {
40
+ live.current.start = splitRef.current;
41
+ },
42
+ onPanResponderMove: (_e, g) => {
43
+ const w = live.current.width || 1;
44
+ setSplit(Math.min(1, Math.max(0, live.current.start + g.dx / w)));
45
+ }
46
+ })).current;
47
+ const splitRef = useRef(split);
48
+ splitRef.current = split;
49
+ return /* @__PURE__ */ jsxs(View, { style: styles.fill, children: [
50
+ /* @__PURE__ */ jsx(View, { style: styles.bar, children: /* @__PURE__ */ jsx(Segmented, { options: [{
51
+ id: "before",
52
+ label: "Before"
53
+ }, {
54
+ id: "swipe",
55
+ label: "Swipe"
56
+ }, {
57
+ id: "after",
58
+ label: "After"
59
+ }], value: mode, onChange: (id) => setMode(id) }) }),
60
+ mode !== "swipe" ? /* @__PURE__ */ jsx(DesignPreview, { html: mode === "before" ? beforeHtml : afterHtml, device }, mode) : /* @__PURE__ */ jsxs(View, { style: styles.fill, onLayout: (e) => setWidth(e.nativeEvent.layout.width), children: [
61
+ /* @__PURE__ */ jsx(DesignPreview, { html: afterHtml, device }),
62
+ width > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
63
+ /* @__PURE__ */ jsx(View, { pointerEvents: "none", style: [styles.clip, {
64
+ width: width * split
65
+ }], children: /* @__PURE__ */ jsx(View, { style: {
66
+ width,
67
+ flex: 1
68
+ }, children: /* @__PURE__ */ jsx(DesignPreview, { html: beforeHtml, device }) }) }),
69
+ /* @__PURE__ */ jsxs(View, __spreadProps(__spreadValues({ style: [styles.divider, {
70
+ left: width * split - 22
71
+ }] }, responder.panHandlers), { children: [
72
+ /* @__PURE__ */ jsx(View, { style: [styles.line, {
73
+ backgroundColor: theme.primary
74
+ }] }),
75
+ /* @__PURE__ */ jsx(View, { style: [styles.knob, {
76
+ backgroundColor: theme.primary
77
+ }], children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "arrow-split-vertical", size: 16, color: theme.primaryForeground }) })
78
+ ] })),
79
+ /* @__PURE__ */ jsx(Text, { pointerEvents: "none", style: [styles.tag, styles.tagLeft], children: "Before" }),
80
+ /* @__PURE__ */ jsx(Text, { pointerEvents: "none", style: [styles.tag, styles.tagRight], children: "After" })
81
+ ] }) : null
82
+ ] })
83
+ ] });
84
+ }
85
+ const makeStyles = themedStyles((theme) => StyleSheet.create({
86
+ fill: {
87
+ flex: 1
88
+ },
89
+ bar: {
90
+ alignItems: "center",
91
+ paddingVertical: SPACE.xs,
92
+ backgroundColor: theme.background
93
+ },
94
+ clip: {
95
+ position: "absolute",
96
+ left: 0,
97
+ top: 0,
98
+ bottom: 0,
99
+ overflow: "hidden"
100
+ },
101
+ divider: {
102
+ position: "absolute",
103
+ top: 0,
104
+ bottom: 0,
105
+ width: 44,
106
+ alignItems: "center",
107
+ justifyContent: "center"
108
+ },
109
+ line: {
110
+ position: "absolute",
111
+ top: 0,
112
+ bottom: 0,
113
+ width: 2
114
+ },
115
+ knob: {
116
+ width: 32,
117
+ height: 32,
118
+ borderRadius: 16,
119
+ alignItems: "center",
120
+ justifyContent: "center"
121
+ },
122
+ tag: __spreadProps(__spreadValues({
123
+ position: "absolute",
124
+ top: SPACE.sm
125
+ }, TYPE.caption), {
126
+ color: "#ffffff",
127
+ backgroundColor: "rgba(11,18,21,0.7)",
128
+ paddingHorizontal: SPACE.sm,
129
+ paddingVertical: 2,
130
+ overflow: "hidden"
131
+ }),
132
+ tagLeft: {
133
+ left: SPACE.sm
134
+ },
135
+ tagRight: {
136
+ right: SPACE.sm
137
+ }
138
+ }));export{CompareView};//# sourceMappingURL=CompareView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompareView.js","sources":["../../../../src/features/design/surface/CompareView.tsx"],"sourcesContent":["/**\n * Compare - native twin of the web CreationView's compare box: the document\n * from before the last edit against the current one, in ONE frame. Before and\n * After flip the whole page; Swipe lays the two on top of each other with a\n * divider you drag, the before page on the left of it and the edit on the right.\n * Never two panes side by side: halved, each page would reflow to a different\n * layout and the comparison would be of layouts, not of the change.\n */\nimport React, { useRef, useState } from 'react';\nimport { PanResponder, StyleSheet, Text, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { themedStyles, useCanvasTheme, type CanvasPalette } from '../../canvas/canvasTheme';\nimport { SPACE, Segmented, TYPE } from '../../canvas/canvasUi';\nimport { DesignPreview, type PreviewDevice } from './DesignPreview';\n\ntype CompareMode = 'before' | 'swipe' | 'after';\n\nexport function CompareView({\n beforeHtml,\n afterHtml,\n device,\n}: {\n beforeHtml: string;\n afterHtml: string;\n device: PreviewDevice;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const [mode, setMode] = useState<CompareMode>('swipe');\n const [width, setWidth] = useState(0);\n const [split, setSplit] = useState(0.5);\n const live = useRef({ width: 0, start: 0.5 });\n live.current.width = width;\n const responder = useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderTerminationRequest: () => false,\n onPanResponderGrant: () => {\n live.current.start = splitRef.current;\n },\n onPanResponderMove: (_e, g) => {\n const w = live.current.width || 1;\n setSplit(Math.min(1, Math.max(0, live.current.start + g.dx / w)));\n },\n }),\n ).current;\n const splitRef = useRef(split);\n splitRef.current = split;\n\n return (\n <View style={styles.fill}>\n <View style={styles.bar}>\n <Segmented\n options={[\n { id: 'before', label: 'Before' },\n { id: 'swipe', label: 'Swipe' },\n { id: 'after', label: 'After' },\n ]}\n value={mode}\n onChange={(id) => setMode(id as CompareMode)}\n />\n </View>\n {mode !== 'swipe' ? (\n <DesignPreview key={mode} html={mode === 'before' ? beforeHtml : afterHtml} device={device} />\n ) : (\n <View style={styles.fill} onLayout={(e) => setWidth(e.nativeEvent.layout.width)}>\n <DesignPreview html={afterHtml} device={device} />\n {width > 0 ? (\n <>\n {/* The before page at full width, shown only left of the divider. */}\n <View pointerEvents=\"none\" style={[styles.clip, { width: width * split }]}>\n <View style={{ width, flex: 1 }}>\n <DesignPreview html={beforeHtml} device={device} />\n </View>\n </View>\n <View style={[styles.divider, { left: width * split - 22 }]} {...responder.panHandlers}>\n <View style={[styles.line, { backgroundColor: theme.primary }]} />\n <View style={[styles.knob, { backgroundColor: theme.primary }]}>\n <MaterialCommunityIcons\n name=\"arrow-split-vertical\"\n size={16}\n color={theme.primaryForeground}\n />\n </View>\n </View>\n <Text pointerEvents=\"none\" style={[styles.tag, styles.tagLeft]}>\n Before\n </Text>\n <Text pointerEvents=\"none\" style={[styles.tag, styles.tagRight]}>\n After\n </Text>\n </>\n ) : null}\n </View>\n )}\n </View>\n );\n}\n\nconst makeStyles = themedStyles((theme: CanvasPalette) =>\n StyleSheet.create({\n fill: { flex: 1 },\n bar: { alignItems: 'center', paddingVertical: SPACE.xs, backgroundColor: theme.background },\n clip: { position: 'absolute', left: 0, top: 0, bottom: 0, overflow: 'hidden' },\n divider: { position: 'absolute', top: 0, bottom: 0, width: 44, alignItems: 'center', justifyContent: 'center' },\n line: { position: 'absolute', top: 0, bottom: 0, width: 2 },\n knob: { width: 32, height: 32, borderRadius: 16, alignItems: 'center', justifyContent: 'center' },\n tag: {\n position: 'absolute',\n top: SPACE.sm,\n ...TYPE.caption,\n color: '#ffffff',\n backgroundColor: 'rgba(11,18,21,0.7)',\n paddingHorizontal: SPACE.sm,\n paddingVertical: 2,\n overflow: 'hidden',\n },\n tagLeft: { left: SPACE.sm },\n tagRight: { right: SPACE.sm },\n }),\n);\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,294 @@
1
+ import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {useState,useRef}from'react';import {View,Text,ActivityIndicator,ScrollView,Modal,TextInput,StyleSheet,Share,Alert}from'react-native';import {MaterialCommunityIcons}from'@expo/vector-icons';import {useCanvasTheme,themedStyles,CanvasThemeToggle}from'../../canvas/canvasTheme.js';import {IconButton,Segmented,Pressable,ActionButton,SPACE,RADIUS,TYPE}from'../../canvas/canvasUi.js';import {DESIGN_RADIUS}from'./designTheme.js';import {selectionLabel}from'./designChat.js';import {PREVIEW_DEVICES,DesignPreview}from'./DesignPreview.js';import {downloadDesign}from'./designExport.js';import {CompareView}from'./CompareView.js';var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ function CreationScreen({
21
+ creation,
22
+ streaming,
23
+ prior,
24
+ onBack,
25
+ onRevert,
26
+ annotate,
27
+ onToggleAnnotate,
28
+ onAddPick,
29
+ pickCount,
30
+ composer,
31
+ onPublish,
32
+ onOpenFull
33
+ }) {
34
+ const theme = useCanvasTheme();
35
+ const styles = makeStyles(theme);
36
+ const [tab, setTab] = useState("preview");
37
+ const [device, setDevice] = useState("desktop");
38
+ const [publishing, setPublishing] = useState(false);
39
+ const [pending, setPending] = useState(null);
40
+ const [comment, setComment] = useState("");
41
+ const preview = useRef(null);
42
+ const canCompare = Boolean(prior) && !streaming;
43
+ const shownTab = tab === "compare" && !canCompare ? "preview" : tab;
44
+ const download = () => {
45
+ void downloadDesign(creation).catch((err) => Alert.alert("Could not save the page", err instanceof Error ? err.message : "Try again."));
46
+ };
47
+ const useInCode = async () => {
48
+ if (!onPublish || publishing) return;
49
+ setPublishing(true);
50
+ try {
51
+ const url = await onPublish(creation);
52
+ await Share.share({
53
+ message: url,
54
+ title: creation.title
55
+ });
56
+ } catch (err) {
57
+ Alert.alert("Could not publish the page", err instanceof Error ? err.message : "Try again.");
58
+ } finally {
59
+ setPublishing(false);
60
+ }
61
+ };
62
+ return /* @__PURE__ */ jsxs(View, { style: styles.fill, children: [
63
+ /* @__PURE__ */ jsxs(View, { style: styles.header, children: [
64
+ /* @__PURE__ */ jsx(IconButton, { icon: "chevron-left", label: "Back to the board", onPress: onBack }),
65
+ /* @__PURE__ */ jsxs(View, { style: styles.titleWrap, children: [
66
+ /* @__PURE__ */ jsx(Text, { style: styles.title, numberOfLines: 1, children: streaming ? "Generating\u2026" : creation.title }),
67
+ creation.partial && !streaming ? /* @__PURE__ */ jsx(Text, { style: styles.partial, children: "Cut off before it finished" }) : null
68
+ ] }),
69
+ !streaming ? /* @__PURE__ */ jsxs(Fragment, { children: [
70
+ /* @__PURE__ */ jsx(IconButton, { icon: "refresh", label: "Refresh preview", onPress: () => {
71
+ var _a;
72
+ return (_a = preview.current) == null ? void 0 : _a.reload();
73
+ }, size: 36 }),
74
+ /* @__PURE__ */ jsx(CanvasThemeToggle, { style: styles.toggle })
75
+ ] }) : null
76
+ ] }),
77
+ /* @__PURE__ */ jsxs(View, { style: styles.toolbar, children: [
78
+ /* @__PURE__ */ jsx(Segmented, { options: [{
79
+ id: "preview",
80
+ label: "Preview"
81
+ }, {
82
+ id: "code",
83
+ label: "Code"
84
+ }, ...canCompare ? [{
85
+ id: "compare",
86
+ label: "Compare"
87
+ }] : []], value: shownTab, onChange: (id) => setTab(id) }),
88
+ /* @__PURE__ */ jsx(View, { style: styles.devices, children: PREVIEW_DEVICES.map((d) => /* @__PURE__ */ jsx(Pressable, { onPress: () => setDevice(d.key), style: [styles.device, device === d.key && styles.deviceOn], accessibilityRole: "button", accessibilityLabel: d.label, accessibilityState: {
89
+ selected: device === d.key
90
+ }, children: /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: d.icon, size: 17, color: device === d.key ? theme.foreground : theme.mutedForeground }) }, d.key)) })
91
+ ] }),
92
+ !streaming ? /* @__PURE__ */ jsxs(View, { style: styles.actions, children: [
93
+ /* @__PURE__ */ jsxs(Pressable, { onPress: onToggleAnnotate, style: [styles.action, annotate && styles.actionOn], accessibilityRole: "button", accessibilityState: {
94
+ selected: annotate
95
+ }, children: [
96
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "map-marker-plus-outline", size: 15, color: annotate ? theme.primaryText : theme.mutedForeground }),
97
+ /* @__PURE__ */ jsxs(Text, { style: [styles.actionLabel, annotate && {
98
+ color: theme.foreground
99
+ }], children: [
100
+ annotate ? "Tap the page to pin" : "Annotate",
101
+ pickCount ? ` \xB7 ${pickCount}` : ""
102
+ ] })
103
+ ] }),
104
+ prior && onRevert ? /* @__PURE__ */ jsxs(Pressable, { onPress: onRevert, style: styles.action, accessibilityRole: "button", children: [
105
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: prior.reverted ? "redo" : "undo", size: 15, color: theme.mutedForeground }),
106
+ /* @__PURE__ */ jsx(Text, { style: styles.actionLabel, children: prior.reverted ? "Restore edit" : "Revert" })
107
+ ] }) : null,
108
+ onOpenFull ? /* @__PURE__ */ jsxs(Pressable, { onPress: onOpenFull, style: styles.action, accessibilityRole: "button", children: [
109
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "arrow-expand-all", size: 15, color: theme.mutedForeground }),
110
+ /* @__PURE__ */ jsx(Text, { style: styles.actionLabel, children: "Open" })
111
+ ] }) : null,
112
+ onPublish ? /* @__PURE__ */ jsxs(Pressable, { onPress: () => void useInCode(), disabled: publishing, style: styles.action, accessibilityRole: "button", children: [
113
+ publishing ? /* @__PURE__ */ jsx(ActivityIndicator, { size: "small", color: theme.mutedForeground }) : /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "code-braces", size: 15, color: theme.mutedForeground }),
114
+ /* @__PURE__ */ jsx(Text, { style: styles.actionLabel, children: publishing ? "Publishing\u2026" : "Use in code" })
115
+ ] }) : null,
116
+ /* @__PURE__ */ jsxs(Pressable, { onPress: download, style: styles.action, accessibilityRole: "button", children: [
117
+ /* @__PURE__ */ jsx(MaterialCommunityIcons, { name: "download-outline", size: 15, color: theme.mutedForeground }),
118
+ /* @__PURE__ */ jsx(Text, { style: styles.actionLabel, children: "Download" })
119
+ ] })
120
+ ] }) : null,
121
+ /* @__PURE__ */ jsx(View, { style: styles.stage, children: shownTab === "code" ? /* @__PURE__ */ jsx(ScrollView, { style: styles.code, contentContainerStyle: styles.codeContent, children: /* @__PURE__ */ jsx(ScrollView, { horizontal: true, style: styles.codeRow, children: /* @__PURE__ */ jsx(Text, { selectable: true, style: styles.codeText, children: creation.html }) }) }) : shownTab === "compare" && prior ? /* @__PURE__ */ jsx(CompareView, { beforeHtml: prior.html, afterHtml: creation.html, device }) : /* @__PURE__ */ jsx(DesignPreview, { ref: preview, html: creation.html, device, annotate: annotate && !streaming, onPick: (pick) => {
122
+ setComment("");
123
+ setPending(pick);
124
+ } }) }),
125
+ composer,
126
+ /* @__PURE__ */ jsx(Modal, { visible: Boolean(pending), transparent: true, animationType: "fade", onRequestClose: () => setPending(null), children: /* @__PURE__ */ jsx(View, { style: styles.cardScrim, children: /* @__PURE__ */ jsxs(View, { style: styles.card, children: [
127
+ /* @__PURE__ */ jsxs(Text, { style: styles.cardTitle, children: [
128
+ "Annotate \u201C",
129
+ creation.title,
130
+ "\u201D"
131
+ ] }),
132
+ (pending == null ? void 0 : pending.target) ? /* @__PURE__ */ jsxs(View, { style: styles.targetRow, children: [
133
+ /* @__PURE__ */ jsx(Text, { style: styles.targetTag, children: pending.target.tag || "element" }),
134
+ /* @__PURE__ */ jsx(Text, { style: styles.targetText, numberOfLines: 2, children: selectionLabel(pending.target) || "no text - pinned by position" })
135
+ ] }) : null,
136
+ /* @__PURE__ */ jsx(TextInput, { value: comment, onChangeText: setComment, placeholder: "What should change here?", placeholderTextColor: theme.mutedForeground, autoFocus: true, multiline: true, style: styles.cardInput }),
137
+ /* @__PURE__ */ jsxs(View, { style: styles.cardButtons, children: [
138
+ /* @__PURE__ */ jsx(ActionButton, { label: "Cancel", variant: "secondary", onPress: () => setPending(null) }),
139
+ /* @__PURE__ */ jsx(ActionButton, { label: "Add pin", onPress: () => {
140
+ if (pending) onAddPick(__spreadProps(__spreadValues({}, pending), {
141
+ comment: comment.trim()
142
+ }));
143
+ setPending(null);
144
+ } })
145
+ ] })
146
+ ] }) }) })
147
+ ] });
148
+ }
149
+ const makeStyles = themedStyles((theme) => StyleSheet.create({
150
+ fill: {
151
+ flex: 1
152
+ },
153
+ header: {
154
+ flexDirection: "row",
155
+ alignItems: "center",
156
+ gap: SPACE.xs,
157
+ paddingHorizontal: SPACE.sm,
158
+ height: 52
159
+ },
160
+ titleWrap: {
161
+ flex: 1
162
+ },
163
+ title: __spreadProps(__spreadValues({}, TYPE.title), {
164
+ color: theme.foreground
165
+ }),
166
+ partial: __spreadProps(__spreadValues({}, TYPE.caption), {
167
+ color: theme.warningText
168
+ }),
169
+ toolbar: {
170
+ flexDirection: "row",
171
+ alignItems: "center",
172
+ justifyContent: "space-between",
173
+ paddingHorizontal: SPACE.md,
174
+ gap: SPACE.sm
175
+ },
176
+ devices: {
177
+ flexDirection: "row",
178
+ padding: 3,
179
+ borderRadius: RADIUS.pill,
180
+ backgroundColor: theme.card
181
+ },
182
+ device: {
183
+ width: 34,
184
+ height: 30,
185
+ borderRadius: RADIUS.pill,
186
+ alignItems: "center",
187
+ justifyContent: "center"
188
+ },
189
+ deviceOn: {
190
+ backgroundColor: theme.isDark ? theme.secondary : theme.surface
191
+ },
192
+ actions: {
193
+ flexDirection: "row",
194
+ flexWrap: "wrap",
195
+ gap: SPACE.sm,
196
+ paddingHorizontal: SPACE.md,
197
+ paddingTop: SPACE.sm
198
+ },
199
+ toggle: {
200
+ marginLeft: SPACE.xs
201
+ },
202
+ action: {
203
+ flexDirection: "row",
204
+ alignItems: "center",
205
+ gap: 5,
206
+ height: 30,
207
+ paddingHorizontal: SPACE.md,
208
+ borderRadius: RADIUS.pill,
209
+ borderWidth: StyleSheet.hairlineWidth,
210
+ borderColor: theme.border
211
+ },
212
+ actionOn: {
213
+ backgroundColor: theme.card,
214
+ borderColor: theme.borderStrong
215
+ },
216
+ actionLabel: __spreadProps(__spreadValues({}, TYPE.caption), {
217
+ color: theme.mutedForeground
218
+ }),
219
+ stage: {
220
+ flex: 1,
221
+ margin: SPACE.md,
222
+ borderRadius: DESIGN_RADIUS,
223
+ overflow: "hidden",
224
+ backgroundColor: "#ffffff",
225
+ borderWidth: StyleSheet.hairlineWidth,
226
+ borderColor: theme.border
227
+ },
228
+ code: {
229
+ flex: 1,
230
+ backgroundColor: theme.isDark ? "#0b0b0f" : "#f8fafc"
231
+ },
232
+ codeContent: {
233
+ padding: SPACE.md
234
+ },
235
+ codeRow: {
236
+ flexGrow: 0
237
+ },
238
+ codeText: {
239
+ fontFamily: "Menlo",
240
+ fontSize: 11,
241
+ lineHeight: 16,
242
+ color: theme.foreground
243
+ },
244
+ compareBar: {
245
+ alignItems: "center",
246
+ paddingVertical: SPACE.xs,
247
+ backgroundColor: theme.background
248
+ },
249
+ cardScrim: {
250
+ flex: 1,
251
+ backgroundColor: "rgba(0,0,0,0.4)",
252
+ justifyContent: "center",
253
+ padding: SPACE.xl
254
+ },
255
+ card: {
256
+ borderRadius: DESIGN_RADIUS,
257
+ padding: SPACE.lg,
258
+ gap: SPACE.md,
259
+ backgroundColor: theme.background
260
+ },
261
+ cardTitle: __spreadProps(__spreadValues({}, TYPE.title), {
262
+ color: theme.foreground
263
+ }),
264
+ targetRow: {
265
+ flexDirection: "row",
266
+ alignItems: "center",
267
+ gap: SPACE.sm,
268
+ padding: SPACE.sm,
269
+ borderRadius: DESIGN_RADIUS,
270
+ backgroundColor: theme.card
271
+ },
272
+ targetTag: {
273
+ fontFamily: "Menlo",
274
+ fontSize: 11,
275
+ color: theme.primaryText
276
+ },
277
+ targetText: __spreadProps(__spreadValues({}, TYPE.caption), {
278
+ color: theme.foreground,
279
+ flex: 1
280
+ }),
281
+ cardInput: __spreadValues({
282
+ minHeight: 70,
283
+ borderRadius: DESIGN_RADIUS,
284
+ padding: SPACE.md,
285
+ backgroundColor: theme.card,
286
+ color: theme.foreground,
287
+ textAlignVertical: "top"
288
+ }, TYPE.body),
289
+ cardButtons: {
290
+ flexDirection: "row",
291
+ justifyContent: "flex-end",
292
+ gap: SPACE.sm
293
+ }
294
+ }));export{CreationScreen};//# sourceMappingURL=CreationScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreationScreen.js","sources":["../../../../src/features/design/surface/CreationScreen.tsx"],"sourcesContent":["/**\n * One creation, full screen - native twin of web `CreationView`:\n *\n * Preview | Code | Compare Compare holds the document from before the last\n * edit against the current one (Before / After)\n * device Mobile · Tablet · Desktop layout widths\n * Revert / Restore edit a swap, so the same button undoes itself\n * Annotate tap the page to pin a comment on what you tapped\n * Open the page alone, full screen in the app\n * Use in code publish the page; its raw url goes to the share sheet\n * Download the page as an .html file\n * theme the surface's light / dark toggle\n *\n * The Agent bar underneath edits this design in place (or makes a new one from it).\n */\nimport React, { useRef, useState } from 'react';\nimport { ActivityIndicator, Alert, Modal, ScrollView, Share, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { CanvasThemeToggle, themedStyles, useCanvasTheme, type CanvasPalette } from '../../canvas/canvasTheme';\nimport { ActionButton, IconButton, Pressable, RADIUS, SPACE, Segmented, TYPE } from '../../canvas/canvasUi';\nimport type { DesignArtifact } from './designBoard';\nimport { DESIGN_RADIUS } from './designTheme';\nimport { selectionLabel, type AnnotationTarget } from './designChat';\nimport { DesignPreview, PREVIEW_DEVICES, type DesignPreviewHandle, type PreviewDevice } from './DesignPreview';\nimport type { PriorVersion } from './useDesignSurface';\nimport { downloadDesign } from './designExport';\nimport { CompareView } from './CompareView';\n\ntype Tab = 'preview' | 'code' | 'compare';\n\nexport interface PendingPick {\n xPct: number;\n yPct: number;\n target?: AnnotationTarget;\n}\n\nexport function CreationScreen({\n creation,\n streaming,\n prior,\n onBack,\n onRevert,\n annotate,\n onToggleAnnotate,\n onAddPick,\n pickCount,\n composer,\n onPublish,\n onOpenFull,\n}: {\n creation: DesignArtifact;\n /** The live generation, shown as it is written. */\n streaming?: boolean;\n prior?: PriorVersion;\n onBack: () => void;\n onRevert?: () => void;\n annotate: boolean;\n onToggleAnnotate: () => void;\n onAddPick: (pick: PendingPick & { comment: string }) => void;\n pickCount: number;\n composer: React.ReactNode;\n /** \"Use in code\": publish the page; resolves to its raw url. Absent: the action hides. */\n onPublish?: (creation: DesignArtifact) => Promise<string>;\n /** \"Open\": the page on its own, full screen in the app. */\n onOpenFull?: () => void;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const [tab, setTab] = useState<Tab>('preview');\n const [device, setDevice] = useState<PreviewDevice>('desktop');\n const [publishing, setPublishing] = useState(false);\n const [pending, setPending] = useState<PendingPick | null>(null);\n const [comment, setComment] = useState('');\n const preview = useRef<DesignPreviewHandle>(null);\n const canCompare = Boolean(prior) && !streaming;\n const shownTab: Tab = tab === 'compare' && !canCompare ? 'preview' : tab;\n\n const download = () => {\n void downloadDesign(creation).catch((err) =>\n Alert.alert('Could not save the page', err instanceof Error ? err.message : 'Try again.'),\n );\n };\n\n /** Publish, then hand the raw url on - Codezen's Design panel and a coding agent fetch that form. */\n const useInCode = async () => {\n if (!onPublish || publishing) return;\n setPublishing(true);\n try {\n const url = await onPublish(creation);\n await Share.share({ message: url, title: creation.title });\n } catch (err) {\n Alert.alert('Could not publish the page', err instanceof Error ? err.message : 'Try again.');\n } finally {\n setPublishing(false);\n }\n };\n\n return (\n <View style={styles.fill}>\n <View style={styles.header}>\n <IconButton icon=\"chevron-left\" label=\"Back to the board\" onPress={onBack} />\n <View style={styles.titleWrap}>\n <Text style={styles.title} numberOfLines={1}>\n {streaming ? 'Generating…' : creation.title}\n </Text>\n {creation.partial && !streaming ? (\n <Text style={styles.partial}>Cut off before it finished</Text>\n ) : null}\n </View>\n {!streaming ? (\n <>\n <IconButton\n icon=\"refresh\"\n label=\"Refresh preview\"\n onPress={() => preview.current?.reload()}\n size={36}\n />\n <CanvasThemeToggle style={styles.toggle} />\n </>\n ) : null}\n </View>\n <View style={styles.toolbar}>\n <Segmented\n options={[\n { id: 'preview', label: 'Preview' },\n { id: 'code', label: 'Code' },\n ...(canCompare ? [{ id: 'compare' as const, label: 'Compare' }] : []),\n ]}\n value={shownTab}\n onChange={(id) => setTab(id as Tab)}\n />\n <View style={styles.devices}>\n {PREVIEW_DEVICES.map((d) => (\n <Pressable\n key={d.key}\n onPress={() => setDevice(d.key)}\n style={[styles.device, device === d.key && styles.deviceOn]}\n accessibilityRole=\"button\"\n accessibilityLabel={d.label}\n accessibilityState={{ selected: device === d.key }}\n >\n <MaterialCommunityIcons\n name={d.icon as React.ComponentProps<typeof MaterialCommunityIcons>['name']}\n size={17}\n color={device === d.key ? theme.foreground : theme.mutedForeground}\n />\n </Pressable>\n ))}\n </View>\n </View>\n {!streaming ? (\n <View style={styles.actions}>\n <Pressable\n onPress={onToggleAnnotate}\n style={[styles.action, annotate && styles.actionOn]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: annotate }}\n >\n <MaterialCommunityIcons\n name=\"map-marker-plus-outline\"\n size={15}\n color={annotate ? theme.primaryText : theme.mutedForeground}\n />\n <Text style={[styles.actionLabel, annotate && { color: theme.foreground }]}>\n {annotate ? 'Tap the page to pin' : 'Annotate'}\n {pickCount ? ` · ${pickCount}` : ''}\n </Text>\n </Pressable>\n {prior && onRevert ? (\n <Pressable onPress={onRevert} style={styles.action} accessibilityRole=\"button\">\n <MaterialCommunityIcons\n name={prior.reverted ? 'redo' : 'undo'}\n size={15}\n color={theme.mutedForeground}\n />\n <Text style={styles.actionLabel}>{prior.reverted ? 'Restore edit' : 'Revert'}</Text>\n </Pressable>\n ) : null}\n {onOpenFull ? (\n <Pressable onPress={onOpenFull} style={styles.action} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"arrow-expand-all\" size={15} color={theme.mutedForeground} />\n <Text style={styles.actionLabel}>Open</Text>\n </Pressable>\n ) : null}\n {onPublish ? (\n <Pressable\n onPress={() => void useInCode()}\n disabled={publishing}\n style={styles.action}\n accessibilityRole=\"button\"\n >\n {publishing ? (\n <ActivityIndicator size=\"small\" color={theme.mutedForeground} />\n ) : (\n <MaterialCommunityIcons name=\"code-braces\" size={15} color={theme.mutedForeground} />\n )}\n <Text style={styles.actionLabel}>{publishing ? 'Publishing…' : 'Use in code'}</Text>\n </Pressable>\n ) : null}\n <Pressable onPress={download} style={styles.action} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"download-outline\" size={15} color={theme.mutedForeground} />\n <Text style={styles.actionLabel}>Download</Text>\n </Pressable>\n </View>\n ) : null}\n\n <View style={styles.stage}>\n {shownTab === 'code' ? (\n <ScrollView style={styles.code} contentContainerStyle={styles.codeContent}>\n <ScrollView horizontal style={styles.codeRow}>\n <Text selectable style={styles.codeText}>\n {creation.html}\n </Text>\n </ScrollView>\n </ScrollView>\n ) : shownTab === 'compare' && prior ? (\n <CompareView beforeHtml={prior.html} afterHtml={creation.html} device={device} />\n ) : (\n <DesignPreview\n ref={preview}\n html={creation.html}\n device={device}\n annotate={annotate && !streaming}\n onPick={(pick) => {\n setComment('');\n setPending(pick);\n }}\n />\n )}\n </View>\n {composer}\n\n <Modal visible={Boolean(pending)} transparent animationType=\"fade\" onRequestClose={() => setPending(null)}>\n <View style={styles.cardScrim}>\n <View style={styles.card}>\n <Text style={styles.cardTitle}>Annotate “{creation.title}”</Text>\n {pending?.target ? (\n <View style={styles.targetRow}>\n <Text style={styles.targetTag}>{pending.target.tag || 'element'}</Text>\n <Text style={styles.targetText} numberOfLines={2}>\n {selectionLabel(pending.target) || 'no text - pinned by position'}\n </Text>\n </View>\n ) : null}\n <TextInput\n value={comment}\n onChangeText={setComment}\n placeholder=\"What should change here?\"\n placeholderTextColor={theme.mutedForeground}\n autoFocus\n multiline\n style={styles.cardInput}\n />\n <View style={styles.cardButtons}>\n <ActionButton label=\"Cancel\" variant=\"secondary\" onPress={() => setPending(null)} />\n <ActionButton\n label=\"Add pin\"\n onPress={() => {\n if (pending) onAddPick({ ...pending, comment: comment.trim() });\n setPending(null);\n }}\n />\n </View>\n </View>\n </View>\n </Modal>\n </View>\n );\n}\n\nconst makeStyles = themedStyles((theme: CanvasPalette) =>\n StyleSheet.create({\n fill: { flex: 1 },\n header: { flexDirection: 'row', alignItems: 'center', gap: SPACE.xs, paddingHorizontal: SPACE.sm, height: 52 },\n titleWrap: { flex: 1 },\n title: { ...TYPE.title, color: theme.foreground },\n partial: { ...TYPE.caption, color: theme.warningText },\n toolbar: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingHorizontal: SPACE.md,\n gap: SPACE.sm,\n },\n devices: { flexDirection: 'row', padding: 3, borderRadius: RADIUS.pill, backgroundColor: theme.card },\n device: { width: 34, height: 30, borderRadius: RADIUS.pill, alignItems: 'center', justifyContent: 'center' },\n deviceOn: { backgroundColor: theme.isDark ? theme.secondary : theme.surface },\n actions: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: SPACE.sm,\n paddingHorizontal: SPACE.md,\n paddingTop: SPACE.sm,\n },\n toggle: { marginLeft: SPACE.xs },\n action: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 5,\n height: 30,\n paddingHorizontal: SPACE.md,\n borderRadius: RADIUS.pill,\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: theme.border,\n },\n actionOn: { backgroundColor: theme.card, borderColor: theme.borderStrong },\n actionLabel: { ...TYPE.caption, color: theme.mutedForeground },\n stage: {\n flex: 1,\n margin: SPACE.md,\n borderRadius: DESIGN_RADIUS,\n overflow: 'hidden',\n backgroundColor: '#ffffff',\n borderWidth: StyleSheet.hairlineWidth,\n borderColor: theme.border,\n },\n code: { flex: 1, backgroundColor: theme.isDark ? '#0b0b0f' : '#f8fafc' },\n codeContent: { padding: SPACE.md },\n codeRow: { flexGrow: 0 },\n codeText: { fontFamily: 'Menlo', fontSize: 11, lineHeight: 16, color: theme.foreground },\n compareBar: { alignItems: 'center', paddingVertical: SPACE.xs, backgroundColor: theme.background },\n cardScrim: { flex: 1, backgroundColor: 'rgba(0,0,0,0.4)', justifyContent: 'center', padding: SPACE.xl },\n card: { borderRadius: DESIGN_RADIUS, padding: SPACE.lg, gap: SPACE.md, backgroundColor: theme.background },\n cardTitle: { ...TYPE.title, color: theme.foreground },\n targetRow: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.sm,\n padding: SPACE.sm,\n borderRadius: DESIGN_RADIUS,\n backgroundColor: theme.card,\n },\n targetTag: { fontFamily: 'Menlo', fontSize: 11, color: theme.primaryText },\n targetText: { ...TYPE.caption, color: theme.foreground, flex: 1 },\n cardInput: {\n minHeight: 70,\n borderRadius: DESIGN_RADIUS,\n padding: SPACE.md,\n backgroundColor: theme.card,\n color: theme.foreground,\n textAlignVertical: 'top',\n ...TYPE.body,\n },\n cardButtons: { flexDirection: 'row', justifyContent: 'flex-end', gap: SPACE.sm },\n }),\n);\n"],"names":[],"mappings":"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"}