@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,641 @@
|
|
|
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) > [Add Text](./text/add.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Create and configure text blocks in CE.SDK with custom fonts, rich text styling, and dynamic sizing options.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
> **Reading time:** 10 minutes
|
|
12
|
+
>
|
|
13
|
+
> **Resources:**
|
|
14
|
+
>
|
|
15
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
16
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-text-add-browser)
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-text-add-browser)
|
|
18
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-text-add-browser/)
|
|
19
|
+
|
|
20
|
+
Text blocks are fundamental design elements for displaying titles, captions, labels, and body text. CE.SDK provides a range-based styling system that allows different formatting within a single text block, enabling rich text with multiple colors, font weights, and styles.
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-text-add-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 Browser Guide: Add Text
|
|
45
|
+
*
|
|
46
|
+
* Demonstrates text block creation and configuration:
|
|
47
|
+
* - Creating text blocks
|
|
48
|
+
* - Setting text content
|
|
49
|
+
* - Configuring auto-sizing
|
|
50
|
+
* - Applying fonts and typefaces
|
|
51
|
+
* - Range-based styling with colors and font weights
|
|
52
|
+
* - Text case transformations
|
|
53
|
+
* - Text alignment and spacing
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
class Example implements EditorPlugin {
|
|
57
|
+
name = packageJson.name;
|
|
58
|
+
version = packageJson.version;
|
|
59
|
+
|
|
60
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
61
|
+
if (!cesdk) {
|
|
62
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
66
|
+
|
|
67
|
+
// Add asset source plugins
|
|
68
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
69
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
70
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
71
|
+
await cesdk.addPlugin(
|
|
72
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
73
|
+
);
|
|
74
|
+
await cesdk.addPlugin(
|
|
75
|
+
new DemoAssetSources({
|
|
76
|
+
include: [
|
|
77
|
+
'ly.img.templates.blank.*',
|
|
78
|
+
'ly.img.templates.presentation.*',
|
|
79
|
+
'ly.img.templates.print.*',
|
|
80
|
+
'ly.img.templates.social.*',
|
|
81
|
+
'ly.img.image.*'
|
|
82
|
+
]
|
|
83
|
+
})
|
|
84
|
+
);
|
|
85
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
86
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
87
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
88
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
89
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
90
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
91
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
92
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
93
|
+
|
|
94
|
+
await cesdk.actions.run('scene.create', {
|
|
95
|
+
page: { width: 800, height: 900, unit: 'Pixel' }
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const engine = cesdk.engine;
|
|
99
|
+
const page = engine.block.findByType('page')[0];
|
|
100
|
+
const pageWidth = engine.block.getWidth(page);
|
|
101
|
+
|
|
102
|
+
// Document layout settings
|
|
103
|
+
const margin = 40;
|
|
104
|
+
const fontSize = 80;
|
|
105
|
+
const lineSpacing = 100;
|
|
106
|
+
|
|
107
|
+
// Create a title text block
|
|
108
|
+
const titleBlock = engine.block.create('text');
|
|
109
|
+
engine.block.appendChild(page, titleBlock);
|
|
110
|
+
|
|
111
|
+
// Set the text content using replaceText
|
|
112
|
+
engine.block.replaceText(titleBlock, 'Welcome to CE.SDK');
|
|
113
|
+
|
|
114
|
+
// Configure auto-sizing so the block adjusts to content
|
|
115
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
116
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
117
|
+
|
|
118
|
+
// Position at top of document
|
|
119
|
+
engine.block.setPositionX(titleBlock, margin);
|
|
120
|
+
engine.block.setPositionY(titleBlock, margin);
|
|
121
|
+
|
|
122
|
+
// Apply a custom font to the title
|
|
123
|
+
// Font URIs point to hosted font files (TTF, OTF, WOFF, WOFF2)
|
|
124
|
+
const fontUri =
|
|
125
|
+
'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Caveat/Caveat-Bold.ttf';
|
|
126
|
+
const typeface = {
|
|
127
|
+
name: 'Caveat',
|
|
128
|
+
fonts: [
|
|
129
|
+
{
|
|
130
|
+
uri: fontUri,
|
|
131
|
+
subFamily: 'Bold',
|
|
132
|
+
weight: 'bold' as const,
|
|
133
|
+
style: 'normal' as const
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
};
|
|
137
|
+
engine.block.setFont(titleBlock, fontUri, typeface);
|
|
138
|
+
|
|
139
|
+
// Set font size (80pt for visibility)
|
|
140
|
+
engine.block.setTextFontSize(titleBlock, fontSize);
|
|
141
|
+
|
|
142
|
+
// Create a text block with rich text styling (multiple colors and weights)
|
|
143
|
+
const richTextBlock = engine.block.create('text');
|
|
144
|
+
engine.block.appendChild(page, richTextBlock);
|
|
145
|
+
engine.block.replaceText(richTextBlock, 'Rich text with colors and styles');
|
|
146
|
+
|
|
147
|
+
// Position below title
|
|
148
|
+
engine.block.setPositionX(richTextBlock, margin);
|
|
149
|
+
engine.block.setPositionY(richTextBlock, margin + lineSpacing);
|
|
150
|
+
engine.block.setWidthMode(richTextBlock, 'Auto');
|
|
151
|
+
engine.block.setHeightMode(richTextBlock, 'Auto');
|
|
152
|
+
engine.block.setTextFontSize(richTextBlock, fontSize);
|
|
153
|
+
|
|
154
|
+
// Apply different colors to specific ranges
|
|
155
|
+
// "Rich" (0-4) in blue
|
|
156
|
+
engine.block.setTextColor(
|
|
157
|
+
richTextBlock,
|
|
158
|
+
{ r: 0.2, g: 0.4, b: 0.8, a: 1.0 },
|
|
159
|
+
0,
|
|
160
|
+
4
|
|
161
|
+
);
|
|
162
|
+
|
|
163
|
+
// "text" (5-9) in green
|
|
164
|
+
engine.block.setTextColor(
|
|
165
|
+
richTextBlock,
|
|
166
|
+
{ r: 0.2, g: 0.7, b: 0.3, a: 1.0 },
|
|
167
|
+
5,
|
|
168
|
+
9
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
// "colors" (15-21) in orange
|
|
172
|
+
engine.block.setTextColor(
|
|
173
|
+
richTextBlock,
|
|
174
|
+
{ r: 0.9, g: 0.5, b: 0.1, a: 1.0 },
|
|
175
|
+
15,
|
|
176
|
+
21
|
|
177
|
+
);
|
|
178
|
+
|
|
179
|
+
// "styles" (26-32) in purple
|
|
180
|
+
engine.block.setTextColor(
|
|
181
|
+
richTextBlock,
|
|
182
|
+
{ r: 0.6, g: 0.2, b: 0.8, a: 1.0 },
|
|
183
|
+
26,
|
|
184
|
+
32
|
|
185
|
+
);
|
|
186
|
+
|
|
187
|
+
// Create a text block demonstrating auto-sizing with fixed width
|
|
188
|
+
const autoSizeBlock = engine.block.create('text');
|
|
189
|
+
engine.block.appendChild(page, autoSizeBlock);
|
|
190
|
+
engine.block.replaceText(autoSizeBlock, 'Auto-sizing text block');
|
|
191
|
+
|
|
192
|
+
// Position below rich text
|
|
193
|
+
engine.block.setPositionX(autoSizeBlock, margin);
|
|
194
|
+
engine.block.setPositionY(autoSizeBlock, margin + lineSpacing * 2);
|
|
195
|
+
|
|
196
|
+
// Set fixed width but auto height - text wraps and height adjusts
|
|
197
|
+
engine.block.setWidth(autoSizeBlock, pageWidth - margin * 2);
|
|
198
|
+
engine.block.setWidthMode(autoSizeBlock, 'Absolute');
|
|
199
|
+
engine.block.setHeightMode(autoSizeBlock, 'Auto');
|
|
200
|
+
engine.block.setTextFontSize(autoSizeBlock, fontSize);
|
|
201
|
+
|
|
202
|
+
// Create a text block demonstrating text case transformations
|
|
203
|
+
const caseBlock = engine.block.create('text');
|
|
204
|
+
engine.block.appendChild(page, caseBlock);
|
|
205
|
+
engine.block.replaceText(caseBlock, 'uppercase text');
|
|
206
|
+
|
|
207
|
+
// Position below auto-size block
|
|
208
|
+
engine.block.setPositionX(caseBlock, margin);
|
|
209
|
+
engine.block.setPositionY(caseBlock, margin + lineSpacing * 3);
|
|
210
|
+
engine.block.setWidthMode(caseBlock, 'Auto');
|
|
211
|
+
engine.block.setHeightMode(caseBlock, 'Auto');
|
|
212
|
+
engine.block.setTextFontSize(caseBlock, fontSize);
|
|
213
|
+
|
|
214
|
+
// Transform the entire text to uppercase without changing the source
|
|
215
|
+
engine.block.setTextCase(caseBlock, 'Uppercase');
|
|
216
|
+
|
|
217
|
+
// Create a text block demonstrating bold/italic toggle
|
|
218
|
+
const toggleBlock = engine.block.create('text');
|
|
219
|
+
engine.block.appendChild(page, toggleBlock);
|
|
220
|
+
engine.block.replaceText(toggleBlock, 'Toggle Bold and Italic');
|
|
221
|
+
|
|
222
|
+
// Position below case block
|
|
223
|
+
engine.block.setPositionX(toggleBlock, margin);
|
|
224
|
+
engine.block.setPositionY(toggleBlock, margin + lineSpacing * 4);
|
|
225
|
+
engine.block.setWidthMode(toggleBlock, 'Auto');
|
|
226
|
+
engine.block.setHeightMode(toggleBlock, 'Auto');
|
|
227
|
+
engine.block.setTextFontSize(toggleBlock, fontSize);
|
|
228
|
+
|
|
229
|
+
// Set a font that supports bold/italic variants
|
|
230
|
+
const robotoTypeface = {
|
|
231
|
+
name: 'Roboto',
|
|
232
|
+
fonts: [
|
|
233
|
+
{
|
|
234
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Regular.ttf',
|
|
235
|
+
subFamily: 'Regular',
|
|
236
|
+
weight: 'normal' as const,
|
|
237
|
+
style: 'normal' as const
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Bold.ttf',
|
|
241
|
+
subFamily: 'Bold',
|
|
242
|
+
weight: 'bold' as const,
|
|
243
|
+
style: 'normal' as const
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Italic.ttf',
|
|
247
|
+
subFamily: 'Italic',
|
|
248
|
+
weight: 'normal' as const,
|
|
249
|
+
style: 'italic' as const
|
|
250
|
+
}
|
|
251
|
+
]
|
|
252
|
+
};
|
|
253
|
+
engine.block.setFont(
|
|
254
|
+
toggleBlock,
|
|
255
|
+
'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Regular.ttf',
|
|
256
|
+
robotoTypeface
|
|
257
|
+
);
|
|
258
|
+
|
|
259
|
+
// Toggle bold for "Bold" (7-11)
|
|
260
|
+
engine.block.toggleBoldFont(toggleBlock, 7, 11);
|
|
261
|
+
|
|
262
|
+
// Toggle italic for "Italic" (16-22)
|
|
263
|
+
engine.block.toggleItalicFont(toggleBlock, 16, 22);
|
|
264
|
+
|
|
265
|
+
// Create a text block to demonstrate text modification
|
|
266
|
+
const modifyBlock = engine.block.create('text');
|
|
267
|
+
engine.block.appendChild(page, modifyBlock);
|
|
268
|
+
engine.block.replaceText(modifyBlock, 'Hello World');
|
|
269
|
+
|
|
270
|
+
// Position below toggle block
|
|
271
|
+
engine.block.setPositionX(modifyBlock, margin);
|
|
272
|
+
engine.block.setPositionY(modifyBlock, margin + lineSpacing * 5);
|
|
273
|
+
engine.block.setWidthMode(modifyBlock, 'Auto');
|
|
274
|
+
engine.block.setHeightMode(modifyBlock, 'Auto');
|
|
275
|
+
engine.block.setTextFontSize(modifyBlock, fontSize);
|
|
276
|
+
|
|
277
|
+
// Replace "World" with "CE.SDK" (range 6-11)
|
|
278
|
+
engine.block.replaceText(modifyBlock, 'CE.SDK', 6, 11);
|
|
279
|
+
// Result: "Hello CE.SDK"
|
|
280
|
+
|
|
281
|
+
// Create a centered text block with custom spacing
|
|
282
|
+
const alignedBlock = engine.block.create('text');
|
|
283
|
+
engine.block.appendChild(page, alignedBlock);
|
|
284
|
+
engine.block.replaceText(alignedBlock, 'Centered Text\nWith Line Spacing');
|
|
285
|
+
|
|
286
|
+
// Position at bottom of document
|
|
287
|
+
engine.block.setPositionX(alignedBlock, margin);
|
|
288
|
+
engine.block.setPositionY(alignedBlock, margin + lineSpacing * 6);
|
|
289
|
+
|
|
290
|
+
// Set explicit dimensions for centered alignment
|
|
291
|
+
engine.block.setWidth(alignedBlock, pageWidth - margin * 2);
|
|
292
|
+
engine.block.setWidthMode(alignedBlock, 'Absolute');
|
|
293
|
+
engine.block.setHeightMode(alignedBlock, 'Auto');
|
|
294
|
+
engine.block.setTextFontSize(alignedBlock, fontSize);
|
|
295
|
+
|
|
296
|
+
// Set horizontal alignment to center
|
|
297
|
+
engine.block.setEnum(alignedBlock, 'text/horizontalAlignment', 'Center');
|
|
298
|
+
|
|
299
|
+
// Adjust line height (1.5 = 150% of font size)
|
|
300
|
+
engine.block.setFloat(alignedBlock, 'text/lineHeight', 1.5);
|
|
301
|
+
|
|
302
|
+
// Adjust letter spacing (0.05 = 5% of font size)
|
|
303
|
+
engine.block.setFloat(alignedBlock, 'text/letterSpacing', 0.05);
|
|
304
|
+
|
|
305
|
+
// Select the title block to show in the editor
|
|
306
|
+
engine.block.select(titleBlock);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export default Example;
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
This guide covers how to create text blocks, apply fonts and typefaces, style text ranges with colors and weights, configure auto-sizing, and apply text transformations.
|
|
314
|
+
|
|
315
|
+
## Create Text Blocks
|
|
316
|
+
|
|
317
|
+
We create a text block using `engine.block.create('text')` and add it to the page hierarchy. The `replaceText()` method sets the initial content.
|
|
318
|
+
|
|
319
|
+
```typescript highlight-create-text
|
|
320
|
+
// Create a title text block
|
|
321
|
+
const titleBlock = engine.block.create('text');
|
|
322
|
+
engine.block.appendChild(page, titleBlock);
|
|
323
|
+
|
|
324
|
+
// Set the text content using replaceText
|
|
325
|
+
engine.block.replaceText(titleBlock, 'Welcome to CE.SDK');
|
|
326
|
+
|
|
327
|
+
// Configure auto-sizing so the block adjusts to content
|
|
328
|
+
engine.block.setWidthMode(titleBlock, 'Auto');
|
|
329
|
+
engine.block.setHeightMode(titleBlock, 'Auto');
|
|
330
|
+
|
|
331
|
+
// Position at top of document
|
|
332
|
+
engine.block.setPositionX(titleBlock, margin);
|
|
333
|
+
engine.block.setPositionY(titleBlock, margin);
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Text blocks default to auto-sizing, where both width and height adjust to fit the content. We position the block using `setPositionX()` and `setPositionY()`.
|
|
337
|
+
|
|
338
|
+
## Apply Fonts and Typefaces
|
|
339
|
+
|
|
340
|
+
We set fonts for text blocks using `setFont()`, which requires a font file URI and a typeface configuration object. The typeface describes the font family and available variants.
|
|
341
|
+
|
|
342
|
+
```typescript highlight-set-font
|
|
343
|
+
// Apply a custom font to the title
|
|
344
|
+
// Font URIs point to hosted font files (TTF, OTF, WOFF, WOFF2)
|
|
345
|
+
const fontUri =
|
|
346
|
+
'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Caveat/Caveat-Bold.ttf';
|
|
347
|
+
const typeface = {
|
|
348
|
+
name: 'Caveat',
|
|
349
|
+
fonts: [
|
|
350
|
+
{
|
|
351
|
+
uri: fontUri,
|
|
352
|
+
subFamily: 'Bold',
|
|
353
|
+
weight: 'bold' as const,
|
|
354
|
+
style: 'normal' as const
|
|
355
|
+
}
|
|
356
|
+
]
|
|
357
|
+
};
|
|
358
|
+
engine.block.setFont(titleBlock, fontUri, typeface);
|
|
359
|
+
|
|
360
|
+
// Set font size (80pt for visibility)
|
|
361
|
+
engine.block.setTextFontSize(titleBlock, fontSize);
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
CE.SDK supports TTF, OTF, WOFF, and WOFF2 font formats. The typeface object includes a `name`, and a `fonts` array describing each variant with its URI, weight, style, and sub-family.
|
|
365
|
+
|
|
366
|
+
## Style Text Ranges
|
|
367
|
+
|
|
368
|
+
We apply rich text formatting to specific character ranges using range-based APIs. Each method accepts start and end indices to target specific portions of the text.
|
|
369
|
+
|
|
370
|
+
```typescript highlight-rich-text-styling
|
|
371
|
+
// Create a text block with rich text styling (multiple colors and weights)
|
|
372
|
+
const richTextBlock = engine.block.create('text');
|
|
373
|
+
engine.block.appendChild(page, richTextBlock);
|
|
374
|
+
engine.block.replaceText(richTextBlock, 'Rich text with colors and styles');
|
|
375
|
+
|
|
376
|
+
// Position below title
|
|
377
|
+
engine.block.setPositionX(richTextBlock, margin);
|
|
378
|
+
engine.block.setPositionY(richTextBlock, margin + lineSpacing);
|
|
379
|
+
engine.block.setWidthMode(richTextBlock, 'Auto');
|
|
380
|
+
engine.block.setHeightMode(richTextBlock, 'Auto');
|
|
381
|
+
engine.block.setTextFontSize(richTextBlock, fontSize);
|
|
382
|
+
|
|
383
|
+
// Apply different colors to specific ranges
|
|
384
|
+
// "Rich" (0-4) in blue
|
|
385
|
+
engine.block.setTextColor(
|
|
386
|
+
richTextBlock,
|
|
387
|
+
{ r: 0.2, g: 0.4, b: 0.8, a: 1.0 },
|
|
388
|
+
0,
|
|
389
|
+
4
|
|
390
|
+
);
|
|
391
|
+
|
|
392
|
+
// "text" (5-9) in green
|
|
393
|
+
engine.block.setTextColor(
|
|
394
|
+
richTextBlock,
|
|
395
|
+
{ r: 0.2, g: 0.7, b: 0.3, a: 1.0 },
|
|
396
|
+
5,
|
|
397
|
+
9
|
|
398
|
+
);
|
|
399
|
+
|
|
400
|
+
// "colors" (15-21) in orange
|
|
401
|
+
engine.block.setTextColor(
|
|
402
|
+
richTextBlock,
|
|
403
|
+
{ r: 0.9, g: 0.5, b: 0.1, a: 1.0 },
|
|
404
|
+
15,
|
|
405
|
+
21
|
|
406
|
+
);
|
|
407
|
+
|
|
408
|
+
// "styles" (26-32) in purple
|
|
409
|
+
engine.block.setTextColor(
|
|
410
|
+
richTextBlock,
|
|
411
|
+
{ r: 0.6, g: 0.2, b: 0.8, a: 1.0 },
|
|
412
|
+
26,
|
|
413
|
+
32
|
|
414
|
+
);
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
The range indices use UTF-16 code unit positions. We can apply:
|
|
418
|
+
|
|
419
|
+
- **Colors** with `setTextColor(block, color, from, to)`
|
|
420
|
+
- **Font weights** with `setTextFontWeight(block, weight, from, to)`
|
|
421
|
+
- **Font styles** with `setTextFontStyle(block, style, from, to)`
|
|
422
|
+
- **Font sizes** with `setTextFontSize(block, size, from, to)`
|
|
423
|
+
|
|
424
|
+
## Configure Auto-Sizing
|
|
425
|
+
|
|
426
|
+
We control how text blocks resize using width and height modes. Setting `setHeightMode(block, 'Auto')` allows the block height to adjust based on content, while a fixed width causes text to wrap.
|
|
427
|
+
|
|
428
|
+
```typescript highlight-auto-sizing
|
|
429
|
+
// Create a text block demonstrating auto-sizing with fixed width
|
|
430
|
+
const autoSizeBlock = engine.block.create('text');
|
|
431
|
+
engine.block.appendChild(page, autoSizeBlock);
|
|
432
|
+
engine.block.replaceText(autoSizeBlock, 'Auto-sizing text block');
|
|
433
|
+
|
|
434
|
+
// Position below rich text
|
|
435
|
+
engine.block.setPositionX(autoSizeBlock, margin);
|
|
436
|
+
engine.block.setPositionY(autoSizeBlock, margin + lineSpacing * 2);
|
|
437
|
+
|
|
438
|
+
// Set fixed width but auto height - text wraps and height adjusts
|
|
439
|
+
engine.block.setWidth(autoSizeBlock, pageWidth - margin * 2);
|
|
440
|
+
engine.block.setWidthMode(autoSizeBlock, 'Absolute');
|
|
441
|
+
engine.block.setHeightMode(autoSizeBlock, 'Auto');
|
|
442
|
+
engine.block.setTextFontSize(autoSizeBlock, fontSize);
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Available sizing modes include:
|
|
446
|
+
|
|
447
|
+
- **'Auto'** - Dimension adjusts to fit content
|
|
448
|
+
- **'Absolute'** - Dimension uses the explicit pixel value
|
|
449
|
+
- **'Percent'** - Dimension uses a percentage of the parent
|
|
450
|
+
|
|
451
|
+
## Apply Text Case Transformations
|
|
452
|
+
|
|
453
|
+
We transform text appearance without changing the underlying content using `setTextCase()`. This applies visual transformations while preserving the original text.
|
|
454
|
+
|
|
455
|
+
```typescript highlight-text-case
|
|
456
|
+
// Create a text block demonstrating text case transformations
|
|
457
|
+
const caseBlock = engine.block.create('text');
|
|
458
|
+
engine.block.appendChild(page, caseBlock);
|
|
459
|
+
engine.block.replaceText(caseBlock, 'uppercase text');
|
|
460
|
+
|
|
461
|
+
// Position below auto-size block
|
|
462
|
+
engine.block.setPositionX(caseBlock, margin);
|
|
463
|
+
engine.block.setPositionY(caseBlock, margin + lineSpacing * 3);
|
|
464
|
+
engine.block.setWidthMode(caseBlock, 'Auto');
|
|
465
|
+
engine.block.setHeightMode(caseBlock, 'Auto');
|
|
466
|
+
engine.block.setTextFontSize(caseBlock, fontSize);
|
|
467
|
+
|
|
468
|
+
// Transform the entire text to uppercase without changing the source
|
|
469
|
+
engine.block.setTextCase(caseBlock, 'Uppercase');
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Available text cases include 'Normal', 'Uppercase', 'Lowercase', and 'Titlecase'.
|
|
473
|
+
|
|
474
|
+
## Set Text Alignment and Spacing
|
|
475
|
+
|
|
476
|
+
We configure text layout properties using `setEnum()` for alignment and `setFloat()` for spacing values.
|
|
477
|
+
|
|
478
|
+
```typescript highlight-text-alignment
|
|
479
|
+
// Create a centered text block with custom spacing
|
|
480
|
+
const alignedBlock = engine.block.create('text');
|
|
481
|
+
engine.block.appendChild(page, alignedBlock);
|
|
482
|
+
engine.block.replaceText(alignedBlock, 'Centered Text\nWith Line Spacing');
|
|
483
|
+
|
|
484
|
+
// Position at bottom of document
|
|
485
|
+
engine.block.setPositionX(alignedBlock, margin);
|
|
486
|
+
engine.block.setPositionY(alignedBlock, margin + lineSpacing * 6);
|
|
487
|
+
|
|
488
|
+
// Set explicit dimensions for centered alignment
|
|
489
|
+
engine.block.setWidth(alignedBlock, pageWidth - margin * 2);
|
|
490
|
+
engine.block.setWidthMode(alignedBlock, 'Absolute');
|
|
491
|
+
engine.block.setHeightMode(alignedBlock, 'Auto');
|
|
492
|
+
engine.block.setTextFontSize(alignedBlock, fontSize);
|
|
493
|
+
|
|
494
|
+
// Set horizontal alignment to center
|
|
495
|
+
engine.block.setEnum(alignedBlock, 'text/horizontalAlignment', 'Center');
|
|
496
|
+
|
|
497
|
+
// Adjust line height (1.5 = 150% of font size)
|
|
498
|
+
engine.block.setFloat(alignedBlock, 'text/lineHeight', 1.5);
|
|
499
|
+
|
|
500
|
+
// Adjust letter spacing (0.05 = 5% of font size)
|
|
501
|
+
engine.block.setFloat(alignedBlock, 'text/letterSpacing', 0.05);
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
Horizontal alignment options include 'Left', 'Center', 'Right', and 'Auto'. Line height is a multiplier of the font size (1.5 = 150%), and letter spacing is a proportion of the font size.
|
|
505
|
+
|
|
506
|
+
## Toggle Bold and Italic
|
|
507
|
+
|
|
508
|
+
We use convenience methods to toggle bold and italic formatting. These methods switch between the normal and formatted states.
|
|
509
|
+
|
|
510
|
+
```typescript highlight-toggle-bold-italic
|
|
511
|
+
// Create a text block demonstrating bold/italic toggle
|
|
512
|
+
const toggleBlock = engine.block.create('text');
|
|
513
|
+
engine.block.appendChild(page, toggleBlock);
|
|
514
|
+
engine.block.replaceText(toggleBlock, 'Toggle Bold and Italic');
|
|
515
|
+
|
|
516
|
+
// Position below case block
|
|
517
|
+
engine.block.setPositionX(toggleBlock, margin);
|
|
518
|
+
engine.block.setPositionY(toggleBlock, margin + lineSpacing * 4);
|
|
519
|
+
engine.block.setWidthMode(toggleBlock, 'Auto');
|
|
520
|
+
engine.block.setHeightMode(toggleBlock, 'Auto');
|
|
521
|
+
engine.block.setTextFontSize(toggleBlock, fontSize);
|
|
522
|
+
|
|
523
|
+
// Set a font that supports bold/italic variants
|
|
524
|
+
const robotoTypeface = {
|
|
525
|
+
name: 'Roboto',
|
|
526
|
+
fonts: [
|
|
527
|
+
{
|
|
528
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Regular.ttf',
|
|
529
|
+
subFamily: 'Regular',
|
|
530
|
+
weight: 'normal' as const,
|
|
531
|
+
style: 'normal' as const
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Bold.ttf',
|
|
535
|
+
subFamily: 'Bold',
|
|
536
|
+
weight: 'bold' as const,
|
|
537
|
+
style: 'normal' as const
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
uri: 'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Italic.ttf',
|
|
541
|
+
subFamily: 'Italic',
|
|
542
|
+
weight: 'normal' as const,
|
|
543
|
+
style: 'italic' as const
|
|
544
|
+
}
|
|
545
|
+
]
|
|
546
|
+
};
|
|
547
|
+
engine.block.setFont(
|
|
548
|
+
toggleBlock,
|
|
549
|
+
'https://cdn.img.ly/packages/imgly/cesdk-js/latest/assets/extensions/ly.img.cesdk.fonts/fonts/Roboto/Roboto-Regular.ttf',
|
|
550
|
+
robotoTypeface
|
|
551
|
+
);
|
|
552
|
+
|
|
553
|
+
// Toggle bold for "Bold" (7-11)
|
|
554
|
+
engine.block.toggleBoldFont(toggleBlock, 7, 11);
|
|
555
|
+
|
|
556
|
+
// Toggle italic for "Italic" (16-22)
|
|
557
|
+
engine.block.toggleItalicFont(toggleBlock, 16, 22);
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
The `toggleBoldFont()` and `toggleItalicFont()` methods check if the font supports the variant before toggling. Use `canToggleBoldFont()` and `canToggleItalicFont()` to verify availability.
|
|
561
|
+
|
|
562
|
+
## Modify Text Content
|
|
563
|
+
|
|
564
|
+
We replace or remove text using range-based operations. The `replaceText()` method substitutes text at specific positions while preserving surrounding formatting.
|
|
565
|
+
|
|
566
|
+
```typescript highlight-modify-text
|
|
567
|
+
// Create a text block to demonstrate text modification
|
|
568
|
+
const modifyBlock = engine.block.create('text');
|
|
569
|
+
engine.block.appendChild(page, modifyBlock);
|
|
570
|
+
engine.block.replaceText(modifyBlock, 'Hello World');
|
|
571
|
+
|
|
572
|
+
// Position below toggle block
|
|
573
|
+
engine.block.setPositionX(modifyBlock, margin);
|
|
574
|
+
engine.block.setPositionY(modifyBlock, margin + lineSpacing * 5);
|
|
575
|
+
engine.block.setWidthMode(modifyBlock, 'Auto');
|
|
576
|
+
engine.block.setHeightMode(modifyBlock, 'Auto');
|
|
577
|
+
engine.block.setTextFontSize(modifyBlock, fontSize);
|
|
578
|
+
|
|
579
|
+
// Replace "World" with "CE.SDK" (range 6-11)
|
|
580
|
+
engine.block.replaceText(modifyBlock, 'CE.SDK', 6, 11);
|
|
581
|
+
// Result: "Hello CE.SDK"
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
When range parameters are omitted, `replaceText()` replaces the entire text content. The `removeText()` method deletes text within a specified range.
|
|
585
|
+
|
|
586
|
+
## Troubleshooting
|
|
587
|
+
|
|
588
|
+
### Text Not Displaying
|
|
589
|
+
|
|
590
|
+
- Verify text content is set with `replaceText()` not `setString()` for text property
|
|
591
|
+
- Check the block is added to the page hierarchy with `appendChild()`
|
|
592
|
+
- Ensure the text block has sufficient width for content to render
|
|
593
|
+
|
|
594
|
+
### Font Not Loading
|
|
595
|
+
|
|
596
|
+
- Verify the font URI is accessible and returns a valid font file
|
|
597
|
+
- Check that the typeface configuration matches the font file's metadata
|
|
598
|
+
- Confirm the font format is supported (TTF, OTF, WOFF, WOFF2)
|
|
599
|
+
|
|
600
|
+
### Range Styling Not Applying
|
|
601
|
+
|
|
602
|
+
- Verify range indices are valid UTF-16 code unit positions
|
|
603
|
+
- Check that the `from` index is less than the `to` index
|
|
604
|
+
- Confirm the font supports the requested weight or style variant
|
|
605
|
+
|
|
606
|
+
## API Reference
|
|
607
|
+
|
|
608
|
+
| Method | Description |
|
|
609
|
+
| --------------------------------------------------------- | ----------------------------- |
|
|
610
|
+
| `engine.block.create('text')` | Create a new text block |
|
|
611
|
+
| `engine.block.replaceText(block, text, from, to)` | Set or replace text content |
|
|
612
|
+
| `engine.block.removeText(block, from, to)` | Remove text range |
|
|
613
|
+
| `engine.block.setFont(block, uri, typeface)` | Set font for entire block |
|
|
614
|
+
| `engine.block.setTextColor(block, color, from, to)` | Set color for range |
|
|
615
|
+
| `engine.block.setTextFontWeight(block, weight, from, to)` | Set font weight for range |
|
|
616
|
+
| `engine.block.setTextFontStyle(block, style, from, to)` | Set font style for range |
|
|
617
|
+
| `engine.block.setTextFontSize(block, size, from, to)` | Set font size for range |
|
|
618
|
+
| `engine.block.setTextCase(block, case, from, to)` | Set text case transformation |
|
|
619
|
+
| `engine.block.toggleBoldFont(block, from, to)` | Toggle bold weight |
|
|
620
|
+
| `engine.block.toggleItalicFont(block, from, to)` | Toggle italic style |
|
|
621
|
+
| `engine.block.setHeightMode(block, mode)` | Set height sizing mode |
|
|
622
|
+
| `engine.block.setWidthMode(block, mode)` | Set width sizing mode |
|
|
623
|
+
| `engine.block.setEnum(block, property, value)` | Set enum property (alignment) |
|
|
624
|
+
| `engine.block.setFloat(block, property, value)` | Set float property (spacing) |
|
|
625
|
+
|
|
626
|
+
## Next Steps
|
|
627
|
+
|
|
628
|
+
- [Style Text](./text/styling.md) - Apply fills, strokes, and backgrounds to text
|
|
629
|
+
- [Auto-Size Text](./text/auto-size.md) - Configure text blocks to resize dynamically
|
|
630
|
+
- [Adjust Text Spacing](./text/adjust-spacing.md) - Fine-tune letter and line spacing
|
|
631
|
+
- [Add Emojis](./text/emojis.md) - Display emoji characters with custom fonts
|
|
632
|
+
- [Add Text Effects](./text/effects.md) - Apply visual effects to text blocks
|
|
633
|
+
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## More Resources
|
|
637
|
+
|
|
638
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
639
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
640
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
641
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|