@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,303 @@
|
|
|
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) > [Open the Editor](./open-the-editor.md) > [Set Zoom Level](./open-the-editor/set-zoom-level.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Control the canvas zoom level programmatically using CE.SDK. Learn how to use
|
|
8
|
+
the zoom APIs to set specific levels, enable auto-fit, and zoom to blocks. You
|
|
9
|
+
can also customize the navigation bar with your own zoom controls.
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
> **Reading time:** 10 minutes
|
|
14
|
+
>
|
|
15
|
+
> **Resources:**
|
|
16
|
+
>
|
|
17
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
18
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-open-the-editor-set-zoom-level-browser)
|
|
19
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-open-the-editor-set-zoom-level-browser)
|
|
20
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-open-the-editor-set-zoom-level-browser/)
|
|
21
|
+
|
|
22
|
+
The zoom level is a ratio where 1.0 equals one design pixel per screen pixel. A zoom level of 2.0 makes content appear twice as large on screen, while 0.5 makes it appear half as large.
|
|
23
|
+
|
|
24
|
+
```typescript file=@cesdk_web_examples/guides-open-the-editor-set-zoom-level-browser/src/browser.ts reference-only
|
|
25
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
26
|
+
import packageJson from '../package.json';
|
|
27
|
+
import {
|
|
28
|
+
BlurAssetSource,
|
|
29
|
+
CaptionPresetsAssetSource,
|
|
30
|
+
ColorPaletteAssetSource,
|
|
31
|
+
CropPresetsAssetSource,
|
|
32
|
+
DemoAssetSources,
|
|
33
|
+
EffectsAssetSource,
|
|
34
|
+
FiltersAssetSource,
|
|
35
|
+
PagePresetsAssetSource,
|
|
36
|
+
StickerAssetSource,
|
|
37
|
+
TextAssetSource,
|
|
38
|
+
TypefaceAssetSource,
|
|
39
|
+
UploadAssetSources,
|
|
40
|
+
VectorShapeAssetSource
|
|
41
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
+
import { DesignEditorConfig } from '../design-editor/plugin';
|
|
43
|
+
|
|
44
|
+
class Example implements EditorPlugin {
|
|
45
|
+
name = packageJson.name;
|
|
46
|
+
version = packageJson.version;
|
|
47
|
+
|
|
48
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
49
|
+
if (!cesdk) {
|
|
50
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const engine = cesdk.engine;
|
|
54
|
+
|
|
55
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
56
|
+
|
|
57
|
+
// Load asset source plugins
|
|
58
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
59
|
+
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
60
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
61
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
62
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
63
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
64
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
65
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
66
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
67
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
68
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
69
|
+
await cesdk.addPlugin(
|
|
70
|
+
new UploadAssetSources({
|
|
71
|
+
include: ['ly.img.image.upload']
|
|
72
|
+
})
|
|
73
|
+
);
|
|
74
|
+
await cesdk.addPlugin(
|
|
75
|
+
new DemoAssetSources({
|
|
76
|
+
include: ['ly.img.image.*']
|
|
77
|
+
})
|
|
78
|
+
);
|
|
79
|
+
await cesdk.actions.run('scene.create', {
|
|
80
|
+
page: {
|
|
81
|
+
sourceId: 'ly.img.page.presets',
|
|
82
|
+
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
const page = engine.block.findByType('page')[0];
|
|
87
|
+
|
|
88
|
+
// Set a specific zoom level (value 0.15 = 15%, 1.0 = 100%)
|
|
89
|
+
engine.scene.setZoomLevel(0.15);
|
|
90
|
+
|
|
91
|
+
// Enable auto-fit to keep content visible within the viewport
|
|
92
|
+
// Parameters: block, fitMode, paddingTop, paddingRight, paddingBottom, paddingLeft
|
|
93
|
+
engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
|
|
94
|
+
|
|
95
|
+
// Configure navigation bar with custom zoom buttons
|
|
96
|
+
// This replaces the default zoom controls
|
|
97
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
|
|
98
|
+
'ly.img.spacer',
|
|
99
|
+
{
|
|
100
|
+
id: 'ly.img.action.navigationBar',
|
|
101
|
+
key: 'zoom-15',
|
|
102
|
+
label: 'Zoom 15%',
|
|
103
|
+
icon: '@imgly/ZoomOut',
|
|
104
|
+
onClick: () => {
|
|
105
|
+
engine.scene.setZoomLevel(0.15);
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: 'ly.img.action.navigationBar',
|
|
110
|
+
key: 'zoom-42',
|
|
111
|
+
label: 'Zoom 42%',
|
|
112
|
+
icon: '@imgly/Zoom',
|
|
113
|
+
onClick: () => {
|
|
114
|
+
engine.scene.setZoomLevel(0.42);
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
id: 'ly.img.action.navigationBar',
|
|
119
|
+
key: 'zoom-90',
|
|
120
|
+
label: 'Zoom 90%',
|
|
121
|
+
icon: '@imgly/ZoomIn',
|
|
122
|
+
onClick: () => {
|
|
123
|
+
engine.scene.setZoomLevel(0.9);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'ly.img.action.navigationBar',
|
|
128
|
+
key: 'zoom-auto-fit',
|
|
129
|
+
label: 'Auto-Fit',
|
|
130
|
+
icon: '@imgly/Fit',
|
|
131
|
+
onClick: () => {
|
|
132
|
+
engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
]);
|
|
136
|
+
|
|
137
|
+
// Zoom to show a specific block with smooth animation
|
|
138
|
+
await engine.scene.zoomToBlock(page, {
|
|
139
|
+
padding: 40,
|
|
140
|
+
animate: { duration: 0.3, easing: 'EaseOut' }
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export default Example;
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Understanding the Zoom APIs
|
|
149
|
+
|
|
150
|
+
CE.SDK provides three main approaches for controlling the zoom level.
|
|
151
|
+
|
|
152
|
+
### Set Zoom Level
|
|
153
|
+
|
|
154
|
+
Use `engine.scene.setZoomLevel()` to set a specific zoom level. The value is a ratio where:
|
|
155
|
+
|
|
156
|
+
- `0.15` = 15% zoom (zoomed out)
|
|
157
|
+
- `1.0` = 100% zoom (1:1 pixel ratio)
|
|
158
|
+
- `2.0` = 200% zoom (zoomed in)
|
|
159
|
+
|
|
160
|
+
```typescript highlight-set-zoom-level
|
|
161
|
+
// Set a specific zoom level (value 0.15 = 15%, 1.0 = 100%)
|
|
162
|
+
engine.scene.setZoomLevel(0.15);
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Auto-Fit Zoom
|
|
166
|
+
|
|
167
|
+
Use `engine.scene.enableZoomAutoFit()` to continuously adjust zoom to fit a block in the viewport. The parameters are:
|
|
168
|
+
|
|
169
|
+
- **blockOrScene**: The block ID to fit
|
|
170
|
+
- **axis**: `'Both'`, `'Horizontal'`, or `'Vertical'`
|
|
171
|
+
- **padding values**: Space around the block in screen pixels (top, right, bottom, left)
|
|
172
|
+
|
|
173
|
+
```typescript highlight-auto-fit
|
|
174
|
+
// Enable auto-fit to keep content visible within the viewport
|
|
175
|
+
// Parameters: block, fitMode, paddingTop, paddingRight, paddingBottom, paddingLeft
|
|
176
|
+
engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
When auto-fit is enabled, the viewport automatically adjusts when the block changes size. Calling `setZoomLevel()` or `zoomToBlock()` disables auto-fit.
|
|
180
|
+
|
|
181
|
+
### Zoom to Block
|
|
182
|
+
|
|
183
|
+
Use `engine.scene.zoomToBlock()` to focus the viewport on a specific block with animation:
|
|
184
|
+
|
|
185
|
+
```typescript highlight-zoom-to-block
|
|
186
|
+
// Zoom to show a specific block with smooth animation
|
|
187
|
+
await engine.scene.zoomToBlock(page, {
|
|
188
|
+
padding: 40,
|
|
189
|
+
animate: { duration: 0.3, easing: 'EaseOut' }
|
|
190
|
+
});
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Built-in Zoom Controls
|
|
194
|
+
|
|
195
|
+
CE.SDK includes a built-in zoom component that provides a complete zoom interface out of the box. The `ly.img.zoom.navigationBar` component includes:
|
|
196
|
+
|
|
197
|
+
- Zoom in and zoom out buttons
|
|
198
|
+
- Auto-fit button
|
|
199
|
+
- Fit-to-page option
|
|
200
|
+
- Preset zoom levels (200%, 100%, 50%)
|
|
201
|
+
- A dropdown with a numeric input for custom zoom values
|
|
202
|
+
|
|
203
|
+
This component appears in the navigation bar by default. For most use cases, the built-in zoom controls provide everything users need without any additional code.
|
|
204
|
+
|
|
205
|
+
## Customizing the Navigation Bar
|
|
206
|
+
|
|
207
|
+
If you need custom zoom behavior beyond what the built-in component provides, use `cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, order)` to replace or extend the navigation bar controls.
|
|
208
|
+
|
|
209
|
+
```typescript highlight-navigation-bar-buttons
|
|
210
|
+
// Configure navigation bar with custom zoom buttons
|
|
211
|
+
// This replaces the default zoom controls
|
|
212
|
+
cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
|
|
213
|
+
'ly.img.spacer',
|
|
214
|
+
{
|
|
215
|
+
id: 'ly.img.action.navigationBar',
|
|
216
|
+
key: 'zoom-15',
|
|
217
|
+
label: 'Zoom 15%',
|
|
218
|
+
icon: '@imgly/ZoomOut',
|
|
219
|
+
onClick: () => {
|
|
220
|
+
engine.scene.setZoomLevel(0.15);
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: 'ly.img.action.navigationBar',
|
|
225
|
+
key: 'zoom-42',
|
|
226
|
+
label: 'Zoom 42%',
|
|
227
|
+
icon: '@imgly/Zoom',
|
|
228
|
+
onClick: () => {
|
|
229
|
+
engine.scene.setZoomLevel(0.42);
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: 'ly.img.action.navigationBar',
|
|
234
|
+
key: 'zoom-90',
|
|
235
|
+
label: 'Zoom 90%',
|
|
236
|
+
icon: '@imgly/ZoomIn',
|
|
237
|
+
onClick: () => {
|
|
238
|
+
engine.scene.setZoomLevel(0.9);
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: 'ly.img.action.navigationBar',
|
|
243
|
+
key: 'zoom-auto-fit',
|
|
244
|
+
label: 'Auto-Fit',
|
|
245
|
+
icon: '@imgly/Fit',
|
|
246
|
+
onClick: () => {
|
|
247
|
+
engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
]);
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Each action button requires:
|
|
254
|
+
|
|
255
|
+
- **id**: Use `'ly.img.action.navigationBar'` for action buttons
|
|
256
|
+
- **key**: Unique identifier for the button
|
|
257
|
+
- **label**: Display text
|
|
258
|
+
- **icon**: Icon from the `@imgly/` icon set
|
|
259
|
+
- **onClick**: Handler function
|
|
260
|
+
|
|
261
|
+
By defining your own order, you can remove default controls, add custom action buttons, and reorder existing components.
|
|
262
|
+
|
|
263
|
+
## Troubleshooting
|
|
264
|
+
|
|
265
|
+
### Zoom Level Doesn't Change
|
|
266
|
+
|
|
267
|
+
- Check that no UI component is overriding zoom
|
|
268
|
+
- Ensure a scene exists before calling zoom methods
|
|
269
|
+
- Verify zoom clamping isn't limiting the range
|
|
270
|
+
|
|
271
|
+
### Auto-Fit Not Working
|
|
272
|
+
|
|
273
|
+
- Only one block can have auto-fit enabled at a time
|
|
274
|
+
- Calling `setZoomLevel()` or `zoomToBlock()` disables auto-fit
|
|
275
|
+
- Pass a valid block ID that exists in the scene
|
|
276
|
+
|
|
277
|
+
### Custom Buttons Not Appearing
|
|
278
|
+
|
|
279
|
+
- Ensure `setComponentOrder()` is called after the scene is created
|
|
280
|
+
- Check that button keys are unique
|
|
281
|
+
- Verify the icon name is correct
|
|
282
|
+
|
|
283
|
+
## API Reference
|
|
284
|
+
|
|
285
|
+
| Method | Description |
|
|
286
|
+
| -------------------------------------------------------------------- | --------------------------------- |
|
|
287
|
+
| `engine.scene.getZoomLevel()` | Get current zoom level |
|
|
288
|
+
| `engine.scene.setZoomLevel()` | Set zoom level directly |
|
|
289
|
+
| `engine.scene.zoomToBlock()` | Zoom and pan to show a block |
|
|
290
|
+
| `engine.scene.enableZoomAutoFit()` | Enable continuous zoom adjustment |
|
|
291
|
+
| `engine.scene.disableZoomAutoFit()` | Disable auto-fit |
|
|
292
|
+
| `engine.scene.isZoomAutoFitEnabled()` | Query auto-fit state |
|
|
293
|
+
| `engine.scene.onZoomLevelChanged()` | Subscribe to zoom changes |
|
|
294
|
+
| `cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, order)` | Customize navigation bar layout |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## More Resources
|
|
299
|
+
|
|
300
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
301
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
302
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
303
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,347 @@
|
|
|
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) > [Open the Editor](./open-the-editor.md) > [URI Resolver](./open-the-editor/uri-resolver.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Learn how to intercept and transform asset URIs in CE.SDK, enabling authentication and custom resolution logic.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 5 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-open-the-editor-uri-resolver-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-open-the-editor-uri-resolver-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-open-the-editor-uri-resolver-browser/)
|
|
19
|
+
|
|
20
|
+
When CE.SDK loads an asset, it resolves the URI to an absolute path before fetching. You can intercept this process to add authentication tokens or transform URIs based on your application's needs.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-open-the-editor-uri-resolver-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
import {
|
|
25
|
+
BlurAssetSource,
|
|
26
|
+
ColorPaletteAssetSource,
|
|
27
|
+
CropPresetsAssetSource,
|
|
28
|
+
DemoAssetSources,
|
|
29
|
+
EffectsAssetSource,
|
|
30
|
+
FiltersAssetSource,
|
|
31
|
+
PagePresetsAssetSource,
|
|
32
|
+
StickerAssetSource,
|
|
33
|
+
TextAssetSource,
|
|
34
|
+
TextComponentAssetSource,
|
|
35
|
+
TypefaceAssetSource,
|
|
36
|
+
UploadAssetSources,
|
|
37
|
+
VectorShapeAssetSource
|
|
38
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
39
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
40
|
+
import packageJson from './package.json';
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* CE.SDK Plugin: URI Resolver Guide
|
|
44
|
+
*
|
|
45
|
+
* This example demonstrates:
|
|
46
|
+
* - Understanding default URI resolution behavior
|
|
47
|
+
* - Setting custom URI resolvers
|
|
48
|
+
* - Adding authentication tokens
|
|
49
|
+
* - Removing custom resolvers
|
|
50
|
+
*/
|
|
51
|
+
class Example implements EditorPlugin {
|
|
52
|
+
name = packageJson.name;
|
|
53
|
+
|
|
54
|
+
version = packageJson.version;
|
|
55
|
+
|
|
56
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
57
|
+
if (!cesdk) {
|
|
58
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
62
|
+
// Add asset source plugins
|
|
63
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
64
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
65
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
66
|
+
await cesdk.addPlugin(
|
|
67
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
68
|
+
);
|
|
69
|
+
await cesdk.addPlugin(
|
|
70
|
+
new DemoAssetSources({
|
|
71
|
+
include: [
|
|
72
|
+
'ly.img.templates.blank.*',
|
|
73
|
+
'ly.img.templates.presentation.*',
|
|
74
|
+
'ly.img.templates.print.*',
|
|
75
|
+
'ly.img.templates.social.*',
|
|
76
|
+
'ly.img.image.*'
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
);
|
|
80
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
81
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
82
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
84
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
88
|
+
|
|
89
|
+
// Create a design scene
|
|
90
|
+
await cesdk.actions.run('scene.create', {
|
|
91
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const engine = cesdk.engine;
|
|
95
|
+
|
|
96
|
+
// Get the page
|
|
97
|
+
const pages = engine.block.findByType('page');
|
|
98
|
+
const page = pages[0];
|
|
99
|
+
if (!page) {
|
|
100
|
+
throw new Error('No page found');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Set page background to light gray
|
|
104
|
+
const pageFill = engine.block.getFill(page);
|
|
105
|
+
engine.block.setColor(pageFill, 'fill/color/value', {
|
|
106
|
+
r: 0.96,
|
|
107
|
+
g: 0.96,
|
|
108
|
+
b: 0.96,
|
|
109
|
+
a: 1.0
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// ========================================
|
|
113
|
+
// Section 1: Understanding Default URI Resolution
|
|
114
|
+
// ========================================
|
|
115
|
+
|
|
116
|
+
// Test resolution without loading assets
|
|
117
|
+
const relativeURI = '/images/photo.jpg';
|
|
118
|
+
const resolvedURI = await engine.editor.getAbsoluteURI(relativeURI);
|
|
119
|
+
// eslint-disable-next-line no-console
|
|
120
|
+
console.log('Default resolution:');
|
|
121
|
+
// eslint-disable-next-line no-console
|
|
122
|
+
console.log(` Input: ${relativeURI}`);
|
|
123
|
+
// eslint-disable-next-line no-console
|
|
124
|
+
console.log(` Output: ${resolvedURI}`);
|
|
125
|
+
|
|
126
|
+
// ========================================
|
|
127
|
+
// Section 2: Setting a Custom URI Resolver
|
|
128
|
+
// ========================================
|
|
129
|
+
|
|
130
|
+
// Set a custom resolver that transforms specific file types
|
|
131
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) => {
|
|
132
|
+
// Transform JPG files to a watermarked version
|
|
133
|
+
if (uri.endsWith('.jpg')) {
|
|
134
|
+
// eslint-disable-next-line no-console
|
|
135
|
+
console.log(`Custom resolver: Transforming ${uri}`);
|
|
136
|
+
return 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
137
|
+
}
|
|
138
|
+
// Use default resolver for all other URIs
|
|
139
|
+
return defaultURIResolver(uri);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Test the custom resolver
|
|
143
|
+
// ========================================
|
|
144
|
+
// Section 2: Adding Authentication with JWT Tokens
|
|
145
|
+
// ========================================
|
|
146
|
+
|
|
147
|
+
// Pre-generate token BEFORE setting the resolver (must be synchronous)
|
|
148
|
+
const authToken = 'demo-jwt-token-123';
|
|
149
|
+
|
|
150
|
+
// Set resolver that adds authentication to specific endpoints
|
|
151
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) => {
|
|
152
|
+
// Only add auth token to URIs pointing to your stable link endpoint
|
|
153
|
+
if (uri.includes('your-server/image-stable-links/')) {
|
|
154
|
+
const authenticatedURI = `${uri}?auth=${authToken}`;
|
|
155
|
+
// eslint-disable-next-line no-console
|
|
156
|
+
console.log(`\nAuth resolver: Adding token to ${uri}`);
|
|
157
|
+
// eslint-disable-next-line no-console
|
|
158
|
+
console.log(` Result: ${authenticatedURI}`);
|
|
159
|
+
return authenticatedURI;
|
|
160
|
+
}
|
|
161
|
+
// Use default resolver for all other URIs
|
|
162
|
+
return defaultURIResolver(uri);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// Test authentication with a protected URI
|
|
166
|
+
const protectedURI = 'https://your-server/image-stable-links/abc123';
|
|
167
|
+
await engine.editor.getAbsoluteURI(protectedURI);
|
|
168
|
+
|
|
169
|
+
// ========================================
|
|
170
|
+
// Section 3: Removing a Custom Resolver
|
|
171
|
+
// ========================================
|
|
172
|
+
|
|
173
|
+
// Remove the custom resolver to restore default behavior
|
|
174
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) =>
|
|
175
|
+
defaultURIResolver(uri)
|
|
176
|
+
);
|
|
177
|
+
// eslint-disable-next-line no-console
|
|
178
|
+
console.log('\n✓ Removed custom resolver - back to default behavior');
|
|
179
|
+
|
|
180
|
+
// ========================================
|
|
181
|
+
// Visual Demonstration: Load Images
|
|
182
|
+
// ========================================
|
|
183
|
+
|
|
184
|
+
// Create a visual demonstration with actual image loading
|
|
185
|
+
// This shows that the resolver affects actual asset loading, not just getAbsoluteURI()
|
|
186
|
+
|
|
187
|
+
// Set a simple resolver for the demo
|
|
188
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) => {
|
|
189
|
+
// For this demo, ensure all images resolve to valid URLs
|
|
190
|
+
if (uri.includes('sample')) {
|
|
191
|
+
return uri;
|
|
192
|
+
}
|
|
193
|
+
return defaultURIResolver(uri);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
// Create three image blocks to demonstrate URI resolution in action
|
|
197
|
+
const imageSize = { width: 200, height: 150 };
|
|
198
|
+
const spacing = 40;
|
|
199
|
+
const startX = (800 - (imageSize.width * 3 + spacing * 2)) / 2;
|
|
200
|
+
const startY = (600 - imageSize.height) / 2;
|
|
201
|
+
|
|
202
|
+
// Image 1: Standard resolution
|
|
203
|
+
const image1 = await engine.block.addImage(
|
|
204
|
+
'https://img.ly/static/ubq_samples/sample_1.jpg',
|
|
205
|
+
{ size: imageSize }
|
|
206
|
+
);
|
|
207
|
+
engine.block.setPositionX(image1, startX);
|
|
208
|
+
engine.block.setPositionY(image1, startY);
|
|
209
|
+
engine.block.appendChild(page, image1);
|
|
210
|
+
|
|
211
|
+
// Image 2: Another sample
|
|
212
|
+
const image2 = await engine.block.addImage(
|
|
213
|
+
'https://img.ly/static/ubq_samples/sample_2.jpg',
|
|
214
|
+
{ size: imageSize }
|
|
215
|
+
);
|
|
216
|
+
engine.block.setPositionX(image2, startX + imageSize.width + spacing);
|
|
217
|
+
engine.block.setPositionY(image2, startY);
|
|
218
|
+
engine.block.appendChild(page, image2);
|
|
219
|
+
|
|
220
|
+
// Image 3: Third sample
|
|
221
|
+
const image3 = await engine.block.addImage(
|
|
222
|
+
'https://img.ly/static/ubq_samples/sample_3.jpg',
|
|
223
|
+
{ size: imageSize }
|
|
224
|
+
);
|
|
225
|
+
engine.block.setPositionX(image3, startX + (imageSize.width + spacing) * 2);
|
|
226
|
+
engine.block.setPositionY(image3, startY);
|
|
227
|
+
engine.block.appendChild(page, image3);
|
|
228
|
+
|
|
229
|
+
// Zoom to fit all content
|
|
230
|
+
await engine.scene.zoomToBlock(page, {
|
|
231
|
+
padding: {
|
|
232
|
+
left: 40,
|
|
233
|
+
top: 40,
|
|
234
|
+
right: 40,
|
|
235
|
+
bottom: 40
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
// eslint-disable-next-line no-console
|
|
240
|
+
console.log('\n✓ URI Resolver guide loaded successfully!');
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export default Example;
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## Default URI Resolution
|
|
248
|
+
|
|
249
|
+
By default, CE.SDK resolves URIs relative to the `basePath` setting. Absolute URIs (with http://, https://, data:) pass through unchanged, while relative paths get prepended with `basePath`.
|
|
250
|
+
|
|
251
|
+
Use `getAbsoluteURI()` to test how URIs resolve without loading assets:
|
|
252
|
+
|
|
253
|
+
```typescript highlight=highlight-test-resolution
|
|
254
|
+
// Test resolution without loading assets
|
|
255
|
+
const relativeURI = '/images/photo.jpg';
|
|
256
|
+
const resolvedURI = await engine.editor.getAbsoluteURI(relativeURI);
|
|
257
|
+
// eslint-disable-next-line no-console
|
|
258
|
+
console.log('Default resolution:');
|
|
259
|
+
// eslint-disable-next-line no-console
|
|
260
|
+
console.log(` Input: ${relativeURI}`);
|
|
261
|
+
// eslint-disable-next-line no-console
|
|
262
|
+
console.log(` Output: ${resolvedURI}`);
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Custom URI Resolver
|
|
266
|
+
|
|
267
|
+
Set a custom resolver to intercept and transform URIs. The resolver receives the URI and a `defaultURIResolver` function for fallback behavior:
|
|
268
|
+
|
|
269
|
+
```typescript highlight=highlight-set-resolver
|
|
270
|
+
// Set a custom resolver that transforms specific file types
|
|
271
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) => {
|
|
272
|
+
// Transform JPG files to a watermarked version
|
|
273
|
+
if (uri.endsWith('.jpg')) {
|
|
274
|
+
// eslint-disable-next-line no-console
|
|
275
|
+
console.log(`Custom resolver: Transforming ${uri}`);
|
|
276
|
+
return 'https://img.ly/static/ubq_samples/sample_1.jpg';
|
|
277
|
+
}
|
|
278
|
+
// Use default resolver for all other URIs
|
|
279
|
+
return defaultURIResolver(uri);
|
|
280
|
+
});
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
**Important:** The resolver must be synchronous—no `async`/`await` or Promises. Pre-compute any tokens or transformations before setting the resolver.
|
|
284
|
+
|
|
285
|
+
## Adding Authentication
|
|
286
|
+
|
|
287
|
+
A common use case is adding authentication tokens to asset URIs. Generate the token before setting the resolver, then append it as a query parameter:
|
|
288
|
+
|
|
289
|
+
```typescript highlight=highlight-auth-resolver
|
|
290
|
+
// Pre-generate token BEFORE setting the resolver (must be synchronous)
|
|
291
|
+
const authToken = 'demo-jwt-token-123';
|
|
292
|
+
|
|
293
|
+
// Set resolver that adds authentication to specific endpoints
|
|
294
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) => {
|
|
295
|
+
// Only add auth token to URIs pointing to your stable link endpoint
|
|
296
|
+
if (uri.includes('your-server/image-stable-links/')) {
|
|
297
|
+
const authenticatedURI = `${uri}?auth=${authToken}`;
|
|
298
|
+
// eslint-disable-next-line no-console
|
|
299
|
+
console.log(`\nAuth resolver: Adding token to ${uri}`);
|
|
300
|
+
// eslint-disable-next-line no-console
|
|
301
|
+
console.log(` Result: ${authenticatedURI}`);
|
|
302
|
+
return authenticatedURI;
|
|
303
|
+
}
|
|
304
|
+
// Use default resolver for all other URIs
|
|
305
|
+
return defaultURIResolver(uri);
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
// Test authentication with a protected URI
|
|
309
|
+
const protectedURI = 'https://your-server/image-stable-links/abc123';
|
|
310
|
+
await engine.editor.getAbsoluteURI(protectedURI);
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Your server validates the token and redirects to the actual asset (e.g., pre-signed S3 URL). CE.SDK follows redirects automatically.
|
|
314
|
+
|
|
315
|
+
## Removing a Resolver
|
|
316
|
+
|
|
317
|
+
Restore default behavior by setting a resolver that delegates to `defaultURIResolver`:
|
|
318
|
+
|
|
319
|
+
```typescript highlight=highlight-remove-resolver
|
|
320
|
+
// Remove the custom resolver to restore default behavior
|
|
321
|
+
engine.editor.setURIResolver((uri, defaultURIResolver) =>
|
|
322
|
+
defaultURIResolver(uri)
|
|
323
|
+
);
|
|
324
|
+
// eslint-disable-next-line no-console
|
|
325
|
+
console.log('\n✓ Removed custom resolver - back to default behavior');
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Key Constraints
|
|
329
|
+
|
|
330
|
+
- **Sync vs async**: `setURIResolver` must be synchronous. Use `setURIResolverAsync` for async resolution.
|
|
331
|
+
- **Must return absolute URIs**: Include scheme (http://, https://, data:)
|
|
332
|
+
- **One resolver at a time**: New calls overwrite previous resolvers
|
|
333
|
+
- **Delegate unmatched URIs**: Pass to `defaultURIResolver()` for unchanged paths
|
|
334
|
+
|
|
335
|
+
## Next Steps
|
|
336
|
+
|
|
337
|
+
- [Configuration](./configuration.md) — CE.SDK initialization and baseURL settings
|
|
338
|
+
- [Load Assets from Remote](./import-media/from-remote-source.md) — Load assets from remote URLs and servers
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## More Resources
|
|
343
|
+
|
|
344
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
345
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
346
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
347
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,29 @@
|
|
|
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) > [Open the Editor](./open-the-editor.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Related Pages
|
|
10
|
+
|
|
11
|
+
- [Overview](./open-the-editor/overview.md) - Learn how to load and create scenes, set the zoom level, and configure file proxies or URI resolvers.
|
|
12
|
+
- [Load a Scene](./open-the-editor/load-scene.md) - Load existing design scenes into the editor to resume or modify previous work.
|
|
13
|
+
- [Start With Blank Canvas](./open-the-editor/blank-canvas.md) - Launch the editor with an empty canvas as a starting point for new designs.
|
|
14
|
+
- [Create From Image](./open-the-editor/from-image.md) - Create an editable scene from an image file, with automatic page dimensions matching the source image.
|
|
15
|
+
- [Create From HTMLCanvas](./open-the-editor/from-htmlcanvas.md) - Start the editor from an HTMLCanvas element and enable editing on top of its rendered content.
|
|
16
|
+
- [Create From Video](./open-the-editor/from-video.md) - Load a video file into the editor to start editing frame-based or time-based video content.
|
|
17
|
+
- [Create From Template](./open-the-editor/from-template.md) - Start the editor with a pre-designed template for faster editing and consistent output.
|
|
18
|
+
- [Import a Design](./open-the-editor/import-design.md) - Load previously saved scenes, self-contained archives, or create editable scenes from images and videos.
|
|
19
|
+
- [Set Zoom Level](./open-the-editor/set-zoom-level.md) - Control the canvas zoom level programmatically to focus on specific areas of the design.
|
|
20
|
+
- [URI Resolver](./open-the-editor/uri-resolver.md) - Take control over asset URI resolution in CE.SDK by intercepting and transforming URIs before the engine loads them.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## More Resources
|
|
25
|
+
|
|
26
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
27
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
28
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
29
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,14 @@
|
|
|
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) > [Outlines](./outlines.md) > [Overview](./outlines/overview.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## More Resources
|
|
10
|
+
|
|
11
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
12
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
13
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
14
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|