@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,616 @@
|
|
|
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) > [Conversion](./conversion.md) > [To PDF](./conversion/to-pdf.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The CE.SDK allows you to convert JPEG, PNG, WebP, BMP and SVG images into PDFs directly in the browser—no server-side processing required. You can perform this conversion programmatically or through the user interface.
|
|
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-conversion-to-pdf-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-conversion-to-pdf-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-conversion-to-pdf-browser/)
|
|
19
|
+
|
|
20
|
+
The CE.SDK supports converting single or multiple images to PDF while allowing transformations such as cropping, rotating, and adding text before exporting. You can also customize PDF output settings, including resolution, compatibility and underlayer.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-conversion-to-pdf-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
|
+
/**
|
|
43
|
+
* CE.SDK Plugin: To PDF Guide
|
|
44
|
+
*
|
|
45
|
+
* This example demonstrates:
|
|
46
|
+
* - Exporting designs as PDF documents
|
|
47
|
+
* - Configuring PDF output settings (DPI, compatibility, underlayer)
|
|
48
|
+
* - Adding a custom PDF export button to the navigation bar
|
|
49
|
+
*/
|
|
50
|
+
class Example implements EditorPlugin {
|
|
51
|
+
name = packageJson.name;
|
|
52
|
+
version = packageJson.version;
|
|
53
|
+
|
|
54
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
55
|
+
if (!cesdk) throw new Error('CE.SDK instance is required');
|
|
56
|
+
|
|
57
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
58
|
+
// Add asset source plugins
|
|
59
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
60
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
61
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
62
|
+
await cesdk.addPlugin(
|
|
63
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
64
|
+
);
|
|
65
|
+
await cesdk.addPlugin(
|
|
66
|
+
new DemoAssetSources({
|
|
67
|
+
include: [
|
|
68
|
+
'ly.img.templates.blank.*',
|
|
69
|
+
'ly.img.templates.presentation.*',
|
|
70
|
+
'ly.img.templates.print.*',
|
|
71
|
+
'ly.img.templates.social.*',
|
|
72
|
+
'ly.img.image.*'
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
);
|
|
76
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
79
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
80
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
81
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
82
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
84
|
+
|
|
85
|
+
const engine = cesdk.engine;
|
|
86
|
+
|
|
87
|
+
// Load a template scene
|
|
88
|
+
await engine.scene.loadFromURL(
|
|
89
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene'
|
|
90
|
+
);
|
|
91
|
+
const page = engine.scene.getCurrentPage()!;
|
|
92
|
+
await engine.scene.zoomToBlock(page);
|
|
93
|
+
|
|
94
|
+
// Add PDF export buttons to the navigation bar
|
|
95
|
+
cesdk.ui.insertOrderComponent(
|
|
96
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
97
|
+
{
|
|
98
|
+
id: 'ly.img.actions.navigationBar',
|
|
99
|
+
children: [
|
|
100
|
+
{
|
|
101
|
+
id: 'ly.img.action.navigationBar',
|
|
102
|
+
key: 'export-pdf',
|
|
103
|
+
label: 'PDF',
|
|
104
|
+
icon: '@imgly/Download',
|
|
105
|
+
onClick: async () => {
|
|
106
|
+
// Export scene as PDF (includes all pages)
|
|
107
|
+
const scene = engine.scene.get()!;
|
|
108
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
109
|
+
mimeType: 'application/pdf'
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// Download using CE.SDK utils
|
|
113
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
114
|
+
|
|
115
|
+
cesdk.ui.showNotification({
|
|
116
|
+
message: 'PDF exported successfully',
|
|
117
|
+
type: 'success'
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'ly.img.action.navigationBar',
|
|
123
|
+
key: 'export-high-compat',
|
|
124
|
+
label: 'High Compat',
|
|
125
|
+
icon: '@imgly/Download',
|
|
126
|
+
onClick: async () => {
|
|
127
|
+
const scene = engine.scene.get()!;
|
|
128
|
+
|
|
129
|
+
// Enable high compatibility mode for consistent rendering across PDF viewers
|
|
130
|
+
// This rasterizes complex elements like gradients with transparency at scene DPI
|
|
131
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
132
|
+
mimeType: 'application/pdf',
|
|
133
|
+
exportPdfWithHighCompatibility: true
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
137
|
+
cesdk.ui.showNotification({
|
|
138
|
+
message: 'High compatibility PDF exported',
|
|
139
|
+
type: 'success'
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: 'ly.img.action.navigationBar',
|
|
145
|
+
key: 'export-underlayer',
|
|
146
|
+
label: 'Underlayer',
|
|
147
|
+
icon: '@imgly/Download',
|
|
148
|
+
onClick: async () => {
|
|
149
|
+
const scene = engine.scene.get()!;
|
|
150
|
+
|
|
151
|
+
// Define the underlayer spot color before export
|
|
152
|
+
// RGB values (0.8, 0.8, 0.8) provide a preview representation
|
|
153
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
154
|
+
|
|
155
|
+
// Export with underlayer for special media printing
|
|
156
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
157
|
+
mimeType: 'application/pdf',
|
|
158
|
+
exportPdfWithHighCompatibility: true,
|
|
159
|
+
exportPdfWithUnderlayer: true,
|
|
160
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
161
|
+
// Negative offset shrinks underlayer to prevent visible edges
|
|
162
|
+
underlayerOffset: -2.0
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
166
|
+
cesdk.ui.showNotification({
|
|
167
|
+
message: 'PDF with underlayer exported',
|
|
168
|
+
type: 'success'
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: 'ly.img.action.navigationBar',
|
|
174
|
+
key: 'export-dpi',
|
|
175
|
+
label: 'Custom DPI',
|
|
176
|
+
icon: '@imgly/Download',
|
|
177
|
+
onClick: async () => {
|
|
178
|
+
const scene = engine.scene.get()!;
|
|
179
|
+
|
|
180
|
+
// Adjust the scene DPI for print-ready output
|
|
181
|
+
// Higher DPI = better quality but larger file size
|
|
182
|
+
engine.block.setFloat(scene, 'scene/dpi', 150);
|
|
183
|
+
|
|
184
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
185
|
+
mimeType: 'application/pdf'
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
189
|
+
cesdk.ui.showNotification({
|
|
190
|
+
message: 'PDF exported at 150 DPI',
|
|
191
|
+
type: 'success'
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export default Example;
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
This guide covers exporting designs as PDF documents, configuring output settings like DPI and compatibility, adding underlayers for specialty printing, and integrating PDF export into the user interface.
|
|
205
|
+
|
|
206
|
+
## Convert to PDF Programmatically
|
|
207
|
+
|
|
208
|
+
You can use the CE.SDK to load an image, apply basic edits, and export it as a PDF programmatically. The following examples demonstrate how to convert a single image and how to merge multiple images into a single PDF.
|
|
209
|
+
|
|
210
|
+
### Convert a Single Image to PDF
|
|
211
|
+
|
|
212
|
+
The example below loads an image, applies transformations, and exports it as a PDF.
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
// Prepare an image URL
|
|
216
|
+
const imageURL = 'https://img.ly/static/ubq_samples/sample_4.jpg';
|
|
217
|
+
|
|
218
|
+
// Create a new scene by loading the image immediately
|
|
219
|
+
await cesdk.createFromImage(imageURL);
|
|
220
|
+
|
|
221
|
+
// Find the automatically added graphic block with an image fill
|
|
222
|
+
const block = engine.block.findByType('graphic')[0];
|
|
223
|
+
|
|
224
|
+
// Apply crop with a scale ratio of 2.0
|
|
225
|
+
engine.block.setCropScaleRatio(block, 2.0);
|
|
226
|
+
|
|
227
|
+
// Export as PDF Blob
|
|
228
|
+
const page = engine.scene.getCurrentPage()!;
|
|
229
|
+
const blob = await engine.block.export(page, { mimeType: 'application/pdf' });
|
|
230
|
+
// You can now save it or display it in your application
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Combine Multiple Images into a Single PDF
|
|
234
|
+
|
|
235
|
+
The example below demonstrates how to merge multiple images into a single PDF document.
|
|
236
|
+
|
|
237
|
+
```ts
|
|
238
|
+
// Prepare image URLs
|
|
239
|
+
const images = [
|
|
240
|
+
'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
241
|
+
'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
242
|
+
'https://img.ly/static/ubq_samples/sample_3.jpg'
|
|
243
|
+
];
|
|
244
|
+
|
|
245
|
+
// Create an empty scene with a 'VerticalStack' layout
|
|
246
|
+
const scene = engine.scene.create('VerticalStack');
|
|
247
|
+
const [stack] = engine.block.findByType('stack');
|
|
248
|
+
|
|
249
|
+
// Load all images as pages
|
|
250
|
+
for (const image of images) {
|
|
251
|
+
// Append the new page to the stack
|
|
252
|
+
const page = engine.block.create('page');
|
|
253
|
+
engine.block.appendChild(stack, page);
|
|
254
|
+
// Set the image as the fill of the page
|
|
255
|
+
const imageFill = engine.block.createFill('image');
|
|
256
|
+
engine.block.setString(imageFill, 'fill/image/imageFileURI', image);
|
|
257
|
+
engine.block.setFill(page, imageFill);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Export all images as a single PDF blob
|
|
261
|
+
const blob = await engine.block.export(scene, { mimeType: 'application/pdf' });
|
|
262
|
+
// You can now save it or display it in your application
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Export a Page as PDF
|
|
266
|
+
|
|
267
|
+
Use `engine.block.export()` to export a design block as a PDF. The method accepts a block ID and export options including the MIME type.
|
|
268
|
+
|
|
269
|
+
```typescript highlight=highlight-export-pdf
|
|
270
|
+
// Export scene as PDF (includes all pages)
|
|
271
|
+
const scene = engine.scene.get()!;
|
|
272
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
273
|
+
mimeType: 'application/pdf'
|
|
274
|
+
});
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Export returns a Blob containing the PDF data. You can export a single page for a single-page PDF, or export the entire scene to include all pages in a multi-page PDF document.
|
|
278
|
+
|
|
279
|
+
## Download the PDF
|
|
280
|
+
|
|
281
|
+
Use `cesdk.utils.downloadFile()` to save the exported PDF to the user's device.
|
|
282
|
+
|
|
283
|
+
```typescript highlight=highlight-download
|
|
284
|
+
// Download using CE.SDK utils
|
|
285
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
The utility handles creating a download link and triggering the browser's save dialog with the appropriate file extension.
|
|
289
|
+
|
|
290
|
+
## PDF Conversion via the User Interface
|
|
291
|
+
|
|
292
|
+
The CE.SDK allows you to enable PDF conversion directly from the user interface. You can customize the UI to include a "Convert to PDF" button, allowing users to trigger conversion to PDF after they [upload images](./insert-media/images.md) and perform any edits or adjustments.
|
|
293
|
+
|
|
294
|
+
### Add a PDF Export Button
|
|
295
|
+
|
|
296
|
+
Integrate PDF export into the CE.SDK interface by adding a custom button to the navigation bar.
|
|
297
|
+
|
|
298
|
+
```typescript highlight=highlight-export-button
|
|
299
|
+
// Add PDF export buttons to the navigation bar
|
|
300
|
+
cesdk.ui.insertOrderComponent(
|
|
301
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
302
|
+
{
|
|
303
|
+
id: 'ly.img.actions.navigationBar',
|
|
304
|
+
children: [
|
|
305
|
+
{
|
|
306
|
+
id: 'ly.img.action.navigationBar',
|
|
307
|
+
key: 'export-pdf',
|
|
308
|
+
label: 'PDF',
|
|
309
|
+
icon: '@imgly/Download',
|
|
310
|
+
onClick: async () => {
|
|
311
|
+
// Export scene as PDF (includes all pages)
|
|
312
|
+
const scene = engine.scene.get()!;
|
|
313
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
314
|
+
mimeType: 'application/pdf'
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
// Download using CE.SDK utils
|
|
318
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
319
|
+
|
|
320
|
+
cesdk.ui.showNotification({
|
|
321
|
+
message: 'PDF exported successfully',
|
|
322
|
+
type: 'success'
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
id: 'ly.img.action.navigationBar',
|
|
328
|
+
key: 'export-high-compat',
|
|
329
|
+
label: 'High Compat',
|
|
330
|
+
icon: '@imgly/Download',
|
|
331
|
+
onClick: async () => {
|
|
332
|
+
const scene = engine.scene.get()!;
|
|
333
|
+
|
|
334
|
+
// Enable high compatibility mode for consistent rendering across PDF viewers
|
|
335
|
+
// This rasterizes complex elements like gradients with transparency at scene DPI
|
|
336
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
337
|
+
mimeType: 'application/pdf',
|
|
338
|
+
exportPdfWithHighCompatibility: true
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
342
|
+
cesdk.ui.showNotification({
|
|
343
|
+
message: 'High compatibility PDF exported',
|
|
344
|
+
type: 'success'
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
id: 'ly.img.action.navigationBar',
|
|
350
|
+
key: 'export-underlayer',
|
|
351
|
+
label: 'Underlayer',
|
|
352
|
+
icon: '@imgly/Download',
|
|
353
|
+
onClick: async () => {
|
|
354
|
+
const scene = engine.scene.get()!;
|
|
355
|
+
|
|
356
|
+
// Define the underlayer spot color before export
|
|
357
|
+
// RGB values (0.8, 0.8, 0.8) provide a preview representation
|
|
358
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
359
|
+
|
|
360
|
+
// Export with underlayer for special media printing
|
|
361
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
362
|
+
mimeType: 'application/pdf',
|
|
363
|
+
exportPdfWithHighCompatibility: true,
|
|
364
|
+
exportPdfWithUnderlayer: true,
|
|
365
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
366
|
+
// Negative offset shrinks underlayer to prevent visible edges
|
|
367
|
+
underlayerOffset: -2.0
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
371
|
+
cesdk.ui.showNotification({
|
|
372
|
+
message: 'PDF with underlayer exported',
|
|
373
|
+
type: 'success'
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
id: 'ly.img.action.navigationBar',
|
|
379
|
+
key: 'export-dpi',
|
|
380
|
+
label: 'Custom DPI',
|
|
381
|
+
icon: '@imgly/Download',
|
|
382
|
+
onClick: async () => {
|
|
383
|
+
const scene = engine.scene.get()!;
|
|
384
|
+
|
|
385
|
+
// Adjust the scene DPI for print-ready output
|
|
386
|
+
// Higher DPI = better quality but larger file size
|
|
387
|
+
engine.block.setFloat(scene, 'scene/dpi', 150);
|
|
388
|
+
|
|
389
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
390
|
+
mimeType: 'application/pdf'
|
|
391
|
+
});
|
|
392
|
+
|
|
393
|
+
await cesdk.utils.downloadFile(pdfBlob, 'application/pdf');
|
|
394
|
+
cesdk.ui.showNotification({
|
|
395
|
+
message: 'PDF exported at 150 DPI',
|
|
396
|
+
type: 'success'
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
]
|
|
401
|
+
}
|
|
402
|
+
);
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
The button triggers the export workflow when clicked, providing users with a convenient way to download their designs as PDF documents.
|
|
406
|
+
|
|
407
|
+
### Alternative: Register a Custom Component
|
|
408
|
+
|
|
409
|
+
You can also use `ui.registerComponent` to create a more customized button with full control over styling and behavior.
|
|
410
|
+
|
|
411
|
+
```ts
|
|
412
|
+
// Register a custom button component
|
|
413
|
+
cesdk.ui.registerComponent('convert.nav', ({ builder: { Button }, engine }) => {
|
|
414
|
+
Button('convert-to-pdf', {
|
|
415
|
+
label: 'Convert To PDF',
|
|
416
|
+
icon: '@imgly/Download',
|
|
417
|
+
color: 'accent',
|
|
418
|
+
onClick: async () => {
|
|
419
|
+
// Export the current scene as a PDF blob
|
|
420
|
+
const scene = engine.scene.get()!;
|
|
421
|
+
const blob = await engine.block.export(scene, {
|
|
422
|
+
mimeType: 'application/pdf'
|
|
423
|
+
});
|
|
424
|
+
// Trigger download of the PDF blob
|
|
425
|
+
const element = document.createElement('a');
|
|
426
|
+
element.setAttribute('href', window.URL.createObjectURL(blob));
|
|
427
|
+
element.setAttribute('download', 'converted.pdf');
|
|
428
|
+
element.style.display = 'none';
|
|
429
|
+
element.click();
|
|
430
|
+
element.remove();
|
|
431
|
+
}
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
// Add the custom button at the end of the navigation bar
|
|
436
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
|
|
437
|
+
...cesdk.ui.getComponentOrder({ in: 'ly.img.navigation.bar' }),
|
|
438
|
+
'convert.nav'
|
|
439
|
+
]);
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
For more details on customizing the UI, see the [User Interface Configuration Guide](./user-interface/customization.md).
|
|
443
|
+
|
|
444
|
+
## Configure PDF Output Settings
|
|
445
|
+
|
|
446
|
+
The SDK provides various options for customizing PDF exports. You can control resolution, compatibility, and underlayer settings.
|
|
447
|
+
|
|
448
|
+
### Available PDF Output Settings
|
|
449
|
+
|
|
450
|
+
- **Resolution:** Adjust the DPI (dots per inch) to create print-ready PDFs with the desired level of detail.
|
|
451
|
+
- **Page Size:** Define custom dimensions in pixels for the output PDF. If specified, the block will scale to fully cover the target size while maintaining its aspect ratio.
|
|
452
|
+
- **Compatibility:** Enable this setting to improve compatibility with various PDF viewers. When enabled, images and effects are rasterized based on the scene's DPI instead of being embedded as vector elements.
|
|
453
|
+
- **Underlayer:** Add an underlayer beneath the image content to optimize printing on non-white or specialty media (e.g., fabric, glass). The ink type is defined in `ExportOptions` using a spot color. You can also apply a positive or negative offset, in design units, to adjust the underlayer's scale.
|
|
454
|
+
|
|
455
|
+
### Adjust DPI for Print Quality
|
|
456
|
+
|
|
457
|
+
Control the output resolution by setting the scene's DPI property before export.
|
|
458
|
+
|
|
459
|
+
```typescript highlight=highlight-dpi
|
|
460
|
+
// Adjust the scene DPI for print-ready output
|
|
461
|
+
// Higher DPI = better quality but larger file size
|
|
462
|
+
engine.block.setFloat(scene, 'scene/dpi', 150);
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Higher DPI values produce better quality output but result in larger file sizes. The default is 300 DPI, which is suitable for most print applications.
|
|
466
|
+
|
|
467
|
+
### Enable High Compatibility Mode
|
|
468
|
+
|
|
469
|
+
Enable high compatibility mode for consistent rendering across different PDF viewers.
|
|
470
|
+
|
|
471
|
+
```typescript highlight=highlight-high-compatibility
|
|
472
|
+
// Enable high compatibility mode for consistent rendering across PDF viewers
|
|
473
|
+
// This rasterizes complex elements like gradients with transparency at scene DPI
|
|
474
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
475
|
+
mimeType: 'application/pdf',
|
|
476
|
+
exportPdfWithHighCompatibility: true
|
|
477
|
+
});
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
When enabled, complex elements like gradients with transparency are rasterized at the scene's DPI setting instead of being embedded as native PDF objects. This ensures consistent appearance in viewers like Safari and macOS Preview but increases file size.
|
|
481
|
+
|
|
482
|
+
### PDF Performance Optimization
|
|
483
|
+
|
|
484
|
+
The `exportPdfWithHighCompatibility` flag significantly impacts PDF export performance, especially for high-DPI content:
|
|
485
|
+
|
|
486
|
+
**When `true` (default - safer but slower):**
|
|
487
|
+
|
|
488
|
+
- Rasterizes images and gradients at the scene's DPI setting
|
|
489
|
+
- Maximum compatibility with all PDF viewers including Safari and macOS Preview
|
|
490
|
+
- Slower performance (4-10x slower for high-DPI content)
|
|
491
|
+
- Larger file sizes
|
|
492
|
+
|
|
493
|
+
**When `false` (faster but needs testing):**
|
|
494
|
+
|
|
495
|
+
- Embeds images and gradients directly as native PDF objects
|
|
496
|
+
- 6-15x faster export performance for high-DPI content
|
|
497
|
+
- Smaller file sizes (typically 30-40% reduction)
|
|
498
|
+
- May have rendering issues in Safari/macOS Preview with gradients that use transparency
|
|
499
|
+
|
|
500
|
+
```typescript
|
|
501
|
+
const scene = engine.scene.get()!;
|
|
502
|
+
|
|
503
|
+
// For maximum performance (test with your print workflow first)
|
|
504
|
+
engine.block.setFloat(scene, 'scene/dpi', 150); // Reduce from default 300
|
|
505
|
+
const blob = await engine.block.export(scene, {
|
|
506
|
+
mimeType: 'application/pdf',
|
|
507
|
+
exportPdfWithHighCompatibility: false // Much faster
|
|
508
|
+
});
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
**Before using `exportPdfWithHighCompatibility: false` in production:**
|
|
512
|
+
|
|
513
|
+
- Test generated PDFs with your actual print vendor/equipment
|
|
514
|
+
- Verify rendering in Safari and macOS Preview if end-users will view PDFs in those applications
|
|
515
|
+
- Check that gradients with transparency render correctly
|
|
516
|
+
- Confirm your content renders properly in Adobe Acrobat and Chrome (these typically work fine)
|
|
517
|
+
|
|
518
|
+
**Safe to use `false` when:**
|
|
519
|
+
|
|
520
|
+
- PDFs go directly to professional printing (not viewed in Safari/Preview)
|
|
521
|
+
- Content is primarily photos and solid colors (minimal gradients with transparency)
|
|
522
|
+
- Performance is critical for batch processing workflows
|
|
523
|
+
|
|
524
|
+
**Keep `true` when:**
|
|
525
|
+
|
|
526
|
+
- Users view PDFs in Safari or macOS Preview
|
|
527
|
+
- Maximum compatibility is required
|
|
528
|
+
- Content has complex gradients with transparency
|
|
529
|
+
- You cannot test with your print workflow before production
|
|
530
|
+
|
|
531
|
+
### Add an Underlayer for Specialty Printing
|
|
532
|
+
|
|
533
|
+
Add an underlayer for printing on non-white or transparent media like fabric or glass.
|
|
534
|
+
|
|
535
|
+
```typescript highlight=highlight-spot-color
|
|
536
|
+
// Define the underlayer spot color before export
|
|
537
|
+
// RGB values (0.8, 0.8, 0.8) provide a preview representation
|
|
538
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
First define the spot color that will be used for the underlayer. The RGB values provide a preview representation in the editor.
|
|
542
|
+
|
|
543
|
+
```typescript highlight=highlight-underlayer
|
|
544
|
+
// Export with underlayer for special media printing
|
|
545
|
+
const pdfBlob = await engine.block.export(scene, {
|
|
546
|
+
mimeType: 'application/pdf',
|
|
547
|
+
exportPdfWithHighCompatibility: true,
|
|
548
|
+
exportPdfWithUnderlayer: true,
|
|
549
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
550
|
+
// Negative offset shrinks underlayer to prevent visible edges
|
|
551
|
+
underlayerOffset: -2.0
|
|
552
|
+
});
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
The underlayer creates a solid background behind your design content. The negative offset shrinks the underlayer slightly to prevent visible edges around the printed output.
|
|
556
|
+
|
|
557
|
+
### Customizing PDF Output
|
|
558
|
+
|
|
559
|
+
You can configure all PDF settings together when exporting.
|
|
560
|
+
|
|
561
|
+
```ts
|
|
562
|
+
const scene = engine.scene.get()!;
|
|
563
|
+
|
|
564
|
+
// Adjust the DPI to 72
|
|
565
|
+
engine.block.setFloat(scene, 'scene/dpi', 72);
|
|
566
|
+
|
|
567
|
+
// Set spot color to be used as underlayer
|
|
568
|
+
engine.editor.setSpotColorRGB('RDG_WHITE', 0.8, 0.8, 0.8);
|
|
569
|
+
|
|
570
|
+
const blob = await engine.block.export(scene, {
|
|
571
|
+
mimeType: 'application/pdf',
|
|
572
|
+
// Set target width and height in pixels
|
|
573
|
+
targetWidth: 800,
|
|
574
|
+
targetHeight: 600,
|
|
575
|
+
// Increase compatibility with different PDF viewers
|
|
576
|
+
exportPdfWithHighCompatibility: true,
|
|
577
|
+
// Add an underlayer beneath the image content
|
|
578
|
+
exportPdfWithUnderlayer: true,
|
|
579
|
+
underlayerSpotColorName: 'RDG_WHITE',
|
|
580
|
+
underlayerOffset: -2.0
|
|
581
|
+
});
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
## Troubleshooting
|
|
585
|
+
|
|
586
|
+
**PDF file size too large** — Reduce the scene DPI or disable high compatibility mode. Use JPEG compression for embedded images where quality loss is acceptable.
|
|
587
|
+
|
|
588
|
+
**Gradients look different in some viewers** — Enable `exportPdfWithHighCompatibility` to rasterize gradients at the scene's DPI setting for consistent appearance across all PDF viewers.
|
|
589
|
+
|
|
590
|
+
**Underlayer not visible in print** — Verify the spot color name matches your print vendor's configuration exactly. Check that the PDF wasn't flattened during post-processing.
|
|
591
|
+
|
|
592
|
+
## API Reference
|
|
593
|
+
|
|
594
|
+
| Method | Description |
|
|
595
|
+
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
596
|
+
| `engine.block.export(block, options)` | Export a block to a Blob with format options (`mimeType`, `exportPdfWithHighCompatibility`, `exportPdfWithUnderlayer`, `underlayerSpotColorName`, `underlayerOffset`, `targetWidth`, `targetHeight`) |
|
|
597
|
+
| `engine.block.setFloat(block, property, value)` | Set a float property on a block (use `scene/dpi` to control PDF resolution) |
|
|
598
|
+
| `engine.editor.setSpotColorRGB(name, r, g, b)` | Define a spot color for underlayer printing |
|
|
599
|
+
| `engine.scene.get()` | Get the current scene block ID |
|
|
600
|
+
| `engine.scene.getCurrentPage()` | Get the currently active page block |
|
|
601
|
+
| `cesdk.utils.downloadFile(blob, mimeType)` | Download a Blob as a file |
|
|
602
|
+
|
|
603
|
+
## Next Steps
|
|
604
|
+
|
|
605
|
+
- [Export Options](./export-save-publish/export/overview.md) — Explore all available export formats and configuration
|
|
606
|
+
- [Size Limits](./export-save-publish/export/size-limits.md) — Handle large exports and memory constraints
|
|
607
|
+
- [Export for Printing](./export-save-publish/for-printing.md) — Learn more about print-specific export settings
|
|
608
|
+
|
|
609
|
+
---
|
|
610
|
+
|
|
611
|
+
## More Resources
|
|
612
|
+
|
|
613
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
614
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
615
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
616
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|