@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,603 @@
|
|
|
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) > [Scale](./edit-video/transform/scale.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The CreativeEditor provides a scaling feature to edit videos in your web app, to render an intended composition. Explore the different scaling options within CE.SDK, and learn how to embed it both from the UI and the API.
|
|
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-create-video-transform-scale-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-video-transform-scale-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-create-video-transform-scale-browser/)
|
|
19
|
+
|
|
20
|
+
## What You'll Learn
|
|
21
|
+
|
|
22
|
+
- Scale videos through **JavaScript**.
|
|
23
|
+
- Scale **proportionally** or non-uniformly.
|
|
24
|
+
- **Group** elements to scale them together.
|
|
25
|
+
- Apply or lock scaling **constraints** in templates.
|
|
26
|
+
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
Use scaling to:
|
|
30
|
+
|
|
31
|
+
- **Emphasize** or de-emphasize a clip in a composition.
|
|
32
|
+
- **Fit** footage to a free-form layout without cropping.
|
|
33
|
+
- Drive zoom gestures or **responsive** designs.
|
|
34
|
+
|
|
35
|
+
## How Scaling Works
|
|
36
|
+
|
|
37
|
+
Scaling uses the `scale(block, scale, anchorX, anchorY)` function, with the following **parameters**:
|
|
38
|
+
|
|
39
|
+
| Parameter | Description | Values |
|
|
40
|
+
| ------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------ |
|
|
41
|
+
| `block` | Handle (ID) of the block to scale. | `number` |
|
|
42
|
+
| `scale` | Scale factor to apply. | **1.0** keeps the original size. **>1.0** enlarges the block. **\< 1.0** shrinks it. |
|
|
43
|
+
| `anchorX` `anchorY` | Origin point of scale along the width and height | **Top/Left** = 0, **Center** = 0.5, **Bottom/Right** = 1. **Defaults** = `0` |
|
|
44
|
+
|
|
45
|
+
For example:
|
|
46
|
+
|
|
47
|
+
- A value of `1.0` sets the original block's size.
|
|
48
|
+
- A value of `2.0` makes the block twice as large.
|
|
49
|
+
|
|
50
|
+
```typescript file=@cesdk_web_examples/guides-create-video-transform-scale-browser/browser.ts reference-only
|
|
51
|
+
import CreativeEditorSDK, {
|
|
52
|
+
type EditorPlugin,
|
|
53
|
+
type EditorPluginContext
|
|
54
|
+
} from '@cesdk/cesdk-js';
|
|
55
|
+
|
|
56
|
+
import {
|
|
57
|
+
BlurAssetSource,
|
|
58
|
+
CaptionPresetsAssetSource,
|
|
59
|
+
ColorPaletteAssetSource,
|
|
60
|
+
CropPresetsAssetSource,
|
|
61
|
+
DemoAssetSources,
|
|
62
|
+
EffectsAssetSource,
|
|
63
|
+
FiltersAssetSource,
|
|
64
|
+
PagePresetsAssetSource,
|
|
65
|
+
StickerAssetSource,
|
|
66
|
+
TextAssetSource,
|
|
67
|
+
TextComponentAssetSource,
|
|
68
|
+
TypefaceAssetSource,
|
|
69
|
+
UploadAssetSources,
|
|
70
|
+
VectorShapeAssetSource
|
|
71
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
72
|
+
import { VideoEditorConfig } from './video-editor/plugin';
|
|
73
|
+
|
|
74
|
+
class Example implements EditorPlugin {
|
|
75
|
+
name = 'guides-create-video-transform-scale-browser';
|
|
76
|
+
|
|
77
|
+
version = CreativeEditorSDK.version;
|
|
78
|
+
|
|
79
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
80
|
+
if (!cesdk) {
|
|
81
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
await cesdk.addPlugin(new VideoEditorConfig());
|
|
85
|
+
|
|
86
|
+
// Add asset source plugins
|
|
87
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
90
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
91
|
+
await cesdk.addPlugin(
|
|
92
|
+
new UploadAssetSources({
|
|
93
|
+
include: [
|
|
94
|
+
'ly.img.image.upload',
|
|
95
|
+
'ly.img.video.upload',
|
|
96
|
+
'ly.img.audio.upload'
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
await cesdk.addPlugin(
|
|
101
|
+
new DemoAssetSources({
|
|
102
|
+
include: [
|
|
103
|
+
'ly.img.templates.video.*',
|
|
104
|
+
'ly.img.image.*',
|
|
105
|
+
'ly.img.audio.*',
|
|
106
|
+
'ly.img.video.*'
|
|
107
|
+
]
|
|
108
|
+
})
|
|
109
|
+
);
|
|
110
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
111
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
112
|
+
await cesdk.addPlugin(
|
|
113
|
+
new PagePresetsAssetSource({
|
|
114
|
+
include: [
|
|
115
|
+
'ly.img.page.presets.instagram.*',
|
|
116
|
+
'ly.img.page.presets.facebook.*',
|
|
117
|
+
'ly.img.page.presets.x.*',
|
|
118
|
+
'ly.img.page.presets.linkedin.*',
|
|
119
|
+
'ly.img.page.presets.pinterest.*',
|
|
120
|
+
'ly.img.page.presets.tiktok.*',
|
|
121
|
+
'ly.img.page.presets.youtube.*',
|
|
122
|
+
'ly.img.page.presets.video.*'
|
|
123
|
+
]
|
|
124
|
+
})
|
|
125
|
+
);
|
|
126
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
127
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
128
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
129
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
130
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
131
|
+
|
|
132
|
+
await cesdk.actions.run('scene.create', {
|
|
133
|
+
layout: 'DepthStack',
|
|
134
|
+
page: { width: 800, height: 500, unit: 'Pixel' }
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
const engine = cesdk.engine;
|
|
138
|
+
const pages = engine.block.findByType('page');
|
|
139
|
+
const page = pages.length > 0 ? pages[0] : engine.scene.get();
|
|
140
|
+
|
|
141
|
+
// Enable fill and set page fill color to #6686FF
|
|
142
|
+
engine.block.setFillEnabled(page, true);
|
|
143
|
+
engine.block.setColor(engine.block.getFill(page), 'fill/color/value', {
|
|
144
|
+
r: 102 / 255,
|
|
145
|
+
g: 134 / 255,
|
|
146
|
+
b: 255 / 255,
|
|
147
|
+
a: 1
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
// Centered 2x2 grid layout for 800x500 canvas
|
|
151
|
+
// Videos: 120x90, scaled to 180x135
|
|
152
|
+
// Grid positions are where videos APPEAR after scaling
|
|
153
|
+
// Left column visual X=200, Right column visual X=420
|
|
154
|
+
// Top row visual Y=50, Bottom row visual Y=265
|
|
155
|
+
const leftColumnX = 200;
|
|
156
|
+
const rightColumnX = 420;
|
|
157
|
+
const topRowY = 50;
|
|
158
|
+
const bottomRowY = 265;
|
|
159
|
+
const titleOffsetY = 145; // 135 (video height) + 10 (gap)
|
|
160
|
+
const subtitleOffsetY = 172; // title + 27
|
|
161
|
+
|
|
162
|
+
// For center-scaled video, compensate for position shift
|
|
163
|
+
// Center scaling shifts top-left by (-30, -22.5) for 1.5x scale on 120x90
|
|
164
|
+
const centerScaleOffsetX = 30;
|
|
165
|
+
const centerScaleOffsetY = 22.5;
|
|
166
|
+
|
|
167
|
+
// Demo 1: Uniform scaling from top-left (default anchor)
|
|
168
|
+
const uniformVideo = await engine.block.addVideo(
|
|
169
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
170
|
+
120,
|
|
171
|
+
90
|
|
172
|
+
);
|
|
173
|
+
engine.block.appendChild(page, uniformVideo);
|
|
174
|
+
engine.block.setPositionX(uniformVideo, leftColumnX);
|
|
175
|
+
engine.block.setPositionY(uniformVideo, topRowY);
|
|
176
|
+
|
|
177
|
+
// Scale the video to 150% from the default top-left anchor
|
|
178
|
+
engine.block.scale(uniformVideo, 1.5);
|
|
179
|
+
|
|
180
|
+
const text1 = engine.block.create('text');
|
|
181
|
+
engine.block.setString(text1, 'text/text', 'Uniform Scale');
|
|
182
|
+
engine.block.setFloat(text1, 'text/fontSize', 24);
|
|
183
|
+
engine.block.setEnum(text1, 'text/horizontalAlignment', 'Center');
|
|
184
|
+
engine.block.setWidth(text1, 180);
|
|
185
|
+
engine.block.setPositionX(text1, leftColumnX);
|
|
186
|
+
engine.block.setPositionY(text1, topRowY + titleOffsetY);
|
|
187
|
+
engine.block.setFillEnabled(text1, true);
|
|
188
|
+
engine.block.setColor(engine.block.getFill(text1), 'fill/color/value', {
|
|
189
|
+
r: 1,
|
|
190
|
+
g: 1,
|
|
191
|
+
b: 1,
|
|
192
|
+
a: 1
|
|
193
|
+
});
|
|
194
|
+
engine.block.appendChild(page, text1);
|
|
195
|
+
|
|
196
|
+
const explanation1 = engine.block.create('text');
|
|
197
|
+
engine.block.setString(
|
|
198
|
+
explanation1,
|
|
199
|
+
'text/text',
|
|
200
|
+
'150% from top-left anchor'
|
|
201
|
+
);
|
|
202
|
+
engine.block.setFloat(explanation1, 'text/fontSize', 12);
|
|
203
|
+
engine.block.setEnum(explanation1, 'text/horizontalAlignment', 'Center');
|
|
204
|
+
engine.block.setWidth(explanation1, 180);
|
|
205
|
+
engine.block.setPositionX(explanation1, leftColumnX);
|
|
206
|
+
engine.block.setPositionY(explanation1, topRowY + subtitleOffsetY);
|
|
207
|
+
engine.block.setFillEnabled(explanation1, true);
|
|
208
|
+
engine.block.setColor(
|
|
209
|
+
engine.block.getFill(explanation1),
|
|
210
|
+
'fill/color/value',
|
|
211
|
+
{
|
|
212
|
+
r: 1,
|
|
213
|
+
g: 1,
|
|
214
|
+
b: 1,
|
|
215
|
+
a: 1
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
engine.block.appendChild(page, explanation1);
|
|
219
|
+
|
|
220
|
+
// Demo 2: Scaling from center anchor
|
|
221
|
+
const centerVideo = await engine.block.addVideo(
|
|
222
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
223
|
+
120,
|
|
224
|
+
90
|
|
225
|
+
);
|
|
226
|
+
engine.block.appendChild(page, centerVideo);
|
|
227
|
+
// Position compensates for center scaling shift so final position aligns with grid
|
|
228
|
+
engine.block.setPositionX(centerVideo, rightColumnX + centerScaleOffsetX);
|
|
229
|
+
engine.block.setPositionY(centerVideo, topRowY + centerScaleOffsetY);
|
|
230
|
+
|
|
231
|
+
// Scale from center anchor (0.5, 0.5)
|
|
232
|
+
engine.block.scale(centerVideo, 1.5, 0.5, 0.5);
|
|
233
|
+
|
|
234
|
+
const text2 = engine.block.create('text');
|
|
235
|
+
engine.block.setString(text2, 'text/text', 'Center Scale');
|
|
236
|
+
engine.block.setFloat(text2, 'text/fontSize', 24);
|
|
237
|
+
engine.block.setEnum(text2, 'text/horizontalAlignment', 'Center');
|
|
238
|
+
engine.block.setWidth(text2, 180);
|
|
239
|
+
engine.block.setPositionX(text2, rightColumnX);
|
|
240
|
+
engine.block.setPositionY(text2, topRowY + titleOffsetY);
|
|
241
|
+
engine.block.setFillEnabled(text2, true);
|
|
242
|
+
engine.block.setColor(engine.block.getFill(text2), 'fill/color/value', {
|
|
243
|
+
r: 1,
|
|
244
|
+
g: 1,
|
|
245
|
+
b: 1,
|
|
246
|
+
a: 1
|
|
247
|
+
});
|
|
248
|
+
engine.block.appendChild(page, text2);
|
|
249
|
+
|
|
250
|
+
const explanation2 = engine.block.create('text');
|
|
251
|
+
engine.block.setString(
|
|
252
|
+
explanation2,
|
|
253
|
+
'text/text',
|
|
254
|
+
'150% from center anchor'
|
|
255
|
+
);
|
|
256
|
+
engine.block.setFloat(explanation2, 'text/fontSize', 12);
|
|
257
|
+
engine.block.setEnum(explanation2, 'text/horizontalAlignment', 'Center');
|
|
258
|
+
engine.block.setWidth(explanation2, 180);
|
|
259
|
+
engine.block.setPositionX(explanation2, rightColumnX);
|
|
260
|
+
engine.block.setPositionY(explanation2, topRowY + subtitleOffsetY);
|
|
261
|
+
engine.block.setFillEnabled(explanation2, true);
|
|
262
|
+
engine.block.setColor(
|
|
263
|
+
engine.block.getFill(explanation2),
|
|
264
|
+
'fill/color/value',
|
|
265
|
+
{
|
|
266
|
+
r: 1,
|
|
267
|
+
g: 1,
|
|
268
|
+
b: 1,
|
|
269
|
+
a: 1
|
|
270
|
+
}
|
|
271
|
+
);
|
|
272
|
+
engine.block.appendChild(page, explanation2);
|
|
273
|
+
|
|
274
|
+
// Demo 3: Non-uniform scaling (width only)
|
|
275
|
+
const stretchVideo = await engine.block.addVideo(
|
|
276
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
277
|
+
120,
|
|
278
|
+
90
|
|
279
|
+
);
|
|
280
|
+
engine.block.appendChild(page, stretchVideo);
|
|
281
|
+
engine.block.setPositionX(stretchVideo, leftColumnX);
|
|
282
|
+
engine.block.setPositionY(stretchVideo, bottomRowY);
|
|
283
|
+
|
|
284
|
+
// Stretch only the width by 1.5x
|
|
285
|
+
engine.block.setWidthMode(stretchVideo, 'Absolute');
|
|
286
|
+
const currentWidth = engine.block.getWidth(stretchVideo);
|
|
287
|
+
engine.block.setWidth(stretchVideo, currentWidth * 1.5, true);
|
|
288
|
+
|
|
289
|
+
const text3 = engine.block.create('text');
|
|
290
|
+
engine.block.setString(text3, 'text/text', 'Width Stretch');
|
|
291
|
+
engine.block.setFloat(text3, 'text/fontSize', 24);
|
|
292
|
+
engine.block.setEnum(text3, 'text/horizontalAlignment', 'Center');
|
|
293
|
+
engine.block.setWidth(text3, 180);
|
|
294
|
+
engine.block.setPositionX(text3, leftColumnX);
|
|
295
|
+
engine.block.setPositionY(text3, bottomRowY + titleOffsetY);
|
|
296
|
+
engine.block.setFillEnabled(text3, true);
|
|
297
|
+
engine.block.setColor(engine.block.getFill(text3), 'fill/color/value', {
|
|
298
|
+
r: 1,
|
|
299
|
+
g: 1,
|
|
300
|
+
b: 1,
|
|
301
|
+
a: 1
|
|
302
|
+
});
|
|
303
|
+
engine.block.appendChild(page, text3);
|
|
304
|
+
|
|
305
|
+
const explanation3 = engine.block.create('text');
|
|
306
|
+
engine.block.setString(
|
|
307
|
+
explanation3,
|
|
308
|
+
'text/text',
|
|
309
|
+
'150% width, height unchanged'
|
|
310
|
+
);
|
|
311
|
+
engine.block.setFloat(explanation3, 'text/fontSize', 12);
|
|
312
|
+
engine.block.setEnum(explanation3, 'text/horizontalAlignment', 'Center');
|
|
313
|
+
engine.block.setWidth(explanation3, 180);
|
|
314
|
+
engine.block.setPositionX(explanation3, leftColumnX);
|
|
315
|
+
engine.block.setPositionY(explanation3, bottomRowY + subtitleOffsetY);
|
|
316
|
+
engine.block.setFillEnabled(explanation3, true);
|
|
317
|
+
engine.block.setColor(
|
|
318
|
+
engine.block.getFill(explanation3),
|
|
319
|
+
'fill/color/value',
|
|
320
|
+
{
|
|
321
|
+
r: 1,
|
|
322
|
+
g: 1,
|
|
323
|
+
b: 1,
|
|
324
|
+
a: 1
|
|
325
|
+
}
|
|
326
|
+
);
|
|
327
|
+
engine.block.appendChild(page, explanation3);
|
|
328
|
+
|
|
329
|
+
// Demo 4: Locked scaling
|
|
330
|
+
const lockedVideo = await engine.block.addVideo(
|
|
331
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
332
|
+
120,
|
|
333
|
+
90
|
|
334
|
+
);
|
|
335
|
+
engine.block.appendChild(page, lockedVideo);
|
|
336
|
+
engine.block.setPositionX(lockedVideo, rightColumnX);
|
|
337
|
+
engine.block.setPositionY(lockedVideo, bottomRowY);
|
|
338
|
+
|
|
339
|
+
// Lock all transforms to prevent scaling
|
|
340
|
+
engine.block.setTransformLocked(lockedVideo, true);
|
|
341
|
+
|
|
342
|
+
const text4 = engine.block.create('text');
|
|
343
|
+
engine.block.setString(text4, 'text/text', 'Scale Locked');
|
|
344
|
+
engine.block.setFloat(text4, 'text/fontSize', 24);
|
|
345
|
+
engine.block.setEnum(text4, 'text/horizontalAlignment', 'Center');
|
|
346
|
+
engine.block.setWidth(text4, 180);
|
|
347
|
+
engine.block.setPositionX(text4, rightColumnX);
|
|
348
|
+
engine.block.setPositionY(text4, bottomRowY + titleOffsetY);
|
|
349
|
+
engine.block.setFillEnabled(text4, true);
|
|
350
|
+
engine.block.setColor(engine.block.getFill(text4), 'fill/color/value', {
|
|
351
|
+
r: 1,
|
|
352
|
+
g: 1,
|
|
353
|
+
b: 1,
|
|
354
|
+
a: 1
|
|
355
|
+
});
|
|
356
|
+
engine.block.appendChild(page, text4);
|
|
357
|
+
|
|
358
|
+
const explanation4 = engine.block.create('text');
|
|
359
|
+
engine.block.setString(
|
|
360
|
+
explanation4,
|
|
361
|
+
'text/text',
|
|
362
|
+
'Transform locked - cannot scale'
|
|
363
|
+
);
|
|
364
|
+
engine.block.setFloat(explanation4, 'text/fontSize', 12);
|
|
365
|
+
engine.block.setEnum(explanation4, 'text/horizontalAlignment', 'Center');
|
|
366
|
+
engine.block.setWidth(explanation4, 180);
|
|
367
|
+
engine.block.setPositionX(explanation4, rightColumnX);
|
|
368
|
+
engine.block.setPositionY(explanation4, bottomRowY + subtitleOffsetY);
|
|
369
|
+
engine.block.setFillEnabled(explanation4, true);
|
|
370
|
+
engine.block.setColor(
|
|
371
|
+
engine.block.getFill(explanation4),
|
|
372
|
+
'fill/color/value',
|
|
373
|
+
{
|
|
374
|
+
r: 1,
|
|
375
|
+
g: 1,
|
|
376
|
+
b: 1,
|
|
377
|
+
a: 1
|
|
378
|
+
}
|
|
379
|
+
);
|
|
380
|
+
engine.block.appendChild(page, explanation4);
|
|
381
|
+
|
|
382
|
+
// Set playhead position to 2 seconds
|
|
383
|
+
engine.block.setPlaybackTime(page, 2);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export default Example;
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
## Scale a Video Uniformly
|
|
391
|
+
|
|
392
|
+
To change the clip size without distorting its proportions, use uniform scaling. Uniform scaling multiplies both width and height by the **same factor** to keep the frame's aspect ratio intact.
|
|
393
|
+
|
|
394
|
+
Scaling a video uniformly allows you to:
|
|
395
|
+
|
|
396
|
+
- Enlarge or shrink footage without altering the content.
|
|
397
|
+
- Maintain per-pixel sharpness.
|
|
398
|
+
- Align with layout constraints.
|
|
399
|
+
|
|
400
|
+
CE.SDK lets you use the same high-level API on all graphic blocks, videos included. To scale any block, use `engine.block.scale()`:
|
|
401
|
+
|
|
402
|
+
```typescript highlight-uniform-scale
|
|
403
|
+
const uniformVideo = await engine.block.addVideo(
|
|
404
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
405
|
+
120,
|
|
406
|
+
90
|
|
407
|
+
);
|
|
408
|
+
engine.block.appendChild(page, uniformVideo);
|
|
409
|
+
engine.block.setPositionX(uniformVideo, leftColumnX);
|
|
410
|
+
engine.block.setPositionY(uniformVideo, topRowY);
|
|
411
|
+
|
|
412
|
+
// Scale the video to 150% from the default top-left anchor
|
|
413
|
+
engine.block.scale(uniformVideo, 1.5);
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
The preceding code:
|
|
417
|
+
|
|
418
|
+
- Scales the video to 150% of its original size.
|
|
419
|
+
- Doesn't change the origin anchor point.
|
|
420
|
+
|
|
421
|
+
As a result, the video expands down and to the right.
|
|
422
|
+
|
|
423
|
+
### Anchor Point
|
|
424
|
+
|
|
425
|
+
The anchor point is the point around which a layer scales. All changes happen around the anchor's point position. By default, any block's anchor point is **the top left**.
|
|
426
|
+
|
|
427
|
+
To **change the anchor point**, the scale function has two optional parameters:
|
|
428
|
+
|
|
429
|
+
- `anchorX` to move the anchor point along the width.
|
|
430
|
+
- `anchorY` to move the anchor point along the height.
|
|
431
|
+
|
|
432
|
+
Both can have values between 0.0 and 1.0. For example, to scale from the center:
|
|
433
|
+
|
|
434
|
+
```typescript highlight-center-scale
|
|
435
|
+
const centerVideo = await engine.block.addVideo(
|
|
436
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
437
|
+
120,
|
|
438
|
+
90
|
|
439
|
+
);
|
|
440
|
+
engine.block.appendChild(page, centerVideo);
|
|
441
|
+
// Position compensates for center scaling shift so final position aligns with grid
|
|
442
|
+
engine.block.setPositionX(centerVideo, rightColumnX + centerScaleOffsetX);
|
|
443
|
+
engine.block.setPositionY(centerVideo, topRowY + centerScaleOffsetY);
|
|
444
|
+
|
|
445
|
+
// Scale from center anchor (0.5, 0.5)
|
|
446
|
+
engine.block.scale(centerVideo, 1.5, 0.5, 0.5);
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
This function:
|
|
450
|
+
|
|
451
|
+
1. Scales the video to **150%** of its original size.
|
|
452
|
+
2. Sets the origin anchor point at the center with `0.5, 0.5`.
|
|
453
|
+
|
|
454
|
+
This way, the video expands from the center equally in all directions.
|
|
455
|
+
|
|
456
|
+
## Scale Videos Non-Uniformly
|
|
457
|
+
|
|
458
|
+
You might need to stretch a video only horizontally or vertically. To stretch or compress only one axis, thus distorting a video, use the **width** or **height** functions.
|
|
459
|
+
|
|
460
|
+
```typescript highlight-nonuniform-scale
|
|
461
|
+
const stretchVideo = await engine.block.addVideo(
|
|
462
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
463
|
+
120,
|
|
464
|
+
90
|
|
465
|
+
);
|
|
466
|
+
engine.block.appendChild(page, stretchVideo);
|
|
467
|
+
engine.block.setPositionX(stretchVideo, leftColumnX);
|
|
468
|
+
engine.block.setPositionY(stretchVideo, bottomRowY);
|
|
469
|
+
|
|
470
|
+
// Stretch only the width by 1.5x
|
|
471
|
+
engine.block.setWidthMode(stretchVideo, 'Absolute');
|
|
472
|
+
const currentWidth = engine.block.getWidth(stretchVideo);
|
|
473
|
+
engine.block.setWidth(stretchVideo, currentWidth * 1.5, true);
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
The preceding code:
|
|
477
|
+
|
|
478
|
+
1. Sets the width mode to `'Absolute'` to edit the video using a fixed pixel value instead of a relative layout mode.
|
|
479
|
+
2. Reads the current width.
|
|
480
|
+
3. Multiplies it by 1.5 to compute a new width that's 150% of the original.
|
|
481
|
+
4. Writes the new width back to the block with `maintainCrop` set to `true`.
|
|
482
|
+
|
|
483
|
+
Use this to:
|
|
484
|
+
|
|
485
|
+
- Create panoramic crops.
|
|
486
|
+
- Compensate for aspect ratios during automation.
|
|
487
|
+
|
|
488
|
+
### Respect the Existing Crop
|
|
489
|
+
|
|
490
|
+
The crop defines which part of the clip stays visible. Stretching the block without preserving its crop might:
|
|
491
|
+
|
|
492
|
+
- Reveal unwanted areas.
|
|
493
|
+
- Cut off the focal point.
|
|
494
|
+
|
|
495
|
+
The `maintainCrop` parameter (third argument to `setWidth`) keeps the visible region intact and avoids distortion. Consider using `maintainCrop` if a **template** already uses cropping to frame a subject or hide a watermark.
|
|
496
|
+
|
|
497
|
+
## Scale Clips Together
|
|
498
|
+
|
|
499
|
+
Grouping blocks is a useful way of scaling them proportionally. Use `engine.block.group()` to combine blocks into a group, then scale the group as a single unit:
|
|
500
|
+
|
|
501
|
+
```typescript
|
|
502
|
+
const groupId = engine.block.group([videoBlockId, textBlockId]);
|
|
503
|
+
engine.block.scale(groupId, 1.5, 0.5, 0.5);
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
The preceding code scales the entire group to 150% from the center anchor.
|
|
507
|
+
|
|
508
|
+
> **Warning:** You can't group `page` with other blocks. Group elements on the **top** of the page, **not** with the page itself.
|
|
509
|
+
|
|
510
|
+
## Lock Scaling in Templates
|
|
511
|
+
|
|
512
|
+
To preserve a template's layout, consider locking the scaling option. This is useful for:
|
|
513
|
+
|
|
514
|
+
- Brand assets
|
|
515
|
+
- Campaign creatives
|
|
516
|
+
- Collaboration workflows
|
|
517
|
+
- Fixed dimensions swapping editors
|
|
518
|
+
|
|
519
|
+
```typescript highlight-locked-scale
|
|
520
|
+
const lockedVideo = await engine.block.addVideo(
|
|
521
|
+
'https://img.ly/static/ubq_video_samples/bbb.mp4',
|
|
522
|
+
120,
|
|
523
|
+
90
|
|
524
|
+
);
|
|
525
|
+
engine.block.appendChild(page, lockedVideo);
|
|
526
|
+
engine.block.setPositionX(lockedVideo, rightColumnX);
|
|
527
|
+
engine.block.setPositionY(lockedVideo, bottomRowY);
|
|
528
|
+
|
|
529
|
+
// Lock all transforms to prevent scaling
|
|
530
|
+
engine.block.setTransformLocked(lockedVideo, true);
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### Disable Resize Scope
|
|
534
|
+
|
|
535
|
+
Disable the `layer/resize` scope when working with templates to **prevent users from scaling** blocks:
|
|
536
|
+
|
|
537
|
+
```typescript
|
|
538
|
+
engine.block.setScopeEnabled(blockId, 'layer/resize', false);
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
### Lock All Transformations
|
|
542
|
+
|
|
543
|
+
To **lock** all transformations (move, resize, rotate), use `setTransformLocked`:
|
|
544
|
+
|
|
545
|
+
```typescript
|
|
546
|
+
engine.block.setTransformLocked(blockId, true);
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
To check if scaling is currently allowed:
|
|
550
|
+
|
|
551
|
+
```typescript
|
|
552
|
+
const canResize = engine.block.isScopeEnabled(blockId, 'layer/resize');
|
|
553
|
+
console.log('layer/resize scope enabled?', canResize);
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
## Troubleshooting
|
|
557
|
+
|
|
558
|
+
### Video Not Scaling
|
|
559
|
+
|
|
560
|
+
Check if transforms are locked using `engine.block.isTransformLocked(block)`. Ensure the block exists and is a valid design block.
|
|
561
|
+
|
|
562
|
+
### Unexpected Position After Scale
|
|
563
|
+
|
|
564
|
+
Verify the anchor point coordinates. Default anchor (0, 0) causes expansion to the right and down. Use (0.5, 0.5) for center-based scaling.
|
|
565
|
+
|
|
566
|
+
### Crop Region Shifting
|
|
567
|
+
|
|
568
|
+
When using `setWidth` or `setHeight`, pass `true` as the third parameter to maintain the crop region.
|
|
569
|
+
|
|
570
|
+
## Recap
|
|
571
|
+
|
|
572
|
+
| Usage | How To |
|
|
573
|
+
| ------------------ | ----------------------------------------------------------------------------- |
|
|
574
|
+
| Uniform scaling | `engine.block.scale(blockId, scaleFactor)` + optional anchor |
|
|
575
|
+
| Stretching an axis | Set width mode to `'Absolute'`, then use `setWidth()` or `setHeight()` |
|
|
576
|
+
| Group scaling | 1. Group with `engine.block.group([blockId_1, blockId_2])` 2. Scale the group |
|
|
577
|
+
| Constraints | Adjust scopes or lock transforms to protect templates |
|
|
578
|
+
|
|
579
|
+
## API Reference
|
|
580
|
+
|
|
581
|
+
| API | Usage |
|
|
582
|
+
| -------------------------- | -------------------------------------------------------------- |
|
|
583
|
+
| `block.scale` | Performs uniform or anchored scaling on blocks and groups. |
|
|
584
|
+
| `block.setWidthMode` | Enables absolute sizing before changing a single axis. |
|
|
585
|
+
| `block.getWidth` | Reads the current width before non-uniform scaling. |
|
|
586
|
+
| `block.setWidth` | Writes the adjusted width after single-axis scaling. |
|
|
587
|
+
| `block.setHeightMode` | Enables absolute sizing for height changes. |
|
|
588
|
+
| `block.getHeight` | Reads the current height before non-uniform scaling. |
|
|
589
|
+
| `block.setHeight` | Writes the adjusted height after single-axis scaling. |
|
|
590
|
+
| `block.group` | Group blocks so they scale together. |
|
|
591
|
+
| `block.setScopeEnabled` | Toggles the `layer/resize` scope to lock scaling in templates. |
|
|
592
|
+
| `block.setTransformLocked` | Locks all transform scopes when templates must stay fixed. |
|
|
593
|
+
| `block.isScopeEnabled` | Checks whether scaling is currently permitted on a block. |
|
|
594
|
+
| `block.isTransformLocked` | Checks whether all transforms are locked on a block. |
|
|
595
|
+
|
|
596
|
+
---
|
|
597
|
+
|
|
598
|
+
## More Resources
|
|
599
|
+
|
|
600
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
601
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
602
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
603
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,25 @@
|
|
|
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)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Move Videos](./edit-video/transform/move.md) - Position videos on the canvas using absolute or percentage-based coordinates.
|
|
12
|
+
- [Crop Videos](./edit-video/transform/crop.md) - Cut out specific areas of a video to focus on key content or change aspect ratio.
|
|
13
|
+
- [Rotate Videos](./edit-video/transform/rotate.md) - Rotate video elements to adjust orientation and create dynamic compositions.
|
|
14
|
+
- [Resize](./edit-video/transform/resize.md) - Resize videos in web apps using the CE.SDK
|
|
15
|
+
- [Scale Videos in Web Apps](./edit-video/transform/scale.md) - Embed the CE.SDK scaling feature in your web app.
|
|
16
|
+
- [Flip Videos](./edit-video/transform/flip.md) - Flip videos horizontally or vertically to create mirror effects and symmetrical designs.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## More Resources
|
|
21
|
+
|
|
22
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
23
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
24
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
25
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|