@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.
Files changed (973) hide show
  1. package/README.md +51 -1
  2. package/assets/docs/guide/SKILL.md +45 -53
  3. package/assets/docs/guide/animation/create/base.md +234 -243
  4. package/assets/docs/guide/animation/create/text.md +250 -231
  5. package/assets/docs/guide/animation/create.md +197 -231
  6. package/assets/docs/guide/animation/edit.md +196 -271
  7. package/assets/docs/guide/animation/types.md +182 -185
  8. package/assets/docs/guide/animation.md +9 -6
  9. package/assets/docs/guide/api/AssetAPI.md +7 -53
  10. package/assets/docs/guide/api/BlockAPI.md +725 -648
  11. package/assets/docs/guide/api/CreativeEngine.md +7 -16
  12. package/assets/docs/guide/api/EditorAPI.md +32 -93
  13. package/assets/docs/guide/api/EventAPI.md +1 -2
  14. package/assets/docs/guide/api/SceneAPI.md +47 -98
  15. package/assets/docs/guide/api/VariableAPI.md +1 -4
  16. package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
  17. package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
  18. package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
  19. package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
  20. package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
  21. package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
  22. package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
  23. package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
  24. package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
  25. package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
  26. package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
  27. package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
  28. package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
  29. package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
  30. package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
  31. package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
  32. package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
  33. package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
  34. package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
  35. package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
  36. package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
  37. package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
  38. package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
  39. package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
  40. package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
  41. package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
  42. package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
  43. package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
  44. package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
  45. package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
  46. package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
  47. package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
  48. package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
  49. package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
  50. package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
  51. package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
  52. package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
  53. package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
  54. package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
  55. package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
  56. package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
  57. package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
  58. package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
  59. package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
  60. package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
  61. package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
  62. package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
  63. package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
  64. package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
  65. package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
  66. package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
  67. package/assets/docs/guide/api/node/interfaces/font.md +27 -0
  68. package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
  69. package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
  70. package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
  71. package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
  72. package/assets/docs/guide/api/node/interfaces/range.md +23 -0
  73. package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
  74. package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
  75. package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
  76. package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
  77. package/assets/docs/guide/api/node/interfaces/source.md +24 -0
  78. package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
  79. package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
  80. package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
  81. package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
  82. package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
  83. package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
  84. package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
  85. package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
  86. package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
  87. package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
  88. package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
  89. package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
  90. package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
  91. package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
  92. package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
  93. package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
  94. package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
  95. package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
  96. package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
  97. package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
  98. package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
  99. package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
  100. package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
  101. package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
  102. package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
  103. package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
  104. package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
  105. package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
  106. package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
  107. package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
  108. package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
  109. package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
  110. package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
  111. package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
  112. package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
  113. package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
  114. package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
  115. package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
  116. package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
  117. package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
  118. package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
  119. package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
  120. package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
  121. package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
  122. package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
  123. package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
  124. package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
  125. package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
  126. package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
  127. package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
  128. package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
  129. package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
  130. package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
  131. package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
  132. package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
  133. package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
  134. package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
  135. package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
  136. package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
  137. package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
  138. package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
  139. package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
  140. package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
  141. package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
  142. package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
  143. package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
  144. package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
  145. package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
  146. package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
  147. package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
  148. package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
  149. package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
  150. package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
  151. package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
  152. package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
  153. package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
  154. package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
  155. package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
  156. package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
  157. package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
  158. package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
  159. package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
  160. package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
  161. package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
  162. package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
  163. package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
  164. package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
  165. package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
  166. package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
  167. package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
  168. package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
  169. package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
  170. package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
  171. package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
  172. package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
  173. package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
  174. package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
  175. package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
  176. package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
  177. package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
  178. package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
  179. package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
  180. package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
  181. package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
  182. package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
  183. package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
  184. package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
  185. package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
  186. package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
  187. package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
  188. package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
  189. package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
  190. package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
  191. package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
  192. package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
  193. package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
  194. package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
  195. package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
  196. package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
  197. package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
  198. package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
  199. package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
  200. package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
  201. package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
  202. package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
  203. package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
  204. package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
  205. package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
  206. package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
  207. package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
  208. package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
  209. package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
  210. package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
  211. package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
  212. package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
  213. package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
  214. package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
  215. package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
  216. package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
  217. package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
  218. package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
  219. package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
  220. package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
  221. package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
  222. package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
  223. package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
  224. package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
  225. package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
  226. package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
  227. package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
  228. package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
  229. package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
  230. package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
  231. package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
  232. package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
  233. package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
  234. package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
  235. package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
  236. package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
  237. package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
  238. package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
  239. package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
  240. package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
  241. package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
  242. package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
  243. package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
  244. package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
  245. package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
  246. package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
  247. package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
  248. package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
  249. package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
  250. package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
  251. package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
  252. package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
  253. package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
  254. package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
  255. package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
  256. package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
  257. package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
  258. package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
  259. package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
  260. package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
  261. package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
  262. package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
  263. package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
  264. package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
  265. package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
  266. package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
  267. package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
  268. package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
  269. package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
  270. package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
  271. package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
  272. package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
  273. package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
  274. package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
  275. package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
  276. package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
  277. package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
  278. package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
  279. package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
  280. package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
  281. package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
  282. package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
  283. package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
  284. package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
  285. package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
  286. package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
  287. package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
  288. package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
  289. package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
  290. package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
  291. package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
  292. package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
  293. package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
  294. package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
  295. package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
  296. package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
  297. package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
  298. package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
  299. package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
  300. package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
  301. package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
  302. package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
  303. package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
  304. package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
  305. package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
  306. package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
  307. package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
  308. package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
  309. package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
  310. package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
  311. package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
  312. package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
  313. package/assets/docs/guide/api/types.md +5 -9
  314. package/assets/docs/guide/api-reference/overview.md +7 -7
  315. package/assets/docs/guide/automation/auto-resize.md +263 -300
  316. package/assets/docs/guide/automation/data-merge.md +246 -275
  317. package/assets/docs/guide/automation/design-generation.md +102 -31
  318. package/assets/docs/guide/automation/multi-image-generation.md +758 -0
  319. package/assets/docs/guide/automation/overview.md +21 -4
  320. package/assets/docs/guide/automation.md +10 -5
  321. package/assets/docs/guide/capabilities.md +6 -4
  322. package/assets/docs/guide/colors/adjust.md +247 -249
  323. package/assets/docs/guide/colors/apply.md +127 -138
  324. package/assets/docs/guide/colors/basics.md +126 -150
  325. package/assets/docs/guide/colors/conversion.md +171 -177
  326. package/assets/docs/guide/colors/create-color-palette.md +244 -245
  327. package/assets/docs/guide/colors/extract-colors.md +144 -0
  328. package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
  329. package/assets/docs/guide/colors/for-print/spot.md +521 -578
  330. package/assets/docs/guide/colors/for-print.md +9 -4
  331. package/assets/docs/guide/colors/for-screen/p3.md +12 -10
  332. package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
  333. package/assets/docs/guide/colors/for-screen.md +9 -4
  334. package/assets/docs/guide/colors/overview.md +6 -4
  335. package/assets/docs/guide/colors/replace.md +381 -419
  336. package/assets/docs/guide/colors.md +9 -4
  337. package/assets/docs/guide/compatibility.md +7 -5
  338. package/assets/docs/guide/concepts/architecture.md +17 -15
  339. package/assets/docs/guide/concepts/assets.md +152 -140
  340. package/assets/docs/guide/concepts/blocks.md +227 -323
  341. package/assets/docs/guide/concepts/buffers.md +147 -276
  342. package/assets/docs/guide/concepts/design-units.md +95 -145
  343. package/assets/docs/guide/concepts/editing-workflow.md +69 -183
  344. package/assets/docs/guide/concepts/events.md +80 -122
  345. package/assets/docs/guide/concepts/headless-mode.md +237 -0
  346. package/assets/docs/guide/concepts/pages.md +137 -127
  347. package/assets/docs/guide/concepts/resources.md +156 -217
  348. package/assets/docs/guide/concepts/scenes.md +191 -210
  349. package/assets/docs/guide/concepts/templating.md +118 -74
  350. package/assets/docs/guide/concepts/terminology.md +49 -47
  351. package/assets/docs/guide/concepts/undo-and-history.md +229 -303
  352. package/assets/docs/guide/concepts.md +9 -7
  353. package/assets/docs/guide/configuration.md +252 -380
  354. package/assets/docs/guide/conversion/overview.md +33 -4
  355. package/assets/docs/guide/conversion/to-base64.md +127 -167
  356. package/assets/docs/guide/conversion/to-pdf.md +24 -474
  357. package/assets/docs/guide/conversion/to-png.md +168 -211
  358. package/assets/docs/guide/conversion.md +9 -4
  359. package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
  360. package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
  361. package/assets/docs/guide/create-audio/audio/loop.md +232 -272
  362. package/assets/docs/guide/create-composition/add-background.md +237 -239
  363. package/assets/docs/guide/create-composition/blend-modes.md +118 -209
  364. package/assets/docs/guide/create-composition/collage.md +538 -320
  365. package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
  366. package/assets/docs/guide/create-composition/layer-management.md +219 -257
  367. package/assets/docs/guide/create-composition/layout.md +513 -315
  368. package/assets/docs/guide/create-composition/lock-design.md +90 -109
  369. package/assets/docs/guide/create-composition/multi-page.md +133 -113
  370. package/assets/docs/guide/create-composition/overview.md +16 -4
  371. package/assets/docs/guide/create-composition/programmatic.md +288 -344
  372. package/assets/docs/guide/create-composition.md +10 -5
  373. package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
  374. package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
  375. package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
  376. package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
  377. package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
  378. package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
  379. package/assets/docs/guide/create-templates/from-scratch.md +207 -268
  380. package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
  381. package/assets/docs/guide/create-templates/import.md +145 -161
  382. package/assets/docs/guide/create-templates/lock.md +42 -295
  383. package/assets/docs/guide/create-templates/overview.md +33 -4
  384. package/assets/docs/guide/create-templates.md +9 -5
  385. package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
  386. package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
  387. package/assets/docs/guide/create-video/control.md +352 -193
  388. package/assets/docs/guide/create-video/limitations.md +175 -280
  389. package/assets/docs/guide/create-video.md +11 -10
  390. package/assets/docs/guide/edit-image/add-watermark.md +283 -330
  391. package/assets/docs/guide/edit-image/overview.md +29 -4
  392. package/assets/docs/guide/edit-image/remove-bg.md +283 -337
  393. package/assets/docs/guide/edit-image/replace-colors.md +424 -502
  394. package/assets/docs/guide/edit-image/transform/crop.md +463 -402
  395. package/assets/docs/guide/edit-image/transform/flip.md +353 -0
  396. package/assets/docs/guide/edit-image/transform/move.md +143 -100
  397. package/assets/docs/guide/edit-image/transform/resize.md +118 -88
  398. package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
  399. package/assets/docs/guide/edit-image/transform/scale.md +230 -228
  400. package/assets/docs/guide/edit-image/transform.md +10 -5
  401. package/assets/docs/guide/edit-image.md +11 -7
  402. package/assets/docs/guide/edit-video/add-captions.md +344 -421
  403. package/assets/docs/guide/edit-video/add-watermark.md +312 -258
  404. package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
  405. package/assets/docs/guide/edit-video/redaction.md +419 -385
  406. package/assets/docs/guide/edit-video/split.md +243 -493
  407. package/assets/docs/guide/edit-video/transform/crop.md +21 -352
  408. package/assets/docs/guide/edit-video/transform/flip.md +102 -76
  409. package/assets/docs/guide/edit-video/transform/move.md +258 -310
  410. package/assets/docs/guide/edit-video/transform/resize.md +264 -428
  411. package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
  412. package/assets/docs/guide/edit-video/transform/scale.md +320 -417
  413. package/assets/docs/guide/edit-video/transform.md +10 -6
  414. package/assets/docs/guide/edit-video/trim.md +448 -494
  415. package/assets/docs/guide/engine-interface.md +51 -62
  416. package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
  417. package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
  418. package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
  419. package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
  420. package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
  421. package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
  422. package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
  423. package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
  424. package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
  425. package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
  426. package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
  427. package/assets/docs/guide/export-save-publish/export.md +14 -11
  428. package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
  429. package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
  430. package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
  431. package/assets/docs/guide/export-save-publish/save.md +167 -226
  432. package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
  433. package/assets/docs/guide/file-format-support.md +9 -9
  434. package/assets/docs/guide/fills/color.md +370 -347
  435. package/assets/docs/guide/fills/image.md +167 -196
  436. package/assets/docs/guide/fills/overview.md +6 -4
  437. package/assets/docs/guide/fills/video.md +286 -438
  438. package/assets/docs/guide/fills.md +12 -8
  439. package/assets/docs/guide/filters-and-effects/apply.md +598 -664
  440. package/assets/docs/guide/filters-and-effects/blur.md +261 -159
  441. package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
  442. package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
  443. package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
  444. package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
  445. package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
  446. package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
  447. package/assets/docs/guide/filters-and-effects/overview.md +7 -7
  448. package/assets/docs/guide/filters-and-effects/support.md +97 -132
  449. package/assets/docs/guide/filters-and-effects.md +11 -6
  450. package/assets/docs/guide/get-started/agent-skills.md +20 -18
  451. package/assets/docs/guide/get-started/build-with-ai.md +7 -4
  452. package/assets/docs/guide/get-started/bun.md +219 -0
  453. package/assets/docs/guide/get-started/deno.md +161 -0
  454. package/assets/docs/guide/get-started/mcp-server.md +6 -4
  455. package/assets/docs/guide/get-started/overview.md +11 -6
  456. package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
  457. package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
  458. package/assets/docs/guide/get-started/vanilla.md +235 -0
  459. package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
  460. package/assets/docs/guide/guides.md +10 -9
  461. package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
  462. package/assets/docs/guide/import-media/concepts.md +20 -38
  463. package/assets/docs/guide/import-media/content-json-schema.md +145 -125
  464. package/assets/docs/guide/import-media/default-assets.md +113 -161
  465. package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
  466. package/assets/docs/guide/import-media/file-format-support.md +78 -61
  467. package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
  468. package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
  469. package/assets/docs/guide/import-media/from-remote-source.md +9 -11
  470. package/assets/docs/guide/import-media/overview.md +5 -5
  471. package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
  472. package/assets/docs/guide/import-media/size-limits.md +6 -4
  473. package/assets/docs/guide/import-media/source-sets.md +190 -251
  474. package/assets/docs/guide/import-media.md +10 -8
  475. package/assets/docs/guide/insert-media/audio.md +202 -195
  476. package/assets/docs/guide/insert-media/images.md +190 -188
  477. package/assets/docs/guide/insert-media/position-and-align.md +284 -551
  478. package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
  479. package/assets/docs/guide/insert-media/videos.md +236 -203
  480. package/assets/docs/guide/insert-media.md +10 -5
  481. package/assets/docs/guide/key-capabilities.md +36 -4
  482. package/assets/docs/guide/key-concepts.md +6 -4
  483. package/assets/docs/guide/licensing.md +6 -4
  484. package/assets/docs/guide/llms-txt.md +11 -7
  485. package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
  486. package/assets/docs/guide/open-the-editor/from-image.md +157 -127
  487. package/assets/docs/guide/open-the-editor/from-template.md +131 -92
  488. package/assets/docs/guide/open-the-editor/from-video.md +204 -212
  489. package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
  490. package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
  491. package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
  492. package/assets/docs/guide/open-the-editor/import-design.md +228 -266
  493. package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
  494. package/assets/docs/guide/open-the-editor/overview.md +6 -4
  495. package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
  496. package/assets/docs/guide/open-the-editor.md +11 -9
  497. package/assets/docs/guide/outlines/overview.md +12 -4
  498. package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
  499. package/assets/docs/guide/outlines/strokes.md +218 -166
  500. package/assets/docs/guide/outlines.md +9 -4
  501. package/assets/docs/guide/overview.md +14 -6
  502. package/assets/docs/guide/performance.md +220 -113
  503. package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
  504. package/assets/docs/guide/plugins.md +10 -16
  505. package/assets/docs/guide/rules/asset-handling.md +7 -18
  506. package/assets/docs/guide/rules/common-pitfalls.md +25 -42
  507. package/assets/docs/guide/rules/content-fill-mode.md +4 -4
  508. package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
  509. package/assets/docs/guide/rules/lock-content.md +188 -231
  510. package/assets/docs/guide/rules/moderate-content.md +580 -571
  511. package/assets/docs/guide/rules/overview.md +345 -380
  512. package/assets/docs/guide/rules/silent-init-errors.md +4 -1
  513. package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
  514. package/assets/docs/guide/rules.md +10 -5
  515. package/assets/docs/guide/security.md +7 -5
  516. package/assets/docs/guide/serve-assets.md +57 -284
  517. package/assets/docs/guide/settings.md +96 -74
  518. package/assets/docs/guide/shapes.md +10 -5
  519. package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
  520. package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
  521. package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
  522. package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
  523. package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
  524. package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
  525. package/assets/docs/guide/stickers.md +9 -4
  526. package/assets/docs/guide/text/add.md +470 -482
  527. package/assets/docs/guide/text/adjust-spacing.md +179 -214
  528. package/assets/docs/guide/text/auto-size.md +210 -271
  529. package/assets/docs/guide/text/edit.md +294 -309
  530. package/assets/docs/guide/text/effects.md +154 -190
  531. package/assets/docs/guide/text/emojis.md +199 -232
  532. package/assets/docs/guide/text/language-support.md +369 -382
  533. package/assets/docs/guide/text/overview.md +41 -4
  534. package/assets/docs/guide/text/styling.md +239 -273
  535. package/assets/docs/guide/text/text-designs.md +405 -544
  536. package/assets/docs/guide/text.md +10 -9
  537. package/assets/docs/guide/to-v1-19.md +12 -10
  538. package/assets/docs/guide/upgrade.md +8 -9
  539. package/assets/docs/guide/use-templates/apply-template.md +174 -163
  540. package/assets/docs/guide/use-templates/generate.md +171 -152
  541. package/assets/docs/guide/use-templates/overview.md +32 -4
  542. package/assets/docs/guide/use-templates/programmatic.md +266 -301
  543. package/assets/docs/guide/use-templates/replace-content.md +181 -171
  544. package/assets/docs/guide/what-is-cesdk.md +71 -282
  545. package/assets/docs/handbook/SKILL.md +24 -0
  546. package/dist/assets/inline.generated.d.ts.map +1 -1
  547. package/dist/assets/inline.generated.js +544 -406
  548. package/dist/assets/inline.generated.js.map +1 -1
  549. package/dist/assets/load-browser.d.ts +1 -1
  550. package/dist/assets/load-browser.js +1 -1
  551. package/dist/assets/load-browser.js.map +1 -1
  552. package/dist/assets/load-node.d.ts +1 -1
  553. package/dist/assets/load-node.js +1 -1
  554. package/dist/assets/load-node.js.map +1 -1
  555. package/dist/cli/http.d.ts.map +1 -1
  556. package/dist/cli/http.js +4 -28
  557. package/dist/cli/http.js.map +1 -1
  558. package/dist/cli/redirect-console.d.ts +1 -1
  559. package/dist/cli/redirect-console.d.ts.map +1 -1
  560. package/dist/cli/redirect-console.js +12 -3
  561. package/dist/cli/redirect-console.js.map +1 -1
  562. package/dist/cli/resolve-license.d.ts.map +1 -1
  563. package/dist/cli/resolve-license.js +8 -6
  564. package/dist/cli/resolve-license.js.map +1 -1
  565. package/dist/cli/stdio.d.ts +9 -0
  566. package/dist/cli/stdio.d.ts.map +1 -1
  567. package/dist/cli/stdio.js +48 -4
  568. package/dist/cli/stdio.js.map +1 -1
  569. package/dist/cli.js +10 -1
  570. package/dist/cli.js.map +1 -1
  571. package/dist/config.d.ts +11 -2
  572. package/dist/config.d.ts.map +1 -1
  573. package/dist/config.js +20 -1
  574. package/dist/config.js.map +1 -1
  575. package/dist/diagnostics/bundle.d.ts +10 -0
  576. package/dist/diagnostics/bundle.d.ts.map +1 -0
  577. package/dist/diagnostics/bundle.js +148 -0
  578. package/dist/diagnostics/bundle.js.map +1 -0
  579. package/dist/diagnostics/compose.d.ts +3 -0
  580. package/dist/diagnostics/compose.d.ts.map +1 -0
  581. package/dist/diagnostics/compose.js +15 -0
  582. package/dist/diagnostics/compose.js.map +1 -0
  583. package/dist/diagnostics/events.d.ts +34 -0
  584. package/dist/diagnostics/events.d.ts.map +1 -0
  585. package/dist/diagnostics/events.js +3 -0
  586. package/dist/diagnostics/events.js.map +1 -0
  587. package/dist/diagnostics/file-sink.d.ts +38 -0
  588. package/dist/diagnostics/file-sink.d.ts.map +1 -0
  589. package/dist/diagnostics/file-sink.js +157 -0
  590. package/dist/diagnostics/file-sink.js.map +1 -0
  591. package/dist/diagnostics/redact.d.ts +7 -0
  592. package/dist/diagnostics/redact.d.ts.map +1 -0
  593. package/dist/diagnostics/redact.js +43 -0
  594. package/dist/diagnostics/redact.js.map +1 -0
  595. package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
  596. package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
  597. package/dist/diagnostics/tool-call-adapter.js +21 -0
  598. package/dist/diagnostics/tool-call-adapter.js.map +1 -0
  599. package/dist/engine/cesdk-adapter.d.ts +5 -1
  600. package/dist/engine/cesdk-adapter.d.ts.map +1 -1
  601. package/dist/engine/cesdk-adapter.js +9 -2
  602. package/dist/engine/cesdk-adapter.js.map +1 -1
  603. package/dist/engine/index.d.ts +1 -0
  604. package/dist/engine/index.d.ts.map +1 -1
  605. package/dist/engine/index.js +4 -0
  606. package/dist/engine/index.js.map +1 -1
  607. package/dist/engine/scene-resource-schemes.d.ts +2 -0
  608. package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
  609. package/dist/engine/scene-resource-schemes.js +20 -0
  610. package/dist/engine/scene-resource-schemes.js.map +1 -0
  611. package/dist/http/server.d.ts +0 -6
  612. package/dist/http/server.d.ts.map +1 -1
  613. package/dist/http/server.js +1 -2
  614. package/dist/http/server.js.map +1 -1
  615. package/dist/server.d.ts +0 -4
  616. package/dist/server.d.ts.map +1 -1
  617. package/dist/server.js +4 -60
  618. package/dist/server.js.map +1 -1
  619. package/dist/test/scripts/changelog-add.d.ts +8 -0
  620. package/dist/test/scripts/changelog-add.d.ts.map +1 -0
  621. package/dist/test/scripts/changelog-add.js +50 -0
  622. package/dist/test/scripts/changelog-add.js.map +1 -0
  623. package/dist/test/scripts/changelog-collate.d.ts +38 -0
  624. package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
  625. package/dist/test/scripts/changelog-collate.js +171 -0
  626. package/dist/test/scripts/changelog-collate.js.map +1 -0
  627. package/dist/test/test/changelog.test.d.ts +2 -0
  628. package/dist/test/test/changelog.test.d.ts.map +1 -0
  629. package/dist/test/test/changelog.test.js +293 -0
  630. package/dist/test/test/changelog.test.js.map +1 -0
  631. package/dist/test/test/cli/dispatcher.test.js +10 -3
  632. package/dist/test/test/cli/dispatcher.test.js.map +1 -1
  633. package/dist/test/test/cli/redirect-console.test.js +31 -0
  634. package/dist/test/test/cli/redirect-console.test.js.map +1 -1
  635. package/dist/test/test/cli/resolve-license.test.js +10 -1
  636. package/dist/test/test/cli/resolve-license.test.js.map +1 -1
  637. package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
  638. package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
  639. package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
  640. package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
  641. package/dist/test/test/config.test.js +17 -13
  642. package/dist/test/test/config.test.js.map +1 -1
  643. package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
  644. package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
  645. package/dist/test/test/diagnostics/bundle.test.js +53 -0
  646. package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
  647. package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
  648. package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
  649. package/dist/test/test/diagnostics/compose.test.js +31 -0
  650. package/dist/test/test/diagnostics/compose.test.js.map +1 -0
  651. package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
  652. package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
  653. package/dist/test/test/diagnostics/file-sink.test.js +113 -0
  654. package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
  655. package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
  656. package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
  657. package/dist/test/test/diagnostics/redact.test.js +59 -0
  658. package/dist/test/test/diagnostics/redact.test.js.map +1 -0
  659. package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
  660. package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
  661. package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
  662. package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
  663. package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
  664. package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
  665. package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
  666. package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
  667. package/dist/test/test/handbook-contract.test.js +6 -2
  668. package/dist/test/test/handbook-contract.test.js.map +1 -1
  669. package/dist/test/test/http/server.test.js +0 -36
  670. package/dist/test/test/http/server.test.js.map +1 -1
  671. package/dist/test/test/http/workspace-auth.test.js +0 -1
  672. package/dist/test/test/http/workspace-auth.test.js.map +1 -1
  673. package/dist/test/test/server.test.js +0 -40
  674. package/dist/test/test/server.test.js.map +1 -1
  675. package/dist/test/test/tools/edit-harness.d.ts +14 -0
  676. package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
  677. package/dist/test/test/tools/edit-harness.js +30 -0
  678. package/dist/test/test/tools/edit-harness.js.map +1 -0
  679. package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
  680. package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
  681. package/dist/test/test/tools/edit.telemetry.test.js +46 -0
  682. package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
  683. package/dist/test/test/tools/export-harness.d.ts +13 -0
  684. package/dist/test/test/tools/export-harness.d.ts.map +1 -0
  685. package/dist/test/test/tools/export-harness.js +27 -0
  686. package/dist/test/test/tools/export-harness.js.map +1 -0
  687. package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
  688. package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
  689. package/dist/test/test/tools/export.telemetry.test.js +65 -0
  690. package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
  691. package/dist/test/test/tools/import.test.d.ts +2 -0
  692. package/dist/test/test/tools/import.test.d.ts.map +1 -0
  693. package/dist/test/test/tools/import.test.js +122 -0
  694. package/dist/test/test/tools/import.test.js.map +1 -0
  695. package/dist/test/test/tools/index.test.js +78 -16
  696. package/dist/test/test/tools/index.test.js.map +1 -1
  697. package/dist/test/test/tools/load.integration.test.d.ts +2 -0
  698. package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
  699. package/dist/test/test/tools/load.integration.test.js +165 -0
  700. package/dist/test/test/tools/load.integration.test.js.map +1 -0
  701. package/dist/test/test/tools/load.test.d.ts +2 -0
  702. package/dist/test/test/tools/load.test.d.ts.map +1 -0
  703. package/dist/test/test/tools/load.test.js +387 -0
  704. package/dist/test/test/tools/load.test.js.map +1 -0
  705. package/dist/test/test/tools/preview-harness.d.ts +9 -0
  706. package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
  707. package/dist/test/test/tools/preview-harness.js +23 -0
  708. package/dist/test/test/tools/preview-harness.js.map +1 -0
  709. package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
  710. package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
  711. package/dist/test/test/tools/preview.telemetry.test.js +36 -0
  712. package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
  713. package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
  714. package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
  715. package/dist/test/test/tools/schema-best-practices.js +169 -0
  716. package/dist/test/test/tools/schema-best-practices.js.map +1 -0
  717. package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
  718. package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
  719. package/dist/test/test/tools/schema-best-practices.test.js +194 -0
  720. package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
  721. package/dist/test/test/tools/spans.test.d.ts +2 -0
  722. package/dist/test/test/tools/spans.test.d.ts.map +1 -0
  723. package/dist/test/test/tools/spans.test.js +84 -0
  724. package/dist/test/test/tools/spans.test.js.map +1 -0
  725. package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
  726. package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
  727. package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
  728. package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
  729. package/dist/test/test/viewer/config-route.test.d.ts +2 -0
  730. package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
  731. package/dist/test/test/viewer/config-route.test.js +28 -0
  732. package/dist/test/test/viewer/config-route.test.js.map +1 -0
  733. package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
  734. package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
  735. package/dist/test/test/viewer/spa-version.test.js +14 -0
  736. package/dist/test/test/viewer/spa-version.test.js.map +1 -0
  737. package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
  738. package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
  739. package/dist/test/test/workspace/content-hash.test.js +17 -0
  740. package/dist/test/test/workspace/content-hash.test.js.map +1 -0
  741. package/dist/test/tsconfig.test.tsbuildinfo +1 -1
  742. package/dist/test/vitest.config.js +1 -1
  743. package/dist/test/vitest.config.js.map +1 -1
  744. package/dist/tools/asset-generate.d.ts.map +1 -1
  745. package/dist/tools/asset-generate.js +1 -8
  746. package/dist/tools/asset-generate.js.map +1 -1
  747. package/dist/tools/edit.d.ts +3 -0
  748. package/dist/tools/edit.d.ts.map +1 -1
  749. package/dist/tools/edit.js +145 -96
  750. package/dist/tools/edit.js.map +1 -1
  751. package/dist/tools/export.d.ts +3 -0
  752. package/dist/tools/export.d.ts.map +1 -1
  753. package/dist/tools/export.js +146 -108
  754. package/dist/tools/export.js.map +1 -1
  755. package/dist/tools/import.d.ts +12 -0
  756. package/dist/tools/import.d.ts.map +1 -0
  757. package/dist/tools/import.js +144 -0
  758. package/dist/tools/import.js.map +1 -0
  759. package/dist/tools/index.d.ts +3 -0
  760. package/dist/tools/index.d.ts.map +1 -1
  761. package/dist/tools/index.js +44 -4
  762. package/dist/tools/index.js.map +1 -1
  763. package/dist/tools/load.d.ts +26 -0
  764. package/dist/tools/load.d.ts.map +1 -0
  765. package/dist/tools/load.js +400 -0
  766. package/dist/tools/load.js.map +1 -0
  767. package/dist/tools/preview.d.ts +3 -0
  768. package/dist/tools/preview.d.ts.map +1 -1
  769. package/dist/tools/preview.js +79 -44
  770. package/dist/tools/preview.js.map +1 -1
  771. package/dist/tools/result.d.ts +1 -1
  772. package/dist/tools/result.js +2 -2
  773. package/dist/tools/result.js.map +1 -1
  774. package/dist/tools/spans.d.ts +45 -0
  775. package/dist/tools/spans.d.ts.map +1 -0
  776. package/dist/tools/spans.js +77 -0
  777. package/dist/tools/spans.js.map +1 -0
  778. package/dist/tools/telemetry-wrapper.d.ts +4 -0
  779. package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
  780. package/dist/tools/telemetry-wrapper.js +43 -0
  781. package/dist/tools/telemetry-wrapper.js.map +1 -0
  782. package/dist/viewer/cesdk-cdn.d.ts +16 -0
  783. package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
  784. package/dist/viewer/cesdk-cdn.js +30 -0
  785. package/dist/viewer/cesdk-cdn.js.map +1 -0
  786. package/dist/viewer/router.d.ts +6 -0
  787. package/dist/viewer/router.d.ts.map +1 -1
  788. package/dist/viewer/router.js +4 -1
  789. package/dist/viewer/router.js.map +1 -1
  790. package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
  791. package/dist/viewer/spa-assets.generated.js +2 -3
  792. package/dist/viewer/spa-assets.generated.js.map +1 -1
  793. package/dist/workspace/content-hash.d.ts +2 -0
  794. package/dist/workspace/content-hash.d.ts.map +1 -0
  795. package/dist/workspace/content-hash.js +15 -0
  796. package/dist/workspace/content-hash.js.map +1 -0
  797. package/package.json +18 -9
  798. package/assets/docs/guide/actions.md +0 -1038
  799. package/assets/docs/guide/animation/overview.md +0 -22
  800. package/assets/docs/guide/automation/batch-processing.md +0 -474
  801. package/assets/docs/guide/browser-support.md +0 -38
  802. package/assets/docs/guide/concepts/edit-modes.md +0 -431
  803. package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
  804. package/assets/docs/guide/create-audio/audio.md +0 -336
  805. package/assets/docs/guide/create-video/overview.md +0 -224
  806. package/assets/docs/guide/create-video/timeline-editor.md +0 -622
  807. package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
  808. package/assets/docs/guide/edit-image/vectorize.md +0 -204
  809. package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
  810. package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
  811. package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
  812. package/assets/docs/guide/grid-and-rulers.md +0 -222
  813. package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
  814. package/assets/docs/guide/import-media/asset-library.md +0 -23
  815. package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
  816. package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
  817. package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
  818. package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
  819. package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
  820. package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
  821. package/assets/docs/guide/import-media/from-local-source.md +0 -20
  822. package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
  823. package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
  824. package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
  825. package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
  826. package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
  827. package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
  828. package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
  829. package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
  830. package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
  831. package/assets/docs/guide/plugins/asset-sources.md +0 -553
  832. package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
  833. package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
  834. package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
  835. package/assets/docs/guide/starterkits/ai-editor.md +0 -749
  836. package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
  837. package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
  838. package/assets/docs/guide/starterkits/assets.md +0 -27
  839. package/assets/docs/guide/starterkits/auto-resize.md +0 -586
  840. package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
  841. package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
  842. package/assets/docs/guide/starterkits/content-moderation.md +0 -863
  843. package/assets/docs/guide/starterkits/creative-automation.md +0 -28
  844. package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
  845. package/assets/docs/guide/starterkits/customization.md +0 -29
  846. package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
  847. package/assets/docs/guide/starterkits/data-merge.md +0 -850
  848. package/assets/docs/guide/starterkits/design-editor.md +0 -698
  849. package/assets/docs/guide/starterkits/design-generation.md +0 -719
  850. package/assets/docs/guide/starterkits/design-validation.md +0 -808
  851. package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
  852. package/assets/docs/guide/starterkits/export-options.md +0 -724
  853. package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
  854. package/assets/docs/guide/starterkits/extensibility.md +0 -28
  855. package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
  856. package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
  857. package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
  858. package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
  859. package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
  860. package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
  861. package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
  862. package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
  863. package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
  864. package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
  865. package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
  866. package/assets/docs/guide/starterkits/photo-editor.md +0 -755
  867. package/assets/docs/guide/starterkits/photo-ui.md +0 -186
  868. package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
  869. package/assets/docs/guide/starterkits/placeholders.md +0 -678
  870. package/assets/docs/guide/starterkits/player.md +0 -405
  871. package/assets/docs/guide/starterkits/plugins.md +0 -25
  872. package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
  873. package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
  874. package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
  875. package/assets/docs/guide/starterkits/product-editor.md +0 -773
  876. package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
  877. package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
  878. package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
  879. package/assets/docs/guide/starterkits/start-with-image.md +0 -684
  880. package/assets/docs/guide/starterkits/start-with-video.md +0 -651
  881. package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
  882. package/assets/docs/guide/starterkits/templating.md +0 -23
  883. package/assets/docs/guide/starterkits/theming.md +0 -662
  884. package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
  885. package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
  886. package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
  887. package/assets/docs/guide/starterkits/version-history.md +0 -745
  888. package/assets/docs/guide/starterkits/video-animations.md +0 -853
  889. package/assets/docs/guide/starterkits/video-captions.md +0 -884
  890. package/assets/docs/guide/starterkits/video-editing.md +0 -25
  891. package/assets/docs/guide/starterkits/video-editor.md +0 -696
  892. package/assets/docs/guide/starterkits/video-export-options.md +0 -676
  893. package/assets/docs/guide/starterkits/viewer.md +0 -400
  894. package/assets/docs/guide/starterkits.md +0 -41
  895. package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
  896. package/assets/docs/guide/text/custom-fonts.md +0 -401
  897. package/assets/docs/guide/text/decorations.md +0 -330
  898. package/assets/docs/guide/text/enumerations.md +0 -258
  899. package/assets/docs/guide/to-v1-10.md +0 -131
  900. package/assets/docs/guide/to-v1-13.md +0 -165
  901. package/assets/docs/guide/to-v1-32.md +0 -110
  902. package/assets/docs/guide/to-v1-69.md +0 -468
  903. package/assets/docs/guide/to-v1-72.md +0 -193
  904. package/assets/docs/guide/use-templates/library.md +0 -450
  905. package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
  906. package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
  907. package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
  908. package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
  909. package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
  910. package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
  911. package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
  912. package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
  913. package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
  914. package/assets/docs/guide/user-interface/ai-integration.md +0 -30
  915. package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
  916. package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
  917. package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
  918. package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
  919. package/assets/docs/guide/user-interface/appearance.md +0 -23
  920. package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
  921. package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
  922. package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
  923. package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
  924. package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
  925. package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
  926. package/assets/docs/guide/user-interface/customization/dock.md +0 -399
  927. package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
  928. package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
  929. package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
  930. package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
  931. package/assets/docs/guide/user-interface/customization/panel.md +0 -605
  932. package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
  933. package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
  934. package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
  935. package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
  936. package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
  937. package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
  938. package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
  939. package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
  940. package/assets/docs/guide/user-interface/customization/reference.md +0 -12
  941. package/assets/docs/guide/user-interface/customization.md +0 -39
  942. package/assets/docs/guide/user-interface/localization.md +0 -633
  943. package/assets/docs/guide/user-interface/overview.md +0 -167
  944. package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
  945. package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
  946. package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
  947. package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
  948. package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
  949. package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
  950. package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
  951. package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
  952. package/assets/docs/guide/user-interface.md +0 -25
  953. package/assets/prompts/evals-assetGenerate.md +0 -12
  954. package/assets/prompts/evals-brutalistCore.md +0 -34
  955. package/assets/prompts/evals-danskCatalogue.md +0 -31
  956. package/assets/prompts/evals-exportRoundTrip.md +0 -12
  957. package/assets/prompts/evals-inspectPriorCode.md +0 -16
  958. package/assets/prompts/evals-listProjectFiles.md +0 -6
  959. package/assets/prompts/evals-readAndExplainScript.md +0 -6
  960. package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
  961. package/assets/prompts/evals-rewindRecovery.md +0 -10
  962. package/assets/prompts/evals-searchAcrossFiles.md +0 -6
  963. package/assets/prompts/evals-weddingCard.md +0 -20
  964. package/assets/prompts/explain.md +0 -6
  965. package/assets/prompts/review.md +0 -6
  966. package/dist/frontmatter.d.ts +0 -15
  967. package/dist/frontmatter.d.ts.map +0 -1
  968. package/dist/frontmatter.js +0 -46
  969. package/dist/frontmatter.js.map +0 -1
  970. package/dist/test/test/frontmatter.test.d.ts +0 -2
  971. package/dist/test/test/frontmatter.test.d.ts.map +0 -1
  972. package/dist/test/test/frontmatter.test.js +0 -55
  973. package/dist/test/test/frontmatter.test.js.map +0 -1
