@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,432 +1,650 @@
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) > [Create and Edit Compositions](./create-composition.md) > [Create a Collage](./create-composition/collage.md)
4
4
 
5
5
  ---
6
6
 
7
- This guide shows you how to add a **Collage** feature in your web app with the help of the CE.SDK. A collage allows you to reuse images and assets as you change the layout of the scene.
7
+ Create collages in a headless Node.js environment by loading layout templates and transferring image content between scenes.
8
8
 
9
- <Picture src={demoCollage} style={{ width: '100%' }} alt="Example of a layout change in the demo app" formats={['webp']} />
10
-
11
- > **Reading time:** 15 minutes
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/blob/main/showcase-layouts/src/components/case/CaseComponent.jsx)
17
- > - [Open in StackBlitz](https://stackblitz.com/fork/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/showcase-layouts?title=IMG.LY+CE.SDK%3A+Layouts&file=src%2Fcomponents%2Fcase%2FCaseComponent.jsx)
18
- > - [Live demo](https://img.ly/showcases/cesdk/layouts/web)
14
+ >
15
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-create-composition-collage-server-js)
16
+ >
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-create-composition-collage-server-js)
18
+
19
+ In server-side workflows, collages are created by loading a layout scene file that defines the visual structure, then transferring content from an existing scene into those positions. This approach enables batch processing of images into various collage formats.
20
+
21
+ ```typescript file=@cesdk_web_examples/guides-create-composition-collage-server-js/server-js.ts reference-only
22
+ import CreativeEngine, { DesignBlockId } from '@cesdk/node';
23
+ import { writeFileSync } from 'fs';
24
+ import { config as loadEnv } from 'dotenv';
25
+
26
+ // Load environment variables
27
+ loadEnv();
28
+
29
+ /**
30
+ * Create a Collage (Server/Node.js)
31
+ *
32
+ * This example demonstrates how to create collages programmatically:
33
+ * 1. Creating a scene with images
34
+ * 2. Loading a layout scene file
35
+ * 3. Transferring content from the original scene to the layout
36
+ * 4. Exporting the final collage
37
+ */
38
+
39
+ // Sort blocks by visual position (top-to-bottom, left-to-right)
40
+ // This ensures consistent content mapping between layouts
41
+ function visuallySortBlocks(
42
+ engine: CreativeEngine,
43
+ blocks: DesignBlockId[]
44
+ ): DesignBlockId[] {
45
+ return blocks
46
+ .map((block) => ({
47
+ block,
48
+ x: Math.round(engine.block.getPositionX(block)),
49
+ y: Math.round(engine.block.getPositionY(block))
50
+ }))
51
+ .sort((a, b) => {
52
+ if (a.y === b.y) return a.x - b.x;
53
+ return a.y - b.y;
54
+ })
55
+ .map((item) => item.block);
56
+ }
19
57
 
20
- **Layouts** in CE.SDK are predefined templates that dictate how to arrange images and assets within a single composition. They allow you to create visually appealing collages by specifying each image’s:
58
+ // Recursively collect all descendant blocks
59
+ function getChildrenTree(
60
+ engine: CreativeEngine,
61
+ blockId: DesignBlockId
62
+ ): DesignBlockId[] {
63
+ const children = engine.block.getChildren(blockId);
64
+ const result: DesignBlockId[] = [];
65
+ for (const child of children) {
66
+ result.push(child);
67
+ result.push(...getChildrenTree(engine, child));
68
+ }
69
+ return result;
70
+ }
21
71
 
22
- - Position
23
- - Size
24
- - Orientation relative to other assets on the page
72
+ async function run() {
73
+ let engine: CreativeEngine | undefined;
74
+
75
+ try {
76
+ const config = {
77
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
78
+ // license: process.env.CESDK_LICENSE,
79
+ logger: (message: string, logLevel?: string) => {
80
+ if (logLevel === 'ERROR' || logLevel === 'WARN') {
81
+ console.log(`[${logLevel}]`, message);
82
+ }
83
+ }
84
+ };
25
85
 
26
- Layouts instantly create visuals and allow you to skip manually arranging each asset.
86
+ engine = await CreativeEngine.init(config);
87
+ console.log('✓ Engine initialized');
88
+
89
+ // Create a scene with images to arrange in a collage
90
+ const scene = engine.scene.create();
91
+ const page = engine.block.create('page');
92
+ engine.block.appendChild(scene, page);
93
+
94
+ // Set page dimensions for the collage
95
+ engine.block.setWidth(page, 1080);
96
+ engine.block.setHeight(page, 1080);
97
+
98
+ // Add sample images to the page
99
+ const imageUrls = [
100
+ 'https://img.ly/static/ubq_samples/imgly_logo.jpg',
101
+ 'https://img.ly/static/ubq_samples/sample_1.jpg',
102
+ 'https://img.ly/static/ubq_samples/sample_2.jpg',
103
+ 'https://img.ly/static/ubq_samples/sample_3.jpg'
104
+ ];
105
+
106
+ for (let i = 0; i < imageUrls.length; i++) {
107
+ const graphic = engine.block.create('graphic');
108
+ const imageFill = engine.block.createFill('image');
109
+ engine.block.setString(
110
+ imageFill,
111
+ 'fill/image/imageFileURI',
112
+ imageUrls[i]
113
+ );
114
+ engine.block.setFill(graphic, imageFill);
27
115
 
28
- ## What You’ll Learn
116
+ // Position images in a simple grid (will be rearranged by layout)
117
+ engine.block.setPositionX(graphic, (i % 2) * 540);
118
+ engine.block.setPositionY(graphic, Math.floor(i / 2) * 540);
119
+ engine.block.setWidth(graphic, 540);
120
+ engine.block.setHeight(graphic, 540);
29
121
 
30
- In this guide, you will learn how to:
122
+ engine.block.appendChild(page, graphic);
123
+ }
31
124
 
32
- - Set up the layout panel in the CE.SDK UI.
33
- - Use a layout file for collages.
34
- - Use TypeScript to apply layouts in your custom UI.
125
+ console.log(`✓ Scene created with ${imageUrls.length} images`);
126
+
127
+ // Load a layout template that defines the collage structure
128
+ // The layout contains positioned placeholder blocks
129
+ const layoutUrl =
130
+ 'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_collage_1.scene';
131
+
132
+ const layoutSceneString = await fetch(layoutUrl).then((res) => res.text());
133
+ const layoutBlocks = await engine.block.loadFromString(layoutSceneString);
134
+ const layoutPage = layoutBlocks[0];
135
+
136
+ console.log('✓ Layout template loaded');
137
+
138
+ // Collect image blocks from both pages
139
+ const sourceBlocks = getChildrenTree(engine, page);
140
+ const sourceImages = sourceBlocks.filter(
141
+ (id) => engine!.block.getKind(id) === 'image'
142
+ );
143
+ const sortedSourceImages = visuallySortBlocks(engine, sourceImages);
144
+
145
+ const layoutChildren = getChildrenTree(engine, layoutPage);
146
+ const layoutImages = layoutChildren.filter(
147
+ (id) => engine!.block.getKind(id) === 'image'
148
+ );
149
+ const sortedLayoutImages = visuallySortBlocks(engine, layoutImages);
150
+
151
+ console.log(
152
+ `✓ Found ${sortedSourceImages.length} source images, ${sortedLayoutImages.length} layout slots`
153
+ );
154
+
155
+ // Transfer image content from source to layout positions
156
+ const transferCount = Math.min(
157
+ sortedSourceImages.length,
158
+ sortedLayoutImages.length
159
+ );
160
+
161
+ for (let i = 0; i < transferCount; i++) {
162
+ const sourceBlock = sortedSourceImages[i];
163
+ const targetBlock = sortedLayoutImages[i];
164
+
165
+ // Get the source image fill
166
+ const sourceFill = engine.block.getFill(sourceBlock);
167
+ const targetFill = engine.block.getFill(targetBlock);
168
+
169
+ // Transfer the image URI
170
+ const imageUri = engine.block.getString(
171
+ sourceFill,
172
+ 'fill/image/imageFileURI'
173
+ );
174
+ engine.block.setString(targetFill, 'fill/image/imageFileURI', imageUri);
175
+
176
+ // Transfer source sets if present
177
+ try {
178
+ const sourceSet = engine.block.getSourceSet(
179
+ sourceFill,
180
+ 'fill/image/sourceSet'
181
+ );
182
+ if (sourceSet.length > 0) {
183
+ engine.block.setSourceSet(
184
+ targetFill,
185
+ 'fill/image/sourceSet',
186
+ sourceSet
187
+ );
188
+ }
189
+ } catch {
190
+ // Source set not available, skip
191
+ }
192
+
193
+ // Reset crop to fill the new frame dimensions
194
+ engine.block.resetCrop(targetBlock);
195
+
196
+ // Transfer placeholder behavior if supported
197
+ if (engine.block.supportsPlaceholderBehavior(sourceBlock)) {
198
+ engine.block.setPlaceholderBehaviorEnabled(
199
+ targetBlock,
200
+ engine.block.isPlaceholderBehaviorEnabled(sourceBlock)
201
+ );
202
+ }
203
+ }
35
204
 
36
- ## When to Use Layouts
205
+ console.log(`✓ Transferred ${transferCount} images to layout`);
37
206
 
38
- The CE.SDK **Layout** feature is ideal for:
207
+ // Transfer text content (if both scenes have text blocks)
208
+ const sourceTexts = sourceBlocks.filter(
209
+ (id) => engine!.block.getType(id) === '//ly.img.ubq/text'
210
+ );
211
+ const layoutTexts = layoutChildren.filter(
212
+ (id) => engine!.block.getType(id) === '//ly.img.ubq/text'
213
+ );
39
214
 
40
- - Photo collages
41
- - Grid layouts
42
- - Magazine spreads
43
- - Social media posts
215
+ const sortedSourceTexts = visuallySortBlocks(engine, sourceTexts);
216
+ const sortedLayoutTexts = visuallySortBlocks(engine, layoutTexts);
44
217
 
45
- ## Difference Between Layouts and Templates
218
+ const textTransferCount = Math.min(
219
+ sortedSourceTexts.length,
220
+ sortedLayoutTexts.length
221
+ );
46
222
 
47
- Layouts are [custom assets](./import-media/concepts.md) that differ from templates:
223
+ for (let i = 0; i < textTransferCount; i++) {
224
+ const sourceText = sortedSourceTexts[i];
225
+ const targetText = sortedLayoutTexts[i];
48
226
 
49
- - **Templates:** Load **new assets** and replace the existing scene.
50
- - **Layouts:** Keep existing assets but change their arrangement on the page.
227
+ // Transfer text content
228
+ const text = engine.block.getString(sourceText, 'text/text');
229
+ engine.block.setString(targetText, 'text/text', text);
51
230
 
52
- Preserving assets while changing the layout **isn’t a native CE.SDK feature**. The following sections explain how to leverage the CE.SDK to do it in your app using JavaScript.
231
+ // Transfer font
232
+ const fontUri = engine.block.getString(sourceText, 'text/fontFileUri');
233
+ const typeface = engine.block.getTypeface(sourceText);
234
+ engine.block.setFont(targetText, fontUri, typeface);
53
235
 
54
- ## How Collages Work
236
+ // Transfer text color
237
+ const textColor = engine.block.getColor(sourceText, 'fill/solid/color');
238
+ engine.block.setColor(targetText, 'fill/solid/color', textColor);
239
+ }
55
240
 
56
- When you choose a collage layout, the app needs to:
241
+ if (textTransferCount > 0) {
242
+ console.log(`✓ Transferred ${textTransferCount} text blocks`);
243
+ }
57
244
 
58
- 1. Load a new layout file.
59
- 2. Extract content from your current design.
60
- 3. Map content to new layout positions.
61
- 4. Preserve images and text in visual order.
245
+ // Export the final collage
246
+ // Use the layout page dimensions for the export
247
+ const layoutWidth = engine.block.getWidth(layoutPage);
248
+ const layoutHeight = engine.block.getHeight(layoutPage);
249
+
250
+ const blob = await engine.block.export(layoutPage, {
251
+ mimeType: 'image/png',
252
+ targetWidth: layoutWidth,
253
+ targetHeight: layoutHeight
254
+ });
255
+
256
+ const buffer = Buffer.from(await blob.arrayBuffer());
257
+ writeFileSync('collage-output.png', buffer);
258
+ console.log(
259
+ `✓ Exported collage to collage-output.png (${layoutWidth}x${layoutHeight})`
260
+ );
261
+
262
+ // Clean up temporary blocks
263
+ engine.block.destroy(page);
264
+ console.log('✓ Cleanup completed');
265
+
266
+ console.log('\n✓ Collage created successfully!');
267
+ } catch (error) {
268
+ console.error('Error:', error);
269
+ process.exit(1);
270
+ } finally {
271
+ // Always dispose the engine
272
+ engine?.dispose();
273
+ console.log('\n✓ Engine disposed');
274
+ }
275
+ }
62
276
 
63
- You trigger this workflow when a user selects a layout from the **Layouts** panel in the CE.SDK UI.
277
+ // Run the example
278
+ run();
279
+ ```
64
280
 
