@adminide-stack/yantra-mobile 12.0.129-alpha.0 → 12.0.129
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.
- package/lib/compute.js +57 -1
- package/lib/compute.js.map +1 -1
- package/lib/features/agent-chat/NativeAgentChat.js +3 -2
- package/lib/features/agent-chat/NativeAgentChat.js.map +1 -1
- package/lib/features/apps/AppsCatalog.js +10 -0
- package/lib/features/apps/AppsCatalog.js.map +1 -1
- package/lib/features/apps/mobileAppCatalog.js +11 -0
- package/lib/features/apps/mobileAppCatalog.js.map +1 -1
- package/lib/features/canvas/AudioEditorExperience.js +448 -105
- package/lib/features/canvas/AudioEditorExperience.js.map +1 -1
- package/lib/features/canvas/CanvasAgentChatPane.js +33 -14
- package/lib/features/canvas/CanvasAgentChatPane.js.map +1 -1
- package/lib/features/canvas/CanvasBoardsGrid.js +493 -41
- package/lib/features/canvas/CanvasBoardsGrid.js.map +1 -1
- package/lib/features/canvas/CanvasChatResultCard.js.map +1 -1
- package/lib/features/canvas/CanvasEditToolsPanel.js +37 -1
- package/lib/features/canvas/CanvasEditToolsPanel.js.map +1 -1
- package/lib/features/canvas/CanvasExperience.js +237 -22
- package/lib/features/canvas/CanvasExperience.js.map +1 -1
- package/lib/features/canvas/CanvasGeneratePanel.js +119 -26
- package/lib/features/canvas/CanvasGeneratePanel.js.map +1 -1
- package/lib/features/canvas/CanvasLooksPanel.js +17 -6
- package/lib/features/canvas/CanvasLooksPanel.js.map +1 -1
- package/lib/features/canvas/CanvasTasksPanel.js +18 -1
- package/lib/features/canvas/CanvasTasksPanel.js.map +1 -1
- package/lib/features/canvas/DesignCategoryGallery.js +423 -0
- package/lib/features/canvas/DesignCategoryGallery.js.map +1 -0
- package/lib/features/canvas/ImageEditorExperience.js +763 -187
- package/lib/features/canvas/ImageEditorExperience.js.map +1 -1
- package/lib/features/canvas/SetStudioExperience.js +199 -11
- package/lib/features/canvas/SetStudioExperience.js.map +1 -1
- package/lib/features/canvas/VideoEditorExperience.js +59 -40
- package/lib/features/canvas/VideoEditorExperience.js.map +1 -1
- package/lib/features/canvas/VideoGeneratorExperience.js +134 -34
- package/lib/features/canvas/VideoGeneratorExperience.js.map +1 -1
- package/lib/features/canvas/aiEdit.js +4 -2
- package/lib/features/canvas/aiEdit.js.map +1 -1
- package/lib/features/canvas/audioEditor/AudioWaveform.js +96 -0
- package/lib/features/canvas/audioEditor/AudioWaveform.js.map +1 -0
- package/lib/features/canvas/audioEditor/audioPeaks.js +93 -0
- package/lib/features/canvas/audioEditor/audioPeaks.js.map +1 -0
- package/lib/features/canvas/canvasTaskSync.js +34 -7
- package/lib/features/canvas/canvasTaskSync.js.map +1 -1
- package/lib/features/canvas/canvasTasks.js +23 -3
- package/lib/features/canvas/canvasTasks.js.map +1 -1
- package/lib/features/canvas/canvasTheme.js +10 -24
- package/lib/features/canvas/canvasTheme.js.map +1 -1
- package/lib/features/canvas/canvasUi.js +1 -1
- package/lib/features/canvas/canvasUi.js.map +1 -1
- package/lib/features/canvas/createTiles.js +17 -9
- package/lib/features/canvas/createTiles.js.map +1 -1
- package/lib/features/canvas/deepLinks.js +35 -5
- package/lib/features/canvas/deepLinks.js.map +1 -1
- package/lib/features/canvas/designCatalog.js +165 -0
- package/lib/features/canvas/designCatalog.js.map +1 -0
- package/lib/features/canvas/designCategories.js +262 -0
- package/lib/features/canvas/designCategories.js.map +1 -0
- package/lib/features/canvas/editorControls.js +406 -0
- package/lib/features/canvas/editorControls.js.map +1 -0
- package/lib/features/canvas/generationModels.js +5 -3
- package/lib/features/canvas/generationModels.js.map +1 -1
- package/lib/features/canvas/generationTasks.js +162 -0
- package/lib/features/canvas/generationTasks.js.map +1 -0
- package/lib/features/canvas/generator/BottomSheet.js +167 -0
- package/lib/features/canvas/generator/BottomSheet.js.map +1 -0
- package/lib/features/canvas/generator/BusinessCardChatCard.js +155 -0
- package/lib/features/canvas/generator/BusinessCardChatCard.js.map +1 -0
- package/lib/features/canvas/generator/DirectorSheet.js +163 -0
- package/lib/features/canvas/generator/DirectorSheet.js.map +1 -0
- package/lib/features/canvas/generator/ReframePreview.js +122 -0
- package/lib/features/canvas/generator/ReframePreview.js.map +1 -0
- package/lib/features/canvas/generator/RunLogCard.js +119 -0
- package/lib/features/canvas/generator/RunLogCard.js.map +1 -0
- package/lib/features/canvas/generator/ShotPanel.js +261 -0
- package/lib/features/canvas/generator/ShotPanel.js.map +1 -0
- package/lib/features/canvas/generator/businessCardWidget.js +117 -0
- package/lib/features/canvas/generator/businessCardWidget.js.map +1 -0
- package/lib/features/canvas/generator/cameraVocabulary.js +142 -0
- package/lib/features/canvas/generator/cameraVocabulary.js.map +1 -0
- package/lib/features/canvas/generator/cinematicVocabulary.js +416 -0
- package/lib/features/canvas/generator/cinematicVocabulary.js.map +1 -0
- package/lib/features/canvas/generator/direction.js +41 -0
- package/lib/features/canvas/generator/direction.js.map +1 -0
- package/lib/features/canvas/generator/reframeGeometry.js +108 -0
- package/lib/features/canvas/generator/reframeGeometry.js.map +1 -0
- package/lib/features/canvas/generator/runLog.js +71 -0
- package/lib/features/canvas/generator/runLog.js.map +1 -0
- package/lib/features/canvas/generator/shot.js +133 -0
- package/lib/features/canvas/generator/shot.js.map +1 -0
- package/lib/features/canvas/generator/useShotSpec.js +87 -0
- package/lib/features/canvas/generator/useShotSpec.js.map +1 -0
- package/lib/features/canvas/home/HeroComposer.js +214 -0
- package/lib/features/canvas/home/HeroComposer.js.map +1 -0
- package/lib/features/canvas/home/HeroMonitor.js +225 -0
- package/lib/features/canvas/home/HeroMonitor.js.map +1 -0
- package/lib/features/canvas/home/LookDetail.js +185 -0
- package/lib/features/canvas/home/LookDetail.js.map +1 -0
- package/lib/features/canvas/home/LoopingVideo.js +37 -0
- package/lib/features/canvas/home/LoopingVideo.js.map +1 -0
- package/lib/features/canvas/home/TemplatesGallery.js +253 -0
- package/lib/features/canvas/home/TemplatesGallery.js.map +1 -0
- package/lib/features/canvas/home/heroShots.js +100 -0
- package/lib/features/canvas/home/heroShots.js.map +1 -0
- package/lib/features/canvas/homeWork.js +62 -3
- package/lib/features/canvas/homeWork.js.map +1 -1
- package/lib/features/canvas/imageEditor/ImageMarkup.js +195 -0
- package/lib/features/canvas/imageEditor/ImageMarkup.js.map +1 -0
- package/lib/features/canvas/imageEditor/imageEditOps.js +367 -0
- package/lib/features/canvas/imageEditor/imageEditOps.js.map +1 -0
- package/lib/features/canvas/nativeViewerRegistry.js.map +1 -1
- package/lib/features/canvas/rankedCatalogSearch.js +375 -0
- package/lib/features/canvas/rankedCatalogSearch.js.map +1 -0
- package/lib/features/canvas/recorder/CameraRecorderExperience.js +68 -20
- package/lib/features/canvas/recorder/CameraRecorderExperience.js.map +1 -1
- package/lib/features/canvas/recorder/RecordingReview.js +272 -0
- package/lib/features/canvas/recorder/RecordingReview.js.map +1 -0
- package/lib/features/canvas/recorder/RecordingsList.js +179 -0
- package/lib/features/canvas/recorder/RecordingsList.js.map +1 -0
- package/lib/features/canvas/recorder/recorderOps.js +99 -0
- package/lib/features/canvas/recorder/recorderOps.js.map +1 -0
- package/lib/features/canvas/seedanceShowcase.js +314 -0
- package/lib/features/canvas/seedanceShowcase.js.map +1 -0
- package/lib/features/canvas/serverTasks.js +149 -15
- package/lib/features/canvas/serverTasks.js.map +1 -1
- package/lib/features/canvas/sessionRenewal.js +114 -0
- package/lib/features/canvas/sessionRenewal.js.map +1 -0
- package/lib/features/canvas/set/SetViewportWebView.js +34 -1
- package/lib/features/canvas/set/SetViewportWebView.js.map +1 -1
- package/lib/features/canvas/set/agent/setTurn.js +4 -2
- package/lib/features/canvas/set/agent/setTurn.js.map +1 -1
- package/lib/features/canvas/set/setPresets.js +85 -0
- package/lib/features/canvas/set/setPresets.js.map +1 -0
- package/lib/features/canvas/set/setProject.js +4 -1
- package/lib/features/canvas/set/setProject.js.map +1 -1
- package/lib/features/canvas/studioCatalog.js +59 -4
- package/lib/features/canvas/studioCatalog.js.map +1 -1
- package/lib/features/canvas/studioLooks.js +31 -4
- package/lib/features/canvas/studioLooks.js.map +1 -1
- package/lib/features/canvas/surfaceIndex.js +1 -14
- package/lib/features/canvas/surfaceIndex.js.map +1 -1
- package/lib/features/canvas/templateSearch.js +489 -0
- package/lib/features/canvas/templateSearch.js.map +1 -0
- package/lib/features/canvas/useCanvasSession.js +28 -6
- package/lib/features/canvas/useCanvasSession.js.map +1 -1
- package/lib/features/canvas/useStudioCatalogTemplates.js +41 -5
- package/lib/features/canvas/useStudioCatalogTemplates.js.map +1 -1
- package/lib/features/canvas/videoEditor/EditorPanels.js +531 -0
- package/lib/features/canvas/videoEditor/EditorPanels.js.map +1 -0
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js +48 -4
- package/lib/features/canvas/videoEditor/agent/AgentCutPane.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/agentLoop.js +2 -0
- package/lib/features/canvas/videoEditor/agent/agentLoop.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/brainClient.js +97 -27
- package/lib/features/canvas/videoEditor/agent/brainClient.js.map +1 -1
- package/lib/features/canvas/videoEditor/agent/cutTools.js +707 -3
- package/lib/features/canvas/videoEditor/agent/cutTools.js.map +1 -1
- package/lib/features/canvas/videoEditor/audioServices.js +165 -0
- package/lib/features/canvas/videoEditor/audioServices.js.map +1 -0
- package/lib/features/canvas/videoEditor/captions.js +144 -0
- package/lib/features/canvas/videoEditor/captions.js.map +1 -0
- package/lib/features/canvas/videoEditor/compileTimeline.js +24 -16
- package/lib/features/canvas/videoEditor/compileTimeline.js.map +1 -1
- package/lib/features/canvas/videoEditor/editorModel.js +12 -2
- package/lib/features/canvas/videoEditor/editorModel.js.map +1 -1
- package/lib/features/canvas/videoEditor/exportTask.js +89 -7
- package/lib/features/canvas/videoEditor/exportTask.js.map +1 -1
- package/lib/features/canvas/videoEditor/layers.js +117 -0
- package/lib/features/canvas/videoEditor/layers.js.map +1 -0
- package/lib/features/canvas/videoEditor/remoteMediaClient.js +45 -18
- package/lib/features/canvas/videoEditor/remoteMediaClient.js.map +1 -1
- package/lib/features/canvas/videoEditor/renderTimeline.js +18 -6
- package/lib/features/canvas/videoEditor/renderTimeline.js.map +1 -1
- package/lib/features/canvas/videoEditor/revoice.js +138 -0
- package/lib/features/canvas/videoEditor/revoice.js.map +1 -0
- package/lib/features/canvas/videoEditor/storageUpload.js +34 -0
- package/lib/features/canvas/videoEditor/storageUpload.js.map +1 -0
- package/lib/features/canvas/videoEditor/textMotion.js +109 -0
- package/lib/features/canvas/videoEditor/textMotion.js.map +1 -0
- package/lib/features/canvas/videoEditor/transitions.js +31 -0
- package/lib/features/canvas/videoEditor/transitions.js.map +1 -0
- package/lib/features/chat/TemplatesChatCards.js +8 -3
- package/lib/features/chat/TemplatesChatCards.js.map +1 -1
- package/lib/features/design/DesignEditorExperience.js +674 -644
- package/lib/features/design/DesignEditorExperience.js.map +1 -1
- package/lib/features/design/DesignExperience.js +285 -538
- package/lib/features/design/DesignExperience.js.map +1 -1
- package/lib/features/design/designCore.js +2 -212
- package/lib/features/design/designCore.js.map +1 -1
- package/lib/features/design/designIndex.js +1 -50
- package/lib/features/design/designIndex.js.map +1 -1
- package/lib/features/design/doc/aiDesign.js +247 -0
- package/lib/features/design/doc/aiDesign.js.map +1 -0
- package/lib/features/design/doc/artifacts.js +280 -0
- package/lib/features/design/doc/artifacts.js.map +1 -0
- package/lib/features/design/doc/chart.js +98 -0
- package/lib/features/design/doc/chart.js.map +1 -0
- package/lib/features/design/doc/crop.js +104 -0
- package/lib/features/design/doc/crop.js.map +1 -0
- package/lib/features/design/doc/curve.js +49 -0
- package/lib/features/design/doc/curve.js.map +1 -0
- package/lib/features/design/doc/docOps.js +397 -0
- package/lib/features/design/doc/docOps.js.map +1 -0
- package/lib/features/design/doc/findReplace.js +112 -0
- package/lib/features/design/doc/findReplace.js.map +1 -0
- package/lib/features/design/doc/fonts.js +79 -0
- package/lib/features/design/doc/fonts.js.map +1 -0
- package/lib/features/design/doc/frames.js +17 -0
- package/lib/features/design/doc/frames.js.map +1 -0
- package/lib/features/design/doc/geometry.js +133 -0
- package/lib/features/design/doc/geometry.js.map +1 -0
- package/lib/features/design/doc/imageAdjust.js +203 -0
- package/lib/features/design/doc/imageAdjust.js.map +1 -0
- package/lib/features/design/doc/legacyDoc.js +107 -0
- package/lib/features/design/doc/legacyDoc.js.map +1 -0
- package/lib/features/design/doc/newDoc.js +335 -0
- package/lib/features/design/doc/newDoc.js.map +1 -0
- package/lib/features/design/doc/pageRange.js +17 -0
- package/lib/features/design/doc/pageRange.js.map +1 -0
- package/lib/features/design/doc/pathScale.js +68 -0
- package/lib/features/design/doc/pathScale.js.map +1 -0
- package/lib/features/design/doc/qr.js +62 -0
- package/lib/features/design/doc/qr.js.map +1 -0
- package/lib/features/design/doc/shapes.js +366 -0
- package/lib/features/design/doc/shapes.js.map +1 -0
- package/lib/features/design/doc/sizes.js +230 -0
- package/lib/features/design/doc/sizes.js.map +1 -0
- package/lib/features/design/doc/textEffects.js +134 -0
- package/lib/features/design/doc/textEffects.js.map +1 -0
- package/lib/features/design/doc/textLayout.js +182 -0
- package/lib/features/design/doc/textLayout.js.map +1 -0
- package/lib/features/design/doc/types.js +30 -0
- package/lib/features/design/doc/types.js.map +1 -0
- package/lib/features/design/editor/AiPanel.js +194 -0
- package/lib/features/design/editor/AiPanel.js.map +1 -0
- package/lib/features/design/editor/ChartDataPanel.js +182 -0
- package/lib/features/design/editor/ChartDataPanel.js.map +1 -0
- package/lib/features/design/editor/CropOverlay.js +199 -0
- package/lib/features/design/editor/CropOverlay.js.map +1 -0
- package/lib/features/design/editor/DesignCanvas.js +363 -0
- package/lib/features/design/editor/DesignCanvas.js.map +1 -0
- package/lib/features/design/editor/ExportSheet.js +123 -0
- package/lib/features/design/editor/ExportSheet.js.map +1 -0
- package/lib/features/design/editor/FindReplacePanel.js +93 -0
- package/lib/features/design/editor/FindReplacePanel.js.map +1 -0
- package/lib/features/design/editor/ImageTools.js +188 -0
- package/lib/features/design/editor/ImageTools.js.map +1 -0
- package/lib/features/design/editor/LayerTools.js +485 -0
- package/lib/features/design/editor/LayerTools.js.map +1 -0
- package/lib/features/design/editor/PageStrip.js +203 -0
- package/lib/features/design/editor/PageStrip.js.map +1 -0
- package/lib/features/design/editor/Slideshow.js +97 -0
- package/lib/features/design/editor/Slideshow.js.map +1 -0
- package/lib/features/design/editor/ToolPanels.js +695 -0
- package/lib/features/design/editor/ToolPanels.js.map +1 -0
- package/lib/features/design/editor/controls.js +630 -0
- package/lib/features/design/editor/controls.js.map +1 -0
- package/lib/features/design/editor/useDesignSave.js +91 -0
- package/lib/features/design/editor/useDesignSave.js.map +1 -0
- package/lib/features/design/export/exportDesign.js +170 -0
- package/lib/features/design/export/exportDesign.js.map +1 -0
- package/lib/features/design/export/pdf.js +143 -0
- package/lib/features/design/export/pdf.js.map +1 -0
- package/lib/features/design/home/DesignHome.js +688 -0
- package/lib/features/design/home/DesignHome.js.map +1 -0
- package/lib/features/design/home/studioHome.js +61 -0
- package/lib/features/design/home/studioHome.js.map +1 -0
- package/lib/features/design/pickDesignImage.js +60 -0
- package/lib/features/design/pickDesignImage.js.map +1 -0
- package/lib/features/design/render/DesignPageView.js +69 -0
- package/lib/features/design/render/DesignPageView.js.map +1 -0
- package/lib/features/design/render/PageCapture.js +288 -0
- package/lib/features/design/render/PageCapture.js.map +1 -0
- package/lib/features/design/render/TextMeasure.js +115 -0
- package/lib/features/design/render/TextMeasure.js.map +1 -0
- package/lib/features/design/render/fontRegistry.js +110 -0
- package/lib/features/design/render/fontRegistry.js.map +1 -0
- package/lib/features/design/render/layers.js +392 -0
- package/lib/features/design/render/layers.js.map +1 -0
- package/lib/features/design/render/svg.js +35 -0
- package/lib/features/design/render/svg.js.map +1 -0
- package/lib/features/design/render/svgParts.js +435 -0
- package/lib/features/design/render/svgParts.js.map +1 -0
- package/lib/features/design/surface/BoardScreen.js +529 -0
- package/lib/features/design/surface/BoardScreen.js.map +1 -0
- package/lib/features/design/surface/CompareView.js +138 -0
- package/lib/features/design/surface/CompareView.js.map +1 -0
- package/lib/features/design/surface/CreationScreen.js +294 -0
- package/lib/features/design/surface/CreationScreen.js.map +1 -0
- package/lib/features/design/surface/DesignAgentChatPane.js +444 -0
- package/lib/features/design/surface/DesignAgentChatPane.js.map +1 -0
- package/lib/features/design/surface/DesignBoards.js +441 -0
- package/lib/features/design/surface/DesignBoards.js.map +1 -0
- package/lib/features/design/surface/DesignPreview.js +159 -0
- package/lib/features/design/surface/DesignPreview.js.map +1 -0
- package/lib/features/design/surface/DesignSurfaceExperience.js +80 -0
- package/lib/features/design/surface/DesignSurfaceExperience.js.map +1 -0
- package/lib/features/design/surface/FullScreenPreview.js +59 -0
- package/lib/features/design/surface/FullScreenPreview.js.map +1 -0
- package/lib/features/design/surface/NewSystemDialog.js +122 -0
- package/lib/features/design/surface/NewSystemDialog.js.map +1 -0
- package/lib/features/design/surface/PickerSheet.js +175 -0
- package/lib/features/design/surface/PickerSheet.js.map +1 -0
- package/lib/features/design/surface/TemplatesGallery.js +156 -0
- package/lib/features/design/surface/TemplatesGallery.js.map +1 -0
- package/lib/features/design/surface/WetPaint.js +140 -0
- package/lib/features/design/surface/WetPaint.js.map +1 -0
- package/lib/features/design/surface/agentTurn.js +229 -0
- package/lib/features/design/surface/agentTurn.js.map +1 -0
- package/lib/features/design/surface/designBoard.js +218 -0
- package/lib/features/design/surface/designBoard.js.map +1 -0
- package/lib/features/design/surface/designChannel.js +186 -0
- package/lib/features/design/surface/designChannel.js.map +1 -0
- package/lib/features/design/surface/designChat.js +141 -0
- package/lib/features/design/surface/designChat.js.map +1 -0
- package/lib/features/design/surface/designConnector.js +266 -0
- package/lib/features/design/surface/designConnector.js.map +1 -0
- package/lib/features/design/surface/designDocument.js +40 -0
- package/lib/features/design/surface/designDocument.js.map +1 -0
- package/lib/features/design/surface/designExport.js +55 -0
- package/lib/features/design/surface/designExport.js.map +1 -0
- package/lib/features/design/surface/designLinks.js +64 -0
- package/lib/features/design/surface/designLinks.js.map +1 -0
- package/lib/features/design/surface/designPalette.js +24 -0
- package/lib/features/design/surface/designPalette.js.map +1 -0
- package/lib/features/design/surface/designRun.js +161 -0
- package/lib/features/design/surface/designRun.js.map +1 -0
- package/lib/features/design/surface/designTheme.js +119 -0
- package/lib/features/design/surface/designTheme.js.map +1 -0
- package/lib/features/design/surface/execStream.js +206 -0
- package/lib/features/design/surface/execStream.js.map +1 -0
- package/lib/features/design/surface/metaball.js +48 -0
- package/lib/features/design/surface/metaball.js.map +1 -0
- package/lib/features/design/surface/pickReferenceFiles.js +35 -0
- package/lib/features/design/surface/pickReferenceFiles.js.map +1 -0
- package/lib/features/design/surface/useDesignSurface.js +379 -0
- package/lib/features/design/surface/useDesignSurface.js.map +1 -0
- package/lib/features/docs/DocBlockRow.js +336 -0
- package/lib/features/docs/DocBlockRow.js.map +1 -0
- package/lib/features/docs/DocsEditorExperience.js +949 -0
- package/lib/features/docs/DocsEditorExperience.js.map +1 -0
- package/lib/features/docs/DocsToolbar.js +247 -0
- package/lib/features/docs/DocsToolbar.js.map +1 -0
- package/lib/features/docs/blocks.js +560 -0
- package/lib/features/docs/blocks.js.map +1 -0
- package/lib/features/docs/docArtifacts.js +129 -0
- package/lib/features/docs/docArtifacts.js.map +1 -0
- package/lib/features/docs/docEdits.js +201 -0
- package/lib/features/docs/docEdits.js.map +1 -0
- package/lib/features/docs/docExport.js +235 -0
- package/lib/features/docs/docExport.js.map +1 -0
- package/lib/features/docs/docShare.js +62 -0
- package/lib/features/docs/docShare.js.map +1 -0
- package/lib/features/links/openInApp.js +38 -2
- package/lib/features/links/openInApp.js.map +1 -1
- package/lib/routes.json +54 -0
- package/lib/screens/DesignNative/index.js +35 -0
- package/lib/screens/DesignNative/index.js.map +1 -0
- package/package.json +4 -4
- package/lib/features/design/exportDesign.js +0 -133
- package/lib/features/design/exportDesign.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplatesChatCards.js","sources":["../../../src/features/chat/TemplatesChatCards.tsx"],"sourcesContent":["/**\n * The phone's cards for templates in the chat (common TEMPLATES_CHAT_PROTOCOL), the twins of the\n * web's TemplatesMessage and CanvasDesignMessage:\n *\n * - `templates`: one row that opens the Templates surface on that category in the app's surface\n * screen (signed in with this device). Where it opens is templatesRowTarget: the reply's own\n * Templates link when it has one, so a pick there can come back into this chat, else the\n * surface of this app's environment, to browse.\n * - `canvas-design`: the pages of a design the agent made from a template, side by side.\n */\nimport React, { memo, useCallback, useMemo, useState } from 'react';\nimport { Image, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation, type NavigationProp, type ParamListBase } from '@react-navigation/native';\nimport {\n canvasDesignKindLabel,\n isTemplatesSurfaceUrl,\n templatesOpeningTitle,\n templatesSurfaceLinkWithOpening,\n templatesSurfaceUrl,\n type CanvasDesignAttachment,\n type TemplatesOpening,\n} from 'common';\nimport { config } from '../../config/env-config';\nimport { useChatLinkOpener } from '../links/chatLinkOpener';\nimport { openSurfaceInApp } from '../links/openInApp';\n\nconst ACCENT = '#2563eb';\n/** The Templates surface's slug: `templates-surface.<env>` through SURFACE_URL_TEMPLATE. */\nexport const TEMPLATES_SURFACE_SLUG = 'templates';\n\n/** The Templates surface page for an opening, or null when the template has no `{slug}` (it would open another surface). */\nexport function templatesSurfaceLink(\n surfaceUrlTemplate: string | undefined,\n opening: TemplatesOpening | null | undefined,\n): string | null {\n const template = surfaceUrlTemplate?.trim();\n if (!template || !template.includes('{slug}')) return null;\n return templatesSurfaceUrl(template.replace(/\\{slug\\}/g, TEMPLATES_SURFACE_SLUG), opening);\n}\n\n/**\n * Where a templates row opens.\n *\n * - `reply`: the reply's own Templates link - the one the messenger gateway ended the reply with\n * (chatWidgets takes it out of the text for the row), carrying the reply's snapshot (`ys`) - with\n * the row's category and search added. It opens as that link would have from the text: the\n * gateway says it is a surface page and the app opens it in its surface screen, signed in. The\n * Templates page reads the snapshot and, when this chat may take a pick, offers \"Make it here in\n * the chat\", which sends the pick back here as the person's next turn.\n * - `browse`: a reply with no such link (older replies, or the agent asked for no surface). The\n * Templates surface of this app's own environment, on the category: browsing and \"Edit on the\n * web\" work, but with no snapshot the page has no chat to send a pick to.\n *\n * Null when neither exists (no surface template configured).\n */\nexport type TemplatesRowTarget = { kind: 'reply' | 'browse'; url: string };\n\nexport function templatesRowTarget(\n surfaceUrlTemplate: string | undefined,\n opening: TemplatesOpening | null | undefined,\n replyLink?: string | null,\n): TemplatesRowTarget | null {\n if (replyLink && isTemplatesSurfaceUrl(replyLink)) {\n return { kind: 'reply', url: templatesSurfaceLinkWithOpening(replyLink.trim(), opening) };\n }\n const url = templatesSurfaceLink(surfaceUrlTemplate, opening);\n return url ? { kind: 'browse', url } : null;\n}\n\nfunction palette(isDark: boolean) {\n return {\n card: isDark ? '#111827' : '#ffffff',\n border: isDark ? '#1f2937' : '#e5e7eb',\n title: isDark ? '#f1f5f9' : '#111827',\n muted: isDark ? '#94a3b8' : '#6b7280',\n iconBg: isDark ? '#1e293b' : '#eff6ff',\n icon: isDark ? '#60a5fa' : ACCENT,\n table: isDark ? '#0b1220' : '#f9fafb',\n pressed: isDark ? '#1f2937' : '#f3f4f6',\n };\n}\n\nconst styles = StyleSheet.create({\n card: { width: '100%', borderWidth: 1, borderRadius: 16, marginTop: 4, marginBottom: 8, overflow: 'hidden' },\n row: { flexDirection: 'row', alignItems: 'center', gap: 12, padding: 14 },\n icon: { width: 40, height: 40, borderRadius: 10, alignItems: 'center', justifyContent: 'center' },\n body: { flex: 1, minWidth: 0 },\n title: { fontSize: 15, fontWeight: '700', lineHeight: 20 },\n subtitle: { fontSize: 13, lineHeight: 18, marginTop: 2 },\n header: { flexDirection: 'row', alignItems: 'center', gap: 8, paddingHorizontal: 14, paddingVertical: 10 },\n badge: { borderRadius: 6, paddingHorizontal: 6, paddingVertical: 2 },\n badgeText: { fontSize: 11, fontWeight: '600' },\n pages: { paddingHorizontal: 12, paddingVertical: 12, gap: 10 },\n page: { width: 200, height: 150, borderRadius: 8 },\n count: { fontSize: 11 },\n});\n\n/** A `templates` widget: one row that opens the Templates surface on its category. */\nexport const TemplatesWidgetCard = memo(function TemplatesWidgetCard({\n opening,\n link,\n isDark,\n}: {\n opening: TemplatesOpening;\n /** The reply's Templates surface link (with its snapshot), when the reply carried one. */\n link?: string;\n isDark: boolean;\n}) {\n const navigation = useNavigation<NavigationProp<ParamListBase>>();\n const openChatLink = useChatLinkOpener();\n const colors = palette(isDark);\n const target = useMemo(() => templatesRowTarget(config.SURFACE_URL_TEMPLATE, opening, link), [opening, link]);\n const title = templatesOpeningTitle(opening);\n const open = useCallback(() => {\n if (!target) return;\n // The reply's link opens the way a tapped link does (the gateway names its surface);\n // the browse page is this app's own surface, from its own config.\n if (target.kind === 'reply') openChatLink(target.url);\n else openSurfaceInApp(navigation, { surface: TEMPLATES_SURFACE_SLUG, url: target.url });\n }, [navigation, openChatLink, target]);\n if (!target) return null;\n return (\n <Pressable\n onPress={open}\n accessibilityRole=\"button\"\n accessibilityLabel={`Browse ${title.charAt(0).toLowerCase()}${title.slice(1)}`}\n style={({ pressed }) => [\n styles.card,\n { borderColor: colors.border, backgroundColor: pressed ? colors.pressed : colors.card },\n ]}\n >\n <View style={styles.row}>\n <View style={[styles.icon, { backgroundColor: colors.iconBg }]}>\n <MaterialCommunityIcons name=\"view-grid-outline\" size={22} color={colors.icon} />\n </View>\n <View style={styles.body}>\n <Text style={[styles.title, { color: colors.title }]} numberOfLines={1}>\n Browse {title.charAt(0).toLowerCase() + title.slice(1)}\n </Text>\n <Text style={[styles.subtitle, { color: colors.muted }]} numberOfLines={1}>\n {opening.query ? `Matching “${opening.query}”` : 'Pick one to start from it'}\n </Text>\n </View>\n <MaterialCommunityIcons name=\"chevron-right\" size={20} color={colors.muted} />\n </View>\n </Pressable>\n );\n});\n\n/** One page; a render that will not load leaves a quiet tile, never a broken image. */\nfunction PagePreview({ uri, label, isDark }: { uri: string; label: string; isDark: boolean }) {\n const [failed, setFailed] = useState(false);\n const colors = palette(isDark);\n if (failed) {\n return (\n <View\n accessible\n accessibilityLabel={`${label} (preview unavailable)`}\n style={[\n styles.page,\n { backgroundColor: colors.border, alignItems: 'center', justifyContent: 'center' },\n ]}\n >\n <MaterialCommunityIcons name=\"image-off-outline\" size={22} color={colors.muted} />\n </View>\n );\n }\n return (\n <Image\n source={{ uri }}\n accessibilityLabel={label}\n resizeMode=\"contain\"\n onError={() => setFailed(true)}\n style={styles.page}\n />\n );\n}\n\n/** A `canvas-design` widget: what was made and its pages, side by side. */\nexport const CanvasDesignWidgetCard = memo(function CanvasDesignWidgetCard({\n design,\n isDark,\n}: {\n design: CanvasDesignAttachment;\n isDark: boolean;\n}) {\n const colors = palette(isDark);\n const kind = canvasDesignKindLabel(design);\n const title = design.title ?? `Your ${kind.toLowerCase()}`;\n const pages = design.previews.length;\n return (\n <View\n accessibilityLabel={`${kind}: ${title}`}\n style={[styles.card, { borderColor: colors.border, backgroundColor: colors.card }]}\n >\n <View style={styles.header}>\n <View style={[styles.badge, { backgroundColor: colors.iconBg }]}>\n <Text style={[styles.badgeText, { color: colors.icon }]}>{kind}</Text>\n </View>\n <Text style={[styles.title, styles.body, { color: colors.title }]} numberOfLines={1}>\n {title}\n </Text>\n {pages > 1 ? <Text style={[styles.count, { color: colors.muted }]}>{pages} pages</Text> : null}\n </View>\n {pages > 0 ? (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.pages}\n style={{ backgroundColor: colors.table }}\n >\n {design.previews.map((uri, i) => (\n <PagePreview\n key={`${i}:${uri}`}\n uri={uri}\n label={pages > 1 ? `${title}, page ${i + 1} of ${pages}` : title}\n isDark={isDark}\n />\n ))}\n </ScrollView>\n ) : null}\n </View>\n );\n});\n"],"names":["TemplatesWidgetCard","CanvasDesignWidgetCard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TemplatesChatCards.js","sources":["../../../src/features/chat/TemplatesChatCards.tsx"],"sourcesContent":["/**\n * The phone's cards for templates in the chat (common TEMPLATES_CHAT_PROTOCOL), the twins of the\n * web's TemplatesMessage and CanvasDesignMessage:\n *\n * - `templates`: one row that opens the Templates surface on that category in the app's surface\n * screen (signed in with this device). Where it opens is templatesRowTarget: the reply's own\n * Templates link when it has one, so a pick there can come back into this chat, else the\n * surface of this app's environment, to browse.\n * - `canvas-design`: the pages of a design the agent made from a template, side by side.\n */\nimport React, { memo, useCallback, useMemo, useState } from 'react';\nimport { Image, Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { useNavigation, type NavigationProp, type ParamListBase } from '@react-navigation/native';\nimport {\n canvasDesignKindLabel,\n isTemplatesSurfaceUrl,\n templatesOpeningTitle,\n templatesSurfaceLinkWithOpening,\n templatesSurfaceUrl,\n type CanvasDesignAttachment,\n type TemplatesOpening,\n} from 'common';\nimport { config } from '../../config/env-config';\nimport { useChatLinkOpener } from '../links/chatLinkOpener';\nimport { openDesignNative, openSurfaceInApp } from '../links/openInApp';\nimport { designOpeningFromCard } from '../design/surface/designLinks';\n\nconst ACCENT = '#2563eb';\n/** The Templates surface's slug: `templates-surface.<env>` through SURFACE_URL_TEMPLATE. */\nexport const TEMPLATES_SURFACE_SLUG = 'templates';\n\n/** The Templates surface page for an opening, or null when the template has no `{slug}` (it would open another surface). */\nexport function templatesSurfaceLink(\n surfaceUrlTemplate: string | undefined,\n opening: TemplatesOpening | null | undefined,\n): string | null {\n const template = surfaceUrlTemplate?.trim();\n if (!template || !template.includes('{slug}')) return null;\n return templatesSurfaceUrl(template.replace(/\\{slug\\}/g, TEMPLATES_SURFACE_SLUG), opening);\n}\n\n/**\n * Where a templates row opens.\n *\n * - `reply`: the reply's own Templates link - the one the messenger gateway ended the reply with\n * (chatWidgets takes it out of the text for the row), carrying the reply's snapshot (`ys`) - with\n * the row's category and search added. It opens as that link would have from the text: the\n * gateway says it is a surface page and the app opens it in its surface screen, signed in. The\n * Templates page reads the snapshot and, when this chat may take a pick, offers \"Make it here in\n * the chat\", which sends the pick back here as the person's next turn.\n * - `browse`: a reply with no such link (older replies, or the agent asked for no surface). The\n * Templates surface of this app's own environment, on the category: browsing and \"Edit on the\n * web\" work, but with no snapshot the page has no chat to send a pick to.\n *\n * Null when neither exists (no surface template configured).\n */\nexport type TemplatesRowTarget = { kind: 'reply' | 'browse'; url: string };\n\nexport function templatesRowTarget(\n surfaceUrlTemplate: string | undefined,\n opening: TemplatesOpening | null | undefined,\n replyLink?: string | null,\n): TemplatesRowTarget | null {\n if (replyLink && isTemplatesSurfaceUrl(replyLink)) {\n return { kind: 'reply', url: templatesSurfaceLinkWithOpening(replyLink.trim(), opening) };\n }\n const url = templatesSurfaceLink(surfaceUrlTemplate, opening);\n return url ? { kind: 'browse', url } : null;\n}\n\nfunction palette(isDark: boolean) {\n return {\n card: isDark ? '#111827' : '#ffffff',\n border: isDark ? '#1f2937' : '#e5e7eb',\n title: isDark ? '#f1f5f9' : '#111827',\n muted: isDark ? '#94a3b8' : '#6b7280',\n iconBg: isDark ? '#1e293b' : '#eff6ff',\n icon: isDark ? '#60a5fa' : ACCENT,\n table: isDark ? '#0b1220' : '#f9fafb',\n pressed: isDark ? '#1f2937' : '#f3f4f6',\n };\n}\n\nconst styles = StyleSheet.create({\n card: { width: '100%', borderWidth: 1, borderRadius: 16, marginTop: 4, marginBottom: 8, overflow: 'hidden' },\n row: { flexDirection: 'row', alignItems: 'center', gap: 12, padding: 14 },\n icon: { width: 40, height: 40, borderRadius: 10, alignItems: 'center', justifyContent: 'center' },\n body: { flex: 1, minWidth: 0 },\n title: { fontSize: 15, fontWeight: '700', lineHeight: 20 },\n subtitle: { fontSize: 13, lineHeight: 18, marginTop: 2 },\n header: { flexDirection: 'row', alignItems: 'center', gap: 8, paddingHorizontal: 14, paddingVertical: 10 },\n badge: { borderRadius: 6, paddingHorizontal: 6, paddingVertical: 2 },\n badgeText: { fontSize: 11, fontWeight: '600' },\n pages: { paddingHorizontal: 12, paddingVertical: 12, gap: 10 },\n page: { width: 200, height: 150, borderRadius: 8 },\n count: { fontSize: 11 },\n});\n\n/** A `templates` widget: one row that opens the Templates surface on its category. */\nexport const TemplatesWidgetCard = memo(function TemplatesWidgetCard({\n opening,\n link,\n isDark,\n}: {\n opening: TemplatesOpening;\n /** The reply's Templates surface link (with its snapshot), when the reply carried one. */\n link?: string;\n isDark: boolean;\n}) {\n const navigation = useNavigation<NavigationProp<ParamListBase>>();\n const openChatLink = useChatLinkOpener();\n const colors = palette(isDark);\n const target = useMemo(() => templatesRowTarget(config.SURFACE_URL_TEMPLATE, opening, link), [opening, link]);\n const title = templatesOpeningTitle(opening);\n const design = useMemo(() => designOpeningFromCard(opening), [opening]);\n const open = useCallback(() => {\n // Design templates have a native gallery: the card opens it, not the web Templates page.\n if (design) {\n openDesignNative(navigation, design);\n return;\n }\n if (!target) return;\n // The reply's link opens the way a tapped link does (the gateway names its surface);\n // the browse page is this app's own surface, from its own config.\n if (target.kind === 'reply') openChatLink(target.url);\n else openSurfaceInApp(navigation, { surface: TEMPLATES_SURFACE_SLUG, url: target.url });\n }, [navigation, openChatLink, target, design]);\n if (!target && !design) return null;\n return (\n <Pressable\n onPress={open}\n accessibilityRole=\"button\"\n accessibilityLabel={`Browse ${title.charAt(0).toLowerCase()}${title.slice(1)}`}\n style={({ pressed }) => [\n styles.card,\n { borderColor: colors.border, backgroundColor: pressed ? colors.pressed : colors.card },\n ]}\n >\n <View style={styles.row}>\n <View style={[styles.icon, { backgroundColor: colors.iconBg }]}>\n <MaterialCommunityIcons name=\"view-grid-outline\" size={22} color={colors.icon} />\n </View>\n <View style={styles.body}>\n <Text style={[styles.title, { color: colors.title }]} numberOfLines={1}>\n Browse {title.charAt(0).toLowerCase() + title.slice(1)}\n </Text>\n <Text style={[styles.subtitle, { color: colors.muted }]} numberOfLines={1}>\n {opening.query ? `Matching “${opening.query}”` : 'Pick one to start from it'}\n </Text>\n </View>\n <MaterialCommunityIcons name=\"chevron-right\" size={20} color={colors.muted} />\n </View>\n </Pressable>\n );\n});\n\n/** One page; a render that will not load leaves a quiet tile, never a broken image. */\nfunction PagePreview({ uri, label, isDark }: { uri: string; label: string; isDark: boolean }) {\n const [failed, setFailed] = useState(false);\n const colors = palette(isDark);\n if (failed) {\n return (\n <View\n accessible\n accessibilityLabel={`${label} (preview unavailable)`}\n style={[\n styles.page,\n { backgroundColor: colors.border, alignItems: 'center', justifyContent: 'center' },\n ]}\n >\n <MaterialCommunityIcons name=\"image-off-outline\" size={22} color={colors.muted} />\n </View>\n );\n }\n return (\n <Image\n source={{ uri }}\n accessibilityLabel={label}\n resizeMode=\"contain\"\n onError={() => setFailed(true)}\n style={styles.page}\n />\n );\n}\n\n/** A `canvas-design` widget: what was made and its pages, side by side. */\nexport const CanvasDesignWidgetCard = memo(function CanvasDesignWidgetCard({\n design,\n isDark,\n}: {\n design: CanvasDesignAttachment;\n isDark: boolean;\n}) {\n const colors = palette(isDark);\n const kind = canvasDesignKindLabel(design);\n const title = design.title ?? `Your ${kind.toLowerCase()}`;\n const pages = design.previews.length;\n return (\n <View\n accessibilityLabel={`${kind}: ${title}`}\n style={[styles.card, { borderColor: colors.border, backgroundColor: colors.card }]}\n >\n <View style={styles.header}>\n <View style={[styles.badge, { backgroundColor: colors.iconBg }]}>\n <Text style={[styles.badgeText, { color: colors.icon }]}>{kind}</Text>\n </View>\n <Text style={[styles.title, styles.body, { color: colors.title }]} numberOfLines={1}>\n {title}\n </Text>\n {pages > 1 ? <Text style={[styles.count, { color: colors.muted }]}>{pages} pages</Text> : null}\n </View>\n {pages > 0 ? (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n contentContainerStyle={styles.pages}\n style={{ backgroundColor: colors.table }}\n >\n {design.previews.map((uri, i) => (\n <PagePreview\n key={`${i}:${uri}`}\n uri={uri}\n label={pages > 1 ? `${title}, page ${i + 1} of ${pages}` : title}\n isDark={isDark}\n />\n ))}\n </ScrollView>\n ) : null}\n </View>\n );\n});\n"],"names":["TemplatesWidgetCard","CanvasDesignWidgetCard"],"mappings":"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"}
|