@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,553 @@
|
|
|
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) > [User Interface](./user-interface.md) > [UI Extensions](./user-interface/ui-extensions.md) > [Customize Behaviour](./user-interface/ui-extensions/customize-behaviour.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Control CE.SDK's interface programmatically at runtime through event subscriptions, panel operations, notifications, and dynamic feature management.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 8 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-user-interface-ui-extensions-customize-behaviour-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-user-interface-ui-extensions-customize-behaviour-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-user-interface-ui-extensions-customize-behaviour-browser/)
|
|
19
|
+
|
|
20
|
+
UI behavior customization enables responsive, context-aware editing experiences. You can listen for user interactions, manipulate UI state dynamically based on application logic, integrate CE.SDK with external workflows, and build custom behavior that responds to editing events.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-user-interface-ui-extensions-customize-behaviour-browser/browser.ts reference-only
|
|
23
|
+
import type {
|
|
24
|
+
CreativeEngine,
|
|
25
|
+
EditorPlugin,
|
|
26
|
+
EditorPluginContext
|
|
27
|
+
} from '@cesdk/cesdk-js';
|
|
28
|
+
import type { BlockEvent } from '@cesdk/cesdk-js';
|
|
29
|
+
import CreativeEditorSDK from '@cesdk/cesdk-js';
|
|
30
|
+
import {
|
|
31
|
+
BlurAssetSource,
|
|
32
|
+
ColorPaletteAssetSource,
|
|
33
|
+
CropPresetsAssetSource,
|
|
34
|
+
DemoAssetSources,
|
|
35
|
+
EffectsAssetSource,
|
|
36
|
+
FiltersAssetSource,
|
|
37
|
+
PagePresetsAssetSource,
|
|
38
|
+
StickerAssetSource,
|
|
39
|
+
TextAssetSource,
|
|
40
|
+
TextComponentAssetSource,
|
|
41
|
+
TypefaceAssetSource,
|
|
42
|
+
UploadAssetSources,
|
|
43
|
+
VectorShapeAssetSource
|
|
44
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
45
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
46
|
+
|
|
47
|
+
export default class CustomizeBehaviorExample implements EditorPlugin {
|
|
48
|
+
name = 'CustomizeBehaviorExample';
|
|
49
|
+
version = '1.0.0';
|
|
50
|
+
|
|
51
|
+
async initialize({ cesdk, engine }: EditorPluginContext) {
|
|
52
|
+
if (!cesdk) {
|
|
53
|
+
throw new Error('CE.SDK not available');
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
57
|
+
|
|
58
|
+
// Add asset source plugins
|
|
59
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
60
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
61
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
62
|
+
await cesdk.addPlugin(
|
|
63
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
64
|
+
);
|
|
65
|
+
await cesdk.addPlugin(
|
|
66
|
+
new DemoAssetSources({
|
|
67
|
+
include: [
|
|
68
|
+
'ly.img.templates.blank.*',
|
|
69
|
+
'ly.img.templates.presentation.*',
|
|
70
|
+
'ly.img.templates.print.*',
|
|
71
|
+
'ly.img.templates.social.*',
|
|
72
|
+
'ly.img.image.*'
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
);
|
|
76
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
79
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
80
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
81
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
82
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
84
|
+
|
|
85
|
+
// Load a simple scene for demonstration
|
|
86
|
+
await engine.scene.loadFromURL(
|
|
87
|
+
'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_postcard_1.scene'
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
// Show welcome dialog first, then run demonstrations after user confirms
|
|
91
|
+
this.demonstrateDialogs(cesdk, engine);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
private demonstrateEventSubscription(
|
|
95
|
+
engine: CreativeEngine,
|
|
96
|
+
cesdk: any
|
|
97
|
+
): void {
|
|
98
|
+
// Subscribe to all block events
|
|
99
|
+
const unsubscribe = engine.event.subscribe([], (events: BlockEvent[]) => {
|
|
100
|
+
events.forEach((event) => {
|
|
101
|
+
// eslint-disable-next-line no-console
|
|
102
|
+
console.log(`Block event: ${event.type} on block ${event.block}`);
|
|
103
|
+
|
|
104
|
+
// Show notification when blocks are created
|
|
105
|
+
if (event.type === 'Created') {
|
|
106
|
+
cesdk.ui.showNotification({
|
|
107
|
+
message: `Block created: ${event.block}`,
|
|
108
|
+
type: 'info',
|
|
109
|
+
duration: 'short'
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
// Store unsubscribe function for cleanup
|
|
116
|
+
(window as any).unsubscribeEvents = unsubscribe;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
private demonstratePanelManagement(cesdk: any): void {
|
|
120
|
+
// Check if inspector panel is open
|
|
121
|
+
const isInspectorOpen = cesdk.ui.isPanelOpen('//ly.img.panel/inspector');
|
|
122
|
+
// eslint-disable-next-line no-console
|
|
123
|
+
console.log('Inspector panel open:', isInspectorOpen);
|
|
124
|
+
|
|
125
|
+
// Open panel conditionally
|
|
126
|
+
if (!isInspectorOpen) {
|
|
127
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector');
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Close panel after delay (for demonstration)
|
|
131
|
+
setTimeout(() => {
|
|
132
|
+
cesdk.ui.closePanel('//ly.img.panel/inspector');
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.log('Inspector panel closed');
|
|
135
|
+
}, 2000);
|
|
136
|
+
|
|
137
|
+
// Find all available panels
|
|
138
|
+
const allPanels = cesdk.ui.findAllPanels();
|
|
139
|
+
// eslint-disable-next-line no-console
|
|
140
|
+
console.log('Available panels:', allPanels);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
private demonstrateNotifications(cesdk: any): void {
|
|
144
|
+
// Show simple notification
|
|
145
|
+
const notificationId = cesdk.ui.showNotification('Welcome to CE.SDK!');
|
|
146
|
+
// eslint-disable-next-line no-console
|
|
147
|
+
console.log('Notification ID:', notificationId);
|
|
148
|
+
|
|
149
|
+
// Show notification with configuration
|
|
150
|
+
setTimeout(() => {
|
|
151
|
+
cesdk.ui.showNotification({
|
|
152
|
+
message: 'This is a success message',
|
|
153
|
+
type: 'success',
|
|
154
|
+
duration: 'medium'
|
|
155
|
+
});
|
|
156
|
+
}, 1000);
|
|
157
|
+
|
|
158
|
+
// Show error notification
|
|
159
|
+
setTimeout(() => {
|
|
160
|
+
cesdk.ui.showNotification({
|
|
161
|
+
message: 'This is an error notification',
|
|
162
|
+
type: 'error',
|
|
163
|
+
duration: 'long'
|
|
164
|
+
});
|
|
165
|
+
}, 2000);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
private demonstrateDialogs(
|
|
169
|
+
cesdk: CreativeEditorSDK,
|
|
170
|
+
engine: CreativeEngine
|
|
171
|
+
): void {
|
|
172
|
+
// Show welcome dialog immediately
|
|
173
|
+
cesdk.ui.showDialog({
|
|
174
|
+
type: 'info',
|
|
175
|
+
content: {
|
|
176
|
+
title: 'Welcome to CE.SDK UI Behavior Customization',
|
|
177
|
+
message:
|
|
178
|
+
"This example demonstrates how to programmatically control CE.SDK's interface through event subscriptions, panel management, notifications, dialogs, custom actions, and theme controls. Click 'Confirm' to start the demonstration."
|
|
179
|
+
},
|
|
180
|
+
actions: [
|
|
181
|
+
{
|
|
182
|
+
label: 'Cancel',
|
|
183
|
+
onClick: (context) => {
|
|
184
|
+
// eslint-disable-next-line no-console
|
|
185
|
+
console.log('User cancelled demonstration');
|
|
186
|
+
cesdk.ui.closeDialog(context.id);
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
label: 'Confirm',
|
|
191
|
+
onClick: (context) => {
|
|
192
|
+
// eslint-disable-next-line no-console
|
|
193
|
+
console.log('User confirmed - starting demonstrations');
|
|
194
|
+
cesdk.ui.closeDialog(context.id);
|
|
195
|
+
|
|
196
|
+
// Run all demonstrations after user confirms
|
|
197
|
+
this.demonstrateEventSubscription(engine, cesdk);
|
|
198
|
+
this.demonstratePanelManagement(cesdk);
|
|
199
|
+
this.demonstrateNotifications(cesdk);
|
|
200
|
+
this.demonstrateCustomActions(cesdk);
|
|
201
|
+
this.demonstrateThemeControl(cesdk);
|
|
202
|
+
this.demonstrateFeatureManagement(cesdk);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
private demonstrateCustomActions(cesdk: any): void {
|
|
210
|
+
// Register a custom download action
|
|
211
|
+
cesdk.actions.register(
|
|
212
|
+
'downloadFile',
|
|
213
|
+
async (blob: Blob, mimeType: string) => {
|
|
214
|
+
// eslint-disable-next-line no-console
|
|
215
|
+
console.log('Custom download action called:', { blob, mimeType });
|
|
216
|
+
|
|
217
|
+
// Custom download logic
|
|
218
|
+
const url = URL.createObjectURL(blob);
|
|
219
|
+
const link = document.createElement('a');
|
|
220
|
+
link.href = url;
|
|
221
|
+
link.download = `export.${mimeType.split('/')[1]}`;
|
|
222
|
+
link.click();
|
|
223
|
+
URL.revokeObjectURL(url);
|
|
224
|
+
|
|
225
|
+
cesdk.ui.showNotification({
|
|
226
|
+
message: 'File downloaded successfully!',
|
|
227
|
+
type: 'success'
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
);
|
|
231
|
+
|
|
232
|
+
// List all registered actions
|
|
233
|
+
const actions = cesdk.actions.list();
|
|
234
|
+
// eslint-disable-next-line no-console
|
|
235
|
+
console.log('Registered actions:', actions);
|
|
236
|
+
|
|
237
|
+
// Check if specific action exists
|
|
238
|
+
const downloadAction = cesdk.actions.get('downloadFile');
|
|
239
|
+
// eslint-disable-next-line no-console
|
|
240
|
+
console.log('Download action registered:', !!downloadAction);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
private demonstrateThemeControl(cesdk: any): void {
|
|
244
|
+
// Get current theme
|
|
245
|
+
const currentTheme = cesdk.ui.getTheme();
|
|
246
|
+
// eslint-disable-next-line no-console
|
|
247
|
+
console.log('Current theme:', currentTheme);
|
|
248
|
+
|
|
249
|
+
// Toggle theme after delay
|
|
250
|
+
setTimeout(() => {
|
|
251
|
+
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
|
|
252
|
+
cesdk.ui.setTheme(newTheme);
|
|
253
|
+
// eslint-disable-next-line no-console
|
|
254
|
+
console.log('Theme changed to:', newTheme);
|
|
255
|
+
|
|
256
|
+
cesdk.ui.showNotification({
|
|
257
|
+
message: `Theme switched to ${newTheme} mode`,
|
|
258
|
+
type: 'info'
|
|
259
|
+
});
|
|
260
|
+
}, 5000);
|
|
261
|
+
|
|
262
|
+
// Get current scale
|
|
263
|
+
const currentScale = cesdk.ui.getScale();
|
|
264
|
+
// eslint-disable-next-line no-console
|
|
265
|
+
console.log('Current scale:', currentScale);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
private demonstrateFeatureManagement(cesdk: any): void {
|
|
269
|
+
// Check if feature is enabled
|
|
270
|
+
const isUndoEnabled = cesdk.feature.isEnabled('ly.img.undo');
|
|
271
|
+
// eslint-disable-next-line no-console
|
|
272
|
+
console.log('Undo feature enabled:', isUndoEnabled);
|
|
273
|
+
|
|
274
|
+
// Disable feature conditionally
|
|
275
|
+
setTimeout(() => {
|
|
276
|
+
// Example: Disable undo for demonstration
|
|
277
|
+
// cesdk.feature.disable('ly.img.undo');
|
|
278
|
+
// eslint-disable-next-line no-console
|
|
279
|
+
console.log('Feature management demonstrated (undo not disabled)');
|
|
280
|
+
}, 6000);
|
|
281
|
+
|
|
282
|
+
// List features matching pattern
|
|
283
|
+
const allFeatures = cesdk.feature.list({ matcher: 'ly.img.*' });
|
|
284
|
+
// eslint-disable-next-line no-console
|
|
285
|
+
console.log('Available features:', allFeatures.slice(0, 10));
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
async demonstrateExternalIntegration(
|
|
289
|
+
engine: CreativeEngine,
|
|
290
|
+
cesdk: any
|
|
291
|
+
): Promise<void> {
|
|
292
|
+
// Example: Integrate with external state management
|
|
293
|
+
const externalState = {
|
|
294
|
+
selectedBlockCount: 0,
|
|
295
|
+
lastEventType: ''
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
// Subscribe to events and update external state
|
|
299
|
+
engine.event.subscribe([], (events: BlockEvent[]) => {
|
|
300
|
+
events.forEach((event) => {
|
|
301
|
+
externalState.lastEventType = event.type;
|
|
302
|
+
// eslint-disable-next-line no-console
|
|
303
|
+
console.log('External state updated:', externalState);
|
|
304
|
+
});
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
// Listen for external changes and update UI
|
|
308
|
+
// In a real app, this would connect to Redux, MobX, etc.
|
|
309
|
+
setInterval(() => {
|
|
310
|
+
const selectedBlocks = engine.block.findAllSelected();
|
|
311
|
+
if (selectedBlocks.length !== externalState.selectedBlockCount) {
|
|
312
|
+
externalState.selectedBlockCount = selectedBlocks.length;
|
|
313
|
+
// eslint-disable-next-line no-console
|
|
314
|
+
console.log('Selection changed:', externalState.selectedBlockCount);
|
|
315
|
+
|
|
316
|
+
// Show panel when blocks are selected
|
|
317
|
+
if (selectedBlocks.length > 0) {
|
|
318
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector');
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}, 1000);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
private demonstrateContextAwareWorkflow(
|
|
325
|
+
engine: CreativeEngine,
|
|
326
|
+
cesdk: any
|
|
327
|
+
): void {
|
|
328
|
+
// Create context-aware workflow
|
|
329
|
+
engine.event.subscribe([], (events: BlockEvent[]) => {
|
|
330
|
+
events.forEach((event) => {
|
|
331
|
+
if (event.type === 'Created') {
|
|
332
|
+
// Show notification for new blocks
|
|
333
|
+
cesdk.ui.showNotification({
|
|
334
|
+
message: 'New block created - Opening inspector',
|
|
335
|
+
type: 'info'
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
// Open inspector panel
|
|
339
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector');
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (event.type === 'Destroyed') {
|
|
343
|
+
// Check if any blocks remain
|
|
344
|
+
const allBlocks = engine.block.findAll();
|
|
345
|
+
if (allBlocks.length === 0) {
|
|
346
|
+
cesdk.ui.showNotification({
|
|
347
|
+
message: 'All blocks removed',
|
|
348
|
+
type: 'info'
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
This guide demonstrates the core behavior customization APIs: notifications and dialogs for user feedback, custom action registration, dynamic theme and scale control, feature management, and external state integration. For detailed event handling and panel management, see the dedicated guides linked in each section.
|
|
359
|
+
|
|
360
|
+
## Listening to Editing Events
|
|
361
|
+
|
|
362
|
+
Subscribe to block events to react to changes in your scene. The event system delivers batched updates for Created, Updated, and Destroyed events.
|
|
363
|
+
|
|
364
|
+
```typescript
|
|
365
|
+
const unsubscribe = engine.event.subscribe([], (events: BlockEvent[]) => {
|
|
366
|
+
events.forEach((event) => {
|
|
367
|
+
if (event.type === 'Created') {
|
|
368
|
+
cesdk.ui.showNotification({ message: 'Block created', type: 'info' });
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
});
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
For comprehensive event handling patterns including selection tracking and state synchronization, see the Event Subscriptions guide.
|
|
375
|
+
|
|
376
|
+
## Programmatic Panel Management
|
|
377
|
+
|
|
378
|
+
Control panel visibility dynamically using the UI API. Open, close, and query panel state to adapt your interface to user actions.
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
if (!cesdk.ui.isPanelOpen('//ly.img.panel/inspector')) {
|
|
382
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector');
|
|
383
|
+
}
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
For complete panel management including custom panel registration and advanced patterns, see the Custom Panels guide.
|
|
387
|
+
|
|
388
|
+
## Showing Notifications and Dialogs
|
|
389
|
+
|
|
390
|
+
### Displaying Notifications
|
|
391
|
+
|
|
392
|
+
Show temporary feedback using `cesdk.ui.showNotification()`. Configure the notification's message, type (`info`, `success`, `error`), and duration (`short`, `medium`, `long`).
|
|
393
|
+
|
|
394
|
+
```typescript
|
|
395
|
+
cesdk.ui.showNotification({
|
|
396
|
+
message: 'Operation completed successfully',
|
|
397
|
+
type: 'success',
|
|
398
|
+
duration: 'medium'
|
|
399
|
+
});
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Creating Confirmation Dialogs
|
|
403
|
+
|
|
404
|
+
Present user decisions with `cesdk.ui.showDialog()`. Define `onClick` handlers for action buttons that receive a `context` parameter containing the dialog ID.
|
|
405
|
+
|
|
406
|
+
```typescript
|
|
407
|
+
cesdk.ui.showDialog({
|
|
408
|
+
type: 'info',
|
|
409
|
+
content: {
|
|
410
|
+
title: 'Confirm Action',
|
|
411
|
+
message: 'Are you sure you want to proceed?'
|
|
412
|
+
},
|
|
413
|
+
actions: [
|
|
414
|
+
{
|
|
415
|
+
label: 'Cancel',
|
|
416
|
+
onClick: (context) => cesdk.ui.closeDialog(context.id)
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
label: 'Confirm',
|
|
420
|
+
onClick: (context) => {
|
|
421
|
+
cesdk.ui.closeDialog(context.id);
|
|
422
|
+
// Your action logic here
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
]
|
|
426
|
+
});
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
## Registering Custom Actions
|
|
430
|
+
|
|
431
|
+
Register custom action handlers to intercept UI events like export, load, and download. The editor calls your action when users trigger the corresponding UI event.
|
|
432
|
+
|
|
433
|
+
```typescript
|
|
434
|
+
cesdk.actions.register('downloadFile', async (blob: Blob, mimeType: string) => {
|
|
435
|
+
const url = URL.createObjectURL(blob);
|
|
436
|
+
const link = document.createElement('a');
|
|
437
|
+
link.href = url;
|
|
438
|
+
link.download = `export.${mimeType.split('/')[1]}`;
|
|
439
|
+
link.click();
|
|
440
|
+
URL.revokeObjectURL(url);
|
|
441
|
+
});
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
## Dynamic Theme and Scale Control
|
|
445
|
+
|
|
446
|
+
Control the editor's theme and UI scale at runtime. Set theme to `'light'`, `'dark'`, or `'system'`, and scale to `'normal'` or `'large'`.
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
// Toggle theme
|
|
450
|
+
const currentTheme = cesdk.ui.getTheme();
|
|
451
|
+
cesdk.ui.setTheme(currentTheme === 'dark' ? 'light' : 'dark');
|
|
452
|
+
|
|
453
|
+
// Set scale
|
|
454
|
+
cesdk.ui.setScale('large');
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
## Feature Management at Runtime
|
|
458
|
+
|
|
459
|
+
Control feature availability based on user permissions or application state. Enable, disable, and query features dynamically.
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
// Check and toggle features
|
|
463
|
+
if (cesdk.feature.isEnabled('ly.img.undo')) {
|
|
464
|
+
cesdk.feature.disable('ly.img.undo');
|
|
465
|
+
} else {
|
|
466
|
+
cesdk.feature.enable('ly.img.undo');
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
// List available features
|
|
470
|
+
const features = cesdk.feature.list({ matcher: 'ly.img.*' });
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
## Integrating with External State
|
|
474
|
+
|
|
475
|
+
Connect CE.SDK events to Redux, MobX, or other state systems for bidirectional synchronization.
|
|
476
|
+
|
|
477
|
+
```typescript
|
|
478
|
+
// Subscribe to CE.SDK events and update external state
|
|
479
|
+
engine.event.subscribe([], (events: BlockEvent[]) => {
|
|
480
|
+
events.forEach((event) => {
|
|
481
|
+
// Dispatch to your state management system
|
|
482
|
+
dispatch({ type: 'CESDK_EVENT', payload: event });
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
|
|
486
|
+
// Listen to external state changes and update CE.SDK UI
|
|
487
|
+
store.subscribe(() => {
|
|
488
|
+
const state = store.getState();
|
|
489
|
+
if (state.shouldShowInspector) {
|
|
490
|
+
cesdk.ui.openPanel('//ly.img.panel/inspector');
|
|
491
|
+
}
|
|
492
|
+
});
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
## Troubleshooting
|
|
496
|
+
|
|
497
|
+
### Event Subscriptions Not Firing
|
|
498
|
+
|
|
499
|
+
Verify the engine is initialized and blocks exist before subscribing. Event subscriptions only fire for changes after subscription - you won't receive events for existing state. Check that your callback function executes without errors, as exceptions are logged but don't prevent future events.
|
|
500
|
+
|
|
501
|
+
### Panel Operations Failing
|
|
502
|
+
|
|
503
|
+
Check panel ID spelling and registration status. Panel IDs are case-sensitive and must match exactly. Verify the panel is registered before attempting to open it. Custom panels must be registered through plugins before they become available for panel operations.
|
|
504
|
+
|
|
505
|
+
### Actions Not Executing
|
|
506
|
+
|
|
507
|
+
Ensure the action is registered before calling `cesdk.actions.run()`. The method throws an error if the action doesn't exist. Register actions during plugin initialization or before they're needed. Check that action names match exactly when registering and executing.
|
|
508
|
+
|
|
509
|
+
### Memory Leaks from Event Subscriptions
|
|
510
|
+
|
|
511
|
+
Always call the unsubscribe cleanup function when you no longer need event listeners. Store the return value from `engine.event.subscribe()` and call it when your component unmounts or the feature is disabled. Failing to unsubscribe causes memory leaks and unnecessary callback executions.
|
|
512
|
+
|
|
513
|
+
### UI Not Updating After State Changes
|
|
514
|
+
|
|
515
|
+
Verify event handlers execute without errors. Check the browser console for exceptions thrown in callbacks. Ensure your UI update logic runs after async operations complete. Theme and feature changes apply immediately, so check that you're querying the correct state after modifications.
|
|
516
|
+
|
|
517
|
+
### Theme or Scale Changes Not Applying
|
|
518
|
+
|
|
519
|
+
Check if function-based configs are evaluated correctly. For theme functions, ensure they return valid values (`'light'` or `'dark'`). For scale functions, verify the container width calculation is correct. Function-based configs re-evaluate on each access, so ensure your logic accounts for this behavior.
|
|
520
|
+
|
|
521
|
+
## API Reference
|
|
522
|
+
|
|
523
|
+
| Method | Purpose |
|
|
524
|
+
| ----------------------------- | ---------------------------------------- |
|
|
525
|
+
| `engine.event.subscribe()` | Subscribe to block lifecycle events |
|
|
526
|
+
| `cesdk.ui.openPanel()` | Open a specific panel programmatically |
|
|
527
|
+
| `cesdk.ui.closePanel()` | Close a panel by ID or pattern |
|
|
528
|
+
| `cesdk.ui.isPanelOpen()` | Check if panel is currently open |
|
|
529
|
+
| `cesdk.ui.findAllPanels()` | Find all available panels with filtering |
|
|
530
|
+
| `cesdk.ui.showNotification()` | Display temporary notification message |
|
|
531
|
+
| `cesdk.ui.showDialog()` | Show confirmation or custom dialog |
|
|
532
|
+
| `cesdk.ui.closeDialog()` | Close dialog by ID |
|
|
533
|
+
| `cesdk.actions.register()` | Register custom action handler |
|
|
534
|
+
| `cesdk.actions.get()` | Retrieve registered action function |
|
|
535
|
+
| `cesdk.actions.run()` | Execute registered action |
|
|
536
|
+
| `cesdk.actions.list()` | List all registered action IDs |
|
|
537
|
+
| `cesdk.ui.setTheme()` | Change editor theme at runtime |
|
|
538
|
+
| `cesdk.ui.getTheme()` | Get current resolved theme |
|
|
539
|
+
| `cesdk.ui.setScale()` | Control UI density and sizing |
|
|
540
|
+
| `cesdk.ui.getScale()` | Get current resolved scale |
|
|
541
|
+
| `cesdk.feature.enable()` | Enable feature dynamically |
|
|
542
|
+
| `cesdk.feature.disable()` | Disable feature dynamically |
|
|
543
|
+
| `cesdk.feature.isEnabled()` | Check if feature is enabled |
|
|
544
|
+
| `cesdk.feature.list()` | List features matching pattern |
|
|
545
|
+
|
|
546
|
+
---
|
|
547
|
+
|
|
548
|
+
## More Resources
|
|
549
|
+
|
|
550
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
551
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
552
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
553
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|