@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,288 @@
|
|
|
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 Text](./text.md) > [Adjust Spacing](./text/adjust-spacing.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Control letter spacing, line height, and paragraph spacing in text blocks using the Block API.
|
|
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-text-adjust-spacing-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-text-adjust-spacing-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-text-adjust-spacing-browser/)
|
|
19
|
+
|
|
20
|
+
CE.SDK provides three text spacing properties: `text/letterSpacing`, `text/lineHeight`, and `text/paragraphSpacing`. All are float properties controlled via `engine.block.setFloat()` and `engine.block.getFloat()`. Text spacing adjustments are programmatic-only; there is no built-in UI for these properties.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-text-adjust-spacing-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* CE.SDK Plugin: Adjust Text Spacing Guide
|
|
45
|
+
*
|
|
46
|
+
* Demonstrates programmatic text spacing capabilities:
|
|
47
|
+
* - Letter spacing (tracking)
|
|
48
|
+
* - Line height (leading)
|
|
49
|
+
* - Paragraph spacing
|
|
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
|
+
|
|
63
|
+
// Add asset source plugins
|
|
64
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
65
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
66
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
67
|
+
await cesdk.addPlugin(
|
|
68
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
69
|
+
);
|
|
70
|
+
await cesdk.addPlugin(
|
|
71
|
+
new DemoAssetSources({
|
|
72
|
+
include: [
|
|
73
|
+
'ly.img.templates.blank.*',
|
|
74
|
+
'ly.img.templates.presentation.*',
|
|
75
|
+
'ly.img.templates.print.*',
|
|
76
|
+
'ly.img.templates.social.*',
|
|
77
|
+
'ly.img.image.*'
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
);
|
|
81
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
82
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
84
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
89
|
+
|
|
90
|
+
await cesdk.actions.run('scene.create', {
|
|
91
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
const engine = cesdk.engine;
|
|
95
|
+
const page = engine.block.findByType('page')[0];
|
|
96
|
+
|
|
97
|
+
// Text block 1: Letter Spacing Demo
|
|
98
|
+
const textLetterSpacing = engine.block.create('text');
|
|
99
|
+
engine.block.appendChild(page, textLetterSpacing);
|
|
100
|
+
engine.block.setPositionX(textLetterSpacing, 50);
|
|
101
|
+
engine.block.setPositionY(textLetterSpacing, 30);
|
|
102
|
+
engine.block.setWidth(textLetterSpacing, 700);
|
|
103
|
+
engine.block.setHeightMode(textLetterSpacing, 'Auto');
|
|
104
|
+
engine.block.replaceText(textLetterSpacing, 'CREATIVE STUDIO');
|
|
105
|
+
engine.block.setTextFontSize(textLetterSpacing, 48);
|
|
106
|
+
|
|
107
|
+
// Set letter spacing - controls space between characters
|
|
108
|
+
// Positive values increase spacing, negative values tighten characters
|
|
109
|
+
engine.block.setFloat(textLetterSpacing, 'text/letterSpacing', 0.1);
|
|
110
|
+
|
|
111
|
+
// Read current letter spacing value
|
|
112
|
+
const letterSpacing = engine.block.getFloat(
|
|
113
|
+
textLetterSpacing,
|
|
114
|
+
'text/letterSpacing'
|
|
115
|
+
);
|
|
116
|
+
console.log('Letter spacing:', letterSpacing);
|
|
117
|
+
|
|
118
|
+
// Text block 2: Line Height Demo
|
|
119
|
+
const textLineHeight = engine.block.create('text');
|
|
120
|
+
engine.block.appendChild(page, textLineHeight);
|
|
121
|
+
engine.block.setPositionX(textLineHeight, 50);
|
|
122
|
+
engine.block.setPositionY(textLineHeight, 150);
|
|
123
|
+
engine.block.setWidth(textLineHeight, 700);
|
|
124
|
+
engine.block.setHeightMode(textLineHeight, 'Auto');
|
|
125
|
+
engine.block.replaceText(
|
|
126
|
+
textLineHeight,
|
|
127
|
+
'Design your ideas\nBring them to life'
|
|
128
|
+
);
|
|
129
|
+
engine.block.setTextFontSize(textLineHeight, 48);
|
|
130
|
+
|
|
131
|
+
// Set line height - controls vertical distance between lines
|
|
132
|
+
// Values are multipliers of font size (1.5 = 150% of font size)
|
|
133
|
+
engine.block.setFloat(textLineHeight, 'text/lineHeight', 1.8);
|
|
134
|
+
|
|
135
|
+
// Read current line height value
|
|
136
|
+
const lineHeight = engine.block.getFloat(textLineHeight, 'text/lineHeight');
|
|
137
|
+
console.log('Line height:', lineHeight);
|
|
138
|
+
|
|
139
|
+
// Text block 3: Paragraph Spacing Demo
|
|
140
|
+
const textParagraphSpacing = engine.block.create('text');
|
|
141
|
+
engine.block.appendChild(page, textParagraphSpacing);
|
|
142
|
+
engine.block.setPositionX(textParagraphSpacing, 50);
|
|
143
|
+
engine.block.setPositionY(textParagraphSpacing, 350);
|
|
144
|
+
engine.block.setWidth(textParagraphSpacing, 700);
|
|
145
|
+
engine.block.setHeightMode(textParagraphSpacing, 'Auto');
|
|
146
|
+
engine.block.replaceText(
|
|
147
|
+
textParagraphSpacing,
|
|
148
|
+
'Start Creating\nJoin Today'
|
|
149
|
+
);
|
|
150
|
+
engine.block.setTextFontSize(textParagraphSpacing, 48);
|
|
151
|
+
|
|
152
|
+
// Set paragraph spacing - adds space after paragraph breaks
|
|
153
|
+
engine.block.setFloat(textParagraphSpacing, 'text/paragraphSpacing', 4);
|
|
154
|
+
|
|
155
|
+
// Read current paragraph spacing value
|
|
156
|
+
const paragraphSpacing = engine.block.getFloat(
|
|
157
|
+
textParagraphSpacing,
|
|
158
|
+
'text/paragraphSpacing'
|
|
159
|
+
);
|
|
160
|
+
console.log('Paragraph spacing:', paragraphSpacing);
|
|
161
|
+
|
|
162
|
+
// Zoom to show all text blocks
|
|
163
|
+
engine.scene.zoomToBlock(page, { padding: 40 });
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export default Example;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
This guide covers how to adjust letter spacing between characters, line height between lines, and paragraph spacing between paragraphs.
|
|
171
|
+
|
|
172
|
+
## Letter Spacing
|
|
173
|
+
|
|
174
|
+
We control the horizontal space between characters using `engine.block.setFloat()` with the `text/letterSpacing` property. Positive values increase spacing, negative values tighten characters.
|
|
175
|
+
|
|
176
|
+
```typescript highlight-letter-spacing
|
|
177
|
+
// Text block 1: Letter Spacing Demo
|
|
178
|
+
const textLetterSpacing = engine.block.create('text');
|
|
179
|
+
engine.block.appendChild(page, textLetterSpacing);
|
|
180
|
+
engine.block.setPositionX(textLetterSpacing, 50);
|
|
181
|
+
engine.block.setPositionY(textLetterSpacing, 30);
|
|
182
|
+
engine.block.setWidth(textLetterSpacing, 700);
|
|
183
|
+
engine.block.setHeightMode(textLetterSpacing, 'Auto');
|
|
184
|
+
engine.block.replaceText(textLetterSpacing, 'CREATIVE STUDIO');
|
|
185
|
+
engine.block.setTextFontSize(textLetterSpacing, 48);
|
|
186
|
+
|
|
187
|
+
// Set letter spacing - controls space between characters
|
|
188
|
+
// Positive values increase spacing, negative values tighten characters
|
|
189
|
+
engine.block.setFloat(textLetterSpacing, 'text/letterSpacing', 0.1);
|
|
190
|
+
|
|
191
|
+
// Read current letter spacing value
|
|
192
|
+
const letterSpacing = engine.block.getFloat(
|
|
193
|
+
textLetterSpacing,
|
|
194
|
+
'text/letterSpacing'
|
|
195
|
+
);
|
|
196
|
+
console.log('Letter spacing:', letterSpacing);
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Letter spacing (also known as tracking) helps adjust text density for improved readability or visual effect.
|
|
200
|
+
|
|
201
|
+
## Line Height
|
|
202
|
+
|
|
203
|
+
We control the vertical distance between lines using `engine.block.setFloat()` with the `text/lineHeight` property. Values are multipliers of the font size—for example, 1.5 means 150% of the font size.
|
|
204
|
+
|
|
205
|
+
```typescript highlight-line-height
|
|
206
|
+
// Text block 2: Line Height Demo
|
|
207
|
+
const textLineHeight = engine.block.create('text');
|
|
208
|
+
engine.block.appendChild(page, textLineHeight);
|
|
209
|
+
engine.block.setPositionX(textLineHeight, 50);
|
|
210
|
+
engine.block.setPositionY(textLineHeight, 150);
|
|
211
|
+
engine.block.setWidth(textLineHeight, 700);
|
|
212
|
+
engine.block.setHeightMode(textLineHeight, 'Auto');
|
|
213
|
+
engine.block.replaceText(
|
|
214
|
+
textLineHeight,
|
|
215
|
+
'Design your ideas\nBring them to life'
|
|
216
|
+
);
|
|
217
|
+
engine.block.setTextFontSize(textLineHeight, 48);
|
|
218
|
+
|
|
219
|
+
// Set line height - controls vertical distance between lines
|
|
220
|
+
// Values are multipliers of font size (1.5 = 150% of font size)
|
|
221
|
+
engine.block.setFloat(textLineHeight, 'text/lineHeight', 1.8);
|
|
222
|
+
|
|
223
|
+
// Read current line height value
|
|
224
|
+
const lineHeight = engine.block.getFloat(textLineHeight, 'text/lineHeight');
|
|
225
|
+
console.log('Line height:', lineHeight);
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Line height affects multi-line text. A single line of text won't show visible differences.
|
|
229
|
+
|
|
230
|
+
## Paragraph Spacing
|
|
231
|
+
|
|
232
|
+
We add vertical space between paragraphs using `engine.block.setFloat()` with the `text/paragraphSpacing` property. The value is added after each paragraph break (newline characters in the text content).
|
|
233
|
+
|
|
234
|
+
```typescript highlight-paragraph-spacing
|
|
235
|
+
// Text block 3: Paragraph Spacing Demo
|
|
236
|
+
const textParagraphSpacing = engine.block.create('text');
|
|
237
|
+
engine.block.appendChild(page, textParagraphSpacing);
|
|
238
|
+
engine.block.setPositionX(textParagraphSpacing, 50);
|
|
239
|
+
engine.block.setPositionY(textParagraphSpacing, 350);
|
|
240
|
+
engine.block.setWidth(textParagraphSpacing, 700);
|
|
241
|
+
engine.block.setHeightMode(textParagraphSpacing, 'Auto');
|
|
242
|
+
engine.block.replaceText(textParagraphSpacing, 'Start Creating\nJoin Today');
|
|
243
|
+
engine.block.setTextFontSize(textParagraphSpacing, 48);
|
|
244
|
+
|
|
245
|
+
// Set paragraph spacing - adds space after paragraph breaks
|
|
246
|
+
engine.block.setFloat(textParagraphSpacing, 'text/paragraphSpacing', 4);
|
|
247
|
+
|
|
248
|
+
// Read current paragraph spacing value
|
|
249
|
+
const paragraphSpacing = engine.block.getFloat(
|
|
250
|
+
textParagraphSpacing,
|
|
251
|
+
'text/paragraphSpacing'
|
|
252
|
+
);
|
|
253
|
+
console.log('Paragraph spacing:', paragraphSpacing);
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Paragraph spacing only affects text with actual paragraph breaks. Single paragraphs won't show visible differences.
|
|
257
|
+
|
|
258
|
+
## API Reference
|
|
259
|
+
|
|
260
|
+
| Method | Purpose |
|
|
261
|
+
| ------------------------- | ----------------------------------- |
|
|
262
|
+
| `engine.block.setFloat()` | Set numeric spacing property values |
|
|
263
|
+
| `engine.block.getFloat()` | Get current spacing property values |
|
|
264
|
+
|
|
265
|
+
### Properties Reference
|
|
266
|
+
|
|
267
|
+
| Property | Type | Purpose |
|
|
268
|
+
| ----------------------- | ----- | ------------------------------------- |
|
|
269
|
+
| `text/letterSpacing` | Float | Space between characters (tracking) |
|
|
270
|
+
| `text/lineHeight` | Float | Multiplier for vertical line distance |
|
|
271
|
+
| `text/paragraphSpacing` | Float | Space added after paragraph breaks |
|
|
272
|
+
|
|
273
|
+
## Troubleshooting
|
|
274
|
+
|
|
275
|
+
**Spacing changes not visible**: Ensure the text block contains enough content to show the effect—multiple characters for letter spacing, multiple lines for line height, multiple paragraphs for paragraph spacing.
|
|
276
|
+
|
|
277
|
+
**Unexpected line height behavior**: Line height is a multiplier of font size, not an absolute value. A value of 1.5 means 150% of the current font size.
|
|
278
|
+
|
|
279
|
+
**Paragraph spacing not working**: Verify the text content contains actual paragraph breaks (newline characters).
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## More Resources
|
|
284
|
+
|
|
285
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
286
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
287
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
288
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
@@ -0,0 +1,404 @@
|
|
|
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 Text](./text.md) > [Auto-Size](./text/auto-size.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Configure text blocks to automatically adapt their dimensions or font size for dynamic content.
|
|
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-text-auto-size-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-text-auto-size-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-text-auto-size-browser/)
|
|
19
|
+
|
|
20
|
+
CE.SDK provides two approaches for handling dynamic text content. **Auto size modes** let text blocks resize to fit their content, while **automatic font sizing** scales the font to fit within fixed boundaries. These techniques ensure text displays correctly regardless of content length, which is essential for templates and automation workflows.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-text-auto-size-browser/browser.ts reference-only
|
|
23
|
+
import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
|
|
24
|
+
|
|
25
|
+
import {
|
|
26
|
+
BlurAssetSource,
|
|
27
|
+
ColorPaletteAssetSource,
|
|
28
|
+
CropPresetsAssetSource,
|
|
29
|
+
DemoAssetSources,
|
|
30
|
+
EffectsAssetSource,
|
|
31
|
+
FiltersAssetSource,
|
|
32
|
+
PagePresetsAssetSource,
|
|
33
|
+
StickerAssetSource,
|
|
34
|
+
TextAssetSource,
|
|
35
|
+
TextComponentAssetSource,
|
|
36
|
+
TypefaceAssetSource,
|
|
37
|
+
UploadAssetSources,
|
|
38
|
+
VectorShapeAssetSource
|
|
39
|
+
} from '@cesdk/cesdk-js/plugins';
|
|
40
|
+
import { DesignEditorConfig } from './design-editor/plugin';
|
|
41
|
+
import packageJson from './package.json';
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* CE.SDK Plugin: Text Auto-Size Guide
|
|
45
|
+
*
|
|
46
|
+
* Demonstrates text auto-sizing capabilities:
|
|
47
|
+
* - Auto width and height modes for content-fitting text
|
|
48
|
+
* - Fixed dimensions with automatic font sizing
|
|
49
|
+
* - Font size constraints (min/max)
|
|
50
|
+
* - Detecting clipped text
|
|
51
|
+
*/
|
|
52
|
+
class Example implements EditorPlugin {
|
|
53
|
+
name = packageJson.name;
|
|
54
|
+
|
|
55
|
+
version = packageJson.version;
|
|
56
|
+
|
|
57
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
58
|
+
if (!cesdk) {
|
|
59
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
63
|
+
|
|
64
|
+
// Add asset source plugins
|
|
65
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
66
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
67
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
68
|
+
await cesdk.addPlugin(
|
|
69
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
70
|
+
);
|
|
71
|
+
await cesdk.addPlugin(
|
|
72
|
+
new DemoAssetSources({
|
|
73
|
+
include: [
|
|
74
|
+
'ly.img.templates.blank.*',
|
|
75
|
+
'ly.img.templates.presentation.*',
|
|
76
|
+
'ly.img.templates.print.*',
|
|
77
|
+
'ly.img.templates.social.*',
|
|
78
|
+
'ly.img.image.*'
|
|
79
|
+
]
|
|
80
|
+
})
|
|
81
|
+
);
|
|
82
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
83
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
84
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
85
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
90
|
+
|
|
91
|
+
await cesdk.actions.run('scene.create', {
|
|
92
|
+
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
const engine = cesdk.engine;
|
|
96
|
+
const page = engine.block.findByType('page')[0];
|
|
97
|
+
|
|
98
|
+
// Create text with Auto width and height - grows to fit content
|
|
99
|
+
const autoText = engine.block.create('text');
|
|
100
|
+
engine.block.appendChild(page, autoText);
|
|
101
|
+
engine.block.setWidthMode(autoText, 'Auto');
|
|
102
|
+
engine.block.setHeightMode(autoText, 'Auto');
|
|
103
|
+
engine.block.replaceText(autoText, 'Auto-sized text');
|
|
104
|
+
engine.block.setFloat(autoText, 'text/fontSize', 48);
|
|
105
|
+
engine.block.setPositionX(autoText, 50);
|
|
106
|
+
engine.block.setPositionY(autoText, 50);
|
|
107
|
+
|
|
108
|
+
// Create text with fixed width and auto height - wraps and grows vertically
|
|
109
|
+
const wrappedText = engine.block.create('text');
|
|
110
|
+
engine.block.appendChild(page, wrappedText);
|
|
111
|
+
engine.block.setWidthMode(wrappedText, 'Absolute');
|
|
112
|
+
engine.block.setWidth(wrappedText, 250);
|
|
113
|
+
engine.block.setHeightMode(wrappedText, 'Auto');
|
|
114
|
+
engine.block.replaceText(
|
|
115
|
+
wrappedText,
|
|
116
|
+
'This text has a fixed width but auto height, so it wraps to multiple lines'
|
|
117
|
+
);
|
|
118
|
+
engine.block.setFloat(wrappedText, 'text/fontSize', 48);
|
|
119
|
+
engine.block.setPositionX(wrappedText, 50);
|
|
120
|
+
engine.block.setPositionY(wrappedText, 150);
|
|
121
|
+
|
|
122
|
+
// Create text with automatic font sizing - scales to fit fixed dimensions
|
|
123
|
+
const scaledText = engine.block.create('text');
|
|
124
|
+
engine.block.appendChild(page, scaledText);
|
|
125
|
+
engine.block.setWidthMode(scaledText, 'Absolute');
|
|
126
|
+
engine.block.setHeightMode(scaledText, 'Absolute');
|
|
127
|
+
engine.block.setWidth(scaledText, 300);
|
|
128
|
+
engine.block.setHeight(scaledText, 80);
|
|
129
|
+
engine.block.setBool(scaledText, 'text/automaticFontSizeEnabled', true);
|
|
130
|
+
engine.block.replaceText(scaledText, 'Auto-scaled font');
|
|
131
|
+
engine.block.setPositionX(scaledText, 50);
|
|
132
|
+
engine.block.setPositionY(scaledText, 350);
|
|
133
|
+
|
|
134
|
+
// Add background to visualize the text frame
|
|
135
|
+
engine.block.setBool(scaledText, 'backgroundColor/enabled', true);
|
|
136
|
+
engine.block.setColor(scaledText, 'backgroundColor/color', {
|
|
137
|
+
r: 0.95,
|
|
138
|
+
g: 0.95,
|
|
139
|
+
b: 0.95,
|
|
140
|
+
a: 1.0
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Create text with font size constraints
|
|
144
|
+
// Note: Constraints only affect automatic sizing, not manual UI changes
|
|
145
|
+
const constrainedText = engine.block.create('text');
|
|
146
|
+
engine.block.appendChild(page, constrainedText);
|
|
147
|
+
engine.block.setWidthMode(constrainedText, 'Absolute');
|
|
148
|
+
engine.block.setHeightMode(constrainedText, 'Absolute');
|
|
149
|
+
engine.block.setWidth(constrainedText, 300);
|
|
150
|
+
engine.block.setHeight(constrainedText, 80);
|
|
151
|
+
engine.block.setBool(
|
|
152
|
+
constrainedText,
|
|
153
|
+
'text/automaticFontSizeEnabled',
|
|
154
|
+
true
|
|
155
|
+
);
|
|
156
|
+
|
|
157
|
+
// Set min and max font size constraints for automatic sizing
|
|
158
|
+
engine.block.setFloat(constrainedText, 'text/minAutomaticFontSize', 12);
|
|
159
|
+
engine.block.setFloat(constrainedText, 'text/maxAutomaticFontSize', 48);
|
|
160
|
+
|
|
161
|
+
// Use longer text to demonstrate automatic scaling within constraints
|
|
162
|
+
engine.block.replaceText(
|
|
163
|
+
constrainedText,
|
|
164
|
+
'Edit this text to see automatic font scaling (12-48pt range)'
|
|
165
|
+
);
|
|
166
|
+
engine.block.setPositionX(constrainedText, 50);
|
|
167
|
+
engine.block.setPositionY(constrainedText, 460);
|
|
168
|
+
|
|
169
|
+
// Add background to visualize the text frame
|
|
170
|
+
engine.block.setBool(constrainedText, 'backgroundColor/enabled', true);
|
|
171
|
+
engine.block.setColor(constrainedText, 'backgroundColor/color', {
|
|
172
|
+
r: 0.9,
|
|
173
|
+
g: 0.95,
|
|
174
|
+
b: 1.0,
|
|
175
|
+
a: 1.0
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// Query the size modes and automatic font size state
|
|
179
|
+
const widthMode = engine.block.getWidthMode(autoText);
|
|
180
|
+
const heightMode = engine.block.getHeightMode(autoText);
|
|
181
|
+
const isAutoFontSize = engine.block.getBool(
|
|
182
|
+
scaledText,
|
|
183
|
+
'text/automaticFontSizeEnabled'
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
console.log('Auto text width mode:', widthMode);
|
|
187
|
+
console.log('Auto text height mode:', heightMode);
|
|
188
|
+
console.log('Scaled text has automatic font sizing:', isAutoFontSize);
|
|
189
|
+
|
|
190
|
+
// Check for clipped lines (text exceeding frame bounds)
|
|
191
|
+
const hasClippedLines = engine.block.getBool(
|
|
192
|
+
scaledText,
|
|
193
|
+
'text/hasClippedLines'
|
|
194
|
+
);
|
|
195
|
+
console.log('Scaled text has clipped lines:', hasClippedLines);
|
|
196
|
+
|
|
197
|
+
// Add labels for each example
|
|
198
|
+
const createLabel = (text: string, x: number, y: number) => {
|
|
199
|
+
const label = engine.block.create('text');
|
|
200
|
+
engine.block.appendChild(page, label);
|
|
201
|
+
engine.block.setWidthMode(label, 'Auto');
|
|
202
|
+
engine.block.setHeightMode(label, 'Auto');
|
|
203
|
+
engine.block.replaceText(label, text);
|
|
204
|
+
engine.block.setFloat(label, 'text/fontSize', 32);
|
|
205
|
+
engine.block.setTextColor(label, { r: 0.5, g: 0.5, b: 0.5, a: 1.0 });
|
|
206
|
+
engine.block.setPositionX(label, x);
|
|
207
|
+
engine.block.setPositionY(label, y);
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
createLabel('Auto Width + Auto Height', 50, 20);
|
|
211
|
+
createLabel('Fixed Width + Auto Height', 50, 120);
|
|
212
|
+
createLabel('Automatic Font Sizing', 50, 320);
|
|
213
|
+
createLabel('With Min/Max Constraints', 50, 430);
|
|
214
|
+
|
|
215
|
+
// Select the first text block to show it in the inspector
|
|
216
|
+
engine.block.select(autoText);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export default Example;
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
This guide covers configuring size modes, enabling automatic font sizing, setting font size constraints, and detecting clipped text.
|
|
224
|
+
|
|
225
|
+
## Text Size Modes
|
|
226
|
+
|
|
227
|
+
CE.SDK offers three size modes for text block dimensions: 'Absolute', 'Percent', and 'Auto'. We use `engine.block.setWidthMode()` and `engine.block.setHeightMode()` to configure how text blocks handle their dimensions.
|
|
228
|
+
|
|
229
|
+
### Auto Width and Height
|
|
230
|
+
|
|
231
|
+
When both dimensions use 'Auto' mode, the text block expands freely to fit its content. This works well for single-line text that grows horizontally.
|
|
232
|
+
|
|
233
|
+
```typescript highlight=highlight-auto-width-height
|
|
234
|
+
// Create text with Auto width and height - grows to fit content
|
|
235
|
+
const autoText = engine.block.create('text');
|
|
236
|
+
engine.block.appendChild(page, autoText);
|
|
237
|
+
engine.block.setWidthMode(autoText, 'Auto');
|
|
238
|
+
engine.block.setHeightMode(autoText, 'Auto');
|
|
239
|
+
engine.block.replaceText(autoText, 'Auto-sized text');
|
|
240
|
+
engine.block.setFloat(autoText, 'text/fontSize', 48);
|
|
241
|
+
engine.block.setPositionX(autoText, 50);
|
|
242
|
+
engine.block.setPositionY(autoText, 50);
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
We set both width and height modes to 'Auto', and the text block automatically sizes itself based on the content and font size.
|
|
246
|
+
|
|
247
|
+
### Fixed Width with Auto Height
|
|
248
|
+
|
|
249
|
+
For wrapped multi-line text, we set a specific width while allowing height to adjust automatically. The text wraps within the defined width and the block grows vertically as needed.
|
|
250
|
+
|
|
251
|
+
```typescript highlight=highlight-fixed-width-auto-height
|
|
252
|
+
// Create text with fixed width and auto height - wraps and grows vertically
|
|
253
|
+
const wrappedText = engine.block.create('text');
|
|
254
|
+
engine.block.appendChild(page, wrappedText);
|
|
255
|
+
engine.block.setWidthMode(wrappedText, 'Absolute');
|
|
256
|
+
engine.block.setWidth(wrappedText, 250);
|
|
257
|
+
engine.block.setHeightMode(wrappedText, 'Auto');
|
|
258
|
+
engine.block.replaceText(
|
|
259
|
+
wrappedText,
|
|
260
|
+
'This text has a fixed width but auto height, so it wraps to multiple lines'
|
|
261
|
+
);
|
|
262
|
+
engine.block.setFloat(wrappedText, 'text/fontSize', 48);
|
|
263
|
+
engine.block.setPositionX(wrappedText, 50);
|
|
264
|
+
engine.block.setPositionY(wrappedText, 150);
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
This pattern is useful for template placeholders where the width should remain constant but content length varies.
|
|
268
|
+
|
|
269
|
+
### Querying Size Modes
|
|
270
|
+
|
|
271
|
+
We check current modes using `engine.block.getWidthMode()` and `engine.block.getHeightMode()`. These return 'Absolute', 'Percent', or 'Auto'.
|
|
272
|
+
|
|
273
|
+
```typescript highlight=highlight-query-size-modes
|
|
274
|
+
// Query the size modes and automatic font size state
|
|
275
|
+
const widthMode = engine.block.getWidthMode(autoText);
|
|
276
|
+
const heightMode = engine.block.getHeightMode(autoText);
|
|
277
|
+
const isAutoFontSize = engine.block.getBool(
|
|
278
|
+
scaledText,
|
|
279
|
+
'text/automaticFontSizeEnabled'
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
console.log('Auto text width mode:', widthMode);
|
|
283
|
+
console.log('Auto text height mode:', heightMode);
|
|
284
|
+
console.log('Scaled text has automatic font sizing:', isAutoFontSize);
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Automatic Font Sizing
|
|
288
|
+
|
|
289
|
+
For text blocks with fixed dimensions, we enable automatic font sizing to scale the font to fit within the frame. The engine calculates the largest font size that fits the content.
|
|
290
|
+
|
|
291
|
+
```typescript highlight=highlight-automatic-font-sizing
|
|
292
|
+
// Create text with automatic font sizing - scales to fit fixed dimensions
|
|
293
|
+
const scaledText = engine.block.create('text');
|
|
294
|
+
engine.block.appendChild(page, scaledText);
|
|
295
|
+
engine.block.setWidthMode(scaledText, 'Absolute');
|
|
296
|
+
engine.block.setHeightMode(scaledText, 'Absolute');
|
|
297
|
+
engine.block.setWidth(scaledText, 300);
|
|
298
|
+
engine.block.setHeight(scaledText, 80);
|
|
299
|
+
engine.block.setBool(scaledText, 'text/automaticFontSizeEnabled', true);
|
|
300
|
+
engine.block.replaceText(scaledText, 'Auto-scaled font');
|
|
301
|
+
engine.block.setPositionX(scaledText, 50);
|
|
302
|
+
engine.block.setPositionY(scaledText, 350);
|
|
303
|
+
|
|
304
|
+
// Add background to visualize the text frame
|
|
305
|
+
engine.block.setBool(scaledText, 'backgroundColor/enabled', true);
|
|
306
|
+
engine.block.setColor(scaledText, 'backgroundColor/color', {
|
|
307
|
+
r: 0.95,
|
|
308
|
+
g: 0.95,
|
|
309
|
+
b: 0.95,
|
|
310
|
+
a: 1.0
|
|
311
|
+
});
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
We first set both width and height to 'Absolute' mode with specific dimensions, then enable automatic font sizing with `text/automaticFontSizeEnabled`. The background helps visualize the text frame boundaries.
|
|
315
|
+
|
|
316
|
+
### Setting Font Size Constraints
|
|
317
|
+
|
|
318
|
+
We constrain the automatic scaling range using `text/minAutomaticFontSize` and `text/maxAutomaticFontSize` properties. These constraints apply only to the automatic sizing algorithm—they do not restrict manual font size changes made through the UI. This prevents text from becoming too small to read or too large for the design when content length varies.
|
|
319
|
+
|
|
320
|
+
```typescript highlight=highlight-font-size-constraints
|
|
321
|
+
// Create text with font size constraints
|
|
322
|
+
// Note: Constraints only affect automatic sizing, not manual UI changes
|
|
323
|
+
const constrainedText = engine.block.create('text');
|
|
324
|
+
engine.block.appendChild(page, constrainedText);
|
|
325
|
+
engine.block.setWidthMode(constrainedText, 'Absolute');
|
|
326
|
+
engine.block.setHeightMode(constrainedText, 'Absolute');
|
|
327
|
+
engine.block.setWidth(constrainedText, 300);
|
|
328
|
+
engine.block.setHeight(constrainedText, 80);
|
|
329
|
+
engine.block.setBool(constrainedText, 'text/automaticFontSizeEnabled', true);
|
|
330
|
+
|
|
331
|
+
// Set min and max font size constraints for automatic sizing
|
|
332
|
+
engine.block.setFloat(constrainedText, 'text/minAutomaticFontSize', 12);
|
|
333
|
+
engine.block.setFloat(constrainedText, 'text/maxAutomaticFontSize', 48);
|
|
334
|
+
|
|
335
|
+
// Use longer text to demonstrate automatic scaling within constraints
|
|
336
|
+
engine.block.replaceText(
|
|
337
|
+
constrainedText,
|
|
338
|
+
'Edit this text to see automatic font scaling (12-48pt range)'
|
|
339
|
+
);
|
|
340
|
+
engine.block.setPositionX(constrainedText, 50);
|
|
341
|
+
engine.block.setPositionY(constrainedText, 460);
|
|
342
|
+
|
|
343
|
+
// Add background to visualize the text frame
|
|
344
|
+
engine.block.setBool(constrainedText, 'backgroundColor/enabled', true);
|
|
345
|
+
engine.block.setColor(constrainedText, 'backgroundColor/color', {
|
|
346
|
+
r: 0.9,
|
|
347
|
+
g: 0.95,
|
|
348
|
+
b: 1.0,
|
|
349
|
+
a: 1.0
|
|
350
|
+
});
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
With constraints set, the font size automatically scales within the 12-48pt range as content length changes. When the user types more text, the font shrinks (down to the minimum). When they delete text, the font grows (up to the maximum).
|
|
354
|
+
|
|
355
|
+
## Text Clipping
|
|
356
|
+
|
|
357
|
+
When text exceeds its frame boundaries without auto-sizing, lines may be clipped. We use `engine.block.getBool()` with `text/hasClippedLines` to detect overflow.
|
|
358
|
+
|
|
359
|
+
```typescript highlight=highlight-text-clipping
|
|
360
|
+
// Check for clipped lines (text exceeding frame bounds)
|
|
361
|
+
const hasClippedLines = engine.block.getBool(
|
|
362
|
+
scaledText,
|
|
363
|
+
'text/hasClippedLines'
|
|
364
|
+
);
|
|
365
|
+
console.log('Scaled text has clipped lines:', hasClippedLines);
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
Detecting clipped text helps identify when automatic font sizing should be enabled or when the frame dimensions need adjustment.
|
|
369
|
+
|
|
370
|
+
## API Reference
|
|
371
|
+
|
|
372
|
+
| Method | Purpose |
|
|
373
|
+
| ------------------------------ | ---------------------------------------------- |
|
|
374
|
+
| `engine.block.setWidthMode()` | Set width mode: 'Absolute', 'Percent', 'Auto' |
|
|
375
|
+
| `engine.block.getWidthMode()` | Query current width mode |
|
|
376
|
+
| `engine.block.setHeightMode()` | Set height mode: 'Absolute', 'Percent', 'Auto' |
|
|
377
|
+
| `engine.block.getHeightMode()` | Query current height mode |
|
|
378
|
+
| `engine.block.setWidth()` | Set block width value |
|
|
379
|
+
| `engine.block.setHeight()` | Set block height value |
|
|
380
|
+
| `engine.block.setBool()` | Enable/disable boolean properties |
|
|
381
|
+
| `engine.block.getBool()` | Query boolean property values |
|
|
382
|
+
| `engine.block.setFloat()` | Set numeric property values |
|
|
383
|
+
| `engine.block.getFloat()` | Query numeric property values |
|
|
384
|
+
|
|
385
|
+
## Troubleshooting
|
|
386
|
+
|
|
387
|
+
**Text not resizing**: Verify the correct size mode is set. Auto mode requires both `setWidthMode()` and `setHeightMode()` to be called.
|
|
388
|
+
|
|
389
|
+
**Font size not scaling**: Ensure `text/automaticFontSizeEnabled` is true and the block has fixed (Absolute) dimensions.
|
|
390
|
+
|
|
391
|
+
**Text too small with automatic sizing**: Set an appropriate `text/minAutomaticFontSize` to ensure readability.
|
|
392
|
+
|
|
393
|
+
**Text clipped unexpectedly**: Check if the frame has fixed dimensions without automatic font sizing. Consider enabling `text/automaticFontSizeEnabled` or using Auto height mode.
|
|
394
|
+
|
|
395
|
+
**Auto mode ignored**: Make sure no conflicting explicit size values override the Auto behavior.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## More Resources
|
|
400
|
+
|
|
401
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
402
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
403
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
404
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|