65
- ## Add a Layouts Panel to the CE.SDK UI
281
+ This guide covers how to load layout templates, implement visual sorting to map content between layouts, transfer images and text while preserving properties, and export the final collage.
66
282
 
67
- The CE.SDK allows you to add [custom panels to the UI](./user-interface/customization/panel.md). To add a **Layouts** panel for collage selection, you need to create it and load custom assets to configure its appearance and behavior.
283
+ ## How Server-Side Collages Work
68
284
 
69
- For this action, you need:
285
+ Server-side collage creation follows this workflow:
70
286
 
71
- 1. A layout file defining the collage structure (use [this one](https://github.com/imgly/cesdk-web-examples/blob/main/showcase-layouts/src/components/case/CustomLayouts.json) to get started).
72
- 2. Thumbnail images for preview (find a collection [here](https://github.com/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/showcase-layouts/public/cases/layouts)).
287
+ 1. **Create a scene with images** Load or create blocks containing your source images
288
+ 2. **Load a layout template** Fetch a scene file that defines the collage structure
289
+ 3. **Sort blocks visually** — Order blocks by position for consistent mapping
290
+ 4. **Transfer content** — Copy image URIs and text from source to layout positions
291
+ 5. **Export the result** — Generate the final collage image
73
292
 
74
- ### 1. Add a Layouts Option to the CE.SDK Menu
293
+ The layout template defines where images appear in the final output. By sorting blocks visually (top-to-bottom, left-to-right), content maps predictably between different layouts.
75
294
 
76
- To **customize the CE.SDK UI** and create a **Layouts** panel, use the CE.SDK UserInterfaceAPI. Add a Layout button with `ui.setComponentOrder({ in: 'ly.img.dock' }, order)`, using the following properties:
295
+ ## Initialize the Engine
77
296
 
78
- - `id`
79
- - `key`
80
- - `label`
81
- - `icon`
82
- - `entries`
297
+ Start by initializing the headless engine.
83
298
 
84
- For example:
299
+ ```typescript highlight=highlight-setup
300
+ const config = {
301
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
302
+ // license: process.env.CESDK_LICENSE,
303
+ logger: (message: string, logLevel?: string) => {
304
+ if (logLevel === 'ERROR' || logLevel === 'WARN') {
305
+ console.log(`[${logLevel}]`, message);
306
+ }
307
+ }
308
+ };
85
309
 
86
- ```ts
87
- cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
88
- {
89
- id: 'ly.img.assetLibrary.dock',
90
- key: 'layouts-dock-entry',
91
- label: 'Layouts',
92
- icon: '@imgly/Layout',
93
- entries: ['layouts']
94
- }
95
- ]);
310
+ engine = await CreativeEngine.init(config);
311
+ console.log('✓ Engine initialized');
96
312
  ```
97
313
 
98
- <Picture src={addLayoutsToUI} style={{ width: '80%' }} alt="Default dock vs. custom dock with layout option." formats={['webp']} />
99
-
100
- ### 2. Customize the Layouts Panel Appearance
101
-
102
- To configure how the **Layouts** panel looks and behaves, use the `ui.addAssetLibraryEntry()` helper with the following options:
314
+ ## Create a Scene with Images
315
+
316
+ Create a scene containing the images you want to arrange in the collage. In production, you might load these from a database or API.
317
+
318
+ ```typescript highlight=highlight-create-scene
319
+ // Create a scene with images to arrange in a collage
320
+ const scene = engine.scene.create();
321
+ const page = engine.block.create('page');
322
+ engine.block.appendChild(scene, page);
323
+
324
+ // Set page dimensions for the collage
325
+ engine.block.setWidth(page, 1080);
326
+ engine.block.setHeight(page, 1080);
327
+
328
+ // Add sample images to the page
329
+ const imageUrls = [
330
+ 'https://img.ly/static/ubq_samples/imgly_logo.jpg',
331
+ 'https://img.ly/static/ubq_samples/sample_1.jpg',
332
+ 'https://img.ly/static/ubq_samples/sample_2.jpg',
333
+ 'https://img.ly/static/ubq_samples/sample_3.jpg'
334
+ ];
335
+
336
+ for (let i = 0; i < imageUrls.length; i++) {
337
+ const graphic = engine.block.create('graphic');
338
+ const imageFill = engine.block.createFill('image');
339
+ engine.block.setString(
340
+ imageFill,
341
+ 'fill/image/imageFileURI',
342
+ imageUrls[i]
343
+ );
344
+ engine.block.setFill(graphic, imageFill);
103
345
 
104
- - `id`: Unique identifier for the panel.
105
- - `sourceIds`: Which assets to display.
106
- - `previewLength`: How many preview items to display in the panel.
107
- - `gridColumns`: How many columns to contain the previews in the panel.
108
- - `gridItemHeight`: The shape of each tile in the panel grid.
109
- - `previewBackgroundType`: How to fit the previews inside their tiles (cover/contain).
110
- - `gridBackgroundType`: How to display the panel background (cover/contain).
346
+ // Position images in a simple grid (will be rearranged by layout)
347
+ engine.block.setPositionX(graphic, (i % 2) * 540);
348
+ engine.block.setPositionY(graphic, Math.floor(i / 2) * 540);
349
+ engine.block.setWidth(graphic, 540);
350
+ engine.block.setHeight(graphic, 540);
111
351
 
112
- For example, the demo uses this configuration:
352
+ engine.block.appendChild(page, graphic);
353
+ }
113
354
 
114
- ```jsx title="CustomCase.jsx"
115
- instance.ui.addAssetLibraryEntry({
116
- id: 'ly.img.layouts', // Referenced in the dock entry in Step 1
117
- sourceIds: ['ly.img.layouts'], // Points to our custom layout asset source
118
- previewLength: 2, // Number of preview items int the compact panel
119
- gridColumns: 2, // Organize tiles in 2 columns
120
- gridItemHeight: 'square', // Square tiles
121
- previewBackgroundType: 'contain', // Fit compact panel background
122
- gridBackgroundType: 'contain' // Fit panel background
123
- });
355
+ console.log(`✓ Scene created with ${imageUrls.length} images`);
124
356
  ```
125
357
 
126
- <Picture src={panelLayout} style={{ width: '80%' }} alt="Default dock vs. custom dock with layout option." formats={['webp']} />
127
-
128
- To learn more about panel customization, check the [Panel Customization guide](./user-interface/customization/panel.md).
358
+ ## Load a Layout Template
129
359
 
130
- ### 3. Load Custom Assets
360
+ Load a layout scene file that defines the collage structure. Layout templates contain positioned image blocks that serve as placeholders.
131
361
 
132
- The demo uses a [helper function](https://github.com/imgly/cesdk-web-examples/blob/main/showcase-layouts/src/components/case/lib/loadAssetSourceFromContentJSON.ts) to load a custom layout asset source from a JSON file. This file defines the available layouts and their metadata. You can reuse this logic by defining both:
362
+ ```typescript highlight=highlight-load-layout
363
+ // Load a layout template that defines the collage structure
364
+ // The layout contains positioned placeholder blocks
365
+ const layoutUrl =
366
+ 'https://cdn.img.ly/assets/demo/v3/ly.img.template/templates/cesdk_collage_1.scene';
133
367
 
134
- - A `ContentJSON` object (like `CustomLayouts.json`)
135
- - A `baseURL` for your custom assets that replaces the `{{base_url}}`.
368
+ const layoutSceneString = await fetch(layoutUrl).then((res) => res.text());
369
+ const layoutBlocks = await engine.block.loadFromString(layoutSceneString);
370
+ const layoutPage = layoutBlocks[0];
136
371
 
137
- ```jsx title="CustomCase.jsx"
138
- import { createApplyLayoutAsset } from './lib/createApplyLayoutAsset';
139
- import loadAssetSourceFromContentJSON from './lib/loadAssetSourceFromContentJSON';
140
-
141
- // ...
142
- const caseAssetPath = (path, caseId = 'layouts') =>
143
- `${process.env.NEXT_PUBLIC_URL_HOSTNAME}${process.env.NEXT_PUBLIC_URL}/cases/${caseId}${path}`;
144
-
145
- // Call the helper to load the layout assets
146
- loadAssetSourceFromContentJSON(
147
- instance.engine, // Pss the CE.SDK engine to load assets into
148
- LAYOUT_ASSETS, // Pass the JSON bundle
149
- caseAssetPath(''), // Base URL for assets
150
- createApplyLayoutAsset(instance.engine) // Callback to createApplyLayoutAsset.js helper
151
- );
152
- await instance.loadFromURL(caseAssetPath('/custom-layouts.scene')); // Load the scene
153
- // ...
372
+ console.log('✓ Layout template loaded');
154
373
  ```
155
374
 
156
- In the previous example, the helper accepts an optional **applyAsset callback**, so:
157
-
158
- 1. A user picks a layout from the library.
159
- 2. The engine invokes the callback to apply it.
160
- 3. The engine replaces the current page’s structure with the layout while keeping the user’s images/text.
161
-
162
- Asset preservation isn't a CE.SDK native feature. It’s handled in the `createApplyLayoutAsset.js` helper, which you can find in [the repository](https://github.com/imgly/cesdk-web-examples/blob/main/showcase-layouts/src/components/case/lib/createApplyLayoutAsset.js).
163
-
164
- ## Apply the Collage
165
-
166
- When applying a collage, the following actions need to be implemented:
167
-
168
- 1. Changing the structure of the design.
169
- 2. Transferring the existing content to the new structure.
170
- 3. Deleting the previous scene.
171
-
172
- You can find this workflow in the `createApplyLayoutAsset()` helper from the demo. Follow these steps to replicate it:
173
-
174
- ### 1. Prepare and Allow changes
175
-
176
- - Allow block deletion with `editor.setGlobalScope('lifecycle/destroy', 'Allow')`.
177
- - Clear the selected blocks with `block.setSelected(block, false)`.
178
-
179
- ```js title="createApplyLayoutAsset.js"
180
- const scopeBefore = engine.editor.getGlobalScope('lifecycle/destroy');
181
- engine.editor.setGlobalScope('lifecycle/destroy', 'Allow');
182
- const page = engine.scene.getCurrentPage();
183
- engine.block
184
- .findAllSelected()
185
- .forEach((block) => engine.block.setSelected(block, false));
375
+ ## Sort Blocks by Visual Position
376
+
377
+ Visual sorting ensures consistent content mapping regardless of the order blocks were created. Blocks are sorted top-to-bottom, then left-to-right.
378
+
379
+ ```typescript highlight=highlight-visual-sort
380
+ // Sort blocks by visual position (top-to-bottom, left-to-right)
381
+ // This ensures consistent content mapping between layouts
382
+ function visuallySortBlocks(
383
+ engine: CreativeEngine,
384
+ blocks: DesignBlockId[]
385
+ ): DesignBlockId[] {
386
+ return blocks
387
+ .map((block) => ({
388
+ block,
389
+ x: Math.round(engine.block.getPositionX(block)),
390
+ y: Math.round(engine.block.getPositionY(block))
391
+ }))
392
+ .sort((a, b) => {
393
+ if (a.y === b.y) return a.x - b.x;
394
+ return a.y - b.y;
395
+ })
396
+ .map((item) => item.block);
397
+ }
186
398
  ```
187
399
 
188
- ### 2. Load the New Layout
400
+ ## Collect Blocks from Both Scenes
189
401
 
190
- - Load the new layout with `block.loadFromString()`.
191
- - Return the first page from the loaded blocks as the layout page.
402
+ Recursively collect all descendant blocks, then filter by type to separate images from other content.
192
403
 
193
- ```js title="createApplyLayoutAsset.js"
194
- const sceneString = await fetch(asset.meta.uri).then((response) =>
195
- response.text()
196
- );
197
- const blocks = await engine.block.loadFromString(sceneString);
198
- const layoutPage = blocks[0];
199
- ```
404
+ ```typescript highlight=highlight-collect-blocks
405
+ // Collect image blocks from both pages
406
+ const sourceBlocks = getChildrenTree(engine, page);
407
+ const sourceImages = sourceBlocks.filter(
408
+ (id) => engine!.block.getKind(id) === 'image'
409
+ );
410
+ const sortedSourceImages = visuallySortBlocks(engine, sourceImages);
200
411
 
201
- ### 3. Backup Current Page
412
+ const layoutChildren = getChildrenTree(engine, layoutPage);
413
+ const layoutImages = layoutChildren.filter(
414
+ (id) => engine!.block.getKind(id) === 'image'
415
+ );
416
+ const sortedLayoutImages = visuallySortBlocks(engine, layoutImages);
202
417
 
203
- - Duplicate the current page with `block.duplicate()` to keep a backup of the existing content.
204
- - The CE.SDK uses this backup to transfer images and text to the new layout.
205
- - Clear the current page structure by destroying all its children.
206
-
207
- ```js title="createApplyLayoutAsset.js"
208
- const oldPage = engine.block.duplicate(page);
209
- engine.block.getChildren(page).forEach((child) => {
210
- engine.block.destroy(child);
211
- });
212
- engine.block.getChildren(layoutPage).forEach((child) => {
213
- engine.block.insertChild(page, child, engine.block.getChildren(page).length);
214
- });
418
+ console.log(
419
+ `✓ Found ${sortedSourceImages.length} source images, ${sortedLayoutImages.length} layout slots`
420
+ );
215
421
  ```
216
422
 
217
- ### 4. Transfer Content
218
-
219
- Copy user text and images onto the new layout:
423
+ ## Transfer Image Content
220
424
 
221
- ```js title="createApplyLayoutAsset.js"
222
- copyAssets(engine, oldPage, page);
223
- ```
425
+ Copy image URIs and source sets from source blocks to layout positions. Reset the crop on each target block so images fill their new frames.
224
426
 
225
- ### 5. Sort Blocks Visually and Pair Content
427
+ ```typescript highlight=highlight-transfer-images
428
+ // Transfer image content from source to layout positions
429
+ const transferCount = Math.min(
430
+ sortedSourceImages.length,
431
+ sortedLayoutImages.length
432
+ );
226
433
 
227
- Grab text and image blocks from both pages in visual order (top to bottom, left to right):
434
+ for (let i = 0; i < transferCount; i++) {
435
+ const sourceBlock = sortedSourceImages[i];
436
+ const targetBlock = sortedLayoutImages[i];
228
437
 
229
- ```js title="createApplyLayoutAsset.js"
230
- const fromChildren = visuallySortBlocks(
231
- engine,
232
- getChildrenTree(engine, fromPageId).flat()
233
- );
234
- const textsOnFromPage = fromChildren.filter((childId) =>
235
- engine.block.getType(childId).includes('text')
236
- );
237
- const imagesOnFromPage = fromChildren.filter(
238
- (childId) => engine.block.getKind(childId) === 'image'
239
- );
240
- // same for toPageId -> textsOnToPage, imagesOnToPage
241
- ```
438
+ // Get the source image fill
439
+ const sourceFill = engine.block.getFill(sourceBlock);
440
+ const targetFill = engine.block.getFill(targetBlock);
242
441
 
243
- Then apply the content from the old page to the new layout by looping through the blocks:
244
-
245
- <Tabs>
246
- <TabItem label="Step 1: Copy text content, font, color">
247
- ```js title="createApplyLayoutAsset.js"
248
-
249
- const fromText = engine.block.getString(fromBlock, 'text/text');
250
- const fromFontFileUri = engine.block.getString(fromBlock, 'text/fontFileUri');
251
- const fromTypeface = engine.block.getTypeface(fromBlock);
252
- engine.block.setFont(toBlock, fromFontFileUri, fromTypeface);
253
- const fromTextFillColor = engine.block.getColor(fromBlock, 'fill/solid/color');
254
- engine.block.setString(toBlock, 'text/text', fromText);
255
- engine.block.setColor(toBlock, 'fill/solid/color', fromTextFillColor);
256
-
257
- ```
258
-
259
- </TabItem>
260
-
261
- <TabItem label="Step 2: Copy images and placeholder behavior">
262
- ```js title="createApplyLayoutAsset.js"
263
-
264
- const fromImageFill = engine.block.getFill(fromBlock);
265
- const toImageFill = engine.block.getFill(toBlock);
266
- const fromImageFileUri = engine.block.getString(fromImageFill, 'fill/image/imageFileURI');
267
- engine.block.setString(toImageFill, 'fill/image/imageFileURI', fromImageFileUri);
268
- const fromImageSourceSets = engine.block.getSourceSet(fromImageFill, 'fill/image/sourceSet');
269
- engine.block.setSourceSet(toImageFill, 'fill/image/sourceSet', fromImageSourceSets);
270
- if (engine.block.supportsPlaceholderBehavior(fromBlock)) {
271
- engine.block.setPlaceholderBehaviorEnabled(
272
- toBlock,
273
- engine.block.isPlaceholderBehaviorEnabled(fromBlock)
442
+ // Transfer the image URI
443
+ const imageUri = engine.block.getString(
444
+ sourceFill,
445
+ 'fill/image/imageFileURI'
274
446
  );
447
+ engine.block.setString(targetFill, 'fill/image/imageFileURI', imageUri);
448
+
449
+ // Transfer source sets if present
450
+ try {
451
+ const sourceSet = engine.block.getSourceSet(
452
+ sourceFill,
453
+ 'fill/image/sourceSet'
454
+ );
455
+ if (sourceSet.length > 0) {
456
+ engine.block.setSourceSet(
457
+ targetFill,
458
+ 'fill/image/sourceSet',
459
+ sourceSet
460
+ );
461
+ }
462
+ } catch {
463
+ // Source set not available, skip
464
+ }
465
+
466
+ // Reset crop to fill the new frame dimensions
467
+ engine.block.resetCrop(targetBlock);
468
+
469
+ // Transfer placeholder behavior if supported
470
+ if (engine.block.supportsPlaceholderBehavior(sourceBlock)) {
471
+ engine.block.setPlaceholderBehaviorEnabled(
472
+ targetBlock,
473
+ engine.block.isPlaceholderBehaviorEnabled(sourceBlock)
474
+ );
475
+ }
275
476
  }
276
- engine.block.resetCrop(toBlock);
277
477
 
278
- ```
279
-
280
- </TabItem>
281
- </Tabs>
478
+ console.log(`✓ Transferred ${transferCount} images to layout`);
479
+ ```
282
480
 
283
- ### 6. Cleanup and Restore State
481
+ **Key methods:**
284
482
 
285
- Cleanup temporary blocks with `block.destroy()` and restore global scope:
483
+ - `getFill()` and `setString()` Transfer the image URI between fills
484
+ - `getSourceSet()` and `setSourceSet()` — Preserve responsive image variants
485
+ - `resetCrop()` — Adjust the image crop to fill the new frame dimensions
486
+ - `supportsPlaceholderBehavior()` — Check and transfer placeholder settings
286
487
 
287
- ```js title="createApplyLayoutAsset.js"
288
- engine.block.destroy(oldPage);
289
- engine.block.destroy(layoutPage);
290
- engine.editor.setGlobalScope('lifecycle/destroy', scopeBefore);
291
- if (config.addUndoStep) {
292
- engine.editor.addUndoStep();
293
- }
294
- return page;
295
- ```
488
+ ## Transfer Text Content
296
489
 
297
- This keeps the editor stable and predictable after the layout changes and prevents:
490
+ If both scenes contain text blocks, transfer text content, fonts, and colors in visual order.
298
491
 
299
- - Stray selections.
300
- - Ghost placeholders.
301
- - Unused assets left at the scene.
492
+ ```typescript highlight=highlight-transfer-text
493
+ // Transfer text content (if both scenes have text blocks)
494
+ const sourceTexts = sourceBlocks.filter(
495
+ (id) => engine!.block.getType(id) === '//ly.img.ubq/text'
496
+ );
497
+ const layoutTexts = layoutChildren.filter(
498
+ (id) => engine!.block.getType(id) === '//ly.img.ubq/text'
499
+ );
302
500
 
303
- ## Advanced Collage Techniques
501
+ const sortedSourceTexts = visuallySortBlocks(engine, sourceTexts);
502
+ const sortedLayoutTexts = visuallySortBlocks(engine, layoutTexts);
304
503
 
305
- <Tabs>
306
- <TabItem label="Keep Placeholder Behavior">
307
- The CE.SDK BlockAPI eases the transfer of [placeholder behavior](./create-templates/add-dynamic-content/placeholders.md) when moving images between blocks. You can use it to:
504
+ const textTransferCount = Math.min(
505
+ sortedSourceTexts.length,
506
+ sortedLayoutTexts.length
507
+ );
308
508
 
309
- 1. Checks if the block supports placeholder behavior with `supportsPlaceholderBehavior`.
310
- 2. Apply the same setting to the target image block with:
509
+ for (let i = 0; i < textTransferCount; i++) {
510
+ const sourceText = sortedSourceTexts[i];
511
+ const targetText = sortedLayoutTexts[i];
311
512
 
312
- - `isPlaceholderBehaviorEnabled()`
313
- - `setPlaceholderBehaviorEnabled()`
513
+ // Transfer text content
514
+ const text = engine.block.getString(sourceText, 'text/text');
515
+ engine.block.setString(targetText, 'text/text', text);
314
516
 
315
- ```js title="createApplyLayoutAsset.js"
517
+ // Transfer font
518
+ const fontUri = engine.block.getString(sourceText, 'text/fontFileUri');
519
+ const typeface = engine.block.getTypeface(sourceText);
520
+ engine.block.setFont(targetText, fontUri, typeface);
316
521
 
317
- if (engine.block.supportsPlaceholderBehavior(fromBlock)) {
318
- engine.block.setPlaceholderBehaviorEnabled(
319
- toBlock,
320
- engine.block.isPlaceholderBehaviorEnabled(fromBlock),
321
- );
522
+ // Transfer text color
523
+ const textColor = engine.block.getColor(sourceText, 'fill/solid/color');
524
+ engine.block.setColor(targetText, 'fill/solid/color', textColor);
322
525
  }
323
- ```
324
526
 
325
- This maintains the behavior of current placeholders after the layout swap.
527
+ if (textTransferCount > 0) {
528
+ console.log(`✓ Transferred ${textTransferCount} text blocks`);
529
+ }
530
+ ```
326
531
 
327
- </TabItem>
532
+ ## Export the Collage
328
533
 
329
- <TabItem label="Distribute Content Evenly">
330
- To ensure the CE.SDK uses all the existing images when applying a layout, you can:
534
+ Export the layout page with the transferred content. The output dimensions match the layout template.
331
535
 
332
- 1. Handle overflow when more images than slots:
536
+ ```typescript highlight=highlight-export
537
+ // Export the final collage
538
+ // Use the layout page dimensions for the export
539
+ const layoutWidth = engine.block.getWidth(layoutPage);
540
+ const layoutHeight = engine.block.getHeight(layoutPage);
333
541
 
334
- ```js title="createApplyLayoutAsset.js"
542
+ const blob = await engine.block.export(layoutPage, {
543
+ mimeType: 'image/png',
544
+ targetWidth: layoutWidth,
545
+ targetHeight: layoutHeight
546
+ });
335
547
 
336
- for (
337
- let index = 0;
338
- index < imagesOnToPage.length && index < imagesOnFromPage.length;
339
- index++
340
- ) { ... }
548
+ const buffer = Buffer.from(await blob.arrayBuffer());
549
+ writeFileSync('collage-output.png', buffer);
550
+ console.log(
551
+ `✓ Exported collage to collage-output.png (${layoutWidth}x${layoutHeight})`
552
+ );
553
+ ```
341
554
 
342
- ```
555
+ ## Clean Up
343
556
 
344
- 2. Fill empty slots with defaults or placeholders:
557
+ Destroy temporary blocks and dispose of the engine when finished.
345
558
 
346
- ```js title="createApplyLayoutAsset.js"
559
+ ```typescript highlight=highlight-cleanup
560
+ // Clean up temporary blocks
561
+ engine.block.destroy(page);
562
+ console.log('✓ Cleanup completed');
563
+ ```
347
564
 
348
- // loop condition ends when sources run out, leaving remaining target slots unchanged
349
- index < imagesOnToPage.length && index < imagesOnFromPage.length;
565
+ ## Handling Mismatched Slot Counts
350
566
 
351
- ```
567
+ When the source has more images than the layout has slots, extra images are ignored. When the layout has more slots, some remain empty or keep their placeholder content.
352
568
 
353
- 3. List content by importance or metadata:
569
+ ```typescript
570
+ // Transfer only as many images as both sides support
571
+ const transferCount = Math.min(
572
+ sortedSourceImages.length,
573
+ sortedLayoutImages.length
574
+ );
575
+ ```
354
576
 
355
- ```js title="createApplyLayoutAsset.js"
577
+ For production use, consider:
356
578
 
357
- const visuallySortBlocks = (engine, blocks) => {
358
- const blocksWithCoordinates = blocks
359
- .map((block) => ({
360
- block,
361
- coordinates: [
362
- Math.round(engine.block.getPositionX(block)),
363
- Math.round(engine.block.getPositionY(block))
364
- ]
365
- }))
366
- .sort(({ coordinates: [X1, Y1] }, { coordinates: [X2, Y2] }) => {
367
- if (Y1 === Y2) return X1 - X2;
368
- return Y1 - Y2;
369
- });
370
- return blocksWithCoordinates.map(({ block }) => block);
371
- };
579
+ - Selecting layouts based on image count
580
+ - Filling empty slots with placeholder images
581
+ - Prioritizing images by metadata or user selection
372
582
 
373
- ```
583
+ ## Troubleshooting
374
584
 
375
- </TabItem>
585
+ ### Images Not Appearing in Layout
376
586
 
377
- <TabItem label="Animate Layout Transitions">
378
- For a better user experience, consider adding animations when applying layouts:
587
+ Verify the layout template contains image blocks with the correct kind. Check that `engine.block.getKind(id)` returns `'image'` for your target blocks.
379
588
 
380
- ```tsx title="LoadingSpinner.tsx"
381
- const LoadingSpinner = () => {
382
- return <div className={styles.spinner} data-cy={'loading-spinner'}></div>;
383
- };
384
- ```
589
+ ### Content in Wrong Positions
385
590
 
386
- You can code more customizations to incorporate these effects into collage transitions:
591
+ Visual sorting depends on block coordinates. If blocks have identical Y positions, they sort by X. Ensure layout templates have distinct positions for each slot.
387
592
 
388
- - Fading
389
- - Sliding
390
- - Morphing
593
+ ### Source Sets Not Transferring
391
594
 
392
- </TabItem>
393
- </Tabs>
595
+ Not all image fills have source sets. Wrap the transfer in a try-catch to handle blocks without this property.
394
596
 
395
- ## Optimize the Layout Workflow
597
+ ### Layout Template Not Loading
396
598
 
397
- For a better user experience when creating collages, consider these optimizations:
599
+ Check that the layout URL is accessible from your server environment. In production, host layout templates on your own infrastructure or use a CDN.
398
600
 
399
- | Topic | Strategies |
400
- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
401
- | **Asset Loading** | ・ Lazy load thumbnails and cache scene files<br />・ Preload common layouts and minimize file sizes<br />・ Use CDN for efficient asset delivery |
402
- | **Content Transfer** | ・ Batch block operations to reduce engine calls<br />・ Optimize sorting algorithms and memory usage<br />・ Handle large page structures efficiently |
403
- | **Visual Cues** | ・ Show loading states and support undo/redo<br />・ Add error recovery and prevent accidental changes |
601
+ ## API Reference
404
602
 
405
- ## Troubleshooting
603
+ | Method | Category | Purpose |
604
+ |--------|----------|---------|
605
+ | `engine.scene.create()` | Scene | Create an empty scene |
606
+ | `engine.block.create()` | Block | Create blocks of various types |
607
+ | `engine.block.createFill()` | Fill | Create fill objects for blocks |
608
+ | `engine.block.setFill()` | Fill | Assign a fill to a block |
609
+ | `engine.block.getFill()` | Fill | Get the fill assigned to a block |
610
+ | `engine.block.loadFromString()` | Import | Load blocks from a scene string |
611
+ | `engine.block.getChildren()` | Hierarchy | Get direct children of a block |
612
+ | `engine.block.appendChild()` | Hierarchy | Add a child to a block |
613
+ | `engine.block.getKind()` | Property | Get the semantic kind of a block |
614
+ | `engine.block.getType()` | Property | Get the type of a block |
615
+ | `engine.block.getPositionX()` | Layout | Get X position of a block |
616
+ | `engine.block.getPositionY()` | Layout | Get Y position of a block |
617
+ | `engine.block.getString()` | Property | Get string property value |
618
+ | `engine.block.setString()` | Property | Set string property value |
619
+ | `engine.block.getSourceSet()` | Fill | Get image source set |
620
+ | `engine.block.setSourceSet()` | Fill | Set image source set |
621
+ | `engine.block.resetCrop()` | Crop | Reset crop to fill frame |
622
+ | `engine.block.supportsPlaceholderBehavior()` | Placeholder | Check placeholder support |
623
+ | `engine.block.isPlaceholderBehaviorEnabled()` | Placeholder | Check if placeholder is enabled |
624
+ | `engine.block.setPlaceholderBehaviorEnabled()` | Placeholder | Enable/disable placeholder |
625
+ | `engine.block.getTypeface()` | Text | Get typeface of a text block |
626
+ | `engine.block.setFont()` | Text | Set font for a text block |
627
+ | `engine.block.getColor()` | Property | Get color property value |
628
+ | `engine.block.setColor()` | Property | Set color property value |
629
+ | `engine.block.getWidth()` | Layout | Get width of a block |
630
+ | `engine.block.getHeight()` | Layout | Get height of a block |
631
+ | `engine.block.export()` | Export | Export a block to an image |
632
+ | `engine.block.destroy()` | Lifecycle | Destroy a block |
633
+ | `engine.dispose()` | Lifecycle | Clean up engine resources |
406
634
 
407
- | Issue | ✅ Solutions |
408
- | --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
409
- | Layout not applying | ・ Verify asset source registration and callback connection<br />・ Check browser console for scene files or CORS errors<br />・ Check the validity of scene file URLs |
410
- | Content lost during layout change | ・ Debug visual sorting with console logs<br />・ Verify block type filtering is correct<br />・ Test with different content settings |
411
- | Incorrect visual order | ・ Adjust coordinate rounding tolerance in sorting<br />・ Flatten complex hierarchies before sorting<br />・ Test with well-defined layout structures |
412
- | Performance degradation | ・ Optimize scene file sizes<br />・ Batch engine operations<br />・ Profile and optimize content transfer |
413
- | Undo not working | ・ Ensure `addUndoStep()` called after all changes complete<br />・ Verify undo configuration in engine setup |
635
+ ## Related Guides
414
636
 
415
- ## Next Steps
637
+ - [Apply Templates](./use-templates/apply-template.md) — Loading complete templates instead of transferring content
638
+ - [Headless Mode](./concepts/headless-mode.md) — Server-side processing fundamentals
639
+ - [Export Overview](./export-save-publish/export/overview.md) — Export options and formats
416
640
 
417
- Now that know how to create collages with layouts, explore these related guides to expand your CE.SDK knowledge:
418
641
 
419
- - [Apply Templates](./create-templates/overview.md) - Work with templates instead of layouts
420
- - [Create Custom Asset Sources](./import-media/asset-panel/basics.md) - Import custom assets
421
- - [Customize UI Panels](./user-interface/customization/panel.md) - Advanced UI customization
422
- - [Work with Images](./insert-media/images.md) - Manage image blocks and fills
423
- - [Scene Management](./open-the-editor/load-scene.md) - Load and save scenes
424
642
 
425
643
  ---
426
644
 
427
645
  ## More Resources
428
646
 
429
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
647
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
430
648
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
431
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
432
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
649
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
650
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support