@adminide-stack/yantra-mobile 12.0.128 → 12.0.129-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolPanels.js","sources":["../../../../src/features/design/editor/ToolPanels.tsx"],"sourcesContent":["/**\n * The editor's bottom tools - native twin of web's RightPanel tabs:\n *\n * AI design pages from a brief, or edit the open page (editor/AiPanel)\n * Templates this design's catalog shelf, searchable; a pick replaces an\n * empty design or adds its pages after the open one\n * Elements the web's shape families, frames, graphics, QR codes and charts\n * Text heading / subheading / body presets, in the brand fonts\n * Brand the design's brand kit: colours, display and body fonts, logos\n * Details name, size, page name and notes, print bleed\n * Assets a picture from the device, the design's own pictures, logos\n */\nimport React, { useEffect, useMemo, useRef, useState } from 'react';\nimport { ActivityIndicator, StyleSheet, Text, TextInput, View } from 'react-native';\nimport { Image } from 'expo-image';\nimport { MaterialCommunityIcons } from '@expo/vector-icons';\nimport { themedStyles, useCanvasTheme, type CanvasPalette } from '../../canvas/canvasTheme';\nimport { Pressable, RADIUS, SPACE, TYPE } from '../../canvas/canvasUi';\nimport type { DesignCatalogCard, DesignCatalogGroup } from '../../canvas/designCatalog';\nimport type { LoadDesignCatalog } from '../../canvas/DesignCategoryGallery';\nimport { TEXT_PRESETS, type TextPreset } from '../doc/docOps';\nimport { catalogGroupOf } from '../doc/newDoc';\nimport { scalePath } from '../doc/pathScale';\nimport { SHAPES, SHAPE_CATEGORIES, isStrokeShape, shapesInCategory, type ShapeKind } from '../doc/shapes';\nimport { DESIGN_SIZES, fromPx, type DesignSize } from '../doc/sizes';\nimport type { BrandKit, ChartKind, DesignDoc, DesignPage } from '../doc/types';\nimport { resolveTextFont } from '../render/fontRegistry';\nimport { SvgBoundary, getSvg, svgUsable } from '../render/svg';\nimport { DEFAULT_QR_STYLE, normaliseQrText, type QrStyle } from '../doc/qr';\nimport { ColorPicker, FontList } from './controls';\nimport { FramesGrid } from './ImageTools';\nimport { colorsInDoc, fontsInDoc } from './LayerTools';\n\nexport type DockTool = 'ai' | 'templates' | 'elements' | 'text' | 'brand' | 'details' | 'assets';\n\nexport const DOCK_TOOLS: ReadonlyArray<{\n id: DockTool;\n label: string;\n icon: React.ComponentProps<typeof MaterialCommunityIcons>['name'];\n}> = [\n { id: 'ai', label: 'AI', icon: 'creation' },\n { id: 'templates', label: 'Templates', icon: 'view-dashboard-outline' },\n { id: 'elements', label: 'Elements', icon: 'shape-outline' },\n { id: 'text', label: 'Text', icon: 'format-text' },\n { id: 'brand', label: 'Brand', icon: 'palette-outline' },\n { id: 'details', label: 'Details', icon: 'tune-variant' },\n { id: 'assets', label: 'Assets', icon: 'image-multiple-outline' },\n];\n\n// ── Templates ────────────────────────────────────────────────────────────\n\nexport function TemplatesPanel({\n doc,\n load,\n onPick,\n width,\n}: {\n doc: DesignDoc;\n load?: LoadDesignCatalog;\n onPick: (card: DesignCatalogCard) => void;\n width: number;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const group: DesignCatalogGroup = catalogGroupOf(doc) ?? 'canvas-flyer';\n const [query, setQuery] = useState('');\n const [search, setSearch] = useState('');\n const [cards, setCards] = useState<DesignCatalogCard[]>([]);\n const [status, setStatus] = useState<'loading' | 'ready' | 'failed'>('loading');\n useEffect(() => {\n const t = setTimeout(() => setSearch(query.trim()), 350);\n return () => clearTimeout(t);\n }, [query]);\n useEffect(() => {\n if (!load) {\n setStatus('failed');\n return undefined;\n }\n let live = true;\n setStatus('loading');\n load(group, { search: search || undefined, limit: 24, offset: 0 }).then(\n (page) => {\n if (!live) return;\n setCards(page.cards);\n setStatus('ready');\n },\n () => live && setStatus('failed'),\n );\n return () => {\n live = false;\n };\n }, [load, group, search]);\n const col = (width - SPACE.lg * 2 - SPACE.md) / 2;\n return (\n <View>\n <TextInput\n value={query}\n onChangeText={setQuery}\n placeholder=\"Search templates\"\n placeholderTextColor={theme.edInk3}\n style={styles.search}\n autoCorrect={false}\n returnKeyType=\"search\"\n />\n {status === 'loading' ? <ActivityIndicator style={styles.spinner} color={theme.edInk2} /> : null}\n {status === 'failed' ? <Text style={styles.empty}>Templates could not load.</Text> : null}\n {status === 'ready' && cards.length === 0 ? <Text style={styles.empty}>No templates match.</Text> : null}\n <View style={styles.grid}>\n {cards.map((card) => (\n <Pressable\n key={card.id}\n onPress={() => onPick(card)}\n style={({ pressed }) => [{ width: col }, pressed && styles.pressed]}\n accessibilityRole=\"button\"\n accessibilityLabel={card.title}\n >\n <Image\n source={{ uri: card.coverUrl }}\n style={[styles.cover, { width: col, height: (col * card.pageHeight) / card.pageWidth }]}\n contentFit=\"cover\"\n transition={150}\n />\n <Text style={styles.cardTitle} numberOfLines={1}>\n {card.title}\n </Text>\n </Pressable>\n ))}\n </View>\n </View>\n );\n}\n\n// ── Elements ─────────────────────────────────────────────────────────────\n\nfunction ShapeGlyph({ shape, size, color }: { shape: ShapeKind; size: number; color: string }) {\n const svg = getSvg();\n const box = (\n <View\n style={{\n width: size,\n height: size,\n backgroundColor: color,\n borderRadius: shape === 'ellipse' ? size / 2 : 4,\n }}\n />\n );\n if (!svg || !svgUsable()) return box;\n const { Svg, Path, Line } = svg;\n return (\n <SvgBoundary fallback={box}>\n <Svg width={size} height={size}>\n {isStrokeShape(shape) ? (\n <Line\n x1={2}\n y1={size / 2}\n x2={size - 2}\n y2={size / 2}\n stroke={color}\n strokeWidth={3}\n strokeLinecap=\"round\"\n />\n ) : (\n <Path d={scalePath(SHAPES[shape].d, size, size)} fill={color} />\n )}\n </Svg>\n </SvgBoundary>\n );\n}\n\nconst CHARTS: Array<{\n id: ChartKind;\n label: string;\n icon: React.ComponentProps<typeof MaterialCommunityIcons>['name'];\n}> = [\n { id: 'bar', label: 'Bar', icon: 'chart-bar' },\n { id: 'row', label: 'Row', icon: 'chart-gantt' },\n { id: 'line', label: 'Line', icon: 'chart-line' },\n { id: 'area', label: 'Area', icon: 'chart-areaspline' },\n { id: 'pie', label: 'Pie', icon: 'chart-pie' },\n { id: 'donut', label: 'Donut', icon: 'chart-donut' },\n];\n\n/** Web shared/elements.ts STICKER_EMOJI. */\nconst STICKER_EMOJI = [\n '\\u{1F525}',\n '\\u2764\\uFE0F',\n '\\u{1F602}',\n '\\u{1F44D}',\n '\\u2B50',\n '\\u{1F389}',\n '\\u{1F4AF}',\n '\\u2728',\n '\\u{1F60D}',\n '\\u{1F680}',\n '\\u{1F44F}',\n '\\u{1F4A1}',\n];\n\n/** QR colour pairs offered (code on background). */\nconst QR_COLORS: Array<{ foreground: string; background: string }> = [\n { foreground: '#000000', background: '#ffffff' },\n { foreground: '#0f172a', background: '#f8fafc' },\n { foreground: '#ffffff', background: '#000000' },\n { foreground: '#1d4ed8', background: '#ffffff' },\n { foreground: '#7c3aed', background: '#faf5ff' },\n];\n\nfunction QrSection({ onAdd }: { onAdd: (text: string, style: QrStyle) => Promise<void> }) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const [text, setText] = useState('');\n const [style, setStyle] = useState<QrStyle>(DEFAULT_QR_STYLE);\n const [busy, setBusy] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const value = normaliseQrText(text);\n const add = async () => {\n if (!value || busy) return;\n setBusy(true);\n setError(null);\n try {\n await onAdd(value, style);\n setText('');\n } catch (err) {\n setError(err instanceof Error ? err.message : 'The QR code could not be added. Try again.');\n } finally {\n setBusy(false);\n }\n };\n return (\n <View style={styles.section}>\n <Text style={styles.heading}>QR code</Text>\n <TextInput\n value={text}\n onChangeText={setText}\n placeholder=\"yantra.app\"\n placeholderTextColor={theme.edInk3}\n autoCapitalize=\"none\"\n autoCorrect={false}\n keyboardType=\"url\"\n style={styles.input}\n onSubmitEditing={() => void add()}\n />\n <View style={styles.swatchRow}>\n {QR_COLORS.map((c) => {\n const on = c.foreground === style.foreground && c.background === style.background;\n return (\n <Pressable\n key={`${c.foreground}${c.background}`}\n onPress={() => setStyle((s) => ({ ...s, ...c }))}\n style={[\n styles.qrSwatch,\n { backgroundColor: c.background, borderColor: on ? theme.edAccent : theme.edLineHi },\n ]}\n accessibilityRole=\"button\"\n accessibilityState={{ selected: on }}\n accessibilityLabel={`Code ${c.foreground} on ${c.background}`}\n >\n <View style={[styles.qrDot, { backgroundColor: c.foreground }]} />\n </Pressable>\n );\n })}\n <Pressable\n onPress={() => setStyle((s) => ({ ...s, margin: s.margin ? 0 : 2 }))}\n style={[styles.qrSwatch, { borderColor: style.margin ? theme.edAccent : theme.edLineHi }]}\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: Boolean(style.margin) }}\n accessibilityLabel=\"Quiet zone\"\n >\n <MaterialCommunityIcons name=\"border-outside\" size={18} color={theme.edInk2} />\n </Pressable>\n </View>\n <Pressable\n onPress={() => void add()}\n disabled={!value || busy}\n style={[styles.wideButton, (!value || busy) && styles.dim]}\n accessibilityRole=\"button\"\n >\n {busy ? (\n <ActivityIndicator color={theme.edInk2} />\n ) : (\n <MaterialCommunityIcons name=\"qrcode-plus\" size={20} color={theme.edInk} />\n )}\n <Text style={styles.wideLabel}>{busy ? 'Adding…' : 'Add QR code'}</Text>\n </Pressable>\n {error ? <Text style={[styles.empty, { color: theme.edDanger, paddingVertical: 0 }]}>{error}</Text> : null}\n </View>\n );\n}\n\nexport function ElementsPanel({\n onShape,\n onChart,\n onPhoto,\n onSticker,\n onFrame,\n frameCurrent,\n onQr,\n}: {\n onShape: (shape: ShapeKind) => void;\n onChart: (chart: ChartKind) => void;\n onPhoto?: () => void;\n onSticker?: (emoji: string) => void;\n /** Put the selected picture in a frame, or add an empty frame. */\n onFrame?: (d: string | undefined) => void;\n /** The selected picture's frame. */\n frameCurrent?: string;\n onQr?: (text: string, style: QrStyle) => Promise<void>;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n return (\n <View style={styles.stack}>\n {onPhoto ? (\n <Pressable onPress={onPhoto} style={styles.wideButton} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"image-plus\" size={20} color={theme.edInk} />\n <Text style={styles.wideLabel}>Add a photo</Text>\n </Pressable>\n ) : null}\n {SHAPE_CATEGORIES.map((cat) => (\n <View key={cat.id} style={styles.section}>\n <Text style={styles.heading}>{cat.label}</Text>\n <View style={styles.tileGrid}>\n {shapesInCategory(cat.id).map((shape) => (\n <Pressable\n key={shape}\n onPress={() => onShape(shape)}\n style={({ pressed }) => [styles.tile, pressed && styles.pressed]}\n accessibilityRole=\"button\"\n accessibilityLabel={SHAPES[shape].label}\n >\n <ShapeGlyph shape={shape} size={34} color={theme.edInk2} />\n </Pressable>\n ))}\n </View>\n </View>\n ))}\n {onFrame ? (\n <View style={styles.section}>\n <Text style={styles.heading}>Frames</Text>\n <FramesGrid current={frameCurrent} onPick={onFrame} />\n </View>\n ) : null}\n {onSticker ? (\n <View style={styles.section}>\n <Text style={styles.heading}>Graphics</Text>\n <View style={styles.tileGrid}>\n {STICKER_EMOJI.map((emoji) => (\n <Pressable\n key={emoji}\n onPress={() => onSticker(emoji)}\n style={({ pressed }) => [styles.tile, pressed && styles.pressed]}\n accessibilityRole=\"button\"\n accessibilityLabel={`Add ${emoji} sticker`}\n >\n <Text style={styles.emoji}>{emoji}</Text>\n </Pressable>\n ))}\n </View>\n </View>\n ) : null}\n {onQr ? <QrSection onAdd={onQr} /> : null}\n <View style={styles.section}>\n <Text style={styles.heading}>Charts</Text>\n <View style={styles.tileGrid}>\n {CHARTS.map((chart) => (\n <Pressable\n key={chart.id}\n onPress={() => onChart(chart.id)}\n style={({ pressed }) => [styles.tile, pressed && styles.pressed]}\n accessibilityRole=\"button\"\n accessibilityLabel={`${chart.label} chart`}\n >\n <MaterialCommunityIcons name={chart.icon} size={30} color={theme.edInk2} />\n </Pressable>\n ))}\n </View>\n </View>\n </View>\n );\n}\n\n// ── Text ─────────────────────────────────────────────────────────────────\n\nexport function TextPanel({\n doc,\n onAdd,\n onTextBox,\n}: {\n doc: DesignDoc;\n onAdd: (preset: TextPreset) => void;\n onTextBox?: () => void;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const fonts = doc.brandKit?.fonts ?? doc.fontPair ?? { display: 'Inter', body: 'Inter' };\n const presets: Array<{ id: TextPreset; size: number }> = [\n { id: 'heading', size: 26 },\n { id: 'subheading', size: 19 },\n { id: 'body', size: 14 },\n ];\n return (\n <View style={styles.stack}>\n {onTextBox ? (\n <Pressable onPress={onTextBox} style={styles.wideButton} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"format-text\" size={20} color={theme.edInk} />\n <Text style={styles.wideLabel}>Add a text box</Text>\n </Pressable>\n ) : null}\n <Text style={styles.heading}>Default text styles</Text>\n {presets.map(({ id, size }) => {\n const p = TEXT_PRESETS[id];\n return (\n <Pressable\n key={id}\n onPress={() => onAdd(id)}\n style={({ pressed }) => [styles.textPreset, pressed && styles.pressed]}\n accessibilityRole=\"button\"\n >\n <Text\n style={[\n { fontSize: size, color: theme.edInk },\n resolveTextFont(fonts[p.fontToken], p.fontWeight, false),\n ]}\n >\n {p.content}\n </Text>\n </Pressable>\n );\n })}\n </View>\n );\n}\n\n// ── Brand ────────────────────────────────────────────────────────────────\n\nexport function BrandPanel({\n doc,\n onBrandKit,\n onPlaceLogo,\n onAddLogo,\n}: {\n doc: DesignDoc;\n onBrandKit: (kit: BrandKit) => void;\n onPlaceLogo: (src: string) => void;\n onAddLogo?: () => void;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const kit: BrandKit = doc.brandKit ?? {\n colors: [],\n fonts: doc.fontPair ?? { display: 'Inter', body: 'Inter' },\n logos: [],\n };\n const [picking, setPicking] = useState<'color' | 'display' | 'body' | null>(null);\n if (picking === 'color') {\n return (\n <View style={styles.stack}>\n <BackRow label=\"Add a brand colour\" onBack={() => setPicking(null)} />\n <ColorPicker\n used={colorsInDoc(doc)}\n onChange={(c) => {\n if (!kit.colors.includes(c)) onBrandKit({ ...kit, colors: [...kit.colors, c] });\n setPicking(null);\n }}\n />\n </View>\n );\n }\n if (picking === 'display' || picking === 'body') {\n const role = picking;\n return (\n <View style={styles.stack}>\n <BackRow label={role === 'display' ? 'Heading font' : 'Body font'} onBack={() => setPicking(null)} />\n <FontList\n value={kit.fonts[role]}\n designFonts={fontsInDoc(doc)}\n onChange={(family) => {\n onBrandKit({ ...kit, fonts: { ...kit.fonts, [role]: family } });\n setPicking(null);\n }}\n />\n </View>\n );\n }\n return (\n <View style={styles.stack}>\n <View style={styles.section}>\n <Text style={styles.heading}>Brand colours</Text>\n <View style={styles.swatchRow}>\n {kit.colors.map((c) => (\n <Pressable\n key={c}\n onLongPress={() => onBrandKit({ ...kit, colors: kit.colors.filter((x) => x !== c) })}\n style={[styles.swatch, { backgroundColor: c }]}\n accessibilityLabel={`${c}, hold to remove`}\n />\n ))}\n <Pressable\n onPress={() => setPicking('color')}\n style={[styles.swatch, styles.swatchAdd]}\n accessibilityLabel=\"Add colour\"\n >\n <MaterialCommunityIcons name=\"plus\" size={18} color={theme.edInk2} />\n </Pressable>\n </View>\n {kit.colors.length ? <Text style={styles.hint}>Hold a colour to remove it.</Text> : null}\n </View>\n <View style={styles.section}>\n <Text style={styles.heading}>Brand fonts</Text>\n {(['display', 'body'] as const).map((role) => (\n <Pressable\n key={role}\n onPress={() => setPicking(role)}\n style={styles.row}\n accessibilityRole=\"button\"\n >\n <Text style={styles.rowLabel}>{role === 'display' ? 'Heading' : 'Body'}</Text>\n <Text\n style={[\n styles.rowValue,\n resolveTextFont(kit.fonts[role], role === 'display' ? 700 : 400, false),\n ]}\n >\n {kit.fonts[role]}\n </Text>\n <MaterialCommunityIcons name=\"chevron-right\" size={18} color={theme.edInk3} />\n </Pressable>\n ))}\n </View>\n <View style={styles.section}>\n <Text style={styles.heading}>Logos</Text>\n <View style={styles.swatchRow}>\n {kit.logos.map((src) => (\n <Pressable\n key={src}\n onPress={() => onPlaceLogo(src)}\n onLongPress={() => onBrandKit({ ...kit, logos: kit.logos.filter((l) => l !== src) })}\n style={styles.logo}\n accessibilityLabel=\"Logo, tap to place, hold to remove\"\n >\n <Image source={{ uri: src }} style={StyleSheet.absoluteFill} contentFit=\"contain\" />\n </Pressable>\n ))}\n {onAddLogo ? (\n <Pressable\n onPress={onAddLogo}\n style={[styles.logo, styles.swatchAdd]}\n accessibilityLabel=\"Upload a logo\"\n >\n <MaterialCommunityIcons name=\"upload\" size={20} color={theme.edInk2} />\n </Pressable>\n ) : null}\n </View>\n </View>\n </View>\n );\n}\n\nfunction BackRow({ label, onBack }: { label: string; onBack: () => void }) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n return (\n <Pressable onPress={onBack} style={styles.backRow} accessibilityRole=\"button\">\n <MaterialCommunityIcons name=\"chevron-left\" size={20} color={theme.edInk} />\n <Text style={styles.rowLabel}>{label}</Text>\n </Pressable>\n );\n}\n\n// ── Details ──────────────────────────────────────────────────────────────\n\nexport function DetailsPanel({\n doc,\n page,\n onRename,\n onResize,\n onPage,\n}: {\n doc: DesignDoc;\n page: DesignPage;\n onRename: (title: string) => void;\n onResize: (size: DesignSize) => void;\n onPage: (patch: Partial<DesignPage>) => void;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const [title, setTitle] = useState(doc.title ?? doc.brief?.topic ?? '');\n const [showSizes, setShowSizes] = useState(false);\n const print = Boolean(doc.print);\n const sizes = useMemo(() => DESIGN_SIZES.filter((s) => (print ? s.kind === 'flyer' : s.kind === 'deck')), [print]);\n const size =\n print && doc.print?.trimMm\n ? `${doc.print.trimMm.w} × ${doc.print.trimMm.h} mm`\n : `${doc.pageWidth} × ${doc.pageHeight} px`;\n return (\n <View style={styles.stack}>\n <View style={styles.section}>\n <Text style={styles.heading}>Design name</Text>\n <TextInput\n value={title}\n onChangeText={setTitle}\n onEndEditing={() => onRename(title.trim())}\n onSubmitEditing={() => onRename(title.trim())}\n placeholder=\"Untitled design\"\n placeholderTextColor={theme.edInk3}\n style={styles.input}\n returnKeyType=\"done\"\n />\n </View>\n <View style={styles.section}>\n <Text style={styles.heading}>Size</Text>\n <Pressable onPress={() => setShowSizes((v) => !v)} style={styles.row} accessibilityRole=\"button\">\n <Text style={styles.rowLabel}>{size}</Text>\n <Text style={styles.rowValue}>{print ? 'Print' : 'Screen'}</Text>\n <MaterialCommunityIcons\n name={showSizes ? 'chevron-up' : 'chevron-down'}\n size={18}\n color={theme.edInk3}\n />\n </Pressable>\n {showSizes\n ? sizes.map((s) => (\n <Pressable\n key={s.id}\n onPress={() => {\n onResize(s);\n setShowSizes(false);\n }}\n style={styles.row}\n accessibilityRole=\"button\"\n >\n <Text style={styles.rowLabel}>{s.label}</Text>\n <Text style={styles.rowValue}>{s.physical ?? `${s.width} × ${s.height}`}</Text>\n </Pressable>\n ))\n : null}\n {print && doc.print ? (\n <Text style={styles.hint}>\n Bleed {doc.print.bleedMm} mm · safe area {doc.print.safeAreaMm} mm ·{' '}\n {fromPx(doc.pageWidth, 'in')} × {fromPx(doc.pageHeight, 'in')} in\n </Text>\n ) : null}\n </View>\n <View style={styles.section}>\n <Text style={styles.heading}>This page</Text>\n <PageField label=\"Page name\" value={page.name ?? ''} onCommit={(name) => onPage({ name })} />\n <PageField\n label=\"Notes\"\n value={page.notes ?? ''}\n multiline\n onCommit={(notes) => onPage({ notes: notes || undefined })}\n />\n </View>\n </View>\n );\n}\n\nfunction PageField({\n label,\n value,\n onCommit,\n multiline,\n}: {\n label: string;\n value: string;\n onCommit: (value: string) => void;\n multiline?: boolean;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const [text, setText] = useState(value);\n const last = useRef(value);\n useEffect(() => {\n if (value !== last.current) {\n last.current = value;\n setText(value);\n }\n }, [value]);\n const commit = () => {\n if (text !== last.current) {\n last.current = text;\n onCommit(text);\n }\n };\n return (\n <TextInput\n value={text}\n onChangeText={setText}\n onEndEditing={commit}\n placeholder={label}\n placeholderTextColor={theme.edInk3}\n multiline={multiline}\n style={[styles.input, multiline && styles.inputMulti]}\n />\n );\n}\n\n// ── Assets ───────────────────────────────────────────────────────────────\n\n/** Every picture the design holds (layers and page grounds), newest-placed last. */\nexport function picturesInDoc(doc: DesignDoc): string[] {\n const seen = new Set<string>();\n for (const page of doc.pages) {\n if (page.background?.kind === 'image' && page.background.src) seen.add(page.background.src);\n for (const l of page.layers ?? []) if (l.kind === 'image' && l.src && /^https:/.test(l.src)) seen.add(l.src);\n }\n return [...seen].filter((src) => !/\\.svg(\\?|$)/i.test(src));\n}\n\nexport function AssetsPanel({\n doc,\n width,\n onUpload,\n uploading,\n onPlace,\n replacing,\n}: {\n doc: DesignDoc;\n width: number;\n onUpload?: () => void;\n uploading?: boolean;\n onPlace: (src: string) => void;\n /** A picture is selected: a pick replaces it instead of adding one. */\n replacing?: boolean;\n}) {\n const theme = useCanvasTheme();\n const styles = makeStyles(theme);\n const pictures = picturesInDoc(doc);\n const logos = doc.brandKit?.logos ?? [];\n const col = (width - SPACE.lg * 2 - SPACE.sm * 2) / 3;\n return (\n <View style={styles.stack}>\n {onUpload ? (\n <Pressable onPress={onUpload} disabled={uploading} style={styles.wideButton} accessibilityRole=\"button\">\n {uploading ? (\n <ActivityIndicator color={theme.edInk} />\n ) : (\n <MaterialCommunityIcons name=\"upload\" size={20} color={theme.edInk} />\n )}\n <Text style={styles.wideLabel}>{replacing ? 'Replace with a photo' : 'Upload from device'}</Text>\n </Pressable>\n ) : null}\n {[\n { title: 'In this design', items: pictures },\n { title: 'Logos', items: logos },\n ]\n .filter((g) => g.items.length)\n .map((g) => (\n <View key={g.title} style={styles.section}>\n <Text style={styles.heading}>{g.title}</Text>\n <View style={styles.assetGrid}>\n {g.items.map((src) => (\n <Pressable\n key={src}\n onPress={() => onPlace(src)}\n style={({ pressed }) => [\n styles.asset,\n { width: col, height: col },\n pressed && styles.pressed,\n ]}\n accessibilityRole=\"button\"\n accessibilityLabel={replacing ? 'Use this picture' : 'Add this picture'}\n >\n <Image source={{ uri: src }} style={StyleSheet.absoluteFill} contentFit=\"cover\" />\n </Pressable>\n ))}\n </View>\n </View>\n ))}\n {!onUpload && !pictures.length && !logos.length ? (\n <Text style={styles.empty}>Pictures you add to this design show here.</Text>\n ) : null}\n </View>\n );\n}\n\nconst makeStyles = themedStyles((theme: CanvasPalette) =>\n StyleSheet.create({\n stack: { gap: SPACE.lg },\n section: { gap: SPACE.sm },\n heading: { ...TYPE.label, color: theme.edInk2 },\n hint: { ...TYPE.caption, color: theme.edInk3 },\n empty: { ...TYPE.body, color: theme.edInk2, textAlign: 'center', paddingVertical: SPACE.xl },\n spinner: { paddingVertical: SPACE.xl },\n pressed: { opacity: 0.7 },\n search: {\n height: 40,\n borderRadius: RADIUS.pill,\n paddingHorizontal: SPACE.lg,\n backgroundColor: theme.edRaised,\n color: theme.edInk,\n marginBottom: SPACE.md,\n ...TYPE.body,\n },\n grid: { flexDirection: 'row', flexWrap: 'wrap', gap: SPACE.md },\n cover: { borderRadius: RADIUS.sm, backgroundColor: theme.edRaised },\n cardTitle: { ...TYPE.caption, color: theme.edInk2, marginTop: 4 },\n tileGrid: { flexDirection: 'row', flexWrap: 'wrap', gap: SPACE.sm },\n tile: {\n width: 56,\n height: 56,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edRaised,\n alignItems: 'center',\n justifyContent: 'center',\n },\n wideButton: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: SPACE.sm,\n height: 46,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edRaised,\n },\n wideLabel: { ...TYPE.label, color: theme.edInk },\n dim: { opacity: 0.4 },\n emoji: { fontSize: 28 },\n qrSwatch: {\n width: 40,\n height: 40,\n borderRadius: RADIUS.sm,\n borderWidth: 2,\n alignItems: 'center',\n justifyContent: 'center',\n },\n qrDot: { width: 16, height: 16, borderRadius: 3 },\n textPreset: {\n paddingVertical: SPACE.md,\n paddingHorizontal: SPACE.lg,\n borderRadius: RADIUS.md,\n backgroundColor: theme.edRaised,\n },\n swatchRow: { flexDirection: 'row', flexWrap: 'wrap', gap: SPACE.sm },\n swatch: { width: 40, height: 40, borderRadius: 20, borderWidth: 1, borderColor: theme.edLineHi },\n swatchAdd: {\n alignItems: 'center',\n justifyContent: 'center',\n borderStyle: 'dashed',\n backgroundColor: 'transparent',\n },\n logo: {\n width: 64,\n height: 64,\n borderRadius: RADIUS.sm,\n borderWidth: 1,\n borderColor: theme.edLine,\n overflow: 'hidden',\n backgroundColor: theme.edRaised,\n },\n row: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: SPACE.sm,\n minHeight: 46,\n paddingHorizontal: SPACE.md,\n borderRadius: RADIUS.sm,\n backgroundColor: theme.edRaised,\n },\n rowLabel: { ...TYPE.body, color: theme.edInk, flex: 1 },\n rowValue: { ...TYPE.body, color: theme.edInk2 },\n backRow: { flexDirection: 'row', alignItems: 'center', gap: SPACE.xs },\n input: {\n minHeight: 42,\n borderRadius: RADIUS.sm,\n paddingHorizontal: SPACE.md,\n backgroundColor: theme.edRaised,\n color: theme.edInk,\n ...TYPE.body,\n },\n inputMulti: { minHeight: 84, paddingTop: SPACE.sm, textAlignVertical: 'top' },\n assetGrid: { flexDirection: 'row', flexWrap: 'wrap', gap: SPACE.sm },\n asset: { borderRadius: RADIUS.sm, overflow: 'hidden', backgroundColor: theme.edRaised },\n }),\n);\n"],"names":["_a"],"mappings":"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"}
|