@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,794 @@
|
|
|
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 Shapes](./shapes.md) > [Create Shapes](./stickers-and-shapes/create-edit/create-shapes.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Create and configure geometric shapes programmatically using the Engine
|
|
8
|
+
API—rectangles, ellipses, stars, polygons, lines, and custom vector paths
|
|
9
|
+
combined with fills.
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
> **Reading time:** 15 minutes
|
|
14
|
+
>
|
|
15
|
+
> **Resources:**
|
|
16
|
+
>
|
|
17
|
+
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
18
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples)
|
|
19
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples)
|
|
20
|
+
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-stickers-and-shapes-create-shapes-browser/)
|
|
21
|
+
|
|
22
|
+
```typescript file=@cesdk_web_examples/guides-stickers-and-shapes-create-shapes-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
|
+
class Example implements EditorPlugin {
|
|
44
|
+
name = packageJson.name;
|
|
45
|
+
version = packageJson.version;
|
|
46
|
+
|
|
47
|
+
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
48
|
+
if (!cesdk) {
|
|
49
|
+
throw new Error('CE.SDK instance is required for this plugin');
|
|
50
|
+
}
|
|
51
|
+
await cesdk.addPlugin(new DesignEditorConfig());
|
|
52
|
+
|
|
53
|
+
// Add asset source plugins
|
|
54
|
+
await cesdk.addPlugin(new BlurAssetSource());
|
|
55
|
+
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
56
|
+
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
57
|
+
await cesdk.addPlugin(
|
|
58
|
+
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
59
|
+
);
|
|
60
|
+
await cesdk.addPlugin(
|
|
61
|
+
new DemoAssetSources({
|
|
62
|
+
include: [
|
|
63
|
+
'ly.img.templates.blank.*',
|
|
64
|
+
'ly.img.templates.presentation.*',
|
|
65
|
+
'ly.img.templates.print.*',
|
|
66
|
+
'ly.img.templates.social.*',
|
|
67
|
+
'ly.img.image.*'
|
|
68
|
+
]
|
|
69
|
+
})
|
|
70
|
+
);
|
|
71
|
+
await cesdk.addPlugin(new EffectsAssetSource());
|
|
72
|
+
await cesdk.addPlugin(new FiltersAssetSource());
|
|
73
|
+
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
74
|
+
await cesdk.addPlugin(new StickerAssetSource());
|
|
75
|
+
await cesdk.addPlugin(new TextAssetSource());
|
|
76
|
+
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
77
|
+
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
78
|
+
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
79
|
+
|
|
80
|
+
await cesdk.actions.run('scene.create', {
|
|
81
|
+
page: { width: 300, height: 200, unit: 'Pixel' }
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
const engine = cesdk.engine;
|
|
85
|
+
const page = engine.block.findByType('page')[0];
|
|
86
|
+
|
|
87
|
+
const testGraphic = engine.block.create('graphic');
|
|
88
|
+
engine.block.supportsShape(testGraphic); // Returns true
|
|
89
|
+
|
|
90
|
+
const testText = engine.block.create('text');
|
|
91
|
+
engine.block.supportsShape(testText); // Returns false
|
|
92
|
+
|
|
93
|
+
engine.block.destroy(testText);
|
|
94
|
+
engine.block.destroy(testGraphic);
|
|
95
|
+
|
|
96
|
+
const rectGraphic = engine.block.create('graphic');
|
|
97
|
+
const rectShape = engine.block.createShape('rect');
|
|
98
|
+
engine.block.setShape(rectGraphic, rectShape);
|
|
99
|
+
|
|
100
|
+
const redFill = engine.block.createFill('color');
|
|
101
|
+
engine.block.setColor(redFill, 'fill/color/value', {
|
|
102
|
+
r: 1.0,
|
|
103
|
+
g: 0.0,
|
|
104
|
+
b: 0.0,
|
|
105
|
+
a: 1.0
|
|
106
|
+
});
|
|
107
|
+
engine.block.setFill(rectGraphic, redFill);
|
|
108
|
+
|
|
109
|
+
engine.block.setWidth(rectGraphic, 64);
|
|
110
|
+
engine.block.setHeight(rectGraphic, 64);
|
|
111
|
+
engine.block.appendChild(page, rectGraphic);
|
|
112
|
+
engine.block.setPositionX(rectGraphic, 10);
|
|
113
|
+
engine.block.setPositionY(rectGraphic, 10);
|
|
114
|
+
|
|
115
|
+
const ellipseGraphic = engine.block.create('graphic');
|
|
116
|
+
const ellipseShape = engine.block.createShape('ellipse');
|
|
117
|
+
engine.block.setShape(ellipseGraphic, ellipseShape);
|
|
118
|
+
|
|
119
|
+
const gradientFill = engine.block.createFill('gradient/linear');
|
|
120
|
+
engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
|
|
121
|
+
{ color: { r: 0.2, g: 0.6, b: 0.9, a: 1.0 }, stop: 0.0 },
|
|
122
|
+
{ color: { r: 0.9, g: 0.3, b: 0.6, a: 1.0 }, stop: 1.0 }
|
|
123
|
+
]);
|
|
124
|
+
engine.block.setFill(ellipseGraphic, gradientFill);
|
|
125
|
+
|
|
126
|
+
engine.block.setWidth(ellipseGraphic, 64);
|
|
127
|
+
engine.block.setHeight(ellipseGraphic, 64);
|
|
128
|
+
engine.block.appendChild(page, ellipseGraphic);
|
|
129
|
+
engine.block.setPositionX(ellipseGraphic, 82);
|
|
130
|
+
engine.block.setPositionY(ellipseGraphic, 10);
|
|
131
|
+
|
|
132
|
+
// Discover what properties are available on a shape
|
|
133
|
+
const exampleStarShape = engine.block.createShape('star');
|
|
134
|
+
engine.block.findAllProperties(exampleStarShape);
|
|
135
|
+
// Returns: ['shape/star/points', 'shape/star/innerDiameter', 'type', ...]
|
|
136
|
+
engine.block.destroy(exampleStarShape);
|
|
137
|
+
|
|
138
|
+
const starGraphic = engine.block.create('graphic');
|
|
139
|
+
const starShape = engine.block.createShape('star');
|
|
140
|
+
engine.block.setShape(starGraphic, starShape);
|
|
141
|
+
|
|
142
|
+
engine.block.setInt(starShape, 'shape/star/points', 5);
|
|
143
|
+
engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
|
|
144
|
+
|
|
145
|
+
const yellowFill = engine.block.createFill('color');
|
|
146
|
+
engine.block.setColor(yellowFill, 'fill/color/value', {
|
|
147
|
+
r: 1.0,
|
|
148
|
+
g: 0.8,
|
|
149
|
+
b: 0.0,
|
|
150
|
+
a: 1.0
|
|
151
|
+
});
|
|
152
|
+
engine.block.setFill(starGraphic, yellowFill);
|
|
153
|
+
|
|
154
|
+
engine.block.setWidth(starGraphic, 64);
|
|
155
|
+
engine.block.setHeight(starGraphic, 64);
|
|
156
|
+
engine.block.appendChild(page, starGraphic);
|
|
157
|
+
engine.block.setPositionX(starGraphic, 154);
|
|
158
|
+
engine.block.setPositionY(starGraphic, 10);
|
|
159
|
+
|
|
160
|
+
const polygonGraphic = engine.block.create('graphic');
|
|
161
|
+
const polygonShape = engine.block.createShape('polygon');
|
|
162
|
+
engine.block.setShape(polygonGraphic, polygonShape);
|
|
163
|
+
|
|
164
|
+
engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
|
|
165
|
+
|
|
166
|
+
const greenFill = engine.block.createFill('color');
|
|
167
|
+
engine.block.setColor(greenFill, 'fill/color/value', {
|
|
168
|
+
r: 0.2,
|
|
169
|
+
g: 0.8,
|
|
170
|
+
b: 0.3,
|
|
171
|
+
a: 1.0
|
|
172
|
+
});
|
|
173
|
+
engine.block.setFill(polygonGraphic, greenFill);
|
|
174
|
+
|
|
175
|
+
engine.block.setWidth(polygonGraphic, 64);
|
|
176
|
+
engine.block.setHeight(polygonGraphic, 64);
|
|
177
|
+
engine.block.appendChild(page, polygonGraphic);
|
|
178
|
+
engine.block.setPositionX(polygonGraphic, 226);
|
|
179
|
+
engine.block.setPositionY(polygonGraphic, 10);
|
|
180
|
+
|
|
181
|
+
const lineGraphic = engine.block.create('graphic');
|
|
182
|
+
const lineShape = engine.block.createShape('line');
|
|
183
|
+
engine.block.setShape(lineGraphic, lineShape);
|
|
184
|
+
|
|
185
|
+
const purpleFill = engine.block.createFill('color');
|
|
186
|
+
engine.block.setColor(purpleFill, 'fill/color/value', {
|
|
187
|
+
r: 0.6,
|
|
188
|
+
g: 0.2,
|
|
189
|
+
b: 0.9,
|
|
190
|
+
a: 1.0
|
|
191
|
+
});
|
|
192
|
+
engine.block.setFill(lineGraphic, purpleFill);
|
|
193
|
+
|
|
194
|
+
engine.block.setWidth(lineGraphic, 64);
|
|
195
|
+
engine.block.setHeight(lineGraphic, 10);
|
|
196
|
+
engine.block.appendChild(page, lineGraphic);
|
|
197
|
+
engine.block.setPositionX(lineGraphic, 10);
|
|
198
|
+
engine.block.setPositionY(lineGraphic, 109);
|
|
199
|
+
|
|
200
|
+
const vectorPathGraphic = engine.block.create('graphic');
|
|
201
|
+
const vectorPathShape = engine.block.createShape('vector_path');
|
|
202
|
+
engine.block.setShape(vectorPathGraphic, vectorPathShape);
|
|
203
|
+
|
|
204
|
+
engine.block.setString(
|
|
205
|
+
vectorPathShape,
|
|
206
|
+
'shape/vector_path/path',
|
|
207
|
+
'M 0,0 L 100,50 L 0,100 Z'
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
const orangeFill = engine.block.createFill('color');
|
|
211
|
+
engine.block.setColor(orangeFill, 'fill/color/value', {
|
|
212
|
+
r: 1.0,
|
|
213
|
+
g: 0.5,
|
|
214
|
+
b: 0.0,
|
|
215
|
+
a: 1.0
|
|
216
|
+
});
|
|
217
|
+
engine.block.setFill(vectorPathGraphic, orangeFill);
|
|
218
|
+
|
|
219
|
+
engine.block.setWidth(vectorPathGraphic, 64);
|
|
220
|
+
engine.block.setHeight(vectorPathGraphic, 64);
|
|
221
|
+
engine.block.appendChild(page, vectorPathGraphic);
|
|
222
|
+
engine.block.setPositionX(vectorPathGraphic, 82);
|
|
223
|
+
engine.block.setPositionY(vectorPathGraphic, 82);
|
|
224
|
+
|
|
225
|
+
const roundedRectGraphic = engine.block.create('graphic');
|
|
226
|
+
const roundedRectShape = engine.block.createShape('rect');
|
|
227
|
+
engine.block.setShape(roundedRectGraphic, roundedRectShape);
|
|
228
|
+
|
|
229
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 5.0);
|
|
230
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 5.0);
|
|
231
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 5.0);
|
|
232
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 5.0);
|
|
233
|
+
|
|
234
|
+
const cyanFill = engine.block.createFill('color');
|
|
235
|
+
engine.block.setColor(cyanFill, 'fill/color/value', {
|
|
236
|
+
r: 0.0,
|
|
237
|
+
g: 0.8,
|
|
238
|
+
b: 0.8,
|
|
239
|
+
a: 1.0
|
|
240
|
+
});
|
|
241
|
+
engine.block.setFill(roundedRectGraphic, cyanFill);
|
|
242
|
+
|
|
243
|
+
engine.block.setWidth(roundedRectGraphic, 64);
|
|
244
|
+
engine.block.setHeight(roundedRectGraphic, 64);
|
|
245
|
+
engine.block.appendChild(page, roundedRectGraphic);
|
|
246
|
+
engine.block.setPositionX(roundedRectGraphic, 154);
|
|
247
|
+
engine.block.setPositionY(roundedRectGraphic, 82);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
export default Example;
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Understanding Shapes and Graphic Blocks
|
|
255
|
+
|
|
256
|
+
### What Are Shapes?
|
|
257
|
+
|
|
258
|
+
Shapes in CE.SDK are geometric definitions—rectangles, ellipses, stars, and other forms—that exist as independent objects until attached to graphic blocks. We create shapes using type identifiers like `'rect'` or `'ellipse'`, and they define the geometry while remaining invisible until combined with fills.
|
|
259
|
+
|
|
260
|
+
Shapes and fills are independent. Change a shape from a rectangle to a star while keeping the same fill, or change a fill from red to blue while maintaining the rectangular shape.
|
|
261
|
+
|
|
262
|
+
### The Graphic Block System
|
|
263
|
+
|
|
264
|
+
Graphic blocks serve as containers that bring shapes and fills together. When we create a graphic block, it starts empty—no shape, no fill, and therefore invisible. We then apply both a shape and a fill to make it appear on the canvas.
|
|
265
|
+
|
|
266
|
+
Here's what a graphic block can hold:
|
|
267
|
+
|
|
268
|
+
- **Shape**: The geometric form (rectangle, ellipse, star, polygon, line, or vector path)
|
|
269
|
+
- **Fill**: The color, gradient, image, or video content that makes the shape visible
|
|
270
|
+
- **Effects**: Optional filters, blur, or shadows applied to the filled shape
|
|
271
|
+
- **Transform**: Position, rotation, and scale properties
|
|
272
|
+
|
|
273
|
+
### Available Shape Types
|
|
274
|
+
|
|
275
|
+
CE.SDK provides six built-in shape types:
|
|
276
|
+
|
|
277
|
+
- **Rectangle** (`'rect'`): Basic rectangular shapes with optional rounded corners
|
|
278
|
+
- **Ellipse** (`'ellipse'`): Circular and oval shapes
|
|
279
|
+
- **Star** (`'star'`): Star shapes with configurable points and inner radius
|
|
280
|
+
- **Polygon** (`'polygon'`): Regular polygons with configurable number of sides
|
|
281
|
+
- **Line** (`'line'`): Straight lines spanning the block's dimensions
|
|
282
|
+
- **Vector Path** (`'vector_path'`): Custom shapes using SVG path data
|
|
283
|
+
|
|
284
|
+
You can use short type names like `'rect'` or fully qualified names like `'//ly.img.ubq/shape/rect'`—both work identically.
|
|
285
|
+
|
|
286
|
+
## Checking Shape Support
|
|
287
|
+
|
|
288
|
+
Before applying shapes, we verify that a block type supports them. Not all block types can have shapes—graphic blocks support shapes, but text blocks, scenes, and pages don't.
|
|
289
|
+
|
|
290
|
+
```typescript highlight-check-shape-support
|
|
291
|
+
const testGraphic = engine.block.create('graphic');
|
|
292
|
+
engine.block.supportsShape(testGraphic); // Returns true
|
|
293
|
+
|
|
294
|
+
const testText = engine.block.create('text');
|
|
295
|
+
engine.block.supportsShape(testText); // Returns false
|
|
296
|
+
|
|
297
|
+
engine.block.destroy(testText);
|
|
298
|
+
engine.block.destroy(testGraphic);
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
We always check `supportsShape()` to prevent errors when working with unknown or dynamic block types. Graphic blocks return `true`, while text blocks return `false`.
|
|
302
|
+
|
|
303
|
+
## Creating Basic Shapes
|
|
304
|
+
|
|
305
|
+
### Creating a Rectangle
|
|
306
|
+
|
|
307
|
+
We create a graphic block, apply a rectangle shape, and add a fill to make it visible:
|
|
308
|
+
|
|
309
|
+
```typescript highlight-create-rectangle
|
|
310
|
+
const rectGraphic = engine.block.create('graphic');
|
|
311
|
+
const rectShape = engine.block.createShape('rect');
|
|
312
|
+
engine.block.setShape(rectGraphic, rectShape);
|
|
313
|
+
|
|
314
|
+
const redFill = engine.block.createFill('color');
|
|
315
|
+
engine.block.setColor(redFill, 'fill/color/value', {
|
|
316
|
+
r: 1.0,
|
|
317
|
+
g: 0.0,
|
|
318
|
+
b: 0.0,
|
|
319
|
+
a: 1.0
|
|
320
|
+
});
|
|
321
|
+
engine.block.setFill(rectGraphic, redFill);
|
|
322
|
+
|
|
323
|
+
engine.block.setWidth(rectGraphic, 64);
|
|
324
|
+
engine.block.setHeight(rectGraphic, 64);
|
|
325
|
+
engine.block.appendChild(page, rectGraphic);
|
|
326
|
+
engine.block.setPositionX(rectGraphic, 10);
|
|
327
|
+
engine.block.setPositionY(rectGraphic, 10);
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
Shapes require fills to become visible. The shape defines the geometry while the fill provides the visual content.
|
|
331
|
+
|
|
332
|
+
### Creating Other Shape Types
|
|
333
|
+
|
|
334
|
+
Creating other shapes follows the same pattern with different shape types and properties.
|
|
335
|
+
|
|
336
|
+
Ellipse with gradient fill:
|
|
337
|
+
|
|
338
|
+
```typescript highlight-create-ellipse
|
|
339
|
+
const ellipseGraphic = engine.block.create('graphic');
|
|
340
|
+
const ellipseShape = engine.block.createShape('ellipse');
|
|
341
|
+
engine.block.setShape(ellipseGraphic, ellipseShape);
|
|
342
|
+
|
|
343
|
+
const gradientFill = engine.block.createFill('gradient/linear');
|
|
344
|
+
engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
|
|
345
|
+
{ color: { r: 0.2, g: 0.6, b: 0.9, a: 1.0 }, stop: 0.0 },
|
|
346
|
+
{ color: { r: 0.9, g: 0.3, b: 0.6, a: 1.0 }, stop: 1.0 }
|
|
347
|
+
]);
|
|
348
|
+
engine.block.setFill(ellipseGraphic, gradientFill);
|
|
349
|
+
|
|
350
|
+
engine.block.setWidth(ellipseGraphic, 64);
|
|
351
|
+
engine.block.setHeight(ellipseGraphic, 64);
|
|
352
|
+
engine.block.appendChild(page, ellipseGraphic);
|
|
353
|
+
engine.block.setPositionX(ellipseGraphic, 82);
|
|
354
|
+
engine.block.setPositionY(ellipseGraphic, 10);
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Star with configurable points:
|
|
358
|
+
|
|
359
|
+
```typescript highlight-create-star
|
|
360
|
+
const starGraphic = engine.block.create('graphic');
|
|
361
|
+
const starShape = engine.block.createShape('star');
|
|
362
|
+
engine.block.setShape(starGraphic, starShape);
|
|
363
|
+
|
|
364
|
+
engine.block.setInt(starShape, 'shape/star/points', 5);
|
|
365
|
+
engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
|
|
366
|
+
|
|
367
|
+
const yellowFill = engine.block.createFill('color');
|
|
368
|
+
engine.block.setColor(yellowFill, 'fill/color/value', {
|
|
369
|
+
r: 1.0,
|
|
370
|
+
g: 0.8,
|
|
371
|
+
b: 0.0,
|
|
372
|
+
a: 1.0
|
|
373
|
+
});
|
|
374
|
+
engine.block.setFill(starGraphic, yellowFill);
|
|
375
|
+
|
|
376
|
+
engine.block.setWidth(starGraphic, 64);
|
|
377
|
+
engine.block.setHeight(starGraphic, 64);
|
|
378
|
+
engine.block.appendChild(page, starGraphic);
|
|
379
|
+
engine.block.setPositionX(starGraphic, 154);
|
|
380
|
+
engine.block.setPositionY(starGraphic, 10);
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
Polygon with custom number of sides:
|
|
384
|
+
|
|
385
|
+
```typescript highlight-create-polygon
|
|
386
|
+
const polygonGraphic = engine.block.create('graphic');
|
|
387
|
+
const polygonShape = engine.block.createShape('polygon');
|
|
388
|
+
engine.block.setShape(polygonGraphic, polygonShape);
|
|
389
|
+
|
|
390
|
+
engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
|
|
391
|
+
|
|
392
|
+
const greenFill = engine.block.createFill('color');
|
|
393
|
+
engine.block.setColor(greenFill, 'fill/color/value', {
|
|
394
|
+
r: 0.2,
|
|
395
|
+
g: 0.8,
|
|
396
|
+
b: 0.3,
|
|
397
|
+
a: 1.0
|
|
398
|
+
});
|
|
399
|
+
engine.block.setFill(polygonGraphic, greenFill);
|
|
400
|
+
|
|
401
|
+
engine.block.setWidth(polygonGraphic, 64);
|
|
402
|
+
engine.block.setHeight(polygonGraphic, 64);
|
|
403
|
+
engine.block.appendChild(page, polygonGraphic);
|
|
404
|
+
engine.block.setPositionX(polygonGraphic, 226);
|
|
405
|
+
engine.block.setPositionY(polygonGraphic, 10);
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
Line with stroke styling:
|
|
409
|
+
|
|
410
|
+
```typescript highlight-create-line
|
|
411
|
+
const lineGraphic = engine.block.create('graphic');
|
|
412
|
+
const lineShape = engine.block.createShape('line');
|
|
413
|
+
engine.block.setShape(lineGraphic, lineShape);
|
|
414
|
+
|
|
415
|
+
const purpleFill = engine.block.createFill('color');
|
|
416
|
+
engine.block.setColor(purpleFill, 'fill/color/value', {
|
|
417
|
+
r: 0.6,
|
|
418
|
+
g: 0.2,
|
|
419
|
+
b: 0.9,
|
|
420
|
+
a: 1.0
|
|
421
|
+
});
|
|
422
|
+
engine.block.setFill(lineGraphic, purpleFill);
|
|
423
|
+
|
|
424
|
+
engine.block.setWidth(lineGraphic, 64);
|
|
425
|
+
engine.block.setHeight(lineGraphic, 10);
|
|
426
|
+
engine.block.appendChild(page, lineGraphic);
|
|
427
|
+
engine.block.setPositionX(lineGraphic, 10);
|
|
428
|
+
engine.block.setPositionY(lineGraphic, 109);
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
## Configuring Shape Properties
|
|
432
|
+
|
|
433
|
+
### Discovering Properties
|
|
434
|
+
|
|
435
|
+
Each shape type has unique properties that control its appearance. We discover these properties using `findAllProperties()`:
|
|
436
|
+
|
|
437
|
+
```typescript highlight-discover-properties
|
|
438
|
+
// Discover what properties are available on a shape
|
|
439
|
+
const exampleStarShape = engine.block.createShape('star');
|
|
440
|
+
engine.block.findAllProperties(exampleStarShape);
|
|
441
|
+
// Returns: ['shape/star/points', 'shape/star/innerDiameter', 'type', ...]
|
|
442
|
+
engine.block.destroy(exampleStarShape);
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
This shows what can be configured for each shape type.
|
|
446
|
+
|
|
447
|
+
### Rectangle: Corner Radius
|
|
448
|
+
|
|
449
|
+
Rectangles support independent corner radius values:
|
|
450
|
+
|
|
451
|
+
```typescript highlight-configure-properties
|
|
452
|
+
const roundedRectGraphic = engine.block.create('graphic');
|
|
453
|
+
const roundedRectShape = engine.block.createShape('rect');
|
|
454
|
+
engine.block.setShape(roundedRectGraphic, roundedRectShape);
|
|
455
|
+
|
|
456
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 5.0);
|
|
457
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 5.0);
|
|
458
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 5.0);
|
|
459
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 5.0);
|
|
460
|
+
|
|
461
|
+
const cyanFill = engine.block.createFill('color');
|
|
462
|
+
engine.block.setColor(cyanFill, 'fill/color/value', {
|
|
463
|
+
r: 0.0,
|
|
464
|
+
g: 0.8,
|
|
465
|
+
b: 0.8,
|
|
466
|
+
a: 1.0
|
|
467
|
+
});
|
|
468
|
+
engine.block.setFill(roundedRectGraphic, cyanFill);
|
|
469
|
+
|
|
470
|
+
engine.block.setWidth(roundedRectGraphic, 64);
|
|
471
|
+
engine.block.setHeight(roundedRectGraphic, 64);
|
|
472
|
+
engine.block.appendChild(page, roundedRectGraphic);
|
|
473
|
+
engine.block.setPositionX(roundedRectGraphic, 154);
|
|
474
|
+
engine.block.setPositionY(roundedRectGraphic, 82);
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
Set each corner independently using `cornerRadiusTL`, `cornerRadiusTR`, `cornerRadiusBL`, and `cornerRadiusBR` (values in pixels).
|
|
478
|
+
|
|
479
|
+
### Star: Points and Inner Diameter
|
|
480
|
+
|
|
481
|
+
Configure star shapes using two properties:
|
|
482
|
+
|
|
483
|
+
```typescript highlight-create-star
|
|
484
|
+
const starGraphic = engine.block.create('graphic');
|
|
485
|
+
const starShape = engine.block.createShape('star');
|
|
486
|
+
engine.block.setShape(starGraphic, starShape);
|
|
487
|
+
|
|
488
|
+
engine.block.setInt(starShape, 'shape/star/points', 5);
|
|
489
|
+
engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
|
|
490
|
+
|
|
491
|
+
const yellowFill = engine.block.createFill('color');
|
|
492
|
+
engine.block.setColor(yellowFill, 'fill/color/value', {
|
|
493
|
+
r: 1.0,
|
|
494
|
+
g: 0.8,
|
|
495
|
+
b: 0.0,
|
|
496
|
+
a: 1.0
|
|
497
|
+
});
|
|
498
|
+
engine.block.setFill(starGraphic, yellowFill);
|
|
499
|
+
|
|
500
|
+
engine.block.setWidth(starGraphic, 64);
|
|
501
|
+
engine.block.setHeight(starGraphic, 64);
|
|
502
|
+
engine.block.appendChild(page, starGraphic);
|
|
503
|
+
engine.block.setPositionX(starGraphic, 154);
|
|
504
|
+
engine.block.setPositionY(starGraphic, 10);
|
|
505
|
+
```
|
|
506
|
+
|
|
507
|
+
The `points` property (minimum 3) sets the number of points. The `innerDiameter` (0.0 to 1.0) controls point sharpness.
|
|
508
|
+
|
|
509
|
+
### Polygon: Number of Sides
|
|
510
|
+
|
|
511
|
+
Configure polygons by setting the number of sides:
|
|
512
|
+
|
|
513
|
+
```typescript highlight-create-polygon
|
|
514
|
+
const polygonGraphic = engine.block.create('graphic');
|
|
515
|
+
const polygonShape = engine.block.createShape('polygon');
|
|
516
|
+
engine.block.setShape(polygonGraphic, polygonShape);
|
|
517
|
+
|
|
518
|
+
engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
|
|
519
|
+
|
|
520
|
+
const greenFill = engine.block.createFill('color');
|
|
521
|
+
engine.block.setColor(greenFill, 'fill/color/value', {
|
|
522
|
+
r: 0.2,
|
|
523
|
+
g: 0.8,
|
|
524
|
+
b: 0.3,
|
|
525
|
+
a: 1.0
|
|
526
|
+
});
|
|
527
|
+
engine.block.setFill(polygonGraphic, greenFill);
|
|
528
|
+
|
|
529
|
+
engine.block.setWidth(polygonGraphic, 64);
|
|
530
|
+
engine.block.setHeight(polygonGraphic, 64);
|
|
531
|
+
engine.block.appendChild(page, polygonGraphic);
|
|
532
|
+
engine.block.setPositionX(polygonGraphic, 226);
|
|
533
|
+
engine.block.setPositionY(polygonGraphic, 10);
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
### Vector Paths: Custom SVG Paths
|
|
537
|
+
|
|
538
|
+
Create custom shapes using SVG path data:
|
|
539
|
+
|
|
540
|
+
```typescript highlight-create-vector-path
|
|
541
|
+
const vectorPathGraphic = engine.block.create('graphic');
|
|
542
|
+
const vectorPathShape = engine.block.createShape('vector_path');
|
|
543
|
+
engine.block.setShape(vectorPathGraphic, vectorPathShape);
|
|
544
|
+
|
|
545
|
+
engine.block.setString(
|
|
546
|
+
vectorPathShape,
|
|
547
|
+
'shape/vector_path/path',
|
|
548
|
+
'M 0,0 L 100,50 L 0,100 Z'
|
|
549
|
+
);
|
|
550
|
+
|
|
551
|
+
const orangeFill = engine.block.createFill('color');
|
|
552
|
+
engine.block.setColor(orangeFill, 'fill/color/value', {
|
|
553
|
+
r: 1.0,
|
|
554
|
+
g: 0.5,
|
|
555
|
+
b: 0.0,
|
|
556
|
+
a: 1.0
|
|
557
|
+
});
|
|
558
|
+
engine.block.setFill(vectorPathGraphic, orangeFill);
|
|
559
|
+
|
|
560
|
+
engine.block.setWidth(vectorPathGraphic, 64);
|
|
561
|
+
engine.block.setHeight(vectorPathGraphic, 64);
|
|
562
|
+
engine.block.appendChild(page, vectorPathGraphic);
|
|
563
|
+
engine.block.setPositionX(vectorPathGraphic, 82);
|
|
564
|
+
engine.block.setPositionY(vectorPathGraphic, 82);
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
Vector paths support single-path SVG data only. For complex multi-path graphics, use image fills with SVG files.
|
|
568
|
+
|
|
569
|
+
## Combining Shapes with Fills
|
|
570
|
+
|
|
571
|
+
### Why Fills Matter
|
|
572
|
+
|
|
573
|
+
Shapes define geometry but remain invisible without fills. Fills provide the visual content that makes shapes visible on the canvas.
|
|
574
|
+
|
|
575
|
+
### Shape and Fill Independence
|
|
576
|
+
|
|
577
|
+
Shapes and fills operate independently—change one without affecting the other. We can replace a shape while keeping its fill, or change a fill while maintaining the shape geometry. This enables flexible design workflows where shapes and fills can be modified separately.
|
|
578
|
+
|
|
579
|
+
For comprehensive fill system documentation, see the [Fills Overview](./fills/overview.md) guide.
|
|
580
|
+
|
|
581
|
+
## Managing Shapes
|
|
582
|
+
|
|
583
|
+
### Retrieving Shapes
|
|
584
|
+
|
|
585
|
+
We can access the current shape on any graphic block:
|
|
586
|
+
|
|
587
|
+
```typescript
|
|
588
|
+
// Get the shape ID from a graphic block
|
|
589
|
+
const shapeId = engine.block.getShape(graphic);
|
|
590
|
+
|
|
591
|
+
// Check what type of shape it is
|
|
592
|
+
const shapeType = engine.block.getType(shapeId);
|
|
593
|
+
// Returns: '//ly.img.ubq/shape/rect' or similar
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
Use this pattern to inspect and modify existing shapes.
|
|
597
|
+
|
|
598
|
+
### Replacing Shapes
|
|
599
|
+
|
|
600
|
+
Replace shapes by applying the new shape first, then destroying the old one:
|
|
601
|
+
|
|
602
|
+
```typescript
|
|
603
|
+
const oldShape = engine.block.getShape(graphic);
|
|
604
|
+
const newShape = engine.block.createShape('ellipse');
|
|
605
|
+
|
|
606
|
+
engine.block.setShape(graphic, newShape);
|
|
607
|
+
engine.block.destroy(oldShape);
|
|
608
|
+
```
|
|
609
|
+
|
|
610
|
+
Always destroy old shapes after replacement to prevent memory leaks.
|
|
611
|
+
|
|
612
|
+
### Positioning and Transforms
|
|
613
|
+
|
|
614
|
+
Transforms apply to the graphic block. The shape geometry scales automatically:
|
|
615
|
+
|
|
616
|
+
```typescript
|
|
617
|
+
const page = engine.block.findByType('page')[0];
|
|
618
|
+
engine.block.appendChild(page, graphic);
|
|
619
|
+
|
|
620
|
+
engine.block.setPositionX(graphic, 100);
|
|
621
|
+
engine.block.setPositionY(graphic, 100);
|
|
622
|
+
engine.block.setRotation(graphic, Math.PI / 4);
|
|
623
|
+
engine.block.setWidth(graphic, 200);
|
|
624
|
+
engine.block.setHeight(graphic, 200);
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
## Troubleshooting
|
|
628
|
+
|
|
629
|
+
### Shape Not Visible
|
|
630
|
+
|
|
631
|
+
If your shape doesn't appear, verify these requirements:
|
|
632
|
+
|
|
633
|
+
**Check fill is applied:**
|
|
634
|
+
|
|
635
|
+
```typescript
|
|
636
|
+
const fill = engine.block.getFill(graphic);
|
|
637
|
+
if (!fill) {
|
|
638
|
+
const colorFill = engine.block.createFill('color');
|
|
639
|
+
engine.block.setColor(colorFill, 'fill/color/value', {
|
|
640
|
+
r: 1,
|
|
641
|
+
g: 0,
|
|
642
|
+
b: 0,
|
|
643
|
+
a: 1
|
|
644
|
+
});
|
|
645
|
+
engine.block.setFill(graphic, colorFill);
|
|
646
|
+
}
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
**Check dimensions:**
|
|
650
|
+
|
|
651
|
+
```typescript
|
|
652
|
+
const width = engine.block.getWidth(graphic);
|
|
653
|
+
const height = engine.block.getHeight(graphic);
|
|
654
|
+
if (width === 0 || height === 0) {
|
|
655
|
+
engine.block.setWidth(graphic, 100);
|
|
656
|
+
engine.block.setHeight(graphic, 100);
|
|
657
|
+
}
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
**Check scene hierarchy:**
|
|
661
|
+
|
|
662
|
+
```typescript
|
|
663
|
+
const parent = engine.block.getParent(graphic);
|
|
664
|
+
if (!parent) {
|
|
665
|
+
const page = engine.block.findByType('page')[0];
|
|
666
|
+
engine.block.appendChild(page, graphic);
|
|
667
|
+
}
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### Cannot Apply Shape
|
|
671
|
+
|
|
672
|
+
Verify the block type supports shapes:
|
|
673
|
+
|
|
674
|
+
```typescript
|
|
675
|
+
if (!engine.block.supportsShape(blockId)) {
|
|
676
|
+
console.error('This block type does not support shapes');
|
|
677
|
+
// Use a graphic block instead
|
|
678
|
+
const graphic = engine.block.create('graphic');
|
|
679
|
+
}
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
### Shape Properties Not Changing
|
|
683
|
+
|
|
684
|
+
Use the correct setter method for each property type:
|
|
685
|
+
|
|
686
|
+
```typescript
|
|
687
|
+
// Integer properties
|
|
688
|
+
engine.block.setInt(shape, 'shape/polygon/sides', 5);
|
|
689
|
+
|
|
690
|
+
// Float properties
|
|
691
|
+
engine.block.setFloat(shape, 'shape/star/innerDiameter', 0.5);
|
|
692
|
+
|
|
693
|
+
// String properties
|
|
694
|
+
engine.block.setString(shape, 'shape/vector_path/path', 'M 0,0 L 100,100');
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
List available properties first if you're unsure:
|
|
698
|
+
|
|
699
|
+
```typescript
|
|
700
|
+
const properties = engine.block.findAllProperties(shape);
|
|
701
|
+
console.log('Available properties:', properties);
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
## API Reference
|
|
705
|
+
|
|
706
|
+
| Method | Description | Returns |
|
|
707
|
+
| ------------------------------------- | ------------------------------ | ----------------- |
|
|
708
|
+
| `block.create('graphic')` | Create a new graphic block | Block ID (number) |
|
|
709
|
+
| `block.createShape(type)` | Create shape of specified type | Shape ID (number) |
|
|
710
|
+
| `block.setShape(block, shape)` | Apply shape to graphic block | void |
|
|
711
|
+
| `block.getShape(block)` | Get shape attached to block | Shape ID (number) |
|
|
712
|
+
| `block.supportsShape(block)` | Check if block supports shapes | boolean |
|
|
713
|
+
| `block.getType(shape)` | Get shape type identifier | string |
|
|
714
|
+
| `block.findAllProperties(shape)` | List available properties | string\[] |
|
|
715
|
+
| `block.setInt(shape, prop, value)` | Set integer property | void |
|
|
716
|
+
| `block.setFloat(shape, prop, value)` | Set float property | void |
|
|
717
|
+
| `block.setString(shape, prop, value)` | Set string property | void |
|
|
718
|
+
| `block.destroy(shape)` | Destroy shape and free memory | void |
|
|
719
|
+
|
|
720
|
+
## Ellipse Type
|
|
721
|
+
|
|
722
|
+
A shape block representing an ellipse.
|
|
723
|
+
|
|
724
|
+
This section describes the properties available for the **Ellipse Type** (`//ly.img.ubq/shape/ellipse`) block type.
|
|
725
|
+
|
|
726
|
+
| Property | Type | Default | Description |
|
|
727
|
+
| -------------------------- | ---- | ------- | ----------- |
|
|
728
|
+
| _(no specific properties)_ | | | |
|
|
729
|
+
|
|
730
|
+
## Line Type
|
|
731
|
+
|
|
732
|
+
A shape block representing a line.
|
|
733
|
+
|
|
734
|
+
This section describes the properties available for the **Line Type** (`//ly.img.ubq/shape/line`) block type.
|
|
735
|
+
|
|
736
|
+
| Property | Type | Default | Description |
|
|
737
|
+
| -------------------------- | ---- | ------- | ----------- |
|
|
738
|
+
| _(no specific properties)_ | | | |
|
|
739
|
+
|
|
740
|
+
## Polygon Type
|
|
741
|
+
|
|
742
|
+
A shape block representing a polygon.
|
|
743
|
+
|
|
744
|
+
This section describes the properties available for the **Polygon Type** (`//ly.img.ubq/shape/polygon`) block type.
|
|
745
|
+
|
|
746
|
+
| Property | Type | Default | Description |
|
|
747
|
+
| ---------------------------- | ------- | ------- | ---------------------------------------------------- |
|
|
748
|
+
| `shape/polygon/cornerRadius` | `Float` | `0` | The radius for rounding the corners of the shape. |
|
|
749
|
+
| `shape/polygon/sides` | `Int` | `5` | The number of sides the polygon is supposed to have. |
|
|
750
|
+
|
|
751
|
+
## Rect Type
|
|
752
|
+
|
|
753
|
+
A shape block representing a rectangle.
|
|
754
|
+
|
|
755
|
+
This section describes the properties available for the **Rect Type** (`//ly.img.ubq/shape/rect`) block type.
|
|
756
|
+
|
|
757
|
+
| Property | Type | Default | Description |
|
|
758
|
+
| --------------------------- | ------- | ------- | -------------------------------------------------------------- |
|
|
759
|
+
| `shape/rect/cornerRadiusBL` | `Float` | `0` | The bottom-left radius for rounding the corners of the shape. |
|
|
760
|
+
| `shape/rect/cornerRadiusBR` | `Float` | `0` | The bottom-right radius for rounding the corners of the shape. |
|
|
761
|
+
| `shape/rect/cornerRadiusTL` | `Float` | `0` | The top-left radius for rounding the corners of the shape. |
|
|
762
|
+
| `shape/rect/cornerRadiusTR` | `Float` | `0` | The top-right radius for rounding the corners of the shape. |
|
|
763
|
+
|
|
764
|
+
## Star Type
|
|
765
|
+
|
|
766
|
+
A shape block representing a star.
|
|
767
|
+
|
|
768
|
+
This section describes the properties available for the **Star Type** (`//ly.img.ubq/shape/star`) block type.
|
|
769
|
+
|
|
770
|
+
| Property | Type | Default | Description |
|
|
771
|
+
| -------------------------- | ------- | ------- | ------------------------------------------------ |
|
|
772
|
+
| `shape/star/innerDiameter` | `Float` | `0.5` | The inner diameter of the star. |
|
|
773
|
+
| `shape/star/points` | `Int` | `5` | The number of tips the star is supposed to have. |
|
|
774
|
+
|
|
775
|
+
## Vector Path Type
|
|
776
|
+
|
|
777
|
+
A shape block representing a custom vector path.
|
|
778
|
+
|
|
779
|
+
This section describes the properties available for the **Vector Path Type** (`//ly.img.ubq/shape/vector_path`) block type.
|
|
780
|
+
|
|
781
|
+
| Property | Type | Default | Description |
|
|
782
|
+
| -------------------------- | -------- | ------- | ------------------------------------------------------ |
|
|
783
|
+
| `shape/vector_path/height` | `Float` | `100` | The coordinate bounds in y direction. |
|
|
784
|
+
| `shape/vector_path/path` | `String` | `""` | The path string, accepts a subset of svg path strings. |
|
|
785
|
+
| `shape/vector_path/width` | `Float` | `100` | The coordinate bounds in x direction. |
|
|
786
|
+
|
|
787
|
+
---
|
|
788
|
+
|
|
789
|
+
## More Resources
|
|
790
|
+
|
|
791
|
+
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
792
|
+
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
793
|
+
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
794
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|