@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,463 +1,301 @@
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) > [Export Media Assets](./export-save-publish/export.md) > [Partial Export](./export-save-publish/export/partial-export.md)
4
4
 
5
5
  ---
6
6
 
7
7
  Export individual design elements, grouped blocks, or specific pages from your
8
- scene instead of exporting everything at once using CE.SDK's flexible export
9
- API.
8
+ scene server-side using CE.SDK's headless Node.js engine for automated workflows,
9
+ batch processing, and backend integrations.
10
10
 
11
- ![Partial Export example showing multiple blocks and groups being exported individually](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
12
-
13
- > **Reading time:** 10 minutes
11
+ > **Reading time:** 15 minutes
14
12
  >
15
13
  > **Resources:**
16
14
  >
17
15
  > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
18
- > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples)
19
- > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples)
20
- > - [Live demo](https://img.ly/docs/cesdk/examples/guides-export-save-publish-export-partial-export-browser/)
21
-
22
- Understanding how to export specific parts of your scene gives you fine-grained control over output generation. Instead of exporting an entire scene, you can export individual images, text blocks, shapes, grouped elements, or specific pages. This is essential for creating asset libraries, implementing "export selection" features, or generating multiple outputs from a single design.
23
-
24
- ```typescript file=@cesdk_web_examples/guides-export-save-publish-export-partial-export-browser/browser.ts reference-only
25
- import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
26
- import {
27
- BlurAssetSource,
28
- ColorPaletteAssetSource,
29
- CropPresetsAssetSource,
30
- DemoAssetSources,
31
- EffectsAssetSource,
32
- FiltersAssetSource,
33
- PagePresetsAssetSource,
34
- StickerAssetSource,
35
- TextAssetSource,
36
- TextComponentAssetSource,
37
- TypefaceAssetSource,
38
- UploadAssetSources,
39
- VectorShapeAssetSource
40
- } from '@cesdk/cesdk-js/plugins';
41
- import { DesignEditorConfig } from './design-editor/plugin';
42
- import packageJson from './package.json';
16
+ >
17
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-export-save-publish-export-partial-export-server-js)
18
+ >
19
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-export-save-publish-export-partial-export-server-js)
20
+
21
+ Server-side partial export enables fine-grained control over output generation in headless environments. Export individual images, text blocks, shapes, grouped elements, or specific pages programmatically for asset generation pipelines, automated report creation, or serverless functions. This guide demonstrates how to implement partial exports using CE.SDK's Node.js engine (`@cesdk/node`).
22
+
23
+ ```typescript file=@cesdk_web_examples/guides-export-save-publish-export-partial-export-server-js/server-js.ts reference-only
24
+ import CreativeEngine from '@cesdk/node';
25
+ import { config } from 'dotenv';
26
+ import { writeFileSync, mkdirSync, existsSync } from 'fs';
43
27
  import { calculateGridLayout } from './utils';
44
28
 
29
+ // Load environment variables
30
+ config();
31
+
45
32
  /**
46
- * CE.SDK Plugin: Partial Export Guide
33
+ * CE.SDK Server Guide: Partial Export
47
34
  *
48
- * This example demonstrates:
35
+ * Demonstrates exporting specific blocks, groups, and pages programmatically:
49
36
  * - Exporting individual design blocks
50
37
  * - Exporting grouped elements
51
- * - Exporting with different formats and options
38
+ * - Exporting specific pages
39
+ * - Export format selection and options
52
40
  * - Understanding block hierarchy in exports
53
41
  */
54
- class Example implements EditorPlugin {
55
- name = packageJson.name;
56
42
 
57
- version = packageJson.version;
43
+ // Initialize CE.SDK engine in headless mode
44
+ const engine = await CreativeEngine.init({
45
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
46
+ });
58
47
 
59
- async initialize({ cesdk }: EditorPluginContext): Promise<void> {
60
- if (!cesdk) {
61
- throw new Error('CE.SDK instance is required for this plugin');
62
- }
48
+ try {
49
+ // Create a design scene with specific page dimensions
50
+ engine.scene.create('VerticalStack', {
51
+ page: { size: { width: 1200, height: 900 } },
52
+ });
63
53
 
64
- await cesdk.addPlugin(new DesignEditorConfig());
65
- // Add asset source plugins
66
- await cesdk.addPlugin(new BlurAssetSource());
67
- await cesdk.addPlugin(new ColorPaletteAssetSource());
68
- await cesdk.addPlugin(new CropPresetsAssetSource());
69
- await cesdk.addPlugin(
70
- new UploadAssetSources({ include: ['ly.img.image.upload'] })
71
- );
72
- await cesdk.addPlugin(
73
- new DemoAssetSources({
74
- include: [
75
- 'ly.img.templates.blank.*',
76
- 'ly.img.templates.presentation.*',
77
- 'ly.img.templates.print.*',
78
- 'ly.img.templates.social.*',
79
- 'ly.img.image.*'
80
- ]
81
- })
82
- );
83
- await cesdk.addPlugin(new EffectsAssetSource());
84
- await cesdk.addPlugin(new FiltersAssetSource());
85
- await cesdk.addPlugin(new PagePresetsAssetSource());
86
- await cesdk.addPlugin(new StickerAssetSource());
87
- await cesdk.addPlugin(new TextAssetSource());
88
- await cesdk.addPlugin(new TextComponentAssetSource());
89
- await cesdk.addPlugin(new TypefaceAssetSource());
90
- await cesdk.addPlugin(new VectorShapeAssetSource());
91
-
92
- // Create a design scene using CE.SDK cesdk method
93
- await cesdk.actions.run('scene.create', {
94
- page: { width: 800, height: 600, unit: 'Pixel' }
95
- });
54
+ const page = engine.block.findByType('page')[0];
55
+ if (!page) {
56
+ throw new Error('No page found');
57
+ }
96
58
 
97
- const engine = cesdk.engine;
59
+ const pageWidth = engine.block.getWidth(page);
60
+ const pageHeight = engine.block.getHeight(page);
98
61
 
99
- // Get the page
100
- const pages = engine.block.findByType('page');
101
- const page = pages[0];
102
- if (!page) {
103
- throw new Error('No page found');
104
- }
62
+ // Calculate responsive grid layout for 6 examples
63
+ const layout = calculateGridLayout(pageWidth, pageHeight, 6);
64
+ const { blockWidth, blockHeight, getPosition } = layout;
105
65
 
106
- // Set page background to light gray
107
- const pageFill = engine.block.getFill(page);
108
- engine.block.setColor(pageFill, 'fill/color/value', {
109
- r: 0.95,
110
- g: 0.95,
111
- b: 0.95,
112
- a: 1.0
113
- });
66
+ // Sample image URI for demonstrations
67
+ const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
68
+ const blockSize = { width: blockWidth, height: blockHeight };
114
69
 
115
- // Calculate responsive grid layout based on page dimensions
116
- const pageWidth = engine.block.getWidth(page);
117
- const pageHeight = engine.block.getHeight(page);
118
- const layout = calculateGridLayout(pageWidth, pageHeight, 6);
119
- const { blockWidth, blockHeight, getPosition } = layout;
70
+ // Create first image block
71
+ const imageBlock1 = await engine.block.addImage(imageUri, {
72
+ size: blockSize,
73
+ });
74
+ engine.block.appendChild(page, imageBlock1);
120
75
 
121
- // Sample image URI for demonstrations
122
- const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
76
+ // Export the block as PNG
77
+ const individualBlob = await engine.block.export(imageBlock1, {
78
+ mimeType: 'image/png',
79
+ pngCompressionLevel: 5,
80
+ });
123
81
 
124
- // Create design elements for demonstration
125
- // Create first image block
126
- const imageBlock1 = await engine.block.addImage(imageUri, {
127
- size: { width: blockWidth, height: blockHeight }
128
- });
129
- engine.block.appendChild(page, imageBlock1);
82
+ // Save individual block export
83
+ const outputDir = './output';
84
+ if (!existsSync(outputDir)) {
85
+ mkdirSync(outputDir, { recursive: true });
86
+ }
130
87
 
131
- // Create second image block with different styling
132
- const imageBlock2 = await engine.block.addImage(imageUri, {
133
- size: { width: blockWidth, height: blockHeight },
134
- cornerRadius: 20
135
- });
136
- engine.block.appendChild(page, imageBlock2);
137
-
138
- // Create a shape block
139
- const shapeBlock = engine.block.create('//ly.img.ubq/graphic');
140
- const shape = engine.block.createShape('star');
141
- engine.block.setShape(shapeBlock, shape);
142
- engine.block.setWidth(shapeBlock, blockWidth);
143
- engine.block.setHeight(shapeBlock, blockHeight);
144
-
145
- // Add a color fill to the shape
146
- const shapeFill = engine.block.createFill('color');
147
- engine.block.setFill(shapeBlock, shapeFill);
148
- engine.block.setColor(shapeFill, 'fill/color/value', {
149
- r: 1.0,
150
- g: 0.7,
151
- b: 0.0,
152
- a: 1.0
153
- });
154
- engine.block.appendChild(page, shapeBlock);
155
-
156
- // Create two shapes for grouping demonstration
157
- const groupShape1 = engine.block.create('//ly.img.ubq/graphic');
158
- const rect = engine.block.createShape('rect');
159
- engine.block.setShape(groupShape1, rect);
160
- engine.block.setWidth(groupShape1, blockWidth * 0.4);
161
- engine.block.setHeight(groupShape1, blockHeight * 0.4);
162
- const groupFill1 = engine.block.createFill('color');
163
- engine.block.setFill(groupShape1, groupFill1);
164
- engine.block.setColor(groupFill1, 'fill/color/value', {
165
- r: 0.3,
166
- g: 0.6,
167
- b: 0.9,
168
- a: 1.0
169
- });
170
- engine.block.appendChild(page, groupShape1);
171
-
172
- const groupShape2 = engine.block.create('//ly.img.ubq/graphic');
173
- const ellipse = engine.block.createShape('ellipse');
174
- engine.block.setShape(groupShape2, ellipse);
175
- engine.block.setWidth(groupShape2, blockWidth * 0.4);
176
- engine.block.setHeight(groupShape2, blockHeight * 0.4);
177
- const groupFill2 = engine.block.createFill('color');
178
- engine.block.setFill(groupShape2, groupFill2);
179
- engine.block.setColor(groupFill2, 'fill/color/value', {
180
- r: 0.9,
181
- g: 0.3,
182
- b: 0.5,
183
- a: 1.0
184
- });
185
- engine.block.appendChild(page, groupShape2);
186
-
187
- // Group the two shapes together
188
- const group = engine.block.group([groupShape1, groupShape2]);
189
-
190
- // Position all blocks in grid layout for visualization
191
- const allBlocks = [
192
- imageBlock1,
193
- imageBlock2,
194
- shapeBlock,
195
- group,
196
- groupShape1 // Note: groupShape1 is inside group, positioning group will position children
197
- ];
198
-
199
- allBlocks.forEach((block, index) => {
200
- if (index < 6) {
201
- // Only position first 6 blocks (group contains 2)
202
- const pos = getPosition(index);
203
- engine.block.setPositionX(block, pos.x);
204
- engine.block.setPositionY(block, pos.y);
205
- }
206
- });
88
+ const individualBuffer = Buffer.from(await individualBlob.arrayBuffer());
89
+ writeFileSync(`${outputDir}/individual-block.png`, individualBuffer);
90
+ // eslint-disable-next-line no-console
91
+ console.log('✓ Exported individual block to output/individual-block.png');
207
92
 
208
- // Position grouped shapes relative to group
209
- const groupPos = getPosition(4);
210
- engine.block.setPositionX(group, groupPos.x);
211
- engine.block.setPositionY(group, groupPos.y);
212
- engine.block.setPositionX(groupShape1, 10);
213
- engine.block.setPositionY(groupShape1, 10);
214
- engine.block.setPositionX(groupShape2, 60);
215
- engine.block.setPositionY(groupShape2, 60);
216
-
217
- // Helper function: Download blob and show notification
218
- const downloadWithNotification = async (
219
- blob: Blob,
220
- filename: string,
221
- mimeType: string,
222
- exportType: string
223
- ) => {
224
- await cesdk.utils.downloadFile(blob, mimeType as any);
225
-
226
- // Show notification after successful download
227
- cesdk.ui.showNotification({
228
- message: `Export "${exportType}" completed`,
229
- type: 'info',
230
- duration: 'infinite'
231
- });
232
- };
233
-
234
- // Override exportDesign action to export selected block or page
235
- cesdk.actions.register('exportDesign', async () => {
236
- // eslint-disable-next-line no-console
237
- console.log('🚀 Export action triggered');
238
-
239
- const selectedBlocks = engine.block.findAllSelected();
240
- // eslint-disable-next-line no-console
241
- console.log(`📦 Selected blocks: ${selectedBlocks.length}`);
242
-
243
- let blockToExport: number;
244
- if (selectedBlocks.length > 0) {
245
- // Export first selected block (or group them if multiple)
246
- blockToExport =
247
- selectedBlocks.length === 1
248
- ? selectedBlocks[0]
249
- : engine.block.group(selectedBlocks);
250
- // eslint-disable-next-line no-console
251
- console.log(
252
- `✅ Exporting selected block(s): ${
253
- selectedBlocks.length === 1 ? 'single block' : 'grouped blocks'
254
- }`
255
- );
256
- } else {
257
- // No selection - export current page
258
- const pages = engine.block.findByType('page');
259
- blockToExport = pages[0];
260
- // eslint-disable-next-line no-console
261
- console.log('📄 No selection - exporting current page');
262
- }
263
-
264
- // eslint-disable-next-line no-console
265
- console.log(`📸 Exporting block ID: ${blockToExport}`);
266
-
267
- // Export the block with high compression
268
- const blob = await engine.block.export(blockToExport, {
269
- mimeType: 'image/png',
270
- pngCompressionLevel: 9 // Maximum compression for smaller file size
271
- });
272
-
273
- // eslint-disable-next-line no-console
274
- console.log(
275
- `✨ Export complete - size: ${(blob.size / 1024).toFixed(2)} KB`
276
- );
277
-
278
- // Download the blob
279
- await downloadWithNotification(blob, 'export.png', 'image/png', 'Design');
280
-
281
- // eslint-disable-next-line no-console
282
- console.log('💾 Download complete');
283
- });
93
+ // Create second image block with different styling
94
+ const imageBlock2 = await engine.block.addImage(imageUri, {
95
+ size: blockSize,
96
+ cornerRadius: 20,
97
+ });
98
+ engine.block.appendChild(page, imageBlock2);
284
99
 
285
- // Helper function: Export individual block
286
- const exportIndividualBlock = async () => {
287
- // eslint-disable-next-line no-console
288
- console.log('🚀 Starting individual block export...');
289
-
290
- // Show loading dialog before export
291
- const exportDialog = cesdk.utils.showLoadingDialog({
292
- title: 'Exporting Block',
293
- message: 'Processing export...',
294
- progress: 'indeterminate'
295
- });
296
-
297
- // Find a specific block to export
298
- const blockToExport = imageBlock1;
299
-
300
- // Export the block as PNG with high compression and target size
301
- const individualBlob = await engine.block.export(blockToExport, {
302
- mimeType: 'image/png',
303
- pngCompressionLevel: 9, // Maximum compression for smaller file size
304
- targetWidth: 800, // Limit export resolution for faster exports
305
- targetHeight: 600
306
- });
307
-
308
- // eslint-disable-next-line no-console
309
- console.log(
310
- `✅ Individual block exported - size: ${(
311
- individualBlob.size / 1024
312
- ).toFixed(2)} KB`
313
- );
314
-
315
- // Close the export dialog
316
- exportDialog.close();
317
-
318
- // Download the exported block
319
- await downloadWithNotification(
320
- individualBlob,
321
- 'block-export.png',
322
- 'image/png',
323
- 'Block'
324
- );
325
- };
326
-
327
- // Helper function: Create and export a group
328
- const exportGroupExample = async () => {
329
- // eslint-disable-next-line no-console
330
- console.log('🚀 Starting group export...');
331
-
332
- // Show loading dialog before export
333
- const exportDialog = cesdk.utils.showLoadingDialog({
334
- title: 'Exporting Group',
335
- message: 'Processing export...',
336
- progress: 'indeterminate'
337
- });
338
-
339
- // Group the blocks together (shapes already created above)
340
- const exportGroup = engine.block.group([groupShape1, groupShape2]);
341
-
342
- // Export the group (includes all children) with high compression and target size
343
- const groupBlob = await engine.block.export(exportGroup, {
344
- mimeType: 'image/png',
345
- pngCompressionLevel: 9, // Maximum compression for smaller file size
346
- targetWidth: 800, // Limit export resolution for faster exports
347
- targetHeight: 600
348
- });
349
-
350
- // eslint-disable-next-line no-console
351
- console.log(
352
- `✅ Group exported - size: ${(groupBlob.size / 1024).toFixed(2)} KB`
353
- );
354
-
355
- // Close the export dialog
356
- exportDialog.close();
357
-
358
- // Download the exported group
359
- await downloadWithNotification(
360
- groupBlob,
361
- 'group-export.png',
362
- 'image/png',
363
- 'Group'
364
- );
365
- };
366
-
367
- // Helper function: Export current page
368
- const exportCurrentPage = async () => {
369
- // Check export limits before exporting
370
- const maxExportSize = engine.editor.getMaxExportSize();
371
- const availableMemory = engine.editor.getAvailableMemory();
372
-
373
- // eslint-disable-next-line no-console
374
- console.log('🚀 Starting page export...');
375
- // eslint-disable-next-line no-console
376
- console.log(
377
- `📊 Export limits - Max size: ${maxExportSize}px, Available memory: ${availableMemory} bytes`
378
- );
379
-
380
- // Show loading dialog before export
381
- const exportDialog = cesdk.utils.showLoadingDialog({
382
- title: 'Exporting Page',
383
- message: 'Processing export...',
384
- progress: 'indeterminate'
385
- });
386
-
387
- // Export the entire page with high compression and target size
388
- const pageBlob = await engine.block.export(page, {
389
- mimeType: 'image/png',
390
- pngCompressionLevel: 9, // Maximum compression for smaller file size
391
- targetWidth: 800, // Limit export resolution for faster exports
392
- targetHeight: 600
393
- });
394
-
395
- // eslint-disable-next-line no-console
396
- console.log(
397
- `✅ Page exported - size: ${(pageBlob.size / 1024).toFixed(2)} KB`
398
- );
399
-
400
- // Close the export dialog
401
- exportDialog.close();
402
-
403
- // Download the exported page
404
- await downloadWithNotification(
405
- pageBlob,
406
- 'page-export.png',
407
- 'image/png',
408
- 'Page'
409
- );
410
- };
411
-
412
- // Configure navigation bar layout
413
- cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
414
- 'ly.img.undoRedo.navigationBar',
415
- 'ly.img.spacer',
416
- {
417
- id: 'ly.img.action.navigationBar',
418
- onClick: async () => await exportCurrentPage(),
419
- key: 'export-page',
420
- label: 'Export Page',
421
- icon: '@imgly/Save',
422
- variant: 'plain',
423
- color: 'accent'
424
- },
425
- {
426
- id: 'ly.img.action.navigationBar',
427
- onClick: async () => await exportGroupExample(),
428
- key: 'export-group',
429
- label: 'Export Group',
430
- icon: '@imgly/Group',
431
- color: 'accent'
432
- },
433
- {
434
- id: 'ly.img.action.navigationBar',
435
- onClick: async () => await exportIndividualBlock(),
436
- key: 'export-block',
437
- label: 'Export Block',
438
- icon: '@imgly/Image',
439
- variant: 'plain',
440
- color: 'accent'
441
- }
442
- ]);
443
-
444
- // Show notification to guide users
445
- cesdk.ui.showNotification({
446
- message:
447
- 'Use the export buttons on the right to try different export options (Export Page, Export Group, Export Block)',
448
- type: 'info',
449
- duration: 'infinite'
450
- });
100
+ // Export as PNG with high compression
101
+ const pngBlob = await engine.block.export(imageBlock2, {
102
+ mimeType: 'image/png',
103
+ pngCompressionLevel: 9, // Maximum compression
104
+ });
105
+ const pngBuffer = Buffer.from(await pngBlob.arrayBuffer());
106
+ writeFileSync(`${outputDir}/export-png.png`, pngBuffer);
451
107
 
452
- // eslint-disable-next-line no-console
453
- console.log('Partial export examples initialized successfully');
108
+ // Export as JPEG with quality setting
109
+ const jpegBlob = await engine.block.export(imageBlock2, {
110
+ mimeType: 'image/jpeg',
111
+ jpegQuality: 0.95, // High quality
112
+ });
113
+ const jpegBuffer = Buffer.from(await jpegBlob.arrayBuffer());
114
+ writeFileSync(`${outputDir}/export-jpeg.jpg`, jpegBuffer);
115
+
116
+ // Export as WEBP
117
+ const webpBlob = await engine.block.export(imageBlock2, {
118
+ mimeType: 'image/webp',
119
+ webpQuality: 0.9,
120
+ });
121
+ const webpBuffer = Buffer.from(await webpBlob.arrayBuffer());
122
+ writeFileSync(`${outputDir}/export-webp.webp`, webpBuffer);
123
+ // eslint-disable-next-line no-console
124
+ console.log('✓ Exported different formats (PNG, JPEG, WEBP)');
125
+
126
+ // Create two shapes for grouping demonstration
127
+ const groupShape1 = engine.block.create('//ly.img.ubq/graphic');
128
+ const rect = engine.block.createShape('rect');
129
+ engine.block.setShape(groupShape1, rect);
130
+ engine.block.setWidth(groupShape1, blockWidth * 0.4);
131
+ engine.block.setHeight(groupShape1, blockHeight * 0.4);
132
+ const groupFill1 = engine.block.createFill('color');
133
+ engine.block.setFill(groupShape1, groupFill1);
134
+ engine.block.setColor(groupFill1, 'fill/color/value', {
135
+ r: 0.3,
136
+ g: 0.6,
137
+ b: 0.9,
138
+ a: 1.0,
139
+ });
140
+ engine.block.appendChild(page, groupShape1);
141
+
142
+ const groupShape2 = engine.block.create('//ly.img.ubq/graphic');
143
+ const ellipse = engine.block.createShape('ellipse');
144
+ engine.block.setShape(groupShape2, ellipse);
145
+ engine.block.setWidth(groupShape2, blockWidth * 0.4);
146
+ engine.block.setHeight(groupShape2, blockHeight * 0.4);
147
+ const groupFill2 = engine.block.createFill('color');
148
+ engine.block.setFill(groupShape2, groupFill2);
149
+ engine.block.setColor(groupFill2, 'fill/color/value', {
150
+ r: 0.9,
151
+ g: 0.3,
152
+ b: 0.5,
153
+ a: 1.0,
154
+ });
155
+ engine.block.appendChild(page, groupShape2);
156
+
157
+ // Group the blocks together
158
+ const exportGroup = engine.block.group([groupShape1, groupShape2]);
159
+
160
+ // Export the group (includes all children)
161
+ const groupBlob = await engine.block.export(exportGroup, {
162
+ mimeType: 'image/png',
163
+ });
164
+ const groupBuffer = Buffer.from(await groupBlob.arrayBuffer());
165
+ writeFileSync(`${outputDir}/group-export.png`, groupBuffer);
166
+ // eslint-disable-next-line no-console
167
+ console.log('✓ Exported grouped elements to output/group-export.png');
168
+
169
+ // Create shape block for resizing demonstration
170
+ const shapeBlock = engine.block.create('//ly.img.ubq/graphic');
171
+ const shape = engine.block.createShape('star');
172
+ engine.block.setShape(shapeBlock, shape);
173
+ engine.block.setWidth(shapeBlock, blockWidth);
174
+ engine.block.setHeight(shapeBlock, blockHeight);
175
+
176
+ // Add a color fill to the shape
177
+ const shapeFill = engine.block.createFill('color');
178
+ engine.block.setFill(shapeBlock, shapeFill);
179
+ engine.block.setColor(shapeFill, 'fill/color/value', {
180
+ r: 1.0,
181
+ g: 0.7,
182
+ b: 0.0,
183
+ a: 1.0,
184
+ });
185
+ engine.block.appendChild(page, shapeBlock);
186
+
187
+ // Export with specific target dimensions
188
+ const resizedBlob = await engine.block.export(shapeBlock, {
189
+ mimeType: 'image/png',
190
+ targetWidth: 400,
191
+ targetHeight: 400, // Aspect ratio is preserved
192
+ });
193
+ const resizedBuffer = Buffer.from(await resizedBlob.arrayBuffer());
194
+ writeFileSync(`${outputDir}/resized-export.png`, resizedBuffer);
195
+ // eslint-disable-next-line no-console
196
+ console.log('✓ Exported resized block to output/resized-export.png');
197
+
198
+ // Export the entire page
199
+ const pageBlob = await engine.block.export(page, {
200
+ mimeType: 'image/png',
201
+ pngCompressionLevel: 5,
202
+ });
203
+ const pageBuffer = Buffer.from(await pageBlob.arrayBuffer());
204
+ writeFileSync(`${outputDir}/page-export.png`, pageBuffer);
205
+ // eslint-disable-next-line no-console
206
+ console.log('✓ Exported current page to output/page-export.png');
207
+
208
+ // Export all pages individually (for multi-page documents)
209
+ const pages = engine.scene.getPages();
210
+ for (let i = 0; i < pages.length; i++) {
211
+ const pageBlob = await engine.block.export(pages[i], {
212
+ mimeType: 'image/png',
213
+ });
214
+ const pageBuffer = Buffer.from(await pageBlob.arrayBuffer());
215
+ writeFileSync(`${outputDir}/page-${i + 1}.png`, pageBuffer);
454
216
  }
455
- }
217
+ // eslint-disable-next-line no-console
218
+ console.log(`✓ Exported ${pages.length} page(s) individually`);
456
219
 
457
- export default Example;
220
+ // Export as PDF to preserve vector information
221
+ const pdfBlob = await engine.block.export(page, {
222
+ mimeType: 'application/pdf',
223
+ });
224
+ const pdfBuffer = Buffer.from(await pdfBlob.arrayBuffer());
225
+ writeFileSync(`${outputDir}/export.pdf`, pdfBuffer);
226
+ // eslint-disable-next-line no-console
227
+ console.log('✓ Exported page as PDF to output/export.pdf');
228
+
229
+ // Get maximum export size
230
+ const maxExportSize = engine.editor.getMaxExportSize();
231
+ // eslint-disable-next-line no-console
232
+ console.log('Maximum export size:', maxExportSize, 'pixels');
233
+
234
+ // Get available memory
235
+ const availableMemory = engine.editor.getAvailableMemory();
236
+ // eslint-disable-next-line no-console
237
+ console.log('Available memory:', availableMemory, 'bytes');
238
+
239
+ // Position all blocks in grid layout for the first page
240
+ const blocks = [
241
+ imageBlock1,
242
+ imageBlock2,
243
+ exportGroup,
244
+ shapeBlock,
245
+ groupShape1,
246
+ groupShape2,
247
+ ];
248
+ blocks.forEach((block, index) => {
249
+ if (index < 4) {
250
+ // Position first 4 blocks (group contains 2)
251
+ const pos = getPosition(index);
252
+ engine.block.setPositionX(block, pos.x);
253
+ engine.block.setPositionY(block, pos.y);
254
+ }
255
+ });
256
+
257
+ // Position grouped shapes relative to group
258
+ const groupPos = getPosition(2);
259
+ engine.block.setPositionX(exportGroup, groupPos.x);
260
+ engine.block.setPositionY(exportGroup, groupPos.y);
261
+ engine.block.setPositionX(groupShape1, 10);
262
+ engine.block.setPositionY(groupShape1, 10);
263
+ engine.block.setPositionX(groupShape2, 60);
264
+ engine.block.setPositionY(groupShape2, 60);
265
+
266
+ // Export the complete scene for reference
267
+ const completeBlob = await engine.block.export(page, {
268
+ mimeType: 'image/png',
269
+ });
270
+ const completeBuffer = Buffer.from(await completeBlob.arrayBuffer());
271
+ writeFileSync(`${outputDir}/partial-export-result.png`, completeBuffer);
272
+
273
+ // eslint-disable-next-line no-console
274
+ console.log(
275
+ '\n✓ Exported complete result to output/partial-export-result.png'
276
+ );
277
+ // eslint-disable-next-line no-console
278
+ console.log('✓ Partial export examples completed successfully');
279
+ } finally {
280
+ // Always dispose the engine to free resources
281
+ engine.dispose();
282
+ }
458
283
  ```
459
284
 
460
- This guide covers how to export individual blocks, grouped elements, and pages programmatically using the Block API.
285
+ This guide covers exporting individual blocks, grouped elements, and pages in Node.js environments, saving outputs to the file system or cloud storage.
286
+
287
+ ## Server-side vs Browser Differences
288
+
289
+ ### Engine Initialization
290
+
291
+ Server-side uses the `@cesdk/node` package and `CreativeEngine.init()` instead of browser's `@cesdk/cesdk-js` and `CreativeEditorSDK.create()`. The Node.js engine runs headlessly without UI components.
292
+
293
+ ```typescript highlight-initialize-engine
294
+ // Initialize CE.SDK engine in headless mode
295
+ const engine = await CreativeEngine.init({
296
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
297
+ });
298
+ ```
461
299
 
462
300
  ## Understanding Block Hierarchy and Export
463
301
 
@@ -467,228 +305,199 @@ CE.SDK organizes content in a tree structure: Scene → Pages → Groups → Ind
467
305
 
468
306
  Exporting a page exports every element on that page. Exporting a group exports all blocks within that group. Exporting an individual block (like an image or text) exports only that specific element.
469
307
 
470
- This hierarchical behavior is powerful because you can control export scope by choosing which level of the hierarchy to target. Want just one image? Export the image block. Want a complete layout section? Export the parent group.
471
-
472
- ### Export Behavior
473
-
474
- The export API applies several transformations to ensure consistent output. If the exported block itself is rotated, it will be exported without that rotation—the content appears upright in the output file. Any margin set on the block is included in the export bounds. Outside strokes are included for most block types, though pages handle strokes differently.
308
+ This hierarchical behavior lets you control export scope by choosing which level of the hierarchy to target. Export an image block for a single asset. Export a parent group for a complete layout section.
475
309
 
476
310
  > **Note:** Only blocks that belong to the scene hierarchy can be exported. Orphaned blocks
477
311
  > (created but not added to the page) cannot be exported until they're attached
478
312
  > to the scene tree.
479
313
 
480
- ## Exporting Individual Blocks
481
-
482
- ### Finding Blocks to Export
314
+ ### Export Behavior
483
315
 
484
- Before exporting, we need to identify which block to export. We can find blocks by type using `findByType`, by name if you've assigned custom names, or by ID if you already have a reference.
316
+ The export API applies several transformations to ensure consistent output. If the exported block itself is rotated, it will be exported without that rotation—the content appears upright in the output file. Any margin set on the block is included in the export bounds. Outside strokes are included for most block types.
485
317
 
486
- Once we have a block reference, exporting is straightforward. Pass the block ID to `engine.block.export()` along with export options like format and quality settings.
318
+ ## Exporting Individual Blocks
487
319
 
488
320
  ### Basic Block Export
489
321
 
490
- Here we export a single image block as PNG with compression settings. The export returns a Blob containing the image data.
322
+ Once we have a scene, we can export individual blocks. Find blocks using `findByType()`, then export them with specific format options.
491
323
 
492
324
  ```typescript highlight-export-individual-block
