@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,535 @@
|
|
|
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) > [Colors](./colors.md) > [Replace Individual Colors](./colors/replace.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Selectively replace specific colors in images using CE.SDK's Recolor and Green Screen effects.
|
|
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-colors-replace-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-colors-replace-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-colors-replace-browser/)
|
|
19
|
+
|
|
20
|
+
CE.SDK provides two specialized effects for color replacement: the **Recolor** effect swaps pixels matching a source color with a target color, while the **Green Screen** effect removes pixels matching a specified color to create transparency. Both effects use configurable tolerance parameters to control which pixels are affected, enabling use cases from product color variations to background removal.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-colors-replace-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: Replace Colors Guide
|
|
46
|
+
*
|
|
47
|
+
* Demonstrates color replacement using Recolor and Green Screen effects:
|
|
48
|
+
* - Using the built-in effects UI
|
|
49
|
+
* - Creating and applying Recolor effects
|
|
50
|
+
* - Creating and applying Green Screen effects
|
|
51
|
+
* - Configuring effect properties
|
|
52
|
+
* - Managing multiple effects
|
|
53
|
+
*/
|
|
54
|
+
class Example implements EditorPlugin {
|
|
55
|
+
name = packageJson.name;
|
|
56
|
+
|
|
57
|
+
version = packageJson.version;
|
|
58
|
+
|
|
59
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
60
|
+
if (!cesdk) {
|
|
61
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
65
|
+
|
|
66
|
+
// Add asset source plugins
|
|
67
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
68
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
69
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
70
|
+
await cesdk.addPlugin(
|
|
71
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
72
|
+
);
|
|
73
|
+
await cesdk.addPlugin(
|
|
74
|
+
new DemoAssetSources({
|
|
75
|
+
include: [
|
|
76
|
+
'ly.img.templates.blank.*',
|
|
77
|
+
'ly.img.templates.presentation.*',
|
|
78
|
+
'ly.img.templates.print.*',
|
|
79
|
+
'ly.img.templates.social.*',
|
|
80
|
+
'ly.img.image.*'
|
|
81
|
+
]
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
90
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
91
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
92
|
+
|
|
93
|
+
await cesdk.actions.run('scene.create', {
|
|
94
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const engine = cesdk.engine;
|
|
98
|
+
const page = engine.block.findByType('page')[0];
|
|
99
|
+
|
|
100
|
+
const pageWidth = engine.block.getWidth(page);
|
|
101
|
+
const pageHeight = engine.block.getHeight(page);
|
|
102
|
+
|
|
103
|
+
// Enable effects in the inspector panel using the Feature API
|
|
104
|
+
cesdk.feature.enable('ly.img.effect');
|
|
105
|
+
|
|
106
|
+
// Calculate responsive grid layout for 6 examples
|
|
107
|
+
const layout = calculateGridLayout(pageWidth, pageHeight, 6);
|
|
108
|
+
const { blockWidth, blockHeight, getPosition } = layout;
|
|
109
|
+
|
|
110
|
+
// Use sample images for demonstrations
|
|
111
|
+
const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
112
|
+
const blockSize = { width: blockWidth, height: blockHeight };
|
|
113
|
+
|
|
114
|
+
// Create a Recolor effect to swap red colors to blue
|
|
115
|
+
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
116
|
+
engine.block.appendChild(page, block1);
|
|
117
|
+
|
|
118
|
+
const recolorEffect = engine.block.createEffect('recolor');
|
|
119
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
120
|
+
r: 1.0,
|
|
121
|
+
g: 0.0,
|
|
122
|
+
b: 0.0,
|
|
123
|
+
a: 1.0
|
|
124
|
+
}); // Red source color
|
|
125
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
126
|
+
r: 0.0,
|
|
127
|
+
g: 0.5,
|
|
128
|
+
b: 1.0,
|
|
129
|
+
a: 1.0
|
|
130
|
+
}); // Blue target color
|
|
131
|
+
engine.block.appendEffect(block1, recolorEffect);
|
|
132
|
+
|
|
133
|
+
// Select this block to show the effects panel
|
|
134
|
+
engine.block.setSelected(block1, true);
|
|
135
|
+
|
|
136
|
+
// Configure color matching precision for Recolor effect
|
|
137
|
+
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
138
|
+
engine.block.appendChild(page, block2);
|
|
139
|
+
|
|
140
|
+
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
141
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
142
|
+
r: 0.8,
|
|
143
|
+
g: 0.6,
|
|
144
|
+
b: 0.4,
|
|
145
|
+
a: 1.0
|
|
146
|
+
}); // Skin tone source
|
|
147
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
148
|
+
r: 0.3,
|
|
149
|
+
g: 0.7,
|
|
150
|
+
b: 0.3,
|
|
151
|
+
a: 1.0
|
|
152
|
+
}); // Green tint
|
|
153
|
+
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
154
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
155
|
+
// Adjust brightness match tolerance
|
|
156
|
+
engine.block.setFloat(
|
|
157
|
+
recolorEffect2,
|
|
158
|
+
'effect/recolor/brightnessMatch',
|
|
159
|
+
0.2
|
|
160
|
+
);
|
|
161
|
+
// Adjust edge smoothness
|
|
162
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
163
|
+
engine.block.appendEffect(block2, recolorEffect2);
|
|
164
|
+
|
|
165
|
+
// Create a Green Screen effect to remove green backgrounds
|
|
166
|
+
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
167
|
+
engine.block.appendChild(page, block3);
|
|
168
|
+
|
|
169
|
+
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
170
|
+
// Specify the color to remove (green)
|
|
171
|
+
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
172
|
+
r: 0.0,
|
|
173
|
+
g: 1.0,
|
|
174
|
+
b: 0.0,
|
|
175
|
+
a: 1.0
|
|
176
|
+
});
|
|
177
|
+
engine.block.appendEffect(block3, greenScreenEffect);
|
|
178
|
+
|
|
179
|
+
// Fine-tune Green Screen removal parameters
|
|
180
|
+
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
181
|
+
engine.block.appendChild(page, block4);
|
|
182
|
+
|
|
183
|
+
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
184
|
+
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
185
|
+
r: 0.2,
|
|
186
|
+
g: 0.8,
|
|
187
|
+
b: 0.3,
|
|
188
|
+
a: 1.0
|
|
189
|
+
}); // Specific green shade
|
|
190
|
+
// Adjust color match tolerance
|
|
191
|
+
engine.block.setFloat(
|
|
192
|
+
greenScreenEffect2,
|
|
193
|
+
'effect/green_screen/colorMatch',
|
|
194
|
+
0.4
|
|
195
|
+
);
|
|
196
|
+
// Adjust edge smoothness for cleaner removal
|
|
197
|
+
engine.block.setFloat(
|
|
198
|
+
greenScreenEffect2,
|
|
199
|
+
'effect/green_screen/smoothness',
|
|
200
|
+
0.2
|
|
201
|
+
);
|
|
202
|
+
// Reduce color spill from green background
|
|
203
|
+
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
204
|
+
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
205
|
+
|
|
206
|
+
// Demonstrate managing multiple effects on a block
|
|
207
|
+
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
208
|
+
engine.block.appendChild(page, block5);
|
|
209
|
+
|
|
210
|
+
// Add multiple effects to the same block
|
|
211
|
+
const recolor1 = engine.block.createEffect('recolor');
|
|
212
|
+
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
213
|
+
r: 1.0,
|
|
214
|
+
g: 0.0,
|
|
215
|
+
b: 0.0,
|
|
216
|
+
a: 1.0
|
|
217
|
+
});
|
|
218
|
+
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
219
|
+
r: 0.0,
|
|
220
|
+
g: 0.0,
|
|
221
|
+
b: 1.0,
|
|
222
|
+
a: 1.0
|
|
223
|
+
});
|
|
224
|
+
engine.block.appendEffect(block5, recolor1);
|
|
225
|
+
|
|
226
|
+
const recolor2 = engine.block.createEffect('recolor');
|
|
227
|
+
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
228
|
+
r: 0.0,
|
|
229
|
+
g: 1.0,
|
|
230
|
+
b: 0.0,
|
|
231
|
+
a: 1.0
|
|
232
|
+
});
|
|
233
|
+
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
234
|
+
r: 1.0,
|
|
235
|
+
g: 0.5,
|
|
236
|
+
b: 0.0,
|
|
237
|
+
a: 1.0
|
|
238
|
+
});
|
|
239
|
+
engine.block.appendEffect(block5, recolor2);
|
|
240
|
+
|
|
241
|
+
// Get all effects on the block
|
|
242
|
+
const effects = engine.block.getEffects(block5);
|
|
243
|
+
// eslint-disable-next-line no-console
|
|
244
|
+
console.log('Number of effects:', effects.length); // 2
|
|
245
|
+
|
|
246
|
+
// Disable the first effect without removing it
|
|
247
|
+
engine.block.setEffectEnabled(effects[0], false);
|
|
248
|
+
|
|
249
|
+
// Check if effect is enabled
|
|
250
|
+
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
251
|
+
// eslint-disable-next-line no-console
|
|
252
|
+
console.log('First effect enabled:', isEnabled); // false
|
|
253
|
+
|
|
254
|
+
// Apply consistent color replacement across multiple blocks
|
|
255
|
+
const block6 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
256
|
+
engine.block.appendChild(page, block6);
|
|
257
|
+
|
|
258
|
+
// Find all image blocks in the scene
|
|
259
|
+
const allBlocks = engine.block.findByType('//ly.img.ubq/graphic');
|
|
260
|
+
|
|
261
|
+
// Apply a consistent recolor effect to each block
|
|
262
|
+
allBlocks.forEach((blockId) => {
|
|
263
|
+
// Skip if block already has effects
|
|
264
|
+
if (engine.block.getEffects(blockId).length > 0) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const batchRecolor = engine.block.createEffect('recolor');
|
|
269
|
+
engine.block.setColor(batchRecolor, 'effect/recolor/fromColor', {
|
|
270
|
+
r: 0.8,
|
|
271
|
+
g: 0.7,
|
|
272
|
+
b: 0.6,
|
|
273
|
+
a: 1.0
|
|
274
|
+
});
|
|
275
|
+
engine.block.setColor(batchRecolor, 'effect/recolor/toColor', {
|
|
276
|
+
r: 0.6,
|
|
277
|
+
g: 0.7,
|
|
278
|
+
b: 0.9,
|
|
279
|
+
a: 1.0
|
|
280
|
+
});
|
|
281
|
+
engine.block.setFloat(batchRecolor, 'effect/recolor/colorMatch', 0.25);
|
|
282
|
+
engine.block.appendEffect(blockId, batchRecolor);
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// Position all blocks in a grid layout
|
|
286
|
+
const blocks = [block1, block2, block3, block4, block5, block6];
|
|
287
|
+
blocks.forEach((block, index) => {
|
|
288
|
+
const pos = getPosition(index);
|
|
289
|
+
engine.block.setPositionX(block, pos.x);
|
|
290
|
+
engine.block.setPositionY(block, pos.y);
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// Zoom to show all blocks
|
|
294
|
+
engine.block.setSelected(block1, true);
|
|
295
|
+
cesdk.engine.scene.zoomToBlock(page);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
export default Example;
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
This guide covers how to enable the built-in effects panel for interactive editing and how to apply and manage color replacement effects programmatically using the Block API.
|
|
303
|
+
|
|
304
|
+
## Using the Built-in Effects UI
|
|
305
|
+
|
|
306
|
+
The CE.SDK editor provides a visual effects panel where users can add and configure Recolor and Green Screen effects interactively. Enable the effects feature using the Feature API, then users can access effects through the inspector panel.
|
|
307
|
+
|
|
308
|
+
To enable effects in your editor configuration:
|
|
309
|
+
|
|
310
|
+
```typescript highlight=highlight-enable-effects-panel
|
|
311
|
+
// Enable effects in the inspector panel using the Feature API
|
|
312
|
+
cesdk.feature.enable('ly.img.effect');
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
With effects enabled, users can:
|
|
316
|
+
|
|
317
|
+
- Select an image block and open the effects panel
|
|
318
|
+
- Add Recolor or Green Screen effects from the available options
|
|
319
|
+
- Use visual color pickers to select source and target colors
|
|
320
|
+
- Adjust tolerance sliders for color match, brightness match, and smoothness
|
|
321
|
+
- See changes applied in real-time on the canvas
|
|
322
|
+
|
|
323
|
+
## Programmatic Color Replacement
|
|
324
|
+
|
|
325
|
+
For automation workflows or custom implementations, you can create and apply color replacement effects programmatically using the Block API. Effects are created as blocks, configured with properties, and appended to target blocks.
|
|
326
|
+
|
|
327
|
+
### Creating a Recolor Effect
|
|
328
|
+
|
|
329
|
+
The Recolor effect replaces pixels matching a source color with a target color. Use `engine.block.createEffect('recolor')` to create the effect, then set the `fromColor` and `toColor` properties using `engine.block.setColor()`.
|
|
330
|
+
|
|
331
|
+
```typescript highlight=highlight-create-recolor-effect
|
|
332
|
+
// Create a Recolor effect to swap red colors to blue
|
|
333
|
+
const block1 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
334
|
+
engine.block.appendChild(page, block1);
|
|
335
|
+
|
|
336
|
+
const recolorEffect = engine.block.createEffect('recolor');
|
|
337
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/fromColor', {
|
|
338
|
+
r: 1.0,
|
|
339
|
+
g: 0.0,
|
|
340
|
+
b: 0.0,
|
|
341
|
+
a: 1.0
|
|
342
|
+
}); // Red source color
|
|
343
|
+
engine.block.setColor(recolorEffect, 'effect/recolor/toColor', {
|
|
344
|
+
r: 0.0,
|
|
345
|
+
g: 0.5,
|
|
346
|
+
b: 1.0,
|
|
347
|
+
a: 1.0
|
|
348
|
+
}); // Blue target color
|
|
349
|
+
engine.block.appendEffect(block1, recolorEffect);
|
|
350
|
+
|
|
351
|
+
// Select this block to show the effects panel
|
|
352
|
+
engine.block.setSelected(block1, true);
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
The `fromColor` specifies which color to match in the image, and `toColor` defines the replacement color. Colors use RGBA format with values from 0 to 1.
|
|
356
|
+
|
|
357
|
+
### Configuring Color Matching Precision
|
|
358
|
+
|
|
359
|
+
Fine-tune which pixels are affected by adjusting the tolerance parameters with `engine.block.setFloat()`:
|
|
360
|
+
|
|
361
|
+
```typescript highlight=highlight-configure-recolor-matching
|
|
362
|
+
// Configure color matching precision for Recolor effect
|
|
363
|
+
const block2 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
364
|
+
engine.block.appendChild(page, block2);
|
|
365
|
+
|
|
366
|
+
const recolorEffect2 = engine.block.createEffect('recolor');
|
|
367
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/fromColor', {
|
|
368
|
+
r: 0.8,
|
|
369
|
+
g: 0.6,
|
|
370
|
+
b: 0.4,
|
|
371
|
+
a: 1.0
|
|
372
|
+
}); // Skin tone source
|
|
373
|
+
engine.block.setColor(recolorEffect2, 'effect/recolor/toColor', {
|
|
374
|
+
r: 0.3,
|
|
375
|
+
g: 0.7,
|
|
376
|
+
b: 0.3,
|
|
377
|
+
a: 1.0
|
|
378
|
+
}); // Green tint
|
|
379
|
+
// Adjust color match tolerance (0-1, higher = more inclusive)
|
|
380
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/colorMatch', 0.3);
|
|
381
|
+
// Adjust brightness match tolerance
|
|
382
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/brightnessMatch', 0.2);
|
|
383
|
+
// Adjust edge smoothness
|
|
384
|
+
engine.block.setFloat(recolorEffect2, 'effect/recolor/smoothness', 0.1);
|
|
385
|
+
engine.block.appendEffect(block2, recolorEffect2);
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
The Recolor effect has three precision parameters:
|
|
389
|
+
|
|
390
|
+
- **colorMatch** (0-1): Controls hue tolerance. Higher values include more color variations around the source color.
|
|
391
|
+
- **brightnessMatch** (0-1): Controls luminance tolerance. Higher values include pixels with different brightness levels.
|
|
392
|
+
- **smoothness** (0-1): Controls edge blending. Higher values create softer transitions at the boundaries of affected areas.
|
|
393
|
+
|
|
394
|
+
### Creating a Green Screen Effect
|
|
395
|
+
|
|
396
|
+
The Green Screen effect removes pixels matching a specified color, making them transparent. This is commonly used for background removal.
|
|
397
|
+
|
|
398
|
+
```typescript highlight=highlight-create-green-screen-effect
|
|
399
|
+
// Create a Green Screen effect to remove green backgrounds
|
|
400
|
+
const block3 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
401
|
+
engine.block.appendChild(page, block3);
|
|
402
|
+
|
|
403
|
+
const greenScreenEffect = engine.block.createEffect('green_screen');
|
|
404
|
+
// Specify the color to remove (green)
|
|
405
|
+
engine.block.setColor(greenScreenEffect, 'effect/green_screen/fromColor', {
|
|
406
|
+
r: 0.0,
|
|
407
|
+
g: 1.0,
|
|
408
|
+
b: 0.0,
|
|
409
|
+
a: 1.0
|
|
410
|
+
});
|
|
411
|
+
engine.block.appendEffect(block3, greenScreenEffect);
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
Set the `fromColor` property to specify which color to remove. The effect will make matching pixels transparent.
|
|
415
|
+
|
|
416
|
+
### Configuring Green Screen Parameters
|
|
417
|
+
|
|
418
|
+
Control the precision of color removal using these parameters:
|
|
419
|
+
|
|
420
|
+
```typescript highlight=highlight-configure-green-screen
|
|
421
|
+
// Fine-tune Green Screen removal parameters
|
|
422
|
+
const block4 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
423
|
+
engine.block.appendChild(page, block4);
|
|
424
|
+
|
|
425
|
+
const greenScreenEffect2 = engine.block.createEffect('green_screen');
|
|
426
|
+
engine.block.setColor(greenScreenEffect2, 'effect/green_screen/fromColor', {
|
|
427
|
+
r: 0.2,
|
|
428
|
+
g: 0.8,
|
|
429
|
+
b: 0.3,
|
|
430
|
+
a: 1.0
|
|
431
|
+
}); // Specific green shade
|
|
432
|
+
// Adjust color match tolerance
|
|
433
|
+
engine.block.setFloat(
|
|
434
|
+
greenScreenEffect2,
|
|
435
|
+
'effect/green_screen/colorMatch',
|
|
436
|
+
0.4
|
|
437
|
+
);
|
|
438
|
+
// Adjust edge smoothness for cleaner removal
|
|
439
|
+
engine.block.setFloat(
|
|
440
|
+
greenScreenEffect2,
|
|
441
|
+
'effect/green_screen/smoothness',
|
|
442
|
+
0.2
|
|
443
|
+
);
|
|
444
|
+
// Reduce color spill from green background
|
|
445
|
+
engine.block.setFloat(greenScreenEffect2, 'effect/green_screen/spill', 0.5);
|
|
446
|
+
engine.block.appendEffect(block4, greenScreenEffect2);
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
The Green Screen effect parameters:
|
|
450
|
+
|
|
451
|
+
- **colorMatch**: Tolerance for matching the background color
|
|
452
|
+
- **smoothness**: Edge softness for cleaner cutouts around subjects
|
|
453
|
+
- **spill**: Reduces color bleed from the removed background onto the subject, useful when the background color reflects onto edges
|
|
454
|
+
|
|
455
|
+
## Managing Multiple Effects
|
|
456
|
+
|
|
457
|
+
A single block can have multiple effects applied. Use the effect management APIs to list, toggle, and remove effects.
|
|
458
|
+
|
|
459
|
+
```typescript highlight=highlight-manage-effects
|
|
460
|
+
// Demonstrate managing multiple effects on a block
|
|
461
|
+
const block5 = await engine.block.addImage(imageUri, { size: blockSize });
|
|
462
|
+
engine.block.appendChild(page, block5);
|
|
463
|
+
|
|
464
|
+
// Add multiple effects to the same block
|
|
465
|
+
const recolor1 = engine.block.createEffect('recolor');
|
|
466
|
+
engine.block.setColor(recolor1, 'effect/recolor/fromColor', {
|
|
467
|
+
r: 1.0,
|
|
468
|
+
g: 0.0,
|
|
469
|
+
b: 0.0,
|
|
470
|
+
a: 1.0
|
|
471
|
+
});
|
|
472
|
+
engine.block.setColor(recolor1, 'effect/recolor/toColor', {
|
|
473
|
+
r: 0.0,
|
|
474
|
+
g: 0.0,
|
|
475
|
+
b: 1.0,
|
|
476
|
+
a: 1.0
|
|
477
|
+
});
|
|
478
|
+
engine.block.appendEffect(block5, recolor1);
|
|
479
|
+
|
|
480
|
+
const recolor2 = engine.block.createEffect('recolor');
|
|
481
|
+
engine.block.setColor(recolor2, 'effect/recolor/fromColor', {
|
|
482
|
+
r: 0.0,
|
|
483
|
+
g: 1.0,
|
|
484
|
+
b: 0.0,
|
|
485
|
+
a: 1.0
|
|
486
|
+
});
|
|
487
|
+
engine.block.setColor(recolor2, 'effect/recolor/toColor', {
|
|
488
|
+
r: 1.0,
|
|
489
|
+
g: 0.5,
|
|
490
|
+
b: 0.0,
|
|
491
|
+
a: 1.0
|
|
492
|
+
});
|
|
493
|
+
engine.block.appendEffect(block5, recolor2);
|
|
494
|
+
|
|
495
|
+
// Get all effects on the block
|
|
496
|
+
const effects = engine.block.getEffects(block5);
|
|
497
|
+
// eslint-disable-next-line no-console
|
|
498
|
+
console.log('Number of effects:', effects.length); // 2
|
|
499
|
+
|
|
500
|
+
// Disable the first effect without removing it
|
|
501
|
+
engine.block.setEffectEnabled(effects[0], false);
|
|
502
|
+
|
|
503
|
+
// Check if effect is enabled
|
|
504
|
+
const isEnabled = engine.block.isEffectEnabled(effects[0]);
|
|
505
|
+
// eslint-disable-next-line no-console
|
|
506
|
+
console.log('First effect enabled:', isEnabled); // false
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
Key effect management methods:
|
|
510
|
+
|
|
511
|
+
- `engine.block.getEffects(blockId)`: Returns an array of all effect IDs attached to a block
|
|
512
|
+
- `engine.block.setEffectEnabled(effectId, enabled)`: Toggle an effect on/off without removing it
|
|
513
|
+
- `engine.block.isEffectEnabled(effectId)`: Check whether an effect is currently active
|
|
514
|
+
- `engine.block.removeEffect(blockId, index)`: Remove an effect by its index in the effects array
|
|
515
|
+
|
|
516
|
+
Stacking multiple Recolor effects enables complex color transformations, such as replacing multiple colors in a single image or creating variations.
|
|
517
|
+
|
|
518
|
+
## Troubleshooting
|
|
519
|
+
|
|
520
|
+
**Colors not matching as expected**: Increase the `colorMatch` tolerance for broader selection, or decrease it for more precise matching. Check that your source color closely matches the actual color in the image.
|
|
521
|
+
|
|
522
|
+
**Harsh edges around replaced areas**: Increase the `smoothness` value to create softer transitions at the boundaries of affected pixels.
|
|
523
|
+
|
|
524
|
+
**Color spill on Green Screen subjects**: Increase the `spill` value to reduce the green tint that often appears on edges when removing green backgrounds.
|
|
525
|
+
|
|
526
|
+
**Effect not visible**: Verify that the effect is enabled using `isEffectEnabled()` and that it has been appended to the block using `appendEffect()`.
|
|
527
|
+
|
|
528
|
+
---
|
|
529
|
+
|
|
530
|
+
## More Resources
|
|
531
|
+
|
|
532
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
533
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
534
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
535
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,28 @@
|
|
|
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) > [Colors](./colors.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Overview](./colors/overview.md) - Manage color usage in your designs, from applying brand palettes to handling print and screen formats.
|
|
12
|
+
- [Color Basics](./colors/basics.md) - Learn how color works in CE.SDK, including the three supported color spaces (sRGB, CMYK, and Spot) and when to use each for screen display or print workflows.
|
|
13
|
+
- [For Print](./colors/for-print.md) - Use print-ready color models and settings for professional-quality, production-ready exports.
|
|
14
|
+
- [For Screen](./colors/for-screen.md) - Documentation for For Screen
|
|
15
|
+
- [Apply Colors](./colors/apply.md) - Apply solid colors to shapes, backgrounds, and other design elements.
|
|
16
|
+
- [Create a Color Palette](./colors/create-color-palette.md) - Build reusable color palettes to maintain consistency and streamline user choices.
|
|
17
|
+
- [Replace Individual Colors](./colors/replace.md) - Selectively replace specific colors in images using CE.SDK's Recolor and Green Screen effects to swap colors or remove backgrounds.
|
|
18
|
+
- [Adjust Colors](./colors/adjust.md) - Fine-tune images and design elements by adjusting brightness, contrast, saturation, exposure, and other color properties using CE.SDK's adjustments effect system.
|
|
19
|
+
- [Color Conversion](./colors/conversion.md) - Learn how to convert colors between color spaces in CE.SDK. Convert sRGB, CMYK, and spot colors programmatically for screen display or print workflows.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## More Resources
|
|
24
|
+
|
|
25
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
26
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
27
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
28
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,27 @@
|
|
|
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:** [Compatibility & Security](./compatibility.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
CE.SDK provides robust compatibility and security features across platforms.
|
|
8
|
+
Learn about supported browsers, frameworks, file formats, language support,
|
|
9
|
+
and how CE.SDK ensures secure operation in your applications.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Related Pages
|
|
14
|
+
|
|
15
|
+
- [Browser Support](./browser-support.md) - Find out which browsers and versions fully support CE.SDK features, including editing and video capabilities.
|
|
16
|
+
- [System Compatibility](./compatibility.md) - Learn how device performance and hardware limits affect CE.SDK editing, rendering, and export capabilities.
|
|
17
|
+
- [File Format Support](./file-format-support.md) - See which image, video, audio, font, and template formats CE.SDK supports for import and export.
|
|
18
|
+
- [Security](./security.md) - Learn how CE.SDK keeps your data private with client-side processing, secure licensing, and GDPR-compliant practices.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## More Resources
|
|
23
|
+
|
|
24
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
25
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
26
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
27
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
> This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
|
+
|
|
3
|
+
**Navigation:** [Concepts](./concepts.md) > [Architecture](./concepts/architecture.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Understand how CE.SDK is structured around the CreativeEngine and its six interconnected APIs.
|
|
8
|
+
|
|
9
|
+
CE.SDK is built around the **CreativeEngine**—a single-threaded core runtime that manages state, rendering, and coordination between six specialized APIs. Understanding how these pieces connect helps you navigate the SDK effectively.
|
|
10
|
+
|
|
11
|
+
## The CreativeEngine
|
|
12
|
+
|
|
13
|
+
The _Engine_ is the central coordinator. All operations—creating content, manipulating blocks, rendering, and exporting—flow through it. Initialize it once and access everything else through its API namespaces.
|
|
14
|
+
|
|
15
|
+
The _Engine_ manages:
|
|
16
|
+
|
|
17
|
+
- **One active scene** containing all design content
|
|
18
|
+
- **Six API namespaces** for different domains of functionality
|
|
19
|
+
- **Event dispatching** for reactive state management
|
|
20
|
+
- **Resource loading** and caching
|
|
21
|
+
- **Rendering** to a canvas element (browser) or headless export (server)
|
|
22
|
+
|
|
23
|
+
## Content Hierarchy
|
|
24
|
+
|
|
25
|
+
CE.SDK organizes content in a tree: _Scene_ → _Pages_ → _Blocks_.
|
|
26
|
+
|
|
27
|
+
- **Scene**: The root container. One scene per engine instance. Supports both static designs and time-based video editing.
|
|
28
|
+
- **Pages**: Containers within a scene. Artboards for static designs, time-based compositions for video editing.
|
|
29
|
+
- **Blocks**: The atomic units—graphics, text, audio, video. Everything visible is a block.
|
|
30
|
+
|
|
31
|
+
The **Scene API** manages this hierarchy. The **Block API** manipulates individual blocks within it. See [Scenes](./concepts/scenes.md), [Pages](./concepts/pages.md), and [Blocks](./concepts/blocks.md) for details.
|
|
32
|
+
|
|
33
|
+
## The Six APIs
|
|
34
|
+
|
|
35
|
+
The engine exposes six API namespaces. Here's how they interconnect:
|
|
36
|
+
|
|
37
|
+
### Scene API (`engine.scene`)
|
|
38
|
+
|
|
39
|
+
Creates and manages the content hierarchy. Works with the _Block API_ to populate scenes with content and the _Event API_ to notify when structure changes.
|
|
40
|
+
|
|
41
|
+
### Block API (`engine.block`)
|
|
42
|
+
|
|
43
|
+
The most-used API. Creates, modifies, and queries blocks. Every visual element flows through here. Blocks reference _Assets_ loaded through the _Asset API_ and can contain _Variables_ managed by the _Variable API_.
|
|
44
|
+
|
|
45
|
+
### Asset API (`engine.asset`)
|
|
46
|
+
|
|
47
|
+
Provides content to the _Block API_. Registers asset sources (images, videos, stickers, templates) and handles queries. When you add an image to a block, the _Asset API_ resolves it and the _Block API_ applies it.
|
|
48
|
+
|
|
49
|
+
### Variable API (`engine.variable`)
|
|
50
|
+
|
|
51
|
+
Enables data-driven designs. Define variables at the scene level; reference them in text blocks with `{{variableName}}` syntax. When variable values change, affected blocks update automatically—coordinated through the _Event API_.
|
|
52
|
+
|
|
53
|
+
### Editor API (`engine.editor`)
|
|
54
|
+
|
|
55
|
+
Controls application state: edit modes, undo/redo history, user roles, and permissions. The _Editor API_ determines what operations the _Block API_ can perform based on current role and scope settings.
|
|
56
|
+
|
|
57
|
+
### Event API (`engine.event`)
|
|
58
|
+
|
|
59
|
+
The reactive backbone. Subscribe to changes across all other APIs—block modifications, selection changes, history updates. Build UIs that stay synchronized with engine state.
|
|
60
|
+
|
|
61
|
+
## How They Connect
|
|
62
|
+
|
|
63
|
+
A typical flow shows the interconnection:
|
|
64
|
+
|
|
65
|
+
1. **Scene API** creates the content structure
|
|
66
|
+
2. **Asset API** provides images, templates, or other content
|
|
67
|
+
3. **Block API** creates blocks and applies assets to them
|
|
68
|
+
4. **Variable API** injects dynamic data into text blocks
|
|
69
|
+
5. **Editor API** controls what users can modify
|
|
70
|
+
6. **Event API** notifies your UI of every change
|
|
71
|
+
|
|
72
|
+
Each API focuses on one domain but works through the others. The _Engine_ coordinates these interactions.
|
|
73
|
+
|
|
74
|
+
## Scene Capabilities
|
|
75
|
+
|
|
76
|
+
CE.SDK scenes support a range of capabilities:
|
|
77
|
+
|
|
78
|
+
- **Static designs**: Social posts, print materials, graphics. Blocks positioned spatially.
|
|
79
|
+
- **Time-based content**: Duration, playback time, and animation. Blocks arranged across time.
|
|
80
|
+
|
|
81
|
+
The scene configuration determines which _Block API_ properties and _Editor API_ capabilities are available. See [Scenes](./concepts/scenes.md) for details.
|
|
82
|
+
|
|
83
|
+
## Integration Patterns
|
|
84
|
+
|
|
85
|
+
CE.SDK runs in two contexts:
|
|
86
|
+
|
|
87
|
+
- **Browser**: The engine renders to a canvas element. Append `engine.element` to your DOM. Use with the built-in UI or build your own.
|
|
88
|
+
- **Headless**: No rendering, just processing. Use for server-side exports, automation, and batch operations. See [Headless Mode](./concepts/headless-mode/browser.md).
|
|
89
|
+
|
|
90
|
+
Both contexts use the same six APIs—only rendering differs.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## More Resources
|
|
95
|
+
|
|
96
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
97
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
98
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
99
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|