@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,312 @@
|
|
|
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) > [Export Media Assets](./export-save-publish/export.md) > [To JPEG](./export-save-publish/export/to-jpeg.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Export CE.SDK designs to JPEG format—ideal for photographs, social media, and web content where file size matters more than transparency.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 5 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-export-save-publish-export-to-jpeg-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-export-save-publish-export-to-jpeg-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-export-save-publish-export-to-jpeg-browser/)
|
|
19
|
+
|
|
20
|
+
JPEG uses lossy compression optimized for photographs and smooth color gradients. Unlike PNG, JPEG does not support transparency—transparent areas render with a solid background.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-export-save-publish-export-to-jpeg-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
import {
|
|
25
|
+
BlurAssetSource,
|
|
26
|
+
ColorPaletteAssetSource,
|
|
27
|
+
CropPresetsAssetSource,
|
|
28
|
+
DemoAssetSources,
|
|
29
|
+
EffectsAssetSource,
|
|
30
|
+
FiltersAssetSource,
|
|
31
|
+
PagePresetsAssetSource,
|
|
32
|
+
StickerAssetSource,
|
|
33
|
+
TextAssetSource,
|
|
34
|
+
TextComponentAssetSource,
|
|
35
|
+
TypefaceAssetSource,
|
|
36
|
+
UploadAssetSources,
|
|
37
|
+
VectorShapeAssetSource
|
|
38
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
39
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
40
|
+
import packageJson from './package.json';
|
|
41
|
+
|
|
42
|
+
class Example implements EditorPlugin {
|
|
43
|
+
name = packageJson.name;
|
|
44
|
+
version = packageJson.version;
|
|
45
|
+
|
|
46
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
47
|
+
if (!cesdk) throw new Error('CE.SDK instance is required');
|
|
48
|
+
|
|
49
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
50
|
+
// Add asset source plugins
|
|
51
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
52
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
53
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
54
|
+
await cesdk.addPlugin(
|
|
55
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
56
|
+
);
|
|
57
|
+
await cesdk.addPlugin(
|
|
58
|
+
new DemoAssetSources({
|
|
59
|
+
include: [
|
|
60
|
+
'ly.img.templates.blank.*',
|
|
61
|
+
'ly.img.templates.presentation.*',
|
|
62
|
+
'ly.img.templates.print.*',
|
|
63
|
+
'ly.img.templates.social.*',
|
|
64
|
+
'ly.img.image.*'
|
|
65
|
+
]
|
|
66
|
+
})
|
|
67
|
+
);
|
|
68
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
69
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
70
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
71
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
72
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
76
|
+
|
|
77
|
+
const engine = cesdk.engine;
|
|
78
|
+
|
|
79
|
+
await engine.scene.loadFromURL(
|
|
80
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene'
|
|
81
|
+
);
|
|
82
|
+
const page = engine.scene.getCurrentPage()!;
|
|
83
|
+
|
|
84
|
+
// Zoom to fit page in view
|
|
85
|
+
await engine.scene.zoomToBlock(page);
|
|
86
|
+
|
|
87
|
+
cesdk.ui.insertOrderComponent(
|
|
88
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
89
|
+
{
|
|
90
|
+
id: 'ly.img.actions.navigationBar',
|
|
91
|
+
children: [
|
|
92
|
+
{
|
|
93
|
+
id: 'ly.img.action.navigationBar',
|
|
94
|
+
onClick: async () => {
|
|
95
|
+
await cesdk.actions.run('exportDesign', {
|
|
96
|
+
mimeType: 'image/jpeg',
|
|
97
|
+
jpegQuality: 0.9
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
key: 'export-action',
|
|
101
|
+
label: 'Export',
|
|
102
|
+
icon: '@imgly/Download'
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
{
|
|
106
|
+
id: 'ly.img.action.navigationBar',
|
|
107
|
+
onClick: async () => {
|
|
108
|
+
const currentPage = engine.scene.getCurrentPage()!;
|
|
109
|
+
const exported = await engine.block.export(currentPage, {
|
|
110
|
+
mimeType: 'image/jpeg',
|
|
111
|
+
jpegQuality: 0.9
|
|
112
|
+
});
|
|
113
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
114
|
+
cesdk.ui.showNotification({
|
|
115
|
+
message: `Standard (${(exported.size / 1024).toFixed(0)} KB)`,
|
|
116
|
+
type: 'success'
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
key: 'export-standard',
|
|
120
|
+
label: 'Standard',
|
|
121
|
+
icon: '@imgly/Save'
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
id: 'ly.img.action.navigationBar',
|
|
125
|
+
onClick: async () => {
|
|
126
|
+
const currentPage = engine.scene.getCurrentPage()!;
|
|
127
|
+
const exported = await engine.block.export(currentPage, {
|
|
128
|
+
mimeType: 'image/jpeg',
|
|
129
|
+
jpegQuality: 1.0
|
|
130
|
+
});
|
|
131
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
132
|
+
cesdk.ui.showNotification({
|
|
133
|
+
message: `High Quality (${(exported.size / 1024).toFixed(0)} KB)`,
|
|
134
|
+
type: 'success'
|
|
135
|
+
});
|
|
136
|
+
},
|
|
137
|
+
key: 'export-high',
|
|
138
|
+
label: 'High Quality',
|
|
139
|
+
icon: '@imgly/Save'
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: 'ly.img.action.navigationBar',
|
|
143
|
+
onClick: async () => {
|
|
144
|
+
const currentPage = engine.scene.getCurrentPage()!;
|
|
145
|
+
const exported = await engine.block.export(currentPage, {
|
|
146
|
+
mimeType: 'image/jpeg',
|
|
147
|
+
targetWidth: 1920,
|
|
148
|
+
targetHeight: 1080
|
|
149
|
+
});
|
|
150
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
151
|
+
cesdk.ui.showNotification({
|
|
152
|
+
message: `1920×1080 (${(exported.size / 1024).toFixed(0)} KB)`,
|
|
153
|
+
type: 'success'
|
|
154
|
+
});
|
|
155
|
+
},
|
|
156
|
+
key: 'export-hd',
|
|
157
|
+
label: '1920×1080',
|
|
158
|
+
icon: '@imgly/Save'
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
cesdk.actions.register('exportDesign', async () => {
|
|
165
|
+
const currentPage = engine.scene.getCurrentPage()!;
|
|
166
|
+
const jpeg = await engine.block.export(currentPage, {
|
|
167
|
+
mimeType: 'image/jpeg',
|
|
168
|
+
jpegQuality: 0.9
|
|
169
|
+
});
|
|
170
|
+
await cesdk.utils.downloadFile(jpeg, 'image/jpeg');
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export default Example;
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
This guide covers exporting to JPEG, configuring quality and dimensions, and integrating CE.SDK's built-in export action.
|
|
179
|
+
|
|
180
|
+
## Export to JPEG
|
|
181
|
+
|
|
182
|
+
Export a design block to JPEG by calling `engine.block.export()` with `mimeType: 'image/jpeg'`. Use `cesdk.utils.downloadFile()` to trigger a browser download.
|
|
183
|
+
|
|
184
|
+
```typescript highlight=highlight-export-jpeg
|
|
185
|
+
const exported = await engine.block.export(currentPage, {
|
|
186
|
+
mimeType: 'image/jpeg',
|
|
187
|
+
jpegQuality: 0.9
|
|
188
|
+
});
|
|
189
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
The `jpegQuality` parameter accepts values from greater than 0 to 1. Higher values produce better quality at larger file sizes. The default is 0.9.
|
|
193
|
+
|
|
194
|
+
## Export Options
|
|
195
|
+
|
|
196
|
+
JPEG export supports these configuration options:
|
|
197
|
+
|
|
198
|
+
| Option | Type | Default | Description |
|
|
199
|
+
| -------------- | -------- | ------------- | ------------------------------ |
|
|
200
|
+
| `mimeType` | `string` | `'image/png'` | Set to `'image/jpeg'` for JPEG |
|
|
201
|
+
| `jpegQuality` | `number` | `0.9` | Quality from >0 to 1 |
|
|
202
|
+
| `targetWidth` | `number` | — | Output width in pixels |
|
|
203
|
+
| `targetHeight` | `number` | — | Output height in pixels |
|
|
204
|
+
|
|
205
|
+
### Quality Control
|
|
206
|
+
|
|
207
|
+
Set `jpegQuality` to 1.0 for maximum quality with minimal compression artifacts. This is useful for archival or print preparation.
|
|
208
|
+
|
|
209
|
+
```typescript highlight=highlight-export-quality
|
|
210
|
+
const exported = await engine.block.export(currentPage, {
|
|
211
|
+
mimeType: 'image/jpeg',
|
|
212
|
+
jpegQuality: 1.0
|
|
213
|
+
});
|
|
214
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
For web delivery, values around 0.8 balance quality and file size effectively.
|
|
218
|
+
|
|
219
|
+
### Target Dimensions
|
|
220
|
+
|
|
221
|
+
Specify `targetWidth` and `targetHeight` to export at exact dimensions. The output fills the target size while maintaining aspect ratio.
|
|
222
|
+
|
|
223
|
+
```typescript highlight=highlight-export-size
|
|
224
|
+
const exported = await engine.block.export(currentPage, {
|
|
225
|
+
mimeType: 'image/jpeg',
|
|
226
|
+
targetWidth: 1920,
|
|
227
|
+
targetHeight: 1080
|
|
228
|
+
});
|
|
229
|
+
await cesdk.utils.downloadFile(exported, 'image/jpeg');
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Built-in Export Action
|
|
233
|
+
|
|
234
|
+
CE.SDK includes a built-in export button you can add to the navigation bar. This provides a familiar export experience without additional code.
|
|
235
|
+
|
|
236
|
+
```typescript highlight=highlight-builtin-action
|
|
237
|
+
{
|
|
238
|
+
id: 'ly.img.action.navigationBar',
|
|
239
|
+
onClick: async () => {
|
|
240
|
+
await cesdk.actions.run('exportDesign', {
|
|
241
|
+
mimeType: 'image/jpeg',
|
|
242
|
+
jpegQuality: 0.9
|
|
243
|
+
});
|
|
244
|
+
},
|
|
245
|
+
key: 'export-action',
|
|
246
|
+
label: 'Export',
|
|
247
|
+
icon: '@imgly/Download'
|
|
248
|
+
},
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
The button triggers the `exportDesign` action when clicked. You can customize what happens by registering your own handler.
|
|
252
|
+
|
|
253
|
+
### Customize Export Behavior
|
|
254
|
+
|
|
255
|
+
Override the `exportDesign` action to control the export format, quality, and download behavior.
|
|
256
|
+
|
|
257
|
+
```typescript highlight=highlight-custom-action
|
|
258
|
+
cesdk.actions.register('exportDesign', async () => {
|
|
259
|
+
const currentPage = engine.scene.getCurrentPage()!;
|
|
260
|
+
const jpeg = await engine.block.export(currentPage, {
|
|
261
|
+
mimeType: 'image/jpeg',
|
|
262
|
+
jpegQuality: 0.9
|
|
263
|
+
});
|
|
264
|
+
await cesdk.utils.downloadFile(jpeg, 'image/jpeg');
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
When you register `exportDesign`, the built-in export button uses your custom handler instead of the default.
|
|
269
|
+
|
|
270
|
+
## When to Use JPEG
|
|
271
|
+
|
|
272
|
+
JPEG works well for:
|
|
273
|
+
|
|
274
|
+
- Photographs and images with gradual color transitions
|
|
275
|
+
- Social media posts and web content
|
|
276
|
+
- Scenarios where file size matters more than perfect quality
|
|
277
|
+
|
|
278
|
+
> **Note:** For graphics with sharp edges, text, or transparency, use PNG instead. For modern web delivery with better compression, consider WebP.
|
|
279
|
+
|
|
280
|
+
## Troubleshooting
|
|
281
|
+
|
|
282
|
+
**Output looks blurry** — Increase `jpegQuality` toward 1.0, or use PNG for graphics with hard edges.
|
|
283
|
+
|
|
284
|
+
**File size too large** — Decrease `jpegQuality` to 0.7–0.8, or reduce dimensions with `targetWidth` and `targetHeight`.
|
|
285
|
+
|
|
286
|
+
**Unexpected background** — JPEG does not support transparency. Use PNG or WebP for transparent content.
|
|
287
|
+
|
|
288
|
+
## API Reference
|
|
289
|
+
|
|
290
|
+
| Method | Description |
|
|
291
|
+
| ------------------------------------------ | -------------------------------------- |
|
|
292
|
+
| `engine.block.export(block, options)` | Export a block to the specified format |
|
|
293
|
+
| `cesdk.utils.downloadFile(blob, mimeType)` | Trigger browser download |
|
|
294
|
+
| `cesdk.actions.register(name, handler)` | Register or override an action |
|
|
295
|
+
| `cesdk.ui.insertOrderComponent()` | Add components to navigation bar |
|
|
296
|
+
| `engine.scene.zoomToBlock(block)` | Zoom camera to fit a block |
|
|
297
|
+
|
|
298
|
+
## Next Steps
|
|
299
|
+
|
|
300
|
+
- [Export Overview](./export-save-publish/export/overview.md) — Compare all available export formats
|
|
301
|
+
- [Export to PDF](./export-save-publish/export/to-pdf.md) — Export for print and document workflows
|
|
302
|
+
- [Partial Export](./export-save-publish/export/partial-export.md) — Export specific regions or elements
|
|
303
|
+
- [Size Limits](./export-save-publish/export/size-limits.md) — Handle large exports and memory constraints
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## More Resources
|
|
308
|
+
|
|
309
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
310
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
311
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
312
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,364 @@
|
|
|
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) > [Export Media Assets](./export-save-publish/export.md) > [To MP4](./export-save-publish/export/to-mp4.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Export your video compositions as MP4 files with H.264 encoding, progress tracking, and configurable quality settings.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 5 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-export-save-publish-export-to-mp4-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-export-save-publish-export-to-mp4-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-export-save-publish-export-to-mp4-browser/)
|
|
19
|
+
|
|
20
|
+
MP4 is the most widely supported video format, using H.264 encoding for efficient compression. CE.SDK handles frame rendering, encoding, and audio muxing entirely client-side, giving you control over quality and file size.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-export-save-publish-export-to-mp4-browser/browser.ts reference-only
|
|
23
|
+
import type CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
24
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
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
|
+
|
|
46
|
+
version = packageJson.version;
|
|
47
|
+
|
|
48
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
49
|
+
if (!cesdk) {
|
|
50
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
54
|
+
// Add asset source plugins
|
|
55
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
56
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
57
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
58
|
+
await cesdk.addPlugin(
|
|
59
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
60
|
+
);
|
|
61
|
+
await cesdk.addPlugin(
|
|
62
|
+
new DemoAssetSources({
|
|
63
|
+
include: [
|
|
64
|
+
'ly.img.templates.blank.*',
|
|
65
|
+
'ly.img.templates.presentation.*',
|
|
66
|
+
'ly.img.templates.print.*',
|
|
67
|
+
'ly.img.templates.social.*',
|
|
68
|
+
'ly.img.image.*'
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
76
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
79
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
80
|
+
|
|
81
|
+
const engine = cesdk.engine;
|
|
82
|
+
|
|
83
|
+
cesdk.feature.enable('ly.img.video');
|
|
84
|
+
await engine.scene.loadFromURL(
|
|
85
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.video.template/templates/milli-surf-school.scene'
|
|
86
|
+
);
|
|
87
|
+
const page = engine.scene.getCurrentPage();
|
|
88
|
+
if (!page) throw new Error('No page found');
|
|
89
|
+
|
|
90
|
+
await cesdk.actions.run('zoom.toPage', { autoFit: true });
|
|
91
|
+
|
|
92
|
+
// Setup export functionality
|
|
93
|
+
await this.setupExportActions(cesdk, page);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private async setupExportActions(
|
|
97
|
+
cesdk: CreativeEditorSDK,
|
|
98
|
+
page: number
|
|
99
|
+
): Promise<void> {
|
|
100
|
+
const engine = cesdk.engine;
|
|
101
|
+
|
|
102
|
+
// Add export buttons to navigation bar
|
|
103
|
+
cesdk.ui.insertOrderComponent(
|
|
104
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
105
|
+
{
|
|
106
|
+
id: 'ly.img.actions.navigationBar',
|
|
107
|
+
children: [
|
|
108
|
+
{
|
|
109
|
+
id: 'ly.img.action.navigationBar',
|
|
110
|
+
key: 'export-builtin',
|
|
111
|
+
label: 'Export Video',
|
|
112
|
+
icon: '@imgly/Save',
|
|
113
|
+
onClick: () => {
|
|
114
|
+
cesdk.actions.run('exportDesign', { mimeType: 'video/mp4' });
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: 'ly.img.action.navigationBar',
|
|
119
|
+
key: 'export-video',
|
|
120
|
+
label: 'Export MP4',
|
|
121
|
+
icon: '@imgly/Save',
|
|
122
|
+
onClick: async () => {
|
|
123
|
+
const dialog = cesdk.utils.showLoadingDialog({
|
|
124
|
+
title: 'Exporting Video',
|
|
125
|
+
message: 'Encoding MP4...',
|
|
126
|
+
progress: 0
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
try {
|
|
130
|
+
const blob = await engine.block.exportVideo(page, {
|
|
131
|
+
mimeType: 'video/mp4',
|
|
132
|
+
onProgress: (_, encoded, total) => {
|
|
133
|
+
dialog.updateProgress({ value: encoded, max: total });
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
dialog.close();
|
|
138
|
+
await cesdk.utils.downloadFile(blob, 'video/mp4');
|
|
139
|
+
} catch (error) {
|
|
140
|
+
dialog.showError({ message: 'Export failed' });
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'ly.img.action.navigationBar',
|
|
147
|
+
key: 'export-video-progress',
|
|
148
|
+
label: 'Export (dialog)',
|
|
149
|
+
icon: '@imgly/Save',
|
|
150
|
+
onClick: async () => {
|
|
151
|
+
const dialog = cesdk.utils.showLoadingDialog({
|
|
152
|
+
title: 'Exporting Video',
|
|
153
|
+
message: 'Encoding MP4...',
|
|
154
|
+
progress: 0
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
try {
|
|
158
|
+
const blob = await engine.block.exportVideo(page, {
|
|
159
|
+
onProgress: (_, encoded, total) => {
|
|
160
|
+
dialog.updateProgress({ value: encoded, max: total });
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
dialog.showSuccess({ message: 'Export complete!' });
|
|
165
|
+
await cesdk.utils.downloadFile(blob, 'video/mp4');
|
|
166
|
+
} catch (error) {
|
|
167
|
+
dialog.showError({ message: 'Export failed' });
|
|
168
|
+
throw error;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: 'ly.img.action.navigationBar',
|
|
174
|
+
key: 'export-video-hd',
|
|
175
|
+
label: 'Export HD',
|
|
176
|
+
icon: '@imgly/Save',
|
|
177
|
+
onClick: async () => {
|
|
178
|
+
const dialog = cesdk.utils.showLoadingDialog({
|
|
179
|
+
title: 'Exporting HD Video',
|
|
180
|
+
message: 'Encoding 1080p...',
|
|
181
|
+
progress: 0
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
try {
|
|
185
|
+
const blob = await engine.block.exportVideo(page, {
|
|
186
|
+
targetWidth: 1920,
|
|
187
|
+
targetHeight: 1080,
|
|
188
|
+
framerate: 30,
|
|
189
|
+
onProgress: (_, encoded, total) => {
|
|
190
|
+
dialog.updateProgress({ value: encoded, max: total });
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
dialog.close();
|
|
195
|
+
await cesdk.utils.downloadFile(blob, 'video/mp4');
|
|
196
|
+
} catch (error) {
|
|
197
|
+
dialog.showError({ message: 'Export failed' });
|
|
198
|
+
throw error;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
id: 'ly.img.action.navigationBar',
|
|
204
|
+
key: 'export-video-quality',
|
|
205
|
+
label: 'Export HQ',
|
|
206
|
+
icon: '@imgly/Save',
|
|
207
|
+
onClick: async () => {
|
|
208
|
+
const dialog = cesdk.utils.showLoadingDialog({
|
|
209
|
+
title: 'Exporting HQ Video',
|
|
210
|
+
message: 'Encoding high quality...',
|
|
211
|
+
progress: 0
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
try {
|
|
215
|
+
const blob = await engine.block.exportVideo(page, {
|
|
216
|
+
h264Profile: 100,
|
|
217
|
+
videoBitrate: 8_000_000,
|
|
218
|
+
onProgress: (_, encoded, total) => {
|
|
219
|
+
dialog.updateProgress({ value: encoded, max: total });
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
dialog.close();
|
|
224
|
+
await cesdk.utils.downloadFile(blob, 'video/mp4');
|
|
225
|
+
} catch (error) {
|
|
226
|
+
dialog.showError({ message: 'Export failed' });
|
|
227
|
+
throw error;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
]
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export default Example;
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
This guide covers exporting videos to MP4, tracking progress, configuring resolution and quality, and using built-in export actions.
|
|
241
|
+
|
|
242
|
+
## Export to MP4
|
|
243
|
+
|
|
244
|
+
Call `engine.block.exportVideo()` with a page block to export it as an MP4 video. The method returns a Blob containing the encoded video data.
|
|
245
|
+
|
|
246
|
+
```typescript highlight=highlight-export-video
|
|
247
|
+
const blob = await engine.block.exportVideo(page, {
|
|
248
|
+
mimeType: 'video/mp4',
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Pass the page ID from `engine.scene.getCurrentPage()` to export the current video scene.
|
|
252
|
+
|
|
253
|
+
## Export Options
|
|
254
|
+
|
|
255
|
+
Video export supports configuration options for progress tracking, resolution, framerate, and encoding quality.
|
|
256
|
+
|
|
257
|
+
### Progress Dialog
|
|
258
|
+
|
|
259
|
+
Use `cesdk.utils.showLoadingDialog()` to display a progress dialog during export. The `onProgress` callback updates the dialog with rendering progress.
|
|
260
|
+
|
|
261
|
+
```typescript highlight=highlight-progress-dialog
|
|
262
|
+
const dialog = cesdk.utils.showLoadingDialog({
|
|
263
|
+
title: 'Exporting Video',
|
|
264
|
+
message: 'Encoding MP4...',
|
|
265
|
+
progress: 0
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
try {
|
|
269
|
+
const blob = await engine.block.exportVideo(page, {
|
|
270
|
+
onProgress: (_, encoded, total) => {
|
|
271
|
+
dialog.updateProgress({ value: encoded, max: total });
|
|
272
|
+
}
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
dialog.showSuccess({ message: 'Export complete!' });
|
|
276
|
+
await cesdk.utils.downloadFile(blob, 'video/mp4');
|
|
277
|
+
} catch (error) {
|
|
278
|
+
dialog.showError({ message: 'Export failed' });
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
The dialog provides `updateProgress()` to show a progress bar, `showSuccess()` for completion feedback, and `showError()` for failures. The `onProgress` callback receives rendered frames, encoded frames, and total frames.
|
|
284
|
+
|
|
285
|
+
### Resolution and Framerate
|
|
286
|
+
|
|
287
|
+
Use `targetWidth`, `targetHeight`, and `framerate` to control output dimensions and smoothness.
|
|
288
|
+
|
|
289
|
+
```typescript highlight=highlight-resolution
|
|
290
|
+
const blob = await engine.block.exportVideo(page, {
|
|
291
|
+
targetWidth: 1920,
|
|
292
|
+
targetHeight: 1080,
|
|
293
|
+
framerate: 30,
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
If only one dimension is specified, the other is calculated to maintain aspect ratio. Default framerate is 30 fps.
|
|
297
|
+
|
|
298
|
+
### H.264 Profile and Quality
|
|
299
|
+
|
|
300
|
+
The `h264Profile` option controls encoding quality and device compatibility:
|
|
301
|
+
|
|
302
|
+
- **66 (Baseline)**: Maximum compatibility, lower compression
|
|
303
|
+
- **77 (Main)**: Balanced quality and compatibility (default)
|
|
304
|
+
- **100 (High)**: Best compression, modern devices only
|
|
305
|
+
|
|
306
|
+
Set `videoBitrate` in bits per second to control file size.
|
|
307
|
+
|
|
308
|
+
```typescript highlight=highlight-quality
|
|
309
|
+
const blob = await engine.block.exportVideo(page, {
|
|
310
|
+
h264Profile: 100,
|
|
311
|
+
videoBitrate: 8_000_000,
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### All MP4 Export Options
|
|
315
|
+
|
|
316
|
+
| Option | Description |
|
|
317
|
+
| -------------- | ---------------------------------------------------------------------------------------- |
|
|
318
|
+
| `mimeType` | Output format: `'video/mp4'` or `'video/quicktime'`. Defaults to `'video/mp4'`. |
|
|
319
|
+
| `onProgress` | Callback receiving `(renderedFrames, encodedFrames, totalFrames)` for progress tracking. |
|
|
320
|
+
| `targetWidth` | Target output width in pixels. |
|
|
321
|
+
| `targetHeight` | Target output height in pixels. |
|
|
322
|
+
| `framerate` | Target framerate in Hz. Defaults to `30`. |
|
|
323
|
+
| `h264Profile` | H.264 profile: 66 (Baseline), 77 (Main), 100 (High). Defaults to `77`. |
|
|
324
|
+
| `h264Level` | H.264 level multiplied by 10 (e.g., 52 = level 5.2). Defaults to `52`. |
|
|
325
|
+
| `videoBitrate` | Video bitrate in bits/second. `0` enables automatic selection. |
|
|
326
|
+
| `audioBitrate` | Audio bitrate in bits/second. `0` enables automatic selection. |
|
|
327
|
+
| `timeOffset` | Start time in seconds for partial export. Defaults to `0`. |
|
|
328
|
+
| `duration` | Export duration in seconds. Defaults to scene duration. |
|
|
329
|
+
| `abortSignal` | Signal to cancel the export operation. |
|
|
330
|
+
|
|
331
|
+
## Built-in Export Action
|
|
332
|
+
|
|
333
|
+
CE.SDK provides a built-in `exportDesign` action that handles export with a progress dialog and automatic download. Trigger it with `cesdk.actions.run()`:
|
|
334
|
+
|
|
335
|
+
```typescript highlight=highlight-builtin-action
|
|
336
|
+
cesdk.actions.run('exportDesign', { mimeType: 'video/mp4' });
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
The built-in action exports the current page as MP4 and prompts the user to download the result. It displays a progress dialog during encoding.
|
|
340
|
+
|
|
341
|
+
## API Reference
|
|
342
|
+
|
|
343
|
+
| Method | Description |
|
|
344
|
+
| -------------------------------------------- | ------------------------------------------------------ |
|
|
345
|
+
| `engine.block.exportVideo(blockId, options)` | Export a page block as MP4 video with encoding options |
|
|
346
|
+
| `cesdk.actions.run('exportDesign', options)` | Run the built-in export action with progress dialog |
|
|
347
|
+
| `cesdk.utils.showLoadingDialog(options)` | Show a loading dialog with progress tracking |
|
|
348
|
+
| `cesdk.utils.downloadFile(blob, mimeType)` | Download a blob to the user's device |
|
|
349
|
+
|
|
350
|
+
## Next Steps
|
|
351
|
+
|
|
352
|
+
- [Export Overview](./export-save-publish/export/overview.md) - Compare all supported export formats
|
|
353
|
+
- [Export Size Limits](./export-save-publish/export/size-limits.md) - Check device limits before exporting large videos
|
|
354
|
+
- [Export Audio](./guides/export-save-publish/export/audio.md) - Export audio tracks separately
|
|
355
|
+
- [Partial Export](./export-save-publish/export/partial-export.md) - Export specific blocks or timeline segments
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## More Resources
|
|
360
|
+
|
|
361
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
362
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
363
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
364
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|