@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,389 @@
|
|
|
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 PDF](./export-save-publish/export/to-pdf.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Export your designs as PDF documents with high compatibility mode and underlayer support for special media printing.
|
|
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-export-save-publish-export-to-pdf-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-export-save-publish-export-to-pdf-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-export-save-publish-export-to-pdf-browser/)
|
|
19
|
+
|
|
20
|
+
PDF provides a universal document format for sharing and printing designs. CE.SDK exports PDF files that preserve vector graphics, support multi-page documents, and include options for print compatibility. You can configure high compatibility mode to ensure consistent rendering across different PDF viewers, and generate underlayers for special media printing like fabric, glass, or DTF transfers.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-export-save-publish-export-to-pdf-browser/browser.ts reference-only
|
|
23
|
+
import { type EditorPlugin, type 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
|
+
/**
|
|
43
|
+
* CE.SDK Plugin: Export to PDF Guide
|
|
44
|
+
*
|
|
45
|
+
* This example demonstrates:
|
|
46
|
+
* - Exporting designs as PDF documents
|
|
47
|
+
* - Configuring high compatibility mode for consistent rendering
|
|
48
|
+
* - Generating underlayers for special media printing
|
|
49
|
+
* - Controlling output dimensions
|
|
50
|
+
* - Using the built-in export action
|
|
51
|
+
*/
|
|
52
|
+
class Example implements EditorPlugin {
|
|
53
|
+
name = packageJson.name;
|
|
54
|
+
|
|
55
|
+
version = packageJson.version;
|
|
56
|
+
|
|
57
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
58
|
+
if (!cesdk) {
|
|
59
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
63
|
+
// Add asset source plugins
|
|
64
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
65
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
66
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
67
|
+
await cesdk.addPlugin(
|
|
68
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
69
|
+
);
|
|
70
|
+
await cesdk.addPlugin(
|
|
71
|
+
new DemoAssetSources({
|
|
72
|
+
include: [
|
|
73
|
+
'ly.img.templates.blank.*',
|
|
74
|
+
'ly.img.templates.presentation.*',
|
|
75
|
+
'ly.img.templates.print.*',
|
|
76
|
+
'ly.img.templates.social.*',
|
|
77
|
+
'ly.img.image.*'
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
82
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
84
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
89
|
+
|
|
90
|
+
const engine = cesdk.engine;
|
|
91
|
+
|
|
92
|
+
// Load a template scene and zoom to fit
|
|
93
|
+
await engine.scene.loadFromURL(
|
|
94
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene'
|
|
95
|
+
);
|
|
96
|
+
const page = engine.scene.getCurrentPage();
|
|
97
|
+
if (!page) throw new Error('No page found');
|
|
98
|
+
|
|
99
|
+
await engine.scene.zoomToBlock(page, { padding: 40 });
|
|
100
|
+
|
|
101
|
+
// Register a custom export action with PDF-specific options
|
|
102
|
+
cesdk.actions.register('exportDesign', async () => {
|
|
103
|
+
// Export the scene block to include all pages in the PDF
|
|
104
|
+
const scene = engine.scene.get()!;
|
|
105
|
+
|
|
106
|
+
// Merge PDF-specific defaults with provided options
|
|
107
|
+
const blob = await engine.block.export(scene, {
|
|
108
|
+
mimeType: 'application/pdf',
|
|
109
|
+
exportPdfWithHighCompatibility: true
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
await cesdk.utils.downloadFile(blob, 'application/pdf');
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Configure navigation bar with export buttons using insertOrderComponent
|
|
116
|
+
cesdk.ui.insertOrderComponent(
|
|
117
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
118
|
+
{
|
|
119
|
+
id: 'ly.img.actions.navigationBar',
|
|
120
|
+
children: [
|
|
121
|
+
{
|
|
122
|
+
id: 'ly.img.action.navigationBar',
|
|
123
|
+
key: 'export-pdf',
|
|
124
|
+
label: 'PDF',
|
|
125
|
+
icon: '@imgly/Download',
|
|
126
|
+
onClick: async () => {
|
|
127
|
+
// Export scene to include all pages in the PDF
|
|
128
|
+
const scene = engine.scene.get()!;
|
|
129
|
+
// Export scene as PDF (includes all pages)
|
|
130
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
131
|
+
mimeType: 'application/pdf'
|
|
132
|
+
});
|
|
133
|
+
// Download using CE.SDK utils
|
|
134
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: 'ly.img.action.navigationBar',
|
|
139
|
+
key: 'export-high-compat',
|
|
140
|
+
label: 'High Compat',
|
|
141
|
+
icon: '@imgly/Download',
|
|
142
|
+
onClick: async () => {
|
|
143
|
+
// Export scene to include all pages in the PDF
|
|
144
|
+
const scene = engine.scene.get()!;
|
|
145
|
+
// Enable high compatibility mode for consistent rendering across PDF viewers
|
|
146
|
+
// This rasterizes complex elements like gradients with transparency at scene DPI
|
|
147
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
148
|
+
mimeType: 'application/pdf',
|
|
149
|
+
exportPdfWithHighCompatibility: true
|
|
150
|
+
});
|
|
151
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: 'ly.img.action.navigationBar',
|
|
156
|
+
key: 'export-underlayer',
|
|
157
|
+
label: 'Underlayer',
|
|
158
|
+
icon: '@imgly/Download',
|
|
159
|
+
onClick: async () => {
|
|
160
|
+
// Export scene to include all pages in the PDF
|
|
161
|
+
const scene = engine.scene.get()!;
|
|
162
|
+
// Define the underlayer spot color before export
|
|
163
|
+
// RGB values (0.8, 0.8, 0.8) provide a preview representation
|
|
164
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
165
|
+
|
|
166
|
+
// Export with underlayer for special media printing
|
|
167
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
168
|
+
mimeType: 'application/pdf',
|
|
169
|
+
exportPdfWithHighCompatibility: true,
|
|
170
|
+
exportPdfWithUnderlayer: true,
|
|
171
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
172
|
+
// Negative offset shrinks underlayer to prevent visible edges
|
|
173
|
+
underlayerOffset: -2.0
|
|
174
|
+
});
|
|
175
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: 'ly.img.action.navigationBar',
|
|
180
|
+
key: 'export-a4',
|
|
181
|
+
label: 'A4 @ 300 DPI',
|
|
182
|
+
icon: '@imgly/Download',
|
|
183
|
+
onClick: async () => {
|
|
184
|
+
// Export scene to include all pages in the PDF
|
|
185
|
+
const scene = engine.scene.get()!;
|
|
186
|
+
// Export with specific dimensions for print output
|
|
187
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
188
|
+
mimeType: 'application/pdf',
|
|
189
|
+
targetWidth: 2480, // A4 at 300 DPI (210mm)
|
|
190
|
+
targetHeight: 3508 // A4 at 300 DPI (297mm)
|
|
191
|
+
});
|
|
192
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: 'ly.img.action.navigationBar',
|
|
197
|
+
key: 'export-action',
|
|
198
|
+
label: 'Export',
|
|
199
|
+
icon: '@imgly/Download',
|
|
200
|
+
onClick: () => {
|
|
201
|
+
// Run built-in export with PDF format
|
|
202
|
+
cesdk.actions.run('exportDesign', {
|
|
203
|
+
mimeType: 'application/pdf'
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export default Example;
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
This guide covers exporting designs to PDF format, configuring high compatibility mode, generating underlayers with spot colors, and controlling output dimensions.
|
|
217
|
+
|
|
218
|
+
## Export to PDF
|
|
219
|
+
|
|
220
|
+
Call `engine.block.export()` with `mimeType: 'application/pdf'` to export any block as a PDF document. The method returns a Blob containing the PDF data.
|
|
221
|
+
|
|
222
|
+
```typescript highlight=highlight-export-pdf
|
|
223
|
+
// Export scene as PDF (includes all pages)
|
|
224
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
225
|
+
mimeType: 'application/pdf'
|
|
226
|
+
});
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Pass the scene ID from `engine.scene.get()` to export all pages as a multi-page PDF. You can also pass a single page ID from `engine.scene.getCurrentPage()` if you only need to export one page.
|
|
230
|
+
|
|
231
|
+
## Configure High Compatibility Mode
|
|
232
|
+
|
|
233
|
+
Enable `exportPdfWithHighCompatibility` to rasterize complex elements like gradients with transparency at the scene's DPI. This ensures consistent rendering across all PDF viewers.
|
|
234
|
+
|
|
235
|
+
```typescript highlight=highlight-high-compatibility
|
|
236
|
+
// Enable high compatibility mode for consistent rendering across PDF viewers
|
|
237
|
+
// This rasterizes complex elements like gradients with transparency at scene DPI
|
|
238
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
239
|
+
mimeType: 'application/pdf',
|
|
240
|
+
exportPdfWithHighCompatibility: true
|
|
241
|
+
});
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Use high compatibility mode when:
|
|
245
|
+
|
|
246
|
+
- Designs contain gradients with transparency
|
|
247
|
+
- Effects or blend modes render inconsistently across viewers
|
|
248
|
+
- Maximum compatibility matters more than vector precision
|
|
249
|
+
|
|
250
|
+
High compatibility mode increases file size because complex elements are converted to raster images rather than remaining as vectors.
|
|
251
|
+
|
|
252
|
+
## Generate Underlayers for Special Media
|
|
253
|
+
|
|
254
|
+
Underlayers provide a base ink layer (typically white) for printing on transparent or non-white substrates like fabric, glass, or acrylic. The underlayer sits behind your design elements and provides opacity on transparent materials.
|
|
255
|
+
|
|
256
|
+
### Define the Underlayer Spot Color
|
|
257
|
+
|
|
258
|
+
Before exporting, define a spot color that represents the underlayer ink. The RGB values provide a preview representation in PDF viewers.
|
|
259
|
+
|
|
260
|
+
```typescript highlight=highlight-spot-color
|
|
261
|
+
// Define the underlayer spot color before export
|
|
262
|
+
// RGB values (0.8, 0.8, 0.8) provide a preview representation
|
|
263
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
The spot color name (e.g., `'RDG_WHITE'`) must match your print provider's requirements. Common names include `RDG_WHITE` for Roland DG printers and `White` for other systems.
|
|
267
|
+
|
|
268
|
+
### Export with Underlayer Options
|
|
269
|
+
|
|
270
|
+
Configure the underlayer spot color name and optional offset. The `underlayerOffset` adjusts the underlayer size in design units—negative values shrink it inward to prevent visible edges from print misalignment (trapping).
|
|
271
|
+
|
|
272
|
+
```typescript highlight=highlight-underlayer
|
|
273
|
+
// Export with underlayer for special media printing
|
|
274
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
275
|
+
mimeType: 'application/pdf',
|
|
276
|
+
exportPdfWithHighCompatibility: true,
|
|
277
|
+
exportPdfWithUnderlayer: true,
|
|
278
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
279
|
+
// Negative offset shrinks underlayer to prevent visible edges
|
|
280
|
+
underlayerOffset: -2.0
|
|
281
|
+
});
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The underlayer is generated automatically from the contours of all design elements on the page. Elements with transparency will have proportionally reduced underlayer opacity.
|
|
285
|
+
|
|
286
|
+
## Export at Target Dimensions
|
|
287
|
+
|
|
288
|
+
Use `targetWidth` and `targetHeight` to control the exported PDF dimensions in pixels. The block renders large enough to fill the target size while maintaining aspect ratio.
|
|
289
|
+
|
|
290
|
+
```typescript highlight=highlight-target-size
|
|
291
|
+
// Export with specific dimensions for print output
|
|
292
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
293
|
+
mimeType: 'application/pdf',
|
|
294
|
+
targetWidth: 2480, // A4 at 300 DPI (210mm)
|
|
295
|
+
targetHeight: 3508 // A4 at 300 DPI (297mm)
|
|
296
|
+
});
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
For print output, calculate the target dimensions based on your desired DPI:
|
|
300
|
+
|
|
301
|
+
- A4 at 300 DPI: 2480 × 3508 pixels
|
|
302
|
+
- Letter at 300 DPI: 2550 × 3300 pixels
|
|
303
|
+
|
|
304
|
+
## Built-in Export Action
|
|
305
|
+
|
|
306
|
+
Run the `exportDesign` action to execute the default export flow programmatically.
|
|
307
|
+
|
|
308
|
+
```typescript highlight=highlight-trigger-export
|
|
309
|
+
// Run built-in export with PDF format
|
|
310
|
+
cesdk.actions.run('exportDesign', {
|
|
311
|
+
mimeType: 'application/pdf'
|
|
312
|
+
});
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
This executes the registered export action, which handles the complete export process including format selection and file download.
|
|
316
|
+
|
|
317
|
+
## Customize Export Action
|
|
318
|
+
|
|
319
|
+
Register a custom `exportDesign` action to apply PDF-specific options automatically. This lets you set defaults like high compatibility mode that apply whenever the export action runs.
|
|
320
|
+
|
|
321
|
+
```typescript highlight=highlight-customize-action
|
|
322
|
+
// Register a custom export action with PDF-specific options
|
|
323
|
+
cesdk.actions.register('exportDesign', async () => {
|
|
324
|
+
// Export the scene block to include all pages in the PDF
|
|
325
|
+
const scene = engine.scene.get()!;
|
|
326
|
+
|
|
327
|
+
// Merge PDF-specific defaults with provided options
|
|
328
|
+
const blob = await engine.block.export(scene, {
|
|
329
|
+
mimeType: 'application/pdf',
|
|
330
|
+
exportPdfWithHighCompatibility: true
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
await cesdk.utils.downloadFile(blob, 'application/pdf');
|
|
334
|
+
});
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
The custom action merges your PDF defaults with any options passed when the action runs. This approach centralizes export configuration and ensures consistent behavior across your application.
|
|
338
|
+
|
|
339
|
+
## Download Export
|
|
340
|
+
|
|
341
|
+
Use `cesdk.utils.downloadFile()` to trigger the browser's download dialog for the exported blob.
|
|
342
|
+
|
|
343
|
+
```typescript highlight=highlight-download
|
|
344
|
+
// Download using CE.SDK utils
|
|
345
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
Pass the blob and MIME type to prompt the user to save the file locally.
|
|
349
|
+
|
|
350
|
+
## PDF Export Options
|
|
351
|
+
|
|
352
|
+
| Option | Description |
|
|
353
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------- |
|
|
354
|
+
| `mimeType` | Output format. Must be `'application/pdf'`. |
|
|
355
|
+
| `exportPdfWithHighCompatibility` | Rasterize complex elements at scene DPI for consistent rendering. Defaults to `true`. |
|
|
356
|
+
| `exportPdfWithUnderlayer` | Generate an underlayer from design contours. Defaults to `false`. |
|
|
357
|
+
| `underlayerSpotColorName` | Spot color name for the underlayer ink. Required when `exportPdfWithUnderlayer` is true. |
|
|
358
|
+
| `underlayerOffset` | Size adjustment in design units. Negative values shrink the underlayer inward. |
|
|
359
|
+
| `targetWidth` | Target output width in pixels. Must be used with `targetHeight`. |
|
|
360
|
+
| `targetHeight` | Target output height in pixels. Must be used with `targetWidth`. |
|
|
361
|
+
| `abortSignal` | Signal to cancel the export operation. |
|
|
362
|
+
|
|
363
|
+
## API Reference
|
|
364
|
+
|
|
365
|
+
| Method | Description |
|
|
366
|
+
| ---------------------------------------------- | ----------------------------------------------------------- |
|
|
367
|
+
| `engine.block.export(blockId, options)` | Export a block as PDF with format and compatibility options |
|
|
368
|
+
| `engine.editor.setSpotColorRGB(name, r, g, b)` | Define a spot color for underlayer ink |
|
|
369
|
+
| `engine.scene.get()` | Get the scene for multi-page PDF export |
|
|
370
|
+
| `engine.scene.getCurrentPage()` | Get the current page for single-page export |
|
|
371
|
+
| `cesdk.actions.run()` | Runs a built-in action like `exportDesign` |
|
|
372
|
+
| `cesdk.actions.register()` | Registers a custom action to override default behavior |
|
|
373
|
+
| `cesdk.utils.downloadFile()` | Triggers browser download dialog for a blob |
|
|
374
|
+
|
|
375
|
+
## Next Steps
|
|
376
|
+
|
|
377
|
+
- [Export Overview](./export-save-publish/export/overview.md) - Compare all supported export formats
|
|
378
|
+
- [Export for Printing](./export-save-publish/for-printing.md) - Print workflows with DPI and color management
|
|
379
|
+
- [Spot Colors](./colors/for-print/spot.md) - Define and use spot colors in designs
|
|
380
|
+
- [Export Size Limits](./export-save-publish/export/size-limits.md) - Check device limits before exporting large designs
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## More Resources
|
|
385
|
+
|
|
386
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
387
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
388
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
389
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,255 @@
|
|
|
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 PNG](./export-save-publish/export/to-png.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Export your designs as PNG images with full transparency support and configurable compression.
|
|
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-png-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-export-save-publish-export-to-png-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-export-save-publish-export-to-png-browser/)
|
|
19
|
+
|
|
20
|
+
PNG (Portable Network Graphics) provides lossless compression with full alpha channel support. It's ideal for web graphics, UI elements, and content requiring crisp edges or transparency.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-export-save-publish-export-to-png-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
|
+
await engine.scene.loadFromURL(
|
|
84
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene'
|
|
85
|
+
);
|
|
86
|
+
const page = engine.scene.getCurrentPage();
|
|
87
|
+
if (!page) throw new Error('No page found');
|
|
88
|
+
await engine.scene.zoomToBlock(page, { padding: 40 });
|
|
89
|
+
|
|
90
|
+
// Setup export functionality
|
|
91
|
+
await this.setupExportActions(cesdk, page);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
private async setupExportActions(
|
|
95
|
+
cesdk: CreativeEditorSDK,
|
|
96
|
+
page: number
|
|
97
|
+
): Promise<void> {
|
|
98
|
+
const engine = cesdk.engine;
|
|
99
|
+
|
|
100
|
+
// Add export button to navigation bar
|
|
101
|
+
cesdk.ui.insertOrderComponent(
|
|
102
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
103
|
+
{
|
|
104
|
+
id: 'ly.img.actions.navigationBar',
|
|
105
|
+
children: [
|
|
106
|
+
{
|
|
107
|
+
id: 'ly.img.action.navigationBar',
|
|
108
|
+
key: 'export-design',
|
|
109
|
+
label: 'Export PNG',
|
|
110
|
+
icon: '@imgly/Save',
|
|
111
|
+
onClick: async () => {
|
|
112
|
+
const blob = await engine.block.export(page, {
|
|
113
|
+
mimeType: 'image/png'
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
await cesdk.utils.downloadFile(blob, 'image/png');
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: 'ly.img.action.navigationBar',
|
|
121
|
+
key: 'export-design',
|
|
122
|
+
label: 'Export PNG (default)',
|
|
123
|
+
icon: '@imgly/Save',
|
|
124
|
+
onClick: () => cesdk.actions.run('exportDesign')
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'ly.img.action.navigationBar',
|
|
128
|
+
key: 'export-design',
|
|
129
|
+
label: 'Export PNG (compressed)',
|
|
130
|
+
icon: '@imgly/Save',
|
|
131
|
+
onClick: async () => {
|
|
132
|
+
// Export with compression
|
|
133
|
+
const compressedBlob = await engine.block.export(page, {
|
|
134
|
+
mimeType: 'image/png',
|
|
135
|
+
pngCompressionLevel: 9
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
await cesdk.utils.downloadFile(compressedBlob, 'image/png');
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: 'ly.img.action.navigationBar',
|
|
143
|
+
key: 'export-design',
|
|
144
|
+
label: 'Export PNG (hd)',
|
|
145
|
+
icon: '@imgly/Save',
|
|
146
|
+
onClick: async () => {
|
|
147
|
+
const hdBlob = await engine.block.export(page, {
|
|
148
|
+
mimeType: 'image/png',
|
|
149
|
+
targetWidth: 1920,
|
|
150
|
+
targetHeight: 1080
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
await cesdk.utils.downloadFile(hdBlob, 'image/png');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export default Example;
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
This guide covers exporting designs to PNG, configuring compression, controlling output dimensions, and using built-in export actions.
|
|
166
|
+
|
|
167
|
+
## Export to PNG
|
|
168
|
+
|
|
169
|
+
Call `engine.block.export()` with `mimeType: 'image/png'` to export any block as a PNG image. The method returns a Blob containing the image data.
|
|
170
|
+
|
|
171
|
+
```typescript highlight=highlight-export-png
|
|
172
|
+
const blob = await engine.block.export(page, {
|
|
173
|
+
mimeType: 'image/png'
|
|
174
|
+
});
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Pass the page ID from `engine.scene.getCurrentPage()` or any block ID to export specific elements.
|
|
178
|
+
|
|
179
|
+
## Export Options
|
|
180
|
+
|
|
181
|
+
PNG export supports several configuration options for compression, dimensions, and text rendering.
|
|
182
|
+
|
|
183
|
+
### Compression Level
|
|
184
|
+
|
|
185
|
+
The `pngCompressionLevel` option (0-9) controls file size vs. encoding speed. Higher values produce smaller files but take longer to encode. PNG compression is lossless, so quality remains unchanged.
|
|
186
|
+
|
|
187
|
+
```typescript highlight=highlight-compression
|
|
188
|
+
const compressedBlob = await engine.block.export(page, {
|
|
189
|
+
mimeType: 'image/png',
|
|
190
|
+
pngCompressionLevel: 9
|
|
191
|
+
});
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
- **0**: No compression, fastest encoding
|
|
195
|
+
- **5**: Balanced (default)
|
|
196
|
+
- **9**: Maximum compression, slowest encoding
|
|
197
|
+
|
|
198
|
+
### Target Dimensions
|
|
199
|
+
|
|
200
|
+
Use `targetWidth` and `targetHeight` together to export at specific dimensions. The block renders large enough to fill the target size while maintaining aspect ratio.
|
|
201
|
+
|
|
202
|
+
```typescript highlight=highlight-target-size
|
|
203
|
+
const hdBlob = await engine.block.export(page, {
|
|
204
|
+
mimeType: 'image/png',
|
|
205
|
+
targetWidth: 1920,
|
|
206
|
+
targetHeight: 1080
|
|
207
|
+
});
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
If the target aspect ratio differs from the block's aspect ratio, the output extends beyond the target on one axis to preserve proportions.
|
|
211
|
+
|
|
212
|
+
### All PNG Export Options
|
|
213
|
+
|
|
214
|
+
| Option | Description |
|
|
215
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
216
|
+
| `mimeType` | Output format. Defaults to `'image/png'`. |
|
|
217
|
+
| `pngCompressionLevel` | Compression level (0-9). Higher values produce smaller files but take longer to encode. Quality is unaffected. Defaults to `5`. |
|
|
218
|
+
| `targetWidth` | Target output width in pixels. Must be used with `targetHeight`. |
|
|
219
|
+
| `targetHeight` | Target output height in pixels. Must be used with `targetWidth`. |
|
|
220
|
+
| `allowTextOverhang` | When `true`, text blocks with glyphs extending beyond their frame export with full glyph bounds visible. Defaults to `false`. |
|
|
221
|
+
| `abortSignal` | Signal to cancel the export operation. |
|
|
222
|
+
|
|
223
|
+
## Built-in Export Action
|
|
224
|
+
|
|
225
|
+
CE.SDK provides a built-in `exportDesign` action that handles export with a progress dialog and automatic download. Trigger it with `cesdk.actions.run()`:
|
|
226
|
+
|
|
227
|
+
```typescript highlight=highlight-builtin-action
|
|
228
|
+
onClick: () => cesdk.actions.run('exportDesign');
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
The built-in action exports the current page as PNG and prompts the user to download the result. Add an export button to the navigation bar to let users trigger this action from the UI.
|
|
232
|
+
|
|
233
|
+
## API Reference
|
|
234
|
+
|
|
235
|
+
| Method | Description |
|
|
236
|
+
| ------------------------------------------ | ----------------------------------------------------- |
|
|
237
|
+
| `engine.block.export(blockId, options)` | Export a block as PNG with format and quality options |
|
|
238
|
+
| `cesdk.actions.run('exportDesign')` | Run the built-in export action with progress dialog |
|
|
239
|
+
| `cesdk.utils.downloadFile(blob, mimeType)` | Download a blob to the user's device |
|
|
240
|
+
|
|
241
|
+
## Next Steps
|
|
242
|
+
|
|
243
|
+
- [Export Overview](./export-save-publish/export/overview.md) - Compare all supported export formats
|
|
244
|
+
- [Export Size Limits](./export-save-publish/export/size-limits.md) - Check device limits before exporting large designs
|
|
245
|
+
- [Export with Color Mask](./export-save-publish/export/with-color-mask.md) - Remove specific colors and generate alpha masks
|
|
246
|
+
- [Partial Export](./export-save-publish/export/partial-export.md) - Export specific blocks or regions
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## More Resources
|
|
251
|
+
|
|
252
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
253
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
254
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
255
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|