@@ -1,495 +1,303 @@
1
- > This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
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) > [Rules](./rules.md) > [Enforce Brand Guidelines](./rules/enforce-brand-guidelines.md)
4
4
 
5
5
  ---
6
6
 
7
- Learn how to restrict users to approved brand assets—specific colors, fonts, and images—while preventing unauthorized modifications to brand elements like logos and legal text.
8
-
9
- ![Brand guidelines enforcement showing locked logo and editable content with custom color palette](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
7
+ Learn how to restrict users to approved brand assets—specific colors, fonts, and images—while preventing unauthorized modifications to brand elements like logos and legal text in server-side processing.
10
8
 
11
9
  > **Reading time:** 10 minutes
12
10
  >
13
11
  > **Resources:**
14
12
  >
15
13
  > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
16
- > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-rules-enforce-brand-guidelines-browser)
17
- > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-rules-enforce-brand-guidelines-browser)
18
- > - [Live demo](https://img.ly/docs/cesdk/examples/guides-rules-enforce-brand-guidelines-browser/)
19
-
20
- Brand guidelines enforcement in CE.SDK combines two complementary approaches: restricting which assets users can access (colors, fonts, images) and controlling what editing operations are permitted on brand elements. Asset restrictions work through custom asset sources that replace default libraries, while editing constraints use the scopes system to lock specific elements.
21
-
22
- ```typescript file=@cesdk_web_examples/guides-rules-enforce-brand-guidelines-browser/browser.ts reference-only
23
- import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
24
-
25
- import {
26
- BlurAssetSource,
27
- ColorPaletteAssetSource,
28
- CropPresetsAssetSource,
29
- DemoAssetSources,
30
- EffectsAssetSource,
31
- FiltersAssetSource,
32
- PagePresetsAssetSource,
33
- StickerAssetSource,
34
- TextAssetSource,
35
- TextComponentAssetSource,
36
- TypefaceAssetSource,
37
- UploadAssetSources,
38
- VectorShapeAssetSource
39
- } from '@cesdk/cesdk-js/plugins';
40
- import { DesignEditorConfig } from './design-editor/plugin';
41
- import packageJson from './package.json';
14
+ >
15
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-rules-enforce-brand-guidelines-server-js)
16
+ >
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-rules-enforce-brand-guidelines-server-js)
18
+
19
+ Brand guidelines enforcement in CE.SDK combines two complementary approaches: restricting which assets can be used (colors, fonts, images) and controlling what editing operations are permitted on brand elements. In server-side contexts, you can create templates with locked brand elements and validate user designs against brand rules before processing.
20
+
21
+ ```typescript file=@cesdk_web_examples/guides-rules-enforce-brand-guidelines-server-js/server-js.ts reference-only
22
+ import CreativeEngine from '@cesdk/node';
23
+ import { config } from 'dotenv';
24
+ import { writeFileSync, mkdirSync, existsSync } from 'fs';
25
+
26
+ // Load environment variables
27
+ config();
42
28
 
43
29
  /**
44
- * CE.SDK Plugin: Enforce Brand Guidelines Guide
30
+ * CE.SDK Server Guide: Enforce Brand Guidelines
45
31
  *
46
32
  * Demonstrates how to restrict users to approved brand assets and prevent
47
33
  * unauthorized modifications to brand elements using asset restrictions
48
- * and the scopes system.
34
+ * and the scopes system in a server-side context.
49
35
  */
50
- class Example implements EditorPlugin {
51
- name = packageJson.name;
52
- version = packageJson.version;
53
-
54
- async initialize({ cesdk }: EditorPluginContext): Promise<void> {
55
- if (!cesdk) {
56
- throw new Error('CE.SDK instance is required for this plugin');
57
- }
58
-
59
- // Set up internationalized names for custom asset libraries
60
- cesdk.i18n.setTranslations({
61
- en: {
62
- 'libraries.brandColors.label': 'Brand Colors',
63
- 'libraries.brandFonts.label': 'Brand Fonts'
64
- }
65
- });
66
- await cesdk.addPlugin(new DesignEditorConfig());
67
-
68
- // Add asset source plugins
69
- await cesdk.addPlugin(new BlurAssetSource());
70
- await cesdk.addPlugin(new ColorPaletteAssetSource());
71
- await cesdk.addPlugin(new CropPresetsAssetSource());
72
- await cesdk.addPlugin(
73
- new UploadAssetSources({ include: ['ly.img.image.upload'] })
74
- );
75
- await cesdk.addPlugin(
76
- new DemoAssetSources({
77
- include: [
78
- 'ly.img.templates.blank.*',
79
- 'ly.img.templates.presentation.*',
80
- 'ly.img.templates.print.*',
81
- 'ly.img.templates.social.*',
82
- 'ly.img.image.*'
83
- ]
84
- })
85
- );
86
- await cesdk.addPlugin(new EffectsAssetSource());
87
- await cesdk.addPlugin(new FiltersAssetSource());
88
- await cesdk.addPlugin(new PagePresetsAssetSource());
89
- await cesdk.addPlugin(new StickerAssetSource());
90
- await cesdk.addPlugin(new TextAssetSource());
91
- await cesdk.addPlugin(new TextComponentAssetSource());
92
- await cesdk.addPlugin(new TypefaceAssetSource());
93
- await cesdk.addPlugin(new VectorShapeAssetSource());
94
-
95
- await cesdk.actions.run('scene.create', {
96
- page: { width: 1200, height: 800, unit: 'Pixel' }
97
- });
98
-
99
- const engine = cesdk.engine;
100
- const page = engine.block.findByType('page')[0];
101
-
102
- // Create brand color source with approved colors only
103
- engine.asset.addLocalSource('brandColors');
104
-
105
- engine.asset.addAssetToSource('brandColors', {
106
- id: 'brand-primary',
107
- label: { en: 'Brand Blue' },
108
- payload: {
109
- color: { colorSpace: 'sRGB', r: 0.2, g: 0.4, b: 0.8 }
110
- }
111
- });
112
-
113
- engine.asset.addAssetToSource('brandColors', {
114
- id: 'brand-secondary',
115
- label: { en: 'Brand Orange' },
116
- payload: {
117
- color: { colorSpace: 'sRGB', r: 1.0, g: 0.6, b: 0.0 }
118
- }
119
- });
120
-
121
- engine.asset.addAssetToSource('brandColors', {
122
- id: 'brand-neutral-dark',
123
- label: { en: 'Dark Gray' },
124
- payload: {
125
- color: { colorSpace: 'sRGB', r: 0.2, g: 0.2, b: 0.2 }
126
- }
127
- });
128
-
129
- engine.asset.addAssetToSource('brandColors', {
130
- id: 'brand-neutral-light',
131
- label: { en: 'Light Gray' },
132
- payload: {
133
- color: { colorSpace: 'sRGB', r: 0.9, g: 0.9, b: 0.9 }
134
- }
135
- });
136
-
137
- engine.asset.addAssetToSource('brandColors', {
138
- id: 'brand-white',
139
- label: { en: 'White' },
140
- payload: {
141
- color: { colorSpace: 'sRGB', r: 1.0, g: 1.0, b: 1.0 }
142
- }
143
- });
144
-
145
- // Replace default color palette with brand colors only
146
- cesdk.ui.updateAssetLibraryEntry('ly.img.colors', {
147
- sourceIds: ['brandColors']
148
- });
149
-
150
- // Create brand font source with approved typefaces
151
- engine.asset.addLocalSource('brandFonts');
152
-
153
- engine.asset.addAssetToSource('brandFonts', {
154
- id: 'brand-heading-font',
155
- label: { en: 'Montserrat' },
156
- payload: {
157
- typeface: {
158
- name: 'Montserrat',
159
- fonts: [
160
- {
161
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Montserrat/Montserrat-Regular.ttf',
162
- subFamily: 'Regular',
163
- weight: 'normal',
164
- style: 'normal'
165
- },
166
- {
167
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Montserrat/Montserrat-Bold.ttf',
168
- subFamily: 'Bold',
169
- weight: 'bold',
170
- style: 'normal'
171
- }
172
- ]
173
- }
174
- }
175
- });
176
-
177
- engine.asset.addAssetToSource('brandFonts', {
178
- id: 'brand-body-font',
179
- label: { en: 'Open Sans' },
180
- payload: {
181
- typeface: {
182
- name: 'Open Sans',
183
- fonts: [
184
- {
185
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/OpenSans/OpenSans-Regular.ttf',
186
- subFamily: 'Regular',
187
- weight: 'normal',
188
- style: 'normal'
189
- },
190
- {
191
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/OpenSans/OpenSans-Bold.ttf',
192
- subFamily: 'Bold',
193
- weight: 'bold',
194
- style: 'normal'
195
- }
196
- ]
197
- }
198
- }
199
- });
200
-
201
- // Replace default font library with brand fonts only
202
- cesdk.ui.updateAssetLibraryEntry('ly.img.typefaces', {
203
- sourceIds: ['brandFonts']
204
- });
205
-
206
- // Set global scopes to Defer for block-level control
207
- engine.editor.setGlobalScope('layer/move', 'Defer');
208
- engine.editor.setGlobalScope('layer/resize', 'Defer');
209
- engine.editor.setGlobalScope('fill/change', 'Defer');
210
- engine.editor.setGlobalScope('fill/changeType', 'Defer');
211
- engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
212
- engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
213
- engine.editor.setGlobalScope('text/edit', 'Defer');
214
-
215
- const pageWidth = engine.block.getWidth(page);
216
- const pageHeight = engine.block.getHeight(page);
217
-
218
- // Create a locked logo block that cannot be modified
219
- const logoBlock = engine.block.create('graphic');
220
- const logoShape = engine.block.createShape('rect');
221
- engine.block.setShape(logoBlock, logoShape);
222
- engine.block.setWidth(logoBlock, 200);
223
- engine.block.setHeight(logoBlock, 80);
224
- engine.block.setPositionX(logoBlock, 40);
225
- engine.block.setPositionY(logoBlock, 40);
226
-
227
- const logoFill = engine.block.createFill('color');
228
- engine.block.setColor(logoFill, 'fill/color/value', {
229
- r: 0.2,
230
- g: 0.4,
231
- b: 0.8,
232
- a: 1.0
233
- });
234
- engine.block.setFill(logoBlock, logoFill);
235
- engine.block.setName(logoBlock, 'Company Logo');
236
- engine.block.appendChild(page, logoBlock);
237
-
238
- // Lock all editing capabilities on the logo
239
- engine.block.setScopeEnabled(logoBlock, 'layer/move', false);
240
- engine.block.setScopeEnabled(logoBlock, 'layer/resize', false);
241
- engine.block.setScopeEnabled(logoBlock, 'fill/change', false);
242
- engine.block.setScopeEnabled(logoBlock, 'fill/changeType', false);
243
- engine.block.setScopeEnabled(logoBlock, 'lifecycle/destroy', false);
244
- engine.block.setScopeEnabled(logoBlock, 'lifecycle/duplicate', false);
245
-
246
- // Create locked legal text
247
- const legalText = engine.block.create('text');
248
- engine.block.setWidth(legalText, pageWidth - 80);
249
- engine.block.setHeight(legalText, 30);
250
- engine.block.setPositionX(legalText, 40);
251
- engine.block.setPositionY(legalText, pageHeight - 50);
252
- engine.block.replaceText(
253
- legalText,
254
- '\u00A9 2024 Company Name. All rights reserved.'
255
- );
256
- engine.block.setFloat(legalText, 'text/fontSize', 36);
257
- engine.block.setName(legalText, 'Legal Text');
258
- engine.block.appendChild(page, legalText);
259
-
260
- // Lock the legal text
261
- engine.block.setScopeEnabled(legalText, 'layer/move', false);
262
- engine.block.setScopeEnabled(legalText, 'layer/resize', false);
263
- engine.block.setScopeEnabled(legalText, 'text/edit', false);
264
- engine.block.setScopeEnabled(legalText, 'lifecycle/destroy', false);
265
-
266
- // Create an editable content area where users can work with brand assets
267
- const contentBlock = engine.block.create('graphic');
268
- const contentShape = engine.block.createShape('rect');
269
- engine.block.setShape(contentBlock, contentShape);
270
- engine.block.setWidth(contentBlock, 400);
271
- engine.block.setHeight(contentBlock, 300);
272
- engine.block.setPositionX(contentBlock, (pageWidth - 400) / 2);
273
- engine.block.setPositionY(contentBlock, (pageHeight - 300) / 2);
274
-
275
- const contentFill = engine.block.createFill('color');
276
- engine.block.setColor(contentFill, 'fill/color/value', {
277
- r: 1.0,
278
- g: 0.6,
279
- b: 0.0,
280
- a: 1.0
281
- });
282
- engine.block.setFill(contentBlock, contentFill);
283
- engine.block.setName(contentBlock, 'Editable Content');
284
- engine.block.appendChild(page, contentBlock);
285
-
286
- // Enable all editing for the editable content block
287
- engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
288
- engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
289
- engine.block.setScopeEnabled(contentBlock, 'fill/change', true);
290
- engine.block.setScopeEnabled(contentBlock, 'fill/changeType', true);
291
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
292
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
293
-
294
- // Create editable text that uses brand fonts
295
- const editableText = engine.block.create('text');
296
- engine.block.setWidth(editableText, 300);
297
- engine.block.setHeight(editableText, 60);
298
- engine.block.setPositionX(editableText, (pageWidth - 300) / 2);
299
- engine.block.setPositionY(editableText, 150);
300
- engine.block.replaceText(editableText, 'Edit This Headline');
301
- engine.block.setFloat(editableText, 'text/fontSize', 64);
302
- engine.block.setEnum(editableText, 'text/horizontalAlignment', 'Center');
303
- engine.block.setName(editableText, 'Editable Headline');
304
- engine.block.appendChild(page, editableText);
305
-
306
- // Enable text editing with brand font restrictions
307
- engine.block.setScopeEnabled(editableText, 'layer/move', true);
308
- engine.block.setScopeEnabled(editableText, 'layer/resize', true);
309
- engine.block.setScopeEnabled(editableText, 'text/edit', true);
310
- engine.block.setScopeEnabled(editableText, 'lifecycle/destroy', true);
311
-
312
- // Validate brand compliance
313
- const isLogoLocked = !engine.block.isAllowedByScope(
314
- logoBlock,
315
- 'layer/move'
316
- );
317
- const isLegalLocked = !engine.block.isAllowedByScope(
318
- legalText,
319
- 'text/edit'
320
- );
321
- const isContentEditable = engine.block.isAllowedByScope(
322
- contentBlock,
323
- 'fill/change'
324
- );
325
-
326
- console.log(`Logo is locked: ${isLogoLocked}`);
327
- console.log(`Legal text is locked: ${isLegalLocked}`);
328
- console.log(`Content block is editable: ${isContentEditable}`);
329
-
330
- // Select the editable content block and zoom to page
331
- engine.block.select(contentBlock);
332
- await engine.scene.zoomToBlock(page, {
333
- padding: { left: 40, top: 40, right: 40, bottom: 40 }
334
- });
335
-
336
- // Open fill panel to show brand color restriction
337
- cesdk.ui.openPanel('//ly.img.panel/inspector/fill');
338
- }
339
- }
340
-
341
- export default Example;
342
- ```
343
-
344
- ## Restricting Colors to Brand Palette
345
-
346
- Create a custom color library containing only approved brand colors and replace the default palette in the UI.
347
36
 
348
- ### Creating Brand Color Sources
349
-
350
- Use `engine.asset.addLocalSource()` to create a custom asset source, then add color assets with `engine.asset.addAssetToSource()`:
351
-
352
- ```typescript highlight-create-brand-colors
353
- // Create brand color source with approved colors only
354
- engine.asset.addLocalSource('brandColors');
355
-
356
- engine.asset.addAssetToSource('brandColors', {
357
- id: 'brand-primary',
358
- label: { en: 'Brand Blue' },
359
- payload: {
360
- color: { colorSpace: 'sRGB', r: 0.2, g: 0.4, b: 0.8 }
361
- }
37
+ // Initialize CE.SDK engine in headless mode
38
+ const engine = await CreativeEngine.init({
39
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
362
40
  });
363
41
 
364
- engine.asset.addAssetToSource('brandColors', {
365
- id: 'brand-secondary',
366
- label: { en: 'Brand Orange' },
367
- payload: {
368
- color: { colorSpace: 'sRGB', r: 1.0, g: 0.6, b: 0.0 }
369
- }
370
- });
42
+ try {
43
+ // Create a design scene
44
+ engine.scene.create('VerticalStack', {
45
+ page: { size: { width: 1200, height: 800 } },
46
+ });
371
47
 
372
- engine.asset.addAssetToSource('brandColors', {
373
- id: 'brand-neutral-dark',
374
- label: { en: 'Dark Gray' },
375
- payload: {
376
- color: { colorSpace: 'sRGB', r: 0.2, g: 0.2, b: 0.2 }
48
+ const page = engine.block.findByType('page')[0];
49
+ if (!page) {
50
+ throw new Error('No page found');
377
51
  }
378
- });
379
52
 
380
- engine.asset.addAssetToSource('brandColors', {
381
- id: 'brand-neutral-light',
382
- label: { en: 'Light Gray' },
383
- payload: {
384
- color: { colorSpace: 'sRGB', r: 0.9, g: 0.9, b: 0.9 }
53
+ const pageWidth = engine.block.getWidth(page);
54
+ const pageHeight = engine.block.getHeight(page);
55
+
56
+ // Create brand color source with approved colors only
57
+ engine.asset.addLocalSource('brandColors');
58
+
59
+ engine.asset.addAssetToSource('brandColors', {
60
+ id: 'brand-primary',
61
+ label: { en: 'Brand Blue' },
62
+ payload: {
63
+ color: { colorSpace: 'sRGB', r: 0.2, g: 0.4, b: 0.8 },
64
+ },
65
+ });
66
+
67
+ engine.asset.addAssetToSource('brandColors', {
68
+ id: 'brand-secondary',
69
+ label: { en: 'Brand Orange' },
70
+ payload: {
71
+ color: { colorSpace: 'sRGB', r: 1.0, g: 0.6, b: 0.0 },
72
+ },
73
+ });
74
+
75
+ engine.asset.addAssetToSource('brandColors', {
76
+ id: 'brand-neutral-dark',
77
+ label: { en: 'Dark Gray' },
78
+ payload: {
79
+ color: { colorSpace: 'sRGB', r: 0.2, g: 0.2, b: 0.2 },
80
+ },
81
+ });
82
+
83
+ engine.asset.addAssetToSource('brandColors', {
84
+ id: 'brand-neutral-light',
85
+ label: { en: 'Light Gray' },
86
+ payload: {
87
+ color: { colorSpace: 'sRGB', r: 0.9, g: 0.9, b: 0.9 },
88
+ },
89
+ });
90
+
91
+ engine.asset.addAssetToSource('brandColors', {
92
+ id: 'brand-white',
93
+ label: { en: 'White' },
94
+ payload: {
95
+ color: { colorSpace: 'sRGB', r: 1.0, g: 1.0, b: 1.0 },
96
+ },
97
+ });
98
+
99
+ // Set global scopes to Defer for block-level control
100
+ engine.editor.setGlobalScope('layer/move', 'Defer');
101
+ engine.editor.setGlobalScope('layer/resize', 'Defer');
102
+ engine.editor.setGlobalScope('fill/change', 'Defer');
103
+ engine.editor.setGlobalScope('fill/changeType', 'Defer');
104
+ engine.editor.setGlobalScope('lifecycle/destroy', 'Defer');
105
+ engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
106
+ engine.editor.setGlobalScope('text/edit', 'Defer');
107
+
108
+ // Create a locked logo block that cannot be modified
109
+ const logoBlock = engine.block.create('graphic');
110
+ const logoShape = engine.block.createShape('rect');
111
+ engine.block.setShape(logoBlock, logoShape);
112
+ engine.block.setWidth(logoBlock, 200);
113
+ engine.block.setHeight(logoBlock, 80);
114
+ engine.block.setPositionX(logoBlock, 40);
115
+ engine.block.setPositionY(logoBlock, 40);
116
+
117
+ const logoFill = engine.block.createFill('color');
118
+ engine.block.setColor(logoFill, 'fill/color/value', {
119
+ r: 0.2,
120
+ g: 0.4,
121
+ b: 0.8,
122
+ a: 1.0,
123
+ });
124
+ engine.block.setFill(logoBlock, logoFill);
125
+ engine.block.setName(logoBlock, 'Company Logo');
126
+ engine.block.appendChild(page, logoBlock);
127
+
128
+ // Lock all editing capabilities on the logo
129
+ engine.block.setScopeEnabled(logoBlock, 'layer/move', false);
130
+ engine.block.setScopeEnabled(logoBlock, 'layer/resize', false);
131
+ engine.block.setScopeEnabled(logoBlock, 'fill/change', false);
132
+ engine.block.setScopeEnabled(logoBlock, 'fill/changeType', false);
133
+ engine.block.setScopeEnabled(logoBlock, 'lifecycle/destroy', false);
134
+ engine.block.setScopeEnabled(logoBlock, 'lifecycle/duplicate', false);
135
+
136
+ // Create locked legal text
137
+ const legalText = engine.block.create('text');
138
+ engine.block.setWidth(legalText, pageWidth - 80);
139
+ engine.block.setHeight(legalText, 30);
140
+ engine.block.setPositionX(legalText, 40);
141
+ engine.block.setPositionY(legalText, pageHeight - 50);
142
+ engine.block.replaceText(
143
+ legalText,
144
+ '\u00A9 2024 Company Name. All rights reserved.'
145
+ );
146
+ engine.block.setFloat(legalText, 'text/fontSize', 36);
147
+ engine.block.setName(legalText, 'Legal Text');
148
+ engine.block.appendChild(page, legalText);
149
+
150
+ // Lock the legal text
151
+ engine.block.setScopeEnabled(legalText, 'layer/move', false);
152
+ engine.block.setScopeEnabled(legalText, 'layer/resize', false);
153
+ engine.block.setScopeEnabled(legalText, 'text/edit', false);
154
+ engine.block.setScopeEnabled(legalText, 'lifecycle/destroy', false);
155
+
156
+ // Create an editable content area where users can work with brand assets
157
+ const contentBlock = engine.block.create('graphic');
158
+ const contentShape = engine.block.createShape('rect');
159
+ engine.block.setShape(contentBlock, contentShape);
160
+ engine.block.setWidth(contentBlock, 400);
161
+ engine.block.setHeight(contentBlock, 300);
162
+ engine.block.setPositionX(contentBlock, (pageWidth - 400) / 2);
163
+ engine.block.setPositionY(contentBlock, (pageHeight - 300) / 2);
164
+
165
+ const contentFill = engine.block.createFill('color');
166
+ engine.block.setColor(contentFill, 'fill/color/value', {
167
+ r: 1.0,
168
+ g: 0.6,
169
+ b: 0.0,
170
+ a: 1.0,
171
+ });
172
+ engine.block.setFill(contentBlock, contentFill);
173
+ engine.block.setName(contentBlock, 'Editable Content');
174
+ engine.block.appendChild(page, contentBlock);
175
+
176
+ // Enable all editing for the editable content block
177
+ engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
178
+ engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
179
+ engine.block.setScopeEnabled(contentBlock, 'fill/change', true);
180
+ engine.block.setScopeEnabled(contentBlock, 'fill/changeType', true);
181
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
182
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
183
+
184
+ // Create editable text
185
+ const editableText = engine.block.create('text');
186
+ engine.block.setWidth(editableText, 300);
187
+ engine.block.setHeight(editableText, 60);
188
+ engine.block.setPositionX(editableText, (pageWidth - 300) / 2);
189
+ engine.block.setPositionY(editableText, 150);
190
+ engine.block.replaceText(editableText, 'Edit This Headline');
191
+ engine.block.setFloat(editableText, 'text/fontSize', 64);
192
+ engine.block.setEnum(editableText, 'text/horizontalAlignment', 'Center');
193
+ engine.block.setName(editableText, 'Editable Headline');
194
+ engine.block.appendChild(page, editableText);
195
+
196
+ // Enable text editing
197
+ engine.block.setScopeEnabled(editableText, 'layer/move', true);
198
+ engine.block.setScopeEnabled(editableText, 'layer/resize', true);
199
+ engine.block.setScopeEnabled(editableText, 'text/edit', true);
200
+ engine.block.setScopeEnabled(editableText, 'lifecycle/destroy', true);
201
+
202
+ // Validate brand compliance
203
+ const isLogoLocked = !engine.block.isAllowedByScope(logoBlock, 'layer/move');
204
+ const isLegalLocked = !engine.block.isAllowedByScope(legalText, 'text/edit');
205
+ const isContentEditable = engine.block.isAllowedByScope(
206
+ contentBlock,
207
+ 'fill/change'
208
+ );
209
+
210
+ console.log('\n=== Brand Compliance Validation ===');
211
+ console.log(`Logo is locked: ${isLogoLocked}`);
212
+ console.log(`Legal text is locked: ${isLegalLocked}`);
213
+ console.log(`Content block is editable: ${isContentEditable}`);
214
+
215
+ // Create output directory
216
+ const outputDir = './output';
217
+ if (!existsSync(outputDir)) {
218
+ mkdirSync(outputDir, { recursive: true });
385
219
  }
386
- });
387
220
 
388
- engine.asset.addAssetToSource('brandColors', {
389
- id: 'brand-white',
390
- label: { en: 'White' },
391
- payload: {
392
- color: { colorSpace: 'sRGB', r: 1.0, g: 1.0, b: 1.0 }
393
- }
394
- });
221
+ // Export the result as PNG
222
+ const blob = await engine.block.export(page, { mimeType: 'image/png' });
223
+ const buffer = Buffer.from(await blob.arrayBuffer());
224
+ writeFileSync(`${outputDir}/enforce-brand-guidelines-result.png`, buffer);
225
+
226
+ console.log(
227
+ '\n\u2713 Exported result to output/enforce-brand-guidelines-result.png'
228
+ );
229
+ console.log('\n=== Enforce Brand Guidelines Demo Complete ===');
230
+ } finally {
231
+ // Always dispose the engine to free resources
232
+ engine.dispose();
233
+ }
395
234
  ```
396
235
 
397
- Each color asset specifies an `id`, optional `label` for display, and a `payload` containing the color definition. Colors use the `sRGB` color space with `r`, `g`, `b` values from 0 to 1.
398
-
399
- ### Replacing the Default Color Palette
236
+ ## Setting Up the Engine
400
237
 
401
- Configure the color library to display only brand colors using `cesdk.ui.updateAssetLibraryEntry()`:
238
+ Initialize the headless engine for server-side processing:
402
239
 
403
- ```typescript highlight-replace-color-library
404
- // Replace default color palette with brand colors only
405
- cesdk.ui.updateAssetLibraryEntry('ly.img.colors', {
406
- sourceIds: ['brandColors']
240
+ ```typescript highlight-setup
241
+ // Initialize CE.SDK engine in headless mode
242
+ const engine = await CreativeEngine.init({
243
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
407
244
  });
408
245
  ```
409
246
 
410
- By omitting the default color palette source ID (`ly.img.color.palette`), users can only select from your approved brand colors.
411
-
412
- ## Restricting Fonts to Brand Typefaces
413
-
414
- Limit font selection to brand-approved typefaces by creating a custom font asset source.
415
-
416
- ### Creating Brand Font Sources
417
-
418
- Register brand fonts as assets with typeface payloads containing font family names and available variants:
419
-
420
- ```typescript highlight-create-brand-fonts
421
- // Create brand font source with approved typefaces
422
- engine.asset.addLocalSource('brandFonts');
423
-
424
- engine.asset.addAssetToSource('brandFonts', {
425
- id: 'brand-heading-font',
426
- label: { en: 'Montserrat' },
427
- payload: {
428
- typeface: {
429
- name: 'Montserrat',
430
- fonts: [
431
- {
432
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Montserrat/Montserrat-Regular.ttf',
433
- subFamily: 'Regular',
434
- weight: 'normal',
435
- style: 'normal'
436
- },
437
- {
438
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/Montserrat/Montserrat-Bold.ttf',
439
- subFamily: 'Bold',
440
- weight: 'bold',
441
- style: 'normal'
442
- }
443
- ]
444
- }
445
- }
446
- });
447
-
448
- engine.asset.addAssetToSource('brandFonts', {
449
- id: 'brand-body-font',
450
- label: { en: 'Open Sans' },
451
- payload: {
452
- typeface: {
453
- name: 'Open Sans',
454
- fonts: [
455
- {
456
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/OpenSans/OpenSans-Regular.ttf',
457
- subFamily: 'Regular',
458
- weight: 'normal',
459
- style: 'normal'
460
- },
461
- {
462
- uri: 'https://cdn.img.ly/assets/v2/ly.img.typeface/fonts/OpenSans/OpenSans-Bold.ttf',
463
- subFamily: 'Bold',
464
- weight: 'bold',
465
- style: 'normal'
466
- }
467
- ]
468
- }
469
- }
470
- });
471
- ```
472
-
473
- Each font in the typeface array specifies a `uri` pointing to the font file, plus `weight` and `style` properties.
474
-
475
- ### Replacing the Default Font Library
247
+ ## Restricting Colors to Brand Palette
476
248
 
477
- Configure the font library to show only brand fonts:
249
+ Create a custom color source containing only approved brand colors:
478
250
 
479
- ```typescript highlight-replace-font-library
480
- // Replace default font library with brand fonts only
481
- cesdk.ui.updateAssetLibraryEntry('ly.img.typefaces', {
482
- sourceIds: ['brandFonts']
483
- });
251
+ ```typescript highlight-create-brand-colors
252
+ // Create brand color source with approved colors only
253
+ engine.asset.addLocalSource('brandColors');
254
+
255
+ engine.asset.addAssetToSource('brandColors', {
256
+ id: 'brand-primary',
257
+ label: { en: 'Brand Blue' },
258
+ payload: {
259
+ color: { colorSpace: 'sRGB', r: 0.2, g: 0.4, b: 0.8 },
260
+ },
261
+ });
262
+
263
+ engine.asset.addAssetToSource('brandColors', {
264
+ id: 'brand-secondary',
265
+ label: { en: 'Brand Orange' },
266
+ payload: {
267
+ color: { colorSpace: 'sRGB', r: 1.0, g: 0.6, b: 0.0 },
268
+ },
269
+ });
270
+
271
+ engine.asset.addAssetToSource('brandColors', {
272
+ id: 'brand-neutral-dark',
273
+ label: { en: 'Dark Gray' },
274
+ payload: {
275
+ color: { colorSpace: 'sRGB', r: 0.2, g: 0.2, b: 0.2 },
276
+ },
277
+ });
278
+
279
+ engine.asset.addAssetToSource('brandColors', {
280
+ id: 'brand-neutral-light',
281
+ label: { en: 'Light Gray' },
282
+ payload: {
283
+ color: { colorSpace: 'sRGB', r: 0.9, g: 0.9, b: 0.9 },
284
+ },
285
+ });
286
+
287
+ engine.asset.addAssetToSource('brandColors', {
288
+ id: 'brand-white',
289
+ label: { en: 'White' },
290
+ payload: {
291
+ color: { colorSpace: 'sRGB', r: 1.0, g: 1.0, b: 1.0 },
292
+ },
293
+ });
484
294
  ```
485
295
 
486
- ## Locking Brand Elements
487
-
488
- Protect brand assets like logos and legal text from modification using the scopes system.
296
+ Each color asset specifies an `id`, optional `label` for display, and a `payload` containing the color definition. Colors use the `sRGB` color space with `r`, `g`, `b` values from 0 to 1.
489
297
 
490
- ### Setting Global Scopes to Defer
298
+ ## Setting Global Scopes to Defer
491
299
 
492
- First, set global scopes to `'Defer'` to enable block-level control:
300
+ Set global scopes to `'Defer'` to enable block-level control over editing permissions:
493
301
 
494
302
  ```typescript highlight-global-scope-defer
495
303
  // Set global scopes to Defer for block-level control
@@ -502,33 +310,37 @@ engine.editor.setGlobalScope('lifecycle/duplicate', 'Defer');
502
310
  engine.editor.setGlobalScope('text/edit', 'Defer');
503
311
  ```
504
312
 
505
- ### Creating and Locking a Logo
313
+ ## Creating and Locking Brand Elements
506
314
 
507
- Create a brand element and disable all relevant scopes to lock it:
315
+ ### Creating a Logo Block
316
+
317
+ Create a brand element that represents the company logo:
508
318
 
509
319
  ```typescript highlight-create-logo
510
- // Create a locked logo block that cannot be modified
511
- const logoBlock = engine.block.create('graphic');
512
- const logoShape = engine.block.createShape('rect');
513
- engine.block.setShape(logoBlock, logoShape);
514
- engine.block.setWidth(logoBlock, 200);
515
- engine.block.setHeight(logoBlock, 80);
516
- engine.block.setPositionX(logoBlock, 40);
517
- engine.block.setPositionY(logoBlock, 40);
518
-
519
- const logoFill = engine.block.createFill('color');
520
- engine.block.setColor(logoFill, 'fill/color/value', {
521
- r: 0.2,
522
- g: 0.4,
523
- b: 0.8,
524
- a: 1.0
525
- });
526
- engine.block.setFill(logoBlock, logoFill);
527
- engine.block.setName(logoBlock, 'Company Logo');
528
- engine.block.appendChild(page, logoBlock);
320
+ // Create a locked logo block that cannot be modified
321
+ const logoBlock = engine.block.create('graphic');
322
+ const logoShape = engine.block.createShape('rect');
323
+ engine.block.setShape(logoBlock, logoShape);
324
+ engine.block.setWidth(logoBlock, 200);
325
+ engine.block.setHeight(logoBlock, 80);
326
+ engine.block.setPositionX(logoBlock, 40);
327
+ engine.block.setPositionY(logoBlock, 40);
328
+
329
+ const logoFill = engine.block.createFill('color');
330
+ engine.block.setColor(logoFill, 'fill/color/value', {
331
+ r: 0.2,
332
+ g: 0.4,
333
+ b: 0.8,
334
+ a: 1.0,
335
+ });
336
+ engine.block.setFill(logoBlock, logoFill);
337
+ engine.block.setName(logoBlock, 'Company Logo');
338
+ engine.block.appendChild(page, logoBlock);
529
339
  ```
530
340
 
531
- Lock the logo by disabling editing scopes:
341
+ ### Locking the Logo
342
+
343
+ Disable all relevant scopes to prevent any modifications:
532
344
 
533
345
  ```typescript highlight-lock-logo
534
346
  // Lock all editing capabilities on the logo
@@ -544,84 +356,84 @@ With these scopes disabled, the logo cannot be moved, resized, recolored, or del
544
356
 
545
357
  ### Locking Legal Text
546
358
 
547
- Similarly, protect legal text from modification:
359
+ Create and protect legal text from modification:
548
360
 
549
361
  ```typescript highlight-create-legal-text
550
- // Create locked legal text
551
- const legalText = engine.block.create('text');
552
- engine.block.setWidth(legalText, pageWidth - 80);
553
- engine.block.setHeight(legalText, 30);
554
- engine.block.setPositionX(legalText, 40);
555
- engine.block.setPositionY(legalText, pageHeight - 50);
556
- engine.block.replaceText(
557
- legalText,
558
- '\u00A9 2024 Company Name. All rights reserved.'
559
- );
560
- engine.block.setFloat(legalText, 'text/fontSize', 36);
561
- engine.block.setName(legalText, 'Legal Text');
562
- engine.block.appendChild(page, legalText);
563
-
564
- // Lock the legal text
565
- engine.block.setScopeEnabled(legalText, 'layer/move', false);
566
- engine.block.setScopeEnabled(legalText, 'layer/resize', false);
567
- engine.block.setScopeEnabled(legalText, 'text/edit', false);
568
- engine.block.setScopeEnabled(legalText, 'lifecycle/destroy', false);
362
+ // Create locked legal text
363
+ const legalText = engine.block.create('text');
364
+ engine.block.setWidth(legalText, pageWidth - 80);
365
+ engine.block.setHeight(legalText, 30);
366
+ engine.block.setPositionX(legalText, 40);
367
+ engine.block.setPositionY(legalText, pageHeight - 50);
368
+ engine.block.replaceText(
369
+ legalText,
370
+ '\u00A9 2024 Company Name. All rights reserved.'
371
+ );
372
+ engine.block.setFloat(legalText, 'text/fontSize', 36);
373
+ engine.block.setName(legalText, 'Legal Text');
374
+ engine.block.appendChild(page, legalText);
375
+
376
+ // Lock the legal text
377
+ engine.block.setScopeEnabled(legalText, 'layer/move', false);
378
+ engine.block.setScopeEnabled(legalText, 'layer/resize', false);
379
+ engine.block.setScopeEnabled(legalText, 'text/edit', false);
380
+ engine.block.setScopeEnabled(legalText, 'lifecycle/destroy', false);
569
381
  ```
570
382
 
571
383
  ## Creating Editable Content Areas
572
384
 
573
- While brand elements are locked, other areas can remain fully editable. Create content blocks with all scopes enabled:
385
+ While brand elements are locked, other areas can remain fully editable:
574
386
 
575
387
  ```typescript highlight-create-editable-content
576
- // Create an editable content area where users can work with brand assets
577
- const contentBlock = engine.block.create('graphic');
578
- const contentShape = engine.block.createShape('rect');
579
- engine.block.setShape(contentBlock, contentShape);
580
- engine.block.setWidth(contentBlock, 400);
581
- engine.block.setHeight(contentBlock, 300);
582
- engine.block.setPositionX(contentBlock, (pageWidth - 400) / 2);
583
- engine.block.setPositionY(contentBlock, (pageHeight - 300) / 2);
584
-
585
- const contentFill = engine.block.createFill('color');
586
- engine.block.setColor(contentFill, 'fill/color/value', {
587
- r: 1.0,
588
- g: 0.6,
589
- b: 0.0,
590
- a: 1.0
591
- });
592
- engine.block.setFill(contentBlock, contentFill);
593
- engine.block.setName(contentBlock, 'Editable Content');
594
- engine.block.appendChild(page, contentBlock);
595
-
596
- // Enable all editing for the editable content block
597
- engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
598
- engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
599
- engine.block.setScopeEnabled(contentBlock, 'fill/change', true);
600
- engine.block.setScopeEnabled(contentBlock, 'fill/changeType', true);
601
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
602
- engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
388
+ // Create an editable content area where users can work with brand assets
389
+ const contentBlock = engine.block.create('graphic');
390
+ const contentShape = engine.block.createShape('rect');
391
+ engine.block.setShape(contentBlock, contentShape);
392
+ engine.block.setWidth(contentBlock, 400);
393
+ engine.block.setHeight(contentBlock, 300);
394
+ engine.block.setPositionX(contentBlock, (pageWidth - 400) / 2);
395
+ engine.block.setPositionY(contentBlock, (pageHeight - 300) / 2);
396
+
397
+ const contentFill = engine.block.createFill('color');
398
+ engine.block.setColor(contentFill, 'fill/color/value', {
399
+ r: 1.0,
400
+ g: 0.6,
401
+ b: 0.0,
402
+ a: 1.0,
403
+ });
404
+ engine.block.setFill(contentBlock, contentFill);
405
+ engine.block.setName(contentBlock, 'Editable Content');
406
+ engine.block.appendChild(page, contentBlock);
407
+
408
+ // Enable all editing for the editable content block
409
+ engine.block.setScopeEnabled(contentBlock, 'layer/move', true);
410
+ engine.block.setScopeEnabled(contentBlock, 'layer/resize', true);
411
+ engine.block.setScopeEnabled(contentBlock, 'fill/change', true);
412
+ engine.block.setScopeEnabled(contentBlock, 'fill/changeType', true);
413
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/destroy', true);
414
+ engine.block.setScopeEnabled(contentBlock, 'lifecycle/duplicate', true);
603
415
  ```
604
416
 
605
- For text blocks that should be editable but restricted to brand fonts:
417
+ For text blocks that should be editable:
606
418
 
607
419
  ```typescript highlight-create-editable-text
608
- // Create editable text that uses brand fonts
609
- const editableText = engine.block.create('text');
610
- engine.block.setWidth(editableText, 300);
611
- engine.block.setHeight(editableText, 60);
612
- engine.block.setPositionX(editableText, (pageWidth - 300) / 2);
613
- engine.block.setPositionY(editableText, 150);
614
- engine.block.replaceText(editableText, 'Edit This Headline');
615
- engine.block.setFloat(editableText, 'text/fontSize', 64);
616
- engine.block.setEnum(editableText, 'text/horizontalAlignment', 'Center');
617
- engine.block.setName(editableText, 'Editable Headline');
618
- engine.block.appendChild(page, editableText);
619
-
620
- // Enable text editing with brand font restrictions
621
- engine.block.setScopeEnabled(editableText, 'layer/move', true);
622
- engine.block.setScopeEnabled(editableText, 'layer/resize', true);
623
- engine.block.setScopeEnabled(editableText, 'text/edit', true);
624
- engine.block.setScopeEnabled(editableText, 'lifecycle/destroy', true);
420
+ // Create editable text
421
+ const editableText = engine.block.create('text');
422
+ engine.block.setWidth(editableText, 300);
423
+ engine.block.setHeight(editableText, 60);
424
+ engine.block.setPositionX(editableText, (pageWidth - 300) / 2);
425
+ engine.block.setPositionY(editableText, 150);
426
+ engine.block.replaceText(editableText, 'Edit This Headline');
427
+ engine.block.setFloat(editableText, 'text/fontSize', 64);
428
+ engine.block.setEnum(editableText, 'text/horizontalAlignment', 'Center');
429
+ engine.block.setName(editableText, 'Editable Headline');
430
+ engine.block.appendChild(page, editableText);
431
+
432
+ // Enable text editing
433
+ engine.block.setScopeEnabled(editableText, 'layer/move', true);
434
+ engine.block.setScopeEnabled(editableText, 'layer/resize', true);
435
+ engine.block.setScopeEnabled(editableText, 'text/edit', true);
436
+ engine.block.setScopeEnabled(editableText, 'lifecycle/destroy', true);
625
437
  ```
626
438
 
627
439
  ## Validating Brand Compliance
@@ -629,44 +441,63 @@ engine.block.setScopeEnabled(editableText, 'lifecycle/destroy', true);
629
441
  Check that brand constraints are properly enforced using `engine.block.isAllowedByScope()`:
630
442
 
631
443
  ```typescript highlight-validate-compliance
632
- // Validate brand compliance
633
- const isLogoLocked = !engine.block.isAllowedByScope(logoBlock, 'layer/move');
634
- const isLegalLocked = !engine.block.isAllowedByScope(legalText, 'text/edit');
635
- const isContentEditable = engine.block.isAllowedByScope(
636
- contentBlock,
637
- 'fill/change'
638
- );
639
-
640
- console.log(`Logo is locked: ${isLogoLocked}`);
641
- console.log(`Legal text is locked: ${isLegalLocked}`);
642
- console.log(`Content block is editable: ${isContentEditable}`);
444
+ // Validate brand compliance
445
+ const isLogoLocked = !engine.block.isAllowedByScope(logoBlock, 'layer/move');
446
+ const isLegalLocked = !engine.block.isAllowedByScope(legalText, 'text/edit');
447
+ const isContentEditable = engine.block.isAllowedByScope(
448
+ contentBlock,
449
+ 'fill/change'
450
+ );
451
+
452
+ console.log('\n=== Brand Compliance Validation ===');
453
+ console.log(`Logo is locked: ${isLogoLocked}`);
454
+ console.log(`Legal text is locked: ${isLegalLocked}`);
455
+ console.log(`Content block is editable: ${isContentEditable}`);
643
456
  ```
644
457
 
645
- This method considers both global and block-level scope settings to determine if an operation is permitted.
458
+ This validation can be performed before processing user designs to ensure brand guidelines are respected.
459
+
460
+ ## Exporting the Result
461
+
462
+ Export the design with brand guidelines enforced:
463
+
464
+ ```typescript highlight-export
465
+ // Create output directory
466
+ const outputDir = './output';
467
+ if (!existsSync(outputDir)) {
468
+ mkdirSync(outputDir, { recursive: true });
469
+ }
470
+
471
+ // Export the result as PNG
472
+ const blob = await engine.block.export(page, { mimeType: 'image/png' });
473
+ const buffer = Buffer.from(await blob.arrayBuffer());
474
+ writeFileSync(`${outputDir}/enforce-brand-guidelines-result.png`, buffer);
475
+ ```
646
476
 
647
477
  ## Troubleshooting
648
478
 
649
- - **Colors still editable**: Ensure the default color palette source is omitted from the `sourceIds` array in `updateAssetLibraryEntry()`
650
- - **Fonts not restricted**: Verify the font library configuration targets `'ly.img.typefaces'` and excludes default sources
479
+ - **Colors still editable**: When saving templates, ensure color sources are properly configured
651
480
  - **Locked elements still movable**: Check that global scopes are set to `'Defer'` before setting block-level restrictions
652
481
  - **Brand elements deletable**: Confirm `lifecycle/destroy` scope is disabled on the specific blocks
482
+ - **Validation failing**: Use `isAllowedByScope()` to debug which scopes are incorrectly configured
653
483
 
654
484
  ## API Reference
655
485
 
656
- | Method | Category | Purpose |
657
- | ----------------------------------------------------- | -------- | ------------------------------------------------- |
658
- | `engine.asset.addLocalSource(id)` | Asset | Create a custom asset source for brand assets |
659
- | `engine.asset.addAssetToSource(sourceId, asset)` | Asset | Add an asset to a local source |
660
- | `cesdk.ui.updateAssetLibraryEntry(libraryId, config)` | UI | Configure which sources appear in asset libraries |
661
- | `engine.editor.setGlobalScope(scope, value)` | Scope | Set editor-wide scope permission to `'Defer'` |
662
- | `engine.block.setScopeEnabled(id, scope, enabled)` | Scope | Enable or disable a scope for a specific block |
663
- | `engine.block.isAllowedByScope(id, scope)` | Scope | Check if an operation is allowed |
486
+ | Method | Category | Purpose |
487
+ |--------|----------|---------|
488
+ | `engine.asset.addLocalSource(id)` | Asset | Create a custom asset source for brand assets |
489
+ | `engine.asset.addAssetToSource(sourceId, asset)` | Asset | Add an asset to a local source |
490
+ | `engine.editor.setGlobalScope(scope, value)` | Scope | Set editor-wide scope permission to `'Defer'` |
491
+ | `engine.block.setScopeEnabled(id, scope, enabled)` | Scope | Enable or disable a scope for a specific block |
492
+ | `engine.block.isAllowedByScope(id, scope)` | Scope | Check if an operation is allowed |
493
+
494
+
664
495
 
665
496
  ---
666
497
 
667
498
  ## More Resources
668
499
 
669
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
500
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
670
501
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
671
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
672
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
502
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
503
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support