@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,443 @@
|
|
|
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:** [Concepts](./concepts.md) > [Scenes](./concepts/scenes.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Scenes are the root container for all designs in CE.SDK. They hold pages,
|
|
8
|
+
blocks, and the camera that controls what you see in the canvas—and the engine
|
|
9
|
+
manages only one active scene at a time.
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
> **Reading time:** 10 minutes
|
|
14
|
+
>
|
|
15
|
+
> **Resources:**
|
|
16
|
+
>
|
|
17
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
18
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-concepts-scenes-browser)
|
|
19
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-concepts-scenes-browser)
|
|
20
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-concepts-scenes-browser/)
|
|
21
|
+
|
|
22
|
+
Every design you create starts with a scene. Scenes contain pages, and pages contain the visible design elements—text, images, shapes, and other blocks. Understanding how scenes work is essential for building, saving, and restoring user designs.
|
|
23
|
+
|
|
24
|
+
```typescript file=@cesdk_web_examples/guides-concepts-scenes-browser/browser.ts reference-only
|
|
25
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
26
|
+
|
|
27
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
28
|
+
import packageJson from './package.json';
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* CE.SDK Plugin: Scenes Guide
|
|
32
|
+
*
|
|
33
|
+
* Demonstrates the complete scene lifecycle in CE.SDK:
|
|
34
|
+
* - Creating scenes with different layouts
|
|
35
|
+
* - Managing pages within scenes
|
|
36
|
+
* - Configuring scene properties
|
|
37
|
+
* - Saving and loading scenes
|
|
38
|
+
* - Camera control and zoom
|
|
39
|
+
*/
|
|
40
|
+
class Example implements EditorPlugin {
|
|
41
|
+
name = packageJson.name;
|
|
42
|
+
|
|
43
|
+
version = packageJson.version;
|
|
44
|
+
|
|
45
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
46
|
+
if (!cesdk) {
|
|
47
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
51
|
+
const engine = cesdk.engine;
|
|
52
|
+
|
|
53
|
+
// Create a new design scene with VerticalStack layout
|
|
54
|
+
// The layout controls how pages are arranged in the canvas
|
|
55
|
+
engine.scene.create('VerticalStack');
|
|
56
|
+
|
|
57
|
+
// Get the stack container and add spacing between pages
|
|
58
|
+
const stack = engine.block.findByType('stack')[0];
|
|
59
|
+
engine.block.setFloat(stack, 'stack/spacing', 20);
|
|
60
|
+
engine.block.setBool(stack, 'stack/spacingInScreenspace', true);
|
|
61
|
+
|
|
62
|
+
// Create the first page
|
|
63
|
+
const page1 = engine.block.create('page');
|
|
64
|
+
engine.block.setWidth(page1, 800);
|
|
65
|
+
engine.block.setHeight(page1, 600);
|
|
66
|
+
engine.block.appendChild(stack, page1);
|
|
67
|
+
|
|
68
|
+
// Create a second page
|
|
69
|
+
const page2 = engine.block.create('page');
|
|
70
|
+
engine.block.setWidth(page2, 800);
|
|
71
|
+
engine.block.setHeight(page2, 600);
|
|
72
|
+
engine.block.appendChild(stack, page2);
|
|
73
|
+
|
|
74
|
+
// Add a shape to the first page
|
|
75
|
+
const graphic1 = engine.block.create('graphic');
|
|
76
|
+
engine.block.setShape(graphic1, engine.block.createShape('rect'));
|
|
77
|
+
const fill1 = engine.block.createFill('color');
|
|
78
|
+
engine.block.setColor(fill1, 'fill/color/value', {
|
|
79
|
+
r: 0.2,
|
|
80
|
+
g: 0.4,
|
|
81
|
+
b: 0.9,
|
|
82
|
+
a: 1
|
|
83
|
+
});
|
|
84
|
+
engine.block.setFill(graphic1, fill1);
|
|
85
|
+
engine.block.setWidth(graphic1, 400);
|
|
86
|
+
engine.block.setHeight(graphic1, 300);
|
|
87
|
+
engine.block.setPositionX(graphic1, 200);
|
|
88
|
+
engine.block.setPositionY(graphic1, 150);
|
|
89
|
+
engine.block.appendChild(page1, graphic1);
|
|
90
|
+
|
|
91
|
+
// Add a different shape to the second page
|
|
92
|
+
const graphic2 = engine.block.create('graphic');
|
|
93
|
+
engine.block.setShape(graphic2, engine.block.createShape('ellipse'));
|
|
94
|
+
const fill2 = engine.block.createFill('color');
|
|
95
|
+
engine.block.setColor(fill2, 'fill/color/value', {
|
|
96
|
+
r: 0.9,
|
|
97
|
+
g: 0.3,
|
|
98
|
+
b: 0.2,
|
|
99
|
+
a: 1
|
|
100
|
+
});
|
|
101
|
+
engine.block.setFill(graphic2, fill2);
|
|
102
|
+
engine.block.setWidth(graphic2, 350);
|
|
103
|
+
engine.block.setHeight(graphic2, 350);
|
|
104
|
+
engine.block.setPositionX(graphic2, 225);
|
|
105
|
+
engine.block.setPositionY(graphic2, 125);
|
|
106
|
+
engine.block.appendChild(page2, graphic2);
|
|
107
|
+
|
|
108
|
+
// Query scene properties
|
|
109
|
+
const currentUnit = engine.scene.getDesignUnit();
|
|
110
|
+
// eslint-disable-next-line no-console
|
|
111
|
+
console.log('Scene design unit:', currentUnit);
|
|
112
|
+
|
|
113
|
+
// Get the scene layout
|
|
114
|
+
const layout = engine.scene.getLayout();
|
|
115
|
+
// eslint-disable-next-line no-console
|
|
116
|
+
console.log('Scene layout:', layout);
|
|
117
|
+
|
|
118
|
+
// Access pages within the scene
|
|
119
|
+
const pages = engine.scene.getPages();
|
|
120
|
+
// eslint-disable-next-line no-console
|
|
121
|
+
console.log('Number of pages:', pages.length);
|
|
122
|
+
|
|
123
|
+
// Get the current page (nearest to viewport center)
|
|
124
|
+
const currentPage = engine.scene.getCurrentPage();
|
|
125
|
+
// eslint-disable-next-line no-console
|
|
126
|
+
console.log('Current page ID:', currentPage);
|
|
127
|
+
|
|
128
|
+
// Zoom to show all pages in the scene
|
|
129
|
+
const scene = engine.scene.get();
|
|
130
|
+
if (scene) {
|
|
131
|
+
await engine.scene.zoomToBlock(scene, { padding: 50 });
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Get the current zoom level
|
|
135
|
+
const zoomLevel = engine.scene.getZoomLevel();
|
|
136
|
+
// eslint-disable-next-line no-console
|
|
137
|
+
console.log('Current zoom level:', zoomLevel);
|
|
138
|
+
|
|
139
|
+
// Save the scene to a string for persistence
|
|
140
|
+
const sceneString = await engine.scene.saveToString();
|
|
141
|
+
// eslint-disable-next-line no-console
|
|
142
|
+
console.log('Scene saved successfully. String length:', sceneString.length);
|
|
143
|
+
|
|
144
|
+
// Demonstrate loading the scene from the saved string
|
|
145
|
+
// This replaces the current scene with the saved version
|
|
146
|
+
await engine.scene.loadFromString(sceneString);
|
|
147
|
+
// eslint-disable-next-line no-console
|
|
148
|
+
console.log('Scene loaded from saved string');
|
|
149
|
+
|
|
150
|
+
// Zoom to show all loaded pages
|
|
151
|
+
const loadedScene = engine.scene.get();
|
|
152
|
+
if (loadedScene) {
|
|
153
|
+
await engine.scene.zoomToBlock(loadedScene, { padding: 50 });
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// eslint-disable-next-line no-console
|
|
157
|
+
console.log('Scenes guide initialized successfully.');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export default Example;
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
This guide covers how to create scenes from scratch, manage pages within scenes, configure scene properties, save and load designs, and control the camera's zoom and position.
|
|
165
|
+
|
|
166
|
+
## Scene Hierarchy
|
|
167
|
+
|
|
168
|
+
Scenes form the root of CE.SDK's design structure. The hierarchy works as follows:
|
|
169
|
+
|
|
170
|
+
- **Scene** — The root container holding all design content
|
|
171
|
+
- **Pages** — Direct children of scenes, arranged according to the scene's layout
|
|
172
|
+
- **Blocks** — Design elements (text, images, shapes) that belong to pages
|
|
173
|
+
|
|
174
|
+
Only blocks attached to pages within the active scene are rendered in the canvas. Use `engine.scene.get()` to retrieve the current scene and `engine.scene.getPages()` to access its pages.
|
|
175
|
+
|
|
176
|
+
## Creating Scenes
|
|
177
|
+
|
|
178
|
+
### Creating an Empty Scene
|
|
179
|
+
|
|
180
|
+
Use `engine.scene.create()` to create a new design scene with a configurable page layout. The layout parameter controls how pages are arranged in the canvas.
|
|
181
|
+
|
|
182
|
+
```typescript highlight-create-scene
|
|
183
|
+
// Create a new design scene with VerticalStack layout
|
|
184
|
+
// The layout controls how pages are arranged in the canvas
|
|
185
|
+
engine.scene.create('VerticalStack');
|
|
186
|
+
|
|
187
|
+
// Get the stack container and add spacing between pages
|
|
188
|
+
const stack = engine.block.findByType('stack')[0];
|
|
189
|
+
engine.block.setFloat(stack, 'stack/spacing', 20);
|
|
190
|
+
engine.block.setBool(stack, 'stack/spacingInScreenspace', true);
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Available layouts include:
|
|
194
|
+
|
|
195
|
+
- `VerticalStack` — Pages stacked vertically
|
|
196
|
+
- `HorizontalStack` — Pages arranged horizontally
|
|
197
|
+
- `DepthStack` — Pages layered on top of each other
|
|
198
|
+
- `Free` — Manual positioning
|
|
199
|
+
|
|
200
|
+
### Adding Pages
|
|
201
|
+
|
|
202
|
+
After creating a scene, add pages using `engine.block.create('page')`. Configure the page dimensions and append it to the scene's stack container.
|
|
203
|
+
|
|
204
|
+
```typescript highlight-create-page
|
|
205
|
+
// Create the first page
|
|
206
|
+
const page1 = engine.block.create('page');
|
|
207
|
+
engine.block.setWidth(page1, 800);
|
|
208
|
+
engine.block.setHeight(page1, 600);
|
|
209
|
+
engine.block.appendChild(stack, page1);
|
|
210
|
+
|
|
211
|
+
// Create a second page
|
|
212
|
+
const page2 = engine.block.create('page');
|
|
213
|
+
engine.block.setWidth(page2, 800);
|
|
214
|
+
engine.block.setHeight(page2, 600);
|
|
215
|
+
engine.block.appendChild(stack, page2);
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Adding Blocks
|
|
219
|
+
|
|
220
|
+
With pages in place, add design elements like shapes, text, or images. Create a graphic block, configure its shape and fill, then append it to a page.
|
|
221
|
+
|
|
222
|
+
```typescript highlight-create-block
|
|
223
|
+
// Add a shape to the first page
|
|
224
|
+
const graphic1 = engine.block.create('graphic');
|
|
225
|
+
engine.block.setShape(graphic1, engine.block.createShape('rect'));
|
|
226
|
+
const fill1 = engine.block.createFill('color');
|
|
227
|
+
engine.block.setColor(fill1, 'fill/color/value', {
|
|
228
|
+
r: 0.2,
|
|
229
|
+
g: 0.4,
|
|
230
|
+
b: 0.9,
|
|
231
|
+
a: 1
|
|
232
|
+
});
|
|
233
|
+
engine.block.setFill(graphic1, fill1);
|
|
234
|
+
engine.block.setWidth(graphic1, 400);
|
|
235
|
+
engine.block.setHeight(graphic1, 300);
|
|
236
|
+
engine.block.setPositionX(graphic1, 200);
|
|
237
|
+
engine.block.setPositionY(graphic1, 150);
|
|
238
|
+
engine.block.appendChild(page1, graphic1);
|
|
239
|
+
|
|
240
|
+
// Add a different shape to the second page
|
|
241
|
+
const graphic2 = engine.block.create('graphic');
|
|
242
|
+
engine.block.setShape(graphic2, engine.block.createShape('ellipse'));
|
|
243
|
+
const fill2 = engine.block.createFill('color');
|
|
244
|
+
engine.block.setColor(fill2, 'fill/color/value', {
|
|
245
|
+
r: 0.9,
|
|
246
|
+
g: 0.3,
|
|
247
|
+
b: 0.2,
|
|
248
|
+
a: 1
|
|
249
|
+
});
|
|
250
|
+
engine.block.setFill(graphic2, fill2);
|
|
251
|
+
engine.block.setWidth(graphic2, 350);
|
|
252
|
+
engine.block.setHeight(graphic2, 350);
|
|
253
|
+
engine.block.setPositionX(graphic2, 225);
|
|
254
|
+
engine.block.setPositionY(graphic2, 125);
|
|
255
|
+
engine.block.appendChild(page2, graphic2);
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
## Scene Properties
|
|
259
|
+
|
|
260
|
+
### Design Units
|
|
261
|
+
|
|
262
|
+
Query or configure how measurements are interpreted using `engine.scene.getDesignUnit()` and `engine.scene.setDesignUnit()`. This is useful for print workflows where precise physical dimensions matter.
|
|
263
|
+
|
|
264
|
+
```typescript highlight-scene-properties
|
|
265
|
+
// Query scene properties
|
|
266
|
+
const currentUnit = engine.scene.getDesignUnit();
|
|
267
|
+
// eslint-disable-next-line no-console
|
|
268
|
+
console.log('Scene design unit:', currentUnit);
|
|
269
|
+
|
|
270
|
+
// Get the scene layout
|
|
271
|
+
const layout = engine.scene.getLayout();
|
|
272
|
+
// eslint-disable-next-line no-console
|
|
273
|
+
console.log('Scene layout:', layout);
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Supported units are `'Pixel'`, `'Millimeter'`, and `'Inch'`. For more details, see the [Design Units](./concepts/design-units.md) guide.
|
|
277
|
+
|
|
278
|
+
### Scene Layout
|
|
279
|
+
|
|
280
|
+
Control how pages are arranged using `engine.scene.getLayout()` and `engine.scene.setLayout()`. The layout affects how users navigate between pages in multi-page designs.
|
|
281
|
+
|
|
282
|
+
## Page Navigation
|
|
283
|
+
|
|
284
|
+
Access pages within your scene using these methods:
|
|
285
|
+
|
|
286
|
+
```typescript highlight-page-navigation
|
|
287
|
+
// Access pages within the scene
|
|
288
|
+
const pages = engine.scene.getPages();
|
|
289
|
+
// eslint-disable-next-line no-console
|
|
290
|
+
console.log('Number of pages:', pages.length);
|
|
291
|
+
|
|
292
|
+
// Get the current page (nearest to viewport center)
|
|
293
|
+
const currentPage = engine.scene.getCurrentPage();
|
|
294
|
+
// eslint-disable-next-line no-console
|
|
295
|
+
console.log('Current page ID:', currentPage);
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
The `getCurrentPage()` method returns the page nearest to the viewport center—useful for determining which page the user is currently viewing.
|
|
299
|
+
|
|
300
|
+
## Camera and Zoom
|
|
301
|
+
|
|
302
|
+
### Zoom to Block
|
|
303
|
+
|
|
304
|
+
Use `engine.scene.zoomToBlock()` to frame a specific block in the viewport with padding. Pass the scene block to show all pages:
|
|
305
|
+
|
|
306
|
+
```typescript highlight-camera-zoom
|
|
307
|
+
// Zoom to show all pages in the scene
|
|
308
|
+
const scene = engine.scene.get();
|
|
309
|
+
if (scene) {
|
|
310
|
+
await engine.scene.zoomToBlock(scene, { padding: 50 });
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Get the current zoom level
|
|
314
|
+
const zoomLevel = engine.scene.getZoomLevel();
|
|
315
|
+
// eslint-disable-next-line no-console
|
|
316
|
+
console.log('Current zoom level:', zoomLevel);
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Zoom Level
|
|
320
|
+
|
|
321
|
+
Get and set the zoom level directly with `engine.scene.getZoomLevel()` and `engine.scene.setZoomLevel()`. A zoom level of 1.0 means one design unit equals one screen pixel.
|
|
322
|
+
|
|
323
|
+
### Auto-Fit Zoom
|
|
324
|
+
|
|
325
|
+
For continuous auto-framing, use `engine.scene.enableZoomAutoFit()` to automatically keep a block centered as the viewport resizes.
|
|
326
|
+
|
|
327
|
+
## Saving Scenes
|
|
328
|
+
|
|
329
|
+
### Saving to String
|
|
330
|
+
|
|
331
|
+
Use `engine.scene.saveToString()` to serialize the current scene. This captures the complete scene structure—pages, blocks, and their properties—as a string you can store.
|
|
332
|
+
|
|
333
|
+
```typescript highlight-save-scene
|
|
334
|
+
// Save the scene to a string for persistence
|
|
335
|
+
const sceneString = await engine.scene.saveToString();
|
|
336
|
+
// eslint-disable-next-line no-console
|
|
337
|
+
console.log('Scene saved successfully. String length:', sceneString.length);
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
The serialized string references external assets by URL rather than embedding them. For complete portability including assets, use `engine.scene.saveToArchive()`.
|
|
341
|
+
|
|
342
|
+
## Loading Scenes
|
|
343
|
+
|
|
344
|
+
### Loading from String
|
|
345
|
+
|
|
346
|
+
Use `engine.scene.loadFromString()` to restore a scene from a saved string:
|
|
347
|
+
|
|
348
|
+
```typescript highlight-load-scene
|
|
349
|
+
// Demonstrate loading the scene from the saved string
|
|
350
|
+
// This replaces the current scene with the saved version
|
|
351
|
+
await engine.scene.loadFromString(sceneString);
|
|
352
|
+
// eslint-disable-next-line no-console
|
|
353
|
+
console.log('Scene loaded from saved string');
|
|
354
|
+
|
|
355
|
+
// Zoom to show all loaded pages
|
|
356
|
+
const loadedScene = engine.scene.get();
|
|
357
|
+
if (loadedScene) {
|
|
358
|
+
await engine.scene.zoomToBlock(loadedScene, { padding: 50 });
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Loading a new scene replaces any existing scene. The engine only holds one active scene at a time.
|
|
363
|
+
|
|
364
|
+
### Loading from URL
|
|
365
|
+
|
|
366
|
+
Use `engine.scene.loadFromURL()` to load a scene directly from a remote location:
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
await engine.scene.loadFromURL('https://example.com/design.scene');
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
## Troubleshooting
|
|
373
|
+
|
|
374
|
+
### Blocks Not Visible
|
|
375
|
+
|
|
376
|
+
Ensure blocks are attached to pages, and pages are attached to the scene. Orphaned blocks that aren't part of the scene hierarchy won't render.
|
|
377
|
+
|
|
378
|
+
### Scene Not Loading
|
|
379
|
+
|
|
380
|
+
Check that the scene URL or string is valid. If assets fail to load, consider using the `waitForResources` option to ensure everything loads before rendering.
|
|
381
|
+
|
|
382
|
+
### Zoom Not Working
|
|
383
|
+
|
|
384
|
+
Verify the scene has a valid camera. Some UI configurations may override programmatic zoom controls.
|
|
385
|
+
|
|
386
|
+
## Scene Type
|
|
387
|
+
|
|
388
|
+
Represents the scene and its global properties.
|
|
389
|
+
|
|
390
|
+
This section describes the properties available for the **Scene Type** (`//ly.img.ubq/scene`) block type.
|
|
391
|
+
|
|
392
|
+
| Property | Type | Default | Description |
|
|
393
|
+
| ------------------------------ | -------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
394
|
+
| `alwaysOnBottom` | `Bool` | `false` | If true, this element's global sorting order is automatically adjusted to be lower than all other siblings. |
|
|
395
|
+
| `alwaysOnTop` | `Bool` | `false` | If true, this element's global sorting order is automatically adjusted to be higher than all other siblings. |
|
|
396
|
+
| `blend/mode` | `Enum` | `"Normal"` | The blend mode to use when compositing the block., Possible values: `"PassThrough"`, `"Normal"`, `"Darken"`, `"Multiply"`, `"ColorBurn"`, `"LinearBurn"`, `"DarkenColor"`, `"Lighten"`, `"Screen"`, `"ColorDodge"`, `"LinearDodge"`, `"LightenColor"`, `"Overlay"`, `"SoftLight"`, `"HardLight"`, `"VividLight"`, `"LinearLight"`, `"PinLight"`, `"HardMix"`, `"Difference"`, `"Exclusion"`, `"Subtract"`, `"Divide"`, `"Hue"`, `"Saturation"`, `"Color"`, `"Luminosity"` |
|
|
397
|
+
| `clipped` | `Bool` | `false` | This component is used to identify elements whose contents and children should be clipped to their bounds. |
|
|
398
|
+
| `contentFill/mode` | `Enum` | `"Cover"` | Defines how content should be resized to fit its container (e.g., Crop, Cover, Contain)., Possible values: `"Crop"`, `"Cover"`, `"Contain"` |
|
|
399
|
+
| `flip/horizontal` | `Bool` | `"-"` | Whether the block is flipped horizontally. |
|
|
400
|
+
| `flip/vertical` | `Bool` | `"-"` | Whether the block is flipped vertically. |
|
|
401
|
+
| `globalBoundingBox/height` | `Float` | `"-"` | The height of the block's axis-aligned bounding box in world coordinates., _(read-only)_ |
|
|
402
|
+
| `globalBoundingBox/width` | `Float` | `"-"` | The width of the block's axis-aligned bounding box in world coordinates., _(read-only)_ |
|
|
403
|
+
| `globalBoundingBox/x` | `Float` | `"-"` | The x-coordinate of the block's axis-aligned bounding box in world coordinates., _(read-only)_ |
|
|
404
|
+
| `globalBoundingBox/y` | `Float` | `"-"` | The y-coordinate of the block's axis-aligned bounding box in world coordinates., _(read-only)_ |
|
|
405
|
+
| `height` | `Float` | `0` | The height of the block's frame. |
|
|
406
|
+
| `height/mode` | `Enum` | `"Auto"` | A mode describing how the height dimension may be interpreted (Absolute, Percent, Auto)., Possible values: `"Absolute"`, `"Percent"`, `"Auto"` |
|
|
407
|
+
| `highlightEnabled` | `Bool` | `true` | Show highlighting when selected or hovered |
|
|
408
|
+
| `lastFrame/height` | `Float` | `"-"` | The height of the block's frame from the previous layout pass., _(read-only)_ |
|
|
409
|
+
| `lastFrame/width` | `Float` | `"-"` | The width of the block's frame from the previous layout pass., _(read-only)_ |
|
|
410
|
+
| `lastFrame/x` | `Float` | `"-"` | The x-coordinate of the block's frame from the previous layout pass., _(read-only)_ |
|
|
411
|
+
| `lastFrame/y` | `Float` | `"-"` | The y-coordinate of the block's frame from the previous layout pass., _(read-only)_ |
|
|
412
|
+
| `placeholder/enabled` | `Bool` | `false` | Whether the placeholder behavior is enabled or not. |
|
|
413
|
+
| `playback/playing` | `Bool` | `false` | A tag that can be set on elements for their playback time to be progressed. |
|
|
414
|
+
| `playback/soloPlaybackEnabled` | `Bool` | `false` | A tag for blocks where playback should progress while the scene is paused. |
|
|
415
|
+
| `playback/time` | `Double` | `0` | The current playback time of the block contents in seconds. |
|
|
416
|
+
| `position/x` | `Float` | `0` | The x-coordinate of the block's origin. |
|
|
417
|
+
| `position/x/mode` | `Enum` | `"Absolute"` | A mode describing how the x-position may be interpreted., Possible values: `"Absolute"`, `"Percent"`, `"Auto"` |
|
|
418
|
+
| `position/y` | `Float` | `0` | The y-coordinate of the block's origin. |
|
|
419
|
+
| `position/y/mode` | `Enum` | `"Absolute"` | A mode describing how the y-position may be interpreted., Possible values: `"Absolute"`, `"Percent"`, `"Auto"` |
|
|
420
|
+
| `rotation` | `Float` | `0` | The rotation of the block in radians. |
|
|
421
|
+
| `scene/aspectRatioLock` | `Bool` | `true` | Whether the ratio of the pageDimensions' width and height should remain constant when changing either dimension. |
|
|
422
|
+
| `scene/designUnit` | `Enum` | `"Pixel"` | The unit type in which the page values (size, distances, etc.) are defined., Possible values: `"Pixel"`, `"Millimeter"`, `"Inch"` |
|
|
423
|
+
| `scene/dpi` | `Float` | `300` | The DPI value to use when exporting and when converting between pixels and inches or millimeter units. |
|
|
424
|
+
| `scene/layout` | `Enum` | `"Free"` | A value describing how the scene's children are laid out., Possible values: `"Free"`, `"VerticalStack"`, `"HorizontalStack"`, `"DepthStack"` |
|
|
425
|
+
| `scene/mode` | `Enum` | `"Video"` | The mode of this scene and all elements inside of it., _(read-only)_, Possible values: `"Design"`, `"Video"` |
|
|
426
|
+
| `scene/pageDimensions/height` | `Float` | `1` | The height of all pages in this scene. |
|
|
427
|
+
| `scene/pageDimensions/width` | `Float` | `1` | The width of all pages in this scene. |
|
|
428
|
+
| `scene/pageFormatId` | `String` | `""` | The identifier of the page format configuration that was most recently selected for the pages in this scene. |
|
|
429
|
+
| `scene/pixelScaleFactor` | `Float` | `1` | A scale factor that is applied to the final export resolution if the design unit is Pixel. |
|
|
430
|
+
| `selected` | `Bool` | `false` | Indicates if the block is currently selected. |
|
|
431
|
+
| `transformLocked` | `Bool` | `false` | DesignBlocks with this tag can't be transformed (moved, rotated, scaled, cropped, or flipped). |
|
|
432
|
+
| `visible` | `Bool` | `true` | If the block is visible in the editor. |
|
|
433
|
+
| `width` | `Float` | `0` | The width of the block's frame. |
|
|
434
|
+
| `width/mode` | `Enum` | `"Auto"` | A mode describing how the width dimension may be interpreted (Absolute, Percent, Auto)., Possible values: `"Absolute"`, `"Percent"`, `"Auto"` |
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## More Resources
|
|
439
|
+
|
|
440
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
441
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
442
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
443
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,194 @@
|
|
|
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:** [Concepts](./concepts.md) > [Templating](./concepts/templating.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Templates transform static designs into dynamic, data-driven content. They combine reusable layouts with variable text and placeholder media, enabling personalization at scale.
|
|
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-concepts-templating-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-concepts-templating-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-concepts-templating-browser/)
|
|
19
|
+
|
|
20
|
+
A template is a regular CE.SDK scene that contains **variable tokens** in text and **placeholder blocks** for media. When you load a template, you can populate the variables with data and swap placeholder content—producing personalized designs without modifying the underlying layout.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-concepts-templating-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
26
|
+
import packageJson from './package.json';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* CE.SDK Plugin: Templating Concepts
|
|
30
|
+
*
|
|
31
|
+
* Demonstrates the core template concepts in CE.SDK:
|
|
32
|
+
* - Loading a template from URL
|
|
33
|
+
* - Discovering and setting variables
|
|
34
|
+
* - Discovering placeholders
|
|
35
|
+
*/
|
|
36
|
+
class Example implements EditorPlugin {
|
|
37
|
+
name = packageJson.name;
|
|
38
|
+
|
|
39
|
+
version = packageJson.version;
|
|
40
|
+
|
|
41
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
42
|
+
if (!cesdk) {
|
|
43
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
47
|
+
const engine = cesdk.engine;
|
|
48
|
+
|
|
49
|
+
// Load a postcard template from URL
|
|
50
|
+
// Templates are scenes containing variable tokens and placeholder blocks
|
|
51
|
+
const templateUrl =
|
|
52
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene';
|
|
53
|
+
await engine.scene.loadFromURL(templateUrl);
|
|
54
|
+
|
|
55
|
+
// Zoom to show the full page in the viewport
|
|
56
|
+
const page = engine.scene.getCurrentPage();
|
|
57
|
+
if (page) {
|
|
58
|
+
await engine.scene.zoomToBlock(page, { padding: 40 });
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Discover what variables this template expects
|
|
62
|
+
// Variables are named slots that can be populated with data
|
|
63
|
+
const variableNames = engine.variable.findAll();
|
|
64
|
+
// eslint-disable-next-line no-console
|
|
65
|
+
console.log('Template variables:', variableNames);
|
|
66
|
+
|
|
67
|
+
// Set variable values to personalize the template
|
|
68
|
+
// These values replace {{variableName}} tokens in text blocks
|
|
69
|
+
engine.variable.setString('Name', 'Jane');
|
|
70
|
+
engine.variable.setString('Greeting', 'Wish you were here!');
|
|
71
|
+
// eslint-disable-next-line no-console
|
|
72
|
+
console.log('Variables set successfully.');
|
|
73
|
+
|
|
74
|
+
// Discover placeholder blocks in the template
|
|
75
|
+
// Placeholders mark content slots for user or automation replacement
|
|
76
|
+
const placeholders = engine.block.findAllPlaceholders();
|
|
77
|
+
// eslint-disable-next-line no-console
|
|
78
|
+
console.log('Template placeholders:', placeholders.length);
|
|
79
|
+
|
|
80
|
+
// eslint-disable-next-line no-console
|
|
81
|
+
console.log('Templating guide completed successfully.');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export default Example;
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
This guide explains the core concepts. For implementation details, see the guides linked in each section.
|
|
89
|
+
|
|
90
|
+
## What Makes a Template
|
|
91
|
+
|
|
92
|
+
Any CE.SDK scene can become a template by adding dynamic elements:
|
|
93
|
+
|
|
94
|
+
| Element | Purpose | Example |
|
|
95
|
+
| ----------------------- | ------------------------- | ---------------------------- |
|
|
96
|
+
| **Variables** | Dynamic text replacement | `Hello, {{firstName}}!` |
|
|
97
|
+
| **Placeholders** | Swappable media slots | Profile photo, product image |
|
|
98
|
+
| **Editing Constraints** | Protected design elements | Locked logo, fixed layout |
|
|
99
|
+
|
|
100
|
+
Templates separate **design** (created once by designers) from **content** (populated at runtime with data). This enables workflows like batch generation, form-based customization, and user personalization.
|
|
101
|
+
|
|
102
|
+
## Variables
|
|
103
|
+
|
|
104
|
+
Variables enable dynamic text without modifying the design structure. Text blocks contain `{{variableName}}` tokens that CE.SDK resolves at render time.
|
|
105
|
+
|
|
106
|
+
```typescript highlight-set-variables
|
|
107
|
+
// Set variable values to personalize the template
|
|
108
|
+
// These values replace {{variableName}} tokens in text blocks
|
|
109
|
+
engine.variable.setString('Name', 'Jane');
|
|
110
|
+
engine.variable.setString('Greeting', 'Wish you were here!');
|
|
111
|
+
// eslint-disable-next-line no-console
|
|
112
|
+
console.log('Variables set successfully.');
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**How variables work:**
|
|
116
|
+
|
|
117
|
+
- Define variables with `engine.variable.setString('name', 'value')`
|
|
118
|
+
- Reference them in text: `Welcome, {{name}}!`
|
|
119
|
+
- CE.SDK automatically updates all text blocks using that variable
|
|
120
|
+
- Tokens are case-sensitive; unmatched tokens render as literal text
|
|
121
|
+
|
|
122
|
+
Variables are scene-scoped and persist when you save the template. Use `engine.variable.findAll()` to discover what variables a template expects.
|
|
123
|
+
|
|
124
|
+
[Learn more about text variables →](./create-templates/add-dynamic-content/text-variables.md)
|
|
125
|
+
|
|
126
|
+
## Placeholders
|
|
127
|
+
|
|
128
|
+
Placeholders mark blocks as content slots that users or automation can replace. When you enable placeholder behavior on an image block, it displays an overlay pattern and replacement button in the editor.
|
|
129
|
+
|
|
130
|
+
**How placeholders work:**
|
|
131
|
+
|
|
132
|
+
- Enable with `engine.block.setPlaceholderEnabled(block, true)`
|
|
133
|
+
- Add visual UI with `engine.block.setPlaceholderBehaviorEnabled(fill, true)`
|
|
134
|
+
- Users in Adopter mode can select and replace placeholder content
|
|
135
|
+
- Other design elements remain locked
|
|
136
|
+
|
|
137
|
+
Use `engine.block.findAllPlaceholders()` to discover all placeholder blocks in a loaded template.
|
|
138
|
+
|
|
139
|
+
[Learn more about placeholders →](./create-templates/add-dynamic-content/placeholders.md)
|
|
140
|
+
|
|
141
|
+
## Template Workflows
|
|
142
|
+
|
|
143
|
+
Templates support several common workflows:
|
|
144
|
+
|
|
145
|
+
### Form-Based Customization
|
|
146
|
+
|
|
147
|
+
Load a template, present a form for variable values, and let users customize text while the design stays consistent. The editor UI handles placeholder replacement through drag-and-drop.
|
|
148
|
+
|
|
149
|
+
### Batch Generation
|
|
150
|
+
|
|
151
|
+
Load a template programmatically, iterate through data records, set variables for each record, and export personalized designs. This powers use cases like certificates, badges, and personalized marketing.
|
|
152
|
+
|
|
153
|
+
### Design Systems
|
|
154
|
+
|
|
155
|
+
Create template libraries where designers maintain approved layouts and end users customize within defined boundaries using variables and placeholders.
|
|
156
|
+
|
|
157
|
+
## Loading and Applying Templates
|
|
158
|
+
|
|
159
|
+
CE.SDK provides two approaches for working with templates:
|
|
160
|
+
|
|
161
|
+
**Load a template** with `engine.scene.loadFromURL()` to replace the current scene entirely, including page dimensions:
|
|
162
|
+
|
|
163
|
+
```typescript highlight-load-template
|
|
164
|
+
// Load a postcard template from URL
|
|
165
|
+
// Templates are scenes containing variable tokens and placeholder blocks
|
|
166
|
+
const templateUrl =
|
|
167
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene';
|
|
168
|
+
await engine.scene.loadFromURL(templateUrl);
|
|
169
|
+
|
|
170
|
+
// Zoom to show the full page in the viewport
|
|
171
|
+
const page = engine.scene.getCurrentPage();
|
|
172
|
+
if (page) {
|
|
173
|
+
await engine.scene.zoomToBlock(page, { padding: 40 });
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Apply a template** with `engine.scene.applyTemplateFromURL()` to merge template content into an existing scene while preserving current page dimensions.
|
|
178
|
+
|
|
179
|
+
[Learn more about importing templates →](./create-templates/import.md)
|
|
180
|
+
|
|
181
|
+
## Creating Templates
|
|
182
|
+
|
|
183
|
+
Build templates by adding variable tokens to text blocks and configuring placeholder behavior on media blocks. Save with `engine.scene.saveToString()` or `engine.scene.saveToArchive()`.
|
|
184
|
+
|
|
185
|
+
[Learn more about creating templates →](./create-templates/from-scratch.md)
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## More Resources
|
|
190
|
+
|
|
191
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
192
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
193
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
194
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|