@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,291 @@
|
|
|
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) > [Insert Media Assets](./insert-media.md) > [Insert Audio](./insert-media/audio.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Add audio files to video projects using CE.SDK's audio block system for
|
|
8
|
+
background music, sound effects, and voiceovers.
|
|
9
|
+
|
|
10
|
+

|
|
11
|
+
|
|
12
|
+
> **Reading time:** 8 minutes
|
|
13
|
+
>
|
|
14
|
+
> **Resources:**
|
|
15
|
+
>
|
|
16
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
17
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-insert-media-audio-browser)
|
|
18
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-insert-media-audio-browser)
|
|
19
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-insert-media-audio-browser/)
|
|
20
|
+
|
|
21
|
+
Audio blocks are time-based blocks that play sound alongside video content. Unlike video fills that attach to graphic blocks, audio blocks exist independently in the composition with their own duration, position, and volume controls.
|
|
22
|
+
|
|
23
|
+
```typescript file=@cesdk_web_examples/guides-insert-media-audio-browser/browser.ts reference-only
|
|
24
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
25
|
+
|
|
26
|
+
import {
|
|
27
|
+
BlurAssetSource,
|
|
28
|
+
CaptionPresetsAssetSource,
|
|
29
|
+
ColorPaletteAssetSource,
|
|
30
|
+
CropPresetsAssetSource,
|
|
31
|
+
DemoAssetSources,
|
|
32
|
+
EffectsAssetSource,
|
|
33
|
+
FiltersAssetSource,
|
|
34
|
+
PagePresetsAssetSource,
|
|
35
|
+
StickerAssetSource,
|
|
36
|
+
TextAssetSource,
|
|
37
|
+
TextComponentAssetSource,
|
|
38
|
+
TypefaceAssetSource,
|
|
39
|
+
UploadAssetSources,
|
|
40
|
+
VectorShapeAssetSource
|
|
41
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
+
import { VideoEditorConfig } from './video-editor/plugin';
|
|
43
|
+
import packageJson from './package.json';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* CE.SDK Plugin: Insert Audio Guide
|
|
47
|
+
*
|
|
48
|
+
* Demonstrates adding audio to video projects:
|
|
49
|
+
* - Creating audio blocks programmatically
|
|
50
|
+
* - Setting audio source URIs
|
|
51
|
+
* - Configuring timeline position and duration
|
|
52
|
+
* - Adjusting audio volume, mute, and loop settings
|
|
53
|
+
* - Querying and managing audio blocks
|
|
54
|
+
*/
|
|
55
|
+
class Example implements EditorPlugin {
|
|
56
|
+
name = packageJson.name;
|
|
57
|
+
|
|
58
|
+
version = packageJson.version;
|
|
59
|
+
|
|
60
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
61
|
+
if (!cesdk) {
|
|
62
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
63
|
+
}
|
|
64
|
+
await cesdk.addPlugin(new VideoEditorConfig());
|
|
65
|
+
|
|
66
|
+
// Add asset source plugins
|
|
67
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
68
|
+
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
69
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
70
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
71
|
+
await cesdk.addPlugin(
|
|
72
|
+
new UploadAssetSources({
|
|
73
|
+
include: [
|
|
74
|
+
'ly.img.image.upload',
|
|
75
|
+
'ly.img.video.upload',
|
|
76
|
+
'ly.img.audio.upload'
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
);
|
|
80
|
+
await cesdk.addPlugin(
|
|
81
|
+
new DemoAssetSources({
|
|
82
|
+
include: [
|
|
83
|
+
'ly.img.templates.video.*',
|
|
84
|
+
'ly.img.image.*',
|
|
85
|
+
'ly.img.audio.*',
|
|
86
|
+
'ly.img.video.*'
|
|
87
|
+
]
|
|
88
|
+
})
|
|
89
|
+
);
|
|
90
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
91
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
92
|
+
await cesdk.addPlugin(
|
|
93
|
+
new PagePresetsAssetSource({
|
|
94
|
+
include: [
|
|
95
|
+
'ly.img.page.presets.instagram.*',
|
|
96
|
+
'ly.img.page.presets.facebook.*',
|
|
97
|
+
'ly.img.page.presets.x.*',
|
|
98
|
+
'ly.img.page.presets.linkedin.*',
|
|
99
|
+
'ly.img.page.presets.pinterest.*',
|
|
100
|
+
'ly.img.page.presets.tiktok.*',
|
|
101
|
+
'ly.img.page.presets.youtube.*',
|
|
102
|
+
'ly.img.page.presets.video.*'
|
|
103
|
+
]
|
|
104
|
+
})
|
|
105
|
+
);
|
|
106
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
107
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
108
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
109
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
110
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
111
|
+
|
|
112
|
+
await cesdk.actions.run('scene.create', {
|
|
113
|
+
layout: 'DepthStack',
|
|
114
|
+
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
const engine = cesdk.engine;
|
|
118
|
+
const page = engine.scene.getCurrentPage();
|
|
119
|
+
if (page == null) {
|
|
120
|
+
throw new Error('No page found in scene');
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Set page duration for timeline
|
|
124
|
+
engine.block.setDuration(page, 30);
|
|
125
|
+
|
|
126
|
+
// Create an audio block and set source
|
|
127
|
+
const audioUri =
|
|
128
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.audio/audios/far_from_home.m4a';
|
|
129
|
+
const audioBlock = engine.block.create('audio');
|
|
130
|
+
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
131
|
+
engine.block.appendChild(page, audioBlock);
|
|
132
|
+
|
|
133
|
+
// Load audio resource to access duration
|
|
134
|
+
await engine.block.forceLoadAVResource(audioBlock);
|
|
135
|
+
const totalDuration = engine.block.getAVResourceTotalDuration(audioBlock);
|
|
136
|
+
console.log('Audio total duration:', totalDuration, 'seconds');
|
|
137
|
+
|
|
138
|
+
engine.block.setTimeOffset(audioBlock, 0);
|
|
139
|
+
engine.block.setDuration(audioBlock, Math.min(totalDuration, 30));
|
|
140
|
+
|
|
141
|
+
engine.block.setVolume(audioBlock, 0.8);
|
|
142
|
+
const currentVolume = engine.block.getVolume(audioBlock);
|
|
143
|
+
console.log('Audio volume:', currentVolume);
|
|
144
|
+
|
|
145
|
+
engine.block.setMuted(audioBlock, false);
|
|
146
|
+
const isMuted = engine.block.isMuted(audioBlock);
|
|
147
|
+
console.log('Audio muted:', isMuted);
|
|
148
|
+
|
|
149
|
+
engine.block.setLooping(audioBlock, false);
|
|
150
|
+
const isLooping = engine.block.isLooping(audioBlock);
|
|
151
|
+
console.log('Audio looping:', isLooping);
|
|
152
|
+
|
|
153
|
+
const allAudioBlocks = engine.block.findByType('audio');
|
|
154
|
+
console.log('Total audio blocks:', allAudioBlocks.length);
|
|
155
|
+
|
|
156
|
+
// Log information about each audio block
|
|
157
|
+
allAudioBlocks.forEach((block, index) => {
|
|
158
|
+
const uri = engine.block.getString(block, 'audio/fileURI');
|
|
159
|
+
const timeOffset = engine.block.getTimeOffset(block);
|
|
160
|
+
const duration = engine.block.getDuration(block);
|
|
161
|
+
const volume = engine.block.getVolume(block);
|
|
162
|
+
|
|
163
|
+
console.log(`Audio block ${index + 1}:`, {
|
|
164
|
+
uri: uri.split('/').pop(),
|
|
165
|
+
timeOffset: `${timeOffset}s`,
|
|
166
|
+
duration: `${duration}s`,
|
|
167
|
+
volume: `${(volume * 100).toFixed(0)}%`
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
// Create a second audio block to demonstrate removal
|
|
172
|
+
const tempAudioBlock = engine.block.create('audio');
|
|
173
|
+
engine.block.appendChild(page, tempAudioBlock);
|
|
174
|
+
|
|
175
|
+
engine.block.destroy(tempAudioBlock);
|
|
176
|
+
|
|
177
|
+
console.log(
|
|
178
|
+
'Insert Audio guide initialized. Open the timeline to see audio tracks.'
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export default Example;
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
This guide covers creating audio blocks, configuring time-based properties, controlling playback settings, and managing audio blocks in your scene.
|
|
187
|
+
|
|
188
|
+
## Creating an Audio Block
|
|
189
|
+
|
|
190
|
+
We create audio blocks using `engine.block.create('audio')` and set the source file with the `audio/fileURI` property. Audio blocks must be appended to a page to become part of the composition.
|
|
191
|
+
|
|
192
|
+
```typescript highlight=highlight-create-audio
|
|
193
|
+
const audioBlock = engine.block.create('audio');
|
|
194
|
+
engine.block.setString(audioBlock, 'audio/fileURI', audioUri);
|
|
195
|
+
engine.block.appendChild(page, audioBlock);
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
CE.SDK supports WAV and MP4 audio formats (including `.m4a` files). The source URI can point to any accessible URL.
|
|
199
|
+
|
|
200
|
+
## Configuring Time Position
|
|
201
|
+
|
|
202
|
+
Audio blocks have time-based properties that control when and how long they play. We use `setTimeOffset()` for the start position and `setDuration()` for playback length.
|
|
203
|
+
|
|
204
|
+
```typescript highlight=highlight-configure-timeline
|
|
205
|
+
engine.block.setTimeOffset(audioBlock, 0);
|
|
206
|
+
engine.block.setDuration(audioBlock, Math.min(totalDuration, 30));
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The `forceLoadAVResource()` method loads the audio file so we can access its total duration. Use `getAVResourceTotalDuration()` to get the full length of the source audio for timing calculations.
|
|
210
|
+
|
|
211
|
+
## Adjusting Volume
|
|
212
|
+
|
|
213
|
+
We set volume using `setVolume()` with values from 0.0 (silent) to 1.0 (full volume). This affects both preview playback and the final exported output.
|
|
214
|
+
|
|
215
|
+
```typescript highlight=highlight-adjust-volume
|
|
216
|
+
engine.block.setVolume(audioBlock, 0.8);
|
|
217
|
+
const currentVolume = engine.block.getVolume(audioBlock);
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Muting Audio
|
|
221
|
+
|
|
222
|
+
To temporarily silence audio without removing it, use `setMuted()`. This preserves all other properties while stopping sound output.
|
|
223
|
+
|
|
224
|
+
```typescript highlight=highlight-mute-audio
|
|
225
|
+
engine.block.setMuted(audioBlock, false);
|
|
226
|
+
const isMuted = engine.block.isMuted(audioBlock);
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Looping Audio
|
|
230
|
+
|
|
231
|
+
Enable continuous playback with `setLooping()`. When enabled, the audio repeats until the end of the block's duration in the composition.
|
|
232
|
+
|
|
233
|
+
```typescript highlight=highlight-loop-audio
|
|
234
|
+
engine.block.setLooping(audioBlock, false);
|
|
235
|
+
const isLooping = engine.block.isLooping(audioBlock);
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Finding Audio Blocks
|
|
239
|
+
|
|
240
|
+
Use `findByType('audio')` to retrieve all audio blocks in the scene. This is useful for building audio management interfaces or performing batch operations.
|
|
241
|
+
|
|
242
|
+
```typescript highlight=highlight-find-audio
|
|
243
|
+
const allAudioBlocks = engine.block.findByType('audio');
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Removing Audio
|
|
247
|
+
|
|
248
|
+
To remove an audio block, call `destroy()`. This removes the block from the scene and frees its resources.
|
|
249
|
+
|
|
250
|
+
```typescript highlight=highlight-remove-audio
|
|
251
|
+
engine.block.destroy(tempAudioBlock);
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## API Reference
|
|
255
|
+
|
|
256
|
+
| Method | Description |
|
|
257
|
+
| ----------------------------------------------------- | ----------------------------------- |
|
|
258
|
+
| `engine.block.create('audio')` | Create a new audio block |
|
|
259
|
+
| `engine.block.setString(block, 'audio/fileURI', uri)` | Set the audio source file |
|
|
260
|
+
| `engine.block.appendChild(parent, child)` | Add audio block to page |
|
|
261
|
+
| `engine.block.forceLoadAVResource(block)` | Force load the audio file |
|
|
262
|
+
| `engine.block.getAVResourceTotalDuration(block)` | Get total audio duration in seconds |
|
|
263
|
+
| `engine.block.setTimeOffset(block, seconds)` | Set start position |
|
|
264
|
+
| `engine.block.setDuration(block, seconds)` | Set playback duration |
|
|
265
|
+
| `engine.block.setVolume(block, volume)` | Set volume (0.0-1.0) |
|
|
266
|
+
| `engine.block.getVolume(block)` | Get current volume |
|
|
267
|
+
| `engine.block.setMuted(block, muted)` | Mute or unmute audio |
|
|
268
|
+
| `engine.block.isMuted(block)` | Check if audio is muted |
|
|
269
|
+
| `engine.block.setLooping(block, loop)` | Enable/disable looping |
|
|
270
|
+
| `engine.block.isLooping(block)` | Check if looping is enabled |
|
|
271
|
+
| `engine.block.findByType('audio')` | Find all audio blocks |
|
|
272
|
+
| `engine.block.destroy(block)` | Remove audio block from scene |
|
|
273
|
+
|
|
274
|
+
## Next Steps
|
|
275
|
+
|
|
276
|
+
[Insert Media Overview](./overview.md) - Learn about adding different media types to your projects
|
|
277
|
+
|
|
278
|
+
[Split Video](./edit-video/split.md) - Split video clips on the timeline
|
|
279
|
+
|
|
280
|
+
[Load Scene](./open-the-editor/load-scene.md) - Save and reload your scenes with audio
|
|
281
|
+
|
|
282
|
+
[Store Custom Metadata](./export-save-publish/store-custom-metadata.md) - Save custom data with your scenes
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## More Resources
|
|
287
|
+
|
|
288
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
289
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
290
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
291
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,380 @@
|
|
|
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) > [Insert Media Assets](./insert-media.md) > [Insert Images](./insert-media/images.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Insert images into your designs programmatically using CE.SDK's engine API.
|
|
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/tree/release-$UBQ_VERSION$/guides-insert-media-images-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-insert-media-images-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-insert-media-images-browser/)
|
|
19
|
+
|
|
20
|
+
Images in CE.SDK are graphic blocks with image fills attached. The engine supports multiple image formats including PNG, JPEG, WebP, GIF, and SVG. You can insert images using either the convenience API for quick setup or manual construction for fine-grained control over the image block components.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-insert-media-images-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
|
+
/**
|
|
44
|
+
* CE.SDK Plugin: Insert Images Guide
|
|
45
|
+
*
|
|
46
|
+
* Demonstrates inserting images into a scene programmatically:
|
|
47
|
+
* - Using the convenience API (addImage)
|
|
48
|
+
* - Manual construction with graphic blocks and image fills
|
|
49
|
+
* - Configuring image sizing, positioning, and content fill mode
|
|
50
|
+
* - Applying corner radius for rounded images
|
|
51
|
+
* - Working with multiple images
|
|
52
|
+
*/
|
|
53
|
+
class Example implements EditorPlugin {
|
|
54
|
+
name = packageJson.name;
|
|
55
|
+
|
|
56
|
+
version = packageJson.version;
|
|
57
|
+
|
|
58
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
59
|
+
if (!cesdk) {
|
|
60
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
64
|
+
|
|
65
|
+
// Add asset source plugins
|
|
66
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
67
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
68
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
69
|
+
await cesdk.addPlugin(
|
|
70
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
71
|
+
);
|
|
72
|
+
await cesdk.addPlugin(
|
|
73
|
+
new DemoAssetSources({
|
|
74
|
+
include: [
|
|
75
|
+
'ly.img.templates.blank.*',
|
|
76
|
+
'ly.img.templates.presentation.*',
|
|
77
|
+
'ly.img.templates.print.*',
|
|
78
|
+
'ly.img.templates.social.*',
|
|
79
|
+
'ly.img.image.*'
|
|
80
|
+
]
|
|
81
|
+
})
|
|
82
|
+
);
|
|
83
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
84
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
90
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
91
|
+
|
|
92
|
+
await cesdk.actions.run('scene.create', {
|
|
93
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const engine = cesdk.engine;
|
|
97
|
+
const page = engine.block.findByType('page')[0];
|
|
98
|
+
|
|
99
|
+
// Sample image URL for demonstrations
|
|
100
|
+
const imageUrl = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
101
|
+
|
|
102
|
+
// Add an image using the convenience API
|
|
103
|
+
// This automatically creates a graphic block with rect shape and image fill
|
|
104
|
+
const imageBlock = await engine.block.addImage(imageUrl, {
|
|
105
|
+
size: { width: 200, height: 150 },
|
|
106
|
+
x: 50,
|
|
107
|
+
y: 50
|
|
108
|
+
});
|
|
109
|
+
engine.block.appendChild(page, imageBlock);
|
|
110
|
+
console.log('✓ Added image using convenience API');
|
|
111
|
+
|
|
112
|
+
// Manually construct an image block for more control
|
|
113
|
+
const manualBlock = engine.block.create('graphic');
|
|
114
|
+
|
|
115
|
+
// Create and attach a rectangular shape
|
|
116
|
+
const shape = engine.block.createShape('rect');
|
|
117
|
+
engine.block.setShape(manualBlock, shape);
|
|
118
|
+
|
|
119
|
+
// Create and configure the image fill
|
|
120
|
+
const fill = engine.block.createFill('image');
|
|
121
|
+
engine.block.setString(fill, 'fill/image/imageFileURI', imageUrl);
|
|
122
|
+
engine.block.setFill(manualBlock, fill);
|
|
123
|
+
|
|
124
|
+
// Set dimensions and position
|
|
125
|
+
engine.block.setWidth(manualBlock, 200);
|
|
126
|
+
engine.block.setHeight(manualBlock, 150);
|
|
127
|
+
engine.block.setPositionX(manualBlock, 300);
|
|
128
|
+
engine.block.setPositionY(manualBlock, 50);
|
|
129
|
+
engine.block.appendChild(page, manualBlock);
|
|
130
|
+
console.log('✓ Added image using manual construction');
|
|
131
|
+
|
|
132
|
+
// Set content fill mode to control how images scale within bounds
|
|
133
|
+
// 'Contain' preserves aspect ratio and fits within bounds
|
|
134
|
+
// 'Cover' preserves aspect ratio and fills bounds
|
|
135
|
+
const containBlock = await engine.block.addImage(imageUrl, {
|
|
136
|
+
size: { width: 200, height: 150 },
|
|
137
|
+
x: 550,
|
|
138
|
+
y: 50
|
|
139
|
+
});
|
|
140
|
+
engine.block.appendChild(page, containBlock);
|
|
141
|
+
|
|
142
|
+
if (engine.block.supportsContentFillMode(containBlock)) {
|
|
143
|
+
engine.block.setContentFillMode(containBlock, 'Contain');
|
|
144
|
+
console.log('✓ Applied Contain fill mode');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// Apply corner radius to create rounded corners on an image
|
|
148
|
+
const roundedBlock = await engine.block.addImage(imageUrl, {
|
|
149
|
+
size: { width: 200, height: 150 },
|
|
150
|
+
x: 50,
|
|
151
|
+
y: 250,
|
|
152
|
+
cornerRadius: 20
|
|
153
|
+
});
|
|
154
|
+
engine.block.appendChild(page, roundedBlock);
|
|
155
|
+
console.log('✓ Added image with rounded corners');
|
|
156
|
+
|
|
157
|
+
// Insert multiple images with calculated positioning
|
|
158
|
+
const imageUrls = [
|
|
159
|
+
'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
160
|
+
'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
161
|
+
'https://img.ly/static/ubq_samples/sample_3.jpg'
|
|
162
|
+
];
|
|
163
|
+
|
|
164
|
+
for (let i = 0; i < imageUrls.length; i++) {
|
|
165
|
+
const block = await engine.block.addImage(imageUrls[i], {
|
|
166
|
+
size: { width: 150, height: 100 },
|
|
167
|
+
x: 300 + i * 160,
|
|
168
|
+
y: 250
|
|
169
|
+
});
|
|
170
|
+
engine.block.appendChild(page, block);
|
|
171
|
+
}
|
|
172
|
+
console.log('✓ Added multiple images');
|
|
173
|
+
|
|
174
|
+
// Select the first image block to show it in the inspector
|
|
175
|
+
engine.block.setSelected(imageBlock, true);
|
|
176
|
+
|
|
177
|
+
// Zoom to show all content
|
|
178
|
+
cesdk.engine.scene.zoomToBlock(page, {
|
|
179
|
+
padding: {
|
|
180
|
+
top: 40,
|
|
181
|
+
bottom: 40,
|
|
182
|
+
left: 40,
|
|
183
|
+
right: 40
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export default Example;
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
This guide covers how to add images using the convenience API, manually construct image blocks, configure content fill modes, apply corner radius, and work with multiple images.
|
|
193
|
+
|
|
194
|
+
## Initialize CE.SDK
|
|
195
|
+
|
|
196
|
+
We start by initializing CE.SDK and creating a scene with a page to hold our images.
|
|
197
|
+
|
|
198
|
+
```typescript highlight=highlight-setup
|
|
199
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
200
|
+
|
|
201
|
+
// Add asset source plugins
|
|
202
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
203
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
204
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
205
|
+
await cesdk.addPlugin(
|
|
206
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
207
|
+
);
|
|
208
|
+
await cesdk.addPlugin(
|
|
209
|
+
new DemoAssetSources({
|
|
210
|
+
include: [
|
|
211
|
+
'ly.img.templates.blank.*',
|
|
212
|
+
'ly.img.templates.presentation.*',
|
|
213
|
+
'ly.img.templates.print.*',
|
|
214
|
+
'ly.img.templates.social.*',
|
|
215
|
+
'ly.img.image.*'
|
|
216
|
+
]
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
220
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
221
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
222
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
223
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
224
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
225
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
226
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
227
|
+
|
|
228
|
+
await cesdk.actions.run('scene.create', {
|
|
229
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
const engine = cesdk.engine;
|
|
233
|
+
const page = engine.block.findByType('page')[0];
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Using the Convenience API
|
|
237
|
+
|
|
238
|
+
The `addImage()` method provides a quick way to insert images. It automatically creates a graphic block with a rect shape and image fill. You can configure size, position, corner radius, and other properties through the options parameter.
|
|
239
|
+
|
|
240
|
+
```typescript highlight=highlight-convenience-api
|
|
241
|
+
// Add an image using the convenience API
|
|
242
|
+
// This automatically creates a graphic block with rect shape and image fill
|
|
243
|
+
const imageBlock = await engine.block.addImage(imageUrl, {
|
|
244
|
+
size: { width: 200, height: 150 },
|
|
245
|
+
x: 50,
|
|
246
|
+
y: 50
|
|
247
|
+
});
|
|
248
|
+
engine.block.appendChild(page, imageBlock);
|
|
249
|
+
console.log('✓ Added image using convenience API');
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Manual Image Construction
|
|
253
|
+
|
|
254
|
+
For control over individual components, we can manually construct a graphic block with a rect shape and image fill. This approach lets you configure each component separately.
|
|
255
|
+
|
|
256
|
+
We create a graphic block with `create('graphic')`, attach a rectangular shape with `createShape('rect')`, and create an image fill with `createFill('image')`. The image source is set using `setString()` with the `fill/image/imageFileURI` property.
|
|
257
|
+
|
|
258
|
+
```typescript highlight=highlight-manual-construction
|
|
259
|
+
// Manually construct an image block for more control
|
|
260
|
+
const manualBlock = engine.block.create('graphic');
|
|
261
|
+
|
|
262
|
+
// Create and attach a rectangular shape
|
|
263
|
+
const shape = engine.block.createShape('rect');
|
|
264
|
+
engine.block.setShape(manualBlock, shape);
|
|
265
|
+
|
|
266
|
+
// Create and configure the image fill
|
|
267
|
+
const fill = engine.block.createFill('image');
|
|
268
|
+
engine.block.setString(fill, 'fill/image/imageFileURI', imageUrl);
|
|
269
|
+
engine.block.setFill(manualBlock, fill);
|
|
270
|
+
|
|
271
|
+
// Set dimensions and position
|
|
272
|
+
engine.block.setWidth(manualBlock, 200);
|
|
273
|
+
engine.block.setHeight(manualBlock, 150);
|
|
274
|
+
engine.block.setPositionX(manualBlock, 300);
|
|
275
|
+
engine.block.setPositionY(manualBlock, 50);
|
|
276
|
+
engine.block.appendChild(page, manualBlock);
|
|
277
|
+
console.log('✓ Added image using manual construction');
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## Set Content Fill Mode
|
|
281
|
+
|
|
282
|
+
The content fill mode controls how images scale within their bounds. Use `setContentFillMode()` to choose between different scaling behaviors:
|
|
283
|
+
|
|
284
|
+
- **Contain**: Preserves aspect ratio and fits the image within the bounds
|
|
285
|
+
- **Cover**: Preserves aspect ratio and fills the bounds completely
|
|
286
|
+
- **Crop**: Allows custom crop area
|
|
287
|
+
|
|
288
|
+
Check `supportsContentFillMode()` before setting to ensure the block supports this feature.
|
|
289
|
+
|
|
290
|
+
```typescript highlight=highlight-content-fill-mode
|
|
291
|
+
// Set content fill mode to control how images scale within bounds
|
|
292
|
+
// 'Contain' preserves aspect ratio and fits within bounds
|
|
293
|
+
// 'Cover' preserves aspect ratio and fills bounds
|
|
294
|
+
const containBlock = await engine.block.addImage(imageUrl, {
|
|
295
|
+
size: { width: 200, height: 150 },
|
|
296
|
+
x: 550,
|
|
297
|
+
y: 50
|
|
298
|
+
});
|
|
299
|
+
engine.block.appendChild(page, containBlock);
|
|
300
|
+
|
|
301
|
+
if (engine.block.supportsContentFillMode(containBlock)) {
|
|
302
|
+
engine.block.setContentFillMode(containBlock, 'Contain');
|
|
303
|
+
console.log('✓ Applied Contain fill mode');
|
|
304
|
+
}
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## Apply Corner Radius
|
|
308
|
+
|
|
309
|
+
Add rounded corners to image blocks using the `cornerRadius` option in the convenience API. This creates a visually softer appearance for your images.
|
|
310
|
+
|
|
311
|
+
```typescript highlight=highlight-corner-radius
|
|
312
|
+
// Apply corner radius to create rounded corners on an image
|
|
313
|
+
const roundedBlock = await engine.block.addImage(imageUrl, {
|
|
314
|
+
size: { width: 200, height: 150 },
|
|
315
|
+
x: 50,
|
|
316
|
+
y: 250,
|
|
317
|
+
cornerRadius: 20
|
|
318
|
+
});
|
|
319
|
+
engine.block.appendChild(page, roundedBlock);
|
|
320
|
+
console.log('✓ Added image with rounded corners');
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## Working with Multiple Images
|
|
324
|
+
|
|
325
|
+
Insert multiple images by iterating over an array of image URLs. Each image gets its own graphic block with calculated positioning to arrange them on the page.
|
|
326
|
+
|
|
327
|
+
```typescript highlight=highlight-multiple-images
|
|
328
|
+
// Insert multiple images with calculated positioning
|
|
329
|
+
const imageUrls = [
|
|
330
|
+
'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
331
|
+
'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
332
|
+
'https://img.ly/static/ubq_samples/sample_3.jpg'
|
|
333
|
+
];
|
|
334
|
+
|
|
335
|
+
for (let i = 0; i < imageUrls.length; i++) {
|
|
336
|
+
const block = await engine.block.addImage(imageUrls[i], {
|
|
337
|
+
size: { width: 150, height: 100 },
|
|
338
|
+
x: 300 + i * 160,
|
|
339
|
+
y: 250
|
|
340
|
+
});
|
|
341
|
+
engine.block.appendChild(page, block);
|
|
342
|
+
}
|
|
343
|
+
console.log('✓ Added multiple images');
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Next Steps
|
|
347
|
+
|
|
348
|
+
After inserting an image, you can:
|
|
349
|
+
|
|
350
|
+
- [Edit and transform](./edit-image.md) the image
|
|
351
|
+
- [Apply filters and effects](./filters-and-effects.md)
|
|
352
|
+
- [Export your design](./export-save-publish/export.md)
|
|
353
|
+
|
|
354
|
+
## API Reference
|
|
355
|
+
|
|
356
|
+
| Method | Description |
|
|
357
|
+
| ----------------------------------------------- | ------------------------------------------------------------- |
|
|
358
|
+
| `engine.block.addImage(url, options?)` | Convenience API to create an image block with automatic setup |
|
|
359
|
+
| `engine.block.create('graphic')` | Create a graphic block container for images |
|
|
360
|
+
| `engine.block.createShape('rect')` | Create a rectangular shape for the image |
|
|
361
|
+
| `engine.block.setShape(block, shape)` | Attach shape to graphic block |
|
|
362
|
+
| `engine.block.createFill('image')` | Create an image fill |
|
|
363
|
+
| `engine.block.setFill(block, fill)` | Apply fill to block |
|
|
364
|
+
| `engine.block.setString(fill, property, value)` | Set image source URI via `fill/image/imageFileURI` |
|
|
365
|
+
| `engine.block.setWidth(block, width)` | Set block width |
|
|
366
|
+
| `engine.block.setHeight(block, height)` | Set block height |
|
|
367
|
+
| `engine.block.setPositionX(block, x)` | Set horizontal position |
|
|
368
|
+
| `engine.block.setPositionY(block, y)` | Set vertical position |
|
|
369
|
+
| `engine.block.supportsContentFillMode(block)` | Check if block supports content fill mode |
|
|
370
|
+
| `engine.block.setContentFillMode(block, mode)` | Set content fill mode (`Contain`, `Cover`, `Crop`) |
|
|
371
|
+
| `engine.block.appendChild(parent, child)` | Add block to parent |
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## More Resources
|
|
376
|
+
|
|
377
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
378
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
379
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
380
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|