@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,366 @@
|
|
|
1
|
+
const SHAPE_CATEGORIES = [{
|
|
2
|
+
id: "basic",
|
|
3
|
+
label: "Basic shapes"
|
|
4
|
+
}, {
|
|
5
|
+
id: "polygon",
|
|
6
|
+
label: "Polygons"
|
|
7
|
+
}, {
|
|
8
|
+
id: "star",
|
|
9
|
+
label: "Stars"
|
|
10
|
+
}, {
|
|
11
|
+
id: "arrow",
|
|
12
|
+
label: "Arrows"
|
|
13
|
+
}, {
|
|
14
|
+
id: "flow",
|
|
15
|
+
label: "Flowchart shapes"
|
|
16
|
+
}, {
|
|
17
|
+
id: "bubble",
|
|
18
|
+
label: "Speech bubbles"
|
|
19
|
+
}, {
|
|
20
|
+
id: "cloud",
|
|
21
|
+
label: "Clouds"
|
|
22
|
+
}];
|
|
23
|
+
const f = (n) => Number(n.toFixed(4));
|
|
24
|
+
const polyD = (pts) => `M${pts.map(([x, y]) => `${f(x)} ${f(y)}`).join("L")}Z`;
|
|
25
|
+
function ngonD(n, rot = -Math.PI / 2) {
|
|
26
|
+
return polyD(Array.from({
|
|
27
|
+
length: n
|
|
28
|
+
}, (_, i) => {
|
|
29
|
+
const a = rot + i * 2 * Math.PI / n;
|
|
30
|
+
return [0.5 + Math.cos(a) * 0.5, 0.5 + Math.sin(a) * 0.5];
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
function starD(points, inner) {
|
|
34
|
+
const step = Math.PI / points;
|
|
35
|
+
return polyD(Array.from({
|
|
36
|
+
length: points * 2
|
|
37
|
+
}, (_, i) => {
|
|
38
|
+
const r = i % 2 === 0 ? 0.5 : 0.5 * inner;
|
|
39
|
+
const a = -Math.PI / 2 + i * step;
|
|
40
|
+
return [0.5 + Math.cos(a) * r, 0.5 + Math.sin(a) * r];
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
const circleD = (cx, cy, r) => `M${f(cx - r)} ${f(cy)}A${f(r)} ${f(r)} 0 1 1 ${f(cx + r)} ${f(cy)}A${f(r)} ${f(r)} 0 1 1 ${f(cx - r)} ${f(cy)}Z`;
|
|
44
|
+
const boxD = (x, y, w, h) => `M${f(x)} ${f(y)}H${f(x + w)}V${f(y + h)}H${f(x)}Z`;
|
|
45
|
+
const SHAPES = {
|
|
46
|
+
// ── Basic ────────────────────────────────────────────────────────────────
|
|
47
|
+
rect: {
|
|
48
|
+
label: "Square",
|
|
49
|
+
cat: "basic",
|
|
50
|
+
d: "M0 0H1V1H0Z"
|
|
51
|
+
},
|
|
52
|
+
ellipse: {
|
|
53
|
+
label: "Circle",
|
|
54
|
+
cat: "basic",
|
|
55
|
+
d: "M0 .5A.5 .5 0 1 1 1 .5A.5 .5 0 1 1 0 .5Z"
|
|
56
|
+
},
|
|
57
|
+
triangle: {
|
|
58
|
+
label: "Triangle",
|
|
59
|
+
cat: "basic",
|
|
60
|
+
d: "M.5 0L1 1H0Z"
|
|
61
|
+
},
|
|
62
|
+
"triangle-right": {
|
|
63
|
+
label: "Right triangle",
|
|
64
|
+
cat: "basic",
|
|
65
|
+
d: "M0 0V1H1Z"
|
|
66
|
+
},
|
|
67
|
+
"triangle-down": {
|
|
68
|
+
label: "Triangle down",
|
|
69
|
+
cat: "basic",
|
|
70
|
+
d: "M0 0H1L.5 1Z"
|
|
71
|
+
},
|
|
72
|
+
diamond: {
|
|
73
|
+
label: "Diamond",
|
|
74
|
+
cat: "basic",
|
|
75
|
+
d: "M.5 0L1 .5L.5 1L0 .5Z"
|
|
76
|
+
},
|
|
77
|
+
parallelogram: {
|
|
78
|
+
label: "Parallelogram",
|
|
79
|
+
cat: "basic",
|
|
80
|
+
d: "M.25 0H1L.75 1H0Z"
|
|
81
|
+
},
|
|
82
|
+
trapezoid: {
|
|
83
|
+
label: "Trapezoid",
|
|
84
|
+
cat: "basic",
|
|
85
|
+
d: "M.25 0H.75L1 1H0Z"
|
|
86
|
+
},
|
|
87
|
+
pill: {
|
|
88
|
+
label: "Pill",
|
|
89
|
+
cat: "basic",
|
|
90
|
+
d: "M.25 0H.75A.25 .5 0 0 1 .75 1H.25A.25 .5 0 0 1 .25 0Z"
|
|
91
|
+
},
|
|
92
|
+
semicircle: {
|
|
93
|
+
label: "Semicircle",
|
|
94
|
+
cat: "basic",
|
|
95
|
+
d: "M0 1A.5 .5 0 0 1 1 1Z"
|
|
96
|
+
},
|
|
97
|
+
arch: {
|
|
98
|
+
label: "Arch",
|
|
99
|
+
cat: "basic",
|
|
100
|
+
d: "M0 1V.5A.5 .5 0 0 1 1 .5V1Z"
|
|
101
|
+
},
|
|
102
|
+
"quarter-circle": {
|
|
103
|
+
label: "Quarter circle",
|
|
104
|
+
cat: "basic",
|
|
105
|
+
d: "M0 1V0A1 1 0 0 1 1 1Z"
|
|
106
|
+
},
|
|
107
|
+
cross: {
|
|
108
|
+
label: "Cross",
|
|
109
|
+
cat: "basic",
|
|
110
|
+
d: "M.35 0H.65V.35H1V.65H.65V1H.35V.65H0V.35H.35Z"
|
|
111
|
+
},
|
|
112
|
+
heart: {
|
|
113
|
+
label: "Heart",
|
|
114
|
+
cat: "basic",
|
|
115
|
+
d: "M.5 .96C.13 .68 0 .46 0 .29C0 .12 .13 .02 .28 .02C.38 .02 .45 .07 .5 .15C.55 .07 .62 .02 .72 .02C.87 .02 1 .12 1 .29C1 .46 .87 .68 .5 .96Z"
|
|
116
|
+
},
|
|
117
|
+
line: {
|
|
118
|
+
label: "Line",
|
|
119
|
+
cat: "basic",
|
|
120
|
+
d: "M0 .45H1V.55H0Z",
|
|
121
|
+
stroke: true
|
|
122
|
+
},
|
|
123
|
+
arrow: {
|
|
124
|
+
label: "Line arrow",
|
|
125
|
+
cat: "basic",
|
|
126
|
+
d: "M0 .42H.62V.24L1 .5L.62 .76V.58H0Z",
|
|
127
|
+
stroke: true
|
|
128
|
+
},
|
|
129
|
+
// ── Polygons ─────────────────────────────────────────────────────────────
|
|
130
|
+
pentagon: {
|
|
131
|
+
label: "Pentagon",
|
|
132
|
+
cat: "polygon",
|
|
133
|
+
d: ngonD(5)
|
|
134
|
+
},
|
|
135
|
+
hexagon: {
|
|
136
|
+
label: "Hexagon",
|
|
137
|
+
cat: "polygon",
|
|
138
|
+
d: ngonD(6)
|
|
139
|
+
},
|
|
140
|
+
"hexagon-flat": {
|
|
141
|
+
label: "Hexagon (flat top)",
|
|
142
|
+
cat: "polygon",
|
|
143
|
+
d: ngonD(6, 0)
|
|
144
|
+
},
|
|
145
|
+
heptagon: {
|
|
146
|
+
label: "Heptagon",
|
|
147
|
+
cat: "polygon",
|
|
148
|
+
d: ngonD(7)
|
|
149
|
+
},
|
|
150
|
+
octagon: {
|
|
151
|
+
label: "Octagon",
|
|
152
|
+
cat: "polygon",
|
|
153
|
+
d: ngonD(8)
|
|
154
|
+
},
|
|
155
|
+
nonagon: {
|
|
156
|
+
label: "Nonagon",
|
|
157
|
+
cat: "polygon",
|
|
158
|
+
d: ngonD(9)
|
|
159
|
+
},
|
|
160
|
+
decagon: {
|
|
161
|
+
label: "Decagon",
|
|
162
|
+
cat: "polygon",
|
|
163
|
+
d: ngonD(10)
|
|
164
|
+
},
|
|
165
|
+
// ── Stars ────────────────────────────────────────────────────────────────
|
|
166
|
+
star: {
|
|
167
|
+
label: "Star",
|
|
168
|
+
cat: "star",
|
|
169
|
+
d: starD(5, 0.44)
|
|
170
|
+
},
|
|
171
|
+
"star-4": {
|
|
172
|
+
label: "4-point star",
|
|
173
|
+
cat: "star",
|
|
174
|
+
d: starD(4, 0.38)
|
|
175
|
+
},
|
|
176
|
+
"star-6": {
|
|
177
|
+
label: "6-point star",
|
|
178
|
+
cat: "star",
|
|
179
|
+
d: starD(6, 0.5)
|
|
180
|
+
},
|
|
181
|
+
"star-8": {
|
|
182
|
+
label: "8-point star",
|
|
183
|
+
cat: "star",
|
|
184
|
+
d: starD(8, 0.55)
|
|
185
|
+
},
|
|
186
|
+
"star-12": {
|
|
187
|
+
label: "12-point star",
|
|
188
|
+
cat: "star",
|
|
189
|
+
d: starD(12, 0.72)
|
|
190
|
+
},
|
|
191
|
+
sparkle: {
|
|
192
|
+
label: "Sparkle",
|
|
193
|
+
cat: "star",
|
|
194
|
+
d: starD(4, 0.16)
|
|
195
|
+
},
|
|
196
|
+
burst: {
|
|
197
|
+
label: "Burst",
|
|
198
|
+
cat: "star",
|
|
199
|
+
d: starD(16, 0.78)
|
|
200
|
+
},
|
|
201
|
+
// ── Arrows ───────────────────────────────────────────────────────────────
|
|
202
|
+
"arrow-right": {
|
|
203
|
+
label: "Arrow right",
|
|
204
|
+
cat: "arrow",
|
|
205
|
+
d: "M0 .3H.6V0L1 .5L.6 1V.7H0Z"
|
|
206
|
+
},
|
|
207
|
+
"arrow-left": {
|
|
208
|
+
label: "Arrow left",
|
|
209
|
+
cat: "arrow",
|
|
210
|
+
d: "M1 .3H.4V0L0 .5L.4 1V.7H1Z"
|
|
211
|
+
},
|
|
212
|
+
"arrow-up": {
|
|
213
|
+
label: "Arrow up",
|
|
214
|
+
cat: "arrow",
|
|
215
|
+
d: "M.3 1V.4H0L.5 0L1 .4H.7V1Z"
|
|
216
|
+
},
|
|
217
|
+
"arrow-down": {
|
|
218
|
+
label: "Arrow down",
|
|
219
|
+
cat: "arrow",
|
|
220
|
+
d: "M.3 0V.6H0L.5 1L1 .6H.7V0Z"
|
|
221
|
+
},
|
|
222
|
+
"arrow-double-h": {
|
|
223
|
+
label: "Double arrow",
|
|
224
|
+
cat: "arrow",
|
|
225
|
+
d: "M0 .5L.25 0V.3H.75V0L1 .5L.75 1V.7H.25V1Z"
|
|
226
|
+
},
|
|
227
|
+
"arrow-double-v": {
|
|
228
|
+
label: "Double arrow up",
|
|
229
|
+
cat: "arrow",
|
|
230
|
+
d: "M.5 0L1 .25H.7V.75H1L.5 1L0 .75H.3V.25H0Z"
|
|
231
|
+
},
|
|
232
|
+
chevron: {
|
|
233
|
+
label: "Chevron",
|
|
234
|
+
cat: "arrow",
|
|
235
|
+
d: "M0 0H.5L1 .5L.5 1H0L.5 .5Z"
|
|
236
|
+
},
|
|
237
|
+
"arrow-banner": {
|
|
238
|
+
label: "Banner arrow",
|
|
239
|
+
cat: "arrow",
|
|
240
|
+
d: "M0 0H.7L1 .5L.7 1H0Z"
|
|
241
|
+
},
|
|
242
|
+
"arrow-bent": {
|
|
243
|
+
label: "Bent arrow",
|
|
244
|
+
cat: "arrow",
|
|
245
|
+
d: "M0 .72H.55V.42H.38L.7 0L1 .42H.85V1H0Z"
|
|
246
|
+
},
|
|
247
|
+
// ── Flowchart ────────────────────────────────────────────────────────────
|
|
248
|
+
"flow-process": {
|
|
249
|
+
label: "Process",
|
|
250
|
+
cat: "flow",
|
|
251
|
+
d: "M0 0H1V1H0Z"
|
|
252
|
+
},
|
|
253
|
+
"flow-terminator": {
|
|
254
|
+
label: "Terminator",
|
|
255
|
+
cat: "flow",
|
|
256
|
+
d: "M.2 0H.8A.2 .5 0 0 1 .8 1H.2A.2 .5 0 0 1 .2 0Z"
|
|
257
|
+
},
|
|
258
|
+
"flow-decision": {
|
|
259
|
+
label: "Decision",
|
|
260
|
+
cat: "flow",
|
|
261
|
+
d: "M.5 0L1 .5L.5 1L0 .5Z"
|
|
262
|
+
},
|
|
263
|
+
"flow-data": {
|
|
264
|
+
label: "Data",
|
|
265
|
+
cat: "flow",
|
|
266
|
+
d: "M.25 0H1L.75 1H0Z"
|
|
267
|
+
},
|
|
268
|
+
"flow-document": {
|
|
269
|
+
label: "Document",
|
|
270
|
+
cat: "flow",
|
|
271
|
+
d: "M0 0H1V.82C.75 1 .25 .64 0 .82Z"
|
|
272
|
+
},
|
|
273
|
+
"flow-database": {
|
|
274
|
+
label: "Database",
|
|
275
|
+
cat: "flow",
|
|
276
|
+
d: "M0 .12C0 .05 .22 0 .5 0S1 .05 1 .12V.88C1 .95 .78 1 .5 1S0 .95 0 .88Z"
|
|
277
|
+
},
|
|
278
|
+
"flow-manual-input": {
|
|
279
|
+
label: "Manual input",
|
|
280
|
+
cat: "flow",
|
|
281
|
+
d: "M0 .22L1 0V1H0Z"
|
|
282
|
+
},
|
|
283
|
+
"flow-preparation": {
|
|
284
|
+
label: "Preparation",
|
|
285
|
+
cat: "flow",
|
|
286
|
+
d: "M.2 0H.8L1 .5L.8 1H.2L0 .5Z"
|
|
287
|
+
},
|
|
288
|
+
"flow-off-page": {
|
|
289
|
+
label: "Off-page",
|
|
290
|
+
cat: "flow",
|
|
291
|
+
d: "M0 0H1V.7L.5 1L0 .7Z"
|
|
292
|
+
},
|
|
293
|
+
"flow-display": {
|
|
294
|
+
label: "Display",
|
|
295
|
+
cat: "flow",
|
|
296
|
+
d: "M.15 0H.85L1 .5L.85 1H.15C.05 .8 .05 .2 .15 0Z"
|
|
297
|
+
},
|
|
298
|
+
// ── Speech bubbles ───────────────────────────────────────────────────────
|
|
299
|
+
"bubble-rect": {
|
|
300
|
+
label: "Square bubble",
|
|
301
|
+
cat: "bubble",
|
|
302
|
+
d: "M0 0H1V.75H.35L.15 1V.75H0Z"
|
|
303
|
+
},
|
|
304
|
+
"bubble-round": {
|
|
305
|
+
label: "Rounded bubble",
|
|
306
|
+
cat: "bubble",
|
|
307
|
+
d: "M.1 0H.9A.1 .12 0 0 1 1 .12V.62A.1 .12 0 0 1 .9 .74H.4L.16 1L.24 .74H.1A.1 .12 0 0 1 0 .62V.12A.1 .12 0 0 1 .1 0Z"
|
|
308
|
+
},
|
|
309
|
+
"bubble-oval": {
|
|
310
|
+
label: "Oval bubble",
|
|
311
|
+
cat: "bubble",
|
|
312
|
+
d: "M.5 0C.78 0 1 .17 1 .37C1 .58 .78 .74 .5 .74H.42L.16 1L.24 .73C.09 .67 0 .53 0 .37C0 .17 .22 0 .5 0Z"
|
|
313
|
+
},
|
|
314
|
+
"bubble-thought": {
|
|
315
|
+
label: "Thought bubble",
|
|
316
|
+
cat: "bubble",
|
|
317
|
+
d: circleD(0.3, 0.3, 0.2) + circleD(0.55, 0.22, 0.22) + circleD(0.75, 0.34, 0.18) + circleD(0.5, 0.42, 0.2) + circleD(0.22, 0.72, 0.09) + circleD(0.1, 0.9, 0.06)
|
|
318
|
+
},
|
|
319
|
+
"bubble-burst": {
|
|
320
|
+
label: "Burst bubble",
|
|
321
|
+
cat: "bubble",
|
|
322
|
+
d: starD(12, 0.74)
|
|
323
|
+
},
|
|
324
|
+
// ── Clouds ───────────────────────────────────────────────────────────────
|
|
325
|
+
cloud: {
|
|
326
|
+
label: "Cloud",
|
|
327
|
+
cat: "cloud",
|
|
328
|
+
d: circleD(0.24, 0.62, 0.18) + circleD(0.42, 0.44, 0.24) + circleD(0.66, 0.46, 0.22) + circleD(0.82, 0.64, 0.16) + boxD(0.24, 0.6, 0.58, 0.2)
|
|
329
|
+
},
|
|
330
|
+
"cloud-round": {
|
|
331
|
+
label: "Puffy cloud",
|
|
332
|
+
cat: "cloud",
|
|
333
|
+
d: circleD(0.28, 0.6, 0.22) + circleD(0.5, 0.38, 0.28) + circleD(0.75, 0.58, 0.24) + circleD(0.5, 0.68, 0.26)
|
|
334
|
+
},
|
|
335
|
+
"cloud-wide": {
|
|
336
|
+
label: "Wide cloud",
|
|
337
|
+
cat: "cloud",
|
|
338
|
+
d: circleD(0.15, 0.65, 0.15) + circleD(0.35, 0.5, 0.22) + circleD(0.6, 0.48, 0.24) + circleD(0.85, 0.66, 0.14) + boxD(0.15, 0.62, 0.7, 0.18)
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
const SHAPE_KINDS = Object.keys(SHAPES);
|
|
342
|
+
function shapesInCategory(cat) {
|
|
343
|
+
return SHAPE_KINDS.filter((k) => SHAPES[k].cat === cat);
|
|
344
|
+
}
|
|
345
|
+
function isStrokeShape(shape) {
|
|
346
|
+
var _a;
|
|
347
|
+
return ((_a = SHAPES[shape]) == null ? void 0 : _a.stroke) === true;
|
|
348
|
+
}
|
|
349
|
+
function shapeSpec(shape) {
|
|
350
|
+
var _a;
|
|
351
|
+
return (_a = SHAPES[shape]) != null ? _a : SHAPES.rect;
|
|
352
|
+
}
|
|
353
|
+
function gradientLine(x, y, w, h, angle) {
|
|
354
|
+
const t = angle * Math.PI / 180;
|
|
355
|
+
const dx = Math.sin(t);
|
|
356
|
+
const dy = -Math.cos(t);
|
|
357
|
+
const half = Math.abs(w / 2 * dx) + Math.abs(h / 2 * dy);
|
|
358
|
+
const cx = x + w / 2;
|
|
359
|
+
const cy = y + h / 2;
|
|
360
|
+
return [cx - dx * half, cy - dy * half, cx + dx * half, cy + dy * half];
|
|
361
|
+
}
|
|
362
|
+
function roundRectD(w, h, radiusFrac) {
|
|
363
|
+
const r = Math.max(0, Math.min(Math.min(w, h) / 2, Math.min(w, h) * Math.min(0.5, Math.max(0, radiusFrac))));
|
|
364
|
+
if (r === 0) return `M0 0H${f(w)}V${f(h)}H0Z`;
|
|
365
|
+
return `M${f(r)} 0H${f(w - r)}A${f(r)} ${f(r)} 0 0 1 ${f(w)} ${f(r)}V${f(h - r)}A${f(r)} ${f(r)} 0 0 1 ${f(w - r)} ${f(h)}H${f(r)}A${f(r)} ${f(r)} 0 0 1 0 ${f(h - r)}V${f(r)}A${f(r)} ${f(r)} 0 0 1 ${f(r)} 0Z`;
|
|
366
|
+
}export{SHAPES,SHAPE_CATEGORIES,SHAPE_KINDS,gradientLine,isStrokeShape,roundRectD,shapeSpec,shapesInCategory};//# sourceMappingURL=shapes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.js","sources":["../../../../src/features/design/doc/shapes.ts"],"sourcesContent":["/**\n * Shape geometry - native twin of canvas-surface `editors/shared/shapes.ts`.\n *\n * The catalog (keys, labels, families, unit-box outlines) is copied verbatim:\n * saved designs and catalog templates reference the keys, and the outlines are\n * what the web draws, so a heart here is the web's heart. The Canvas2D drawing\n * half stays on the web; native draws the same `d` through react-native-svg\n * (render/ShapeLayerView.tsx).\n *\n * Pure: runs under jest as-is.\n */\n\n// ============= Shape Catalog =============\n\n/** Shape families, in the order the Elements panel lists them. */\nexport const SHAPE_CATEGORIES = [\n { id: 'basic', label: 'Basic shapes' },\n { id: 'polygon', label: 'Polygons' },\n { id: 'star', label: 'Stars' },\n { id: 'arrow', label: 'Arrows' },\n { id: 'flow', label: 'Flowchart shapes' },\n { id: 'bubble', label: 'Speech bubbles' },\n { id: 'cloud', label: 'Clouds' },\n] as const;\n\nexport type ShapeCategory = (typeof SHAPE_CATEGORIES)[number]['id'];\n\nexport interface ShapeSpec {\n label: string;\n cat: ShapeCategory;\n /** Outline in a 0..1 unit box, scaled into the layer's box at draw time. */\n d: string;\n /** Drawn as a stroked run along the box's long axis instead of a filled path. */\n stroke?: true;\n}\n\nconst f = (n: number) => Number(n.toFixed(4));\n\nconst polyD = (pts: [number, number][]) => `M${pts.map(([x, y]) => `${f(x)} ${f(y)}`).join('L')}Z`;\n\n/** Regular n-gon inscribed in the unit box; `rot` turns it (radians, 0 = flat-left vertex). */\nfunction ngonD(n: number, rot = -Math.PI / 2): string {\n return polyD(\n Array.from({ length: n }, (_, i) => {\n const a = rot + (i * 2 * Math.PI) / n;\n return [0.5 + Math.cos(a) * 0.5, 0.5 + Math.sin(a) * 0.5] as [number, number];\n }),\n );\n}\n\n/** `points`-pointed star; `inner` is the valley radius as a fraction of the outer. */\nfunction starD(points: number, inner: number): string {\n const step = Math.PI / points;\n return polyD(\n Array.from({ length: points * 2 }, (_, i) => {\n const r = i % 2 === 0 ? 0.5 : 0.5 * inner;\n const a = -Math.PI / 2 + i * step;\n return [0.5 + Math.cos(a) * r, 0.5 + Math.sin(a) * r] as [number, number];\n }),\n );\n}\n\n/** A full circle as one subpath. Overlapping circles union under nonzero fill — how the clouds are built. */\nconst circleD = (cx: number, cy: number, r: number) =>\n `M${f(cx - r)} ${f(cy)}A${f(r)} ${f(r)} 0 1 1 ${f(cx + r)} ${f(cy)}A${f(r)} ${f(r)} 0 1 1 ${f(cx - r)} ${f(cy)}Z`;\n\nconst boxD = (x: number, y: number, w: number, h: number) => `M${f(x)} ${f(y)}H${f(x + w)}V${f(y + h)}H${f(x)}Z`;\n\n/**\n * Every shape the Elements panel offers, keyed by the value persisted on a layer.\n * The first nine keys are the original set and must keep their names — saved decks\n * and `carouselRpc` payloads reference them.\n */\nexport const SHAPES = {\n // ── Basic ────────────────────────────────────────────────────────────────\n rect: { label: 'Square', cat: 'basic', d: 'M0 0H1V1H0Z' },\n ellipse: { label: 'Circle', cat: 'basic', d: 'M0 .5A.5 .5 0 1 1 1 .5A.5 .5 0 1 1 0 .5Z' },\n triangle: { label: 'Triangle', cat: 'basic', d: 'M.5 0L1 1H0Z' },\n 'triangle-right': { label: 'Right triangle', cat: 'basic', d: 'M0 0V1H1Z' },\n 'triangle-down': { label: 'Triangle down', cat: 'basic', d: 'M0 0H1L.5 1Z' },\n diamond: { label: 'Diamond', cat: 'basic', d: 'M.5 0L1 .5L.5 1L0 .5Z' },\n parallelogram: { label: 'Parallelogram', cat: 'basic', d: 'M.25 0H1L.75 1H0Z' },\n trapezoid: { label: 'Trapezoid', cat: 'basic', d: 'M.25 0H.75L1 1H0Z' },\n pill: { label: 'Pill', cat: 'basic', d: 'M.25 0H.75A.25 .5 0 0 1 .75 1H.25A.25 .5 0 0 1 .25 0Z' },\n semicircle: { label: 'Semicircle', cat: 'basic', d: 'M0 1A.5 .5 0 0 1 1 1Z' },\n arch: { label: 'Arch', cat: 'basic', d: 'M0 1V.5A.5 .5 0 0 1 1 .5V1Z' },\n 'quarter-circle': { label: 'Quarter circle', cat: 'basic', d: 'M0 1V0A1 1 0 0 1 1 1Z' },\n cross: { label: 'Cross', cat: 'basic', d: 'M.35 0H.65V.35H1V.65H.65V1H.35V.65H0V.35H.35Z' },\n heart: {\n label: 'Heart',\n cat: 'basic',\n d: 'M.5 .96C.13 .68 0 .46 0 .29C0 .12 .13 .02 .28 .02C.38 .02 .45 .07 .5 .15C.55 .07 .62 .02 .72 .02C.87 .02 1 .12 1 .29C1 .46 .87 .68 .5 .96Z',\n },\n line: { label: 'Line', cat: 'basic', d: 'M0 .45H1V.55H0Z', stroke: true },\n arrow: { label: 'Line arrow', cat: 'basic', d: 'M0 .42H.62V.24L1 .5L.62 .76V.58H0Z', stroke: true },\n\n // ── Polygons ─────────────────────────────────────────────────────────────\n pentagon: { label: 'Pentagon', cat: 'polygon', d: ngonD(5) },\n hexagon: { label: 'Hexagon', cat: 'polygon', d: ngonD(6) },\n 'hexagon-flat': { label: 'Hexagon (flat top)', cat: 'polygon', d: ngonD(6, 0) },\n heptagon: { label: 'Heptagon', cat: 'polygon', d: ngonD(7) },\n octagon: { label: 'Octagon', cat: 'polygon', d: ngonD(8) },\n nonagon: { label: 'Nonagon', cat: 'polygon', d: ngonD(9) },\n decagon: { label: 'Decagon', cat: 'polygon', d: ngonD(10) },\n\n // ── Stars ────────────────────────────────────────────────────────────────\n star: { label: 'Star', cat: 'star', d: starD(5, 0.44) },\n 'star-4': { label: '4-point star', cat: 'star', d: starD(4, 0.38) },\n 'star-6': { label: '6-point star', cat: 'star', d: starD(6, 0.5) },\n 'star-8': { label: '8-point star', cat: 'star', d: starD(8, 0.55) },\n 'star-12': { label: '12-point star', cat: 'star', d: starD(12, 0.72) },\n sparkle: { label: 'Sparkle', cat: 'star', d: starD(4, 0.16) },\n burst: { label: 'Burst', cat: 'star', d: starD(16, 0.78) },\n\n // ── Arrows ───────────────────────────────────────────────────────────────\n 'arrow-right': { label: 'Arrow right', cat: 'arrow', d: 'M0 .3H.6V0L1 .5L.6 1V.7H0Z' },\n 'arrow-left': { label: 'Arrow left', cat: 'arrow', d: 'M1 .3H.4V0L0 .5L.4 1V.7H1Z' },\n 'arrow-up': { label: 'Arrow up', cat: 'arrow', d: 'M.3 1V.4H0L.5 0L1 .4H.7V1Z' },\n 'arrow-down': { label: 'Arrow down', cat: 'arrow', d: 'M.3 0V.6H0L.5 1L1 .6H.7V0Z' },\n 'arrow-double-h': { label: 'Double arrow', cat: 'arrow', d: 'M0 .5L.25 0V.3H.75V0L1 .5L.75 1V.7H.25V1Z' },\n 'arrow-double-v': { label: 'Double arrow up', cat: 'arrow', d: 'M.5 0L1 .25H.7V.75H1L.5 1L0 .75H.3V.25H0Z' },\n chevron: { label: 'Chevron', cat: 'arrow', d: 'M0 0H.5L1 .5L.5 1H0L.5 .5Z' },\n 'arrow-banner': { label: 'Banner arrow', cat: 'arrow', d: 'M0 0H.7L1 .5L.7 1H0Z' },\n 'arrow-bent': { label: 'Bent arrow', cat: 'arrow', d: 'M0 .72H.55V.42H.38L.7 0L1 .42H.85V1H0Z' },\n\n // ── Flowchart ────────────────────────────────────────────────────────────\n 'flow-process': { label: 'Process', cat: 'flow', d: 'M0 0H1V1H0Z' },\n 'flow-terminator': { label: 'Terminator', cat: 'flow', d: 'M.2 0H.8A.2 .5 0 0 1 .8 1H.2A.2 .5 0 0 1 .2 0Z' },\n 'flow-decision': { label: 'Decision', cat: 'flow', d: 'M.5 0L1 .5L.5 1L0 .5Z' },\n 'flow-data': { label: 'Data', cat: 'flow', d: 'M.25 0H1L.75 1H0Z' },\n 'flow-document': { label: 'Document', cat: 'flow', d: 'M0 0H1V.82C.75 1 .25 .64 0 .82Z' },\n 'flow-database': {\n label: 'Database',\n cat: 'flow',\n d: 'M0 .12C0 .05 .22 0 .5 0S1 .05 1 .12V.88C1 .95 .78 1 .5 1S0 .95 0 .88Z',\n },\n 'flow-manual-input': { label: 'Manual input', cat: 'flow', d: 'M0 .22L1 0V1H0Z' },\n 'flow-preparation': { label: 'Preparation', cat: 'flow', d: 'M.2 0H.8L1 .5L.8 1H.2L0 .5Z' },\n 'flow-off-page': { label: 'Off-page', cat: 'flow', d: 'M0 0H1V.7L.5 1L0 .7Z' },\n 'flow-display': { label: 'Display', cat: 'flow', d: 'M.15 0H.85L1 .5L.85 1H.15C.05 .8 .05 .2 .15 0Z' },\n\n // ── Speech bubbles ───────────────────────────────────────────────────────\n 'bubble-rect': { label: 'Square bubble', cat: 'bubble', d: 'M0 0H1V.75H.35L.15 1V.75H0Z' },\n 'bubble-round': {\n label: 'Rounded bubble',\n cat: 'bubble',\n d: 'M.1 0H.9A.1 .12 0 0 1 1 .12V.62A.1 .12 0 0 1 .9 .74H.4L.16 1L.24 .74H.1A.1 .12 0 0 1 0 .62V.12A.1 .12 0 0 1 .1 0Z',\n },\n 'bubble-oval': {\n label: 'Oval bubble',\n cat: 'bubble',\n d: 'M.5 0C.78 0 1 .17 1 .37C1 .58 .78 .74 .5 .74H.42L.16 1L.24 .73C.09 .67 0 .53 0 .37C0 .17 .22 0 .5 0Z',\n },\n 'bubble-thought': {\n label: 'Thought bubble',\n cat: 'bubble',\n d:\n circleD(0.3, 0.3, 0.2) +\n circleD(0.55, 0.22, 0.22) +\n circleD(0.75, 0.34, 0.18) +\n circleD(0.5, 0.42, 0.2) +\n circleD(0.22, 0.72, 0.09) +\n circleD(0.1, 0.9, 0.06),\n },\n 'bubble-burst': { label: 'Burst bubble', cat: 'bubble', d: starD(12, 0.74) },\n\n // ── Clouds ───────────────────────────────────────────────────────────────\n cloud: {\n label: 'Cloud',\n cat: 'cloud',\n d:\n circleD(0.24, 0.62, 0.18) +\n circleD(0.42, 0.44, 0.24) +\n circleD(0.66, 0.46, 0.22) +\n circleD(0.82, 0.64, 0.16) +\n boxD(0.24, 0.6, 0.58, 0.2),\n },\n 'cloud-round': {\n label: 'Puffy cloud',\n cat: 'cloud',\n d: circleD(0.28, 0.6, 0.22) + circleD(0.5, 0.38, 0.28) + circleD(0.75, 0.58, 0.24) + circleD(0.5, 0.68, 0.26),\n },\n 'cloud-wide': {\n label: 'Wide cloud',\n cat: 'cloud',\n d:\n circleD(0.15, 0.65, 0.15) +\n circleD(0.35, 0.5, 0.22) +\n circleD(0.6, 0.48, 0.24) +\n circleD(0.85, 0.66, 0.14) +\n boxD(0.15, 0.62, 0.7, 0.18),\n },\n} satisfies Record<string, ShapeSpec>;\n\n/** Shape kinds available in the Elements panel - the value persisted on a layer. */\nexport type ShapeKind = keyof typeof SHAPES;\n\nexport const SHAPE_KINDS = Object.keys(SHAPES) as ShapeKind[];\n\n/** The kinds in one family, in catalog order. */\nexport function shapesInCategory(cat: ShapeCategory): ShapeKind[] {\n return SHAPE_KINDS.filter((k) => SHAPES[k].cat === cat);\n}\n\n/** Shapes whose geometry is a stroked line rather than a filled region. */\nexport function isStrokeShape(shape: ShapeKind): boolean {\n return (SHAPES[shape] as ShapeSpec | undefined)?.stroke === true;\n}\n\n/** Look up a shape, falling back to the square for a key this build does not know (a newer web's). */\nexport function shapeSpec(shape: string): ShapeSpec {\n return (SHAPES as Record<string, ShapeSpec>)[shape] ?? SHAPES.rect;\n}\n\n/** CSS's linear-gradient line for a box: through the centre, long enough that the corners hit 0 and 1. */\nexport function gradientLine(\n x: number,\n y: number,\n w: number,\n h: number,\n angle: number,\n): [number, number, number, number] {\n const t = (angle * Math.PI) / 180;\n const dx = Math.sin(t);\n const dy = -Math.cos(t);\n const half = Math.abs((w / 2) * dx) + Math.abs((h / 2) * dy);\n const cx = x + w / 2;\n const cy = y + h / 2;\n return [cx - dx * half, cy - dy * half, cx + dx * half, cy + dy * half];\n}\n\n/** A rounded rect as a path in px - the square, whose corner radius is a live control (`radiusFrac` of the short side). */\nexport function roundRectD(w: number, h: number, radiusFrac: number): string {\n const r = Math.max(0, Math.min(Math.min(w, h) / 2, Math.min(w, h) * Math.min(0.5, Math.max(0, radiusFrac))));\n if (r === 0) return `M0 0H${f(w)}V${f(h)}H0Z`;\n return (\n `M${f(r)} 0H${f(w - r)}A${f(r)} ${f(r)} 0 0 1 ${f(w)} ${f(r)}V${f(h - r)}` +\n `A${f(r)} ${f(r)} 0 0 1 ${f(w - r)} ${f(h)}H${f(r)}A${f(r)} ${f(r)} 0 0 1 0 ${f(h - r)}` +\n `V${f(r)}A${f(r)} ${f(r)} 0 0 1 ${f(r)} 0Z`\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
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
|
+
const PRINT_CATEGORIES = ["flyer", "business-card", "brochure", "branding", "certificate", "worksheet", "proposal", "newsletter", "menu"];
|
|
21
|
+
function isPrintCategory(category) {
|
|
22
|
+
return PRINT_CATEGORIES.includes(category);
|
|
23
|
+
}
|
|
24
|
+
const PRINT_PLATFORM = {
|
|
25
|
+
flyer: "Print",
|
|
26
|
+
"business-card": "Print",
|
|
27
|
+
brochure: "Brochure",
|
|
28
|
+
branding: "Stationery",
|
|
29
|
+
certificate: "Certificate",
|
|
30
|
+
worksheet: "Worksheet",
|
|
31
|
+
proposal: "Proposal",
|
|
32
|
+
newsletter: "Newsletter",
|
|
33
|
+
menu: "Menu"
|
|
34
|
+
};
|
|
35
|
+
const PRINT_DPI = 150;
|
|
36
|
+
const MIN_PX = 40;
|
|
37
|
+
const MAX_PX = 5e3;
|
|
38
|
+
function toPx(value, unit) {
|
|
39
|
+
if (unit === "in") return Math.round(value * PRINT_DPI);
|
|
40
|
+
if (unit === "mm") return Math.round(value / 25.4 * PRINT_DPI);
|
|
41
|
+
return Math.round(value);
|
|
42
|
+
}
|
|
43
|
+
function fromPx(px, unit) {
|
|
44
|
+
return String(Math.round(px / PRINT_DPI * 100) / 100);
|
|
45
|
+
}
|
|
46
|
+
function inRange(px) {
|
|
47
|
+
return Number.isFinite(px) && px >= MIN_PX && px <= MAX_PX;
|
|
48
|
+
}
|
|
49
|
+
function social(id, label, width, height, platform, keywords) {
|
|
50
|
+
return {
|
|
51
|
+
id,
|
|
52
|
+
label,
|
|
53
|
+
category: "social",
|
|
54
|
+
width,
|
|
55
|
+
height,
|
|
56
|
+
kind: "deck",
|
|
57
|
+
platform,
|
|
58
|
+
keywords
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function carousel(id, label, width, height, keywords) {
|
|
62
|
+
return {
|
|
63
|
+
id,
|
|
64
|
+
label,
|
|
65
|
+
category: "carousel",
|
|
66
|
+
width,
|
|
67
|
+
height,
|
|
68
|
+
kind: "deck",
|
|
69
|
+
platform: "Instagram",
|
|
70
|
+
keywords
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function slides(id, label, width, height, keywords) {
|
|
74
|
+
return {
|
|
75
|
+
id,
|
|
76
|
+
label,
|
|
77
|
+
category: "presentation",
|
|
78
|
+
width,
|
|
79
|
+
height,
|
|
80
|
+
kind: "deck",
|
|
81
|
+
platform: "Presentation",
|
|
82
|
+
keywords
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function logo(id, label, side, keywords) {
|
|
86
|
+
return {
|
|
87
|
+
id,
|
|
88
|
+
label,
|
|
89
|
+
category: "logo",
|
|
90
|
+
width: side,
|
|
91
|
+
height: side,
|
|
92
|
+
kind: "deck",
|
|
93
|
+
platform: "Logo",
|
|
94
|
+
keywords
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function banner(id, label, width, height, keywords, platform = "Banner") {
|
|
98
|
+
return {
|
|
99
|
+
id,
|
|
100
|
+
label,
|
|
101
|
+
category: "banner",
|
|
102
|
+
width,
|
|
103
|
+
height,
|
|
104
|
+
kind: "deck",
|
|
105
|
+
platform,
|
|
106
|
+
keywords
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
const MM_PER_UNIT = {
|
|
110
|
+
px: 25.4 / PRINT_DPI,
|
|
111
|
+
in: 25.4,
|
|
112
|
+
mm: 1
|
|
113
|
+
};
|
|
114
|
+
function toMm(value, unit) {
|
|
115
|
+
return Math.round(value * MM_PER_UNIT[unit] * 100) / 100;
|
|
116
|
+
}
|
|
117
|
+
function print(id, label, w, h, unit, keywords, category = "flyer") {
|
|
118
|
+
return {
|
|
119
|
+
id,
|
|
120
|
+
label,
|
|
121
|
+
category,
|
|
122
|
+
width: toPx(w, unit),
|
|
123
|
+
height: toPx(h, unit),
|
|
124
|
+
kind: "flyer",
|
|
125
|
+
platform: PRINT_PLATFORM[category],
|
|
126
|
+
keywords,
|
|
127
|
+
trimMm: {
|
|
128
|
+
w: toMm(w, unit),
|
|
129
|
+
h: toMm(h, unit)
|
|
130
|
+
},
|
|
131
|
+
physical: `${w} \xD7 ${h} ${unit}`
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function card(id, label, w, h, unit, keywords) {
|
|
135
|
+
return __spreadProps(__spreadValues({}, print(id, label, w, h, unit, `card visiting double-sided ${w}x${h} ${keywords}`, "business-card")), {
|
|
136
|
+
pageNames: ["Front", "Back"]
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function brochure(id, label, w, h, unit, keywords) {
|
|
140
|
+
return __spreadProps(__spreadValues({}, print(id, label, w, h, unit, `leaflet pamphlet trifold tri-fold bifold folded ${keywords}`, "brochure")), {
|
|
141
|
+
pageNames: ["Outside", "Inside"]
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
const stationery = (id, label, w, h, unit, keywords) => print(id, label, w, h, unit, `branding stationery brand ${keywords}`, "branding");
|
|
145
|
+
const DESIGN_SIZES = [
|
|
146
|
+
social("ig-post-portrait", "Instagram Post (4:5)", 1080, 1350, "Instagram", "carousel portrait"),
|
|
147
|
+
social("ig-post-square", "Instagram Post (Square)", 1080, 1080, "Instagram", "square"),
|
|
148
|
+
social("ig-story", "Instagram Story", 1080, 1920, "Instagram", "reel whatsapp status tiktok vertical"),
|
|
149
|
+
social("fb-post", "Facebook Post", 1200, 630, "Facebook", "landscape"),
|
|
150
|
+
social("li-post", "LinkedIn Post", 1200, 627, "LinkedIn", "landscape"),
|
|
151
|
+
social("x-post", "X Post", 1600, 900, "X", "twitter landscape"),
|
|
152
|
+
social("yt-thumb", "YouTube Thumbnail", 1280, 720, "YouTube", "video cover"),
|
|
153
|
+
social("pin", "Pinterest Pin", 1e3, 1500, "Pinterest", "tall"),
|
|
154
|
+
carousel("carousel-portrait", "Carousel (4:5)", 1080, 1350, "instagram linkedin swipe swipeable portrait"),
|
|
155
|
+
carousel("carousel-square", "Carousel (Square)", 1080, 1080, "instagram linkedin swipe swipeable"),
|
|
156
|
+
carousel("carousel-3-4", "Carousel (3:4)", 1080, 1440, "instagram swipe swipeable portrait"),
|
|
157
|
+
carousel("carousel-tall", "Carousel (2:3)", 1080, 1620, "instagram swipe swipeable tall portrait"),
|
|
158
|
+
slides("slides-16-9", "Presentation (16:9)", 1920, 1080, "slides deck pitch widescreen"),
|
|
159
|
+
slides("slides-4-3", "Presentation (4:3)", 1024, 768, "slides deck pitch"),
|
|
160
|
+
slides("slides-mobile", "Presentation (Mobile)", 1080, 1920, "slides deck vertical"),
|
|
161
|
+
print("a4", "A4 Document", 210, 297, "mm", "paper document flyer"),
|
|
162
|
+
print("letter", "Flyer (US Letter)", 8.5, 11, "in", "paper document"),
|
|
163
|
+
print("a3", "A3 Poster", 297, 420, "mm", "paper"),
|
|
164
|
+
print("a2", "A2 Poster", 420, 594, "mm", "paper large"),
|
|
165
|
+
print("poster-18-24", "Poster", 18, 24, "in", "large"),
|
|
166
|
+
print("invitation", "Invitation", 5, 7, "in", "card wedding party"),
|
|
167
|
+
print("postcard", "Postcard", 6, 4, "in", "card landscape"),
|
|
168
|
+
card("business-card", "Business Card (US)", 3.5, 2, "in", "us standard"),
|
|
169
|
+
card("business-card-eu", "Business Card (EU)", 85, 55, "mm", "eu europe standard"),
|
|
170
|
+
card("business-card-90x55", "Business Card (AU / NZ)", 90, 55, "mm", "australia new zealand"),
|
|
171
|
+
card("business-card-90x50", "Business Card (Wide)", 90, 50, "mm", "wide slim"),
|
|
172
|
+
// The catalog's logos are 500 px squares (Canva's Logo), some 2000 px.
|
|
173
|
+
logo("logo", "Logo", 500, "brand mark icon emblem square"),
|
|
174
|
+
logo("logo-large", "Logo (Large)", 2e3, "brand mark icon emblem square high resolution"),
|
|
175
|
+
banner("banner-landscape", "Banner (Landscape)", 4800, 2400, "vinyl printed 72x36 6x3 ft event party wedding"),
|
|
176
|
+
banner("banner-portrait", "Banner (Portrait)", 2400, 4800, "vinyl printed 36x72 3x6 ft vertical"),
|
|
177
|
+
banner("linkedin-banner", "LinkedIn Banner", 1584, 396, "background cover header profile", "LinkedIn"),
|
|
178
|
+
banner("youtube-banner", "YouTube Banner", 2560, 1440, "channel art cover", "YouTube"),
|
|
179
|
+
banner("x-header", "X Header", 1500, 500, "twitter banner cover", "X"),
|
|
180
|
+
banner("facebook-cover", "Facebook Cover", 1640, 624, "banner header", "Facebook"),
|
|
181
|
+
banner("web-banner", "Web Banner", 728, 90, "ad display leaderboard", "Web"),
|
|
182
|
+
// Canva's brochures: Letter and A4 landscape, a few tabloid, each an Outside and an Inside.
|
|
183
|
+
brochure("brochure-letter", "Brochure (US Letter)", 11, 8.5, "in", "us landscape"),
|
|
184
|
+
brochure("brochure-a4", "Brochure (A4)", 297, 210, "mm", "a4 landscape"),
|
|
185
|
+
brochure("brochure-tabloid", "Brochure (Tabloid)", 17, 11, "in", "tabloid ledger large"),
|
|
186
|
+
stationery("letterhead-a4", "Letterhead (A4)", 210, 297, "mm", "letter paper a4 company"),
|
|
187
|
+
stationery("letterhead-letter", "Letterhead (US Letter)", 8.5, 11, "in", "letter paper us company"),
|
|
188
|
+
stationery("envelope-10", "Envelope (#10)", 9.5, 4.125, "in", "business us mail"),
|
|
189
|
+
stationery("envelope-dl", "Envelope (DL)", 220, 110, "mm", "business eu mail"),
|
|
190
|
+
// Canva's certificates are landscape Letter or A4; a diploma may stand.
|
|
191
|
+
print("certificate-letter", "Certificate (US Letter)", 11, 8.5, "in", "award diploma recognition", "certificate"),
|
|
192
|
+
print("certificate-a4", "Certificate (A4)", 297, 210, "mm", "award diploma recognition", "certificate"),
|
|
193
|
+
print("certificate-portrait", "Certificate (Portrait)", 210, 297, "mm", "award diploma a4 portrait", "certificate"),
|
|
194
|
+
print("worksheet-letter", "Worksheet (US Letter)", 8.5, 11, "in", "classroom lesson activity school", "worksheet"),
|
|
195
|
+
print("worksheet-a4", "Worksheet (A4)", 210, 297, "mm", "classroom lesson activity school", "worksheet"),
|
|
196
|
+
print("proposal-letter", "Proposal (US Letter)", 8.5, 11, "in", "business project quote document", "proposal"),
|
|
197
|
+
print("proposal-a4", "Proposal (A4)", 210, 297, "mm", "business project quote document", "proposal"),
|
|
198
|
+
print("newsletter-letter", "Newsletter (US Letter)", 8.5, 11, "in", "bulletin school church company", "newsletter"),
|
|
199
|
+
print("newsletter-a4", "Newsletter (A4)", 210, 297, "mm", "bulletin school church company", "newsletter"),
|
|
200
|
+
print("menu-letter", "Menu (US Letter)", 8.5, 11, "in", "restaurant cafe bar food drinks", "menu"),
|
|
201
|
+
print("menu-a4", "Menu (A4)", 210, 297, "mm", "restaurant cafe bar food drinks", "menu"),
|
|
202
|
+
print("menu-tabloid", "Menu (Tabloid)", 11, 17, "in", "restaurant cafe bar large", "menu"),
|
|
203
|
+
// Canva's infographic is a tall screen page, 800 x 2000 px.
|
|
204
|
+
{
|
|
205
|
+
id: "infographic",
|
|
206
|
+
label: "Infographic",
|
|
207
|
+
category: "infographic",
|
|
208
|
+
width: 800,
|
|
209
|
+
height: 2e3,
|
|
210
|
+
kind: "deck",
|
|
211
|
+
platform: "Infographic",
|
|
212
|
+
keywords: "timeline process statistics chart data how-to"
|
|
213
|
+
}
|
|
214
|
+
];
|
|
215
|
+
const POPULAR_SIZE_IDS = ["ig-post-portrait", "ig-story", "slides-16-9", "a4", "ig-post-square", "yt-thumb", "a2", "fb-post"];
|
|
216
|
+
function sizesIn(category) {
|
|
217
|
+
return POPULAR_SIZE_IDS.map((id) => DESIGN_SIZES.find((s) => s.id === id));
|
|
218
|
+
}
|
|
219
|
+
function searchSizes(query) {
|
|
220
|
+
const q = query.trim().toLowerCase();
|
|
221
|
+
if (!q) return [];
|
|
222
|
+
return DESIGN_SIZES.filter((s) => `${s.label} ${s.category} ${s.platform} ${s.keywords}`.toLowerCase().includes(q));
|
|
223
|
+
}
|
|
224
|
+
const CONNECTOR_ASPECTS = [["1:1", 1], ["4:5", 4 / 5], ["2:3", 2 / 3], ["16:9", 16 / 9]];
|
|
225
|
+
function snapAspect(width, height) {
|
|
226
|
+
const r = Math.log(width / height);
|
|
227
|
+
let best = CONNECTOR_ASPECTS[0];
|
|
228
|
+
for (const a of CONNECTOR_ASPECTS) if (Math.abs(r - Math.log(a[1])) < Math.abs(r - Math.log(best[1]))) best = a;
|
|
229
|
+
return best[0];
|
|
230
|
+
}export{DESIGN_SIZES,MAX_PX,MIN_PX,POPULAR_SIZE_IDS,PRINT_DPI,PRINT_PLATFORM,fromPx,inRange,isPrintCategory,searchSizes,sizesIn,snapAspect,toMm,toPx};//# sourceMappingURL=sizes.js.map
|