@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,489 @@
|
|
|
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) > [Import Media Assets](./import-media.md) > [Edit or Remove Assets](./import-media/edit-or-remove-assets.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Manage assets in local asset sources by updating metadata, removing individual assets, or deleting entire sources.
|
|
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-import-media-edit-or-remove-assets-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-import-media-edit-or-remove-assets-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-import-media-edit-or-remove-assets-browser/)
|
|
19
|
+
|
|
20
|
+
Assets in local sources can be modified or removed after they have been added. CE.SDK provides two levels of removal: individual assets within a source and entire asset sources. This guide covers how to query, update, and remove assets programmatically, as well as how to notify the UI when changes occur.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-import-media-edit-or-remove-assets-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
|
+
|
|
43
|
+
class Example implements EditorPlugin {
|
|
44
|
+
name = packageJson.name;
|
|
45
|
+
|
|
46
|
+
version = packageJson.version;
|
|
47
|
+
|
|
48
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
49
|
+
if (!cesdk) {
|
|
50
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
51
|
+
}
|
|
52
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
53
|
+
|
|
54
|
+
// Add asset source plugins
|
|
55
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
56
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
57
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
58
|
+
await cesdk.addPlugin(
|
|
59
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
60
|
+
);
|
|
61
|
+
await cesdk.addPlugin(
|
|
62
|
+
new DemoAssetSources({
|
|
63
|
+
include: [
|
|
64
|
+
'ly.img.templates.blank.*',
|
|
65
|
+
'ly.img.templates.presentation.*',
|
|
66
|
+
'ly.img.templates.print.*',
|
|
67
|
+
'ly.img.templates.social.*',
|
|
68
|
+
'ly.img.image.*'
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
76
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
79
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
80
|
+
|
|
81
|
+
await cesdk.actions.run('scene.create', {
|
|
82
|
+
page: {
|
|
83
|
+
sourceId: 'ly.img.page.presets',
|
|
84
|
+
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const engine = cesdk.engine;
|
|
89
|
+
|
|
90
|
+
// ===== Section 1: Create a Local Asset Source =====
|
|
91
|
+
// Create a local asset source to manage images
|
|
92
|
+
engine.asset.addLocalSource('my-uploads');
|
|
93
|
+
|
|
94
|
+
// Add some sample assets to the source
|
|
95
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
96
|
+
id: 'image-1',
|
|
97
|
+
label: { en: 'Mountain Landscape' },
|
|
98
|
+
tags: { en: ['nature', 'mountain'] },
|
|
99
|
+
meta: {
|
|
100
|
+
uri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
101
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
102
|
+
blockType: '//ly.img.ubq/graphic'
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
107
|
+
id: 'image-2',
|
|
108
|
+
label: { en: 'Ocean Waves' },
|
|
109
|
+
tags: { en: ['nature', 'water'] },
|
|
110
|
+
meta: {
|
|
111
|
+
uri: 'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
112
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
113
|
+
blockType: '//ly.img.ubq/graphic'
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
118
|
+
id: 'image-3',
|
|
119
|
+
label: { en: 'Forest Path' },
|
|
120
|
+
tags: { en: ['nature', 'forest'] },
|
|
121
|
+
meta: {
|
|
122
|
+
uri: 'https://img.ly/static/ubq_samples/sample_3.jpg',
|
|
123
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_3.jpg',
|
|
124
|
+
blockType: '//ly.img.ubq/graphic'
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
// ===== Section 2: Find Assets in a Source =====
|
|
129
|
+
// Query assets from the source to find specific assets
|
|
130
|
+
const result = await engine.asset.findAssets('my-uploads', {
|
|
131
|
+
query: 'nature',
|
|
132
|
+
page: 0,
|
|
133
|
+
perPage: 100
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
console.log('Found assets:', result.assets.length);
|
|
137
|
+
const assetToModify = result.assets.find((a) => a.id === 'image-1');
|
|
138
|
+
console.log('Asset to modify:', assetToModify?.label);
|
|
139
|
+
|
|
140
|
+
// ===== Section 3: Update Asset Metadata =====
|
|
141
|
+
// To update an asset's metadata, remove it and add an updated version
|
|
142
|
+
// This pattern ensures the asset library reflects the latest data
|
|
143
|
+
engine.asset.removeAssetFromSource('my-uploads', 'image-1');
|
|
144
|
+
|
|
145
|
+
// Add the updated version with new metadata
|
|
146
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
147
|
+
id: 'image-1',
|
|
148
|
+
label: { en: 'Updated Mountain Photo' }, // New label
|
|
149
|
+
tags: { en: ['nature', 'mountain', 'updated'] }, // New tags
|
|
150
|
+
meta: {
|
|
151
|
+
uri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
152
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
153
|
+
blockType: '//ly.img.ubq/graphic'
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
// ===== Section 4: Remove an Asset from a Source =====
|
|
158
|
+
// Remove a single asset from the source
|
|
159
|
+
// Blocks already using this asset on the canvas remain unaffected
|
|
160
|
+
engine.asset.removeAssetFromSource('my-uploads', 'image-2');
|
|
161
|
+
console.log('Removed image-2 from my-uploads');
|
|
162
|
+
|
|
163
|
+
// ===== Section 5: Notify UI of Changes =====
|
|
164
|
+
// After modifying assets, notify the UI to refresh
|
|
165
|
+
// This triggers update events for components like the asset library panel
|
|
166
|
+
engine.asset.assetSourceContentsChanged('my-uploads');
|
|
167
|
+
|
|
168
|
+
// ===== Section 6: Create a Second Source for Removal Demo =====
|
|
169
|
+
// Create a temporary source to demonstrate source removal
|
|
170
|
+
engine.asset.addLocalSource('temporary-uploads');
|
|
171
|
+
|
|
172
|
+
engine.asset.addAssetToSource('temporary-uploads', {
|
|
173
|
+
id: 'temp-1',
|
|
174
|
+
label: { en: 'Temporary Image' },
|
|
175
|
+
meta: {
|
|
176
|
+
uri: 'https://img.ly/static/ubq_samples/sample_4.jpg',
|
|
177
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_4.jpg',
|
|
178
|
+
blockType: '//ly.img.ubq/graphic'
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// ===== Section 7: Remove an Entire Asset Source =====
|
|
183
|
+
// Remove a complete asset source and all its assets
|
|
184
|
+
// Any UI panels displaying this source will stop showing content
|
|
185
|
+
engine.asset.removeSource('temporary-uploads');
|
|
186
|
+
console.log('Removed temporary-uploads source');
|
|
187
|
+
|
|
188
|
+
// ===== Section 8: Listen to Asset Source Events =====
|
|
189
|
+
// Subscribe to lifecycle events for asset sources
|
|
190
|
+
const unsubscribeAdded = engine.asset.onAssetSourceAdded((sourceId) => {
|
|
191
|
+
console.log(`Source added: ${sourceId}`);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
const unsubscribeRemoved = engine.asset.onAssetSourceRemoved((sourceId) => {
|
|
195
|
+
console.log(`Source removed: ${sourceId}`);
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
const unsubscribeUpdated = engine.asset.onAssetSourceUpdated((sourceId) => {
|
|
199
|
+
console.log(`Source updated: ${sourceId}`);
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
// Demonstrate events by creating and removing a source
|
|
203
|
+
engine.asset.addLocalSource('event-demo-source');
|
|
204
|
+
engine.asset.assetSourceContentsChanged('event-demo-source');
|
|
205
|
+
engine.asset.removeSource('event-demo-source');
|
|
206
|
+
|
|
207
|
+
// Clean up subscriptions when no longer needed
|
|
208
|
+
unsubscribeAdded();
|
|
209
|
+
unsubscribeRemoved();
|
|
210
|
+
unsubscribeUpdated();
|
|
211
|
+
|
|
212
|
+
// ===== Configure Asset Library Display =====
|
|
213
|
+
// Configure the asset library to show our custom source
|
|
214
|
+
cesdk.ui.updateAssetLibraryEntry('ly.img.image', {
|
|
215
|
+
sourceIds: ['my-uploads'],
|
|
216
|
+
gridBackgroundType: 'cover',
|
|
217
|
+
previewBackgroundType: 'contain'
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
// Open the asset library to show the custom uploads
|
|
221
|
+
cesdk.ui.openPanel('//ly.img.panel/assetLibrary', {
|
|
222
|
+
payload: {
|
|
223
|
+
entries: ['ly.img.image']
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export default Example;
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Setup
|
|
233
|
+
|
|
234
|
+
Initialize CE.SDK and create a local asset source with sample assets. The example creates a design scene and populates a local source with images.
|
|
235
|
+
|
|
236
|
+
```typescript highlight=highlight-setup
|
|
237
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
238
|
+
|
|
239
|
+
// Add asset source plugins
|
|
240
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
241
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
242
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
243
|
+
await cesdk.addPlugin(
|
|
244
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
245
|
+
);
|
|
246
|
+
await cesdk.addPlugin(
|
|
247
|
+
new DemoAssetSources({
|
|
248
|
+
include: [
|
|
249
|
+
'ly.img.templates.blank.*',
|
|
250
|
+
'ly.img.templates.presentation.*',
|
|
251
|
+
'ly.img.templates.print.*',
|
|
252
|
+
'ly.img.templates.social.*',
|
|
253
|
+
'ly.img.image.*'
|
|
254
|
+
]
|
|
255
|
+
})
|
|
256
|
+
);
|
|
257
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
258
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
259
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
260
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
261
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
262
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
263
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
264
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
265
|
+
|
|
266
|
+
await cesdk.actions.run('scene.create', {
|
|
267
|
+
page: {
|
|
268
|
+
sourceId: 'ly.img.page.presets',
|
|
269
|
+
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
|
|
273
|
+
const engine = cesdk.engine;
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
## Creating a Local Asset Source
|
|
277
|
+
|
|
278
|
+
Before editing or removing assets, you need a local source with assets. Use `engine.asset.addLocalSource()` to create a source, then `engine.asset.addAssetToSource()` to populate it.
|
|
279
|
+
|
|
280
|
+
```typescript highlight=highlight-create-source
|
|
281
|
+
// Create a local asset source to manage images
|
|
282
|
+
engine.asset.addLocalSource('my-uploads');
|
|
283
|
+
|
|
284
|
+
// Add some sample assets to the source
|
|
285
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
286
|
+
id: 'image-1',
|
|
287
|
+
label: { en: 'Mountain Landscape' },
|
|
288
|
+
tags: { en: ['nature', 'mountain'] },
|
|
289
|
+
meta: {
|
|
290
|
+
uri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
291
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
292
|
+
blockType: '//ly.img.ubq/graphic'
|
|
293
|
+
}
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
297
|
+
id: 'image-2',
|
|
298
|
+
label: { en: 'Ocean Waves' },
|
|
299
|
+
tags: { en: ['nature', 'water'] },
|
|
300
|
+
meta: {
|
|
301
|
+
uri: 'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
302
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
303
|
+
blockType: '//ly.img.ubq/graphic'
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
|
|
307
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
308
|
+
id: 'image-3',
|
|
309
|
+
label: { en: 'Forest Path' },
|
|
310
|
+
tags: { en: ['nature', 'forest'] },
|
|
311
|
+
meta: {
|
|
312
|
+
uri: 'https://img.ly/static/ubq_samples/sample_3.jpg',
|
|
313
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_3.jpg',
|
|
314
|
+
blockType: '//ly.img.ubq/graphic'
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
Each asset has a unique `id`, descriptive `label` and `tags` for searchability, and `meta` properties including the `uri` for the asset file.
|
|
320
|
+
|
|
321
|
+
## Finding Assets in a Source
|
|
322
|
+
|
|
323
|
+
Use `engine.asset.findAssets()` to query assets from a source. You can search by query string to match labels and tags, and paginate results for large sources.
|
|
324
|
+
|
|
325
|
+
```typescript highlight=highlight-find-assets
|
|
326
|
+
// Query assets from the source to find specific assets
|
|
327
|
+
const result = await engine.asset.findAssets('my-uploads', {
|
|
328
|
+
query: 'nature',
|
|
329
|
+
page: 0,
|
|
330
|
+
perPage: 100
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
console.log('Found assets:', result.assets.length);
|
|
334
|
+
const assetToModify = result.assets.find((a) => a.id === 'image-1');
|
|
335
|
+
console.log('Asset to modify:', assetToModify?.label);
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
The `findAssets()` method returns an object containing the `assets` array, `total` count, `currentPage`, and optionally `nextPage` for pagination.
|
|
339
|
+
|
|
340
|
+
## Updating Asset Metadata
|
|
341
|
+
|
|
342
|
+
CE.SDK does not provide a direct update method for assets. To modify an asset's metadata (labels, tags, URIs), remove the existing asset and add an updated version with the same ID.
|
|
343
|
+
|
|
344
|
+
```typescript highlight=highlight-update-metadata
|
|
345
|
+
// To update an asset's metadata, remove it and add an updated version
|
|
346
|
+
// This pattern ensures the asset library reflects the latest data
|
|
347
|
+
engine.asset.removeAssetFromSource('my-uploads', 'image-1');
|
|
348
|
+
|
|
349
|
+
// Add the updated version with new metadata
|
|
350
|
+
engine.asset.addAssetToSource('my-uploads', {
|
|
351
|
+
id: 'image-1',
|
|
352
|
+
label: { en: 'Updated Mountain Photo' }, // New label
|
|
353
|
+
tags: { en: ['nature', 'mountain', 'updated'] }, // New tags
|
|
354
|
+
meta: {
|
|
355
|
+
uri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
356
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
357
|
+
blockType: '//ly.img.ubq/graphic'
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
This pattern ensures the asset library reflects the latest metadata. The asset ID remains the same, so any references to the asset continue to work.
|
|
363
|
+
|
|
364
|
+
## Removing an Asset from a Source
|
|
365
|
+
|
|
366
|
+
Remove individual assets using `engine.asset.removeAssetFromSource()`. The asset is permanently deleted from the source, but blocks already using that asset on the canvas remain unaffected.
|
|
367
|
+
|
|
368
|
+
```typescript highlight=highlight-remove-asset
|
|
369
|
+
// Remove a single asset from the source
|
|
370
|
+
// Blocks already using this asset on the canvas remain unaffected
|
|
371
|
+
engine.asset.removeAssetFromSource('my-uploads', 'image-2');
|
|
372
|
+
console.log('Removed image-2 from my-uploads');
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
Removing an asset only affects the asset library—it does not modify or delete any blocks that were created using that asset.
|
|
376
|
+
|
|
377
|
+
## Notifying the UI of Changes
|
|
378
|
+
|
|
379
|
+
After modifying assets in a source, call `engine.asset.assetSourceContentsChanged()` to notify UI components. This triggers update events for the asset library panel and any other components displaying the source.
|
|
380
|
+
|
|
381
|
+
```typescript highlight=highlight-notify-ui
|
|
382
|
+
// After modifying assets, notify the UI to refresh
|
|
383
|
+
// This triggers update events for components like the asset library panel
|
|
384
|
+
engine.asset.assetSourceContentsChanged('my-uploads');
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
Without this notification, UI components may show stale data until the user navigates away and returns.
|
|
388
|
+
|
|
389
|
+
## Creating a Temporary Source
|
|
390
|
+
|
|
391
|
+
You can create additional sources for temporary or session-specific assets. These sources can be removed entirely when no longer needed.
|
|
392
|
+
|
|
393
|
+
```typescript highlight=highlight-create-temp-source
|
|
394
|
+
// Create a temporary source to demonstrate source removal
|
|
395
|
+
engine.asset.addLocalSource('temporary-uploads');
|
|
396
|
+
|
|
397
|
+
engine.asset.addAssetToSource('temporary-uploads', {
|
|
398
|
+
id: 'temp-1',
|
|
399
|
+
label: { en: 'Temporary Image' },
|
|
400
|
+
meta: {
|
|
401
|
+
uri: 'https://img.ly/static/ubq_samples/sample_4.jpg',
|
|
402
|
+
thumbUri: 'https://img.ly/static/ubq_samples/sample_4.jpg',
|
|
403
|
+
blockType: '//ly.img.ubq/graphic'
|
|
404
|
+
}
|
|
405
|
+
});
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
## Removing an Entire Asset Source
|
|
409
|
+
|
|
410
|
+
Remove a complete asset source and all its assets using `engine.asset.removeSource()`. Any UI panels displaying this source will stop showing content for that source.
|
|
411
|
+
|
|
412
|
+
```typescript highlight=highlight-remove-source
|
|
413
|
+
// Remove a complete asset source and all its assets
|
|
414
|
+
// Any UI panels displaying this source will stop showing content
|
|
415
|
+
engine.asset.removeSource('temporary-uploads');
|
|
416
|
+
console.log('Removed temporary-uploads source');
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
Use this when cleaning up temporary sources or when a user explicitly deletes an entire category of assets.
|
|
420
|
+
|
|
421
|
+
## Listening to Asset Source Events
|
|
422
|
+
|
|
423
|
+
Subscribe to lifecycle events to react when sources are added, removed, or updated. These events are useful for analytics, cleanup tasks, or syncing with external systems.
|
|
424
|
+
|
|
425
|
+
```typescript highlight=highlight-events
|
|
426
|
+
// Subscribe to lifecycle events for asset sources
|
|
427
|
+
const unsubscribeAdded = engine.asset.onAssetSourceAdded((sourceId) => {
|
|
428
|
+
console.log(`Source added: ${sourceId}`);
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
const unsubscribeRemoved = engine.asset.onAssetSourceRemoved((sourceId) => {
|
|
432
|
+
console.log(`Source removed: ${sourceId}`);
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
const unsubscribeUpdated = engine.asset.onAssetSourceUpdated((sourceId) => {
|
|
436
|
+
console.log(`Source updated: ${sourceId}`);
|
|
437
|
+
});
|
|
438
|
+
|
|
439
|
+
// Demonstrate events by creating and removing a source
|
|
440
|
+
engine.asset.addLocalSource('event-demo-source');
|
|
441
|
+
engine.asset.assetSourceContentsChanged('event-demo-source');
|
|
442
|
+
engine.asset.removeSource('event-demo-source');
|
|
443
|
+
|
|
444
|
+
// Clean up subscriptions when no longer needed
|
|
445
|
+
unsubscribeAdded();
|
|
446
|
+
unsubscribeRemoved();
|
|
447
|
+
unsubscribeUpdated();
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
Each subscription returns an unsubscribe function. Call it when you no longer need to receive events to prevent memory leaks.
|
|
451
|
+
|
|
452
|
+
## Best Practices
|
|
453
|
+
|
|
454
|
+
- **Query before modifying**: Use `findAssets()` to verify the asset exists before attempting removal
|
|
455
|
+
- **Notify UI after changes**: Always call `assetSourceContentsChanged()` after modifying a source
|
|
456
|
+
- **Clean up subscriptions**: Store unsubscribe functions and call them when the component unmounts or the source is removed
|
|
457
|
+
- **Handle missing assets gracefully**: Check if `findAssets()` returns the expected asset before operating on it
|
|
458
|
+
- **Use descriptive IDs**: Choose asset IDs that are unique and meaningful for easier debugging
|
|
459
|
+
|
|
460
|
+
## Troubleshooting
|
|
461
|
+
|
|
462
|
+
| Issue | Cause | Solution |
|
|
463
|
+
| ------------------- | ------------------------------------ | -------------------------------------------------------- |
|
|
464
|
+
| Asset not found | ID mismatch or asset already removed | Use `findAssets()` to list available assets |
|
|
465
|
+
| UI not updating | Missing notification | Call `assetSourceContentsChanged()` after modifications |
|
|
466
|
+
| Cannot remove asset | Source is not a local source | Only local sources support `removeAssetFromSource()` |
|
|
467
|
+
| Events not firing | Subscription not active | Verify the subscription was created before the operation |
|
|
468
|
+
|
|
469
|
+
## API Reference
|
|
470
|
+
|
|
471
|
+
| Method | Category | Purpose |
|
|
472
|
+
| ------------------------------------------- | ------------------- | -------------------------------------------------------- |
|
|
473
|
+
| `engine.asset.findAssets()` | Asset Discovery | Query assets from a source with filtering and pagination |
|
|
474
|
+
| `engine.asset.addAssetToSource()` | Asset Lifecycle | Add or update an asset in a local source |
|
|
475
|
+
| `engine.asset.removeAssetFromSource()` | Asset Lifecycle | Remove a single asset from a local source |
|
|
476
|
+
| `engine.asset.removeSource()` | Source Management | Remove an entire asset source and all its assets |
|
|
477
|
+
| `engine.asset.assetSourceContentsChanged()` | UI Notification | Notify UI that source contents changed |
|
|
478
|
+
| `engine.asset.onAssetSourceAdded()` | Event Subscriptions | Subscribe to source addition events |
|
|
479
|
+
| `engine.asset.onAssetSourceRemoved()` | Event Subscriptions | Subscribe to source removal events |
|
|
480
|
+
| `engine.asset.onAssetSourceUpdated()` | Event Subscriptions | Subscribe to source content change events |
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## More Resources
|
|
485
|
+
|
|
486
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
487
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
488
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
489
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,178 @@
|
|
|
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) > [Import Media Assets](./import-media.md) > [File Format Support](./import-media/file-format-support.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
When building creative applications with CE.SDK, understanding which file formats your users can import is crucial for delivering a smooth editing experience. CE.SDK supports a comprehensive range of modern media formats.
|
|
8
|
+
|
|
9
|
+
This guide provides a complete reference of supported file formats for importing media, templates, and fonts into CE.SDK on web platforms.
|
|
10
|
+
|
|
11
|
+
## Supported Import Formats
|
|
12
|
+
|
|
13
|
+
CE.SDK supports importing the following media types directly in the browser:
|
|
14
|
+
|
|
15
|
+
| Category | Supported Formats |
|
|
16
|
+
| ------------- | --------------------------------------------------------------------------------------- |
|
|
17
|
+
| **Images** | `.png`, `.jpeg`, `.jpg`, `.gif`, `.webp`, `.svg`, `.bmp` |
|
|
18
|
+
| **Video** | `.mp4` (H.264/AVC, H.265/HEVC), `.mov` (H.264/AVC, H.265/HEVC), `.webm` (VP8, VP9, AV1) |
|
|
19
|
+
| **Audio** | `.mp3`, `.m4a`, `.mp4` (AAC or MP3), `.mov` (AAC or MP3) |
|
|
20
|
+
| **Animation** | `.json` (Lottie) |
|
|
21
|
+
| **Templates** | `.idml` (InDesign), `.psd` (Photoshop), `.scene` (CE.SDK Native) |
|
|
22
|
+
|
|
23
|
+
> **Note:** Need to import a format not listed here? CE.SDK allows you to create custom
|
|
24
|
+
> importers for any file type by using our Scene and Block APIs
|
|
25
|
+
> programmatically. Contact our support team to learn more about implementing
|
|
26
|
+
> custom importers.
|
|
27
|
+
|
|
28
|
+
## Video and Audio Codecs
|
|
29
|
+
|
|
30
|
+
While container formats (`.mp4`, `.mov`, `.webm`) define how media is packaged, codecs determine how the content is compressed. CE.SDK supports the following codecs for web playback and editing:
|
|
31
|
+
|
|
32
|
+
### Video Codecs
|
|
33
|
+
|
|
34
|
+
- **H.264 / AVC** (in `.mp4` or `.mov`) – Universally supported across all modern browsers
|
|
35
|
+
- **H.265 / HEVC** (in `.mp4` or `.mov`) – Requires platform-specific support; availability varies by browser and operating system
|
|
36
|
+
- **VP8, VP9, AV1** (in `.webm`) – Modern web-native codecs with broad browser support
|
|
37
|
+
|
|
38
|
+
### Audio Codecs
|
|
39
|
+
|
|
40
|
+
- **MP3** (in `.mp3` files or within `.mp4`/`.mov` containers)
|
|
41
|
+
- **AAC** (in `.m4a`, `.mp4`, or `.mov` containers)
|
|
42
|
+
|
|
43
|
+
> **Warning:** H.265/HEVC support varies by browser and requires hardware acceleration or
|
|
44
|
+
> licensed software decoders. Always test video playback on your target browsers
|
|
45
|
+
> before deploying H.265 content to end users.
|
|
46
|
+
|
|
47
|
+
## Size Limits and Constraints
|
|
48
|
+
|
|
49
|
+
CE.SDK processes all media client-side in the browser, which means performance is bounded by the user's hardware capabilities. Here are the practical limits to keep in mind:
|
|
50
|
+
|
|
51
|
+
### Image Resolution Limits
|
|
52
|
+
|
|
53
|
+
| Constraint | Recommendation / Limit |
|
|
54
|
+
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
55
|
+
| **Input Resolution** | Maximum input resolution is **4096×4096 pixels**. Images from external sources (e.g., Unsplash) are resized to this size before rendering on the canvas. You can modify this value using the `maxImageSize` setting. |
|
|
56
|
+
| **Output Resolution** | There is no enforced output resolution limit. Theoretically, the editor supports output sizes up to **16,384×16,384 pixels**. However, practical limits depend on the device's GPU capabilities and available memory. |
|
|
57
|
+
|
|
58
|
+
All image processing in CE.SDK is handled client-side, so these values depend on the **maximum texture size** supported by the user's hardware. The default limit of 4096×4096 is a safe baseline that works universally. Higher resolutions (e.g., 8192×8192) may work on certain devices but could fail on others during export if the GPU texture size is exceeded.
|
|
59
|
+
|
|
60
|
+
> **Note:** To ensure consistent results across devices, test higher output sizes on your
|
|
61
|
+
> target hardware and set conservative defaults in production.
|
|
62
|
+
|
|
63
|
+
### Video Resolution and Duration Limits
|
|
64
|
+
|
|
65
|
+
| Constraint | Recommendation / Limit |
|
|
66
|
+
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
67
|
+
| **Resolution** | Up to **4K UHD** is supported for **playback** and **export**, depending on the user's hardware and available GPU resources. For **import**, CE.SDK does not impose artificial limits, but maximum video size is bounded by the **32-bit address space of WebAssembly (wasm32)** and the **browser tab's memory cap (~2 GB)**. |
|
|
68
|
+
| **Frame Rate** | 30 FPS at 1080p is broadly supported; 60 FPS and high-res exports benefit from hardware acceleration |
|
|
69
|
+
| **Duration** | Stories and reels of up to **2 minutes** are fully supported. Longer videos are also supported, but we generally found a maximum duration of **10 minutes** to be a good balance for a smooth editing experience and a pleasant export duration of around one minute on modern hardware. |
|
|
70
|
+
|
|
71
|
+
> **Note:** Performance scales with client hardware. For best results with high-resolution
|
|
72
|
+
> or high-frame-rate video, modern CPUs/GPUs with hardware acceleration are
|
|
73
|
+
> recommended.
|
|
74
|
+
|
|
75
|
+
## Format-Specific Considerations
|
|
76
|
+
|
|
77
|
+
### SVG Limitations
|
|
78
|
+
|
|
79
|
+
CE.SDK uses Skia for SVG parsing and rendering. While most SVG files render correctly, there are some important limitations to be aware of:
|
|
80
|
+
|
|
81
|
+
#### Text Elements
|
|
82
|
+
|
|
83
|
+
- SVG text elements are not supported – any text in SVG files will not be rendered.
|
|
84
|
+
- Convert text to paths in your vector editor before exporting if text is needed.
|
|
85
|
+
|
|
86
|
+
#### Styling Limitations
|
|
87
|
+
|
|
88
|
+
- CSS styles included in SVGs are not supported – use presentation attributes instead.
|
|
89
|
+
- RGBA color syntax is not supported – use `fill-opacity` and `stroke-opacity` attributes.
|
|
90
|
+
- When exporting SVGs from design tools, choose the "presentation attributes" option.
|
|
91
|
+
|
|
92
|
+
#### Unsupported SVG Elements
|
|
93
|
+
|
|
94
|
+
The following SVG elements are not supported:
|
|
95
|
+
|
|
96
|
+
- Animation elements (`<animate>`)
|
|
97
|
+
- Foreign object (`<foreignObject>`)
|
|
98
|
+
- Text-related elements (`<altGlyph>`, `<font>`, `<glyph>`)
|
|
99
|
+
- Script elements (`<script>`)
|
|
100
|
+
- Some filter elements (`<feComponentTransfer>`, `<feConvolveMatrix>`, `<feTile>`, `<feDropShadow>`)
|
|
101
|
+
- Inlined SVGs via `<image>` or `<feImage>` elements
|
|
102
|
+
|
|
103
|
+
> **Note:** When preparing SVG assets, always export with "presentation attributes" and
|
|
104
|
+
> convert text to paths for maximum compatibility with CE.SDK.
|
|
105
|
+
|
|
106
|
+
### WebP Support
|
|
107
|
+
|
|
108
|
+
WebP images are fully supported for import. CE.SDK handles both lossy and lossless WebP formats, including images with transparency (alpha channel). WebP provides excellent compression with high quality, making it ideal for web-based creative applications.
|
|
109
|
+
|
|
110
|
+
### Animated GIF Considerations
|
|
111
|
+
|
|
112
|
+
While CE.SDK can import animated GIF files, they are rendered as static images showing only the first frame. For animated content, consider using:
|
|
113
|
+
|
|
114
|
+
- **Lottie animations** (`.json`) for vector-based animations
|
|
115
|
+
- **Video files** (`.mp4`, `.webm`) for complex animated content
|
|
116
|
+
|
|
117
|
+
### Template Format Details
|
|
118
|
+
|
|
119
|
+
CE.SDK supports importing templates from popular design applications:
|
|
120
|
+
|
|
121
|
+
- **IDML** (InDesign Markup Language) – Import layouts and designs created in Adobe InDesign
|
|
122
|
+
- **PSD** (Photoshop Document) – Import layered Photoshop files with preserved layer structure
|
|
123
|
+
- **SCENE** – CE.SDK's native scene format, optimized for fast loading and editing
|
|
124
|
+
|
|
125
|
+
When importing IDML or PSD files, CE.SDK preserves layer hierarchy, text formatting, and design structure where possible. Some advanced effects or features specific to the source application may require manual adjustment after import.
|
|
126
|
+
|
|
127
|
+
## Font Format Support
|
|
128
|
+
|
|
129
|
+
CE.SDK supports modern web font formats for typography:
|
|
130
|
+
|
|
131
|
+
| Format | Description |
|
|
132
|
+
| -------- | --------------------------------- |
|
|
133
|
+
| `.ttf` | TrueType Font |
|
|
134
|
+
| `.otf` | OpenType Font |
|
|
135
|
+
| `.woff` | Web Open Font Format |
|
|
136
|
+
| `.woff2` | Compressed Web Open Font Format 2 |
|
|
137
|
+
|
|
138
|
+
> **Warning:** Ensure fonts are appropriately licensed before embedding them in your
|
|
139
|
+
> application. Many commercial fonts have specific licensing requirements for
|
|
140
|
+
> web use and redistribution.
|
|
141
|
+
|
|
142
|
+
## Best Practices
|
|
143
|
+
|
|
144
|
+
### Format Selection
|
|
145
|
+
|
|
146
|
+
When building your application, consider these format recommendations:
|
|
147
|
+
|
|
148
|
+
- **Images**: Use `.webp` for the best compression-to-quality ratio on the web. Fall back to `.png` for transparency or `.jpeg` for photographs without transparency.
|
|
149
|
+
- **Video**: Prefer `.mp4` with H.264 encoding for maximum browser compatibility. Use `.webm` for modern browsers when you need open-source codecs.
|
|
150
|
+
- **Audio**: Use `.mp3` for universal compatibility or `.m4a` (AAC) for better quality at smaller file sizes.
|
|
151
|
+
- **Templates**: Use `.scene` format for CE.SDK-to-CE.SDK workflows, or import from `.psd`/`.idml` when migrating content from design tools.
|
|
152
|
+
|
|
153
|
+
### Validation and Error Handling
|
|
154
|
+
|
|
155
|
+
Always validate file formats before attempting import:
|
|
156
|
+
|
|
157
|
+
1. **Check MIME types** on file upload to quickly reject unsupported formats
|
|
158
|
+
2. **Validate file extensions** as a first line of defense
|
|
159
|
+
3. **Monitor file sizes** to prevent memory issues with extremely large files
|
|
160
|
+
4. **Provide clear error messages** to users when imports fail, explaining which formats are supported
|
|
161
|
+
|
|
162
|
+
### Memory Management
|
|
163
|
+
|
|
164
|
+
For web applications, be mindful of browser memory constraints:
|
|
165
|
+
|
|
166
|
+
- Large video files (>100 MB) may cause performance issues or browser tab crashes
|
|
167
|
+
- Multiple high-resolution images loaded simultaneously can exhaust GPU memory
|
|
168
|
+
- Consider implementing lazy loading for asset libraries with many files
|
|
169
|
+
- Provide progress indicators for large file imports to improve user experience
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## More Resources
|
|
174
|
+
|
|
175
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
176
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
177
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
178
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|