493
- // eslint-disable-next-line no-console
494
- console.log('🚀 Starting individual block export...');
495
-
496
- // Show loading dialog before export
497
- const exportDialog = cesdk.utils.showLoadingDialog({
498
- title: 'Exporting Block',
499
- message: 'Processing export...',
500
- progress: 'indeterminate'
501
- });
325
+ // Create first image block
326
+ const imageBlock1 = await engine.block.addImage(imageUri, {
327
+ size: blockSize,
328
+ });
329
+ engine.block.appendChild(page, imageBlock1);
502
330
 
503
- // Find a specific block to export
504
- const blockToExport = imageBlock1;
331
+ // Export the block as PNG
332
+ const individualBlob = await engine.block.export(imageBlock1, {
333
+ mimeType: 'image/png',
334
+ pngCompressionLevel: 5,
335
+ });
505
336
 
506
- // Export the block as PNG with high compression and target size
507
- const individualBlob = await engine.block.export(blockToExport, {
508
- mimeType: 'image/png',
509
- pngCompressionLevel: 9, // Maximum compression for smaller file size
510
- targetWidth: 800, // Limit export resolution for faster exports
511
- targetHeight: 600
512
- });
337
+ // Save individual block export
338
+ const outputDir = './output';
339
+ if (!existsSync(outputDir)) {
340
+ mkdirSync(outputDir, { recursive: true });
341
+ }
513
342
 
