@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,558 @@
|
|
|
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) > [Animation](./animation.md) > [Create Animations](./animation/create.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Add motion to design elements by creating entrance, exit, and loop animations using CE.SDK's animation system.
|
|
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-animation-create-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-animation-create-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-animation-create-browser/)
|
|
19
|
+
|
|
20
|
+
CE.SDK provides a unified animation system for adding motion to design elements. Animations are created as separate block instances and attached to target blocks using type-specific methods. You can apply entrance animations (how blocks appear), exit animations (how blocks leave), and loop animations (continuous motion while visible). Text blocks support additional properties for word-by-word or character-by-character reveals.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-animation-create-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
CaptionPresetsAssetSource,
|
|
28
|
+
ColorPaletteAssetSource,
|
|
29
|
+
CropPresetsAssetSource,
|
|
30
|
+
DemoAssetSources,
|
|
31
|
+
EffectsAssetSource,
|
|
32
|
+
FiltersAssetSource,
|
|
33
|
+
PagePresetsAssetSource,
|
|
34
|
+
StickerAssetSource,
|
|
35
|
+
TextAssetSource,
|
|
36
|
+
TextComponentAssetSource,
|
|
37
|
+
TypefaceAssetSource,
|
|
38
|
+
UploadAssetSources,
|
|
39
|
+
VectorShapeAssetSource
|
|
40
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
41
|
+
import { VideoEditorConfig } from './video-editor/plugin';
|
|
42
|
+
import packageJson from './package.json';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* CE.SDK Plugin: Create Animations Guide
|
|
46
|
+
*
|
|
47
|
+
* Demonstrates animation features in CE.SDK:
|
|
48
|
+
* - Creating entrance (In) animations
|
|
49
|
+
* - Creating exit (Out) animations
|
|
50
|
+
* - Creating loop animations
|
|
51
|
+
* - Configuring duration and easing
|
|
52
|
+
* - Text animations with writing styles
|
|
53
|
+
* - Managing animation lifecycle
|
|
54
|
+
*/
|
|
55
|
+
class Example implements EditorPlugin {
|
|
56
|
+
name = packageJson.name;
|
|
57
|
+
|
|
58
|
+
version = packageJson.version;
|
|
59
|
+
|
|
60
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
61
|
+
if (!cesdk) {
|
|
62
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
await cesdk.addPlugin(new VideoEditorConfig());
|
|
66
|
+
|
|
67
|
+
// Add asset source plugins
|
|
68
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
69
|
+
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
70
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
71
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
72
|
+
await cesdk.addPlugin(
|
|
73
|
+
new UploadAssetSources({
|
|
74
|
+
include: [
|
|
75
|
+
'ly.img.image.upload',
|
|
76
|
+
'ly.img.video.upload',
|
|
77
|
+
'ly.img.audio.upload'
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
await cesdk.addPlugin(
|
|
82
|
+
new DemoAssetSources({
|
|
83
|
+
include: [
|
|
84
|
+
'ly.img.templates.video.*',
|
|
85
|
+
'ly.img.image.*',
|
|
86
|
+
'ly.img.audio.*',
|
|
87
|
+
'ly.img.video.*'
|
|
88
|
+
]
|
|
89
|
+
})
|
|
90
|
+
);
|
|
91
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
92
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
93
|
+
await cesdk.addPlugin(
|
|
94
|
+
new PagePresetsAssetSource({
|
|
95
|
+
include: [
|
|
96
|
+
'ly.img.page.presets.instagram.*',
|
|
97
|
+
'ly.img.page.presets.facebook.*',
|
|
98
|
+
'ly.img.page.presets.x.*',
|
|
99
|
+
'ly.img.page.presets.linkedin.*',
|
|
100
|
+
'ly.img.page.presets.pinterest.*',
|
|
101
|
+
'ly.img.page.presets.tiktok.*',
|
|
102
|
+
'ly.img.page.presets.youtube.*',
|
|
103
|
+
'ly.img.page.presets.video.*'
|
|
104
|
+
]
|
|
105
|
+
})
|
|
106
|
+
);
|
|
107
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
108
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
109
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
110
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
111
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
112
|
+
|
|
113
|
+
await cesdk.actions.run('scene.create', {
|
|
114
|
+
layout: 'DepthStack',
|
|
115
|
+
page: { width: 1920, height: 1080, unit: 'Pixel' }
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const engine = cesdk.engine;
|
|
119
|
+
const pages = engine.block.findByType('page');
|
|
120
|
+
const page = pages[0];
|
|
121
|
+
|
|
122
|
+
// Set page dimensions and duration
|
|
123
|
+
const pageWidth = engine.block.getWidth(page);
|
|
124
|
+
const pageHeight = engine.block.getHeight(page);
|
|
125
|
+
engine.block.setDuration(page, 5.0);
|
|
126
|
+
|
|
127
|
+
// Create gradient background
|
|
128
|
+
if (engine.block.supportsFill(page)) {
|
|
129
|
+
const gradientFill = engine.block.createFill('gradient/linear');
|
|
130
|
+
engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
|
|
131
|
+
{ color: { r: 0.4, g: 0.2, b: 0.8, a: 1.0 }, stop: 0 },
|
|
132
|
+
{ color: { r: 0.1, g: 0.3, b: 0.6, a: 1.0 }, stop: 0.5 },
|
|
133
|
+
{ color: { r: 0.2, g: 0.1, b: 0.4, a: 1.0 }, stop: 1 }
|
|
134
|
+
]);
|
|
135
|
+
// Diagonal gradient from top-left to bottom-right
|
|
136
|
+
engine.block.setFloat(
|
|
137
|
+
gradientFill,
|
|
138
|
+
'fill/gradient/linear/startPointX',
|
|
139
|
+
0
|
|
140
|
+
);
|
|
141
|
+
engine.block.setFloat(
|
|
142
|
+
gradientFill,
|
|
143
|
+
'fill/gradient/linear/startPointY',
|
|
144
|
+
0
|
|
145
|
+
);
|
|
146
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/endPointX', 1);
|
|
147
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/endPointY', 1);
|
|
148
|
+
engine.block.setFill(page, gradientFill);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// ===== Title: "Create Animations" with entrance animation =====
|
|
152
|
+
const titleBlock = engine.block.create('text');
|
|
153
|
+
engine.block.replaceText(titleBlock, 'Create Animations');
|
|
154
|
+
engine.block.setTextFontSize(titleBlock, 120);
|
|
155
|
+
engine.block.setTextColor(titleBlock, { r: 1.0, g: 1.0, b: 1.0, a: 1.0 });
|
|
156
|
+
engine.block.setEnum(titleBlock, 'text/horizontalAlignment', 'Center');
|
|
157
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
158
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
159
|
+
engine.block.appendChild(page, titleBlock);
|
|
160
|
+
engine.block.setDuration(titleBlock, 5.0);
|
|
161
|
+
|
|
162
|
+
// Check if block supports animations before applying
|
|
163
|
+
if (engine.block.supportsAnimation(titleBlock)) {
|
|
164
|
+
// Create an entrance animation
|
|
165
|
+
const slideIn = engine.block.createAnimation('slide');
|
|
166
|
+
engine.block.setInAnimation(titleBlock, slideIn);
|
|
167
|
+
engine.block.setDuration(slideIn, 1.2);
|
|
168
|
+
engine.block.setFloat(
|
|
169
|
+
slideIn,
|
|
170
|
+
'animation/slide/direction',
|
|
171
|
+
(3 * Math.PI) / 2
|
|
172
|
+
);
|
|
173
|
+
engine.block.setEnum(slideIn, 'animationEasing', 'EaseOut');
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Center title horizontally and position in upper third
|
|
177
|
+
const titleWidth = engine.block.getFrameWidth(titleBlock);
|
|
178
|
+
const titleHeight = engine.block.getFrameHeight(titleBlock);
|
|
179
|
+
engine.block.setPositionX(titleBlock, (pageWidth - titleWidth) / 2);
|
|
180
|
+
engine.block.setPositionY(titleBlock, pageHeight * 0.25);
|
|
181
|
+
|
|
182
|
+
// ===== IMG.LY Logo with pulsating loop animation =====
|
|
183
|
+
const logoBlock = await engine.block.addImage(
|
|
184
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg',
|
|
185
|
+
{ size: { width: 200, height: 200 } }
|
|
186
|
+
);
|
|
187
|
+
engine.block.appendChild(page, logoBlock);
|
|
188
|
+
engine.block.setDuration(logoBlock, 5.0);
|
|
189
|
+
// Contain the image within the block frame
|
|
190
|
+
engine.block.setEnum(logoBlock, 'contentFill/mode', 'Contain');
|
|
191
|
+
|
|
192
|
+
// Create a pulsating loop animation
|
|
193
|
+
const pulsating = engine.block.createAnimation('pulsating_loop');
|
|
194
|
+
engine.block.setLoopAnimation(logoBlock, pulsating);
|
|
195
|
+
engine.block.setDuration(pulsating, 1.5);
|
|
196
|
+
|
|
197
|
+
// Add fade entrance for the logo
|
|
198
|
+
const logoFadeIn = engine.block.createAnimation('fade');
|
|
199
|
+
engine.block.setInAnimation(logoBlock, logoFadeIn);
|
|
200
|
+
engine.block.setDuration(logoFadeIn, 0.8);
|
|
201
|
+
engine.block.setEnum(logoFadeIn, 'animationEasing', 'EaseOut');
|
|
202
|
+
|
|
203
|
+
// Position logo below title, centered
|
|
204
|
+
const logoWidth = engine.block.getFrameWidth(logoBlock);
|
|
205
|
+
engine.block.setPositionX(logoBlock, (pageWidth - logoWidth) / 2);
|
|
206
|
+
engine.block.setPositionY(logoBlock, pageHeight * 0.25 + titleHeight + 40);
|
|
207
|
+
|
|
208
|
+
// ===== Subtitle with text animation =====
|
|
209
|
+
const subtitleBlock = engine.block.create('text');
|
|
210
|
+
engine.block.replaceText(subtitleBlock, 'Entrance • Exit • Loop');
|
|
211
|
+
engine.block.setTextFontSize(subtitleBlock, 48);
|
|
212
|
+
engine.block.setTextColor(subtitleBlock, {
|
|
213
|
+
r: 0.9,
|
|
214
|
+
g: 0.9,
|
|
215
|
+
b: 1.0,
|
|
216
|
+
a: 0.9
|
|
217
|
+
});
|
|
218
|
+
engine.block.setEnum(subtitleBlock, 'text/horizontalAlignment', 'Center');
|
|
219
|
+
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
220
|
+
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
221
|
+
engine.block.appendChild(page, subtitleBlock);
|
|
222
|
+
engine.block.setDuration(subtitleBlock, 5.0);
|
|
223
|
+
|
|
224
|
+
// Create text animation with word-by-word reveal
|
|
225
|
+
const textAnim = engine.block.createAnimation('fade');
|
|
226
|
+
engine.block.setInAnimation(subtitleBlock, textAnim);
|
|
227
|
+
engine.block.setDuration(textAnim, 1.5);
|
|
228
|
+
|
|
229
|
+
// Configure text animation writing style (Line, Word, or Character)
|
|
230
|
+
engine.block.setEnum(textAnim, 'textAnimationWritingStyle', 'Word');
|
|
231
|
+
// Set overlap for cascading effect (0 = sequential, 0-1 = cascading)
|
|
232
|
+
engine.block.setFloat(textAnim, 'textAnimationOverlap', 0.3);
|
|
233
|
+
|
|
234
|
+
// Position subtitle below logo
|
|
235
|
+
const subtitleWidth = engine.block.getFrameWidth(subtitleBlock);
|
|
236
|
+
engine.block.setPositionX(subtitleBlock, (pageWidth - subtitleWidth) / 2);
|
|
237
|
+
engine.block.setPositionY(subtitleBlock, pageHeight * 0.65);
|
|
238
|
+
|
|
239
|
+
// ===== Bottom right text with exit animation =====
|
|
240
|
+
const footerBlock = engine.block.create('text');
|
|
241
|
+
engine.block.replaceText(footerBlock, 'Powered by CE.SDK');
|
|
242
|
+
engine.block.setTextFontSize(footerBlock, 32);
|
|
243
|
+
engine.block.setTextColor(footerBlock, { r: 1.0, g: 1.0, b: 1.0, a: 0.7 });
|
|
244
|
+
engine.block.setEnum(footerBlock, 'text/horizontalAlignment', 'Right');
|
|
245
|
+
engine.block.setWidthMode(footerBlock, 'Auto');
|
|
246
|
+
engine.block.setHeightMode(footerBlock, 'Auto');
|
|
247
|
+
engine.block.appendChild(page, footerBlock);
|
|
248
|
+
|
|
249
|
+
// Footer appears at start and fades out at the end
|
|
250
|
+
engine.block.setTimeOffset(footerBlock, 0);
|
|
251
|
+
engine.block.setDuration(footerBlock, 5.0);
|
|
252
|
+
|
|
253
|
+
// Create exit animation that plays at the end of the block's duration
|
|
254
|
+
const fadeOut = engine.block.createAnimation('fade');
|
|
255
|
+
engine.block.setOutAnimation(footerBlock, fadeOut);
|
|
256
|
+
engine.block.setDuration(fadeOut, 1.0);
|
|
257
|
+
engine.block.setEnum(fadeOut, 'animationEasing', 'EaseIn');
|
|
258
|
+
|
|
259
|
+
// Position footer at bottom right with padding
|
|
260
|
+
const footerWidth = engine.block.getFrameWidth(footerBlock);
|
|
261
|
+
const footerHeight = engine.block.getFrameHeight(footerBlock);
|
|
262
|
+
engine.block.setPositionX(footerBlock, pageWidth - footerWidth - 60);
|
|
263
|
+
engine.block.setPositionY(footerBlock, pageHeight - footerHeight - 40);
|
|
264
|
+
|
|
265
|
+
// ===== Animation Properties Demo =====
|
|
266
|
+
// Create slide animation and configure direction for title
|
|
267
|
+
const titleInAnim = engine.block.getInAnimation(titleBlock);
|
|
268
|
+
if (titleInAnim !== 0) {
|
|
269
|
+
// Discover all available properties for this animation
|
|
270
|
+
const properties = engine.block.findAllProperties(titleInAnim);
|
|
271
|
+
console.log('Slide animation properties:', properties);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// Example: Retrieve animations to verify they're attached
|
|
275
|
+
const currentTitleIn = engine.block.getInAnimation(titleBlock);
|
|
276
|
+
const currentLogoLoop = engine.block.getLoopAnimation(logoBlock);
|
|
277
|
+
const currentFooterOut = engine.block.getOutAnimation(footerBlock);
|
|
278
|
+
|
|
279
|
+
console.log(
|
|
280
|
+
'Animation IDs - Title In:',
|
|
281
|
+
currentTitleIn,
|
|
282
|
+
'Logo Loop:',
|
|
283
|
+
currentLogoLoop,
|
|
284
|
+
'Footer Out:',
|
|
285
|
+
currentFooterOut
|
|
286
|
+
);
|
|
287
|
+
|
|
288
|
+
// Get available easing options
|
|
289
|
+
const easingOptions = engine.block.getEnumValues('animationEasing');
|
|
290
|
+
console.log('Available easing options:', easingOptions);
|
|
291
|
+
|
|
292
|
+
// Set initial playback time to show the scene after animations start
|
|
293
|
+
engine.block.setPlaybackTime(page, 2.0);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export default Example;
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
This guide covers how to create and configure animations programmatically, including entrance, exit, loop, and text animations with customizable timing and easing.
|
|
301
|
+
|
|
302
|
+
## Animation Fundamentals
|
|
303
|
+
|
|
304
|
+
We first verify that a block supports animations before creating and attaching them. The basic pattern involves creating an animation instance with `createAnimation()`, then attaching it using the appropriate setter method.
|
|
305
|
+
|
|
306
|
+
```typescript highlight-check-support
|
|
307
|
+
const titleBlock = engine.block.create('text');
|
|
308
|
+
engine.block.replaceText(titleBlock, 'Create Animations');
|
|
309
|
+
engine.block.setTextFontSize(titleBlock, 120);
|
|
310
|
+
engine.block.setTextColor(titleBlock, { r: 1.0, g: 1.0, b: 1.0, a: 1.0 });
|
|
311
|
+
engine.block.setEnum(titleBlock, 'text/horizontalAlignment', 'Center');
|
|
312
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
313
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
314
|
+
engine.block.appendChild(page, titleBlock);
|
|
315
|
+
engine.block.setDuration(titleBlock, 5.0);
|
|
316
|
+
|
|
317
|
+
// Check if block supports animations before applying
|
|
318
|
+
if (engine.block.supportsAnimation(titleBlock)) {
|
|
319
|
+
// Create an entrance animation
|
|
320
|
+
const slideIn = engine.block.createAnimation('slide');
|
|
321
|
+
engine.block.setInAnimation(titleBlock, slideIn);
|
|
322
|
+
engine.block.setDuration(slideIn, 1.2);
|
|
323
|
+
engine.block.setFloat(
|
|
324
|
+
slideIn,
|
|
325
|
+
'animation/slide/direction',
|
|
326
|
+
(3 * Math.PI) / 2
|
|
327
|
+
);
|
|
328
|
+
engine.block.setEnum(slideIn, 'animationEasing', 'EaseOut');
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
Animation support is available for:
|
|
333
|
+
|
|
334
|
+
- **Graphic blocks** with image or video fills
|
|
335
|
+
- **Text blocks** with additional writing style options
|
|
336
|
+
- **Shape blocks** with fills
|
|
337
|
+
|
|
338
|
+
CE.SDK provides several animation presets:
|
|
339
|
+
|
|
340
|
+
- **Entrance animations**: slide, fade, blur, zoom, pop, wipe, pan
|
|
341
|
+
- **Exit animations**: same types as entrance
|
|
342
|
+
- **Loop animations**: breathing_loop, spin_loop, fade_loop, pulsating_loop, jump_loop, squeeze_loop, sway_loop
|
|
343
|
+
|
|
344
|
+
## Entrance Animations
|
|
345
|
+
|
|
346
|
+
Entrance animations define how blocks appear on screen. We create the animation with `createAnimation()`, attach it with `setInAnimation()`, and configure the duration with `setDuration()`.
|
|
347
|
+
|
|
348
|
+
```typescript highlight-entrance-animation
|
|
349
|
+
// Add fade entrance for the logo
|
|
350
|
+
const logoFadeIn = engine.block.createAnimation('fade');
|
|
351
|
+
engine.block.setInAnimation(logoBlock, logoFadeIn);
|
|
352
|
+
engine.block.setDuration(logoFadeIn, 0.8);
|
|
353
|
+
engine.block.setEnum(logoFadeIn, 'animationEasing', 'EaseOut');
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
The `animationEasing` property controls the animation curve. Available options include Linear, EaseIn, EaseOut, and EaseInOut.
|
|
357
|
+
|
|
358
|
+
## Exit Animations
|
|
359
|
+
|
|
360
|
+
Exit animations define how blocks leave the screen. We attach them with `setOutAnimation()`. CE.SDK manages timing automatically to prevent overlap between entrance and exit animations.
|
|
361
|
+
|
|
362
|
+
```typescript highlight-exit-animation
|
|
363
|
+
const footerBlock = engine.block.create('text');
|
|
364
|
+
engine.block.replaceText(footerBlock, 'Powered by CE.SDK');
|
|
365
|
+
engine.block.setTextFontSize(footerBlock, 32);
|
|
366
|
+
engine.block.setTextColor(footerBlock, { r: 1.0, g: 1.0, b: 1.0, a: 0.7 });
|
|
367
|
+
engine.block.setEnum(footerBlock, 'text/horizontalAlignment', 'Right');
|
|
368
|
+
engine.block.setWidthMode(footerBlock, 'Auto');
|
|
369
|
+
engine.block.setHeightMode(footerBlock, 'Auto');
|
|
370
|
+
engine.block.appendChild(page, footerBlock);
|
|
371
|
+
|
|
372
|
+
// Footer appears at start and fades out at the end
|
|
373
|
+
engine.block.setTimeOffset(footerBlock, 0);
|
|
374
|
+
engine.block.setDuration(footerBlock, 5.0);
|
|
375
|
+
|
|
376
|
+
// Create exit animation that plays at the end of the block's duration
|
|
377
|
+
const fadeOut = engine.block.createAnimation('fade');
|
|
378
|
+
engine.block.setOutAnimation(footerBlock, fadeOut);
|
|
379
|
+
engine.block.setDuration(fadeOut, 1.0);
|
|
380
|
+
engine.block.setEnum(fadeOut, 'animationEasing', 'EaseIn');
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
When a block has both entrance and exit animations, CE.SDK adjusts their timing based on the block's duration in the composition.
|
|
384
|
+
|
|
385
|
+
## Loop Animations
|
|
386
|
+
|
|
387
|
+
Loop animations run continuously while the block is visible. We use animation types ending in `_loop` and attach them with `setLoopAnimation()`.
|
|
388
|
+
|
|
389
|
+
```typescript highlight-loop-animation
|
|
390
|
+
const logoBlock = await engine.block.addImage(
|
|
391
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg',
|
|
392
|
+
{ size: { width: 200, height: 200 } }
|
|
393
|
+
);
|
|
394
|
+
engine.block.appendChild(page, logoBlock);
|
|
395
|
+
engine.block.setDuration(logoBlock, 5.0);
|
|
396
|
+
// Contain the image within the block frame
|
|
397
|
+
engine.block.setEnum(logoBlock, 'contentFill/mode', 'Contain');
|
|
398
|
+
|
|
399
|
+
// Create a pulsating loop animation
|
|
400
|
+
const pulsating = engine.block.createAnimation('pulsating_loop');
|
|
401
|
+
engine.block.setLoopAnimation(logoBlock, pulsating);
|
|
402
|
+
engine.block.setDuration(pulsating, 1.5);
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
Loop animations continue throughout the block's visible duration, creating continuous motion effects like breathing, spinning, or pulsating.
|
|
406
|
+
|
|
407
|
+
## Animation Properties
|
|
408
|
+
|
|
409
|
+
Each animation type exposes configurable properties. We use `setFloat()` and `setEnum()` to adjust these properties, and `findAllProperties()` to discover available options.
|
|
410
|
+
|
|
411
|
+
```typescript highlight-animation-properties
|
|
412
|
+
// Create slide animation and configure direction for title
|
|
413
|
+
const titleInAnim = engine.block.getInAnimation(titleBlock);
|
|
414
|
+
if (titleInAnim !== 0) {
|
|
415
|
+
// Discover all available properties for this animation
|
|
416
|
+
const properties = engine.block.findAllProperties(titleInAnim);
|
|
417
|
+
console.log('Slide animation properties:', properties);
|
|
418
|
+
}
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
Common configurable properties include:
|
|
422
|
+
|
|
423
|
+
- **Direction**: Set in radians for slide animations (0=right, PI/2=bottom, PI=left, 3\*PI/2=top)
|
|
424
|
+
- **Easing**: Linear, EaseIn, EaseOut, EaseInOut
|
|
425
|
+
|
|
426
|
+
## Text Animations
|
|
427
|
+
|
|
428
|
+
Text blocks support additional animation properties for granular control over how text appears. The `textAnimationWritingStyle` property controls whether the animation applies to the entire text, line by line, word by word, or character by character.
|
|
429
|
+
|
|
430
|
+
```typescript highlight-text-animation
|
|
431
|
+
const subtitleBlock = engine.block.create('text');
|
|
432
|
+
engine.block.replaceText(subtitleBlock, 'Entrance • Exit • Loop');
|
|
433
|
+
engine.block.setTextFontSize(subtitleBlock, 48);
|
|
434
|
+
engine.block.setTextColor(subtitleBlock, {
|
|
435
|
+
r: 0.9,
|
|
436
|
+
g: 0.9,
|
|
437
|
+
b: 1.0,
|
|
438
|
+
a: 0.9
|
|
439
|
+
});
|
|
440
|
+
engine.block.setEnum(subtitleBlock, 'text/horizontalAlignment', 'Center');
|
|
441
|
+
engine.block.setWidthMode(subtitleBlock, 'Auto');
|
|
442
|
+
engine.block.setHeightMode(subtitleBlock, 'Auto');
|
|
443
|
+
engine.block.appendChild(page, subtitleBlock);
|
|
444
|
+
engine.block.setDuration(subtitleBlock, 5.0);
|
|
445
|
+
|
|
446
|
+
// Create text animation with word-by-word reveal
|
|
447
|
+
const textAnim = engine.block.createAnimation('fade');
|
|
448
|
+
engine.block.setInAnimation(subtitleBlock, textAnim);
|
|
449
|
+
engine.block.setDuration(textAnim, 1.5);
|
|
450
|
+
|
|
451
|
+
// Configure text animation writing style (Line, Word, or Character)
|
|
452
|
+
engine.block.setEnum(textAnim, 'textAnimationWritingStyle', 'Word');
|
|
453
|
+
// Set overlap for cascading effect (0 = sequential, 0-1 = cascading)
|
|
454
|
+
engine.block.setFloat(textAnim, 'textAnimationOverlap', 0.3);
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
Writing style options:
|
|
458
|
+
|
|
459
|
+
- **Line**: Animate entire lines together
|
|
460
|
+
- **Word**: Animate word by word
|
|
461
|
+
- **Character**: Animate character by character
|
|
462
|
+
|
|
463
|
+
The `textAnimationOverlap` property (0 to 1) controls the cascading effect. A value of 0 means sequential animation, while values closer to 1 create more overlap between segments.
|
|
464
|
+
|
|
465
|
+
## Managing Animation Lifecycle
|
|
466
|
+
|
|
467
|
+
We can retrieve current animations using `getInAnimation()`, `getOutAnimation()`, and `getLoopAnimation()`. A return value of 0 indicates no animation is attached.
|
|
468
|
+
|
|
469
|
+
```typescript highlight-manage-lifecycle
|
|
470
|
+
// Example: Retrieve animations to verify they're attached
|
|
471
|
+
const currentTitleIn = engine.block.getInAnimation(titleBlock);
|
|
472
|
+
const currentLogoLoop = engine.block.getLoopAnimation(logoBlock);
|
|
473
|
+
const currentFooterOut = engine.block.getOutAnimation(footerBlock);
|
|
474
|
+
|
|
475
|
+
console.log(
|
|
476
|
+
'Animation IDs - Title In:',
|
|
477
|
+
currentTitleIn,
|
|
478
|
+
'Logo Loop:',
|
|
479
|
+
currentLogoLoop,
|
|
480
|
+
'Footer Out:',
|
|
481
|
+
currentFooterOut
|
|
482
|
+
);
|
|
483
|
+
|
|
484
|
+
// Get available easing options
|
|
485
|
+
const easingOptions = engine.block.getEnumValues('animationEasing');
|
|
486
|
+
console.log('Available easing options:', easingOptions);
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
When replacing animations, destroy the old instance with `destroy()` to prevent memory leaks.
|
|
490
|
+
|
|
491
|
+
## Troubleshooting
|
|
492
|
+
|
|
493
|
+
### Animation Not Playing
|
|
494
|
+
|
|
495
|
+
Verify the block supports animations with `supportsAnimation()`. Check that playback is active on the page.
|
|
496
|
+
|
|
497
|
+
### Duration Issues
|
|
498
|
+
|
|
499
|
+
Ensure the animation is attached to a block before setting its duration. Duration is set on the animation instance, not the block.
|
|
500
|
+
|
|
501
|
+
### Memory Leaks
|
|
502
|
+
|
|
503
|
+
When replacing an animation, destroy the old animation instance before creating a new one:
|
|
504
|
+
|
|
505
|
+
```typescript
|
|
506
|
+
const current = engine.block.getInAnimation(block);
|
|
507
|
+
if (current !== 0) {
|
|
508
|
+
engine.block.destroy(current);
|
|
509
|
+
}
|
|
510
|
+
const newAnim = engine.block.createAnimation('fade');
|
|
511
|
+
engine.block.setInAnimation(block, newAnim);
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
### Timing Conflicts
|
|
515
|
+
|
|
516
|
+
If entrance and exit animations seem to overlap incorrectly, CE.SDK automatically adjusts durations to prevent conflicts. Reduce individual animation durations if needed.
|
|
517
|
+
|
|
518
|
+
## API Reference
|
|
519
|
+
|
|
520
|
+
| Method | Description |
|
|
521
|
+
| -------------------------------------------- | ----------------------------------------- |
|
|
522
|
+
| `engine.block.createAnimation(type)` | Create animation instance |
|
|
523
|
+
| `engine.block.supportsAnimation(block)` | Check if block supports animations |
|
|
524
|
+
| `engine.block.setInAnimation(block, anim)` | Attach entrance animation |
|
|
525
|
+
| `engine.block.setOutAnimation(block, anim)` | Attach exit animation |
|
|
526
|
+
| `engine.block.setLoopAnimation(block, anim)` | Attach loop animation |
|
|
527
|
+
| `engine.block.getInAnimation(block)` | Get entrance animation (0 if none) |
|
|
528
|
+
| `engine.block.getOutAnimation(block)` | Get exit animation (0 if none) |
|
|
529
|
+
| `engine.block.getLoopAnimation(block)` | Get loop animation (0 if none) |
|
|
530
|
+
| `engine.block.setDuration(anim, seconds)` | Set animation duration |
|
|
531
|
+
| `engine.block.setEnum(anim, prop, value)` | Set enum property (easing, writing style) |
|
|
532
|
+
| `engine.block.setFloat(anim, prop, value)` | Set float property (direction, overlap) |
|
|
533
|
+
| `engine.block.findAllProperties(anim)` | List available properties |
|
|
534
|
+
| `engine.block.getEnumValues(prop)` | Get enum options |
|
|
535
|
+
| `engine.block.destroy(anim)` | Destroy animation instance |
|
|
536
|
+
|
|
537
|
+
## Next Steps
|
|
538
|
+
|
|
539
|
+
- [Base Animations](./animation/create/base.md) — Detailed non-text block animations
|
|
540
|
+
- [Text Animations](./animation/create/text.md) — Text-specific animation control
|
|
541
|
+
- [Edit Animations](./animation/edit.md) — Modify existing animations
|
|
542
|
+
- [Animation Overview](./animation/overview.md) — Animation concepts
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## Related Pages
|
|
547
|
+
|
|
548
|
+
- [Base Animations](./animation/create/base.md) - Apply movement, scaling, rotation, or opacity changes to elements using time-based keyframes.
|
|
549
|
+
- [Text Animations](./animation/create/text.md) - Animate text elements with effects like fade, typewriter, and bounce for dynamic visual presentation.
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## More Resources
|
|
554
|
+
|
|
555
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
556
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
557
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
558
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|