@imgly/codesign-mcp 0.1.5 → 0.1.6
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/README.md +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,50 +1,52 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
2
|
|
|
3
3
|
**Navigation:** [Guides](./guides.md) > [Insert Media Assets](./insert-media.md) > [Insert Shapes or Stickers](./insert-media/shapes-or-stickers.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Add vector shapes and
|
|
8
|
-
API. Shapes require fills to be visible and offer
|
|
9
|
-
like corner radius and star points.
|
|
10
|
-
|
|
11
|
-

|
|
7
|
+
Add vector shapes and stickers to designs in headless Node.js environments
|
|
8
|
+
using CE.SDK's block API. Shapes require fills to be visible and offer
|
|
9
|
+
type-specific properties like corner radius and star points.
|
|
12
10
|
|
|
13
11
|
> **Reading time:** 10 minutes
|
|
14
12
|
>
|
|
15
13
|
> **Resources:**
|
|
16
14
|
>
|
|
17
15
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
18
|
-
>
|
|
19
|
-
> - [
|
|
20
|
-
>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
16
|
+
>
|
|
17
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-insert-media-shapes-or-stickers-server-js)
|
|
18
|
+
>
|
|
19
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-insert-media-shapes-or-stickers-server-js)
|
|
20
|
+
|
|
21
|
+
Shapes are vector graphics created with `engine.block.createShape()` and attached to graphic blocks. CE.SDK supports six shape types: **rect**, **ellipse**, **star**, **polygon**, **line**, and **vector\_path**. Stickers are pre-made graphic assets loaded via URLs. Both require fills or strokes to be visible.
|
|
22
|
+
|
|
23
|
+
```typescript file=@cesdk_web_examples/guides-insert-media-shapes-or-stickers-server-js/server-js.ts reference-only
|
|
24
|
+
import CreativeEngine from '@cesdk/node';
|
|
25
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
26
|
+
import { createInterface } from 'readline';
|
|
27
|
+
import { config } from 'dotenv';
|
|
28
|
+
|
|
29
|
+
// Load environment variables
|
|
30
|
+
config();
|
|
31
|
+
|
|
32
|
+
// Prompt user to confirm export
|
|
33
|
+
async function confirmExport(): Promise<boolean> {
|
|
34
|
+
const rl = createInterface({
|
|
35
|
+
input: process.stdin,
|
|
36
|
+
output: process.stdout
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return new Promise((resolve) => {
|
|
40
|
+
rl.question('\nExport design to PNG? [Y/n]: ', (answer) => {
|
|
41
|
+
rl.close();
|
|
42
|
+
const normalized = answer.trim().toLowerCase();
|
|
43
|
+
resolve(normalized === '' || normalized === 'y' || normalized === 'yes');
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
|
-
* CE.SDK
|
|
49
|
+
* CE.SDK Server Guide: Insert Shapes or Stickers
|
|
48
50
|
*
|
|
49
51
|
* Demonstrates inserting various shapes and stickers into designs:
|
|
50
52
|
* - Checking shape support on blocks
|
|
@@ -53,80 +55,40 @@ import { calculateGridLayout } from './utils';
|
|
|
53
55
|
* - Applying fills to make shapes visible
|
|
54
56
|
* - Adding stickers using convenience API and manual construction
|
|
55
57
|
*/
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
version = packageJson.version;
|
|
58
|
+
async function main() {
|
|
59
|
+
console.log('\n⏳ Initializing CE.SDK engine...');
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
// Initialize the headless Creative Engine
|
|
62
|
+
const engine = await CreativeEngine.init({
|
|
63
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
64
|
+
// license: process.env.CESDK_LICENSE
|
|
65
|
+
});
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
try {
|
|
68
|
+
console.log('⏳ Creating scene and shapes...');
|
|
67
69
|
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
72
|
-
await cesdk.addPlugin(
|
|
73
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
74
|
-
);
|
|
75
|
-
await cesdk.addPlugin(
|
|
76
|
-
new DemoAssetSources({
|
|
77
|
-
include: [
|
|
78
|
-
'ly.img.templates.blank.*',
|
|
79
|
-
'ly.img.templates.presentation.*',
|
|
80
|
-
'ly.img.templates.print.*',
|
|
81
|
-
'ly.img.templates.social.*',
|
|
82
|
-
'ly.img.image.*'
|
|
83
|
-
]
|
|
84
|
-
})
|
|
85
|
-
);
|
|
86
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
87
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
88
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
89
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
90
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
91
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
92
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
93
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
94
|
-
|
|
95
|
-
await cesdk.actions.run('scene.create', {
|
|
96
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
70
|
+
// Create a scene with a page
|
|
71
|
+
engine.scene.create('VerticalStack', {
|
|
72
|
+
page: { size: { width: 800, height: 600 } }
|
|
97
73
|
});
|
|
98
74
|
|
|
99
|
-
const engine = cesdk.engine;
|
|
100
75
|
const page = engine.block.findByType('page')[0];
|
|
101
76
|
if (!engine.block.isValid(page)) {
|
|
102
77
|
throw new Error('No page found');
|
|
103
78
|
}
|
|
104
79
|
|
|
105
|
-
const pageWidth = engine.block.getWidth(page);
|
|
106
|
-
const pageHeight = engine.block.getHeight(page);
|
|
107
|
-
|
|
108
|
-
// Calculate responsive grid layout based on page dimensions
|
|
109
|
-
const layout = calculateGridLayout(pageWidth, pageHeight, 10);
|
|
110
|
-
const { blockWidth, blockHeight, getPosition } = layout;
|
|
111
|
-
const blockSize = { width: blockWidth, height: blockHeight };
|
|
112
|
-
|
|
113
80
|
// Check if a block supports shapes before attaching one
|
|
114
81
|
const testBlock = engine.block.create('graphic');
|
|
115
82
|
const supportsShape = engine.block.supportsShape(testBlock);
|
|
116
|
-
// eslint-disable-next-line no-console
|
|
117
83
|
console.log('Graphic block supports shapes:', supportsShape); // true
|
|
118
84
|
|
|
119
85
|
// Text blocks do not support shapes
|
|
120
86
|
const textBlock = engine.block.create('text');
|
|
121
87
|
const textSupportsShape = engine.block.supportsShape(textBlock);
|
|
122
|
-
// eslint-disable-next-line no-console
|
|
123
88
|
console.log('Text block supports shapes:', textSupportsShape); // false
|
|
124
89
|
engine.block.destroy(textBlock);
|
|
125
90
|
engine.block.destroy(testBlock);
|
|
126
91
|
|
|
127
|
-
// Track all created blocks for positioning
|
|
128
|
-
const allBlocks: number[] = [];
|
|
129
|
-
|
|
130
92
|
// Create a rectangle with a solid color fill
|
|
131
93
|
const rectBlock = engine.block.create('graphic');
|
|
132
94
|
const rectShape = engine.block.createShape('rect');
|
|
@@ -142,10 +104,11 @@ class Example implements EditorPlugin {
|
|
|
142
104
|
});
|
|
143
105
|
engine.block.setFill(rectBlock, rectFill);
|
|
144
106
|
|
|
145
|
-
engine.block.setWidth(rectBlock,
|
|
146
|
-
engine.block.setHeight(rectBlock,
|
|
107
|
+
engine.block.setWidth(rectBlock, 100);
|
|
108
|
+
engine.block.setHeight(rectBlock, 100);
|
|
109
|
+
engine.block.setPositionX(rectBlock, 50);
|
|
110
|
+
engine.block.setPositionY(rectBlock, 50);
|
|
147
111
|
engine.block.appendChild(page, rectBlock);
|
|
148
|
-
allBlocks.push(rectBlock);
|
|
149
112
|
|
|
150
113
|
// Create a rounded rectangle with corner radius
|
|
151
114
|
const roundedRectBlock = engine.block.create('graphic');
|
|
@@ -167,10 +130,11 @@ class Example implements EditorPlugin {
|
|
|
167
130
|
});
|
|
168
131
|
engine.block.setFill(roundedRectBlock, roundedRectFill);
|
|
169
132
|
|
|
170
|
-
engine.block.setWidth(roundedRectBlock,
|
|
171
|
-
engine.block.setHeight(roundedRectBlock,
|
|
133
|
+
engine.block.setWidth(roundedRectBlock, 100);
|
|
134
|
+
engine.block.setHeight(roundedRectBlock, 100);
|
|
135
|
+
engine.block.setPositionX(roundedRectBlock, 180);
|
|
136
|
+
engine.block.setPositionY(roundedRectBlock, 50);
|
|
172
137
|
engine.block.appendChild(page, roundedRectBlock);
|
|
173
|
-
allBlocks.push(roundedRectBlock);
|
|
174
138
|
|
|
175
139
|
// Create an ellipse (circle when width equals height)
|
|
176
140
|
const ellipseBlock = engine.block.create('graphic');
|
|
@@ -186,10 +150,11 @@ class Example implements EditorPlugin {
|
|
|
186
150
|
});
|
|
187
151
|
engine.block.setFill(ellipseBlock, ellipseFill);
|
|
188
152
|
|
|
189
|
-
engine.block.setWidth(ellipseBlock,
|
|
190
|
-
engine.block.setHeight(ellipseBlock,
|
|
153
|
+
engine.block.setWidth(ellipseBlock, 100);
|
|
154
|
+
engine.block.setHeight(ellipseBlock, 100);
|
|
155
|
+
engine.block.setPositionX(ellipseBlock, 310);
|
|
156
|
+
engine.block.setPositionY(ellipseBlock, 50);
|
|
191
157
|
engine.block.appendChild(page, ellipseBlock);
|
|
192
|
-
allBlocks.push(ellipseBlock);
|
|
193
158
|
|
|
194
159
|
// Create a star with custom points and inner diameter
|
|
195
160
|
const starBlock = engine.block.create('graphic');
|
|
@@ -209,10 +174,11 @@ class Example implements EditorPlugin {
|
|
|
209
174
|
});
|
|
210
175
|
engine.block.setFill(starBlock, starFill);
|
|
211
176
|
|
|
212
|
-
engine.block.setWidth(starBlock,
|
|
213
|
-
engine.block.setHeight(starBlock,
|
|
177
|
+
engine.block.setWidth(starBlock, 100);
|
|
178
|
+
engine.block.setHeight(starBlock, 100);
|
|
179
|
+
engine.block.setPositionX(starBlock, 440);
|
|
180
|
+
engine.block.setPositionY(starBlock, 50);
|
|
214
181
|
engine.block.appendChild(page, starBlock);
|
|
215
|
-
allBlocks.push(starBlock);
|
|
216
182
|
|
|
217
183
|
// Create a polygon (hexagon with 6 sides)
|
|
218
184
|
const polygonBlock = engine.block.create('graphic');
|
|
@@ -231,10 +197,11 @@ class Example implements EditorPlugin {
|
|
|
231
197
|
});
|
|
232
198
|
engine.block.setFill(polygonBlock, polygonFill);
|
|
233
199
|
|
|
234
|
-
engine.block.setWidth(polygonBlock,
|
|
235
|
-
engine.block.setHeight(polygonBlock,
|
|
200
|
+
engine.block.setWidth(polygonBlock, 100);
|
|
201
|
+
engine.block.setHeight(polygonBlock, 100);
|
|
202
|
+
engine.block.setPositionX(polygonBlock, 570);
|
|
203
|
+
engine.block.setPositionY(polygonBlock, 50);
|
|
236
204
|
engine.block.appendChild(page, polygonBlock);
|
|
237
|
-
allBlocks.push(polygonBlock);
|
|
238
205
|
|
|
239
206
|
// Create a line shape
|
|
240
207
|
const lineBlock = engine.block.create('graphic');
|
|
@@ -251,10 +218,11 @@ class Example implements EditorPlugin {
|
|
|
251
218
|
a: 1.0
|
|
252
219
|
});
|
|
253
220
|
|
|
254
|
-
engine.block.setWidth(lineBlock,
|
|
255
|
-
engine.block.setHeight(lineBlock,
|
|
221
|
+
engine.block.setWidth(lineBlock, 100);
|
|
222
|
+
engine.block.setHeight(lineBlock, 100);
|
|
223
|
+
engine.block.setPositionX(lineBlock, 50);
|
|
224
|
+
engine.block.setPositionY(lineBlock, 200);
|
|
256
225
|
engine.block.appendChild(page, lineBlock);
|
|
257
|
-
allBlocks.push(lineBlock);
|
|
258
226
|
|
|
259
227
|
// Create a custom triangle using vector path
|
|
260
228
|
const vectorPathBlock = engine.block.create('graphic');
|
|
@@ -278,25 +246,26 @@ class Example implements EditorPlugin {
|
|
|
278
246
|
});
|
|
279
247
|
engine.block.setFill(vectorPathBlock, vectorPathFill);
|
|
280
248
|
|
|
281
|
-
engine.block.setWidth(vectorPathBlock,
|
|
282
|
-
engine.block.setHeight(vectorPathBlock,
|
|
249
|
+
engine.block.setWidth(vectorPathBlock, 100);
|
|
250
|
+
engine.block.setHeight(vectorPathBlock, 100);
|
|
251
|
+
engine.block.setPositionX(vectorPathBlock, 180);
|
|
252
|
+
engine.block.setPositionY(vectorPathBlock, 200);
|
|
283
253
|
engine.block.appendChild(page, vectorPathBlock);
|
|
284
|
-
allBlocks.push(vectorPathBlock);
|
|
285
254
|
|
|
286
255
|
// Discover available properties for a shape
|
|
287
256
|
const shapeProperties = engine.block.findAllProperties(starShape);
|
|
288
|
-
// eslint-disable-next-line no-console
|
|
289
257
|
console.log('Star shape properties:', shapeProperties);
|
|
290
258
|
|
|
291
259
|
// Add a sticker using the convenience API
|
|
292
260
|
const stickerUrl =
|
|
293
261
|
'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_grin.svg';
|
|
294
262
|
const stickerBlock = await engine.block.addImage(stickerUrl, {
|
|
295
|
-
size:
|
|
263
|
+
size: { width: 100, height: 100 }
|
|
296
264
|
});
|
|
297
265
|
engine.block.setKind(stickerBlock, 'sticker');
|
|
266
|
+
engine.block.setPositionX(stickerBlock, 310);
|
|
267
|
+
engine.block.setPositionY(stickerBlock, 200);
|
|
298
268
|
engine.block.appendChild(page, stickerBlock);
|
|
299
|
-
allBlocks.push(stickerBlock);
|
|
300
269
|
|
|
301
270
|
// Add a sticker using manual construction for more control
|
|
302
271
|
const manualStickerBlock = engine.block.create('graphic');
|
|
@@ -320,107 +289,67 @@ class Example implements EditorPlugin {
|
|
|
320
289
|
// Set kind to 'sticker' for proper categorization
|
|
321
290
|
engine.block.setKind(manualStickerBlock, 'sticker');
|
|
322
291
|
|
|
323
|
-
engine.block.setWidth(manualStickerBlock,
|
|
324
|
-
engine.block.setHeight(manualStickerBlock,
|
|
292
|
+
engine.block.setWidth(manualStickerBlock, 100);
|
|
293
|
+
engine.block.setHeight(manualStickerBlock, 100);
|
|
294
|
+
engine.block.setPositionX(manualStickerBlock, 440);
|
|
295
|
+
engine.block.setPositionY(manualStickerBlock, 200);
|
|
325
296
|
engine.block.appendChild(page, manualStickerBlock);
|
|
326
|
-
allBlocks.push(manualStickerBlock);
|
|
327
297
|
|
|
328
|
-
//
|
|
329
|
-
const
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
const
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
console.log('Shapes and stickers guide initialized.');
|
|
298
|
+
// Export the result to a file after user confirmation
|
|
299
|
+
const shouldExport = await confirmExport();
|
|
300
|
+
if (shouldExport) {
|
|
301
|
+
console.log('\n⏳ Exporting design...');
|
|
302
|
+
const outputDir = './output';
|
|
303
|
+
if (!existsSync(outputDir)) {
|
|
304
|
+
mkdirSync(outputDir, { recursive: true });
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
308
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
309
|
+
const outputPath = `${outputDir}/shapes-and-stickers.png`;
|
|
310
|
+
writeFileSync(outputPath, buffer);
|
|
311
|
+
|
|
312
|
+
console.log(`\n✅ Exported result to ${outputPath}`);
|
|
313
|
+
} else {
|
|
314
|
+
console.log('\n⏭️ Export skipped.');
|
|
315
|
+
}
|
|
316
|
+
} finally {
|
|
317
|
+
// Always dispose of the engine to free resources
|
|
318
|
+
engine.dispose();
|
|
319
|
+
console.log('🧹 Engine disposed');
|
|
351
320
|
}
|
|
352
321
|
}
|
|
353
322
|
|
|
354
|
-
|
|
323
|
+
main().catch(console.error);
|
|
355
324
|
```
|
|
356
325
|
|
|
357
|
-
This guide covers
|
|
358
|
-
|
|
359
|
-
## Using the Built-in UI
|
|
360
|
-
|
|
361
|
-
### Shapes Panel
|
|
362
|
-
|
|
363
|
-
Users access shapes through the asset library panel. The shapes panel displays available shape types that can be placed onto the canvas with a single click.
|
|
364
|
-
|
|
365
|
-
Once placed, shapes can be:
|
|
366
|
-
|
|
367
|
-
- **Resized** by dragging corner handles
|
|
368
|
-
- **Rotated** using the rotation handle
|
|
369
|
-
- **Styled** through the inspector panel (fills, strokes, opacity)
|
|
370
|
-
- **Positioned** by dragging or using alignment tools
|
|
371
|
-
|
|
372
|
-
### Stickers Panel
|
|
373
|
-
|
|
374
|
-
Stickers appear in the asset library under their categories. Users browse available stickers and add them to the canvas with a single click. Stickers maintain their aspect ratio when resized.
|
|
326
|
+
This guide covers creating shapes and stickers programmatically using the block API in a headless server environment.
|
|
375
327
|
|
|
376
328
|
## Programmatic Shape Creation
|
|
377
329
|
|
|
378
330
|
### Initialize CE.SDK
|
|
379
331
|
|
|
380
|
-
Set up CE.SDK
|
|
332
|
+
Set up CE.SDK in headless mode using `@cesdk/node`. Create a scene with a page to hold your shapes.
|
|
381
333
|
|
|
382
334
|
```typescript highlight-setup
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
'ly.img.templates.presentation.*',
|
|
397
|
-
'ly.img.templates.print.*',
|
|
398
|
-
'ly.img.templates.social.*',
|
|
399
|
-
'ly.img.image.*'
|
|
400
|
-
]
|
|
401
|
-
})
|
|
402
|
-
);
|
|
403
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
404
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
405
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
406
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
407
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
408
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
409
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
410
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
411
|
-
|
|
412
|
-
await cesdk.actions.run('scene.create', {
|
|
413
|
-
page: { width: 800, height: 600, unit: 'Pixel' }
|
|
414
|
-
});
|
|
415
|
-
|
|
416
|
-
const engine = cesdk.engine;
|
|
417
|
-
const page = engine.block.findByType('page')[0];
|
|
418
|
-
if (!engine.block.isValid(page)) {
|
|
419
|
-
throw new Error('No page found');
|
|
420
|
-
}
|
|
335
|
+
// Initialize the headless Creative Engine
|
|
336
|
+
const engine = await CreativeEngine.init({
|
|
337
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
338
|
+
// license: process.env.CESDK_LICENSE
|
|
339
|
+
});
|
|
340
|
+
|
|
341
|
+
try {
|
|
342
|
+
console.log('⏳ Creating scene and shapes...');
|
|
343
|
+
|
|
344
|
+
// Create a scene with a page
|
|
345
|
+
engine.scene.create('VerticalStack', {
|
|
346
|
+
page: { size: { width: 800, height: 600 } }
|
|
347
|
+
});
|
|
421
348
|
|
|
422
|
-
const
|
|
423
|
-
|
|
349
|
+
const page = engine.block.findByType('page')[0];
|
|
350
|
+
if (!engine.block.isValid(page)) {
|
|
351
|
+
throw new Error('No page found');
|
|
352
|
+
}
|
|
424
353
|
```
|
|
425
354
|
|
|
426
355
|
### Check Shape Support
|
|
@@ -428,19 +357,17 @@ const pageHeight = engine.block.getHeight(page);
|
|
|
428
357
|
Before attaching a shape to a block, verify it supports shapes using `supportsShape()`. Graphic blocks support shapes while text blocks do not.
|
|
429
358
|
|
|
430
359
|
```typescript highlight-check-shape-support
|
|
431
|
-
// Check if a block supports shapes before attaching one
|
|
432
|
-
const testBlock = engine.block.create('graphic');
|
|
433
|
-
const supportsShape = engine.block.supportsShape(testBlock);
|
|
434
|
-
//
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
const
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
engine.block.destroy(textBlock);
|
|
443
|
-
engine.block.destroy(testBlock);
|
|
360
|
+
// Check if a block supports shapes before attaching one
|
|
361
|
+
const testBlock = engine.block.create('graphic');
|
|
362
|
+
const supportsShape = engine.block.supportsShape(testBlock);
|
|
363
|
+
console.log('Graphic block supports shapes:', supportsShape); // true
|
|
364
|
+
|
|
365
|
+
// Text blocks do not support shapes
|
|
366
|
+
const textBlock = engine.block.create('text');
|
|
367
|
+
const textSupportsShape = engine.block.supportsShape(textBlock);
|
|
368
|
+
console.log('Text block supports shapes:', textSupportsShape); // false
|
|
369
|
+
engine.block.destroy(textBlock);
|
|
370
|
+
engine.block.destroy(testBlock);
|
|
444
371
|
```
|
|
445
372
|
|
|
446
373
|
### Create Rectangle
|
|
@@ -448,25 +375,26 @@ engine.block.destroy(testBlock);
|
|
|
448
375
|
Create rectangles with `createShape('rect')` and attach them to a graphic block with `setShape()`. Apply a fill to make the shape visible.
|
|
449
376
|
|
|
450
377
|
```typescript highlight-create-rectangle
|
|
451
|
-
// Create a rectangle with a solid color fill
|
|
452
|
-
const rectBlock = engine.block.create('graphic');
|
|
453
|
-
const rectShape = engine.block.createShape('rect');
|
|
454
|
-
engine.block.setShape(rectBlock, rectShape);
|
|
455
|
-
|
|
456
|
-
// Apply a solid color fill to make the shape visible
|
|
457
|
-
const rectFill = engine.block.createFill('color');
|
|
458
|
-
engine.block.setColor(rectFill, 'fill/color/value', {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
});
|
|
464
|
-
engine.block.setFill(rectBlock, rectFill);
|
|
378
|
+
// Create a rectangle with a solid color fill
|
|
379
|
+
const rectBlock = engine.block.create('graphic');
|
|
380
|
+
const rectShape = engine.block.createShape('rect');
|
|
381
|
+
engine.block.setShape(rectBlock, rectShape);
|
|
382
|
+
|
|
383
|
+
// Apply a solid color fill to make the shape visible
|
|
384
|
+
const rectFill = engine.block.createFill('color');
|
|
385
|
+
engine.block.setColor(rectFill, 'fill/color/value', {
|
|
386
|
+
r: 0.2,
|
|
387
|
+
g: 0.5,
|
|
388
|
+
b: 0.9,
|
|
389
|
+
a: 1.0
|
|
390
|
+
});
|
|
391
|
+
engine.block.setFill(rectBlock, rectFill);
|
|
465
392
|
|
|
466
|
-
engine.block.setWidth(rectBlock,
|
|
467
|
-
engine.block.setHeight(rectBlock,
|
|
468
|
-
engine.block.
|
|
469
|
-
|
|
393
|
+
engine.block.setWidth(rectBlock, 100);
|
|
394
|
+
engine.block.setHeight(rectBlock, 100);
|
|
395
|
+
engine.block.setPositionX(rectBlock, 50);
|
|
396
|
+
engine.block.setPositionY(rectBlock, 50);
|
|
397
|
+
engine.block.appendChild(page, rectBlock);
|
|
470
398
|
```
|
|
471
399
|
|
|
472
400
|
### Create Rounded Rectangle
|
|
@@ -474,30 +402,31 @@ allBlocks.push(rectBlock);
|
|
|
474
402
|
Rectangles support corner radius properties for rounded corners. Set each corner individually using `shape/rect/cornerRadiusTL`, `cornerRadiusTR`, `cornerRadiusBL`, and `cornerRadiusBR`.
|
|
475
403
|
|
|
476
404
|
```typescript highlight-create-rounded-rectangle
|
|
477
|
-
// Create a rounded rectangle with corner radius
|
|
478
|
-
const roundedRectBlock = engine.block.create('graphic');
|
|
479
|
-
const roundedRectShape = engine.block.createShape('rect');
|
|
480
|
-
engine.block.setShape(roundedRectBlock, roundedRectShape);
|
|
481
|
-
|
|
482
|
-
// Set corner radius for rounded corners
|
|
483
|
-
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 20);
|
|
484
|
-
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 20);
|
|
485
|
-
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 20);
|
|
486
|
-
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 20);
|
|
487
|
-
|
|
488
|
-
const roundedRectFill = engine.block.createFill('color');
|
|
489
|
-
engine.block.setColor(roundedRectFill, 'fill/color/value', {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
});
|
|
495
|
-
engine.block.setFill(roundedRectBlock, roundedRectFill);
|
|
405
|
+
// Create a rounded rectangle with corner radius
|
|
406
|
+
const roundedRectBlock = engine.block.create('graphic');
|
|
407
|
+
const roundedRectShape = engine.block.createShape('rect');
|
|
408
|
+
engine.block.setShape(roundedRectBlock, roundedRectShape);
|
|
409
|
+
|
|
410
|
+
// Set corner radius for rounded corners
|
|
411
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 20);
|
|
412
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 20);
|
|
413
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 20);
|
|
414
|
+
engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 20);
|
|
415
|
+
|
|
416
|
+
const roundedRectFill = engine.block.createFill('color');
|
|
417
|
+
engine.block.setColor(roundedRectFill, 'fill/color/value', {
|
|
418
|
+
r: 0.9,
|
|
419
|
+
g: 0.4,
|
|
420
|
+
b: 0.2,
|
|
421
|
+
a: 1.0
|
|
422
|
+
});
|
|
423
|
+
engine.block.setFill(roundedRectBlock, roundedRectFill);
|
|
496
424
|
|
|
497
|
-
engine.block.setWidth(roundedRectBlock,
|
|
498
|
-
engine.block.setHeight(roundedRectBlock,
|
|
499
|
-
engine.block.
|
|
500
|
-
|
|
425
|
+
engine.block.setWidth(roundedRectBlock, 100);
|
|
426
|
+
engine.block.setHeight(roundedRectBlock, 100);
|
|
427
|
+
engine.block.setPositionX(roundedRectBlock, 180);
|
|
428
|
+
engine.block.setPositionY(roundedRectBlock, 50);
|
|
429
|
+
engine.block.appendChild(page, roundedRectBlock);
|
|
501
430
|
```
|
|
502
431
|
|
|
503
432
|
### Create Ellipse
|
|
@@ -505,24 +434,25 @@ allBlocks.push(roundedRectBlock);
|
|
|
505
434
|
Create circles and ovals with `createShape('ellipse')`. The block's aspect ratio determines whether it appears as a circle (equal width and height) or an oval.
|
|
506
435
|
|
|
507
436
|
```typescript highlight-create-ellipse
|
|
508
|
-
// Create an ellipse (circle when width equals height)
|
|
509
|
-
const ellipseBlock = engine.block.create('graphic');
|
|
510
|
-
const ellipseShape = engine.block.createShape('ellipse');
|
|
511
|
-
engine.block.setShape(ellipseBlock, ellipseShape);
|
|
512
|
-
|
|
513
|
-
const ellipseFill = engine.block.createFill('color');
|
|
514
|
-
engine.block.setColor(ellipseFill, 'fill/color/value', {
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
});
|
|
520
|
-
engine.block.setFill(ellipseBlock, ellipseFill);
|
|
437
|
+
// Create an ellipse (circle when width equals height)
|
|
438
|
+
const ellipseBlock = engine.block.create('graphic');
|
|
439
|
+
const ellipseShape = engine.block.createShape('ellipse');
|
|
440
|
+
engine.block.setShape(ellipseBlock, ellipseShape);
|
|
441
|
+
|
|
442
|
+
const ellipseFill = engine.block.createFill('color');
|
|
443
|
+
engine.block.setColor(ellipseFill, 'fill/color/value', {
|
|
444
|
+
r: 0.3,
|
|
445
|
+
g: 0.8,
|
|
446
|
+
b: 0.4,
|
|
447
|
+
a: 1.0
|
|
448
|
+
});
|
|
449
|
+
engine.block.setFill(ellipseBlock, ellipseFill);
|
|
521
450
|
|
|
522
|
-
engine.block.setWidth(ellipseBlock,
|
|
523
|
-
engine.block.setHeight(ellipseBlock,
|
|
524
|
-
engine.block.
|
|
525
|
-
|
|
451
|
+
engine.block.setWidth(ellipseBlock, 100);
|
|
452
|
+
engine.block.setHeight(ellipseBlock, 100);
|
|
453
|
+
engine.block.setPositionX(ellipseBlock, 310);
|
|
454
|
+
engine.block.setPositionY(ellipseBlock, 50);
|
|
455
|
+
engine.block.appendChild(page, ellipseBlock);
|
|
526
456
|
```
|
|
527
457
|
|
|
528
458
|
### Create Star
|
|
@@ -530,28 +460,29 @@ allBlocks.push(ellipseBlock);
|
|
|
530
460
|
Create stars with `createShape('star')`. Configure the number of points with `shape/star/points` and control the inner diameter with `shape/star/innerDiameter` (0.0 to 1.0).
|
|
531
461
|
|
|
532
462
|
```typescript highlight-create-star
|
|
533
|
-
// Create a star with custom points and inner diameter
|
|
534
|
-
const starBlock = engine.block.create('graphic');
|
|
535
|
-
const starShape = engine.block.createShape('star');
|
|
536
|
-
engine.block.setShape(starBlock, starShape);
|
|
537
|
-
|
|
538
|
-
// Configure star properties
|
|
539
|
-
engine.block.setInt(starShape, 'shape/star/points', 5);
|
|
540
|
-
engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.4);
|
|
541
|
-
|
|
542
|
-
const starFill = engine.block.createFill('color');
|
|
543
|
-
engine.block.setColor(starFill, 'fill/color/value', {
|
|
544
|
-
r: 1.0,
|
|
545
|
-
g: 0.8,
|
|
546
|
-
b: 0.0,
|
|
547
|
-
a: 1.0
|
|
548
|
-
});
|
|
549
|
-
engine.block.setFill(starBlock, starFill);
|
|
463
|
+
// Create a star with custom points and inner diameter
|
|
464
|
+
const starBlock = engine.block.create('graphic');
|
|
465
|
+
const starShape = engine.block.createShape('star');
|
|
466
|
+
engine.block.setShape(starBlock, starShape);
|
|
467
|
+
|
|
468
|
+
// Configure star properties
|
|
469
|
+
engine.block.setInt(starShape, 'shape/star/points', 5);
|
|
470
|
+
engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.4);
|
|
550
471
|
|
|
551
|
-
engine.block.
|
|
552
|
-
engine.block.
|
|
553
|
-
|
|
554
|
-
|
|
472
|
+
const starFill = engine.block.createFill('color');
|
|
473
|
+
engine.block.setColor(starFill, 'fill/color/value', {
|
|
474
|
+
r: 1.0,
|
|
475
|
+
g: 0.8,
|
|
476
|
+
b: 0.0,
|
|
477
|
+
a: 1.0
|
|
478
|
+
});
|
|
479
|
+
engine.block.setFill(starBlock, starFill);
|
|
480
|
+
|
|
481
|
+
engine.block.setWidth(starBlock, 100);
|
|
482
|
+
engine.block.setHeight(starBlock, 100);
|
|
483
|
+
engine.block.setPositionX(starBlock, 440);
|
|
484
|
+
engine.block.setPositionY(starBlock, 50);
|
|
485
|
+
engine.block.appendChild(page, starBlock);
|
|
555
486
|
```
|
|
556
487
|
|
|
557
488
|
### Create Polygon
|
|
@@ -559,27 +490,28 @@ allBlocks.push(starBlock);
|
|
|
559
490
|
Create regular polygons with `createShape('polygon')`. Set the number of sides with `shape/polygon/sides` to create triangles (3), pentagons (5), hexagons (6), and more.
|
|
560
491
|
|
|
561
492
|
```typescript highlight-create-polygon
|
|
562
|
-
// Create a polygon (hexagon with 6 sides)
|
|
563
|
-
const polygonBlock = engine.block.create('graphic');
|
|
564
|
-
const polygonShape = engine.block.createShape('polygon');
|
|
565
|
-
engine.block.setShape(polygonBlock, polygonShape);
|
|
566
|
-
|
|
567
|
-
// Set number of sides for the polygon
|
|
568
|
-
engine.block.setInt(polygonShape, 'shape/polygon/sides', 6);
|
|
569
|
-
|
|
570
|
-
const polygonFill = engine.block.createFill('color');
|
|
571
|
-
engine.block.setColor(polygonFill, 'fill/color/value', {
|
|
572
|
-
r: 0.6,
|
|
573
|
-
g: 0.2,
|
|
574
|
-
b: 0.8,
|
|
575
|
-
a: 1.0
|
|
576
|
-
});
|
|
577
|
-
engine.block.setFill(polygonBlock, polygonFill);
|
|
493
|
+
// Create a polygon (hexagon with 6 sides)
|
|
494
|
+
const polygonBlock = engine.block.create('graphic');
|
|
495
|
+
const polygonShape = engine.block.createShape('polygon');
|
|
496
|
+
engine.block.setShape(polygonBlock, polygonShape);
|
|
578
497
|
|
|
579
|
-
|
|
580
|
-
engine.block.
|
|
581
|
-
|
|
582
|
-
|
|
498
|
+
// Set number of sides for the polygon
|
|
499
|
+
engine.block.setInt(polygonShape, 'shape/polygon/sides', 6);
|
|
500
|
+
|
|
501
|
+
const polygonFill = engine.block.createFill('color');
|
|
502
|
+
engine.block.setColor(polygonFill, 'fill/color/value', {
|
|
503
|
+
r: 0.6,
|
|
504
|
+
g: 0.2,
|
|
505
|
+
b: 0.8,
|
|
506
|
+
a: 1.0
|
|
507
|
+
});
|
|
508
|
+
engine.block.setFill(polygonBlock, polygonFill);
|
|
509
|
+
|
|
510
|
+
engine.block.setWidth(polygonBlock, 100);
|
|
511
|
+
engine.block.setHeight(polygonBlock, 100);
|
|
512
|
+
engine.block.setPositionX(polygonBlock, 570);
|
|
513
|
+
engine.block.setPositionY(polygonBlock, 50);
|
|
514
|
+
engine.block.appendChild(page, polygonBlock);
|
|
583
515
|
```
|
|
584
516
|
|
|
585
517
|
### Create Line
|
|
@@ -587,25 +519,26 @@ allBlocks.push(polygonBlock);
|
|
|
587
519
|
Create lines with `createShape('line')`. Lines are typically styled with strokes rather than fills using `setStrokeEnabled()` and `setStrokeWidth()`.
|
|
588
520
|
|
|
589
521
|
```typescript highlight-create-line
|
|
590
|
-
// Create a line shape
|
|
591
|
-
const lineBlock = engine.block.create('graphic');
|
|
592
|
-
const lineShape = engine.block.createShape('line');
|
|
593
|
-
engine.block.setShape(lineBlock, lineShape);
|
|
594
|
-
|
|
595
|
-
// Lines typically use strokes instead of fills
|
|
596
|
-
engine.block.setStrokeEnabled(lineBlock, true);
|
|
597
|
-
engine.block.setStrokeWidth(lineBlock, 6);
|
|
598
|
-
engine.block.setStrokeColor(lineBlock, {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
});
|
|
522
|
+
// Create a line shape
|
|
523
|
+
const lineBlock = engine.block.create('graphic');
|
|
524
|
+
const lineShape = engine.block.createShape('line');
|
|
525
|
+
engine.block.setShape(lineBlock, lineShape);
|
|
526
|
+
|
|
527
|
+
// Lines typically use strokes instead of fills
|
|
528
|
+
engine.block.setStrokeEnabled(lineBlock, true);
|
|
529
|
+
engine.block.setStrokeWidth(lineBlock, 6);
|
|
530
|
+
engine.block.setStrokeColor(lineBlock, {
|
|
531
|
+
r: 0.9,
|
|
532
|
+
g: 0.2,
|
|
533
|
+
b: 0.5,
|
|
534
|
+
a: 1.0
|
|
535
|
+
});
|
|
604
536
|
|
|
605
|
-
engine.block.setWidth(lineBlock,
|
|
606
|
-
engine.block.setHeight(lineBlock,
|
|
607
|
-
engine.block.
|
|
608
|
-
|
|
537
|
+
engine.block.setWidth(lineBlock, 100);
|
|
538
|
+
engine.block.setHeight(lineBlock, 100);
|
|
539
|
+
engine.block.setPositionX(lineBlock, 50);
|
|
540
|
+
engine.block.setPositionY(lineBlock, 200);
|
|
541
|
+
engine.block.appendChild(page, lineBlock);
|
|
609
542
|
```
|
|
610
543
|
|
|
611
544
|
### Create Vector Path
|
|
@@ -613,28 +546,33 @@ allBlocks.push(lineBlock);
|
|
|
613
546
|
Create custom shapes with `createShape('vector_path')`. Define the path using SVG path syntax with `shape/vector_path/path`. The path coordinates scale proportionally with the block dimensions.
|
|
614
547
|
|
|
615
548
|
```typescript highlight-create-vector-path
|
|
616
|
-
// Create a custom triangle using vector path
|
|
617
|
-
const vectorPathBlock = engine.block.create('graphic');
|
|
618
|
-
const vectorPathShape = engine.block.createShape('vector_path');
|
|
619
|
-
engine.block.setShape(vectorPathBlock, vectorPathShape);
|
|
620
|
-
|
|
621
|
-
// Define a triangle using SVG path syntax (coordinates scale with block size)
|
|
622
|
-
const trianglePath = 'M 50,0 L 100,100 L 0,100 Z';
|
|
623
|
-
engine.block.setString(vectorPathShape, 'shape/vector_path/path', trianglePath);
|
|
624
|
-
|
|
625
|
-
const vectorPathFill = engine.block.createFill('color');
|
|
626
|
-
engine.block.setColor(vectorPathFill, 'fill/color/value', {
|
|
627
|
-
r: 0.9,
|
|
628
|
-
g: 0.2,
|
|
629
|
-
b: 0.5,
|
|
630
|
-
a: 1.0
|
|
631
|
-
});
|
|
632
|
-
engine.block.setFill(vectorPathBlock, vectorPathFill);
|
|
549
|
+
// Create a custom triangle using vector path
|
|
550
|
+
const vectorPathBlock = engine.block.create('graphic');
|
|
551
|
+
const vectorPathShape = engine.block.createShape('vector_path');
|
|
552
|
+
engine.block.setShape(vectorPathBlock, vectorPathShape);
|
|
633
553
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
engine.block.
|
|
637
|
-
|
|
554
|
+
// Define a triangle using SVG path syntax (coordinates scale with block size)
|
|
555
|
+
const trianglePath = 'M 50,0 L 100,100 L 0,100 Z';
|
|
556
|
+
engine.block.setString(
|
|
557
|
+
vectorPathShape,
|
|
558
|
+
'shape/vector_path/path',
|
|
559
|
+
trianglePath
|
|
560
|
+
);
|
|
561
|
+
|
|
562
|
+
const vectorPathFill = engine.block.createFill('color');
|
|
563
|
+
engine.block.setColor(vectorPathFill, 'fill/color/value', {
|
|
564
|
+
r: 0.9,
|
|
565
|
+
g: 0.2,
|
|
566
|
+
b: 0.5,
|
|
567
|
+
a: 1.0
|
|
568
|
+
});
|
|
569
|
+
engine.block.setFill(vectorPathBlock, vectorPathFill);
|
|
570
|
+
|
|
571
|
+
engine.block.setWidth(vectorPathBlock, 100);
|
|
572
|
+
engine.block.setHeight(vectorPathBlock, 100);
|
|
573
|
+
engine.block.setPositionX(vectorPathBlock, 180);
|
|
574
|
+
engine.block.setPositionY(vectorPathBlock, 200);
|
|
575
|
+
engine.block.appendChild(page, vectorPathBlock);
|
|
638
576
|
```
|
|
639
577
|
|
|
640
578
|
### Discover Shape Properties
|
|
@@ -644,7 +582,6 @@ Use `findAllProperties()` to discover available configuration options for any sh
|
|
|
644
582
|
```typescript highlight-discover-shape-properties
|
|
645
583
|
// Discover available properties for a shape
|
|
646
584
|
const shapeProperties = engine.block.findAllProperties(starShape);
|
|
647
|
-
// eslint-disable-next-line no-console
|
|
648
585
|
console.log('Star shape properties:', shapeProperties);
|
|
649
586
|
```
|
|
650
587
|
|
|
@@ -666,65 +603,110 @@ The simplest way to add stickers is with `engine.block.addImage()`. This conveni
|
|
|
666
603
|
const stickerUrl =
|
|
667
604
|
'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_grin.svg';
|
|
668
605
|
const stickerBlock = await engine.block.addImage(stickerUrl, {
|
|
669
|
-
size:
|
|
606
|
+
size: { width: 100, height: 100 }
|
|
670
607
|
});
|
|
671
608
|
engine.block.setKind(stickerBlock, 'sticker');
|
|
609
|
+
engine.block.setPositionX(stickerBlock, 310);
|
|
610
|
+
engine.block.setPositionY(stickerBlock, 200);
|
|
672
611
|
engine.block.appendChild(page, stickerBlock);
|
|
673
|
-
allBlocks.push(stickerBlock);
|
|
674
612
|
```
|
|
675
613
|
|
|
676
|
-
Setting `setKind(block, 'sticker')` categorizes the block correctly
|
|
614
|
+
Setting `setKind(block, 'sticker')` categorizes the block correctly, which helps with organization and enables sticker-specific behaviors.
|
|
677
615
|
|
|
678
616
|
### Manual Sticker Construction
|
|
679
617
|
|
|
680
618
|
For full control over sticker creation, manually construct a graphic block with a rect shape and image fill.
|
|
681
619
|
|
|
682
620
|
```typescript highlight-sticker-manual-construction
|
|
683
|
-
// Add a sticker using manual construction for more control
|
|
684
|
-
const manualStickerBlock = engine.block.create('graphic');
|
|
685
|
-
const manualStickerShape = engine.block.createShape('rect');
|
|
686
|
-
engine.block.setShape(manualStickerBlock, manualStickerShape);
|
|
687
|
-
|
|
688
|
-
// Create image fill with the sticker URI
|
|
689
|
-
const stickerFill = engine.block.createFill('image');
|
|
690
|
-
engine.block.setString(
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
);
|
|
695
|
-
engine.block.setFill(manualStickerBlock, stickerFill);
|
|
696
|
-
|
|
697
|
-
// Set content fill mode to preserve aspect ratio
|
|
698
|
-
if (engine.block.supportsContentFillMode(manualStickerBlock)) {
|
|
699
|
-
engine.block.setContentFillMode(manualStickerBlock, 'Contain');
|
|
700
|
-
}
|
|
621
|
+
// Add a sticker using manual construction for more control
|
|
622
|
+
const manualStickerBlock = engine.block.create('graphic');
|
|
623
|
+
const manualStickerShape = engine.block.createShape('rect');
|
|
624
|
+
engine.block.setShape(manualStickerBlock, manualStickerShape);
|
|
625
|
+
|
|
626
|
+
// Create image fill with the sticker URI
|
|
627
|
+
const stickerFill = engine.block.createFill('image');
|
|
628
|
+
engine.block.setString(
|
|
629
|
+
stickerFill,
|
|
630
|
+
'fill/image/imageFileURI',
|
|
631
|
+
'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_star.svg'
|
|
632
|
+
);
|
|
633
|
+
engine.block.setFill(manualStickerBlock, stickerFill);
|
|
701
634
|
|
|
702
|
-
// Set
|
|
703
|
-
engine.block.
|
|
635
|
+
// Set content fill mode to preserve aspect ratio
|
|
636
|
+
if (engine.block.supportsContentFillMode(manualStickerBlock)) {
|
|
637
|
+
engine.block.setContentFillMode(manualStickerBlock, 'Contain');
|
|
638
|
+
}
|
|
704
639
|
|
|
705
|
-
|
|
706
|
-
engine.block.
|
|
707
|
-
|
|
708
|
-
|
|
640
|
+
// Set kind to 'sticker' for proper categorization
|
|
641
|
+
engine.block.setKind(manualStickerBlock, 'sticker');
|
|
642
|
+
|
|
643
|
+
engine.block.setWidth(manualStickerBlock, 100);
|
|
644
|
+
engine.block.setHeight(manualStickerBlock, 100);
|
|
645
|
+
engine.block.setPositionX(manualStickerBlock, 440);
|
|
646
|
+
engine.block.setPositionY(manualStickerBlock, 200);
|
|
647
|
+
engine.block.appendChild(page, manualStickerBlock);
|
|
709
648
|
```
|
|
710
649
|
|
|
711
650
|
Using `setContentFillMode(block, 'Contain')` preserves the sticker's aspect ratio within the block bounds. Always check `supportsContentFillMode()` before setting this property.
|
|
712
651
|
|
|
713
|
-
|
|
652
|
+
## Export and Cleanup
|
|
714
653
|
|
|
715
|
-
|
|
654
|
+
### Confirm Export
|
|
716
655
|
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
656
|
+
Prompt users to confirm export before saving. This example uses Node.js readline for interactive input.
|
|
657
|
+
|
|
658
|
+
```typescript highlight-confirm-export
|
|
659
|
+
// Prompt user to confirm export
|
|
660
|
+
async function confirmExport(): Promise<boolean> {
|
|
661
|
+
const rl = createInterface({
|
|
662
|
+
input: process.stdin,
|
|
663
|
+
output: process.stdout
|
|
664
|
+
});
|
|
665
|
+
|
|
666
|
+
return new Promise((resolve) => {
|
|
667
|
+
rl.question('\nExport design to PNG? [Y/n]: ', (answer) => {
|
|
668
|
+
rl.close();
|
|
669
|
+
const normalized = answer.trim().toLowerCase();
|
|
670
|
+
resolve(normalized === '' || normalized === 'y' || normalized === 'yes');
|
|
671
|
+
});
|
|
672
|
+
});
|
|
673
|
+
}
|
|
725
674
|
```
|
|
726
675
|
|
|
727
|
-
|
|
676
|
+
### Export to File
|
|
677
|
+
|
|
678
|
+
Export the design using `engine.block.export()` and save to the output directory.
|
|
679
|
+
|
|
680
|
+
```typescript highlight-export
|
|
681
|
+
// Export the result to a file after user confirmation
|
|
682
|
+
const shouldExport = await confirmExport();
|
|
683
|
+
if (shouldExport) {
|
|
684
|
+
console.log('\n⏳ Exporting design...');
|
|
685
|
+
const outputDir = './output';
|
|
686
|
+
if (!existsSync(outputDir)) {
|
|
687
|
+
mkdirSync(outputDir, { recursive: true });
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
691
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
692
|
+
const outputPath = `${outputDir}/shapes-and-stickers.png`;
|
|
693
|
+
writeFileSync(outputPath, buffer);
|
|
694
|
+
|
|
695
|
+
console.log(`\n✅ Exported result to ${outputPath}`);
|
|
696
|
+
} else {
|
|
697
|
+
console.log('\n⏭️ Export skipped.');
|
|
698
|
+
}
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### Cleanup
|
|
702
|
+
|
|
703
|
+
Always dispose of the engine when done to free resources.
|
|
704
|
+
|
|
705
|
+
```typescript highlight-cleanup
|
|
706
|
+
// Always dispose of the engine to free resources
|
|
707
|
+
engine.dispose();
|
|
708
|
+
console.log('🧹 Engine disposed');
|
|
709
|
+
```
|
|
728
710
|
|
|
729
711
|
## Troubleshooting
|
|
730
712
|
|
|
@@ -753,35 +735,35 @@ If `createShape()` throws an error:
|
|
|
753
735
|
|
|
754
736
|
## API Reference
|
|
755
737
|
|
|
756
|
-
| Method
|
|
757
|
-
|
|
|
758
|
-
| `block.create('graphic')`
|
|
759
|
-
| `block.createShape(type)`
|
|
760
|
-
| `block.supportsShape(block)`
|
|
761
|
-
| `block.setShape(block, shape)`
|
|
762
|
-
| `block.getShape(block)`
|
|
763
|
-
| `block.findAllProperties(shape)`
|
|
764
|
-
| `block.setInt(shape, property, value)`
|
|
765
|
-
| `block.setFloat(shape, property, value)`
|
|
766
|
-
| `block.setString(shape, property, value)`
|
|
767
|
-
| `block.createFill(type)`
|
|
768
|
-
| `block.setFill(block, fill)`
|
|
769
|
-
| `block.setColor(fill, property, color)`
|
|
770
|
-
| `block.addImage(uri, options?)`
|
|
771
|
-
| `block.setKind(block, kind)`
|
|
772
|
-
| `block.setContentFillMode(block, mode)`
|
|
773
|
-
| `block.supportsContentFillMode(block)`
|
|
774
|
-
| `block.setPositionX(block, x)`
|
|
775
|
-
| `block.setPositionY(block, y)`
|
|
776
|
-
| `block.setWidth(block, width)`
|
|
777
|
-
| `block.setHeight(block, height)`
|
|
778
|
-
| `block.appendChild(parent, child)`
|
|
779
|
-
| `block.setStrokeEnabled(block, enabled)`
|
|
780
|
-
| `block.setStrokeWidth(block, width)`
|
|
781
|
-
| `block.setStrokeColor(block, color)`
|
|
782
|
-
| `block.
|
|
783
|
-
| `
|
|
784
|
-
| `
|
|
738
|
+
| Method | Description |
|
|
739
|
+
| -------------------------------------------- | ------------------------------------------------- |
|
|
740
|
+
| `block.create('graphic')` | Create a graphic block for shapes |
|
|
741
|
+
| `block.createShape(type)` | Create a shape of the specified type |
|
|
742
|
+
| `block.supportsShape(block)` | Check if a block supports shapes |
|
|
743
|
+
| `block.setShape(block, shape)` | Attach a shape to a graphic block |
|
|
744
|
+
| `block.getShape(block)` | Get the shape attached to a block |
|
|
745
|
+
| `block.findAllProperties(shape)` | Discover available shape properties |
|
|
746
|
+
| `block.setInt(shape, property, value)` | Set integer property (points, sides) |
|
|
747
|
+
| `block.setFloat(shape, property, value)` | Set float property (corner radius, diameter) |
|
|
748
|
+
| `block.setString(shape, property, value)` | Set string property (vector path) |
|
|
749
|
+
| `block.createFill(type)` | Create a fill for the shape |
|
|
750
|
+
| `block.setFill(block, fill)` | Apply fill to a block |
|
|
751
|
+
| `block.setColor(fill, property, color)` | Set fill color value |
|
|
752
|
+
| `block.addImage(uri, options?)` | Convenience API for adding images/stickers |
|
|
753
|
+
| `block.setKind(block, kind)` | Set block kind for categorization |
|
|
754
|
+
| `block.setContentFillMode(block, mode)` | Set content fill mode ('Contain', 'Cover', etc.) |
|
|
755
|
+
| `block.supportsContentFillMode(block)` | Check if block supports content fill mode |
|
|
756
|
+
| `block.setPositionX(block, x)` | Set horizontal position |
|
|
757
|
+
| `block.setPositionY(block, y)` | Set vertical position |
|
|
758
|
+
| `block.setWidth(block, width)` | Set block width |
|
|
759
|
+
| `block.setHeight(block, height)` | Set block height |
|
|
760
|
+
| `block.appendChild(parent, child)` | Add block to parent |
|
|
761
|
+
| `block.setStrokeEnabled(block, enabled)` | Enable or disable stroke |
|
|
762
|
+
| `block.setStrokeWidth(block, width)` | Set stroke width |
|
|
763
|
+
| `block.setStrokeColor(block, color)` | Set stroke color |
|
|
764
|
+
| `block.export(block, options)` | Export block to image/PDF blob |
|
|
765
|
+
| `block.isValid(block)` | Check if a block handle is valid |
|
|
766
|
+
| `engine.dispose()` | Dispose engine and free resources |
|
|
785
767
|
|
|
786
768
|
## Next Steps
|
|
787
769
|
|
|
@@ -789,11 +771,13 @@ If `createShape()` throws an error:
|
|
|
789
771
|
- [Filters and Effects](./filters-and-effects.md) - Apply visual effects to design elements
|
|
790
772
|
- [Position and Align](./insert-media/position-and-align.md) - Position elements precisely on the canvas
|
|
791
773
|
|
|
774
|
+
|
|
775
|
+
|
|
792
776
|
---
|
|
793
777
|
|
|
794
778
|
## More Resources
|
|
795
779
|
|
|
796
|
-
- **[
|
|
780
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
797
781
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
798
|
-
- **[Web Documentation](./
|
|
799
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
782
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
783
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|