@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,527 @@
|
|
|
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) > [Filters and Effects](./filters-and-effects.md) > [Distortion](./filters-and-effects/distortion.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Apply distortion effects to warp, shift, and transform images and videos for dynamic artistic visuals.
|
|
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-filters-and-effects-distortion-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-filters-and-effects-distortion-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-filters-and-effects-distortion-browser/)
|
|
19
|
+
|
|
20
|
+
Distortion effects differ from color filters in that they modify the geometry and spatial arrangement of pixels rather than their color values. CE.SDK provides several distortion effect types: liquid warping, mirror reflections, color channel shifting, radial pixelation, and TV glitch. Each effect offers configurable parameters to control the intensity and style of the distortion.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-filters-and-effects-distortion-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
import { calculateGridLayout } from './utils';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* CE.SDK Plugin: Distortion Effects Guide
|
|
46
|
+
*
|
|
47
|
+
* Demonstrates applying various distortion effects to image blocks:
|
|
48
|
+
* - Checking effect support
|
|
49
|
+
* - Applying liquid distortion
|
|
50
|
+
* - Applying mirror effect
|
|
51
|
+
* - Applying shifter (chromatic aberration)
|
|
52
|
+
* - Applying radial pixel effect
|
|
53
|
+
* - Applying TV glitch effect
|
|
54
|
+
* - Combining multiple distortion effects
|
|
55
|
+
* - Managing effects (enable/disable/remove)
|
|
56
|
+
*/
|
|
57
|
+
class Example implements EditorPlugin {
|
|
58
|
+
name = packageJson.name;
|
|
59
|
+
|
|
60
|
+
version = packageJson.version;
|
|
61
|
+
|
|
62
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
63
|
+
if (!cesdk) {
|
|
64
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
68
|
+
|
|
69
|
+
// Add asset source plugins
|
|
70
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
71
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
72
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
73
|
+
await cesdk.addPlugin(
|
|
74
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
75
|
+
);
|
|
76
|
+
await cesdk.addPlugin(
|
|
77
|
+
new DemoAssetSources({
|
|
78
|
+
include: [
|
|
79
|
+
'ly.img.templates.blank.*',
|
|
80
|
+
'ly.img.templates.presentation.*',
|
|
81
|
+
'ly.img.templates.print.*',
|
|
82
|
+
'ly.img.templates.social.*',
|
|
83
|
+
'ly.img.image.*'
|
|
84
|
+
]
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
90
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
91
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
92
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
93
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
94
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
95
|
+
|
|
96
|
+
await cesdk.actions.run('scene.create', {
|
|
97
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const engine = cesdk.engine;
|
|
101
|
+
const page = engine.block.findByType('page')[0];
|
|
102
|
+
|
|
103
|
+
const pageWidth = engine.block.getWidth(page);
|
|
104
|
+
const pageHeight = engine.block.getHeight(page);
|
|
105
|
+
|
|
106
|
+
// Enable effects in the inspector panel using the Feature API
|
|
107
|
+
cesdk.feature.enable('ly.img.effect');
|
|
108
|
+
|
|
109
|
+
// Calculate responsive grid layout based on page dimensions
|
|
110
|
+
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
111
|
+
const { blockWidth, blockHeight, getPosition } = layout;
|
|
112
|
+
|
|
113
|
+
// Use a sample image URL
|
|
114
|
+
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
115
|
+
const blockSize = { width: blockWidth, height: blockHeight };
|
|
116
|
+
|
|
117
|
+
// Create a sample block to demonstrate effect support checking
|
|
118
|
+
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
119
|
+
size: blockSize
|
|
120
|
+
});
|
|
121
|
+
engine.block.appendChild(page, sampleBlock);
|
|
122
|
+
|
|
123
|
+
// Check if a block supports effects before applying them
|
|
124
|
+
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
125
|
+
console.log('Block supports effects:', supportsEffects);
|
|
126
|
+
|
|
127
|
+
// Create an image block for liquid distortion demonstration
|
|
128
|
+
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
129
|
+
size: blockSize
|
|
130
|
+
});
|
|
131
|
+
engine.block.appendChild(page, liquidBlock);
|
|
132
|
+
|
|
133
|
+
// Create and apply liquid effect - creates flowing, organic warping
|
|
134
|
+
const liquidEffect = engine.block.createEffect('liquid');
|
|
135
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
136
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
137
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
138
|
+
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
139
|
+
|
|
140
|
+
// Create an image block for mirror effect demonstration
|
|
141
|
+
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
142
|
+
size: blockSize
|
|
143
|
+
});
|
|
144
|
+
engine.block.appendChild(page, mirrorBlock);
|
|
145
|
+
|
|
146
|
+
// Create and apply mirror effect - reflects image along a side
|
|
147
|
+
const mirrorEffect = engine.block.createEffect('mirror');
|
|
148
|
+
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
149
|
+
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
150
|
+
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
151
|
+
|
|
152
|
+
// Create an image block for shifter effect demonstration
|
|
153
|
+
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
154
|
+
size: blockSize
|
|
155
|
+
});
|
|
156
|
+
engine.block.appendChild(page, shifterBlock);
|
|
157
|
+
|
|
158
|
+
// Create and apply shifter effect - displaces color channels
|
|
159
|
+
const shifterEffect = engine.block.createEffect('shifter');
|
|
160
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
161
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
162
|
+
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
163
|
+
|
|
164
|
+
// Create an image block for radial pixel effect demonstration
|
|
165
|
+
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
166
|
+
size: blockSize
|
|
167
|
+
});
|
|
168
|
+
engine.block.appendChild(page, radialPixelBlock);
|
|
169
|
+
|
|
170
|
+
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
171
|
+
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
172
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
173
|
+
engine.block.setFloat(
|
|
174
|
+
radialPixelEffect,
|
|
175
|
+
'effect/radial_pixel/segments',
|
|
176
|
+
0.5
|
|
177
|
+
);
|
|
178
|
+
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
179
|
+
|
|
180
|
+
// Create an image block for TV glitch effect demonstration
|
|
181
|
+
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
182
|
+
size: blockSize
|
|
183
|
+
});
|
|
184
|
+
engine.block.appendChild(page, tvGlitchBlock);
|
|
185
|
+
|
|
186
|
+
// Create and apply TV glitch effect - simulates analog TV interference
|
|
187
|
+
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
188
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
189
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
190
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
191
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
192
|
+
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
193
|
+
|
|
194
|
+
// Get all effects applied to a block
|
|
195
|
+
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
196
|
+
console.log('Applied effects:', effects);
|
|
197
|
+
|
|
198
|
+
// Get the type of each effect
|
|
199
|
+
effects.forEach((effect, index) => {
|
|
200
|
+
const effectType = engine.block.getType(effect);
|
|
201
|
+
console.log(`Effect ${index}: ${effectType}`);
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
// Check if an effect is enabled
|
|
205
|
+
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
206
|
+
console.log('Liquid effect enabled:', isEnabled);
|
|
207
|
+
|
|
208
|
+
// Disable an effect without removing it
|
|
209
|
+
engine.block.setEffectEnabled(liquidEffect, false);
|
|
210
|
+
console.log(
|
|
211
|
+
'Liquid effect now disabled:',
|
|
212
|
+
!engine.block.isEffectEnabled(liquidEffect)
|
|
213
|
+
);
|
|
214
|
+
|
|
215
|
+
// Re-enable the effect
|
|
216
|
+
engine.block.setEffectEnabled(liquidEffect, true);
|
|
217
|
+
|
|
218
|
+
// To remove an effect, get its index and use removeEffect
|
|
219
|
+
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
220
|
+
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
221
|
+
if (effectIndex !== -1) {
|
|
222
|
+
// Remove effect at the specified index
|
|
223
|
+
engine.block.removeEffect(shifterBlock, effectIndex);
|
|
224
|
+
|
|
225
|
+
// Destroy the removed effect to free memory
|
|
226
|
+
engine.block.destroy(shifterEffect);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// Re-add the effect for display purposes
|
|
230
|
+
const newShifterEffect = engine.block.createEffect('shifter');
|
|
231
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
232
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
233
|
+
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
234
|
+
|
|
235
|
+
// Find all available properties for an effect
|
|
236
|
+
const tvGlitchProperties = engine.block.findAllProperties(tvGlitchEffect);
|
|
237
|
+
console.log('TV glitch properties:', tvGlitchProperties);
|
|
238
|
+
|
|
239
|
+
// Position all blocks in grid layout
|
|
240
|
+
const blocks = [
|
|
241
|
+
sampleBlock,
|
|
242
|
+
liquidBlock,
|
|
243
|
+
mirrorBlock,
|
|
244
|
+
shifterBlock,
|
|
245
|
+
radialPixelBlock,
|
|
246
|
+
tvGlitchBlock
|
|
247
|
+
];
|
|
248
|
+
|
|
249
|
+
blocks.forEach((block, index) => {
|
|
250
|
+
const pos = getPosition(index);
|
|
251
|
+
engine.block.setPositionX(block, pos.x);
|
|
252
|
+
engine.block.setPositionY(block, pos.y);
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
// Select the liquid effect block (second block) and open the effects panel
|
|
256
|
+
engine.block.select(liquidBlock);
|
|
257
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector/effects');
|
|
258
|
+
|
|
259
|
+
console.log('Distortion effects guide initialized.');
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
export default Example;
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
This guide covers how to enable distortion effects in the built-in UI and how to apply and configure them programmatically using the block API.
|
|
267
|
+
|
|
268
|
+
## Using the Built-in Distortion UI
|
|
269
|
+
|
|
270
|
+
To enable distortion effects in the inspector panel, use the Feature API:
|
|
271
|
+
|
|
272
|
+
```typescript highlight-enable-effects
|
|
273
|
+
// Enable effects in the inspector panel using the Feature API
|
|
274
|
+
cesdk.feature.enable('ly.img.effect');
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Once enabled, users can access distortion effects from the inspector when selecting an image or video block. The effects panel displays available distortions with real-time preview as parameters are adjusted.
|
|
278
|
+
|
|
279
|
+
## Check Effect Support
|
|
280
|
+
|
|
281
|
+
Before applying distortion effects, verify the block supports them. Graphic blocks with image or video fills support effects, while scene blocks do not.
|
|
282
|
+
|
|
283
|
+
```typescript highlight-check-support
|
|
284
|
+
// Create a sample block to demonstrate effect support checking
|
|
285
|
+
const sampleBlock = await engine.block.addImage(imageUri, {
|
|
286
|
+
size: blockSize
|
|
287
|
+
});
|
|
288
|
+
engine.block.appendChild(page, sampleBlock);
|
|
289
|
+
|
|
290
|
+
// Check if a block supports effects before applying them
|
|
291
|
+
const supportsEffects = engine.block.supportsEffects(sampleBlock);
|
|
292
|
+
console.log('Block supports effects:', supportsEffects);
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Apply Liquid Effect
|
|
296
|
+
|
|
297
|
+
The liquid effect creates organic, flowing distortions that warp the image as if viewed through water. We can configure the intensity and scale of the warping.
|
|
298
|
+
|
|
299
|
+
```typescript highlight-liquid-effect
|
|
300
|
+
// Create an image block for liquid distortion demonstration
|
|
301
|
+
const liquidBlock = await engine.block.addImage(imageUri, {
|
|
302
|
+
size: blockSize
|
|
303
|
+
});
|
|
304
|
+
engine.block.appendChild(page, liquidBlock);
|
|
305
|
+
|
|
306
|
+
// Create and apply liquid effect - creates flowing, organic warping
|
|
307
|
+
const liquidEffect = engine.block.createEffect('liquid');
|
|
308
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/amount', 0.5);
|
|
309
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/scale', 1.0);
|
|
310
|
+
engine.block.setFloat(liquidEffect, 'effect/liquid/time', 0.0);
|
|
311
|
+
engine.block.appendEffect(liquidBlock, liquidEffect);
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
The liquid effect parameters:
|
|
315
|
+
|
|
316
|
+
- **amount** (0.0 to 1.0) - Controls the intensity of the warping
|
|
317
|
+
- **scale** - Adjusts the size of the liquid pattern
|
|
318
|
+
- **time** - Animation time offset for animated liquid distortions
|
|
319
|
+
|
|
320
|
+
## Apply Mirror Effect
|
|
321
|
+
|
|
322
|
+
The mirror effect reflects the image along a configurable side, creating symmetrical compositions.
|
|
323
|
+
|
|
324
|
+
```typescript highlight-mirror-effect
|
|
325
|
+
// Create an image block for mirror effect demonstration
|
|
326
|
+
const mirrorBlock = await engine.block.addImage(imageUri, {
|
|
327
|
+
size: blockSize
|
|
328
|
+
});
|
|
329
|
+
engine.block.appendChild(page, mirrorBlock);
|
|
330
|
+
|
|
331
|
+
// Create and apply mirror effect - reflects image along a side
|
|
332
|
+
const mirrorEffect = engine.block.createEffect('mirror');
|
|
333
|
+
// Side values: 0 = Left, 1 = Right, 2 = Top, 3 = Bottom
|
|
334
|
+
engine.block.setInt(mirrorEffect, 'effect/mirror/side', 0);
|
|
335
|
+
engine.block.appendEffect(mirrorBlock, mirrorEffect);
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
The `side` parameter uses integer values: `0` (Left), `1` (Right), `2` (Top), or `3` (Bottom) to specify the reflection axis.
|
|
339
|
+
|
|
340
|
+
## Apply Shifter Effect
|
|
341
|
+
|
|
342
|
+
The shifter effect displaces color channels at an angle, creating chromatic aberration commonly seen in glitch art and retro visuals.
|
|
343
|
+
|
|
344
|
+
```typescript highlight-shifter-effect
|
|
345
|
+
// Create an image block for shifter effect demonstration
|
|
346
|
+
const shifterBlock = await engine.block.addImage(imageUri, {
|
|
347
|
+
size: blockSize
|
|
348
|
+
});
|
|
349
|
+
engine.block.appendChild(page, shifterBlock);
|
|
350
|
+
|
|
351
|
+
// Create and apply shifter effect - displaces color channels
|
|
352
|
+
const shifterEffect = engine.block.createEffect('shifter');
|
|
353
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/amount', 0.3);
|
|
354
|
+
engine.block.setFloat(shifterEffect, 'effect/shifter/angle', 0.785);
|
|
355
|
+
engine.block.appendEffect(shifterBlock, shifterEffect);
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
The shifter effect parameters:
|
|
359
|
+
|
|
360
|
+
- **amount** (0.0 to 1.0) - Controls the displacement distance
|
|
361
|
+
- **angle** - Sets the direction of the shift in radians
|
|
362
|
+
|
|
363
|
+
## Apply Radial Pixel Effect
|
|
364
|
+
|
|
365
|
+
The radial pixel effect pixelates the image in a circular pattern emanating from the center, useful for focus effects or stylized treatments.
|
|
366
|
+
|
|
367
|
+
```typescript highlight-radial-pixel-effect
|
|
368
|
+
// Create an image block for radial pixel effect demonstration
|
|
369
|
+
const radialPixelBlock = await engine.block.addImage(imageUri, {
|
|
370
|
+
size: blockSize
|
|
371
|
+
});
|
|
372
|
+
engine.block.appendChild(page, radialPixelBlock);
|
|
373
|
+
|
|
374
|
+
// Create and apply radial pixel effect - pixelates in circular pattern
|
|
375
|
+
const radialPixelEffect = engine.block.createEffect('radial_pixel');
|
|
376
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/radius', 0.5);
|
|
377
|
+
engine.block.setFloat(radialPixelEffect, 'effect/radial_pixel/segments', 0.5);
|
|
378
|
+
engine.block.appendEffect(radialPixelBlock, radialPixelEffect);
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
The radial pixel effect parameters:
|
|
382
|
+
|
|
383
|
+
- **radius** (0.0 to 1.0) - Controls the size of the pixelation effect
|
|
384
|
+
- **segments** (0.0 to 1.0) - Controls the angular segmentation intensity
|
|
385
|
+
|
|
386
|
+
## Apply TV Glitch Effect
|
|
387
|
+
|
|
388
|
+
The TV glitch effect simulates analog television interference with horizontal distortion and rolling effects, popular for retro and digital aesthetics.
|
|
389
|
+
|
|
390
|
+
```typescript highlight-tv-glitch-effect
|
|
391
|
+
// Create an image block for TV glitch effect demonstration
|
|
392
|
+
const tvGlitchBlock = await engine.block.addImage(imageUri, {
|
|
393
|
+
size: blockSize
|
|
394
|
+
});
|
|
395
|
+
engine.block.appendChild(page, tvGlitchBlock);
|
|
396
|
+
|
|
397
|
+
// Create and apply TV glitch effect - simulates analog TV interference
|
|
398
|
+
const tvGlitchEffect = engine.block.createEffect('tv_glitch');
|
|
399
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion', 0.4);
|
|
400
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/distortion2', 0.2);
|
|
401
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/speed', 0.5);
|
|
402
|
+
engine.block.setFloat(tvGlitchEffect, 'effect/tv_glitch/rollSpeed', 0.1);
|
|
403
|
+
engine.block.appendEffect(tvGlitchBlock, tvGlitchEffect);
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
The TV glitch effect parameters:
|
|
407
|
+
|
|
408
|
+
- **distortion** - Primary horizontal distortion intensity
|
|
409
|
+
- **distortion2** - Secondary distortion layer
|
|
410
|
+
- **speed** - Animation speed for the glitch effect
|
|
411
|
+
- **rollSpeed** - Vertical roll speed simulating signal sync issues
|
|
412
|
+
|
|
413
|
+
## List Applied Effects
|
|
414
|
+
|
|
415
|
+
Retrieve all effects applied to a block to inspect or iterate over them.
|
|
416
|
+
|
|
417
|
+
```typescript highlight-get-effects
|
|
418
|
+
// Get all effects applied to a block
|
|
419
|
+
const effects = engine.block.getEffects(tvGlitchBlock);
|
|
420
|
+
console.log('Applied effects:', effects);
|
|
421
|
+
|
|
422
|
+
// Get the type of each effect
|
|
423
|
+
effects.forEach((effect, index) => {
|
|
424
|
+
const effectType = engine.block.getType(effect);
|
|
425
|
+
console.log(`Effect ${index}: ${effectType}`);
|
|
426
|
+
});
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
This returns an array of effect IDs in the order they were applied.
|
|
430
|
+
|
|
431
|
+
## Enable and Disable Effects
|
|
432
|
+
|
|
433
|
+
Toggle effects on and off without removing them from the block. This preserves all effect parameters while controlling visibility.
|
|
434
|
+
|
|
435
|
+
```typescript highlight-toggle-effect
|
|
436
|
+
// Check if an effect is enabled
|
|
437
|
+
const isEnabled = engine.block.isEffectEnabled(liquidEffect);
|
|
438
|
+
console.log('Liquid effect enabled:', isEnabled);
|
|
439
|
+
|
|
440
|
+
// Disable an effect without removing it
|
|
441
|
+
engine.block.setEffectEnabled(liquidEffect, false);
|
|
442
|
+
console.log(
|
|
443
|
+
'Liquid effect now disabled:',
|
|
444
|
+
!engine.block.isEffectEnabled(liquidEffect)
|
|
445
|
+
);
|
|
446
|
+
|
|
447
|
+
// Re-enable the effect
|
|
448
|
+
engine.block.setEffectEnabled(liquidEffect, true);
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
Disabled effects remain attached to the block but won't be rendered until re-enabled. This is useful for before/after comparisons or performance optimization.
|
|
452
|
+
|
|
453
|
+
## Remove Effects
|
|
454
|
+
|
|
455
|
+
Remove effects from a block when they're no longer needed. Always destroy removed effects to free memory.
|
|
456
|
+
|
|
457
|
+
```typescript highlight-remove-effect
|
|
458
|
+
// To remove an effect, get its index and use removeEffect
|
|
459
|
+
const shifterEffects = engine.block.getEffects(shifterBlock);
|
|
460
|
+
const effectIndex = shifterEffects.indexOf(shifterEffect);
|
|
461
|
+
if (effectIndex !== -1) {
|
|
462
|
+
// Remove effect at the specified index
|
|
463
|
+
engine.block.removeEffect(shifterBlock, effectIndex);
|
|
464
|
+
|
|
465
|
+
// Destroy the removed effect to free memory
|
|
466
|
+
engine.block.destroy(shifterEffect);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// Re-add the effect for display purposes
|
|
470
|
+
const newShifterEffect = engine.block.createEffect('shifter');
|
|
471
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/amount', 0.3);
|
|
472
|
+
engine.block.setFloat(newShifterEffect, 'effect/shifter/angle', 0.785);
|
|
473
|
+
engine.block.appendEffect(shifterBlock, newShifterEffect);
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
## Discover Effect Properties
|
|
477
|
+
|
|
478
|
+
Use `findAllProperties()` to discover all available properties for any effect type.
|
|
479
|
+
|
|
480
|
+
```typescript highlight-effect-properties
|
|
481
|
+
// Find all available properties for an effect
|
|
482
|
+
const tvGlitchProperties = engine.block.findAllProperties(tvGlitchEffect);
|
|
483
|
+
console.log('TV glitch properties:', tvGlitchProperties);
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
This returns an array of property paths that can be used with `setFloat()`, `setInt()`, or `setEnum()`.
|
|
487
|
+
|
|
488
|
+
## API Reference
|
|
489
|
+
|
|
490
|
+
| Method | Description |
|
|
491
|
+
| -------------------------------------------------- | ------------------------------------ |
|
|
492
|
+
| `engine.block.supportsEffects(id)` | Check if a block supports effects |
|
|
493
|
+
| `engine.block.createEffect(type)` | Create a new effect instance |
|
|
494
|
+
| `engine.block.appendEffect(id, effectId)` | Add an effect to a block |
|
|
495
|
+
| `engine.block.getEffects(id)` | Get all effects applied to a block |
|
|
496
|
+
| `engine.block.setEffectEnabled(effectId, enabled)` | Enable or disable an effect |
|
|
497
|
+
| `engine.block.isEffectEnabled(effectId)` | Check if an effect is enabled |
|
|
498
|
+
| `engine.block.removeEffect(id, index)` | Remove an effect at a specific index |
|
|
499
|
+
| `engine.block.findAllProperties(id)` | Discover all properties of an effect |
|
|
500
|
+
| `engine.block.setFloat(id, property, value)` | Set a float property value |
|
|
501
|
+
| `engine.block.setInt(id, property, value)` | Set an integer property value |
|
|
502
|
+
| `engine.block.destroy(id)` | Destroy a block to free memory |
|
|
503
|
+
| `engine.block.getType(id)` | Get the type of a block |
|
|
504
|
+
|
|
505
|
+
## Available Distortion Effects
|
|
506
|
+
|
|
507
|
+
| Effect Type | Description | Key Properties |
|
|
508
|
+
| -------------- | ------------------------ | ------------------------------------------------- |
|
|
509
|
+
| `liquid` | Flowing, organic warping | `amount`, `scale`, `time` |
|
|
510
|
+
| `mirror` | Reflection along a side | `side` (0=Left, 1=Right, 2=Top, 3=Bottom) |
|
|
511
|
+
| `shifter` | Chromatic aberration | `amount`, `angle` |
|
|
512
|
+
| `radial_pixel` | Circular pixelation | `radius`, `segments` |
|
|
513
|
+
| `tv_glitch` | Analog TV interference | `distortion`, `distortion2`, `speed`, `rollSpeed` |
|
|
514
|
+
|
|
515
|
+
## Next Steps
|
|
516
|
+
|
|
517
|
+
- [Apply Filters and Effects](./filters-and-effects/apply.md) - Learn the foundational effect APIs
|
|
518
|
+
- [Blur Effects](./filters-and-effects/blur.md) - Apply blur techniques for depth and focus effects
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
## More Resources
|
|
523
|
+
|
|
524
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
525
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
526
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
527
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|