514
- // eslint-disable-next-line no-console
515
- console.log(
516
- `✅ Individual block exported - size: ${(individualBlob.size / 1024).toFixed(
517
- 2
518
- )} KB`
519
- );
520
-
521
- // Close the export dialog
522
- exportDialog.close();
343
+ const individualBuffer = Buffer.from(await individualBlob.arrayBuffer());
344
+ writeFileSync(`${outputDir}/individual-block.png`, individualBuffer);
345
+ // eslint-disable-next-line no-console
346
+ console.log('✓ Exported individual block to output/individual-block.png');
523
347
  ```
524
348
 
525
- The `mimeType` determines the output format. CE.SDK supports PNG, JPEG, WEBP, and PDF for static exports. Each format has specific options—PNG uses `pngCompressionLevel`, JPEG uses `jpegQuality`, and WEBP uses `webpQuality`.
349
+ The `mimeType` determines the output format. CE.SDK supports PNG, JPEG, WEBP, and PDF. Each format has specific options—PNG uses `pngCompressionLevel` (0-9), JPEG uses `jpegQuality` (0-1), and WEBP uses `webpQuality` (0-1).
526
350
 
527
- Different formats serve different purposes. PNG is ideal for graphics requiring transparency, such as UI elements, logos, or illustrations with alpha channels. JPEG works well for photographs where file size matters and transparency isn't needed. WEBP provides better compression than PNG or JPEG for web delivery. PDF preserves vector information and is suited for print workflows.
351
+ PNG supports transparency for UI elements and logos. JPEG suits photographs without transparency needs (replaces transparent areas with solid background). WEBP offers better compression for web delivery. PDF preserves vector data for print workflows. PNG compression (0-9) balances size and encoding speed. JPEG quality (0-1) controls artifacts and file size. WEBP quality (0-1) achieves smallest files with good visual fidelity.
528
352
 
529
- JPEG exports drop transparency and replace it with a solid background, which may produce unexpected results if your design relies on transparency. Always consider whether your content needs an alpha channel when choosing export formats.
353
+ ## Exporting with Different Options
530
354
 
531
- ## Exporting Grouped Elements
355
+ ### Resizing Exports
532
356
 
533
- ### Creating and Exporting Groups
357
+ Control output dimensions using `targetWidth` and `targetHeight`. The engine maintains the block's aspect ratio while fitting within your specified dimensions. Specify one dimension to auto-calculate the other while preserving aspect ratio. Specify both to fit content within bounds (one dimension may be smaller to maintain proportions). Useful for thumbnails, responsive sizes, or platform constraints.
534
358
 
535
- Groups let you export multiple elements together as a single output. This is useful for composite graphics like logos with multiple components, complex illustrations made from many shapes, or layout sections that should be exported as a unit.
359
+ ### Checking Export Constraints
536
360
 
537
- ```typescript highlight-create-and-export-group
538
- // eslint-disable-next-line no-console
539
- console.log('🚀 Starting group export...');
361
+ Server environments may have memory limits or maximum texture size constraints. Query these limits before attempting large exports. `getMaxExportSize()` returns maximum dimension in pixels (exceeding causes errors). `getAvailableMemory()` returns available memory in bytes for estimating large export viability. Critical for serverless functions (AWS Lambda: 128 MB to 10 GB limits) to prevent termination.
540
362
 
