@imgly/codesign-mcp 0.1.0
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/LICENSE.md +16 -0
- package/README.md +158 -0
- package/assets/docs/api/SKILL.md +49 -0
- package/assets/docs/api/index.d.ts +10518 -0
- package/assets/docs/guide/SKILL.md +142 -0
- package/assets/docs/guide/actions.md +1038 -0
- package/assets/docs/guide/animation/create/base.md +467 -0
- package/assets/docs/guide/animation/create/text.md +453 -0
- package/assets/docs/guide/animation/create.md +558 -0
- package/assets/docs/guide/animation/edit.md +501 -0
- package/assets/docs/guide/animation/overview.md +22 -0
- package/assets/docs/guide/animation/types.md +430 -0
- package/assets/docs/guide/animation.md +23 -0
- package/assets/docs/guide/api/AssetAPI.md +602 -0
- package/assets/docs/guide/api/BlockAPI.md +6152 -0
- package/assets/docs/guide/api/CreativeEngine.md +180 -0
- package/assets/docs/guide/api/EditorAPI.md +1261 -0
- package/assets/docs/guide/api/EventAPI.md +25 -0
- package/assets/docs/guide/api/SceneAPI.md +729 -0
- package/assets/docs/guide/api/VariableAPI.md +59 -0
- package/assets/docs/guide/api/types.md +71 -0
- package/assets/docs/guide/api-reference/overview.md +20 -0
- package/assets/docs/guide/automation/auto-resize.md +412 -0
- package/assets/docs/guide/automation/batch-processing.md +474 -0
- package/assets/docs/guide/automation/data-merge.md +406 -0
- package/assets/docs/guide/automation/design-generation.md +107 -0
- package/assets/docs/guide/automation/overview.md +16 -0
- package/assets/docs/guide/automation.md +24 -0
- package/assets/docs/guide/browser-support.md +38 -0
- package/assets/docs/guide/capabilities.md +18 -0
- package/assets/docs/guide/colors/adjust.md +551 -0
- package/assets/docs/guide/colors/apply.md +349 -0
- package/assets/docs/guide/colors/basics.md +440 -0
- package/assets/docs/guide/colors/conversion.md +504 -0
- package/assets/docs/guide/colors/create-color-palette.md +426 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +577 -0
- package/assets/docs/guide/colors/for-print/spot.md +751 -0
- package/assets/docs/guide/colors/for-print.md +21 -0
- package/assets/docs/guide/colors/for-screen/p3.md +60 -0
- package/assets/docs/guide/colors/for-screen/srgb.md +463 -0
- package/assets/docs/guide/colors/for-screen.md +21 -0
- package/assets/docs/guide/colors/overview.md +20 -0
- package/assets/docs/guide/colors/replace.md +535 -0
- package/assets/docs/guide/colors.md +28 -0
- package/assets/docs/guide/compatibility.md +27 -0
- package/assets/docs/guide/concepts/architecture.md +99 -0
- package/assets/docs/guide/concepts/assets.md +360 -0
- package/assets/docs/guide/concepts/blocks.md +750 -0
- package/assets/docs/guide/concepts/buffers.md +546 -0
- package/assets/docs/guide/concepts/design-units.md +333 -0
- package/assets/docs/guide/concepts/edit-modes.md +431 -0
- package/assets/docs/guide/concepts/editing-workflow.md +303 -0
- package/assets/docs/guide/concepts/events.md +466 -0
- package/assets/docs/guide/concepts/headless-mode/browser.md +291 -0
- package/assets/docs/guide/concepts/pages.md +396 -0
- package/assets/docs/guide/concepts/resources.md +496 -0
- package/assets/docs/guide/concepts/scenes.md +443 -0
- package/assets/docs/guide/concepts/templating.md +194 -0
- package/assets/docs/guide/concepts/terminology.md +296 -0
- package/assets/docs/guide/concepts/undo-and-history.md +461 -0
- package/assets/docs/guide/concepts.md +38 -0
- package/assets/docs/guide/configuration.md +469 -0
- package/assets/docs/guide/conversion/overview.md +22 -0
- package/assets/docs/guide/conversion/to-base64.md +234 -0
- package/assets/docs/guide/conversion/to-pdf.md +616 -0
- package/assets/docs/guide/conversion/to-png.md +290 -0
- package/assets/docs/guide/conversion.md +23 -0
- package/assets/docs/guide/create-audio/audio/add-music.md +430 -0
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +664 -0
- package/assets/docs/guide/create-audio/audio/loop.md +370 -0
- package/assets/docs/guide/create-audio/audio.md +336 -0
- package/assets/docs/guide/create-composition/add-background.md +395 -0
- package/assets/docs/guide/create-composition/blend-modes.md +372 -0
- package/assets/docs/guide/create-composition/collage.md +432 -0
- package/assets/docs/guide/create-composition/group-and-ungroup.md +388 -0
- package/assets/docs/guide/create-composition/layer-management.md +503 -0
- package/assets/docs/guide/create-composition/layout.md +396 -0
- package/assets/docs/guide/create-composition/lock-design.md +362 -0
- package/assets/docs/guide/create-composition/multi-page.md +204 -0
- package/assets/docs/guide/create-composition/overview.md +18 -0
- package/assets/docs/guide/create-composition/programmatic.md +593 -0
- package/assets/docs/guide/create-composition.md +30 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +688 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +600 -0
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +647 -0
- package/assets/docs/guide/create-templates/add-dynamic-content.md +307 -0
- package/assets/docs/guide/create-templates/add-to-template-library.md +297 -0
- package/assets/docs/guide/create-templates/edit-or-remove.md +441 -0
- package/assets/docs/guide/create-templates/from-scratch.md +558 -0
- package/assets/docs/guide/create-templates/import/from-scene-file.md +440 -0
- package/assets/docs/guide/create-templates/import.md +244 -0
- package/assets/docs/guide/create-templates/lock.md +325 -0
- package/assets/docs/guide/create-templates/overview.md +16 -0
- package/assets/docs/guide/create-templates.md +32 -0
- package/assets/docs/guide/create-video/audio/adjust-speed.md +302 -0
- package/assets/docs/guide/create-video/audio/adjust-volume.md +346 -0
- package/assets/docs/guide/create-video/control.md +285 -0
- package/assets/docs/guide/create-video/limitations.md +396 -0
- package/assets/docs/guide/create-video/overview.md +224 -0
- package/assets/docs/guide/create-video/timeline-editor.md +622 -0
- package/assets/docs/guide/create-video/update-caption-presets.md +676 -0
- package/assets/docs/guide/create-video.md +32 -0
- package/assets/docs/guide/edit-image/add-watermark.md +497 -0
- package/assets/docs/guide/edit-image/overview.md +22 -0
- package/assets/docs/guide/edit-image/remove-bg.md +420 -0
- package/assets/docs/guide/edit-image/replace-colors.md +680 -0
- package/assets/docs/guide/edit-image/transform/crop.md +523 -0
- package/assets/docs/guide/edit-image/transform/move.md +279 -0
- package/assets/docs/guide/edit-image/transform/resize.md +301 -0
- package/assets/docs/guide/edit-image/transform/rotate.md +408 -0
- package/assets/docs/guide/edit-image/transform/scale.md +278 -0
- package/assets/docs/guide/edit-image/transform.md +24 -0
- package/assets/docs/guide/edit-image/vectorize.md +204 -0
- package/assets/docs/guide/edit-image.md +25 -0
- package/assets/docs/guide/edit-video/add-captions.md +589 -0
- package/assets/docs/guide/edit-video/add-watermark.md +429 -0
- package/assets/docs/guide/edit-video/join-and-arrange.md +540 -0
- package/assets/docs/guide/edit-video/redaction.md +544 -0
- package/assets/docs/guide/edit-video/split.md +634 -0
- package/assets/docs/guide/edit-video/transform/crop.md +380 -0
- package/assets/docs/guide/edit-video/transform/flip.md +182 -0
- package/assets/docs/guide/edit-video/transform/move.md +413 -0
- package/assets/docs/guide/edit-video/transform/resize.md +534 -0
- package/assets/docs/guide/edit-video/transform/rotate.md +312 -0
- package/assets/docs/guide/edit-video/transform/scale.md +603 -0
- package/assets/docs/guide/edit-video/transform.md +25 -0
- package/assets/docs/guide/edit-video/trim.md +773 -0
- package/assets/docs/guide/engine-interface.md +108 -0
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +292 -0
- package/assets/docs/guide/export-save-publish/export/compress.md +639 -0
- package/assets/docs/guide/export-save-publish/export/overview.md +576 -0
- package/assets/docs/guide/export-save-publish/export/partial-export.md +694 -0
- package/assets/docs/guide/export-save-publish/export/size-limits.md +401 -0
- package/assets/docs/guide/export-save-publish/export/to-html5.md +474 -0
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +312 -0
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +364 -0
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +389 -0
- package/assets/docs/guide/export-save-publish/export/to-png.md +255 -0
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +303 -0
- package/assets/docs/guide/export-save-publish/export/to-webp.md +261 -0
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +278 -0
- package/assets/docs/guide/export-save-publish/export.md +36 -0
- package/assets/docs/guide/export-save-publish/for-printing.md +423 -0
- package/assets/docs/guide/export-save-publish/for-social-media.md +318 -0
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +698 -0
- package/assets/docs/guide/export-save-publish/save.md +340 -0
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +367 -0
- package/assets/docs/guide/file-format-support.md +34 -0
- package/assets/docs/guide/fills/color.md +678 -0
- package/assets/docs/guide/fills/image.md +539 -0
- package/assets/docs/guide/fills/overview.md +144 -0
- package/assets/docs/guide/fills/video.md +641 -0
- package/assets/docs/guide/fills.md +24 -0
- package/assets/docs/guide/filters-and-effects/apply.md +1019 -0
- package/assets/docs/guide/filters-and-effects/blur.md +382 -0
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +445 -0
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +614 -0
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +426 -0
- package/assets/docs/guide/filters-and-effects/distortion.md +527 -0
- package/assets/docs/guide/filters-and-effects/duotone.md +602 -0
- package/assets/docs/guide/filters-and-effects/gradients.md +1311 -0
- package/assets/docs/guide/filters-and-effects/overview.md +22 -0
- package/assets/docs/guide/filters-and-effects/support.md +623 -0
- package/assets/docs/guide/filters-and-effects.md +28 -0
- package/assets/docs/guide/get-started/agent-skills.md +119 -0
- package/assets/docs/guide/get-started/build-with-ai.md +45 -0
- package/assets/docs/guide/get-started/mcp-server.md +119 -0
- package/assets/docs/guide/get-started/overview.md +28 -0
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +175 -0
- package/assets/docs/guide/grid-and-rulers.md +222 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +224 -0
- package/assets/docs/guide/guides/text/rendering-internals.md +796 -0
- package/assets/docs/guide/guides.md +49 -0
- package/assets/docs/guide/import-media/asset-library.md +23 -0
- package/assets/docs/guide/import-media/asset-panel/basics.md +324 -0
- package/assets/docs/guide/import-media/asset-panel/customize.md +478 -0
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +415 -0
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +633 -0
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +137 -0
- package/assets/docs/guide/import-media/capture-from-camera.md +20 -0
- package/assets/docs/guide/import-media/concepts.md +173 -0
- package/assets/docs/guide/import-media/content-json-schema.md +615 -0
- package/assets/docs/guide/import-media/default-assets.md +381 -0
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +489 -0
- package/assets/docs/guide/import-media/file-format-support.md +178 -0
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +438 -0
- package/assets/docs/guide/import-media/from-local-source.md +20 -0
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +390 -0
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +627 -0
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +625 -0
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +692 -0
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +473 -0
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +497 -0
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +51 -0
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +914 -0
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +764 -0
- package/assets/docs/guide/import-media/from-remote-source.md +28 -0
- package/assets/docs/guide/import-media/overview.md +32 -0
- package/assets/docs/guide/import-media/retrieve-mimetype.md +274 -0
- package/assets/docs/guide/import-media/size-limits.md +20 -0
- package/assets/docs/guide/import-media/source-sets.md +476 -0
- package/assets/docs/guide/import-media.md +32 -0
- package/assets/docs/guide/insert-media/audio.md +291 -0
- package/assets/docs/guide/insert-media/images.md +380 -0
- package/assets/docs/guide/insert-media/position-and-align.md +734 -0
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +799 -0
- package/assets/docs/guide/insert-media/videos.md +308 -0
- package/assets/docs/guide/insert-media.md +24 -0
- package/assets/docs/guide/key-capabilities.md +24 -0
- package/assets/docs/guide/key-concepts.md +83 -0
- package/assets/docs/guide/licensing.md +45 -0
- package/assets/docs/guide/llms-txt.md +53 -0
- package/assets/docs/guide/open-the-editor/blank-canvas.md +124 -0
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +228 -0
- package/assets/docs/guide/open-the-editor/from-image.md +205 -0
- package/assets/docs/guide/open-the-editor/from-template.md +189 -0
- package/assets/docs/guide/open-the-editor/from-video.md +274 -0
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +504 -0
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +680 -0
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +865 -0
- package/assets/docs/guide/open-the-editor/import-design.md +481 -0
- package/assets/docs/guide/open-the-editor/load-scene.md +178 -0
- package/assets/docs/guide/open-the-editor/overview.md +20 -0
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +303 -0
- package/assets/docs/guide/open-the-editor/uri-resolver.md +347 -0
- package/assets/docs/guide/open-the-editor.md +29 -0
- package/assets/docs/guide/outlines/overview.md +14 -0
- package/assets/docs/guide/outlines/shadows-and-glows.md +515 -0
- package/assets/docs/guide/outlines/strokes.md +292 -0
- package/assets/docs/guide/outlines.md +22 -0
- package/assets/docs/guide/overview.md +22 -0
- package/assets/docs/guide/performance.md +217 -0
- package/assets/docs/guide/plugins/asset-sources.md +553 -0
- package/assets/docs/guide/plugins/print-ready-pdf.md +549 -0
- package/assets/docs/guide/plugins.md +36 -0
- package/assets/docs/guide/rules/asset-handling.md +180 -0
- package/assets/docs/guide/rules/common-pitfalls.md +272 -0
- package/assets/docs/guide/rules/content-fill-mode.md +29 -0
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +672 -0
- package/assets/docs/guide/rules/lock-content.md +478 -0
- package/assets/docs/guide/rules/moderate-content.md +761 -0
- package/assets/docs/guide/rules/overview.md +514 -0
- package/assets/docs/guide/rules/silent-init-errors.md +137 -0
- package/assets/docs/guide/rules/verify-properties-before-use.md +78 -0
- package/assets/docs/guide/rules.md +23 -0
- package/assets/docs/guide/security.md +199 -0
- package/assets/docs/guide/serve-assets.md +332 -0
- package/assets/docs/guide/settings.md +199 -0
- package/assets/docs/guide/shapes.md +23 -0
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +748 -0
- package/assets/docs/guide/starterkits/advanced-editor.md +698 -0
- package/assets/docs/guide/starterkits/advanced-video-editor.md +696 -0
- package/assets/docs/guide/starterkits/ai-editor.md +749 -0
- package/assets/docs/guide/starterkits/airtable-image-editor.md +672 -0
- package/assets/docs/guide/starterkits/apparel-ui.md +188 -0
- package/assets/docs/guide/starterkits/assets.md +27 -0
- package/assets/docs/guide/starterkits/auto-resize.md +586 -0
- package/assets/docs/guide/starterkits/automated-video-generation.md +692 -0
- package/assets/docs/guide/starterkits/background-removal-editor.md +480 -0
- package/assets/docs/guide/starterkits/content-moderation.md +863 -0
- package/assets/docs/guide/starterkits/creative-automation.md +28 -0
- package/assets/docs/guide/starterkits/custom-built-uis.md +26 -0
- package/assets/docs/guide/starterkits/customization.md +29 -0
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +470 -0
- package/assets/docs/guide/starterkits/data-merge.md +850 -0
- package/assets/docs/guide/starterkits/design-editor.md +698 -0
- package/assets/docs/guide/starterkits/design-generation.md +719 -0
- package/assets/docs/guide/starterkits/design-validation.md +808 -0
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +14 -0
- package/assets/docs/guide/starterkits/export-options.md +724 -0
- package/assets/docs/guide/starterkits/export-using-renderer.md +708 -0
- package/assets/docs/guide/starterkits/extensibility.md +28 -0
- package/assets/docs/guide/starterkits/force-crop-editor.md +675 -0
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +522 -0
- package/assets/docs/guide/starterkits/getty-images-editor.md +700 -0
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +719 -0
- package/assets/docs/guide/starterkits/indesign-template-import.md +580 -0
- package/assets/docs/guide/starterkits/layouts-editor.md +724 -0
- package/assets/docs/guide/starterkits/mobile-ui.md +185 -0
- package/assets/docs/guide/starterkits/mockup-editor.md +745 -0
- package/assets/docs/guide/starterkits/multi-image-generation.md +542 -0
- package/assets/docs/guide/starterkits/page-sizes-editor.md +657 -0
- package/assets/docs/guide/starterkits/pexels-image-editor.md +665 -0
- package/assets/docs/guide/starterkits/photo-editor.md +755 -0
- package/assets/docs/guide/starterkits/photo-ui.md +186 -0
- package/assets/docs/guide/starterkits/photobook-ui.md +188 -0
- package/assets/docs/guide/starterkits/placeholders.md +678 -0
- package/assets/docs/guide/starterkits/player.md +405 -0
- package/assets/docs/guide/starterkits/plugins.md +25 -0
- package/assets/docs/guide/starterkits/postcard-editor.md +202 -0
- package/assets/docs/guide/starterkits/pptx-template-import.md +581 -0
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +746 -0
- package/assets/docs/guide/starterkits/product-editor.md +773 -0
- package/assets/docs/guide/starterkits/psd-template-import.md +580 -0
- package/assets/docs/guide/starterkits/qr-code-editor.md +470 -0
- package/assets/docs/guide/starterkits/single-page-editor.md +661 -0
- package/assets/docs/guide/starterkits/start-with-image.md +684 -0
- package/assets/docs/guide/starterkits/start-with-video.md +651 -0
- package/assets/docs/guide/starterkits/t-shirt-designer.md +742 -0
- package/assets/docs/guide/starterkits/templating.md +23 -0
- package/assets/docs/guide/starterkits/theming.md +662 -0
- package/assets/docs/guide/starterkits/translation-internationalization.md +662 -0
- package/assets/docs/guide/starterkits/unsplash-editor.md +839 -0
- package/assets/docs/guide/starterkits/vectorizer-editor.md +466 -0
- package/assets/docs/guide/starterkits/version-history.md +745 -0
- package/assets/docs/guide/starterkits/video-animations.md +853 -0
- package/assets/docs/guide/starterkits/video-captions.md +884 -0
- package/assets/docs/guide/starterkits/video-editing.md +25 -0
- package/assets/docs/guide/starterkits/video-editor.md +696 -0
- package/assets/docs/guide/starterkits/video-export-options.md +676 -0
- package/assets/docs/guide/starterkits/viewer.md +400 -0
- package/assets/docs/guide/starterkits.md +41 -0
- package/assets/docs/guide/stickers-and-shapes/combine.md +743 -0
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +425 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +794 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +290 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +211 -0
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +362 -0
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +208 -0
- package/assets/docs/guide/stickers.md +21 -0
- package/assets/docs/guide/text/add.md +641 -0
- package/assets/docs/guide/text/adjust-spacing.md +288 -0
- package/assets/docs/guide/text/auto-size.md +404 -0
- package/assets/docs/guide/text/custom-fonts.md +401 -0
- package/assets/docs/guide/text/decorations.md +330 -0
- package/assets/docs/guide/text/edit.md +458 -0
- package/assets/docs/guide/text/effects.md +244 -0
- package/assets/docs/guide/text/emojis.md +310 -0
- package/assets/docs/guide/text/enumerations.md +258 -0
- package/assets/docs/guide/text/language-support.md +604 -0
- package/assets/docs/guide/text/overview.md +14 -0
- package/assets/docs/guide/text/styling.md +390 -0
- package/assets/docs/guide/text/text-designs.md +834 -0
- package/assets/docs/guide/text.md +33 -0
- package/assets/docs/guide/to-v1-10.md +131 -0
- package/assets/docs/guide/to-v1-13.md +165 -0
- package/assets/docs/guide/to-v1-19.md +315 -0
- package/assets/docs/guide/to-v1-32.md +110 -0
- package/assets/docs/guide/to-v1-69.md +468 -0
- package/assets/docs/guide/to-v1-72.md +193 -0
- package/assets/docs/guide/upgrade.md +25 -0
- package/assets/docs/guide/use-templates/apply-template.md +279 -0
- package/assets/docs/guide/use-templates/generate.md +405 -0
- package/assets/docs/guide/use-templates/library.md +450 -0
- package/assets/docs/guide/use-templates/overview.md +20 -0
- package/assets/docs/guide/use-templates/programmatic.md +482 -0
- package/assets/docs/guide/use-templates/replace-content.md +399 -0
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +428 -0
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +337 -0
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +853 -0
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +1045 -0
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +641 -0
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +966 -0
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +99 -0
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +498 -0
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +493 -0
- package/assets/docs/guide/user-interface/ai-integration.md +30 -0
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +316 -0
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +509 -0
- package/assets/docs/guide/user-interface/appearance/icons.md +373 -0
- package/assets/docs/guide/user-interface/appearance/theming.md +665 -0
- package/assets/docs/guide/user-interface/appearance.md +23 -0
- package/assets/docs/guide/user-interface/build-your-own-ui.md +620 -0
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +412 -0
- package/assets/docs/guide/user-interface/customization/canvas.md +281 -0
- package/assets/docs/guide/user-interface/customization/color-palette.md +413 -0
- package/assets/docs/guide/user-interface/customization/crop-presets.md +384 -0
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +676 -0
- package/assets/docs/guide/user-interface/customization/dock.md +399 -0
- package/assets/docs/guide/user-interface/customization/force-crop.md +289 -0
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +371 -0
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +516 -0
- package/assets/docs/guide/user-interface/customization/page-format.md +436 -0
- package/assets/docs/guide/user-interface/customization/panel.md +605 -0
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +531 -0
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +358 -0
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +374 -0
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +323 -0
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +294 -0
- package/assets/docs/guide/user-interface/customization/quick-start.md +12 -0
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +519 -0
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +333 -0
- package/assets/docs/guide/user-interface/customization/reference.md +12 -0
- package/assets/docs/guide/user-interface/customization.md +39 -0
- package/assets/docs/guide/user-interface/localization.md +633 -0
- package/assets/docs/guide/user-interface/overview.md +167 -0
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +411 -0
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +721 -0
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +331 -0
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +553 -0
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +672 -0
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +415 -0
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +521 -0
- package/assets/docs/guide/user-interface/ui-extensions.md +26 -0
- package/assets/docs/guide/user-interface.md +25 -0
- package/assets/docs/guide/what-is-cesdk.md +319 -0
- package/assets/docs/handbook/SKILL.md +521 -0
- package/assets/prompts/evals-assetGenerate.md +12 -0
- package/assets/prompts/evals-brutalistCore.md +34 -0
- package/assets/prompts/evals-danskCatalogue.md +31 -0
- package/assets/prompts/evals-exportRoundTrip.md +12 -0
- package/assets/prompts/evals-inspectPriorCode.md +16 -0
- package/assets/prompts/evals-listProjectFiles.md +6 -0
- package/assets/prompts/evals-readAndExplainScript.md +6 -0
- package/assets/prompts/evals-resumeAcrossRestart.md +15 -0
- package/assets/prompts/evals-rewindRecovery.md +10 -0
- package/assets/prompts/evals-searchAcrossFiles.md +6 -0
- package/assets/prompts/evals-weddingCard.md +20 -0
- package/assets/prompts/explain.md +6 -0
- package/assets/prompts/review.md +6 -0
- package/dist/assets/inline.generated.d.ts +2 -0
- package/dist/assets/inline.generated.d.ts.map +1 -0
- package/dist/assets/inline.generated.js +413 -0
- package/dist/assets/inline.generated.js.map +1 -0
- package/dist/assets/load-browser.d.ts +8 -0
- package/dist/assets/load-browser.d.ts.map +1 -0
- package/dist/assets/load-browser.js +11 -0
- package/dist/assets/load-browser.js.map +1 -0
- package/dist/assets/load-node.d.ts +8 -0
- package/dist/assets/load-node.d.ts.map +1 -0
- package/dist/assets/load-node.js +11 -0
- package/dist/assets/load-node.js.map +1 -0
- package/dist/cli/http.d.ts +2 -0
- package/dist/cli/http.d.ts.map +1 -0
- package/dist/cli/http.js +231 -0
- package/dist/cli/http.js.map +1 -0
- package/dist/cli/redirect-console.d.ts +10 -0
- package/dist/cli/redirect-console.d.ts.map +1 -0
- package/dist/cli/redirect-console.js +18 -0
- package/dist/cli/redirect-console.js.map +1 -0
- package/dist/cli/resolve-license.d.ts +2 -0
- package/dist/cli/resolve-license.d.ts.map +1 -0
- package/dist/cli/resolve-license.js +13 -0
- package/dist/cli/resolve-license.js.map +1 -0
- package/dist/cli/stdio.d.ts +2 -0
- package/dist/cli/stdio.d.ts.map +1 -0
- package/dist/cli/stdio.js +124 -0
- package/dist/cli/stdio.js.map +1 -0
- package/dist/cli/trial-license.generated.d.ts +2 -0
- package/dist/cli/trial-license.generated.d.ts.map +1 -0
- package/dist/cli/trial-license.generated.js +4 -0
- package/dist/cli/trial-license.generated.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +64 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +61 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +102 -0
- package/dist/config.js.map +1 -0
- package/dist/cross-ref.d.ts +2 -0
- package/dist/cross-ref.d.ts.map +1 -0
- package/dist/cross-ref.js +31 -0
- package/dist/cross-ref.js.map +1 -0
- package/dist/dashboard/router.d.ts +3 -0
- package/dist/dashboard/router.d.ts.map +1 -0
- package/dist/dashboard/router.js +19 -0
- package/dist/dashboard/router.js.map +1 -0
- package/dist/dashboard/spa-assets.generated.d.ts +2 -0
- package/dist/dashboard/spa-assets.generated.d.ts.map +1 -0
- package/dist/dashboard/spa-assets.generated.js +220 -0
- package/dist/dashboard/spa-assets.generated.js.map +1 -0
- package/dist/engine/asset-sources.d.ts +17 -0
- package/dist/engine/asset-sources.d.ts.map +1 -0
- package/dist/engine/asset-sources.js +75 -0
- package/dist/engine/asset-sources.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +10 -0
- package/dist/engine/cesdk-adapter.d.ts.map +1 -0
- package/dist/engine/cesdk-adapter.js +19 -0
- package/dist/engine/cesdk-adapter.js.map +1 -0
- package/dist/engine/index.d.ts +3 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +3 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/mutex.d.ts +5 -0
- package/dist/engine/mutex.d.ts.map +1 -0
- package/dist/engine/mutex.js +42 -0
- package/dist/engine/mutex.js.map +1 -0
- package/dist/engine/session.d.ts +50 -0
- package/dist/engine/session.d.ts.map +1 -0
- package/dist/engine/session.js +95 -0
- package/dist/engine/session.js.map +1 -0
- package/dist/engine/uri-resolver.d.ts +14 -0
- package/dist/engine/uri-resolver.d.ts.map +1 -0
- package/dist/engine/uri-resolver.js +12 -0
- package/dist/engine/uri-resolver.js.map +1 -0
- package/dist/frontmatter.d.ts +15 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +46 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/gateway/hosted-stub.d.ts +6 -0
- package/dist/gateway/hosted-stub.d.ts.map +1 -0
- package/dist/gateway/hosted-stub.js +11 -0
- package/dist/gateway/hosted-stub.js.map +1 -0
- package/dist/gateway/index.d.ts +4 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +4 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/local.d.ts +14 -0
- package/dist/gateway/local.d.ts.map +1 -0
- package/dist/gateway/local.js +41 -0
- package/dist/gateway/local.js.map +1 -0
- package/dist/gateway/types.d.ts +24 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +7 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/http/server.d.ts +80 -0
- package/dist/http/server.d.ts.map +1 -0
- package/dist/http/server.js +183 -0
- package/dist/http/server.js.map +1 -0
- package/dist/http/session-manager.d.ts +42 -0
- package/dist/http/session-manager.d.ts.map +1 -0
- package/dist/http/session-manager.js +82 -0
- package/dist/http/session-manager.js.map +1 -0
- package/dist/http/workspace-auth.d.ts +9 -0
- package/dist/http/workspace-auth.d.ts.map +1 -0
- package/dist/http/workspace-auth.js +29 -0
- package/dist/http/workspace-auth.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/mount.d.ts +11 -0
- package/dist/metrics/mount.d.ts.map +1 -0
- package/dist/metrics/mount.js +13 -0
- package/dist/metrics/mount.js.map +1 -0
- package/dist/metrics/recorder.d.ts +55 -0
- package/dist/metrics/recorder.d.ts.map +1 -0
- package/dist/metrics/recorder.js +97 -0
- package/dist/metrics/recorder.js.map +1 -0
- package/dist/revisions/hash.d.ts +7 -0
- package/dist/revisions/hash.d.ts.map +1 -0
- package/dist/revisions/hash.js +24 -0
- package/dist/revisions/hash.js.map +1 -0
- package/dist/revisions/index.d.ts +4 -0
- package/dist/revisions/index.d.ts.map +1 -0
- package/dist/revisions/index.js +4 -0
- package/dist/revisions/index.js.map +1 -0
- package/dist/revisions/store.d.ts +69 -0
- package/dist/revisions/store.d.ts.map +1 -0
- package/dist/revisions/store.js +196 -0
- package/dist/revisions/store.js.map +1 -0
- package/dist/revisions/types.d.ts +39 -0
- package/dist/revisions/types.d.ts.map +1 -0
- package/dist/revisions/types.js +2 -0
- package/dist/revisions/types.js.map +1 -0
- package/dist/server.d.ts +51 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +175 -0
- package/dist/server.js.map +1 -0
- package/dist/skill-tools.d.ts +3 -0
- package/dist/skill-tools.d.ts.map +1 -0
- package/dist/skill-tools.js +105 -0
- package/dist/skill-tools.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.d.ts +2 -0
- package/dist/test/test/cli/dispatcher.test.d.ts.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +47 -0
- package/dist/test/test/cli/dispatcher.test.js.map +1 -0
- package/dist/test/test/cross-ref.test.d.ts +2 -0
- package/dist/test/test/cross-ref.test.d.ts.map +1 -0
- package/dist/test/test/cross-ref.test.js +39 -0
- package/dist/test/test/cross-ref.test.js.map +1 -0
- package/dist/test/test/engine/session.test.d.ts +2 -0
- package/dist/test/test/engine/session.test.d.ts.map +1 -0
- package/dist/test/test/engine/session.test.js +144 -0
- package/dist/test/test/engine/session.test.js.map +1 -0
- package/dist/test/test/engine/uri-resolver.test.d.ts +2 -0
- package/dist/test/test/engine/uri-resolver.test.d.ts.map +1 -0
- package/dist/test/test/engine/uri-resolver.test.js +38 -0
- package/dist/test/test/engine/uri-resolver.test.js.map +1 -0
- package/dist/test/test/frontmatter.test.d.ts +2 -0
- package/dist/test/test/frontmatter.test.d.ts.map +1 -0
- package/dist/test/test/frontmatter.test.js +55 -0
- package/dist/test/test/frontmatter.test.js.map +1 -0
- package/dist/test/test/gateway/hosted-stub.test.d.ts +2 -0
- package/dist/test/test/gateway/hosted-stub.test.d.ts.map +1 -0
- package/dist/test/test/gateway/hosted-stub.test.js +11 -0
- package/dist/test/test/gateway/hosted-stub.test.js.map +1 -0
- package/dist/test/test/gateway/local.test.d.ts +2 -0
- package/dist/test/test/gateway/local.test.d.ts.map +1 -0
- package/dist/test/test/gateway/local.test.js +29 -0
- package/dist/test/test/gateway/local.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.d.ts +2 -0
- package/dist/test/test/handbook-contract.test.d.ts.map +1 -0
- package/dist/test/test/handbook-contract.test.js +71 -0
- package/dist/test/test/handbook-contract.test.js.map +1 -0
- package/dist/test/test/http/server.test.d.ts +2 -0
- package/dist/test/test/http/server.test.d.ts.map +1 -0
- package/dist/test/test/http/server.test.js +245 -0
- package/dist/test/test/http/server.test.js.map +1 -0
- package/dist/test/test/http/session-manager.test.d.ts +2 -0
- package/dist/test/test/http/session-manager.test.d.ts.map +1 -0
- package/dist/test/test/http/session-manager.test.js +83 -0
- package/dist/test/test/http/session-manager.test.js.map +1 -0
- package/dist/test/test/revisions/hash.test.d.ts +2 -0
- package/dist/test/test/revisions/hash.test.d.ts.map +1 -0
- package/dist/test/test/revisions/hash.test.js +33 -0
- package/dist/test/test/revisions/hash.test.js.map +1 -0
- package/dist/test/test/revisions/store.test.d.ts +2 -0
- package/dist/test/test/revisions/store.test.d.ts.map +1 -0
- package/dist/test/test/revisions/store.test.js +245 -0
- package/dist/test/test/revisions/store.test.js.map +1 -0
- package/dist/test/test/server.test.d.ts +2 -0
- package/dist/test/test/server.test.d.ts.map +1 -0
- package/dist/test/test/server.test.js +157 -0
- package/dist/test/test/server.test.js.map +1 -0
- package/dist/test/test/skill-tools.test.d.ts +2 -0
- package/dist/test/test/skill-tools.test.d.ts.map +1 -0
- package/dist/test/test/skill-tools.test.js +84 -0
- package/dist/test/test/skill-tools.test.js.map +1 -0
- package/dist/test/test/smoke.test.d.ts +2 -0
- package/dist/test/test/smoke.test.d.ts.map +1 -0
- package/dist/test/test/smoke.test.js +8 -0
- package/dist/test/test/smoke.test.js.map +1 -0
- package/dist/test/test/tools/asset-generate.test.d.ts +2 -0
- package/dist/test/test/tools/asset-generate.test.d.ts.map +1 -0
- package/dist/test/test/tools/asset-generate.test.js +66 -0
- package/dist/test/test/tools/asset-generate.test.js.map +1 -0
- package/dist/test/test/tools/edit.test.d.ts +2 -0
- package/dist/test/test/tools/edit.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.test.js +205 -0
- package/dist/test/test/tools/edit.test.js.map +1 -0
- package/dist/test/test/tools/export.test.d.ts +2 -0
- package/dist/test/test/tools/export.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.test.js +144 -0
- package/dist/test/test/tools/export.test.js.map +1 -0
- package/dist/test/test/tools/history.test.d.ts +2 -0
- package/dist/test/test/tools/history.test.d.ts.map +1 -0
- package/dist/test/test/tools/history.test.js +29 -0
- package/dist/test/test/tools/history.test.js.map +1 -0
- package/dist/test/test/tools/inspect.test.d.ts +2 -0
- package/dist/test/test/tools/inspect.test.d.ts.map +1 -0
- package/dist/test/test/tools/inspect.test.js +62 -0
- package/dist/test/test/tools/inspect.test.js.map +1 -0
- package/dist/test/test/tools/list.test.d.ts +2 -0
- package/dist/test/test/tools/list.test.d.ts.map +1 -0
- package/dist/test/test/tools/list.test.js +23 -0
- package/dist/test/test/tools/list.test.js.map +1 -0
- package/dist/test/test/tools/open-editor.test.d.ts +2 -0
- package/dist/test/test/tools/open-editor.test.d.ts.map +1 -0
- package/dist/test/test/tools/open-editor.test.js +53 -0
- package/dist/test/test/tools/open-editor.test.js.map +1 -0
- package/dist/test/test/tools/preview.test.d.ts +2 -0
- package/dist/test/test/tools/preview.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.test.js +73 -0
- package/dist/test/test/tools/preview.test.js.map +1 -0
- package/dist/test/test/tools/rename.test.d.ts +2 -0
- package/dist/test/test/tools/rename.test.d.ts.map +1 -0
- package/dist/test/test/tools/rename.test.js +17 -0
- package/dist/test/test/tools/rename.test.js.map +1 -0
- package/dist/test/test/viewer/broadcaster.test.d.ts +2 -0
- package/dist/test/test/viewer/broadcaster.test.d.ts.map +1 -0
- package/dist/test/test/viewer/broadcaster.test.js +53 -0
- package/dist/test/test/viewer/broadcaster.test.js.map +1 -0
- package/dist/test/test/viewer/resource-route.test.d.ts +2 -0
- package/dist/test/test/viewer/resource-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/resource-route.test.js +70 -0
- package/dist/test/test/viewer/resource-route.test.js.map +1 -0
- package/dist/test/test/viewer/router.test.d.ts +2 -0
- package/dist/test/test/viewer/router.test.d.ts.map +1 -0
- package/dist/test/test/viewer/router.test.js +171 -0
- package/dist/test/test/viewer/router.test.js.map +1 -0
- package/dist/test/test/viewer/url-builder.test.d.ts +2 -0
- package/dist/test/test/viewer/url-builder.test.d.ts.map +1 -0
- package/dist/test/test/viewer/url-builder.test.js +31 -0
- package/dist/test/test/viewer/url-builder.test.js.map +1 -0
- package/dist/test/test/workspace/hosted-stub.test.d.ts +2 -0
- package/dist/test/test/workspace/hosted-stub.test.d.ts.map +1 -0
- package/dist/test/test/workspace/hosted-stub.test.js +30 -0
- package/dist/test/test/workspace/hosted-stub.test.js.map +1 -0
- package/dist/test/test/workspace/in-memory.test.d.ts +2 -0
- package/dist/test/test/workspace/in-memory.test.d.ts.map +1 -0
- package/dist/test/test/workspace/in-memory.test.js +4 -0
- package/dist/test/test/workspace/in-memory.test.js.map +1 -0
- package/dist/test/test/workspace/node-fs.test.d.ts +2 -0
- package/dist/test/test/workspace/node-fs.test.d.ts.map +1 -0
- package/dist/test/test/workspace/node-fs.test.js +20 -0
- package/dist/test/test/workspace/node-fs.test.js.map +1 -0
- package/dist/test/test/workspace/shared-contract.d.ts +3 -0
- package/dist/test/test/workspace/shared-contract.d.ts.map +1 -0
- package/dist/test/test/workspace/shared-contract.js +92 -0
- package/dist/test/test/workspace/shared-contract.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -0
- package/dist/test/vitest.config.d.ts +3 -0
- package/dist/test/vitest.config.d.ts.map +1 -0
- package/dist/test/vitest.config.js +8 -0
- package/dist/test/vitest.config.js.map +1 -0
- package/dist/tools/asset-generate.d.ts +12 -0
- package/dist/tools/asset-generate.d.ts.map +1 -0
- package/dist/tools/asset-generate.js +112 -0
- package/dist/tools/asset-generate.js.map +1 -0
- package/dist/tools/asset-search.d.ts +10 -0
- package/dist/tools/asset-search.d.ts.map +1 -0
- package/dist/tools/asset-search.js +120 -0
- package/dist/tools/asset-search.js.map +1 -0
- package/dist/tools/content-types.d.ts +11 -0
- package/dist/tools/content-types.d.ts.map +1 -0
- package/dist/tools/content-types.js +2 -0
- package/dist/tools/content-types.js.map +1 -0
- package/dist/tools/edit.d.ts +29 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +165 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/engine.d.ts +31 -0
- package/dist/tools/engine.d.ts.map +1 -0
- package/dist/tools/engine.js +59 -0
- package/dist/tools/engine.js.map +1 -0
- package/dist/tools/export.d.ts +19 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +179 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/history.d.ts +7 -0
- package/dist/tools/history.d.ts.map +1 -0
- package/dist/tools/history.js +54 -0
- package/dist/tools/history.js.map +1 -0
- package/dist/tools/index.d.ts +35 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +72 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inspect.d.ts +7 -0
- package/dist/tools/inspect.d.ts.map +1 -0
- package/dist/tools/inspect.js +80 -0
- package/dist/tools/inspect.js.map +1 -0
- package/dist/tools/list.d.ts +7 -0
- package/dist/tools/list.d.ts.map +1 -0
- package/dist/tools/list.js +18 -0
- package/dist/tools/list.js.map +1 -0
- package/dist/tools/metrics.d.ts +11 -0
- package/dist/tools/metrics.d.ts.map +1 -0
- package/dist/tools/metrics.js +28 -0
- package/dist/tools/metrics.js.map +1 -0
- package/dist/tools/open-editor.d.ts +10 -0
- package/dist/tools/open-editor.d.ts.map +1 -0
- package/dist/tools/open-editor.js +62 -0
- package/dist/tools/open-editor.js.map +1 -0
- package/dist/tools/preview.d.ts +12 -0
- package/dist/tools/preview.d.ts.map +1 -0
- package/dist/tools/preview.js +104 -0
- package/dist/tools/preview.js.map +1 -0
- package/dist/tools/rename.d.ts +7 -0
- package/dist/tools/rename.d.ts.map +1 -0
- package/dist/tools/rename.js +39 -0
- package/dist/tools/rename.js.map +1 -0
- package/dist/tools/result.d.ts +12 -0
- package/dist/tools/result.d.ts.map +1 -0
- package/dist/tools/result.js +55 -0
- package/dist/tools/result.js.map +1 -0
- package/dist/tools/save.d.ts +19 -0
- package/dist/tools/save.d.ts.map +1 -0
- package/dist/tools/save.js +117 -0
- package/dist/tools/save.js.map +1 -0
- package/dist/viewer/broadcaster.d.ts +13 -0
- package/dist/viewer/broadcaster.d.ts.map +1 -0
- package/dist/viewer/broadcaster.js +44 -0
- package/dist/viewer/broadcaster.js.map +1 -0
- package/dist/viewer/index.d.ts +7 -0
- package/dist/viewer/index.d.ts.map +1 -0
- package/dist/viewer/index.js +7 -0
- package/dist/viewer/index.js.map +1 -0
- package/dist/viewer/listener.d.ts +16 -0
- package/dist/viewer/listener.d.ts.map +1 -0
- package/dist/viewer/listener.js +30 -0
- package/dist/viewer/listener.js.map +1 -0
- package/dist/viewer/presigned-r2-url-builder.d.ts +30 -0
- package/dist/viewer/presigned-r2-url-builder.d.ts.map +1 -0
- package/dist/viewer/presigned-r2-url-builder.js +40 -0
- package/dist/viewer/presigned-r2-url-builder.js.map +1 -0
- package/dist/viewer/resource-route.d.ts +9 -0
- package/dist/viewer/resource-route.d.ts.map +1 -0
- package/dist/viewer/resource-route.js +59 -0
- package/dist/viewer/resource-route.js.map +1 -0
- package/dist/viewer/router.d.ts +20 -0
- package/dist/viewer/router.d.ts.map +1 -0
- package/dist/viewer/router.js +142 -0
- package/dist/viewer/router.js.map +1 -0
- package/dist/viewer/session-mount.d.ts +10 -0
- package/dist/viewer/session-mount.d.ts.map +1 -0
- package/dist/viewer/session-mount.js +24 -0
- package/dist/viewer/session-mount.js.map +1 -0
- package/dist/viewer/spa-assets.generated.d.ts +2 -0
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -0
- package/dist/viewer/spa-assets.generated.js +989 -0
- package/dist/viewer/spa-assets.generated.js.map +1 -0
- package/dist/viewer/url-builder.d.ts +48 -0
- package/dist/viewer/url-builder.d.ts.map +1 -0
- package/dist/viewer/url-builder.js +38 -0
- package/dist/viewer/url-builder.js.map +1 -0
- package/dist/workspace/hosted-stub.d.ts +28 -0
- package/dist/workspace/hosted-stub.d.ts.map +1 -0
- package/dist/workspace/hosted-stub.js +44 -0
- package/dist/workspace/hosted-stub.js.map +1 -0
- package/dist/workspace/in-memory.d.ts +23 -0
- package/dist/workspace/in-memory.d.ts.map +1 -0
- package/dist/workspace/in-memory.js +161 -0
- package/dist/workspace/in-memory.js.map +1 -0
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +6 -0
- package/dist/workspace/index.js.map +1 -0
- package/dist/workspace/node-fs.d.ts +23 -0
- package/dist/workspace/node-fs.d.ts.map +1 -0
- package/dist/workspace/node-fs.js +90 -0
- package/dist/workspace/node-fs.js.map +1 -0
- package/dist/workspace/s3.d.ts +32 -0
- package/dist/workspace/s3.d.ts.map +1 -0
- package/dist/workspace/s3.js +191 -0
- package/dist/workspace/s3.js.map +1 -0
- package/dist/workspace/scoped.d.ts +32 -0
- package/dist/workspace/scoped.d.ts.map +1 -0
- package/dist/workspace/scoped.js +76 -0
- package/dist/workspace/scoped.js.map +1 -0
- package/dist/workspace/types.d.ts +75 -0
- package/dist/workspace/types.d.ts.map +1 -0
- package/dist/workspace/types.js +18 -0
- package/dist/workspace/types.js.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
> This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Guides](./guides.md) > [User Interface](./user-interface.md) > [Customization](./user-interface/customization.md) > [Canvas Menu](./user-interface/customization/canvas-menu.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The canvas menu is the floating toolbar that appears when a block is selected on the canvas. This guide covers canvas menu-specific features like edit mode context, custom actions, the options submenu, and how the menu adapts to different block types.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 10 minutes
|
|
12
|
+
>
|
|
13
|
+
> **Resources:**
|
|
14
|
+
>
|
|
15
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-user-interface-customization-canvas-menu-browser/)
|
|
19
|
+
|
|
20
|
+
For general component manipulation (reordering, inserting, removing), see the [Component Order API Reference](./user-interface/customization/reference/component-order-api.md).
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-user-interface-customization-canvas-menu-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
|
|
43
|
+
class Example implements EditorPlugin {
|
|
44
|
+
name = packageJson.name;
|
|
45
|
+
version = packageJson.version;
|
|
46
|
+
|
|
47
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
48
|
+
if (!cesdk) {
|
|
49
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
50
|
+
}
|
|
51
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
52
|
+
|
|
53
|
+
// Add asset source plugins
|
|
54
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
55
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
56
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
57
|
+
await cesdk.addPlugin(
|
|
58
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
59
|
+
);
|
|
60
|
+
await cesdk.addPlugin(
|
|
61
|
+
new DemoAssetSources({
|
|
62
|
+
include: [
|
|
63
|
+
'ly.img.templates.blank.*',
|
|
64
|
+
'ly.img.templates.presentation.*',
|
|
65
|
+
'ly.img.templates.print.*',
|
|
66
|
+
'ly.img.templates.social.*',
|
|
67
|
+
'ly.img.image.*'
|
|
68
|
+
]
|
|
69
|
+
})
|
|
70
|
+
);
|
|
71
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
72
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
76
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
79
|
+
|
|
80
|
+
await cesdk.actions.run('scene.create', {
|
|
81
|
+
page: {
|
|
82
|
+
sourceId: 'ly.img.page.presets',
|
|
83
|
+
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
const engine = cesdk.engine;
|
|
88
|
+
const page = engine.block.findByType('page')[0];
|
|
89
|
+
const pageWidth = engine.block.getWidth(page);
|
|
90
|
+
const pageHeight = engine.block.getHeight(page);
|
|
91
|
+
|
|
92
|
+
// Create a text block to demonstrate text edit mode menu
|
|
93
|
+
const titleText = engine.block.create('text');
|
|
94
|
+
engine.block.appendChild(page, titleText);
|
|
95
|
+
engine.block.replaceText(
|
|
96
|
+
titleText,
|
|
97
|
+
'Canvas Menu\n\nRight-click or select to see the menu'
|
|
98
|
+
);
|
|
99
|
+
engine.block.setWidth(titleText, pageWidth * 0.7);
|
|
100
|
+
engine.block.setHeightMode(titleText, 'Auto');
|
|
101
|
+
engine.block.setPositionX(titleText, pageWidth * 0.15);
|
|
102
|
+
engine.block.setPositionY(titleText, pageHeight * 0.2);
|
|
103
|
+
engine.block.setEnum(titleText, 'text/horizontalAlignment', 'Center');
|
|
104
|
+
engine.block.setFloat(titleText, 'text/fontSize', 22);
|
|
105
|
+
|
|
106
|
+
// Create a shape block to demonstrate Transform mode menu
|
|
107
|
+
const rect = engine.block.create('graphic');
|
|
108
|
+
engine.block.appendChild(page, rect);
|
|
109
|
+
const rectShape = engine.block.createShape('rect');
|
|
110
|
+
engine.block.setShape(rect, rectShape);
|
|
111
|
+
engine.block.setWidth(rect, pageWidth * 0.3);
|
|
112
|
+
engine.block.setHeight(rect, pageHeight * 0.2);
|
|
113
|
+
engine.block.setPositionX(rect, pageWidth * 0.35);
|
|
114
|
+
engine.block.setPositionY(rect, pageHeight * 0.6);
|
|
115
|
+
const rectFill = engine.block.createFill('color');
|
|
116
|
+
engine.block.setFill(rect, rectFill);
|
|
117
|
+
engine.block.setColor(rectFill, 'fill/color/value', {
|
|
118
|
+
r: 0.2,
|
|
119
|
+
g: 0.5,
|
|
120
|
+
b: 0.9,
|
|
121
|
+
a: 1
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
// Select the shape so the canvas menu is visible
|
|
125
|
+
engine.block
|
|
126
|
+
.findAllSelected()
|
|
127
|
+
.forEach((block) => engine.block.setSelected(block, false));
|
|
128
|
+
engine.block.select(rect);
|
|
129
|
+
|
|
130
|
+
// Hide the canvas menu
|
|
131
|
+
cesdk.feature.disable('ly.img.canvas.menu');
|
|
132
|
+
|
|
133
|
+
// Show the canvas menu (default)
|
|
134
|
+
cesdk.feature.enable('ly.img.canvas.menu');
|
|
135
|
+
|
|
136
|
+
// Set a custom canvas menu for Text edit mode
|
|
137
|
+
cesdk.ui.setComponentOrder(
|
|
138
|
+
{ in: 'ly.img.canvas.menu', when: { editMode: 'Text' } },
|
|
139
|
+
[
|
|
140
|
+
'ly.img.text.color.canvasMenu',
|
|
141
|
+
'ly.img.separator',
|
|
142
|
+
'ly.img.text.bold.canvasMenu',
|
|
143
|
+
'ly.img.text.italic.canvasMenu',
|
|
144
|
+
'ly.img.separator',
|
|
145
|
+
'ly.img.text.variables.canvasMenu'
|
|
146
|
+
]
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
// Set a custom canvas menu for Transform mode
|
|
150
|
+
cesdk.ui.setComponentOrder(
|
|
151
|
+
{ in: 'ly.img.canvas.menu', when: { editMode: 'Transform' } },
|
|
152
|
+
[
|
|
153
|
+
'ly.img.text.edit.canvasMenu',
|
|
154
|
+
'ly.img.replace.canvasMenu',
|
|
155
|
+
'ly.img.separator',
|
|
156
|
+
'ly.img.bringForward.canvasMenu',
|
|
157
|
+
'ly.img.sendBackward.canvasMenu',
|
|
158
|
+
'ly.img.separator',
|
|
159
|
+
'ly.img.duplicate.canvasMenu',
|
|
160
|
+
'ly.img.delete.canvasMenu',
|
|
161
|
+
'ly.img.separator',
|
|
162
|
+
'ly.img.options.canvasMenu'
|
|
163
|
+
]
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
// Add a custom action button to the canvas menu
|
|
167
|
+
cesdk.ui.insertOrderComponent(
|
|
168
|
+
{ in: 'ly.img.canvas.menu', after: 'ly.img.duplicate.canvasMenu' },
|
|
169
|
+
{
|
|
170
|
+
id: 'ly.img.action.canvasMenu',
|
|
171
|
+
key: 'copy-style',
|
|
172
|
+
label: 'Copy Style',
|
|
173
|
+
icon: '@imgly/Copy',
|
|
174
|
+
onClick: () => {
|
|
175
|
+
const selected = engine.block.findAllSelected()[0];
|
|
176
|
+
if (selected != null) {
|
|
177
|
+
console.log('Copying style from block:', selected);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
// Configure the options submenu children using updateOrderComponent
|
|
184
|
+
// This modifies only the children of an existing dropdown without replacing the entire menu
|
|
185
|
+
cesdk.ui.updateOrderComponent(
|
|
186
|
+
{ in: 'ly.img.canvas.menu', match: { id: 'ly.img.options.canvasMenu' } },
|
|
187
|
+
{
|
|
188
|
+
children: [
|
|
189
|
+
'ly.img.flipX.canvasMenu',
|
|
190
|
+
'ly.img.flipY.canvasMenu',
|
|
191
|
+
'ly.img.separator',
|
|
192
|
+
'ly.img.copy.canvasMenu',
|
|
193
|
+
'ly.img.paste.canvasMenu'
|
|
194
|
+
]
|
|
195
|
+
}
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
// Retrieve and log the current canvas menu order
|
|
199
|
+
const currentOrder = cesdk.ui.getComponentOrder({
|
|
200
|
+
in: 'ly.img.canvas.menu'
|
|
201
|
+
});
|
|
202
|
+
console.log('Current canvas menu order:', currentOrder);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
export default Example;
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
This guide covers showing and hiding the canvas menu, configuring edit mode-specific menus, adding custom actions, configuring the options submenu, and viewing the default component order.
|
|
210
|
+
|
|
211
|
+
## Show or Hide the Canvas Menu
|
|
212
|
+
|
|
213
|
+
Use the Feature API to control canvas menu visibility:
|
|
214
|
+
|
|
215
|
+
```typescript highlight=highlight-show-hide
|
|
216
|
+
// Hide the canvas menu
|
|
217
|
+
cesdk.feature.disable('ly.img.canvas.menu');
|
|
218
|
+
|
|
219
|
+
// Show the canvas menu (default)
|
|
220
|
+
cesdk.feature.enable('ly.img.canvas.menu');
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
For more on the Feature API, see [Show/Hide Components](./user-interface/customization/quick-start/show-hide-components.md).
|
|
224
|
+
|
|
225
|
+
## Edit Mode Context
|
|
226
|
+
|
|
227
|
+
The canvas menu supports different component orders for different edit modes. Use the `when` option in `setComponentOrder` to define layouts that activate only in a specific mode. The following example sets a text formatting toolbar for Text edit mode and a simplified action layout for Transform mode.
|
|
228
|
+
|
|
229
|
+
```typescript highlight=highlight-edit-mode-context
|
|
230
|
+
// Set a custom canvas menu for Text edit mode
|
|
231
|
+
cesdk.ui.setComponentOrder(
|
|
232
|
+
{ in: 'ly.img.canvas.menu', when: { editMode: 'Text' } },
|
|
233
|
+
[
|
|
234
|
+
'ly.img.text.color.canvasMenu',
|
|
235
|
+
'ly.img.separator',
|
|
236
|
+
'ly.img.text.bold.canvasMenu',
|
|
237
|
+
'ly.img.text.italic.canvasMenu',
|
|
238
|
+
'ly.img.separator',
|
|
239
|
+
'ly.img.text.variables.canvasMenu'
|
|
240
|
+
]
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
// Set a custom canvas menu for Transform mode
|
|
244
|
+
cesdk.ui.setComponentOrder(
|
|
245
|
+
{ in: 'ly.img.canvas.menu', when: { editMode: 'Transform' } },
|
|
246
|
+
[
|
|
247
|
+
'ly.img.text.edit.canvasMenu',
|
|
248
|
+
'ly.img.replace.canvasMenu',
|
|
249
|
+
'ly.img.separator',
|
|
250
|
+
'ly.img.bringForward.canvasMenu',
|
|
251
|
+
'ly.img.sendBackward.canvasMenu',
|
|
252
|
+
'ly.img.separator',
|
|
253
|
+
'ly.img.duplicate.canvasMenu',
|
|
254
|
+
'ly.img.delete.canvasMenu',
|
|
255
|
+
'ly.img.separator',
|
|
256
|
+
'ly.img.options.canvasMenu'
|
|
257
|
+
]
|
|
258
|
+
);
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Available edit modes: `'Transform'` (default), `'Text'`, `'Crop'`, `'Trim'`, or any custom value. Edit modes without specific configurations fall back to the Transform mode order. All Component Order API methods accept an optional `when` context. See the [Component Order API Reference](./user-interface/customization/reference/component-order-api.md) for details.
|
|
262
|
+
|
|
263
|
+
## Custom Context Menu Actions
|
|
264
|
+
|
|
265
|
+
Add custom actions to the canvas menu using `ly.img.action.canvasMenu`. Each action requires a unique `key`, a `label`, and an `onClick` handler. Use `insertOrderComponent` to place the action at a specific position.
|
|
266
|
+
|
|
267
|
+
```typescript highlight=highlight-custom-action
|
|
268
|
+
// Add a custom action button to the canvas menu
|
|
269
|
+
cesdk.ui.insertOrderComponent(
|
|
270
|
+
{ in: 'ly.img.canvas.menu', after: 'ly.img.duplicate.canvasMenu' },
|
|
271
|
+
{
|
|
272
|
+
id: 'ly.img.action.canvasMenu',
|
|
273
|
+
key: 'copy-style',
|
|
274
|
+
label: 'Copy Style',
|
|
275
|
+
icon: '@imgly/Copy',
|
|
276
|
+
onClick: () => {
|
|
277
|
+
const selected = engine.block.findAllSelected()[0];
|
|
278
|
+
if (selected != null) {
|
|
279
|
+
console.log('Copying style from block:', selected);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
);
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Custom actions support optional properties like `icon`, `variant`, `isDisabled`, and `shortcut` for keyboard shortcut display.
|
|
287
|
+
|
|
288
|
+
## Options Submenu
|
|
289
|
+
|
|
290
|
+
The `ly.img.options.canvasMenu` component is a dropdown for additional actions. Since it's already in the canvas menu by default, use `updateOrderComponent` to modify its children without replacing the entire menu order.
|
|
291
|
+
|
|
292
|
+
```typescript highlight=highlight-options-submenu
|
|
293
|
+
// Configure the options submenu children using updateOrderComponent
|
|
294
|
+
// This modifies only the children of an existing dropdown without replacing the entire menu
|
|
295
|
+
cesdk.ui.updateOrderComponent(
|
|
296
|
+
{ in: 'ly.img.canvas.menu', match: { id: 'ly.img.options.canvasMenu' } },
|
|
297
|
+
{
|
|
298
|
+
children: [
|
|
299
|
+
'ly.img.flipX.canvasMenu',
|
|
300
|
+
'ly.img.flipY.canvasMenu',
|
|
301
|
+
'ly.img.separator',
|
|
302
|
+
'ly.img.copy.canvasMenu',
|
|
303
|
+
'ly.img.paste.canvasMenu'
|
|
304
|
+
]
|
|
305
|
+
}
|
|
306
|
+
);
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
The options submenu typically contains flip, copy, and paste actions. Use `updateOrderComponent` with `match: { id: '...' }` to target existing components and modify their properties like `children`.
|
|
310
|
+
|
|
311
|
+
## Block-Type Specific Behavior
|
|
312
|
+
|
|
313
|
+
The canvas menu automatically shows and hides components based on the selected block type. Components only render when their associated controls are relevant.
|
|
314
|
+
|
|
315
|
+
| Block Type | Relevant Components |
|
|
316
|
+
| ----------- | ---------------------------------------------- |
|
|
317
|
+
| Text | Text edit, text color, bold, italic, variables |
|
|
318
|
+
| Image/Shape | Replace, flip, bring forward, send backward |
|
|
319
|
+
| Group | Enter group, select group |
|
|
320
|
+
| Page | Move page up, move page down |
|
|
321
|
+
|
|
322
|
+
This means a single component order can include controls for all block types. When a text block is selected, only text-relevant components appear. When a shape is selected, only shape-relevant components appear.
|
|
323
|
+
|
|
324
|
+
## Default Component Order
|
|
325
|
+
|
|
326
|
+
Retrieve the current canvas menu order with `getComponentOrder` to inspect the default layout. For detailed descriptions of each component ID, see the [Component Reference](./user-interface/customization/reference/component-reference.md).
|
|
327
|
+
|
|
328
|
+
```typescript highlight=highlight-default-order
|
|
329
|
+
// Retrieve and log the current canvas menu order
|
|
330
|
+
const currentOrder = cesdk.ui.getComponentOrder({
|
|
331
|
+
in: 'ly.img.canvas.menu'
|
|
332
|
+
});
|
|
333
|
+
console.log('Current canvas menu order:', currentOrder);
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Block Actions
|
|
337
|
+
|
|
338
|
+
| Component ID | Description |
|
|
339
|
+
| ------------------------------- | ------------------------ |
|
|
340
|
+
| `ly.img.delete.canvasMenu` | Delete selected block |
|
|
341
|
+
| `ly.img.duplicate.canvasMenu` | Duplicate selected block |
|
|
342
|
+
| `ly.img.replace.canvasMenu` | Replace block content |
|
|
343
|
+
| `ly.img.placeholder.canvasMenu` | Placeholder toggle |
|
|
344
|
+
|
|
345
|
+
### Edit Actions
|
|
346
|
+
|
|
347
|
+
| Component ID | Description |
|
|
348
|
+
| ------------------------- | -------------------- |
|
|
349
|
+
| `ly.img.copy.canvasMenu` | Copy to clipboard |
|
|
350
|
+
| `ly.img.paste.canvasMenu` | Paste from clipboard |
|
|
351
|
+
| `ly.img.flipX.canvasMenu` | Flip horizontally |
|
|
352
|
+
| `ly.img.flipY.canvasMenu` | Flip vertically |
|
|
353
|
+
|
|
354
|
+
### Layer Ordering
|
|
355
|
+
|
|
356
|
+
| Component ID | Description |
|
|
357
|
+
| -------------------------------- | ----------------------- |
|
|
358
|
+
| `ly.img.bringForward.canvasMenu` | Bring forward one layer |
|
|
359
|
+
| `ly.img.sendBackward.canvasMenu` | Send backward one layer |
|
|
360
|
+
|
|
361
|
+
### Text Actions (Text Edit Mode)
|
|
362
|
+
|
|
363
|
+
| Component ID | Description |
|
|
364
|
+
| --------------------------------------- | -------------------- |
|
|
365
|
+
| `ly.img.text.edit.canvasMenu` | Enter text edit mode |
|
|
366
|
+
| `ly.img.text.color.canvasMenu` | Text color picker |
|
|
367
|
+
| `ly.img.text.bold.canvasMenu` | Toggle bold |
|
|
368
|
+
| `ly.img.text.italic.canvasMenu` | Toggle italic |
|
|
369
|
+
| `ly.img.text.underline.canvasMenu` | Toggle underline |
|
|
370
|
+
| `ly.img.text.strikethrough.canvasMenu` | Toggle strikethrough |
|
|
371
|
+
| `ly.img.text.list.unordered.canvasMenu` | Toggle bulleted list |
|
|
372
|
+
| `ly.img.text.list.ordered.canvasMenu` | Toggle numbered list |
|
|
373
|
+
| `ly.img.text.variables.canvasMenu` | Insert variable |
|
|
374
|
+
|
|
375
|
+
### Group & Page Actions
|
|
376
|
+
|
|
377
|
+
| Component ID | Description |
|
|
378
|
+
| --------------------------------- | ----------------------- |
|
|
379
|
+
| `ly.img.group.enter.canvasMenu` | Enter group for editing |
|
|
380
|
+
| `ly.img.group.select.canvasMenu` | Select parent group |
|
|
381
|
+
| `ly.img.page.moveUp.canvasMenu` | Move page up |
|
|
382
|
+
| `ly.img.page.moveDown.canvasMenu` | Move page down |
|
|
383
|
+
|
|
384
|
+
### Layout & Containers
|
|
385
|
+
|
|
386
|
+
| Component ID | Description |
|
|
387
|
+
| --------------------------- | ----------------------------- |
|
|
388
|
+
| `ly.img.separator` | Visual divider between groups |
|
|
389
|
+
| `ly.img.options.canvasMenu` | Options dropdown submenu |
|
|
390
|
+
|
|
391
|
+
## Troubleshooting
|
|
392
|
+
|
|
393
|
+
- **Menu not appearing** - Ensure a block is selected and `cesdk.feature.disable('ly.img.canvas.menu')` hasn't been called elsewhere.
|
|
394
|
+
- **Custom action not showing** - Verify the `key` is unique and the action was inserted at a valid position.
|
|
395
|
+
- **Edit mode actions missing** - Check that the `when: { editMode: '...' }` value matches exactly (case-sensitive).
|
|
396
|
+
- **Options submenu empty** - Ensure the `children` array contains valid component IDs.
|
|
397
|
+
|
|
398
|
+
## Next Steps
|
|
399
|
+
|
|
400
|
+
- [Reorder Components](./user-interface/customization/quick-start/reorder-components.md) - Quick start for rearranging canvas menu controls
|
|
401
|
+
- [Component Order API](./user-interface/customization/reference/component-order-api.md) - Full API documentation with `when` context
|
|
402
|
+
- [Component Reference](./user-interface/customization/reference/component-reference.md) - All canvas menu component IDs
|
|
403
|
+
- [Inspector Bar](./user-interface/customization/inspector-bar.md) - Another area with edit mode context
|
|
404
|
+
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
## More Resources
|
|
408
|
+
|
|
409
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
410
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
411
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
412
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
> This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Guides](./guides.md) > [User Interface](./user-interface.md) > [Customization](./user-interface/customization.md) > [Canvas Bar](./user-interface/customization/canvas.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The canvas bar is the floating toolbar that appears above or below the canvas. This guide covers canvas bar-specific features like the dual-position system, edit mode context, layout helpers, and the default component order.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 10 minutes
|
|
12
|
+
>
|
|
13
|
+
> **Resources:**
|
|
14
|
+
>
|
|
15
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-user-interface-customization-canvas-browser/)
|
|
19
|
+
|
|
20
|
+
For general component manipulation (reordering, inserting, removing), see the [Component Order API Reference](./user-interface/customization/reference/component-order-api.md).
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-user-interface-customization-canvas-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
|
|
43
|
+
class Example implements EditorPlugin {
|
|
44
|
+
name = packageJson.name;
|
|
45
|
+
version = packageJson.version;
|
|
46
|
+
|
|
47
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
48
|
+
if (!cesdk) {
|
|
49
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
50
|
+
}
|
|
51
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
52
|
+
|
|
53
|
+
// Add asset source plugins
|
|
54
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
55
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
56
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
57
|
+
await cesdk.addPlugin(
|
|
58
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
59
|
+
);
|
|
60
|
+
await cesdk.addPlugin(
|
|
61
|
+
new DemoAssetSources({
|
|
62
|
+
include: [
|
|
63
|
+
'ly.img.templates.blank.*',
|
|
64
|
+
'ly.img.templates.presentation.*',
|
|
65
|
+
'ly.img.templates.print.*',
|
|
66
|
+
'ly.img.templates.social.*',
|
|
67
|
+
'ly.img.image.*'
|
|
68
|
+
]
|
|
69
|
+
})
|
|
70
|
+
);
|
|
71
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
72
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
76
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
79
|
+
|
|
80
|
+
await cesdk.actions.run('scene.create', {
|
|
81
|
+
page: {
|
|
82
|
+
sourceId: 'ly.img.page.presets',
|
|
83
|
+
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// Hide the canvas bar
|
|
88
|
+
cesdk.feature.disable('ly.img.canvas.bar');
|
|
89
|
+
|
|
90
|
+
// Show the canvas bar (default)
|
|
91
|
+
cesdk.feature.enable('ly.img.canvas.bar');
|
|
92
|
+
|
|
93
|
+
// Configure the top position with settings and add page
|
|
94
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'top' }, [
|
|
95
|
+
'ly.img.settings.canvasBar',
|
|
96
|
+
'ly.img.separator',
|
|
97
|
+
'ly.img.page.add.canvasBar'
|
|
98
|
+
]);
|
|
99
|
+
|
|
100
|
+
// Configure the bottom position independently
|
|
101
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'bottom' }, [
|
|
102
|
+
'ly.img.spacer',
|
|
103
|
+
'ly.img.page.add.canvasBar'
|
|
104
|
+
]);
|
|
105
|
+
|
|
106
|
+
// Set a text formatting toolbar for Text edit mode at the top position
|
|
107
|
+
cesdk.ui.setComponentOrder(
|
|
108
|
+
{ in: 'ly.img.canvas.bar', at: 'top', when: { editMode: 'Text' } },
|
|
109
|
+
[
|
|
110
|
+
'ly.img.text.bold.canvasBar',
|
|
111
|
+
'ly.img.text.italic.canvasBar',
|
|
112
|
+
'ly.img.separator',
|
|
113
|
+
'ly.img.settings.canvasBar'
|
|
114
|
+
]
|
|
115
|
+
);
|
|
116
|
+
|
|
117
|
+
// Use spacers and separators to control layout
|
|
118
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'bottom' }, [
|
|
119
|
+
'ly.img.settings.canvasBar',
|
|
120
|
+
'ly.img.separator',
|
|
121
|
+
'ly.img.spacer',
|
|
122
|
+
'ly.img.page.add.canvasBar',
|
|
123
|
+
'ly.img.spacer'
|
|
124
|
+
]);
|
|
125
|
+
|
|
126
|
+
// Retrieve and log the current canvas bar order for each position
|
|
127
|
+
const topOrder = cesdk.ui.getComponentOrder({
|
|
128
|
+
in: 'ly.img.canvas.bar',
|
|
129
|
+
at: 'top'
|
|
130
|
+
});
|
|
131
|
+
console.log('Current top canvas bar order:', topOrder);
|
|
132
|
+
|
|
133
|
+
const bottomOrder = cesdk.ui.getComponentOrder({
|
|
134
|
+
in: 'ly.img.canvas.bar',
|
|
135
|
+
at: 'bottom'
|
|
136
|
+
});
|
|
137
|
+
console.log('Current bottom canvas bar order:', bottomOrder);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export default Example;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
This guide covers showing and hiding the canvas bar, configuring the dual-position system, setting edit mode-specific layouts, using layout helper components, and viewing the default component order.
|
|
145
|
+
|
|
146
|
+
## Show or Hide the Canvas Bar
|
|
147
|
+
|
|
148
|
+
Use the Feature API to control canvas bar visibility:
|
|
149
|
+
|
|
150
|
+
```typescript highlight=highlight-show-hide
|
|
151
|
+
// Hide the canvas bar
|
|
152
|
+
cesdk.feature.disable('ly.img.canvas.bar');
|
|
153
|
+
|
|
154
|
+
// Show the canvas bar (default)
|
|
155
|
+
cesdk.feature.enable('ly.img.canvas.bar');
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
For more on the Feature API, see [Show/Hide Components](./user-interface/customization/quick-start/show-hide-components.md).
|
|
159
|
+
|
|
160
|
+
## Position System
|
|
161
|
+
|
|
162
|
+
Unlike other UI areas, the canvas bar has two independent positions: `'top'` and `'bottom'`. All Component Order API calls require the `at` option to specify which position to configure.
|
|
163
|
+
|
|
164
|
+
```typescript highlight=highlight-position-system
|
|
165
|
+
// Configure the top position with settings and add page
|
|
166
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'top' }, [
|
|
167
|
+
'ly.img.settings.canvasBar',
|
|
168
|
+
'ly.img.separator',
|
|
169
|
+
'ly.img.page.add.canvasBar'
|
|
170
|
+
]);
|
|
171
|
+
|
|
172
|
+
// Configure the bottom position independently
|
|
173
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'bottom' }, [
|
|
174
|
+
'ly.img.spacer',
|
|
175
|
+
'ly.img.page.add.canvasBar'
|
|
176
|
+
]);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Each position maintains its own component order. Changes to the top position do not affect the bottom position and vice versa.
|
|
180
|
+
|
|
181
|
+
## Edit Mode Context
|
|
182
|
+
|
|
183
|
+
The canvas bar supports different component orders for different edit modes. Use the `when` option combined with `at` to define layouts that activate only in a specific mode.
|
|
184
|
+
|
|
185
|
+
```typescript highlight=highlight-edit-mode-context
|
|
186
|
+
// Set a text formatting toolbar for Text edit mode at the top position
|
|
187
|
+
cesdk.ui.setComponentOrder(
|
|
188
|
+
{ in: 'ly.img.canvas.bar', at: 'top', when: { editMode: 'Text' } },
|
|
189
|
+
[
|
|
190
|
+
'ly.img.text.bold.canvasBar',
|
|
191
|
+
'ly.img.text.italic.canvasBar',
|
|
192
|
+
'ly.img.separator',
|
|
193
|
+
'ly.img.settings.canvasBar'
|
|
194
|
+
]
|
|
195
|
+
);
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Available edit modes: `'Transform'` (default), `'Text'`, `'Crop'`, `'Trim'`, or any custom value. Edit modes without specific configurations fall back to the Transform mode order. See the [Component Order API Reference](./user-interface/customization/reference/component-order-api.md) for details on the `when` context.
|
|
199
|
+
|
|
200
|
+
## Layout Components
|
|
201
|
+
|
|
202
|
+
The canvas bar uses two layout helper components to organize content:
|
|
203
|
+
|
|
204
|
+
```typescript highlight=highlight-layout-components
|
|
205
|
+
// Use spacers and separators to control layout
|
|
206
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.canvas.bar', at: 'bottom' }, [
|
|
207
|
+
'ly.img.settings.canvasBar',
|
|
208
|
+
'ly.img.separator',
|
|
209
|
+
'ly.img.spacer',
|
|
210
|
+
'ly.img.page.add.canvasBar',
|
|
211
|
+
'ly.img.spacer'
|
|
212
|
+
]);
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
| Component ID | Description |
|
|
216
|
+
| ------------------ | ------------------------------------------------------------------------------------ |
|
|
217
|
+
| `ly.img.separator` | Vertical divider line with smart rendering (hides when adjacent to edges or spacers) |
|
|
218
|
+
| `ly.img.spacer` | Flexible space that distributes remaining horizontal space evenly |
|
|
219
|
+
|
|
220
|
+
Multiple spacers share available space proportionally, allowing you to center or push components to specific positions.
|
|
221
|
+
|
|
222
|
+
## Default Component Order
|
|
223
|
+
|
|
224
|
+
Retrieve the current canvas bar order with `getComponentOrder` to inspect the default layout. The `at` option is required. For detailed descriptions of each component ID, see the [Component Reference](./user-interface/customization/reference/component-reference.md).
|
|
225
|
+
|
|
226
|
+
```typescript highlight=highlight-default-order
|
|
227
|
+
// Retrieve and log the current canvas bar order for each position
|
|
228
|
+
const topOrder = cesdk.ui.getComponentOrder({
|
|
229
|
+
in: 'ly.img.canvas.bar',
|
|
230
|
+
at: 'top'
|
|
231
|
+
});
|
|
232
|
+
console.log('Current top canvas bar order:', topOrder);
|
|
233
|
+
|
|
234
|
+
const bottomOrder = cesdk.ui.getComponentOrder({
|
|
235
|
+
in: 'ly.img.canvas.bar',
|
|
236
|
+
at: 'bottom'
|
|
237
|
+
});
|
|
238
|
+
console.log('Current bottom canvas bar order:', bottomOrder);
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Top Position
|
|
242
|
+
|
|
243
|
+
The top position is empty by default.
|
|
244
|
+
|
|
245
|
+
### Bottom Position (Default)
|
|
246
|
+
|
|
247
|
+
| Component ID | Description |
|
|
248
|
+
| --------------------------- | -------------------- |
|
|
249
|
+
| `ly.img.settings.canvasBar` | Opens settings panel |
|
|
250
|
+
| `ly.img.spacer` | Flexible space |
|
|
251
|
+
| `ly.img.page.add.canvasBar` | Adds new page |
|
|
252
|
+
| `ly.img.spacer` | Flexible space |
|
|
253
|
+
|
|
254
|
+
### Text Edit Mode Components
|
|
255
|
+
|
|
256
|
+
| Component ID | Description |
|
|
257
|
+
| ------------------------------ | ------------- |
|
|
258
|
+
| `ly.img.text.bold.canvasBar` | Toggle bold |
|
|
259
|
+
| `ly.img.text.italic.canvasBar` | Toggle italic |
|
|
260
|
+
|
|
261
|
+
## Troubleshooting
|
|
262
|
+
|
|
263
|
+
- **Component Order API fails** - Ensure you include the required `at: 'top'` or `at: 'bottom'` option. The canvas bar is the only UI area that requires a position.
|
|
264
|
+
- **Edit mode order not applying** - Check that the `when: { editMode: '...' }` value matches exactly (case-sensitive).
|
|
265
|
+
- **Canvas bar not visible** - Ensure `cesdk.feature.disable('ly.img.canvas.bar')` hasn't been called elsewhere.
|
|
266
|
+
|
|
267
|
+
## Next Steps
|
|
268
|
+
|
|
269
|
+
- [Reorder Components](./user-interface/customization/quick-start/reorder-components.md) - Quick start for rearranging canvas bar controls
|
|
270
|
+
- [Component Order API](./user-interface/customization/reference/component-order-api.md) - Full API documentation with `at` and `when` options
|
|
271
|
+
- [Component Reference](./user-interface/customization/reference/component-reference.md) - All canvas bar component IDs
|
|
272
|
+
- [Inspector Bar](./user-interface/customization/inspector-bar.md) - Another area with edit mode context
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## More Resources
|
|
277
|
+
|
|
278
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
279
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
280
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
281
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|