@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,593 @@
|
|
|
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 Compositions](./create-composition.md) > [Programmatic Creation](./create-composition/programmatic.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Build compositions entirely through code using CE.SDK's APIs for automation, batch processing, and custom interfaces.
|
|
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-composition-programmatic-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-composition-programmatic-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-create-composition-programmatic-browser/)
|
|
19
|
+
|
|
20
|
+
CE.SDK provides a complete API for building designs through code. Instead of relying on user interactions through the built-in UI, you can create scenes, add blocks like text, images, and shapes, and position them programmatically. This approach enables automation workflows, batch processing, server-side rendering, and integration with custom interfaces.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-create-composition-programmatic-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* CE.SDK Plugin: Programmatic Creation Guide
|
|
45
|
+
*
|
|
46
|
+
* Demonstrates building compositions entirely through code:
|
|
47
|
+
* - Creating scenes and pages with social media dimensions
|
|
48
|
+
* - Setting page background colors
|
|
49
|
+
* - Adding text blocks with mixed styling (bold, italic, colors)
|
|
50
|
+
* - Adding line shapes as dividers
|
|
51
|
+
* - Adding images
|
|
52
|
+
* - Positioning and sizing blocks
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
// Roboto typeface with all variants for mixed styling
|
|
56
|
+
const ROBOTO_TYPEFACE = {
|
|
57
|
+
name: 'Roboto',
|
|
58
|
+
fonts: [
|
|
59
|
+
{
|
|
60
|
+
uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Roboto/Roboto-Regular.ttf',
|
|
61
|
+
subFamily: 'Regular'
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Roboto/Roboto-Bold.ttf',
|
|
65
|
+
subFamily: 'Bold',
|
|
66
|
+
weight: 'bold' as const
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Roboto/Roboto-Italic.ttf',
|
|
70
|
+
subFamily: 'Italic',
|
|
71
|
+
style: 'italic' as const
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Roboto/Roboto-BoldItalic.ttf',
|
|
75
|
+
subFamily: 'Bold Italic',
|
|
76
|
+
weight: 'bold' as const,
|
|
77
|
+
style: 'italic' as const
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
class Example implements EditorPlugin {
|
|
83
|
+
name = packageJson.name;
|
|
84
|
+
|
|
85
|
+
version = packageJson.version;
|
|
86
|
+
|
|
87
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
88
|
+
if (!cesdk) {
|
|
89
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
93
|
+
|
|
94
|
+
// Add asset source plugins
|
|
95
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
96
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
97
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
98
|
+
await cesdk.addPlugin(
|
|
99
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
100
|
+
);
|
|
101
|
+
await cesdk.addPlugin(
|
|
102
|
+
new DemoAssetSources({
|
|
103
|
+
include: [
|
|
104
|
+
'ly.img.templates.blank.*',
|
|
105
|
+
'ly.img.templates.presentation.*',
|
|
106
|
+
'ly.img.templates.print.*',
|
|
107
|
+
'ly.img.templates.social.*',
|
|
108
|
+
'ly.img.image.*'
|
|
109
|
+
]
|
|
110
|
+
})
|
|
111
|
+
);
|
|
112
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
113
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
114
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
115
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
116
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
117
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
118
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
119
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
120
|
+
|
|
121
|
+
await cesdk.actions.run('scene.create', {
|
|
122
|
+
page: { width: 1080, height: 1080, unit: 'Pixel' }
|
|
123
|
+
});
|
|
124
|
+
const engine = cesdk.engine;
|
|
125
|
+
const scene = engine.scene.get()!;
|
|
126
|
+
|
|
127
|
+
engine.block.setFloat(scene, 'scene/dpi', 300);
|
|
128
|
+
const page = engine.block.findByType('page')[0];
|
|
129
|
+
|
|
130
|
+
// Set page background to light lavender color
|
|
131
|
+
const backgroundFill = engine.block.createFill('color');
|
|
132
|
+
engine.block.setColor(backgroundFill, 'fill/color/value', {
|
|
133
|
+
r: 0.94,
|
|
134
|
+
g: 0.93,
|
|
135
|
+
b: 0.98,
|
|
136
|
+
a: 1.0
|
|
137
|
+
});
|
|
138
|
+
engine.block.setFill(page, backgroundFill);
|
|
139
|
+
|
|
140
|
+
// Add main headline text with bold Roboto font
|
|
141
|
+
const headline = engine.block.create('text');
|
|
142
|
+
engine.block.replaceText(
|
|
143
|
+
headline,
|
|
144
|
+
'Integrate\nCreative Editing\ninto your App'
|
|
145
|
+
);
|
|
146
|
+
engine.block.setFont(
|
|
147
|
+
headline,
|
|
148
|
+
ROBOTO_TYPEFACE.fonts[0].uri,
|
|
149
|
+
ROBOTO_TYPEFACE
|
|
150
|
+
);
|
|
151
|
+
engine.block.setFloat(headline, 'text/lineHeight', 0.78);
|
|
152
|
+
|
|
153
|
+
// Make headline bold
|
|
154
|
+
if (engine.block.canToggleBoldFont(headline)) {
|
|
155
|
+
engine.block.toggleBoldFont(headline);
|
|
156
|
+
}
|
|
157
|
+
engine.block.setTextColor(headline, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 });
|
|
158
|
+
|
|
159
|
+
// Set fixed container size and enable automatic font sizing
|
|
160
|
+
engine.block.setWidthMode(headline, 'Absolute');
|
|
161
|
+
engine.block.setHeightMode(headline, 'Absolute');
|
|
162
|
+
engine.block.setWidth(headline, 960);
|
|
163
|
+
engine.block.setHeight(headline, 300);
|
|
164
|
+
engine.block.setBool(headline, 'text/automaticFontSizeEnabled', true);
|
|
165
|
+
|
|
166
|
+
engine.block.setPositionX(headline, 60);
|
|
167
|
+
engine.block.setPositionY(headline, 80);
|
|
168
|
+
engine.block.appendChild(page, headline);
|
|
169
|
+
|
|
170
|
+
// Add tagline with mixed styling using range-based APIs
|
|
171
|
+
// "in hours," (purple italic) + "not months." (black bold)
|
|
172
|
+
const tagline = engine.block.create('text');
|
|
173
|
+
const taglineText = 'in hours,\nnot months.';
|
|
174
|
+
engine.block.replaceText(tagline, taglineText);
|
|
175
|
+
|
|
176
|
+
// Set up Roboto typeface with all variants for mixed styling
|
|
177
|
+
engine.block.setFont(
|
|
178
|
+
tagline,
|
|
179
|
+
ROBOTO_TYPEFACE.fonts[0].uri,
|
|
180
|
+
ROBOTO_TYPEFACE
|
|
181
|
+
);
|
|
182
|
+
engine.block.setFloat(tagline, 'text/lineHeight', 0.78);
|
|
183
|
+
|
|
184
|
+
// Style "in hours," - purple and italic (characters 0-9)
|
|
185
|
+
engine.block.setTextColor(
|
|
186
|
+
tagline,
|
|
187
|
+
{ r: 0.2, g: 0.2, b: 0.8, a: 1.0 },
|
|
188
|
+
0,
|
|
189
|
+
9
|
|
190
|
+
);
|
|
191
|
+
if (engine.block.canToggleItalicFont(tagline, 0, 9)) {
|
|
192
|
+
engine.block.toggleItalicFont(tagline, 0, 9);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Style "not months." - black and bold (characters 10-21)
|
|
196
|
+
engine.block.setTextColor(
|
|
197
|
+
tagline,
|
|
198
|
+
{ r: 0.0, g: 0.0, b: 0.0, a: 1.0 },
|
|
199
|
+
10,
|
|
200
|
+
21
|
|
201
|
+
);
|
|
202
|
+
if (engine.block.canToggleBoldFont(tagline, 10, 21)) {
|
|
203
|
+
engine.block.toggleBoldFont(tagline, 10, 21);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// Set fixed container size and enable automatic font sizing
|
|
207
|
+
engine.block.setWidthMode(tagline, 'Absolute');
|
|
208
|
+
engine.block.setHeightMode(tagline, 'Absolute');
|
|
209
|
+
engine.block.setWidth(tagline, 960);
|
|
210
|
+
engine.block.setHeight(tagline, 220);
|
|
211
|
+
engine.block.setBool(tagline, 'text/automaticFontSizeEnabled', true);
|
|
212
|
+
engine.block.setPositionX(tagline, 60);
|
|
213
|
+
engine.block.setPositionY(tagline, 551);
|
|
214
|
+
engine.block.appendChild(page, tagline);
|
|
215
|
+
|
|
216
|
+
// Add CTA text "Start a Free Trial" with bold font
|
|
217
|
+
const ctaTitle = engine.block.create('text');
|
|
218
|
+
engine.block.replaceText(ctaTitle, 'Start a Free Trial');
|
|
219
|
+
engine.block.setFont(
|
|
220
|
+
ctaTitle,
|
|
221
|
+
ROBOTO_TYPEFACE.fonts[0].uri,
|
|
222
|
+
ROBOTO_TYPEFACE
|
|
223
|
+
);
|
|
224
|
+
engine.block.setFloat(ctaTitle, 'text/fontSize', 80);
|
|
225
|
+
engine.block.setFloat(ctaTitle, 'text/lineHeight', 1.0);
|
|
226
|
+
|
|
227
|
+
if (engine.block.canToggleBoldFont(ctaTitle)) {
|
|
228
|
+
engine.block.toggleBoldFont(ctaTitle);
|
|
229
|
+
}
|
|
230
|
+
engine.block.setTextColor(ctaTitle, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 });
|
|
231
|
+
|
|
232
|
+
engine.block.setWidthMode(ctaTitle, 'Absolute');
|
|
233
|
+
engine.block.setHeightMode(ctaTitle, 'Auto');
|
|
234
|
+
engine.block.setWidth(ctaTitle, 664.6);
|
|
235
|
+
engine.block.setPositionX(ctaTitle, 64);
|
|
236
|
+
engine.block.setPositionY(ctaTitle, 952);
|
|
237
|
+
engine.block.appendChild(page, ctaTitle);
|
|
238
|
+
|
|
239
|
+
// Add website URL with regular font
|
|
240
|
+
const ctaUrl = engine.block.create('text');
|
|
241
|
+
engine.block.replaceText(ctaUrl, 'www.img.ly');
|
|
242
|
+
engine.block.setFont(ctaUrl, ROBOTO_TYPEFACE.fonts[0].uri, ROBOTO_TYPEFACE);
|
|
243
|
+
engine.block.setFloat(ctaUrl, 'text/fontSize', 80);
|
|
244
|
+
engine.block.setFloat(ctaUrl, 'text/lineHeight', 1.0);
|
|
245
|
+
engine.block.setTextColor(ctaUrl, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 });
|
|
246
|
+
|
|
247
|
+
engine.block.setWidthMode(ctaUrl, 'Absolute');
|
|
248
|
+
engine.block.setHeightMode(ctaUrl, 'Auto');
|
|
249
|
+
engine.block.setWidth(ctaUrl, 664.6);
|
|
250
|
+
engine.block.setPositionX(ctaUrl, 64);
|
|
251
|
+
engine.block.setPositionY(ctaUrl, 1006);
|
|
252
|
+
engine.block.appendChild(page, ctaUrl);
|
|
253
|
+
|
|
254
|
+
// Add horizontal divider line
|
|
255
|
+
const dividerLine = engine.block.create('graphic');
|
|
256
|
+
const lineShape = engine.block.createShape('line');
|
|
257
|
+
engine.block.setShape(dividerLine, lineShape);
|
|
258
|
+
|
|
259
|
+
const lineFill = engine.block.createFill('color');
|
|
260
|
+
engine.block.setColor(lineFill, 'fill/color/value', {
|
|
261
|
+
r: 0.0,
|
|
262
|
+
g: 0.0,
|
|
263
|
+
b: 0.0,
|
|
264
|
+
a: 1.0
|
|
265
|
+
});
|
|
266
|
+
engine.block.setFill(dividerLine, lineFill);
|
|
267
|
+
|
|
268
|
+
engine.block.setWidth(dividerLine, 418);
|
|
269
|
+
engine.block.setHeight(dividerLine, 11.3);
|
|
270
|
+
engine.block.setPositionX(dividerLine, 64);
|
|
271
|
+
engine.block.setPositionY(dividerLine, 460);
|
|
272
|
+
engine.block.appendChild(page, dividerLine);
|
|
273
|
+
|
|
274
|
+
// Add IMG.LY logo image
|
|
275
|
+
const logo = engine.block.create('graphic');
|
|
276
|
+
const logoShape = engine.block.createShape('rect');
|
|
277
|
+
engine.block.setShape(logo, logoShape);
|
|
278
|
+
|
|
279
|
+
const logoFill = engine.block.createFill('image');
|
|
280
|
+
engine.block.setString(
|
|
281
|
+
logoFill,
|
|
282
|
+
'fill/image/imageFileURI',
|
|
283
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg'
|
|
284
|
+
);
|
|
285
|
+
engine.block.setFill(logo, logoFill);
|
|
286
|
+
|
|
287
|
+
engine.block.setContentFillMode(logo, 'Contain');
|
|
288
|
+
engine.block.setWidth(logo, 200);
|
|
289
|
+
engine.block.setHeight(logo, 65);
|
|
290
|
+
engine.block.setPositionX(logo, 820);
|
|
291
|
+
engine.block.setPositionY(logo, 960);
|
|
292
|
+
engine.block.appendChild(page, logo);
|
|
293
|
+
|
|
294
|
+
// Export the composition to PNG
|
|
295
|
+
const blob = await engine.block.export(page, {
|
|
296
|
+
mimeType: 'image/png',
|
|
297
|
+
targetWidth: 1080,
|
|
298
|
+
targetHeight: 1080
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
// In browser, create a download link
|
|
302
|
+
const url = URL.createObjectURL(blob);
|
|
303
|
+
console.log('Export complete. Download URL:', url);
|
|
304
|
+
|
|
305
|
+
// Zoom to show the page
|
|
306
|
+
await cesdk.actions.run('zoom.toPage', { autoFit: true });
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export default Example;
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
This guide covers how to create a scene structure with social media dimensions, set background colors, add text with mixed styling, line shapes, images, and export the finished composition.
|
|
314
|
+
|
|
315
|
+
## Initialize CE.SDK
|
|
316
|
+
|
|
317
|
+
We start by initializing CE.SDK and loading the asset sources. The asset source plugins (imported from `@cesdk/cesdk-js/plugins`) provide access to fonts, images, and other assets.
|
|
318
|
+
|
|
319
|
+
```typescript highlight=highlight-setup
|
|
320
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
321
|
+
|
|
322
|
+
// Add asset source plugins
|
|
323
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
324
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
325
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
326
|
+
await cesdk.addPlugin(
|
|
327
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
328
|
+
);
|
|
329
|
+
await cesdk.addPlugin(
|
|
330
|
+
new DemoAssetSources({
|
|
331
|
+
include: [
|
|
332
|
+
'ly.img.templates.blank.*',
|
|
333
|
+
'ly.img.templates.presentation.*',
|
|
334
|
+
'ly.img.templates.print.*',
|
|
335
|
+
'ly.img.templates.social.*',
|
|
336
|
+
'ly.img.image.*'
|
|
337
|
+
]
|
|
338
|
+
})
|
|
339
|
+
);
|
|
340
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
341
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
342
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
343
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
344
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
345
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
346
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
347
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Create Scene Structure
|
|
351
|
+
|
|
352
|
+
We create the foundation of our composition with social media dimensions (1080x1080 pixels for Instagram). A scene contains one or more pages, and pages contain the design blocks.
|
|
353
|
+
|
|
354
|
+
```typescript highlight=highlight-create-scene
|
|
355
|
+
await cesdk.actions.run('scene.create', {
|
|
356
|
+
page: { width: 1080, height: 1080, unit: 'Pixel' }
|
|
357
|
+
});
|
|
358
|
+
const engine = cesdk.engine;
|
|
359
|
+
const scene = engine.scene.get()!;
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
The `cesdk.actions.run('scene.create')` method creates a new design scene with a page. We set the page dimensions using `setWidth()` and `setHeight()`.
|
|
363
|
+
|
|
364
|
+
## Set Page Background
|
|
365
|
+
|
|
366
|
+
We set the page background using a color fill. This demonstrates how to create and assign fills to blocks.
|
|
367
|
+
|
|
368
|
+
```typescript highlight=highlight-add-background
|
|
369
|
+
// Set page background to light lavender color
|
|
370
|
+
const backgroundFill = engine.block.createFill('color');
|
|
371
|
+
engine.block.setColor(backgroundFill, 'fill/color/value', {
|
|
372
|
+
r: 0.94,
|
|
373
|
+
g: 0.93,
|
|
374
|
+
b: 0.98,
|
|
375
|
+
a: 1.0
|
|
376
|
+
});
|
|
377
|
+
engine.block.setFill(page, backgroundFill);
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
We create a color fill using `createFill('color')`, set the color via `setColor()` with the `fill/color/value` property, then assign the fill to the page.
|
|
381
|
+
|
|
382
|
+
## Add Text Blocks
|
|
383
|
+
|
|
384
|
+
Text blocks allow you to add and style text content. We demonstrate three different approaches to text sizing and styling.
|
|
385
|
+
|
|
386
|
+
### Create Text and Set Content
|
|
387
|
+
|
|
388
|
+
Create a text block and set its content with `replaceText()`:
|
|
389
|
+
|
|
390
|
+
```typescript highlight=highlight-text-create
|
|
391
|
+
// Add main headline text with bold Roboto font
|
|
392
|
+
const headline = engine.block.create('text');
|
|
393
|
+
engine.block.replaceText(
|
|
394
|
+
headline,
|
|
395
|
+
'Integrate\nCreative Editing\ninto your App'
|
|
396
|
+
);
|
|
397
|
+
engine.block.setFont(headline, ROBOTO_TYPEFACE.fonts[0].uri, ROBOTO_TYPEFACE);
|
|
398
|
+
engine.block.setFloat(headline, 'text/lineHeight', 0.78);
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Style Entire Text Block
|
|
402
|
+
|
|
403
|
+
Apply styling to the entire text block using `toggleBoldFont()` and `setTextColor()`:
|
|
404
|
+
|
|
405
|
+
```typescript highlight=highlight-text-style-block
|
|
406
|
+
// Make headline bold
|
|
407
|
+
if (engine.block.canToggleBoldFont(headline)) {
|
|
408
|
+
engine.block.toggleBoldFont(headline);
|
|
409
|
+
}
|
|
410
|
+
engine.block.setTextColor(headline, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 });
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Enable Automatic Font Sizing
|
|
414
|
+
|
|
415
|
+
Configure the text block to automatically scale its font size to fit within fixed dimensions:
|
|
416
|
+
|
|
417
|
+
```typescript highlight=highlight-text-auto-size
|
|
418
|
+
// Set fixed container size and enable automatic font sizing
|
|
419
|
+
engine.block.setWidthMode(headline, 'Absolute');
|
|
420
|
+
engine.block.setHeightMode(headline, 'Absolute');
|
|
421
|
+
engine.block.setWidth(headline, 960);
|
|
422
|
+
engine.block.setHeight(headline, 300);
|
|
423
|
+
engine.block.setBool(headline, 'text/automaticFontSizeEnabled', true);
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### Range-based Text Styling
|
|
427
|
+
|
|
428
|
+
Apply different styles to specific character ranges within a single text block:
|
|
429
|
+
|
|
430
|
+
```typescript highlight=highlight-text-range-style
|
|
431
|
+
// Style "in hours," - purple and italic (characters 0-9)
|
|
432
|
+
engine.block.setTextColor(tagline, { r: 0.2, g: 0.2, b: 0.8, a: 1.0 }, 0, 9);
|
|
433
|
+
if (engine.block.canToggleItalicFont(tagline, 0, 9)) {
|
|
434
|
+
engine.block.toggleItalicFont(tagline, 0, 9);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// Style "not months." - black and bold (characters 10-21)
|
|
438
|
+
engine.block.setTextColor(tagline, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 }, 10, 21);
|
|
439
|
+
if (engine.block.canToggleBoldFont(tagline, 10, 21)) {
|
|
440
|
+
engine.block.toggleBoldFont(tagline, 10, 21);
|
|
441
|
+
}
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
The range-based APIs accept start and end character indices:
|
|
445
|
+
|
|
446
|
+
- `setTextColor(id, color, from, to)` - Apply color to a specific character range
|
|
447
|
+
- `toggleBoldFont(id, from, to)` - Toggle bold styling for a range
|
|
448
|
+
- `toggleItalicFont(id, from, to)` - Toggle italic styling for a range
|
|
449
|
+
|
|
450
|
+
### Fixed Font Size
|
|
451
|
+
|
|
452
|
+
Set an explicit font size instead of using auto-sizing:
|
|
453
|
+
|
|
454
|
+
```typescript highlight=highlight-text-fixed-size
|
|
455
|
+
// Add CTA text "Start a Free Trial" with bold font
|
|
456
|
+
const ctaTitle = engine.block.create('text');
|
|
457
|
+
engine.block.replaceText(ctaTitle, 'Start a Free Trial');
|
|
458
|
+
engine.block.setFont(ctaTitle, ROBOTO_TYPEFACE.fonts[0].uri, ROBOTO_TYPEFACE);
|
|
459
|
+
engine.block.setFloat(ctaTitle, 'text/fontSize', 80);
|
|
460
|
+
engine.block.setFloat(ctaTitle, 'text/lineHeight', 1.0);
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
## Add Shapes
|
|
464
|
+
|
|
465
|
+
We create shapes using graphic blocks. CE.SDK supports `rect`, `line`, `ellipse`, `polygon`, `star`, and `vector_path` shapes.
|
|
466
|
+
|
|
467
|
+
### Create a Shape Block
|
|
468
|
+
|
|
469
|
+
Create a graphic block and assign a shape to it:
|
|
470
|
+
|
|
471
|
+
```typescript highlight=highlight-shape-create
|
|
472
|
+
// Add horizontal divider line
|
|
473
|
+
const dividerLine = engine.block.create('graphic');
|
|
474
|
+
const lineShape = engine.block.createShape('line');
|
|
475
|
+
engine.block.setShape(dividerLine, lineShape);
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
### Apply Fill to Shape
|
|
479
|
+
|
|
480
|
+
Create a color fill and apply it to the shape:
|
|
481
|
+
|
|
482
|
+
```typescript highlight=highlight-shape-fill
|
|
483
|
+
const lineFill = engine.block.createFill('color');
|
|
484
|
+
engine.block.setColor(lineFill, 'fill/color/value', {
|
|
485
|
+
r: 0.0,
|
|
486
|
+
g: 0.0,
|
|
487
|
+
b: 0.0,
|
|
488
|
+
a: 1.0
|
|
489
|
+
});
|
|
490
|
+
engine.block.setFill(dividerLine, lineFill);
|
|
491
|
+
```
|
|
492
|
+
|
|
493
|
+
## Add Images
|
|
494
|
+
|
|
495
|
+
We add images using graphic blocks with image fills.
|
|
496
|
+
|
|
497
|
+
### Create an Image Block
|
|
498
|
+
|
|
499
|
+
Create a graphic block with a rect shape and an image fill:
|
|
500
|
+
|
|
501
|
+
```typescript highlight=highlight-image-create
|
|
502
|
+
// Add IMG.LY logo image
|
|
503
|
+
const logo = engine.block.create('graphic');
|
|
504
|
+
const logoShape = engine.block.createShape('rect');
|
|
505
|
+
engine.block.setShape(logo, logoShape);
|
|
506
|
+
|
|
507
|
+
const logoFill = engine.block.createFill('image');
|
|
508
|
+
engine.block.setString(
|
|
509
|
+
logoFill,
|
|
510
|
+
'fill/image/imageFileURI',
|
|
511
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg'
|
|
512
|
+
);
|
|
513
|
+
engine.block.setFill(logo, logoFill);
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
We set the image URL via `setString()` with the `fill/image/imageFileURI` property.
|
|
517
|
+
|
|
518
|
+
## Position and Size Blocks
|
|
519
|
+
|
|
520
|
+
All blocks use the same positioning and sizing APIs:
|
|
521
|
+
|
|
522
|
+
```typescript highlight=highlight-block-position
|
|
523
|
+
engine.block.setContentFillMode(logo, 'Contain');
|
|
524
|
+
engine.block.setWidth(logo, 200);
|
|
525
|
+
engine.block.setHeight(logo, 65);
|
|
526
|
+
engine.block.setPositionX(logo, 820);
|
|
527
|
+
engine.block.setPositionY(logo, 960);
|
|
528
|
+
engine.block.appendChild(page, logo);
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
- `setWidth()` / `setHeight()` - Set block dimensions
|
|
532
|
+
- `setPositionX()` / `setPositionY()` - Set block position
|
|
533
|
+
- `setContentFillMode()` - Control how content fills the block (`Contain`, `Cover`, `Crop`)
|
|
534
|
+
- `appendChild()` - Add the block to the page hierarchy
|
|
535
|
+
|
|
536
|
+
## Export the Composition
|
|
537
|
+
|
|
538
|
+
CE.SDK provides two approaches for exporting compositions in browser environments.
|
|
539
|
+
|
|
540
|
+
### Export Using the Engine API
|
|
541
|
+
|
|
542
|
+
The `engine.block.export()` method exports a block as a blob that you can use programmatically:
|
|
543
|
+
|
|
544
|
+
```typescript highlight=highlight-export-api
|
|
545
|
+
// Export the composition to PNG
|
|
546
|
+
const blob = await engine.block.export(page, {
|
|
547
|
+
mimeType: 'image/png',
|
|
548
|
+
targetWidth: 1080,
|
|
549
|
+
targetHeight: 1080
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
// In browser, create a download link
|
|
553
|
+
const url = URL.createObjectURL(blob);
|
|
554
|
+
console.log('Export complete. Download URL:', url);
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
In browser environments, you can create a download URL from the blob using `URL.createObjectURL()`.
|
|
558
|
+
|
|
559
|
+
### Export Using Built-in Actions
|
|
560
|
+
|
|
561
|
+
Alternatively, use the built-in export panel or actions for a complete export dialog:
|
|
562
|
+
|
|
563
|
+
```typescript
|
|
564
|
+
await cesdk.actions.run('exportDesign', {
|
|
565
|
+
mimeType: 'image/png'
|
|
566
|
+
});
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
The export panel lets users choose format and settings interactively, while `cesdk.actions.run('export.page', options)` triggers export directly with specified options.
|
|
570
|
+
|
|
571
|
+
## Troubleshooting
|
|
572
|
+
|
|
573
|
+
- **Blocks not appearing**: Verify that `appendChild()` attaches blocks to the page. Blocks must be part of the scene hierarchy to render.
|
|
574
|
+
- **Text styling not applied**: Verify character indices are correct for range-based APIs. The indices are UTF-16 based.
|
|
575
|
+
- **Image stretched**: Use `setContentFillMode(block, 'Contain')` to maintain the image's aspect ratio.
|
|
576
|
+
- **Export fails**: Verify that page dimensions are set before export. The export requires valid dimensions.
|
|
577
|
+
|
|
578
|
+
## Next Steps
|
|
579
|
+
|
|
580
|
+
- [Layer Management](./create-composition/layer-management.md) - Control block stacking and organization
|
|
581
|
+
- [Positioning and Alignment](./insert-media/position-and-align.md) - Precise block placement
|
|
582
|
+
- [Group and Ungroup](./create-composition/group-and-ungroup.md) - Group blocks for unified transforms
|
|
583
|
+
- [Blend Modes](./create-composition/blend-modes.md) - Control how blocks interact visually
|
|
584
|
+
- [Export](./export-save-publish/export.md) - Export options and formats
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## More Resources
|
|
589
|
+
|
|
590
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
591
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
592
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
593
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,30 @@
|
|
|
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 Compositions](./create-composition.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Overview](./create-composition/overview.md) - Combine and arrange multiple elements to create complex, multi-page, or layered design compositions.
|
|
12
|
+
- [Multi-Page Layouts](./create-composition/multi-page.md) - Create and manage multi-page designs in CE.SDK for documents like brochures, presentations, and catalogs with multiple pages in a single scene.
|
|
13
|
+
- [Create a Collage](./create-composition/collage.md) - Combine images into a collage using the CE.SDK.
|
|
14
|
+
- [Design a Layout](./create-composition/layout.md) - Create structured compositions using scene layouts, positioning systems, and hierarchical block organization for collages, magazines, and multi-page documents.
|
|
15
|
+
- [Add a Background](./create-composition/add-background.md) - Add backgrounds to designs using fills for pages and shapes, and the background color property for text blocks.
|
|
16
|
+
- [Positioning and Alignment](./insert-media/position-and-align.md) - Precisely position, align, and distribute objects using guides, snapping, and alignment tools.
|
|
17
|
+
- [Group and Ungroup Objects](./create-composition/group-and-ungroup.md) - Group multiple design elements together so they move, scale, and transform as a single unit; ungroup to edit them individually.
|
|
18
|
+
- [Layer Management](./create-composition/layer-management.md) - Organize design elements using a layer stack for precise control over stacking and visibility.
|
|
19
|
+
- [Lock Design](./create-composition/lock-design.md) - Protect design elements from unwanted modifications using CE.SDK's scope-based permission system. Control which properties users can edit at both global and block levels.
|
|
20
|
+
- [Blend Modes](./create-composition/blend-modes.md) - Apply blend modes to elements to control how colors and layers interact visually.
|
|
21
|
+
- [Programmatic Creation](./create-composition/programmatic.md) - Documentation for Programmatic Creation
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## More Resources
|
|
26
|
+
|
|
27
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
28
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
29
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
30
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|