541
- // Show loading dialog before export
542
- const exportDialog = cesdk.utils.showLoadingDialog({
543
- title: 'Exporting Group',
544
- message: 'Processing export...',
545
- progress: 'indeterminate'
546
- });
363
+ ## Exporting Pages
364
+
365
+ ### Single Page Export
547
366
 
548
- // Group the blocks together (shapes already created above)
549
- const exportGroup = engine.block.group([groupShape1, groupShape2]);
367
+ Exporting a page captures all content on that page as a single output. The page dimensions determine the export size.
550
368
 
551
- // Export the group (includes all children) with high compression and target size
552
- const groupBlob = await engine.block.export(exportGroup, {
369
+ ```typescript highlight-export-current-page
370
+ // Export the entire page
371
+ const pageBlob = await engine.block.export(page, {
553
372
  mimeType: 'image/png',
554
- pngCompressionLevel: 9, // Maximum compression for smaller file size
555
- targetWidth: 800, // Limit export resolution for faster exports
556
- targetHeight: 600
373
+ pngCompressionLevel: 5,
557
374
  });
558
-
375
+ const pageBuffer = Buffer.from(await pageBlob.arrayBuffer());
376
+ writeFileSync(`${outputDir}/page-export.png`, pageBuffer);
559
377
  // eslint-disable-next-line no-console
560
- console.log(
561
- `✅ Group exported - size: ${(groupBlob.size / 1024).toFixed(2)} KB`
562
- );
563
-
564
- // Close the export dialog
565
- exportDialog.close();
378
+ console.log('✓ Exported current page to output/page-export.png');
566
379
  ```
567
380
 
568
- When you export a group, CE.SDK renders all children together into a single image. The group's bounding box determines the export dimensions, and relative positioning between children is preserved exactly as designed.
381
+ Page exports include all child elements—graphics, text, shapes, and groups. The page background fill is also included. This is useful for generating preview images of multi-page documents or exporting individual pages from a template.
569
382
 
570
- ### Exporting Selected Elements
383
+ ### Multi-page Document Export
571
384
 
572
- A common workflow is allowing users to select elements and export their selection. Use `findAllSelected()` to get selected blocks, group them temporarily, and export the group.
385
+ For documents with multiple pages, export each page individually to create separate output files.
573
386
 
574
- ```typescript
575
- // Get currently selected blocks
576
- const selectedBlocks = engine.block.findAllSelected();
577
-
578
- if (selectedBlocks.length === 0) {
579
- console.log('No blocks selected');
580
- } else if (selectedBlocks.length === 1) {
581
- // Export single block directly
582
- const blob = await engine.block.export(selectedBlocks[0], {
583
- mimeType: 'image/png'
584
- });
585
- } else {
586
- // Group and export multiple selected blocks
587
- const group = engine.block.group(selectedBlocks);
588
- const blob = await engine.block.export(group, {
589
- mimeType: 'image/png'
387
+ ```typescript highlight-export-multiple-pages
388
+ // Export all pages individually (for multi-page documents)
389
+ const pages = engine.scene.getPages();
390
+ for (let i = 0; i < pages.length; i++) {
391
+ const pageBlob = await engine.block.export(pages[i], {
392
+ mimeType: 'image/png',
590
393
  });
394
+ const pageBuffer = Buffer.from(await pageBlob.arrayBuffer());
395
+ writeFileSync(`${outputDir}/page-${i + 1}.png`, pageBuffer);
591
396
  }
397
+ // eslint-disable-next-line no-console
398
+ console.log(`✓ Exported ${pages.length} page(s) individually`);
592
399
  ```
593
400
 
594
- This pattern enables "Export Selection" functionality in design tools, letting users export precisely what they've chosen without exporting the entire canvas.
401
+ The `getPages()` method returns all pages in scene order. Export each page with sequential numbering for easy identification. This pattern works for generating page previews, creating print-ready files for each page, or splitting multi-page documents into individual images.
595
402
 
596
- ## Exporting Pages
403
+ For print workflows, consider exporting pages as PDF to preserve vector information and text quality. For web previews, PNG or WEBP provides good quality at manageable file sizes.
597
404
 
598
- When working with multi-page documents, you often want to export pages individually rather than as a complete scene. Exporting the page block directly gives you output for that specific page.
405
+ ## PDF Exports
599
406
 
600
- ```typescript highlight-export-current-page
601
- // Check export limits before exporting
602
- const maxExportSize = engine.editor.getMaxExportSize();
603
- const availableMemory = engine.editor.getAvailableMemory();
407
+ ### Vector Format Output
604
408
 
605
- // eslint-disable-next-line no-console
606
- console.log('🚀 Starting page export...');
607
- // eslint-disable-next-line no-console
608
- console.log(
609
- `📊 Export limits - Max size: ${maxExportSize}px, Available memory: ${availableMemory} bytes`
610
- );
611
-
612
- // Show loading dialog before export
613
- const exportDialog = cesdk.utils.showLoadingDialog({
614
- title: 'Exporting Page',
615
- message: 'Processing export...',
616
- progress: 'indeterminate'
617
- });
409
+ PDF exports preserve vector information, making them ideal for print workflows, scalable graphics, or archival purposes.
618
410
 
619
- // Export the entire page with high compression and target size
620
- const pageBlob = await engine.block.export(page, {
621
- mimeType: 'image/png',
622
- pngCompressionLevel: 9, // Maximum compression for smaller file size
623
- targetWidth: 800, // Limit export resolution for faster exports
624
- targetHeight: 600
411
+ ```typescript highlight-export-as-pdf
412
+ // Export as PDF to preserve vector information
413
+ const pdfBlob = await engine.block.export(page, {
414
+ mimeType: 'application/pdf',
625
415
  });
626
-
416
+ const pdfBuffer = Buffer.from(await pdfBlob.arrayBuffer());
417
+ writeFileSync(`${outputDir}/export.pdf`, pdfBuffer);
627
418
  // eslint-disable-next-line no-console
628
- console.log(`✅ Page exported - size: ${(pageBlob.size / 1024).toFixed(2)} KB`);
629
-
630
- // Close the export dialog
631
- exportDialog.close();
419
+ console.log('✓ Exported page as PDF to output/export.pdf');
632
420
  ```
633
421
 
634
- Page exports include everything on the page—the background, all content blocks, and any page-level effects. The page dimensions determine the output size unless you specify `targetWidth` and `targetHeight` to override the dimensions.
635
-
636
- ## Export Options and Configuration
422
+ PDF preserves vector paths, text selectability, and transparency. Produces smaller files than high-resolution PNG for vector-heavy content. Preferred for professional printing (scalability, text editability). Use PNG or WEBP for fixed-dimension web delivery.
637
423
 
638
- ### Target Size Control
424
+ ## Practical Use Cases
639
425
 
640
- Sometimes you need exports at specific dimensions regardless of the block's actual size. The `targetWidth` and `targetHeight` options render the block large enough to fill the target size while maintaining aspect ratio.
426
+ ### Asset Generation Pipeline
641
427
 
642
- If you specify a target size that doesn't match the block's aspect ratio, CE.SDK ensures the block fills the target dimensions completely. The output may extend beyond the target size on one axis to preserve the correct proportions—no stretching or distortion occurs.
428
+ Generate social media assets from templates by loading a template, modifying text/images programmatically, and exporting different sizes.
643
429
 
644
- ### Quality and Compression
645
-
646
- Each export format offers quality controls that balance output size against visual fidelity.
647
-
648
- For PNG, `pngCompressionLevel` ranges from 0 (no compression, fastest) to 9 (maximum compression, slowest). Higher compression takes longer but produces smaller files without affecting image quality—PNG is lossless.
430
+ ```typescript
431
+ const engine = await CreativeEngine.init(config);
432
+ await engine.scene.loadFromURL('https://example.com/template.scene');
649
433
 
650
- JPEG `jpegQuality` ranges from 0 (lowest quality) to 1 (highest quality). Lower values create smaller files but introduce visible artifacts. Values above 0.9 provide excellent quality for most use cases.
434
+ // Customize content
435
+ const textBlocks = engine.block.findByType('//ly.img.ubq/text');
436
+ engine.block.setString(textBlocks[0], 'text/text', 'Custom Headline');
651
437
 
652
- WEBP `webpQuality` also ranges from 0 to 1. A value of 1.0 triggers a special lossless mode that often produces smaller files than equivalent PNG exports.
438
+ // Export multiple sizes
439
+ const page = engine.block.findByType('page')[0];
653
440
 
654
- ### Export Size Limits
441
+ const instagram = await engine.block.export(page, {
442
+ mimeType: 'image/png',
443
+ targetWidth: 1080,
444
+ targetHeight: 1080
445
+ });
655
446
 
656
- Before exporting large blocks or requesting high target dimensions, check the platform's export capabilities. `getMaxExportSize()` returns the maximum width or height in pixels that can be exported. Both the width and height of your export must be below or equal to this limit. However, memory constraints may prevent exports that technically fit within size limits—use `getAvailableMemory()` to assess available memory before attempting large exports.
447
+ const facebook = await engine.block.export(page, {
448
+ mimeType: 'image/png',
449
+ targetWidth: 1200,
450
+ targetHeight: 630
451
+ });
657
452
 
658
- ## Export Limitations and Considerations
453
+ const twitter = await engine.block.export(page, {
454
+ mimeType: 'image/png',
455
+ targetWidth: 1200,
456
+ targetHeight: 675
457
+ });
458
+ ```
659
459
 
660
- ### Format-Specific Constraints
460
+ This workflow is ideal for automated social media content generation, email campaign graphics, or personalized marketing materials.
661
461
 
662
- JPEG drops transparency from the final image, replacing transparent pixels with a solid background (usually white or black depending on implementation). This can cause unexpected results when exporting designs that rely on alpha channels. Always use PNG or WEBP if transparency is required.
462
+ ### Thumbnail Generation
663
463
 
664
- PDF export behavior depends on the `exportPdfWithHighCompatibility` option. When set to `true`, images and effects are rasterized according to the scene's DPI setting for broader viewer compatibility. When `false`, PDFs export faster by embedding images directly, but gradients with transparency may not render correctly in Safari or macOS Preview. See the [PDF export guide](./export-save-publish/export/to-pdf.md) for detailed performance guidance.
464
+ Generate thumbnails for preview grids by exporting pages or blocks with small target dimensions.
665
465
 
666
- ### Performance Considerations
466
+ ```typescript
467
+ const pages = engine.scene.getPages();
468
+
469
+ for (const page of pages) {
470
+ const thumbnail = await engine.block.export(page, {
471
+ mimeType: 'image/webp',
472
+ webpQuality: 0.8,
473
+ targetWidth: 300,
474
+ targetHeight: 300
475
+ });
667
476
 
668
- Exporting is a synchronous operation that blocks the main thread while rendering. For large exports or multiple sequential exports, provide user feedback like progress indicators to prevent the interface from appearing frozen.
477
+ // Save or upload thumbnail
478
+ }
479
+ ```
669
480
 
670
- Batch exports can be optimized by processing blocks in parallel where possible, though be mindful of memory constraints. Exporting dozens of high-resolution images simultaneously may exhaust available memory. Consider batching in smaller groups with delays between batches.
481
+ Small dimensions and lower quality settings (0.7-0.8) produce small file sizes suitable for fast loading in preview galleries.
671
482
 
672
- ### Hierarchy Requirements
483
+ ## API Reference
673
484
 
674
- Only blocks attached to the scene hierarchy can be exported. If you create a block but don't append it to a page, export will fail. Always ensure blocks are children of the page (or nested within groups that are children of the page) before attempting export.
485
+ | Method | Description |
486
+ | --- | --- |
487
+ | `engine.block.export()` | Export a block with specified format and quality options |
488
+ | `engine.block.findByType()` | Find blocks by type identifier |
489
+ | `engine.block.group()` | Group multiple blocks into a single logical unit |
490
+ | `engine.scene.getPages()` | Get all pages in the current scene |
491
+ | `engine.editor.getMaxExportSize()` | Get maximum export dimension in pixels |
492
+ | `engine.editor.getAvailableMemory()` | Get available engine memory in bytes |
675
493
 
676
- ## API Reference
677
494
 
678
- | Method | Description |
679
- | ------------------------------------ | -------------------------------------------------------- |
680
- | `engine.block.export()` | Export a block with specified format and quality options |
681
- | `engine.block.findByType()` | Find blocks by type identifier |
682
- | `engine.block.group()` | Group multiple blocks into a single logical unit |
683
- | `engine.scene.getPages()` | Get all pages in the current scene |
684
- | `engine.editor.getMaxExportSize()` | Get maximum export dimension in pixels |
685
- | `engine.editor.getAvailableMemory()` | Get available engine memory in bytes |
686
495
 
687
496
  ---
688
497
 
689
498
  ## More Resources
690
499
 
691
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
500
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
692
501
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
693
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
694
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
502
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
503
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support