@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,350 +1,165 @@
|
|
|
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) > [Create and Use Templates](./create-templates.md) > [Insert Dynamic Content](./create-templates/add-dynamic-content.md) > [Text Variables](./create-templates/add-dynamic-content/text-variables.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
Text variables enable data-driven template personalization in
|
|
8
|
-
placeholder tokens like `{{ firstName }}` into text blocks, then populate them
|
|
9
|
-
with actual values programmatically. This separates design from content,
|
|
10
|
-
enabling automated document generation, batch processing, and mass
|
|
11
|
-
personalization workflows.
|
|
7
|
+
Text variables enable data-driven template personalization in headless Node.js environments. Insert placeholder tokens like `{{firstName}}` into text blocks, then populate them with actual values programmatically. This separates design from content, enabling automated document generation, batch processing, and server-side mass personalization workflows.
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
> **Reading time:** 10 minutes
|
|
9
|
+
> **Reading time:** 12 minutes
|
|
16
10
|
>
|
|
17
11
|
> **Resources:**
|
|
18
12
|
>
|
|
19
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
20
|
-
>
|
|
21
|
-
> - [
|
|
22
|
-
>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
EffectsAssetSource,
|
|
33
|
-
FiltersAssetSource,
|
|
34
|
-
PagePresetsAssetSource,
|
|
35
|
-
StickerAssetSource,
|
|
36
|
-
TextAssetSource,
|
|
37
|
-
TextComponentAssetSource,
|
|
38
|
-
TypefaceAssetSource,
|
|
39
|
-
UploadAssetSources,
|
|
40
|
-
VectorShapeAssetSource
|
|
41
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
42
|
-
import { DesignEditorConfig } from './design-editor/plugin';
|
|
43
|
-
import packageJson from './package.json';
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-templates-dynamic-content-text-variables-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-templates-dynamic-content-text-variables-server-js)
|
|
18
|
+
|
|
19
|
+
```typescript file=@cesdk_web_examples/guides-create-templates-dynamic-content-text-variables-server-js/server-js.ts reference-only
|
|
20
|
+
import CreativeEngine from '@cesdk/node';
|
|
21
|
+
import { config } from 'dotenv';
|
|
22
|
+
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
23
|
+
|
|
24
|
+
// Load environment variables
|
|
25
|
+
config();
|
|
44
26
|
|
|
45
27
|
/**
|
|
46
|
-
* CE.SDK
|
|
28
|
+
* CE.SDK Server Guide: Text Variables
|
|
47
29
|
*
|
|
48
|
-
* Demonstrates text variable management in
|
|
30
|
+
* Demonstrates text variable management in headless Node.js environment:
|
|
49
31
|
* - Discovering variables with findAll()
|
|
50
32
|
* - Creating and updating variables with setString()
|
|
51
33
|
* - Reading variable values with getString()
|
|
52
34
|
* - Binding variables to text blocks with {{variable}} tokens
|
|
53
35
|
* - Detecting variable references with referencesAnyVariables()
|
|
54
36
|
* - Removing variables with remove()
|
|
55
|
-
* -
|
|
37
|
+
* - Exporting personalized designs to PNG
|
|
56
38
|
*/
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const pageWidth = engine.block.getWidth(page);
|
|
103
|
-
const pageHeight = engine.block.getHeight(page);
|
|
104
|
-
|
|
105
|
-
// Localize variable labels that appear in the Variables panel UI
|
|
106
|
-
cesdk.i18n.setTranslations({
|
|
107
|
-
en: {
|
|
108
|
-
'variables.firstName.label': 'First Name',
|
|
109
|
-
'variables.lastName.label': 'Last Name',
|
|
110
|
-
'variables.email.label': 'Email Address',
|
|
111
|
-
'variables.company.label': 'Company Name',
|
|
112
|
-
'variables.title.label': 'Job Title'
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Pattern 1: Discover all existing variables in the scene
|
|
117
|
-
// This is useful when loading templates to see what variables need values
|
|
118
|
-
const existingVariables = engine.variable.findAll();
|
|
119
|
-
// eslint-disable-next-line no-console
|
|
120
|
-
console.log('Existing variables:', existingVariables); // []
|
|
121
|
-
|
|
122
|
-
// Pattern 2: Create and update text variables
|
|
123
|
-
// If a variable doesn't exist, setString() creates it
|
|
124
|
-
// If it already exists, setString() updates its value
|
|
125
|
-
engine.variable.setString('firstName', 'Alex');
|
|
126
|
-
engine.variable.setString('lastName', 'Smith');
|
|
127
|
-
engine.variable.setString('email', 'alex.smith@example.com');
|
|
128
|
-
engine.variable.setString('company', 'IMG.LY');
|
|
129
|
-
engine.variable.setString('title', 'Creative Developer');
|
|
130
|
-
|
|
131
|
-
// Pattern 3: Read variable values at runtime
|
|
132
|
-
const firstName = engine.variable.getString('firstName');
|
|
133
|
-
// eslint-disable-next-line no-console
|
|
134
|
-
console.log('First name variable:', firstName); // 'Alex'
|
|
135
|
-
|
|
136
|
-
// Create a single comprehensive text block demonstrating all variable patterns
|
|
137
|
-
const textBlock = engine.block.create('text');
|
|
138
|
-
|
|
139
|
-
// Multi-line text combining:
|
|
140
|
-
// - Single variable ({{firstName}})
|
|
141
|
-
// - Multiple variables ({{firstName}} {{lastName}})
|
|
142
|
-
// - Variables in context (Email: {{email}})
|
|
143
|
-
const textContent = `Hello, {{firstName}}!
|
|
39
|
+
|
|
40
|
+
// Initialize CE.SDK engine in headless mode
|
|
41
|
+
const engine = await CreativeEngine.init({
|
|
42
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
|
|
43
|
+
// license: process.env.CESDK_LICENSE, // Optional (trial mode available)
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
try {
|
|
47
|
+
// Create a design scene with specific page dimensions
|
|
48
|
+
engine.scene.create('VerticalStack', {
|
|
49
|
+
page: { size: { width: 1920, height: 1080 } },
|
|
50
|
+
});
|
|
51
|
+
const page = engine.block.findByType('page')[0];
|
|
52
|
+
|
|
53
|
+
const pageWidth = engine.block.getWidth(page);
|
|
54
|
+
const pageHeight = engine.block.getHeight(page);
|
|
55
|
+
|
|
56
|
+
// Discover all existing variables in the scene
|
|
57
|
+
// This is useful when loading templates to see what variables need values
|
|
58
|
+
const existingVariables = engine.variable.findAll();
|
|
59
|
+
// eslint-disable-next-line no-console
|
|
60
|
+
console.log('Existing variables:', existingVariables); // []
|
|
61
|
+
|
|
62
|
+
// Create and update text variables
|
|
63
|
+
// If a variable doesn't exist, setString() creates it
|
|
64
|
+
// If it already exists, setString() updates its value
|
|
65
|
+
engine.variable.setString('firstName', 'Alex');
|
|
66
|
+
engine.variable.setString('lastName', 'Smith');
|
|
67
|
+
engine.variable.setString('email', 'alex.smith@example.com');
|
|
68
|
+
engine.variable.setString('company', 'IMG.LY');
|
|
69
|
+
engine.variable.setString('title', 'Creative Developer');
|
|
70
|
+
|
|
71
|
+
// Read variable values at runtime
|
|
72
|
+
const firstName = engine.variable.getString('firstName');
|
|
73
|
+
// eslint-disable-next-line no-console
|
|
74
|
+
console.log('First name variable:', firstName); // 'Alex'
|
|
75
|
+
|
|
76
|
+
// Create a text block demonstrating variable binding patterns
|
|
77
|
+
const textBlock = engine.block.create('text');
|
|
78
|
+
|
|
79
|
+
// Multi-line text combining:
|
|
80
|
+
// - Single variable ({{firstName}})
|
|
81
|
+
// - Multiple variables ({{firstName}} {{lastName}})
|
|
82
|
+
// - Variables in context (Email: {{email}})
|
|
83
|
+
const textContent = `Hello, {{firstName}}!
|
|
144
84
|
|
|
145
85
|
Full Name: {{firstName}} {{lastName}}
|
|
146
86
|
Email: {{email}}
|
|
147
87
|
Position: {{title}}
|
|
148
88
|
Company: {{company}}`;
|
|
149
89
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
// eslint-disable-next-line no-console
|
|
191
|
-
console.log('Final variables in scene:', finalVariables);
|
|
192
|
-
// Expected: ['firstName', 'lastName', 'email', 'company', 'title']
|
|
193
|
-
|
|
194
|
-
// Build a custom Variables Manager panel
|
|
195
|
-
// CE.SDK doesn't include a built-in UI for creating/managing variables,
|
|
196
|
-
// so you can build one using the Panel Builder API
|
|
197
|
-
cesdk.ui.registerPanel(
|
|
198
|
-
'ly.img.variablesManager',
|
|
199
|
-
({ builder, engine: panelEngine, state }) => {
|
|
200
|
-
const { Section, TextInput, Button } = builder;
|
|
201
|
-
|
|
202
|
-
// State for creating new variables
|
|
203
|
-
const newVariableName = state('newVariableName', '');
|
|
204
|
-
const newVariableValue = state('newVariableValue', '');
|
|
205
|
-
|
|
206
|
-
// Section: Create New Variable
|
|
207
|
-
Section('create-variable', {
|
|
208
|
-
title: 'Create New Variable',
|
|
209
|
-
children: () => {
|
|
210
|
-
TextInput('new-name', {
|
|
211
|
-
inputLabel: 'Variable Name',
|
|
212
|
-
...newVariableName
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
TextInput('new-value', {
|
|
216
|
-
inputLabel: 'Default Value',
|
|
217
|
-
...newVariableValue
|
|
218
|
-
});
|
|
219
|
-
|
|
220
|
-
Button('create-btn', {
|
|
221
|
-
label: 'Create Variable',
|
|
222
|
-
color: 'accent',
|
|
223
|
-
isDisabled: !newVariableName.value.trim(),
|
|
224
|
-
onClick: () => {
|
|
225
|
-
const name = newVariableName.value.trim();
|
|
226
|
-
if (name) {
|
|
227
|
-
panelEngine.variable.setString(name, newVariableValue.value);
|
|
228
|
-
newVariableName.setValue('');
|
|
229
|
-
newVariableValue.setValue('');
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
// Section: Existing Variables
|
|
237
|
-
const variables = panelEngine.variable.findAll();
|
|
238
|
-
Section('existing-variables', {
|
|
239
|
-
title: `Manage Variables (${variables.length})`,
|
|
240
|
-
children: () => {
|
|
241
|
-
if (variables.length === 0) {
|
|
242
|
-
builder.Text('no-vars', { content: 'No variables defined yet.' });
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
variables.forEach((varName) => {
|
|
247
|
-
TextInput(`var-${varName}`, {
|
|
248
|
-
inputLabel: varName,
|
|
249
|
-
value: panelEngine.variable.getString(varName),
|
|
250
|
-
setValue: (value) => {
|
|
251
|
-
panelEngine.variable.setString(varName, value);
|
|
252
|
-
},
|
|
253
|
-
suffix: {
|
|
254
|
-
icon: '@imgly/TrashBin',
|
|
255
|
-
tooltip: 'Delete variable',
|
|
256
|
-
onClick: () => {
|
|
257
|
-
panelEngine.variable.remove(varName);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
// Set the panel title
|
|
268
|
-
cesdk.i18n.setTranslations({
|
|
269
|
-
en: {
|
|
270
|
-
'panel.ly.img.variablesManager': 'Custom Variables Panel'
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
// Add a dock button to open the panel
|
|
275
|
-
cesdk.ui.registerComponent('variablesManager.dock', ({ builder: b }) => {
|
|
276
|
-
const isPanelOpen = cesdk.ui.isPanelOpen('ly.img.variablesManager');
|
|
277
|
-
b.Button('variables-dock-btn', {
|
|
278
|
-
label: 'Variables',
|
|
279
|
-
icon: '@imgly/Text',
|
|
280
|
-
onClick: () => {
|
|
281
|
-
if (isPanelOpen) {
|
|
282
|
-
cesdk.ui.closePanel('ly.img.variablesManager');
|
|
283
|
-
} else {
|
|
284
|
-
cesdk.ui.openPanel('ly.img.variablesManager');
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
isActive: isPanelOpen
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
// Add button to dock
|
|
292
|
-
cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
|
|
293
|
-
...cesdk.ui.getComponentOrder({ in: 'ly.img.dock' }),
|
|
294
|
-
'ly.img.spacer',
|
|
295
|
-
'variablesManager.dock'
|
|
296
|
-
]);
|
|
90
|
+
engine.block.replaceText(textBlock, textContent);
|
|
91
|
+
engine.block.setWidthMode(textBlock, 'Auto');
|
|
92
|
+
engine.block.setHeightMode(textBlock, 'Auto');
|
|
93
|
+
engine.block.setFloat(textBlock, 'text/fontSize', 24);
|
|
94
|
+
engine.block.appendChild(page, textBlock);
|
|
95
|
+
|
|
96
|
+
// Center the text block on the page
|
|
97
|
+
const frameX = engine.block.getFrameX(textBlock);
|
|
98
|
+
const frameY = engine.block.getFrameY(textBlock);
|
|
99
|
+
const frameWidth = engine.block.getFrameWidth(textBlock);
|
|
100
|
+
const frameHeight = engine.block.getFrameHeight(textBlock);
|
|
101
|
+
|
|
102
|
+
engine.block.setPositionX(textBlock, (pageWidth - frameWidth) / 2 - frameX);
|
|
103
|
+
engine.block.setPositionY(textBlock, (pageHeight - frameHeight) / 2 - frameY);
|
|
104
|
+
|
|
105
|
+
// Check if the block contains variable references
|
|
106
|
+
const hasVariables = engine.block.referencesAnyVariables(textBlock);
|
|
107
|
+
// eslint-disable-next-line no-console
|
|
108
|
+
console.log('Text block has variables:', hasVariables); // true
|
|
109
|
+
|
|
110
|
+
// Create and then remove a temporary variable to demonstrate removal
|
|
111
|
+
engine.variable.setString('tempVariable', 'Temporary Value');
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.log('Variables before removal:', engine.variable.findAll());
|
|
114
|
+
|
|
115
|
+
// Remove the temporary variable
|
|
116
|
+
engine.variable.remove('tempVariable');
|
|
117
|
+
// eslint-disable-next-line no-console
|
|
118
|
+
console.log('Variables after removal:', engine.variable.findAll());
|
|
119
|
+
|
|
120
|
+
// Final check: List all variables in the scene
|
|
121
|
+
const finalVariables = engine.variable.findAll();
|
|
122
|
+
// eslint-disable-next-line no-console
|
|
123
|
+
console.log('Final variables in scene:', finalVariables);
|
|
124
|
+
// Expected: ['firstName', 'lastName', 'email', 'company', 'title']
|
|
125
|
+
|
|
126
|
+
// Export the result to PNG
|
|
127
|
+
const outputDir = './output';
|
|
128
|
+
if (!existsSync(outputDir)) {
|
|
129
|
+
mkdirSync(outputDir, { recursive: true });
|
|
297
130
|
}
|
|
298
|
-
}
|
|
299
131
|
|
|
300
|
-
export
|
|
132
|
+
const blob = await engine.block.export(page, { mimeType: 'image/png' });
|
|
133
|
+
const buffer = Buffer.from(await blob.arrayBuffer());
|
|
134
|
+
writeFileSync(`${outputDir}/text-variables-result.png`, buffer);
|
|
135
|
+
|
|
136
|
+
// eslint-disable-next-line no-console
|
|
137
|
+
console.log('✓ Exported result to output/text-variables-result.png');
|
|
138
|
+
} finally {
|
|
139
|
+
// Always dispose the engine to free resources
|
|
140
|
+
engine.dispose();
|
|
141
|
+
}
|
|
301
142
|
```
|
|
302
143
|
|
|
303
|
-
This guide covers how to
|
|
144
|
+
This guide covers how to programmatically manage text variables for automated document generation and mass personalization in headless Node.js environments.
|
|
304
145
|
|
|
305
146
|
## Introduction
|
|
306
147
|
|
|
307
|
-
Text variables allow you to design templates once and personalize them with different content for each use.
|
|
308
|
-
|
|
309
|
-
- **Automated document generation** - Certificates, invoices, reports
|
|
310
|
-
- **Mass personalization** - Marketing materials with recipient data
|
|
311
|
-
- **Data-driven design** - Templates populated from JSON, CSV, or APIs
|
|
312
|
-
- **Form-based editing** - Expose variables through custom interfaces
|
|
313
|
-
|
|
314
|
-
## Using the Built-in Insert Variable UI
|
|
315
|
-
|
|
316
|
-
CE.SDK includes an _Insert Variable_ dropdown in the text editing canvas menu that allows template authors to insert variable tokens into text blocks.
|
|
317
|
-
|
|
318
|
-
> **Caution:** The Insert Variable dropdown **only appears when at least one variable is
|
|
319
|
-
> already defined** in the scene. If no variables exist, the dropdown will not
|
|
320
|
-
> be visible. You must first create variables programmatically using
|
|
321
|
-
> `engine.variable.setString()` before the UI becomes available.
|
|
148
|
+
Text variables allow you to design templates once and personalize them with different content for each use. In server-side environments, this enables powerful automation workflows where CE.SDK Engine runs headlessly to generate personalized designs at scale.
|
|
322
149
|
|
|
323
|
-
|
|
150
|
+
### Key Use Cases
|
|
324
151
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
The dropdown allows you to:
|
|
330
|
-
|
|
331
|
-
- **Insert tokens** into text blocks using `{{variableName}}` syntax
|
|
332
|
-
- **Select from all defined variables** in the current scene
|
|
333
|
-
|
|
334
|
-
Variables appear with localized labels when you configure translations through the i18n API.
|
|
335
|
-
|
|
336
|
-
> **Note:** CE.SDK does not include a built-in UI for end users to _create_ or _manage_
|
|
337
|
-
> variables — the Insert Variable dropdown only lets users insert existing
|
|
338
|
-
> variables into text. If you need a UI for creating and editing variables, see
|
|
339
|
-
> [Building a Variables Manager Panel](#building-a-variables-manager-panel)
|
|
340
|
-
> below.
|
|
152
|
+
- **Automated Document Generation** - Certificates, invoices, reports with dynamic data
|
|
153
|
+
- **Mass Personalization** - Marketing materials populated from databases or CSV files
|
|
154
|
+
- **Server-Side Rendering** - Cloud functions that generate personalized graphics on demand
|
|
155
|
+
- **Batch Processing** - Generate thousands of unique designs from a single template
|
|
341
156
|
|
|
342
157
|
## Discovering Variables
|
|
343
158
|
|
|
344
159
|
When working with templates that already contain variables, discover what variables exist before populating them with values.
|
|
345
160
|
|
|
346
161
|
```typescript highlight-discover-variables
|
|
347
|
-
//
|
|
162
|
+
// Discover all existing variables in the scene
|
|
348
163
|
// This is useful when loading templates to see what variables need values
|
|
349
164
|
const existingVariables = engine.variable.findAll();
|
|
350
165
|
// eslint-disable-next-line no-console
|
|
@@ -358,7 +173,7 @@ The `findAll()` method returns an array of all variable keys defined in the scen
|
|
|
358
173
|
Create or update variables using `setString()`. If the variable doesn't exist, it will be created. If it already exists, its value will be updated.
|
|
359
174
|
|
|
360
175
|
```typescript highlight-create-update-variables
|
|
361
|
-
//
|
|
176
|
+
// Create and update text variables
|
|
362
177
|
// If a variable doesn't exist, setString() creates it
|
|
363
178
|
// If it already exists, setString() updates its value
|
|
364
179
|
engine.variable.setString('firstName', 'Alex');
|
|
@@ -368,15 +183,14 @@ engine.variable.setString('company', 'IMG.LY');
|
|
|
368
183
|
engine.variable.setString('title', 'Creative Developer');
|
|
369
184
|
```
|
|
370
185
|
|
|
371
|
-
> **Note:** Variable keys are case-sensitive. `{{
|
|
372
|
-
> variables.
|
|
186
|
+
> **Note:** Variable keys are case-sensitive. `{{Name}}` and `{{name}}` are different variables. Use consistent naming conventions across your templates.
|
|
373
187
|
|
|
374
188
|
## Reading Variable Values
|
|
375
189
|
|
|
376
|
-
Retrieve the current value of a variable at runtime using `getString()`. This is useful for validation or
|
|
190
|
+
Retrieve the current value of a variable at runtime using `getString()`. This is useful for validation or logging current values in automation pipelines.
|
|
377
191
|
|
|
378
192
|
```typescript highlight-read-variable-value
|
|
379
|
-
//
|
|
193
|
+
// Read variable values at runtime
|
|
380
194
|
const firstName = engine.variable.getString('firstName');
|
|
381
195
|
// eslint-disable-next-line no-console
|
|
382
196
|
console.log('First name variable:', firstName); // 'Alex'
|
|
@@ -384,59 +198,59 @@ console.log('First name variable:', firstName); // 'Alex'
|
|
|
384
198
|
|
|
385
199
|
## Binding Variables to Text Blocks
|
|
386
200
|
|
|
387
|
-
Insert variable tokens directly into text block content using the `{{variableName}}` syntax. CE.SDK automatically detects and resolves these tokens at render time.
|
|
201
|
+
Insert variable tokens directly into text block content using the `{{variableName}}` syntax. CE.SDK Engine automatically detects and resolves these tokens at render time.
|
|
388
202
|
|
|
389
203
|
### Single Variable
|
|
390
204
|
|
|
391
205
|
```typescript highlight-single-variable-binding
|
|
392
|
-
// Create a
|
|
393
|
-
const textBlock = engine.block.create('text');
|
|
206
|
+
// Create a text block demonstrating variable binding patterns
|
|
207
|
+
const textBlock = engine.block.create('text');
|
|
394
208
|
|
|
395
|
-
// Multi-line text combining:
|
|
396
|
-
// - Single variable ({{firstName}})
|
|
397
|
-
// - Multiple variables ({{firstName}} {{lastName}})
|
|
398
|
-
// - Variables in context (Email: {{email}})
|
|
399
|
-
const textContent = `Hello, {{firstName}}!
|
|
209
|
+
// Multi-line text combining:
|
|
210
|
+
// - Single variable ({{firstName}})
|
|
211
|
+
// - Multiple variables ({{firstName}} {{lastName}})
|
|
212
|
+
// - Variables in context (Email: {{email}})
|
|
213
|
+
const textContent = `Hello, {{firstName}}!
|
|
400
214
|
|
|
401
215
|
Full Name: {{firstName}} {{lastName}}
|
|
402
216
|
Email: {{email}}
|
|
403
217
|
Position: {{title}}
|
|
404
218
|
Company: {{company}}`;
|
|
405
219
|
|
|
406
|
-
engine.block.replaceText(textBlock, textContent);
|
|
407
|
-
engine.block.setWidthMode(textBlock, 'Auto');
|
|
408
|
-
engine.block.setHeightMode(textBlock, 'Auto');
|
|
409
|
-
engine.block.setFloat(textBlock, 'text/fontSize',
|
|
410
|
-
engine.block.appendChild(page, textBlock);
|
|
220
|
+
engine.block.replaceText(textBlock, textContent);
|
|
221
|
+
engine.block.setWidthMode(textBlock, 'Auto');
|
|
222
|
+
engine.block.setHeightMode(textBlock, 'Auto');
|
|
223
|
+
engine.block.setFloat(textBlock, 'text/fontSize', 24);
|
|
224
|
+
engine.block.appendChild(page, textBlock);
|
|
411
225
|
```
|
|
412
226
|
|
|
413
227
|
### Multiple Variables
|
|
414
228
|
|
|
415
|
-
Combine multiple variables in a single text block:
|
|
229
|
+
Combine multiple variables in a single text block for complex text templates:
|
|
416
230
|
|
|
417
231
|
```typescript highlight-multiple-variable-binding
|
|
418
|
-
// Create a
|
|
419
|
-
const textBlock = engine.block.create('text');
|
|
232
|
+
// Create a text block demonstrating variable binding patterns
|
|
233
|
+
const textBlock = engine.block.create('text');
|
|
420
234
|
|
|
421
|
-
// Multi-line text combining:
|
|
422
|
-
// - Single variable ({{firstName}})
|
|
423
|
-
// - Multiple variables ({{firstName}} {{lastName}})
|
|
424
|
-
// - Variables in context (Email: {{email}})
|
|
425
|
-
const textContent = `Hello, {{firstName}}!
|
|
235
|
+
// Multi-line text combining:
|
|
236
|
+
// - Single variable ({{firstName}})
|
|
237
|
+
// - Multiple variables ({{firstName}} {{lastName}})
|
|
238
|
+
// - Variables in context (Email: {{email}})
|
|
239
|
+
const textContent = `Hello, {{firstName}}!
|
|
426
240
|
|
|
427
241
|
Full Name: {{firstName}} {{lastName}}
|
|
428
242
|
Email: {{email}}
|
|
429
243
|
Position: {{title}}
|
|
430
244
|
Company: {{company}}`;
|
|
431
245
|
|
|
432
|
-
engine.block.replaceText(textBlock, textContent);
|
|
433
|
-
engine.block.setWidthMode(textBlock, 'Auto');
|
|
434
|
-
engine.block.setHeightMode(textBlock, 'Auto');
|
|
435
|
-
engine.block.setFloat(textBlock, 'text/fontSize',
|
|
436
|
-
engine.block.appendChild(page, textBlock);
|
|
246
|
+
engine.block.replaceText(textBlock, textContent);
|
|
247
|
+
engine.block.setWidthMode(textBlock, 'Auto');
|
|
248
|
+
engine.block.setHeightMode(textBlock, 'Auto');
|
|
249
|
+
engine.block.setFloat(textBlock, 'text/fontSize', 24);
|
|
250
|
+
engine.block.appendChild(page, textBlock);
|
|
437
251
|
```
|
|
438
252
|
|
|
439
|
-
The variables resolve in place, maintaining the surrounding text and formatting.
|
|
253
|
+
The variables resolve in place, maintaining the surrounding text and formatting. Use this for business cards, certificates, or any template requiring multiple personalization points.
|
|
440
254
|
|
|
441
255
|
## Detecting Variable References
|
|
442
256
|
|
|
@@ -449,199 +263,48 @@ const hasVariables = engine.block.referencesAnyVariables(textBlock);
|
|
|
449
263
|
console.log('Text block has variables:', hasVariables); // true
|
|
450
264
|
```
|
|
451
265
|
|
|
452
|
-
This is useful for
|
|
266
|
+
This is useful for:
|
|
267
|
+
|
|
268
|
+
- Identifying which blocks need variable values before export
|
|
269
|
+
- Implementing validation logic in automation workflows
|
|
270
|
+
- Filtering blocks that require data population
|
|
453
271
|
|
|
454
272
|
## Removing Variables
|
|
455
273
|
|
|
456
274
|
Remove unused variables from the scene with `remove()`. This cleans up the variable store when certain variables are no longer needed.
|
|
457
275
|
|
|
458
276
|
```typescript highlight-remove-variable
|
|
459
|
-
// Create and then remove a temporary variable to demonstrate removal
|
|
460
|
-
engine.variable.setString('tempVariable', 'Temporary Value');
|
|
461
|
-
// eslint-disable-next-line no-console
|
|
462
|
-
console.log('Variables before removal:', engine.variable.findAll());
|
|
463
|
-
|
|
464
|
-
// Remove the temporary variable
|
|
465
|
-
engine.variable.remove('tempVariable');
|
|
466
|
-
// eslint-disable-next-line no-console
|
|
467
|
-
console.log('Variables after removal:', engine.variable.findAll());
|
|
277
|
+
// Create and then remove a temporary variable to demonstrate removal
|
|
278
|
+
engine.variable.setString('tempVariable', 'Temporary Value');
|
|
279
|
+
// eslint-disable-next-line no-console
|
|
280
|
+
console.log('Variables before removal:', engine.variable.findAll());
|
|
281
|
+
|
|
282
|
+
// Remove the temporary variable
|
|
283
|
+
engine.variable.remove('tempVariable');
|
|
284
|
+
// eslint-disable-next-line no-console
|
|
285
|
+
console.log('Variables after removal:', engine.variable.findAll());
|
|
468
286
|
```
|
|
469
287
|
|
|
470
|
-
After removal,
|
|
471
|
-
|
|
472
|
-
## Localizing Variable Labels
|
|
473
|
-
|
|
474
|
-
In CE.SDK (with UI), display friendly labels for variables in the inspector panel using i18n translations. Map variable keys to human-readable names that appear in the UI.
|
|
475
|
-
|
|
476
|
-
```typescript highlight-localize-variables
|
|
477
|
-
// Localize variable labels that appear in the Variables panel UI
|
|
478
|
-
cesdk.i18n.setTranslations({
|
|
479
|
-
en: {
|
|
480
|
-
'variables.firstName.label': 'First Name',
|
|
481
|
-
'variables.lastName.label': 'Last Name',
|
|
482
|
-
'variables.email.label': 'Email Address',
|
|
483
|
-
'variables.company.label': 'Company Name',
|
|
484
|
-
'variables.title.label': 'Job Title'
|
|
485
|
-
}
|
|
486
|
-
});
|
|
487
|
-
```
|
|
488
|
-
|
|
489
|
-
Without localization, the Insert Variable dropdown shows the technical variable key (e.g., `firstName`). With localization, it shows the friendly label (e.g., "First Name").
|
|
490
|
-
|
|
491
|
-
## Combining with Other Features
|
|
492
|
-
|
|
493
|
-
Text variables work seamlessly with other CE.SDK template features:
|
|
494
|
-
|
|
495
|
-
### With Placeholders
|
|
496
|
-
|
|
497
|
-
Use **placeholders** for dynamic images and videos while **variables** personalize text content. This combination enables fully dynamic templates where both visuals and copy change per use case.
|
|
498
|
-
|
|
499
|
-
### With Editing Constraints
|
|
500
|
-
|
|
501
|
-
Lock layout elements while allowing only variable token editing. This ensures brand consistency while enabling content personalization.
|
|
502
|
-
|
|
503
|
-
### With Role-Based Editing
|
|
504
|
-
|
|
505
|
-
Show the Insert Variable dropdown only to template authors (Creator role) and hide it from end users (Adopter role). This guides the editing experience based on user permissions.
|
|
506
|
-
|
|
507
|
-
## Building a Variables Manager Panel
|
|
508
|
-
|
|
509
|
-
CE.SDK's built-in Insert Variable dropdown only allows users to insert existing variables — it doesn't provide a UI for creating or managing variables. If you want end users to create, edit, and delete variables through the editor interface, you can build a custom panel using the Panel Builder API.
|
|
510
|
-
|
|
511
|
-
The following example creates a Variables Manager panel with:
|
|
512
|
-
|
|
513
|
-
- A form to create new variables with a name and default value
|
|
514
|
-
- A list of existing variables with editable values and delete buttons
|
|
515
|
-
- A dock button to toggle the panel
|
|
516
|
-
|
|
517
|
-
```typescript highlight-variables-manager-panel
|
|
518
|
-
// Build a custom Variables Manager panel
|
|
519
|
-
// CE.SDK doesn't include a built-in UI for creating/managing variables,
|
|
520
|
-
// so you can build one using the Panel Builder API
|
|
521
|
-
cesdk.ui.registerPanel(
|
|
522
|
-
'ly.img.variablesManager',
|
|
523
|
-
({ builder, engine: panelEngine, state }) => {
|
|
524
|
-
const { Section, TextInput, Button } = builder;
|
|
525
|
-
|
|
526
|
-
// State for creating new variables
|
|
527
|
-
const newVariableName = state('newVariableName', '');
|
|
528
|
-
const newVariableValue = state('newVariableValue', '');
|
|
529
|
-
|
|
530
|
-
// Section: Create New Variable
|
|
531
|
-
Section('create-variable', {
|
|
532
|
-
title: 'Create New Variable',
|
|
533
|
-
children: () => {
|
|
534
|
-
TextInput('new-name', {
|
|
535
|
-
inputLabel: 'Variable Name',
|
|
536
|
-
...newVariableName
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
TextInput('new-value', {
|
|
540
|
-
inputLabel: 'Default Value',
|
|
541
|
-
...newVariableValue
|
|
542
|
-
});
|
|
543
|
-
|
|
544
|
-
Button('create-btn', {
|
|
545
|
-
label: 'Create Variable',
|
|
546
|
-
color: 'accent',
|
|
547
|
-
isDisabled: !newVariableName.value.trim(),
|
|
548
|
-
onClick: () => {
|
|
549
|
-
const name = newVariableName.value.trim();
|
|
550
|
-
if (name) {
|
|
551
|
-
panelEngine.variable.setString(name, newVariableValue.value);
|
|
552
|
-
newVariableName.setValue('');
|
|
553
|
-
newVariableValue.setValue('');
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
});
|
|
557
|
-
}
|
|
558
|
-
});
|
|
559
|
-
|
|
560
|
-
// Section: Existing Variables
|
|
561
|
-
const variables = panelEngine.variable.findAll();
|
|
562
|
-
Section('existing-variables', {
|
|
563
|
-
title: `Manage Variables (${variables.length})`,
|
|
564
|
-
children: () => {
|
|
565
|
-
if (variables.length === 0) {
|
|
566
|
-
builder.Text('no-vars', { content: 'No variables defined yet.' });
|
|
567
|
-
return;
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
variables.forEach((varName) => {
|
|
571
|
-
TextInput(`var-${varName}`, {
|
|
572
|
-
inputLabel: varName,
|
|
573
|
-
value: panelEngine.variable.getString(varName),
|
|
574
|
-
setValue: (value) => {
|
|
575
|
-
panelEngine.variable.setString(varName, value);
|
|
576
|
-
},
|
|
577
|
-
suffix: {
|
|
578
|
-
icon: '@imgly/TrashBin',
|
|
579
|
-
tooltip: 'Delete variable',
|
|
580
|
-
onClick: () => {
|
|
581
|
-
panelEngine.variable.remove(varName);
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
});
|
|
585
|
-
});
|
|
586
|
-
}
|
|
587
|
-
});
|
|
588
|
-
}
|
|
589
|
-
);
|
|
288
|
+
> **Warning:** After removal, text blocks that reference removed variables will display the token literally (e.g., `{{removedVar}}`). Only remove variables after ensuring no blocks reference them.
|
|
590
289
|
|
|
591
|
-
|
|
592
|
-
cesdk.i18n.setTranslations({
|
|
593
|
-
en: {
|
|
594
|
-
'panel.ly.img.variablesManager': 'Custom Variables Panel'
|
|
595
|
-
}
|
|
596
|
-
});
|
|
597
|
-
|
|
598
|
-
// Add a dock button to open the panel
|
|
599
|
-
cesdk.ui.registerComponent('variablesManager.dock', ({ builder: b }) => {
|
|
600
|
-
const isPanelOpen = cesdk.ui.isPanelOpen('ly.img.variablesManager');
|
|
601
|
-
b.Button('variables-dock-btn', {
|
|
602
|
-
label: 'Variables',
|
|
603
|
-
icon: '@imgly/Text',
|
|
604
|
-
onClick: () => {
|
|
605
|
-
if (isPanelOpen) {
|
|
606
|
-
cesdk.ui.closePanel('ly.img.variablesManager');
|
|
607
|
-
} else {
|
|
608
|
-
cesdk.ui.openPanel('ly.img.variablesManager');
|
|
609
|
-
}
|
|
610
|
-
},
|
|
611
|
-
isActive: isPanelOpen
|
|
612
|
-
});
|
|
613
|
-
});
|
|
614
|
-
|
|
615
|
-
// Add button to dock
|
|
616
|
-
cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
|
|
617
|
-
...cesdk.ui.getComponentOrder({ in: 'ly.img.dock' }),
|
|
618
|
-
'ly.img.spacer',
|
|
619
|
-
'variablesManager.dock'
|
|
620
|
-
]);
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
This panel integrates with the dock and provides a complete variable management experience. Users can create new variables, edit existing values, and remove variables they no longer need.
|
|
290
|
+
## API Reference
|
|
624
291
|
|
|
625
|
-
|
|
626
|
-
|
|
292
|
+
| Method | Description |
|
|
293
|
+
| --- | --- |
|
|
294
|
+
| `engine.variable.findAll()` | Get array of all variable keys in the scene |
|
|
295
|
+
| `engine.variable.setString()` | Create or update a text variable |
|
|
296
|
+
| `engine.variable.getString()` | Read the current value of a variable |
|
|
297
|
+
| `engine.variable.remove()` | Delete a variable from the scene |
|
|
298
|
+
| `engine.block.referencesAnyVariables()` | Check if a block contains variable tokens |
|
|
299
|
+
| `engine.block.replaceText()` | Set text content (supports variable tokens) |
|
|
627
300
|
|
|
628
|
-
## API Reference
|
|
629
301
|
|
|
630
|
-
| Method | Description |
|
|
631
|
-
| --------------------------------------- | ------------------------------------------- |
|
|
632
|
-
| `engine.variable.findAll()` | Get array of all variable keys in the scene |
|
|
633
|
-
| `engine.variable.setString()` | Create or update a text variable |
|
|
634
|
-
| `engine.variable.getString()` | Read the current value of a variable |
|
|
635
|
-
| `engine.variable.remove()` | Delete a variable from the scene |
|
|
636
|
-
| `engine.block.referencesAnyVariables()` | Check if a block contains variable tokens |
|
|
637
|
-
| `engine.block.replaceText()` | Set text content (supports variable tokens) |
|
|
638
|
-
| `cesdk.i18n.setTranslations()` | Set UI labels for variable names |
|
|
639
302
|
|
|
640
303
|
---
|
|
641
304
|
|
|
642
305
|
## More Resources
|
|
643
306
|
|
|
644
|
-
- **[
|
|
307
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
645
308
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
646
|
-
- **[Web Documentation](./
|
|
647
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
309
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
310
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|