@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,534 @@
|
|
|
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) > [Create and Edit Videos](./create-video.md) > [Transform](./edit-video/transform.md) > [Resize](./edit-video/transform/resize.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The **CreativeEditor SDK (CE.SDK)** provides a video resizing feature. This guide offers a complete overview of the resizing feature, from using it in the default UI to locking resizing to safeguard layouts.
|
|
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-edit-video-transform-resize-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-edit-video-transform-resize-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-edit-video-transform-resize-browser/)
|
|
19
|
+
|
|
20
|
+
```typescript file=@cesdk_web_examples/guides-edit-video-transform-resize-browser/browser.ts reference-only
|
|
21
|
+
import CreativeEditorSDK, {
|
|
22
|
+
type EditorPlugin,
|
|
23
|
+
type EditorPluginContext
|
|
24
|
+
} from '@cesdk/cesdk-js';
|
|
25
|
+
|
|
26
|
+
import {
|
|
27
|
+
BlurAssetSource,
|
|
28
|
+
CaptionPresetsAssetSource,
|
|
29
|
+
ColorPaletteAssetSource,
|
|
30
|
+
CropPresetsAssetSource,
|
|
31
|
+
DemoAssetSources,
|
|
32
|
+
EffectsAssetSource,
|
|
33
|
+
FiltersAssetSource,
|
|
34
|
+
PagePresetsAssetSource,
|
|
35
|
+
StickerAssetSource,
|
|
36
|
+
TextAssetSource,
|
|
37
|
+
TextComponentAssetSource,
|
|
38
|
+
TypefaceAssetSource,
|
|
39
|
+
UploadAssetSources,
|
|
40
|
+
VectorShapeAssetSource
|
|
41
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
+
import { VideoEditorConfig } from './video-editor/plugin';
|
|
43
|
+
|
|
44
|
+
class Example implements EditorPlugin {
|
|
45
|
+
name = 'guides-edit-video-transform-resize-browser';
|
|
46
|
+
|
|
47
|
+
version = CreativeEditorSDK.version;
|
|
48
|
+
|
|
49
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
50
|
+
if (!cesdk) {
|
|
51
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
await cesdk.addPlugin(new VideoEditorConfig());
|
|
55
|
+
|
|
56
|
+
// Add asset source plugins
|
|
57
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
58
|
+
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
59
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
60
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
61
|
+
await cesdk.addPlugin(
|
|
62
|
+
new UploadAssetSources({
|
|
63
|
+
include: [
|
|
64
|
+
'ly.img.image.upload',
|
|
65
|
+
'ly.img.video.upload',
|
|
66
|
+
'ly.img.audio.upload'
|
|
67
|
+
]
|
|
68
|
+
})
|
|
69
|
+
);
|
|
70
|
+
await cesdk.addPlugin(
|
|
71
|
+
new DemoAssetSources({
|
|
72
|
+
include: [
|
|
73
|
+
'ly.img.templates.video.*',
|
|
74
|
+
'ly.img.image.*',
|
|
75
|
+
'ly.img.audio.*',
|
|
76
|
+
'ly.img.video.*'
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
);
|
|
80
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
81
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
82
|
+
await cesdk.addPlugin(
|
|
83
|
+
new PagePresetsAssetSource({
|
|
84
|
+
include: [
|
|
85
|
+
'ly.img.page.presets.instagram.*',
|
|
86
|
+
'ly.img.page.presets.facebook.*',
|
|
87
|
+
'ly.img.page.presets.x.*',
|
|
88
|
+
'ly.img.page.presets.linkedin.*',
|
|
89
|
+
'ly.img.page.presets.pinterest.*',
|
|
90
|
+
'ly.img.page.presets.tiktok.*',
|
|
91
|
+
'ly.img.page.presets.youtube.*',
|
|
92
|
+
'ly.img.page.presets.video.*'
|
|
93
|
+
]
|
|
94
|
+
})
|
|
95
|
+
);
|
|
96
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
97
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
98
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
99
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
100
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
101
|
+
|
|
102
|
+
await cesdk.actions.run('scene.create', {
|
|
103
|
+
layout: 'DepthStack',
|
|
104
|
+
page: { width: 800, height: 500, unit: 'Pixel' }
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const engine = cesdk.engine;
|
|
108
|
+
const pages = engine.block.findByType('page');
|
|
109
|
+
const page = pages.length > 0 ? pages[0] : engine.scene.get();
|
|
110
|
+
|
|
111
|
+
// Enable fill and set page fill color to #6686FF
|
|
112
|
+
engine.block.setFillEnabled(page, true);
|
|
113
|
+
engine.block.setColor(engine.block.getFill(page), 'fill/color/value', {
|
|
114
|
+
r: 102 / 255,
|
|
115
|
+
g: 134 / 255,
|
|
116
|
+
b: 255 / 255,
|
|
117
|
+
a: 1
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// Layout constants for centered positioning
|
|
121
|
+
// Page: 800x500, 3 columns of 200px each with 50px spacing
|
|
122
|
+
// Total width: 700px, centered start X: 50px
|
|
123
|
+
// Column centers: 150, 400, 650
|
|
124
|
+
const videoWidth = 150;
|
|
125
|
+
const videoHeight = 100;
|
|
126
|
+
const columnWidth = 200;
|
|
127
|
+
const startY = 165; // Vertically centered
|
|
128
|
+
const labelY = startY + videoHeight + 10;
|
|
129
|
+
const explanationY = labelY + 35;
|
|
130
|
+
|
|
131
|
+
// Column 1 center: 150
|
|
132
|
+
const col1X = 50;
|
|
133
|
+
const col1VideoX = col1X + (columnWidth - videoWidth) / 2; // 75
|
|
134
|
+
|
|
135
|
+
// Column 2 center: 400 (percentage video is 200px = 25% of 800)
|
|
136
|
+
const col2X = 300;
|
|
137
|
+
const col2VideoX = col2X; // 200px wide video centered at 400
|
|
138
|
+
|
|
139
|
+
// Column 3 center: 650
|
|
140
|
+
const col3X = 550;
|
|
141
|
+
const col3VideoX = col3X + (columnWidth - videoWidth) / 2; // 575
|
|
142
|
+
|
|
143
|
+
// Demo 1: Resizable Video - Can be freely resized by user
|
|
144
|
+
const resizableVideo = await engine.block.addVideo(
|
|
145
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
146
|
+
videoWidth,
|
|
147
|
+
videoHeight
|
|
148
|
+
);
|
|
149
|
+
engine.block.appendChild(page, resizableVideo);
|
|
150
|
+
engine.block.setPositionX(resizableVideo, col1VideoX);
|
|
151
|
+
engine.block.setPositionY(resizableVideo, startY);
|
|
152
|
+
|
|
153
|
+
const text1 = engine.block.create('text');
|
|
154
|
+
engine.block.setString(text1, 'text/text', 'Resizable');
|
|
155
|
+
engine.block.setFloat(text1, 'text/fontSize', 28);
|
|
156
|
+
engine.block.setEnum(text1, 'text/horizontalAlignment', 'Center');
|
|
157
|
+
engine.block.setWidth(text1, columnWidth);
|
|
158
|
+
engine.block.setPositionX(text1, col1X);
|
|
159
|
+
engine.block.setPositionY(text1, labelY);
|
|
160
|
+
engine.block.setFillEnabled(text1, true);
|
|
161
|
+
engine.block.setColor(engine.block.getFill(text1), 'fill/color/value', {
|
|
162
|
+
r: 1,
|
|
163
|
+
g: 1,
|
|
164
|
+
b: 1,
|
|
165
|
+
a: 1
|
|
166
|
+
});
|
|
167
|
+
engine.block.appendChild(page, text1);
|
|
168
|
+
|
|
169
|
+
// Add explanatory text below
|
|
170
|
+
const explanation1 = engine.block.create('text');
|
|
171
|
+
engine.block.setString(
|
|
172
|
+
explanation1,
|
|
173
|
+
'text/text',
|
|
174
|
+
'Absolute pixel dimensions'
|
|
175
|
+
);
|
|
176
|
+
engine.block.setFloat(explanation1, 'text/fontSize', 12);
|
|
177
|
+
engine.block.setEnum(explanation1, 'text/horizontalAlignment', 'Center');
|
|
178
|
+
engine.block.setWidth(explanation1, columnWidth);
|
|
179
|
+
engine.block.setPositionX(explanation1, col1X);
|
|
180
|
+
engine.block.setPositionY(explanation1, explanationY);
|
|
181
|
+
engine.block.setFillEnabled(explanation1, true);
|
|
182
|
+
engine.block.setColor(
|
|
183
|
+
engine.block.getFill(explanation1),
|
|
184
|
+
'fill/color/value',
|
|
185
|
+
{
|
|
186
|
+
r: 1,
|
|
187
|
+
g: 1,
|
|
188
|
+
b: 1,
|
|
189
|
+
a: 1
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
engine.block.appendChild(page, explanation1);
|
|
193
|
+
|
|
194
|
+
// Demo 2: Percentage Sizing - Responsive layout
|
|
195
|
+
const percentVideo = await engine.block.addVideo(
|
|
196
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
197
|
+
videoWidth,
|
|
198
|
+
videoHeight
|
|
199
|
+
);
|
|
200
|
+
engine.block.appendChild(page, percentVideo);
|
|
201
|
+
|
|
202
|
+
// Set size mode to percentage (0.0 to 1.0)
|
|
203
|
+
engine.block.setWidthMode(percentVideo, 'Percent');
|
|
204
|
+
engine.block.setHeightMode(percentVideo, 'Percent');
|
|
205
|
+
// Set to 25% width, 20% height of parent
|
|
206
|
+
engine.block.setWidth(percentVideo, 0.25);
|
|
207
|
+
engine.block.setHeight(percentVideo, 0.2);
|
|
208
|
+
|
|
209
|
+
engine.block.setPositionX(percentVideo, col2VideoX);
|
|
210
|
+
engine.block.setPositionY(percentVideo, startY);
|
|
211
|
+
|
|
212
|
+
const text2 = engine.block.create('text');
|
|
213
|
+
engine.block.setString(text2, 'text/text', 'Percentage');
|
|
214
|
+
engine.block.setFloat(text2, 'text/fontSize', 28);
|
|
215
|
+
engine.block.setEnum(text2, 'text/horizontalAlignment', 'Center');
|
|
216
|
+
engine.block.setWidth(text2, columnWidth);
|
|
217
|
+
engine.block.setPositionX(text2, col2X);
|
|
218
|
+
engine.block.setPositionY(text2, labelY);
|
|
219
|
+
engine.block.setFillEnabled(text2, true);
|
|
220
|
+
engine.block.setColor(engine.block.getFill(text2), 'fill/color/value', {
|
|
221
|
+
r: 1,
|
|
222
|
+
g: 1,
|
|
223
|
+
b: 1,
|
|
224
|
+
a: 1
|
|
225
|
+
});
|
|
226
|
+
engine.block.appendChild(page, text2);
|
|
227
|
+
|
|
228
|
+
// Add explanatory text below
|
|
229
|
+
const explanation2 = engine.block.create('text');
|
|
230
|
+
engine.block.setString(explanation2, 'text/text', '25% width, 20% height');
|
|
231
|
+
engine.block.setFloat(explanation2, 'text/fontSize', 12);
|
|
232
|
+
engine.block.setEnum(explanation2, 'text/horizontalAlignment', 'Center');
|
|
233
|
+
engine.block.setWidth(explanation2, columnWidth);
|
|
234
|
+
engine.block.setPositionX(explanation2, col2X);
|
|
235
|
+
engine.block.setPositionY(explanation2, explanationY);
|
|
236
|
+
engine.block.setFillEnabled(explanation2, true);
|
|
237
|
+
engine.block.setColor(
|
|
238
|
+
engine.block.getFill(explanation2),
|
|
239
|
+
'fill/color/value',
|
|
240
|
+
{
|
|
241
|
+
r: 1,
|
|
242
|
+
g: 1,
|
|
243
|
+
b: 1,
|
|
244
|
+
a: 1
|
|
245
|
+
}
|
|
246
|
+
);
|
|
247
|
+
engine.block.appendChild(page, explanation2);
|
|
248
|
+
|
|
249
|
+
// Demo 3: Resize-Locked Video - Cannot be resized
|
|
250
|
+
const lockedVideo = await engine.block.addVideo(
|
|
251
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
252
|
+
videoWidth,
|
|
253
|
+
videoHeight
|
|
254
|
+
);
|
|
255
|
+
engine.block.appendChild(page, lockedVideo);
|
|
256
|
+
engine.block.setPositionX(lockedVideo, col3VideoX);
|
|
257
|
+
engine.block.setPositionY(lockedVideo, startY);
|
|
258
|
+
|
|
259
|
+
// Lock the transform to prevent resizing
|
|
260
|
+
engine.block.setTransformLocked(lockedVideo, true);
|
|
261
|
+
|
|
262
|
+
const text3 = engine.block.create('text');
|
|
263
|
+
engine.block.setString(text3, 'text/text', 'Locked');
|
|
264
|
+
engine.block.setFloat(text3, 'text/fontSize', 28);
|
|
265
|
+
engine.block.setEnum(text3, 'text/horizontalAlignment', 'Center');
|
|
266
|
+
engine.block.setWidth(text3, columnWidth);
|
|
267
|
+
engine.block.setPositionX(text3, col3X);
|
|
268
|
+
engine.block.setPositionY(text3, labelY);
|
|
269
|
+
engine.block.setFillEnabled(text3, true);
|
|
270
|
+
engine.block.setColor(engine.block.getFill(text3), 'fill/color/value', {
|
|
271
|
+
r: 1,
|
|
272
|
+
g: 1,
|
|
273
|
+
b: 1,
|
|
274
|
+
a: 1
|
|
275
|
+
});
|
|
276
|
+
engine.block.appendChild(page, text3);
|
|
277
|
+
|
|
278
|
+
// Add explanatory text below
|
|
279
|
+
const explanation3 = engine.block.create('text');
|
|
280
|
+
engine.block.setString(explanation3, 'text/text', 'Transform locked');
|
|
281
|
+
engine.block.setFloat(explanation3, 'text/fontSize', 12);
|
|
282
|
+
engine.block.setEnum(explanation3, 'text/horizontalAlignment', 'Center');
|
|
283
|
+
engine.block.setWidth(explanation3, columnWidth);
|
|
284
|
+
engine.block.setPositionX(explanation3, col3X);
|
|
285
|
+
engine.block.setPositionY(explanation3, explanationY);
|
|
286
|
+
engine.block.setFillEnabled(explanation3, true);
|
|
287
|
+
engine.block.setColor(
|
|
288
|
+
engine.block.getFill(explanation3),
|
|
289
|
+
'fill/color/value',
|
|
290
|
+
{
|
|
291
|
+
r: 1,
|
|
292
|
+
g: 1,
|
|
293
|
+
b: 1,
|
|
294
|
+
a: 1
|
|
295
|
+
}
|
|
296
|
+
);
|
|
297
|
+
engine.block.appendChild(page, explanation3);
|
|
298
|
+
|
|
299
|
+
// Get current dimensions
|
|
300
|
+
const currentWidth = engine.block.getWidth(resizableVideo);
|
|
301
|
+
const currentHeight = engine.block.getHeight(resizableVideo);
|
|
302
|
+
console.log('Current dimensions:', currentWidth, 'x', currentHeight);
|
|
303
|
+
|
|
304
|
+
// Check size mode
|
|
305
|
+
const widthMode = engine.block.getWidthMode(percentVideo);
|
|
306
|
+
const heightMode = engine.block.getHeightMode(percentVideo);
|
|
307
|
+
console.log('Size modes:', widthMode, heightMode);
|
|
308
|
+
|
|
309
|
+
// Set playhead position to 2 seconds
|
|
310
|
+
engine.block.setPlaybackTime(page, 2);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export default Example;
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## What You'll Learn
|
|
318
|
+
|
|
319
|
+
- Resize a single video block with the **default UI**.
|
|
320
|
+
- Resize clips using **JavaScript** and the **CE.SDK API**.
|
|
321
|
+
- Resize **groups** of video blocks uniformly.
|
|
322
|
+
- **Lock** or restrict a user's ability to resize.
|
|
323
|
+
|
|
324
|
+
### When to Use
|
|
325
|
+
|
|
326
|
+
Resize videos to:
|
|
327
|
+
|
|
328
|
+
- Fit **template areas**.
|
|
329
|
+
|
|
330
|
+
- Insert videos into reusable **layouts**.
|
|
331
|
+
|
|
332
|
+
- Keep aspect ratios **consistent** for:
|
|
333
|
+
- Social media posts (like reels)
|
|
334
|
+
- Ads
|
|
335
|
+
|
|
336
|
+
- Create **automation workflows** in JavaScript.
|
|
337
|
+
|
|
338
|
+
- Combine with trimming or cropping.
|
|
339
|
+
|
|
340
|
+
## Resize a Video Block with the UI
|
|
341
|
+
|
|
342
|
+
When using the default CE.SDK UI:
|
|
343
|
+
|
|
344
|
+
1. Select the video.
|
|
345
|
+
2. The resize handles appear.
|
|
346
|
+
3. Drag one of the handles to resize the video until you set the desired size.
|
|
347
|
+
|
|
348
|
+
The editor provides two kinds of handles:
|
|
349
|
+
|
|
350
|
+
- **Corner scale handles:** keep the video's aspect ratio.
|
|
351
|
+
|
|
352
|
+
<Picture src={resizeHandles} style={{ width: '110%' }} alt="Resize handles from the default CE.SDK web editor" formats={['webp']} />
|
|
353
|
+
|
|
354
|
+
- **Edge handles:** stretch only the width or the height independently.
|
|
355
|
+
|
|
356
|
+
<Picture src={edgeHandles} style={{ width: '110%' }} alt="Resize edge handles from the default CE.SDK web editor" formats={['webp']} />
|
|
357
|
+
|
|
358
|
+
Any embedded audio remains synchronous, because resizing affects only the block's frame, not the time-based properties.
|
|
359
|
+
|
|
360
|
+
### Hide the Resize Handles in the UI
|
|
361
|
+
|
|
362
|
+
To prevent manual resizing in the UI, **hide the resize edge handles** using the **EditorAPI**:
|
|
363
|
+
|
|
364
|
+
1. Call the `setSetting` function.
|
|
365
|
+
2. Include the `"controlGizmo/showResizeHandles"` key.
|
|
366
|
+
3. Set the value to `false`.
|
|
367
|
+
|
|
368
|
+
```ts
|
|
369
|
+
// Hide resize handles if you want to prevent manual resizing
|
|
370
|
+
engine.editor.setSetting('controlGizmo/showResizeHandles', false);
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
> **Note:** This setting still **displays the corner handles** and helps avoid editing operations that change the size independently in the UI.
|
|
374
|
+
|
|
375
|
+
## Resize a Video Block with JavaScript
|
|
376
|
+
|
|
377
|
+
When developing a custom UI use the CreativeEngine BlockAPI to edit a video's size. Two methods exist: choose the one that best suits your project.
|
|
378
|
+
|
|
379
|
+
### Set Absolute Sizing
|
|
380
|
+
|
|
381
|
+
Set the video's absolute size with `setWidth` and `setHeight`. First, create the video block with `addVideo`, then set explicit pixel dimensions:
|
|
382
|
+
|
|
383
|
+
```typescript highlight-resizable-video
|
|
384
|
+
const resizableVideo = await engine.block.addVideo(
|
|
385
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
386
|
+
videoWidth,
|
|
387
|
+
videoHeight
|
|
388
|
+
);
|
|
389
|
+
engine.block.appendChild(page, resizableVideo);
|
|
390
|
+
engine.block.setPositionX(resizableVideo, col1VideoX);
|
|
391
|
+
engine.block.setPositionY(resizableVideo, startY);
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### Set Relative Sizing
|
|
395
|
+
|
|
396
|
+
Set the video's size relative to its parent (for example, to the page):
|
|
397
|
+
|
|
398
|
+
1. Set the size mode with `setWidthMode` and `setHeightMode`.
|
|
399
|
+
2. Define the mode as `'Percent'`.
|
|
400
|
+
3. Set the size in normalized values, with `1` being full-width.
|
|
401
|
+
|
|
402
|
+
```typescript highlight-percentage-sizing
|
|
403
|
+
// Set size mode to percentage (0.0 to 1.0)
|
|
404
|
+
engine.block.setWidthMode(percentVideo, 'Percent');
|
|
405
|
+
engine.block.setHeightMode(percentVideo, 'Percent');
|
|
406
|
+
// Set to 25% width, 20% height of parent
|
|
407
|
+
engine.block.setWidth(percentVideo, 0.25);
|
|
408
|
+
engine.block.setHeight(percentVideo, 0.2);
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
The preceding code:
|
|
412
|
+
|
|
413
|
+
- Sets the clip to 25% width of its parent.
|
|
414
|
+
- Makes the clip 20% as tall.
|
|
415
|
+
- Stays responsive to the parent's size changes.
|
|
416
|
+
|
|
417
|
+
<Picture src={resizePercent} style={{ width: '110%' }} alt="Resized video relative to the page" formats={['webp']} />
|
|
418
|
+
|
|
419
|
+
This method allows for the clip to follow the parent's size changes while maintaining proportional dimensions.
|
|
420
|
+
|
|
421
|
+
### Get Current Dimensions
|
|
422
|
+
|
|
423
|
+
Read current size values using `getWidth` and `getHeight`. Values are returned in the current size mode (absolute pixels or percentage 0.0-1.0):
|
|
424
|
+
|
|
425
|
+
```typescript highlight-get-dimensions
|
|
426
|
+
// Get current dimensions
|
|
427
|
+
const currentWidth = engine.block.getWidth(resizableVideo);
|
|
428
|
+
const currentHeight = engine.block.getHeight(resizableVideo);
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### Check Size Mode
|
|
432
|
+
|
|
433
|
+
Query the current size mode using `getWidthMode` and `getHeightMode`:
|
|
434
|
+
|
|
435
|
+
```typescript highlight-get-size-mode
|
|
436
|
+
// Check size mode
|
|
437
|
+
const widthMode = engine.block.getWidthMode(percentVideo);
|
|
438
|
+
const heightMode = engine.block.getHeightMode(percentVideo);
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### Maintain Aspect Ratio
|
|
442
|
+
|
|
443
|
+
If the block's _fill_ is a video (`FillType.video`), the engine preserves the footage's native aspect ratio. To force a different ratio, you must:
|
|
444
|
+
|
|
445
|
+
1. Calculate the ratio
|
|
446
|
+
2. Adjust one side, or add constraints (see **Locking** below).
|
|
447
|
+
|
|
448
|
+
## Resize Videos Together
|
|
449
|
+
|
|
450
|
+
To resize several videos at once, instead of resizing each video individually:
|
|
451
|
+
|
|
452
|
+
1. Group the videos with `engine.block.group`.
|
|
453
|
+
2. Set the size for the entire group.
|
|
454
|
+
|
|
455
|
+
```ts
|
|
456
|
+
// Group multiple video clips
|
|
457
|
+
const group = engine.block.group([clipA, clipB, clipC]);
|
|
458
|
+
|
|
459
|
+
// Resize the entire group - height scales proportionally
|
|
460
|
+
engine.block.setWidth(group, 400);
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
To ensure consistent layout, groups of videos:
|
|
464
|
+
|
|
465
|
+
- Always scale uniformly on both axes.
|
|
466
|
+
- Show only _scale_ and _rotate_ gizmos in the UI, never individual resize handles.
|
|
467
|
+
|
|
468
|
+
## Lock or Constrain Resizing
|
|
469
|
+
|
|
470
|
+
Use the BlockAPI to define if your app allows resizing for a specific block:
|
|
471
|
+
|
|
472
|
+
<Tabs>
|
|
473
|
+
<TabItem label="Lock a specific block">
|
|
474
|
+
1. Tell the engine that each block has its own resize policy with `setGlobalScope`.
|
|
475
|
+
2. Call `setScopeEnabled`.
|
|
476
|
+
3. Include the video block ID.
|
|
477
|
+
4. Set the boolean's value for `locked`:
|
|
478
|
+
- `true` enables resizing.
|
|
479
|
+
- `false` deactivates resizing.
|
|
480
|
+
|
|
481
|
+
```ts
|
|
482
|
+
// Disable only resize for this specific block
|
|
483
|
+
engine.editor.setGlobalScope('layer/resize', 'Defer');
|
|
484
|
+
engine.block.setScopeEnabled(videoBlock, 'layer/resize', false);
|
|
485
|
+
|
|
486
|
+
// The block can still be moved and rotated, but not resized via UI
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
Resize actions remain available through code, but not via the UI.
|
|
490
|
+
|
|
491
|
+
</TabItem>
|
|
492
|
+
|
|
493
|
+
<TabItem label="Lock all transforms">
|
|
494
|
+
Lock all transforms entirely to prevent resizing, repositioning, and rotation:
|
|
495
|
+
|
|
496
|
+
```typescript highlight-locked-video
|
|
497
|
+
// Lock the transform to prevent resizing
|
|
498
|
+
engine.block.setTransformLocked(lockedVideo, true);
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
The preceding code deactivates all transform actions, resize included:
|
|
502
|
+
|
|
503
|
+
- Manual actions from the UI
|
|
504
|
+
- Automated actions through code.
|
|
505
|
+
|
|
506
|
+
</TabItem>
|
|
507
|
+
</Tabs>
|
|
508
|
+
|
|
509
|
+
Create templates with finer-grained scope keys to allow rotation or movement while forbidding size changes.
|
|
510
|
+
|
|
511
|
+
## Notes on Resizing with CE.SDK
|
|
512
|
+
|
|
513
|
+
| Topic | What you want to do | What happens |
|
|
514
|
+
| ------------------ | ------------------------------------------- | ------------------------------------------------------------- |
|
|
515
|
+
| **Block duration** | Resize the block's on-canvas frame. | No need to retime; duration and trims stay untouched. |
|
|
516
|
+
| **Content fill** | Switch the block to `.contain` or `.cover`. | Update it with `setContentFillMode` (see _common crop APIs_). |
|
|
517
|
+
| **Performance** | Work on large canvases such as 4K. | Plan around GPU limits and the Video Editor 4K constraints. |
|
|
518
|
+
|
|
519
|
+
## Next Steps
|
|
520
|
+
|
|
521
|
+
Now that you understand how to resize with the CE.SDK, take time to dive into other related features:
|
|
522
|
+
|
|
523
|
+
- [Create a template](./create-templates.md) to enforce design rules.
|
|
524
|
+
- [Use other transforms](./edit-video/transform.md) available with the CreativeEditor.
|
|
525
|
+
- [Add captions](./edit-video/add-captions.md) to videos.
|
|
526
|
+
|
|
527
|
+
---
|
|
528
|
+
|
|
529
|
+
## More Resources
|
|
530
|
+
|
|
531
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
532
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
533
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
534
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|