@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,32 @@
|
|
|
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)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Create Videos Overview](./create-video/overview.md) - Learn how to create and customize videos in CE.SDK using scenes, assets, and time-based editing.
|
|
12
|
+
- [Video and Audio Timeline Web Editor](./create-video/timeline-editor.md) - Use the timeline editor to arrange and edit video clips, audio, and animations frame by frame.
|
|
13
|
+
- [Control Audio and Video](./create-video/control.md) - Learn to play, pause, seek, and preview audio and video content in CE.SDK using playback controls and solo mode.
|
|
14
|
+
- [Trim Video Clips](./edit-video/trim.md) - Learn how to trim video clips in CE.SDK to control which portion of media plays back.
|
|
15
|
+
- [Split Video and Audio](./edit-video/split.md) - Learn how to split video and audio clips at specific time points in CE.SDK, creating two independent segments from a single clip.
|
|
16
|
+
- [Join and Arrange Video Clips](./edit-video/join-and-arrange.md) - Combine multiple video clips into sequences and organize them on the timeline using tracks and time offsets in CE.SDK.
|
|
17
|
+
- [Transform](./edit-video/transform.md) - Documentation for Transform
|
|
18
|
+
- [Add Captions](./edit-video/add-captions.md) - Documentation for adding captions to videos
|
|
19
|
+
- [Update Caption Presets](./create-video/update-caption-presets.md) - Extend video captions with custom caption styles using simple content.json updates
|
|
20
|
+
- [Add Watermark](./edit-video/add-watermark.md) - Add text and image watermarks to videos using CE.SDK for copyright protection, branding, and content attribution with timeline management and visibility controls.
|
|
21
|
+
- [Redact Sensitive Content in Videos](./edit-video/redaction.md) - Redact sensitive video content using blur, pixelization, or solid overlays. Essential for privacy protection when obscuring faces, license plates, or personal information.
|
|
22
|
+
- [Video Editor SDK](./overview.md) - Explore video editing features in CE.SDK including trimming, splitting, captions, and programmatic editing.
|
|
23
|
+
- [Video Limitations](./create-video/limitations.md) - Understand resolution limits, duration constraints, codec support, and browser-specific restrictions when working with video in CE.SDK.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## More Resources
|
|
28
|
+
|
|
29
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
30
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
31
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
32
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,497 @@
|
|
|
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 Images](./edit-image.md) > [Add Watermark](./edit-image/add-watermark.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Add text and image watermarks to designs programmatically using CE.SDK's block API.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 8 minutes
|
|
12
|
+
>
|
|
13
|
+
> **Resources:**
|
|
14
|
+
>
|
|
15
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-edit-image-add-watermark-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-edit-image-add-watermark-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-edit-image-add-watermark-browser/)
|
|
19
|
+
|
|
20
|
+
Watermarks protect intellectual property, indicate ownership, add branding, or mark content as drafts. CE.SDK supports two types of watermarks: **text watermarks** created from text blocks for copyright notices and brand names, and **image watermarks** created from graphic blocks with image fills for logos and symbols.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-edit-image-add-watermark-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
26
|
+
import packageJson from './package.json';
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* CE.SDK Plugin: Add Watermark Guide
|
|
30
|
+
*
|
|
31
|
+
* Demonstrates adding text and image watermarks to designs:
|
|
32
|
+
* - Creating text watermarks with custom styling
|
|
33
|
+
* - Creating logo watermarks using graphic blocks
|
|
34
|
+
* - Positioning watermarks side by side at the bottom
|
|
35
|
+
* - Applying drop shadows for visibility
|
|
36
|
+
* - Exporting watermarked designs
|
|
37
|
+
*/
|
|
38
|
+
class Example implements EditorPlugin {
|
|
39
|
+
name = packageJson.name;
|
|
40
|
+
|
|
41
|
+
version = packageJson.version;
|
|
42
|
+
|
|
43
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
44
|
+
if (!cesdk) {
|
|
45
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
49
|
+
const engine = cesdk.engine;
|
|
50
|
+
|
|
51
|
+
// Create a scene with custom page dimensions
|
|
52
|
+
const scene = engine.scene.create();
|
|
53
|
+
const page = engine.block.create('page');
|
|
54
|
+
engine.block.setWidth(page, 800);
|
|
55
|
+
engine.block.setHeight(page, 600);
|
|
56
|
+
engine.block.appendChild(scene, page);
|
|
57
|
+
|
|
58
|
+
const pageWidth = engine.block.getWidth(page);
|
|
59
|
+
const pageHeight = engine.block.getHeight(page);
|
|
60
|
+
|
|
61
|
+
// Create a gradient background for the page
|
|
62
|
+
const gradientFill = engine.block.createFill('gradient/linear');
|
|
63
|
+
|
|
64
|
+
// Set a modern purple-to-cyan gradient
|
|
65
|
+
engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
|
|
66
|
+
{ color: { r: 0.39, g: 0.4, b: 0.95, a: 1 }, stop: 0 }, // Indigo
|
|
67
|
+
{ color: { r: 0.02, g: 0.71, b: 0.83, a: 1 }, stop: 1 } // Cyan
|
|
68
|
+
]);
|
|
69
|
+
|
|
70
|
+
// Set diagonal gradient direction (top-left to bottom-right)
|
|
71
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/startPointX', 0);
|
|
72
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/startPointY', 0);
|
|
73
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/endPointX', 1);
|
|
74
|
+
engine.block.setFloat(gradientFill, 'fill/gradient/linear/endPointY', 1);
|
|
75
|
+
|
|
76
|
+
// Apply gradient to page
|
|
77
|
+
engine.block.setFill(page, gradientFill);
|
|
78
|
+
|
|
79
|
+
// Create a centered title text
|
|
80
|
+
const titleText = engine.block.create('text');
|
|
81
|
+
engine.block.setString(titleText, 'text/text', 'Add Watermark');
|
|
82
|
+
engine.block.setEnum(titleText, 'text/horizontalAlignment', 'Center');
|
|
83
|
+
engine.block.appendChild(page, titleText);
|
|
84
|
+
|
|
85
|
+
// Style the title
|
|
86
|
+
engine.block.setTextFontSize(titleText, 14);
|
|
87
|
+
engine.block.setTextColor(titleText, { r: 1, g: 1, b: 1, a: 1 });
|
|
88
|
+
engine.block.setWidthMode(titleText, 'Auto');
|
|
89
|
+
engine.block.setHeightMode(titleText, 'Auto');
|
|
90
|
+
|
|
91
|
+
// Center the title on the page
|
|
92
|
+
const titleWidth = engine.block.getFrameWidth(titleText);
|
|
93
|
+
const titleHeight = engine.block.getFrameHeight(titleText);
|
|
94
|
+
engine.block.setPositionX(titleText, (pageWidth - titleWidth) / 2);
|
|
95
|
+
engine.block.setPositionY(titleText, (pageHeight - titleHeight) / 2);
|
|
96
|
+
|
|
97
|
+
// Create a text block for the watermark
|
|
98
|
+
const textWatermark = engine.block.create('text');
|
|
99
|
+
|
|
100
|
+
// Set the watermark text content
|
|
101
|
+
engine.block.setString(textWatermark, 'text/text', '© 2024 img.ly');
|
|
102
|
+
|
|
103
|
+
// Left-align the text for the watermark
|
|
104
|
+
engine.block.setEnum(textWatermark, 'text/horizontalAlignment', 'Left');
|
|
105
|
+
|
|
106
|
+
// Add the text block to the page
|
|
107
|
+
engine.block.appendChild(page, textWatermark);
|
|
108
|
+
|
|
109
|
+
// Set font size for the watermark
|
|
110
|
+
engine.block.setTextFontSize(textWatermark, 4);
|
|
111
|
+
|
|
112
|
+
// Set text color to white for contrast
|
|
113
|
+
engine.block.setTextColor(textWatermark, { r: 1, g: 1, b: 1, a: 1 });
|
|
114
|
+
|
|
115
|
+
// Set opacity to make it semi-transparent
|
|
116
|
+
engine.block.setOpacity(textWatermark, 0.8);
|
|
117
|
+
|
|
118
|
+
// Set width mode to auto so text fits its content
|
|
119
|
+
engine.block.setWidthMode(textWatermark, 'Auto');
|
|
120
|
+
engine.block.setHeightMode(textWatermark, 'Auto');
|
|
121
|
+
|
|
122
|
+
// Create a graphic block for the logo watermark
|
|
123
|
+
const logoWatermark = engine.block.create('graphic');
|
|
124
|
+
|
|
125
|
+
// Create a rect shape for the logo
|
|
126
|
+
const rectShape = engine.block.createShape('rect');
|
|
127
|
+
engine.block.setShape(logoWatermark, rectShape);
|
|
128
|
+
|
|
129
|
+
// Create an image fill with a logo
|
|
130
|
+
const imageFill = engine.block.createFill('image');
|
|
131
|
+
engine.block.setString(
|
|
132
|
+
imageFill,
|
|
133
|
+
'fill/image/imageFileURI',
|
|
134
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg'
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// Apply the fill to the graphic block
|
|
138
|
+
engine.block.setFill(logoWatermark, imageFill);
|
|
139
|
+
|
|
140
|
+
// Set content fill mode to contain the image within bounds
|
|
141
|
+
engine.block.setContentFillMode(logoWatermark, 'Contain');
|
|
142
|
+
|
|
143
|
+
// Add to page
|
|
144
|
+
engine.block.appendChild(page, logoWatermark);
|
|
145
|
+
|
|
146
|
+
// Size the logo watermark
|
|
147
|
+
const logoWidth = 80;
|
|
148
|
+
const logoHeight = 50;
|
|
149
|
+
engine.block.setWidth(logoWatermark, logoWidth);
|
|
150
|
+
engine.block.setHeight(logoWatermark, logoHeight);
|
|
151
|
+
|
|
152
|
+
// Set opacity for the logo watermark
|
|
153
|
+
engine.block.setOpacity(logoWatermark, 0.8);
|
|
154
|
+
|
|
155
|
+
// Position padding from edges
|
|
156
|
+
const padding = 15;
|
|
157
|
+
|
|
158
|
+
// Position text watermark at bottom-left
|
|
159
|
+
engine.block.setPositionX(textWatermark, padding);
|
|
160
|
+
engine.block.setPositionY(textWatermark, pageHeight - padding - 20);
|
|
161
|
+
|
|
162
|
+
// Position logo watermark at top-right
|
|
163
|
+
engine.block.setPositionX(logoWatermark, pageWidth - padding - logoWidth);
|
|
164
|
+
engine.block.setPositionY(logoWatermark, padding);
|
|
165
|
+
|
|
166
|
+
// Add drop shadow to text watermark for better visibility
|
|
167
|
+
engine.block.setDropShadowEnabled(textWatermark, true);
|
|
168
|
+
engine.block.setDropShadowOffsetX(textWatermark, 1);
|
|
169
|
+
engine.block.setDropShadowOffsetY(textWatermark, 1);
|
|
170
|
+
engine.block.setDropShadowBlurRadiusX(textWatermark, 2);
|
|
171
|
+
engine.block.setDropShadowBlurRadiusY(textWatermark, 2);
|
|
172
|
+
engine.block.setDropShadowColor(textWatermark, {
|
|
173
|
+
r: 0,
|
|
174
|
+
g: 0,
|
|
175
|
+
b: 0,
|
|
176
|
+
a: 0.5
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Add drop shadow to logo watermark
|
|
180
|
+
engine.block.setDropShadowEnabled(logoWatermark, true);
|
|
181
|
+
engine.block.setDropShadowOffsetX(logoWatermark, 1);
|
|
182
|
+
engine.block.setDropShadowOffsetY(logoWatermark, 1);
|
|
183
|
+
engine.block.setDropShadowBlurRadiusX(logoWatermark, 2);
|
|
184
|
+
engine.block.setDropShadowBlurRadiusY(logoWatermark, 2);
|
|
185
|
+
engine.block.setDropShadowColor(logoWatermark, {
|
|
186
|
+
r: 0,
|
|
187
|
+
g: 0,
|
|
188
|
+
b: 0,
|
|
189
|
+
a: 0.5
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// Add export button to the navigation bar
|
|
193
|
+
cesdk.ui.insertOrderComponent(
|
|
194
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
195
|
+
{
|
|
196
|
+
id: 'ly.img.actions.navigationBar',
|
|
197
|
+
children: [
|
|
198
|
+
{
|
|
199
|
+
id: 'ly.img.action.navigationBar',
|
|
200
|
+
key: 'export-watermarked',
|
|
201
|
+
label: 'Export',
|
|
202
|
+
icon: '@imgly/Download',
|
|
203
|
+
onClick: async () => {
|
|
204
|
+
// Export the watermarked design
|
|
205
|
+
const blob = await engine.block.export(page, {
|
|
206
|
+
mimeType: 'image/png'
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// Download the watermarked image
|
|
210
|
+
await cesdk.utils.downloadFile(blob, 'image/png');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
// Zoom to fit the page in view with padding and enable auto-fit
|
|
218
|
+
await engine.scene.zoomToBlock(page, { padding: 40 });
|
|
219
|
+
engine.scene.enableZoomAutoFit(page, 'Both', 40, 40, 40, 40);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export default Example;
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
This guide covers how to create text and logo watermarks, position them on a design, style them for visibility, and export the watermarked result.
|
|
227
|
+
|
|
228
|
+
## Setup and Prerequisites
|
|
229
|
+
|
|
230
|
+
We start by initializing CE.SDK, loading asset sources, and creating a scene with a custom page size. The page provides the canvas where we'll add our watermarks.
|
|
231
|
+
|
|
232
|
+
```typescript highlight=highlight-setup
|
|
233
|
+
const engine = cesdk.engine;
|
|
234
|
+
|
|
235
|
+
// Create a scene with custom page dimensions
|
|
236
|
+
const scene = engine.scene.create();
|
|
237
|
+
const page = engine.block.create('page');
|
|
238
|
+
engine.block.setWidth(page, 800);
|
|
239
|
+
engine.block.setHeight(page, 600);
|
|
240
|
+
engine.block.appendChild(scene, page);
|
|
241
|
+
|
|
242
|
+
const pageWidth = engine.block.getWidth(page);
|
|
243
|
+
const pageHeight = engine.block.getHeight(page);
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
We use `engine.scene.create('VerticalStack', {...})` to create a scene with custom page dimensions. The page dimensions are retrieved for positioning calculations later.
|
|
247
|
+
|
|
248
|
+
## Creating Text Watermarks
|
|
249
|
+
|
|
250
|
+
Text watermarks display copyright notices, URLs, or brand names. We create a text block, set its content, and add it to the page.
|
|
251
|
+
|
|
252
|
+
```typescript highlight=highlight-create-text-watermark
|
|
253
|
+
// Create a text block for the watermark
|
|
254
|
+
const textWatermark = engine.block.create('text');
|
|
255
|
+
|
|
256
|
+
// Set the watermark text content
|
|
257
|
+
engine.block.setString(textWatermark, 'text/text', '© 2024 img.ly');
|
|
258
|
+
|
|
259
|
+
// Left-align the text for the watermark
|
|
260
|
+
engine.block.setEnum(textWatermark, 'text/horizontalAlignment', 'Left');
|
|
261
|
+
|
|
262
|
+
// Add the text block to the page
|
|
263
|
+
engine.block.appendChild(page, textWatermark);
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
The `engine.block.create('text')` method creates a new text block. We set the text content using `engine.block.setString()` with the `'text/text'` property.
|
|
267
|
+
|
|
268
|
+
### Styling the Text
|
|
269
|
+
|
|
270
|
+
We configure the font size, color, and opacity to make the watermark visible but unobtrusive.
|
|
271
|
+
|
|
272
|
+
```typescript highlight=highlight-style-text-watermark
|
|
273
|
+
// Set font size for the watermark
|
|
274
|
+
engine.block.setTextFontSize(textWatermark, 4);
|
|
275
|
+
|
|
276
|
+
// Set text color to white for contrast
|
|
277
|
+
engine.block.setTextColor(textWatermark, { r: 1, g: 1, b: 1, a: 1 });
|
|
278
|
+
|
|
279
|
+
// Set opacity to make it semi-transparent
|
|
280
|
+
engine.block.setOpacity(textWatermark, 0.8);
|
|
281
|
+
|
|
282
|
+
// Set width mode to auto so text fits its content
|
|
283
|
+
engine.block.setWidthMode(textWatermark, 'Auto');
|
|
284
|
+
engine.block.setHeightMode(textWatermark, 'Auto');
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
Key styling options:
|
|
288
|
+
|
|
289
|
+
- **Font size** - Use sizes between 14-18px for subtle watermarks
|
|
290
|
+
- **Text color** - White or black depending on the image background
|
|
291
|
+
- **Opacity** - Values between 0.5-0.7 provide a balanced, semi-transparent appearance
|
|
292
|
+
- **Size mode** - Set to `'Auto'` so the block automatically fits its text content
|
|
293
|
+
|
|
294
|
+
### Positioning the Watermarks
|
|
295
|
+
|
|
296
|
+
We calculate the watermark positions based on the page dimensions and place the logo and text side-by-side at the bottom center of the page.
|
|
297
|
+
|
|
298
|
+
```typescript highlight=highlight-position-text-watermark
|
|
299
|
+
// Position padding from edges
|
|
300
|
+
const padding = 15;
|
|
301
|
+
|
|
302
|
+
// Position text watermark at bottom-left
|
|
303
|
+
engine.block.setPositionX(textWatermark, padding);
|
|
304
|
+
engine.block.setPositionY(textWatermark, pageHeight - padding - 20);
|
|
305
|
+
|
|
306
|
+
// Position logo watermark at top-right
|
|
307
|
+
engine.block.setPositionX(logoWatermark, pageWidth - padding - logoWidth);
|
|
308
|
+
engine.block.setPositionY(logoWatermark, padding);
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
We retrieve the rendered frame dimensions using `engine.block.getFrameWidth()` and `engine.block.getFrameHeight()`, calculate the total width of both watermarks with spacing, then center them horizontally. The vertical position places them near the bottom with padding from the edge.
|
|
312
|
+
|
|
313
|
+
## Creating Logo Watermarks
|
|
314
|
+
|
|
315
|
+
Logo watermarks use graphic blocks with image fills to display brand symbols or company logos.
|
|
316
|
+
|
|
317
|
+
```typescript highlight=highlight-create-logo-watermark
|
|
318
|
+
// Create a graphic block for the logo watermark
|
|
319
|
+
const logoWatermark = engine.block.create('graphic');
|
|
320
|
+
|
|
321
|
+
// Create a rect shape for the logo
|
|
322
|
+
const rectShape = engine.block.createShape('rect');
|
|
323
|
+
engine.block.setShape(logoWatermark, rectShape);
|
|
324
|
+
|
|
325
|
+
// Create an image fill with a logo
|
|
326
|
+
const imageFill = engine.block.createFill('image');
|
|
327
|
+
engine.block.setString(
|
|
328
|
+
imageFill,
|
|
329
|
+
'fill/image/imageFileURI',
|
|
330
|
+
'https://img.ly/static/ubq_samples/imgly_logo.jpg'
|
|
331
|
+
);
|
|
332
|
+
|
|
333
|
+
// Apply the fill to the graphic block
|
|
334
|
+
engine.block.setFill(logoWatermark, imageFill);
|
|
335
|
+
|
|
336
|
+
// Set content fill mode to contain the image within bounds
|
|
337
|
+
engine.block.setContentFillMode(logoWatermark, 'Contain');
|
|
338
|
+
|
|
339
|
+
// Add to page
|
|
340
|
+
engine.block.appendChild(page, logoWatermark);
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
We create a graphic block, assign a rect shape, then create an image fill with the logo URI. The fill is applied to the graphic block before adding it to the page.
|
|
344
|
+
|
|
345
|
+
### Sizing the Logo
|
|
346
|
+
|
|
347
|
+
We set fixed dimensions for the logo and apply opacity to match the text watermark.
|
|
348
|
+
|
|
349
|
+
```typescript highlight=highlight-size-logo-watermark
|
|
350
|
+
// Size the logo watermark
|
|
351
|
+
const logoWidth = 80;
|
|
352
|
+
const logoHeight = 50;
|
|
353
|
+
engine.block.setWidth(logoWatermark, logoWidth);
|
|
354
|
+
engine.block.setHeight(logoWatermark, logoHeight);
|
|
355
|
+
|
|
356
|
+
// Set opacity for the logo watermark
|
|
357
|
+
engine.block.setOpacity(logoWatermark, 0.8);
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
A good rule is to size logos to 10-20% of the page width. This keeps them visible without dominating the design.
|
|
361
|
+
|
|
362
|
+
## Enhancing Visibility with Drop Shadows
|
|
363
|
+
|
|
364
|
+
Drop shadows improve watermark readability against varied backgrounds by adding contrast.
|
|
365
|
+
|
|
366
|
+
```typescript highlight=highlight-add-drop-shadow
|
|
367
|
+
// Add drop shadow to text watermark for better visibility
|
|
368
|
+
engine.block.setDropShadowEnabled(textWatermark, true);
|
|
369
|
+
engine.block.setDropShadowOffsetX(textWatermark, 1);
|
|
370
|
+
engine.block.setDropShadowOffsetY(textWatermark, 1);
|
|
371
|
+
engine.block.setDropShadowBlurRadiusX(textWatermark, 2);
|
|
372
|
+
engine.block.setDropShadowBlurRadiusY(textWatermark, 2);
|
|
373
|
+
engine.block.setDropShadowColor(textWatermark, {
|
|
374
|
+
r: 0,
|
|
375
|
+
g: 0,
|
|
376
|
+
b: 0,
|
|
377
|
+
a: 0.5
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
// Add drop shadow to logo watermark
|
|
381
|
+
engine.block.setDropShadowEnabled(logoWatermark, true);
|
|
382
|
+
engine.block.setDropShadowOffsetX(logoWatermark, 1);
|
|
383
|
+
engine.block.setDropShadowOffsetY(logoWatermark, 1);
|
|
384
|
+
engine.block.setDropShadowBlurRadiusX(logoWatermark, 2);
|
|
385
|
+
engine.block.setDropShadowBlurRadiusY(logoWatermark, 2);
|
|
386
|
+
engine.block.setDropShadowColor(logoWatermark, {
|
|
387
|
+
r: 0,
|
|
388
|
+
g: 0,
|
|
389
|
+
b: 0,
|
|
390
|
+
a: 0.5
|
|
391
|
+
});
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
Drop shadow parameters:
|
|
395
|
+
|
|
396
|
+
- **Offset X/Y** - Distance from the block (2-4 pixels works well)
|
|
397
|
+
- **Blur Radius X/Y** - Softness of the shadow (4-8 pixels for subtle effect)
|
|
398
|
+
- **Color** - Black with 0.5 alpha provides soft contrast without being harsh
|
|
399
|
+
|
|
400
|
+
## Exporting Watermarked Images
|
|
401
|
+
|
|
402
|
+
After adding watermarks, we add an export button to the navigation bar that downloads the watermarked image when clicked.
|
|
403
|
+
|
|
404
|
+
```typescript highlight=highlight-export-watermarked
|
|
405
|
+
// Add export button to the navigation bar
|
|
406
|
+
cesdk.ui.insertOrderComponent(
|
|
407
|
+
{ in: 'ly.img.navigation.bar', position: 'end' },
|
|
408
|
+
{
|
|
409
|
+
id: 'ly.img.actions.navigationBar',
|
|
410
|
+
children: [
|
|
411
|
+
{
|
|
412
|
+
id: 'ly.img.action.navigationBar',
|
|
413
|
+
key: 'export-watermarked',
|
|
414
|
+
label: 'Export',
|
|
415
|
+
icon: '@imgly/Download',
|
|
416
|
+
onClick: async () => {
|
|
417
|
+
// Export the watermarked design
|
|
418
|
+
const blob = await engine.block.export(page, {
|
|
419
|
+
mimeType: 'image/png'
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
// Download the watermarked image
|
|
423
|
+
await cesdk.utils.downloadFile(blob, 'image/png');
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
]
|
|
427
|
+
}
|
|
428
|
+
);
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
We use `cesdk.ui.insertOrderComponent()` to add a custom button to the editor's navigation bar. When clicked, `engine.block.export()` renders the page with all watermarks and returns a blob that `cesdk.utils.downloadFile()` downloads to the user's device. Supported formats include PNG, JPEG, and WebP.
|
|
432
|
+
|
|
433
|
+
## Troubleshooting
|
|
434
|
+
|
|
435
|
+
**Watermark not visible**
|
|
436
|
+
|
|
437
|
+
- Verify the block is within page bounds using position values
|
|
438
|
+
- Check opacity is between 0.3-1.0
|
|
439
|
+
- Ensure `engine.block.appendChild()` was called to add the block to the page
|
|
440
|
+
|
|
441
|
+
**Position appears incorrect**
|
|
442
|
+
|
|
443
|
+
- Recalculate positions using current `pageWidth` and `pageHeight`
|
|
444
|
+
- Account for watermark dimensions when calculating corner positions
|
|
445
|
+
- Remember that coordinates start from the top-left corner
|
|
446
|
+
|
|
447
|
+
**Text not legible**
|
|
448
|
+
|
|
449
|
+
- Increase font size to at least 36px
|
|
450
|
+
- Add a drop shadow for contrast against complex backgrounds
|
|
451
|
+
- Increase opacity if the watermark is too faint
|
|
452
|
+
|
|
453
|
+
**Logo quality issues**
|
|
454
|
+
|
|
455
|
+
- Use a higher resolution source image for the logo
|
|
456
|
+
- Avoid scaling the logo beyond its original dimensions
|
|
457
|
+
|
|
458
|
+
## API Reference
|
|
459
|
+
|
|
460
|
+
| Method | Purpose |
|
|
461
|
+
| --------------------------------------------------- | ----------------------------------- |
|
|
462
|
+
| `engine.block.create(type)` | Create text or graphic blocks |
|
|
463
|
+
| `engine.block.createShape(type)` | Create shapes for graphic blocks |
|
|
464
|
+
| `engine.block.createFill(type)` | Create image fills for logos |
|
|
465
|
+
| `engine.block.setString(id, property, value)` | Set text content or image URI |
|
|
466
|
+
| `engine.block.setTextFontSize(id, size)` | Set text font size |
|
|
467
|
+
| `engine.block.setTextColor(id, color)` | Set text color |
|
|
468
|
+
| `engine.block.setOpacity(id, opacity)` | Set block transparency |
|
|
469
|
+
| `engine.block.setPositionX(id, value)` | Set horizontal position |
|
|
470
|
+
| `engine.block.setPositionY(id, value)` | Set vertical position |
|
|
471
|
+
| `engine.block.setWidth(id, value)` | Set block width |
|
|
472
|
+
| `engine.block.setHeight(id, value)` | Set block height |
|
|
473
|
+
| `engine.block.getFrameWidth(id)` | Get rendered frame width |
|
|
474
|
+
| `engine.block.getFrameHeight(id)` | Get rendered frame height |
|
|
475
|
+
| `engine.block.setDropShadowEnabled(id, enabled)` | Enable drop shadow |
|
|
476
|
+
| `engine.block.setDropShadowOffsetX(id, offset)` | Set shadow X offset |
|
|
477
|
+
| `engine.block.setDropShadowOffsetY(id, offset)` | Set shadow Y offset |
|
|
478
|
+
| `engine.block.setDropShadowBlurRadiusX(id, radius)` | Set shadow blur |
|
|
479
|
+
| `engine.block.setDropShadowColor(id, color)` | Set shadow color |
|
|
480
|
+
| `engine.block.export(id, options)` | Export block to blob |
|
|
481
|
+
| `cesdk.ui.insertOrderComponent(options, component)` | Add custom button to navigation bar |
|
|
482
|
+
| `cesdk.utils.downloadFile(blob, mimeType)` | Download blob as file |
|
|
483
|
+
|
|
484
|
+
## Next Steps
|
|
485
|
+
|
|
486
|
+
- [Text Styling](./text/styling.md) — Style text blocks with fonts, colors, and effects
|
|
487
|
+
- [Export Overview](./export-save-publish/export/overview.md) — Export options and formats for watermarked images
|
|
488
|
+
- [Crop Images](./edit-image/transform/crop.md) — Transform images before watermarking
|
|
489
|
+
|
|
490
|
+
---
|
|
491
|
+
|
|
492
|
+
## More Resources
|
|
493
|
+
|
|
494
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
495
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
496
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
497
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,22 @@
|
|
|
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 Images](./edit-image.md) > [Overview](./edit-image/overview.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The CreativeEditor SDK (CE.SDK) offers powerful image editing capabilities designed for seamless integration into your application. You can give your users full control through an intuitive user interface or implement fully automated workflows via the SDK’s programmatic API.
|
|
8
|
+
|
|
9
|
+
Image editing with CE.SDK is fully client-side, ensuring fast performance, data privacy, and offline compatibility. Whether you're building a photo editor, design tool, or automation workflow, CE.SDK provides everything you need—plus the flexibility to integrate AI tools for tasks like adding or removing objects, swapping backgrounds, or creating variants.
|
|
10
|
+
|
|
11
|
+
[Launch Web Demo](https://img.ly/showcases/cesdk)
|
|
12
|
+
|
|
13
|
+
[Get Started](./get-started/overview.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## More Resources
|
|
18
|
+
|
|
19
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
20
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
21
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
22
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|