@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,451 +1,488 @@
1
- > This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
1
+ > This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
2
2
 
3
3
  **Navigation:** [Guides](./guides.md) > [Create and Edit Images](./edit-image.md) > [Transform](./edit-image/transform.md) > [Crop](./edit-image/transform/crop.md)
4
4
 
5
5
  ---
6
6
 
7
- Crop images to focus on key subjects, remove unwanted elements, or prepare
8
- visuals for specific formats like social media or print using CE.SDK's crop
9
- system.
10
-
11
- ![Crop images example showing CE.SDK editor with cropped image content](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
7
+ Frame subjects, remove unwanted elements, and prepare images for specific
8
+ formats using CE.SDK's comprehensive crop system.
12
9
 
13
10
  > **Reading time:** 10 minutes
14
11
  >
15
12
  > **Resources:**
16
13
  >
17
14
  > - [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/tree/release-$UBQ_VERSION$/guides-edit-image-transform-crop-browser)
19
- > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-edit-image-transform-crop-browser)
20
- > - [Live demo](https://img.ly/docs/cesdk/examples/guides-edit-image-transform-crop-browser/)
21
-
22
- Image cropping in CreativeEditor SDK (CE.SDK) lets you select a region inside an image and discard everything outside that frame. Unlike resizing which changes overall dimensions uniformly, cropping removes unwanted areas while preserving original pixel quality in the selected region.
23
-
24
- ```typescript file=@cesdk_web_examples/guides-edit-image-transform-crop-browser/browser.ts reference-only
25
- import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
26
-
27
- import {
28
- BlurAssetSource,
29
- ColorPaletteAssetSource,
30
- CropPresetsAssetSource,
31
- DemoAssetSources,
32
- EffectsAssetSource,
33
- FiltersAssetSource,
34
- PagePresetsAssetSource,
35
- StickerAssetSource,
36
- TextAssetSource,
37
- TextComponentAssetSource,
38
- TypefaceAssetSource,
39
- UploadAssetSources,
40
- VectorShapeAssetSource
41
- } from '@cesdk/cesdk-js/plugins';
42
- import { DesignEditorConfig } from './design-editor/plugin';
43
- import packageJson from './package.json';
44
-
45
- class Example implements EditorPlugin {
46
- name = packageJson.name;
47
- version = packageJson.version;
48
-
49
- async initialize({ cesdk }: EditorPluginContext): Promise<void> {
50
- if (!cesdk) {
51
- throw new Error('CE.SDK instance is required for this plugin');
52
- }
53
-
54
- await cesdk.addPlugin(new DesignEditorConfig());
55
-
56
- // Add asset source plugins
57
- await cesdk.addPlugin(new BlurAssetSource());
58
- await cesdk.addPlugin(new ColorPaletteAssetSource());
59
- await cesdk.addPlugin(new CropPresetsAssetSource());
60
- await cesdk.addPlugin(
61
- new UploadAssetSources({ include: ['ly.img.image.upload'] })
62
- );
63
- await cesdk.addPlugin(
64
- new DemoAssetSources({
65
- include: [
66
- 'ly.img.templates.blank.*',
67
- 'ly.img.templates.presentation.*',
68
- 'ly.img.templates.print.*',
69
- 'ly.img.templates.social.*',
70
- 'ly.img.image.*'
71
- ]
72
- })
73
- );
74
- await cesdk.addPlugin(new EffectsAssetSource());
75
- await cesdk.addPlugin(new FiltersAssetSource());
76
- await cesdk.addPlugin(new PagePresetsAssetSource());
77
- await cesdk.addPlugin(new StickerAssetSource());
78
- await cesdk.addPlugin(new TextAssetSource());
79
- await cesdk.addPlugin(new TextComponentAssetSource());
80
- await cesdk.addPlugin(new TypefaceAssetSource());
81
- await cesdk.addPlugin(new VectorShapeAssetSource());
82
-
83
- await cesdk.actions.run('scene.create', {
84
- page: { width: 800, height: 600, unit: 'Pixel' }
85
- });
86
-
87
- const engine = cesdk.engine;
88
-
89
- // Get the page from the scene
90
- const pages = engine.block.findByType('page');
91
- const page = pages[0];
92
-
93
- // Add an image using the convenience API
94
- const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
95
- const imageBlock = await engine.block.addImage(imageUri, {
96
- size: { width: 300, height: 200 }
97
- });
98
- engine.block.appendChild(page, imageBlock);
99
- engine.block.setPositionX(imageBlock, 50);
100
- engine.block.setPositionY(imageBlock, 50);
101
-
102
- // Verify the block supports cropping before applying crop operations
103
- const supportsCrop = engine.block.supportsCrop(imageBlock);
104
- console.log('Block supports crop:', supportsCrop);
105
-
106
- // Check if the block supports content fill modes
107
- const supportsFillMode = engine.block.supportsContentFillMode(imageBlock);
108
- console.log('Supports content fill mode:', supportsFillMode);
109
-
110
- // Get the current content fill mode
111
- const currentMode = engine.block.getContentFillMode(imageBlock);
112
- console.log('Current fill mode:', currentMode);
113
-
114
- // Set content fill mode - options are 'Crop', 'Cover', 'Contain'
115
- // 'Cover' automatically scales and positions to fill the entire frame
116
- engine.block.setContentFillMode(imageBlock, 'Cover');
117
-
118
- // Create another image block to demonstrate crop scaling
119
- const scaleBlock = await engine.block.addImage(imageUri, {
120
- size: { width: 200, height: 200 }
121
- });
122
- engine.block.appendChild(page, scaleBlock);
123
- engine.block.setPositionX(scaleBlock, 400);
124
- engine.block.setPositionY(scaleBlock, 50);
125
-
126
- // Set content fill mode to 'Crop' for manual control
127
- engine.block.setContentFillMode(scaleBlock, 'Crop');
128
-
129
- // Scale the content within the crop frame
130
- // Values > 1 zoom in, values < 1 zoom out
131
- engine.block.setCropScaleX(scaleBlock, 1.5);
132
- engine.block.setCropScaleY(scaleBlock, 1.5);
133
-
134
- // Or use uniform scaling from center
135
- engine.block.setCropScaleRatio(scaleBlock, 1.2);
136
-
137
- // Get the current scale values
138
- const scaleX = engine.block.getCropScaleX(scaleBlock);
139
- const scaleY = engine.block.getCropScaleY(scaleBlock);
140
- const scaleRatio = engine.block.getCropScaleRatio(scaleBlock);
141
- console.log('Crop scale:', { scaleX, scaleY, scaleRatio });
142
-
143
- // Pan the content within the crop frame using translation
144
- // Values are in percentage of the crop frame dimensions
145
- engine.block.setCropTranslationX(scaleBlock, 0.1); // Move 10% right
146
- engine.block.setCropTranslationY(scaleBlock, -0.1); // Move 10% up
147
-
148
- // Get the current translation values
149
- const translationX = engine.block.getCropTranslationX(scaleBlock);
150
- const translationY = engine.block.getCropTranslationY(scaleBlock);
151
- console.log('Crop translation:', { translationX, translationY });
152
-
153
- // Ensure content covers the entire frame without gaps
154
- // The minScaleRatio parameter sets the minimum scale allowed
155
- const adjustedRatio = engine.block.adjustCropToFillFrame(scaleBlock, 1.0);
156
- console.log('Adjusted scale ratio:', adjustedRatio);
157
-
158
- // Create an image block to demonstrate crop rotation
159
- const rotateBlock = await engine.block.addImage(imageUri, {
160
- size: { width: 200, height: 200 }
161
- });
162
- engine.block.appendChild(page, rotateBlock);
163
- engine.block.setPositionX(rotateBlock, 50);
164
- engine.block.setPositionY(rotateBlock, 300);
165
- engine.block.setContentFillMode(rotateBlock, 'Crop');
166
-
167
- // Rotate the content within the crop frame (in radians)
168
- // Math.PI / 4 = 45 degrees
169
- engine.block.setCropRotation(rotateBlock, Math.PI / 12);
170
-
171
- // Get the current rotation
172
- const rotation = engine.block.getCropRotation(rotateBlock);
173
- console.log('Crop rotation (radians):', rotation);
174
-
175
- // Ensure content still fills the frame after rotation
176
- engine.block.adjustCropToFillFrame(rotateBlock, 1.0);
177
-
178
- // Create an image block to demonstrate flipping
179
- const flipBlock = await engine.block.addImage(imageUri, {
180
- size: { width: 200, height: 200 }
181
- });
182
- engine.block.appendChild(page, flipBlock);
183
- engine.block.setPositionX(flipBlock, 300);
184
- engine.block.setPositionY(flipBlock, 300);
185
- engine.block.setContentFillMode(flipBlock, 'Crop');
186
-
187
- // Flip the content horizontally
188
- engine.block.flipCropHorizontal(flipBlock);
189
-
190
- // Create an image block to demonstrate aspect ratio locking
191
- const lockBlock = await engine.block.addImage(imageUri, {
192
- size: { width: 200, height: 200 }
193
- });
194
- engine.block.appendChild(page, lockBlock);
195
- engine.block.setPositionX(lockBlock, 550);
196
- engine.block.setPositionY(lockBlock, 300);
197
- engine.block.setContentFillMode(lockBlock, 'Crop');
198
-
199
- // Lock the crop aspect ratio - when locked, crop handles maintain
200
- // the current aspect ratio during resize operations
201
- engine.block.setCropAspectRatioLocked(lockBlock, true);
202
-
203
- // Check if aspect ratio is locked
204
- const isLocked = engine.block.isCropAspectRatioLocked(lockBlock);
205
- console.log('Aspect ratio locked:', isLocked);
206
-
207
- // Reset crop to default state (sets content fill mode to 'Cover')
208
- engine.block.resetCrop(lockBlock);
209
-
210
- // Select the first image block to show it in the UI
211
- engine.block.select(imageBlock);
212
-
213
- // Zoom to page for better visibility
214
- cesdk.engine.scene.zoomToBlock(page, {
215
- padding: { left: 0.5, top: 0.5, right: 0.5, bottom: 0.9 }
216
- });
217
- }
218
- }
15
+ >
16
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-edit-image-transform-crop-server-js)
17
+ >
18
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-edit-image-transform-crop-server-js)
19
+
20
+ Image cropping selects a region inside an image and discards everything outside that frame. Unlike resizing which changes overall dimensions, cropping lets you focus on specific areas of interest. CE.SDK provides a crop system that works through scale, translation, and rotation to define the visible region of content within a block frame.
21
+
22
+ ```typescript file=@cesdk_web_examples/guides-edit-image-transform-crop-server-js/server-js.ts reference-only
23
+ import CreativeEngine from '@cesdk/node';
24
+ import { config } from 'dotenv';
25
+ import { writeFileSync } from 'fs';
26
+
27
+ // Load environment variables
28
+ config();
29
+
30
+ /**
31
+ * CE.SDK Server Guide: Crop Images
32
+ *
33
+ * Demonstrates cropping images programmatically:
34
+ * - Checking crop support
35
+ * - Cropping to fixed dimensions
36
+ * - Content fill modes (Crop, Cover, Contain)
37
+ * - Scaling and positioning content
38
+ * - Cropping to aspect ratio
39
+ * - Rotating and flipping content
40
+ * - Locking aspect ratio
41
+ * - Exporting cropped images
42
+ */
43
+
44
+ // Initialize CE.SDK engine in headless mode
45
+ const engine = await CreativeEngine.init({
46
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
47
+ // license: process.env.CESDK_LICENSE, // Optional (trial mode available)
48
+ });
219
49
 
220
- export default Example;
50
+ try {
51
+ // Create a design scene with specific page dimensions
52
+ const scene = engine.scene.create();
53
+ const page = engine.block.create('page');
54
+ engine.block.setWidth(page, 800);
55
+ engine.block.setHeight(page, 600);
56
+ engine.block.appendChild(scene, page);
57
+
58
+ // Sample image URL for demonstrations
59
+ const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
60
+
61
+ // Add an image block using the convenience addImage API
62
+ const imageBlock = await engine.block.addImage(imageUri, {
63
+ size: { width: 300, height: 200 }
64
+ });
65
+ engine.block.appendChild(page, imageBlock);
66
+ engine.block.setPositionX(imageBlock, 50);
67
+ engine.block.setPositionY(imageBlock, 50);
68
+
69
+ // Verify the block supports crop operations before applying them
70
+ const supportsCrop = engine.block.supportsCrop(imageBlock);
71
+ console.log('Block supports crop:', supportsCrop); // true
72
+
73
+ // Content fill modes control how images fit within their frame
74
+ // Check if the block supports content fill modes
75
+ const supportsFillMode = engine.block.supportsContentFillMode(imageBlock);
76
+ console.log('Supports content fill mode:', supportsFillMode);
77
+
78
+ // Get the current content fill mode
79
+ const currentMode = engine.block.getContentFillMode(imageBlock);
80
+ console.log('Current fill mode:', currentMode);
81
+
82
+ // Set content fill mode - options are 'Crop', 'Cover', 'Contain'
83
+ // 'Cover' automatically scales and positions to fill the entire frame
84
+ engine.block.setContentFillMode(imageBlock, 'Cover');
85
+
86
+ // Alignment only applies in 'Cover' and 'Contain' fill modes — it controls
87
+ // which part of the content stays visible (Cover) or where the letterboxed
88
+ // content sits (Contain). It is ignored in 'Crop' mode.
89
+ // Pin the content to the top-left corner instead of the default center
90
+ engine.block.setContentFillHorizontalAlignment(imageBlock, 'Left');
91
+ engine.block.setContentFillVerticalAlignment(imageBlock, 'Top');
92
+
93
+ // Read the current alignment values
94
+ const horizontalAlignment =
95
+ engine.block.getContentFillHorizontalAlignment(imageBlock);
96
+ const verticalAlignment =
97
+ engine.block.getContentFillVerticalAlignment(imageBlock);
98
+ console.log('Content fill alignment:', {
99
+ horizontalAlignment,
100
+ verticalAlignment
101
+ });
102
+
103
+ // Create another image block to demonstrate crop scaling
104
+ const scaleBlock = await engine.block.addImage(imageUri, {
105
+ size: { width: 200, height: 200 }
106
+ });
107
+ engine.block.appendChild(page, scaleBlock);
108
+ engine.block.setPositionX(scaleBlock, 400);
109
+ engine.block.setPositionY(scaleBlock, 50);
110
+
111
+ // Set content fill mode to 'Crop' for manual control
112
+ engine.block.setContentFillMode(scaleBlock, 'Crop');
113
+
114
+ // Scale the content within the crop frame
115
+ // Values > 1 zoom in, values < 1 zoom out
116
+ engine.block.setCropScaleX(scaleBlock, 1.5);
117
+ engine.block.setCropScaleY(scaleBlock, 1.5);
118
+
119
+ // Or use uniform scaling from center
120
+ engine.block.setCropScaleRatio(scaleBlock, 1.2);
121
+
122
+ // Get the current scale values
123
+ const scaleX = engine.block.getCropScaleX(scaleBlock);
124
+ const scaleY = engine.block.getCropScaleY(scaleBlock);
125
+ const scaleRatio = engine.block.getCropScaleRatio(scaleBlock);
126
+ console.log('Crop scale:', { scaleX, scaleY, scaleRatio });
127
+
128
+ // Pan the content within the crop frame using translation
129
+ // Values are in percentage of the crop frame dimensions
130
+ engine.block.setCropTranslationX(scaleBlock, 0.1); // Move 10% right
131
+ engine.block.setCropTranslationY(scaleBlock, -0.1); // Move 10% up
132
+
133
+ // Get the current translation values
134
+ const translationX = engine.block.getCropTranslationX(scaleBlock);
135
+ const translationY = engine.block.getCropTranslationY(scaleBlock);
136
+ console.log('Crop translation:', { translationX, translationY });
137
+
138
+ // Ensure content covers the entire frame without gaps
139
+ // The minScaleRatio parameter sets the minimum scale allowed
140
+ const adjustedRatio = engine.block.adjustCropToFillFrame(scaleBlock, 1.0);
141
+ console.log('Adjusted scale ratio:', adjustedRatio);
142
+
143
+ // Create an image block to demonstrate crop rotation
144
+ const rotateBlock = await engine.block.addImage(imageUri, {
145
+ size: { width: 200, height: 200 }
146
+ });
147
+ engine.block.appendChild(page, rotateBlock);
148
+ engine.block.setPositionX(rotateBlock, 50);
149
+ engine.block.setPositionY(rotateBlock, 300);
150
+ engine.block.setContentFillMode(rotateBlock, 'Crop');
151
+
152
+ // Rotate the content within the crop frame (in radians)
153
+ // Math.PI / 4 = 45 degrees
154
+ engine.block.setCropRotation(rotateBlock, Math.PI / 4);
155
+
156
+ // Get the current rotation
157
+ const rotation = engine.block.getCropRotation(rotateBlock);
158
+ console.log('Crop rotation (radians):', rotation);
159
+
160
+ // Ensure content still fills the frame after rotation
161
+ engine.block.adjustCropToFillFrame(rotateBlock, 1.0);
162
+
163
+ // Create an image block to demonstrate flipping
164
+ const flipBlock = await engine.block.addImage(imageUri, {
165
+ size: { width: 200, height: 200 }
166
+ });
167
+ engine.block.appendChild(page, flipBlock);
168
+ engine.block.setPositionX(flipBlock, 300);
169
+ engine.block.setPositionY(flipBlock, 300);
170
+ engine.block.setContentFillMode(flipBlock, 'Crop');
171
+
172
+ // Flip the content horizontally
173
+ engine.block.flipCropHorizontal(flipBlock);
174
+
175
+ // Or flip vertically
176
+ // engine.block.flipCropVertical(flipBlock);
177
+
178
+ // Create an image block to demonstrate aspect ratio locking
179
+ const lockBlock = await engine.block.addImage(imageUri, {
180
+ size: { width: 200, height: 200 }
181
+ });
182
+ engine.block.appendChild(page, lockBlock);
183
+ engine.block.setPositionX(lockBlock, 550);
184
+ engine.block.setPositionY(lockBlock, 300);
185
+ engine.block.setContentFillMode(lockBlock, 'Crop');
186
+
187
+ // Lock the crop aspect ratio - when locked, crop handles maintain
188
+ // the current aspect ratio during resize operations
189
+ engine.block.setCropAspectRatioLocked(lockBlock, true);
190
+
191
+ // Check if aspect ratio is locked
192
+ const isLocked = engine.block.isCropAspectRatioLocked(lockBlock);
193
+ console.log('Aspect ratio locked:', isLocked);
194
+
195
+ // Reset crop to default state (sets content fill mode to 'Cover')
196
+ engine.block.resetCrop(lockBlock);
197
+
198
+ // Export the result as PNG
199
+ const blob = await engine.block.export(page, { mimeType: 'image/png' });
200
+ const buffer = Buffer.from(await blob.arrayBuffer());
201
+ writeFileSync('crop-images-output.png', buffer);
202
+ console.log('Successfully exported crop-images-output.png');
203
+ } catch (error) {
204
+ console.error('Error:', error);
205
+ throw error;
206
+ } finally {
207
+ // Always dispose the engine to free resources
208
+ engine.dispose();
209
+ }
221
210
  ```
222
211
 
223
- This guide covers both interactive cropping using the built-in UI and programmatic cropping using the engine API for automation workflows.
212
+ This guide covers how to crop images programmatically using the block API, including content fill modes, scaling, positioning, rotation, and aspect ratio locking.
224
213
 
225
- ## Using the Built-in Crop UI
226
-
227
- The CE.SDK default UI provides an interactive crop tool that allows users to visually adjust crop areas with real-time feedback.
214
+ ## Programmatic Cropping
228
215
 
229
- ### User Workflow
216
+ ### Initialize CE.SDK
230
217
 
231
- With the default UI configuration, users can crop images through a visual workflow:
218
+ For applications that need to crop images programmatically—whether for automation, batch processing, or dynamic user experiences—we start by setting up CE.SDK with the proper configuration.
232
219
 
233
- 1. **Select an image** - Click on any image block in the canvas
234
- 2. **Enter crop mode** - Double-click the image or click the crop icon in the toolbar
235
- 3. **Adjust the crop area** - Drag corners or edges to resize the visible region
236
- 4. **Choose aspect ratio** - Select a preset ratio if available (e.g., 1:1, 4:3, 16:9)
237
- 5. **Apply the crop** - Click "Done" or press Enter to apply changes
220
+ ```typescript highlight-setup
221
+ // Initialize CE.SDK engine in headless mode
222
+ const engine = await CreativeEngine.init({
223
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
224
+ // license: process.env.CESDK_LICENSE, // Optional (trial mode available)
225
+ });
226
+ ```
238
227
 
239
- The cropped image appears in your project, but the underlying original image preserves its values, even when you rotate or resize the cropped image.
228
+ This initializes the CE.SDK engine in headless mode, giving you full API access to the crop system without UI dependencies.
240
229
 
241
- ### Enable Crop Features in Custom UI
230
+ ### Create a Scene with an Image
242
231
 
243
- For developers building custom UIs, you can enable crop functionality using editor settings:
232
+ Before cropping, we need a scene with an image block. The example creates a page with specific dimensions and adds an image using the convenience `addImage()` API.
244
233
 
245
- ```typescript
246
- // Enable double-click to enter crop mode
247
- cesdk.editor.setSettingBool('doubleClickToCropEnabled', true);
234
+ ```typescript highlight-create-scene
235
+ // Create a design scene with specific page dimensions
236
+ const scene = engine.scene.create();
237
+ const page = engine.block.create('page');
238
+ engine.block.setWidth(page, 800);
239
+ engine.block.setHeight(page, 600);
240
+ engine.block.appendChild(scene, page);
248
241
 
249
- // Show crop handles on the control gizmo
250
- cesdk.editor.setSettingBool('controlGizmo/showCropHandles', true);
242
+ // Sample image URL for demonstrations
243
+ const imageUri = 'https://img.ly/static/ubq_samples/sample_1.jpg';
251
244
 
252
- // Show crop scale handles
253
- cesdk.editor.setSettingBool('controlGizmo/showCropScaleHandles', true);
245
+ // Add an image block using the convenience addImage API
246
+ const imageBlock = await engine.block.addImage(imageUri, {
247
+ size: { width: 300, height: 200 }
248
+ });
249
+ engine.block.appendChild(page, imageBlock);
250
+ engine.block.setPositionX(imageBlock, 50);
251
+ engine.block.setPositionY(imageBlock, 50);
254
252
  ```
255
253
 
256
- ### Define Preset Aspect Ratios
254
+ ### Check Crop Support
257
255
 
258
- You can define available aspect ratios to guide user choices:
256
+ Before applying crop operations to a block, verify it supports cropping. Not all block types can be cropped—for example, scene blocks do not support crop operations.
259
257
 
260
- ```typescript
261
- const aspectRatios = [
262
- 'Free', // Unconstrained
263
- '1:1', // Square
264
- '4:5', // Instagram Portrait
265
- '16:9', // Widescreen
266
- 'Custom:3:2' // Custom ratios
267
- ];
268
- cesdk.editor.setSettingString('ui/crop/aspectRatios', aspectRatios.join(','));
258
+ ```typescript highlight-supportsCrop
259
+ // Verify the block supports crop operations before applying them
260
+ const supportsCrop = engine.block.supportsCrop(imageBlock);
261
+ console.log('Block supports crop:', supportsCrop); // true
269
262
  ```
270
263
 
271
- > **Tip:** You can hide the aspect ratio selector entirely by setting `ui/crop/allowAspectRatioSelection` to `false`.
264
+ Crop support is available for:
272
265
 
273
- ## Programmatic Cropping
266
+ - **Graphic blocks** with image fills
267
+ - **Graphic blocks** with video fills
268
+ - **Shape blocks** with fills
274
269
 
275
- For automation, batch processing, or dynamic applications, you can control cropping entirely through the engine API.
270
+ Always verify support before applying crop operations to avoid errors.
276
271
 
277
- ### Check Crop Support
272
+ ### Content Fill Modes
278
273
 
279
- Before applying crop operations, verify the block supports cropping using `engine.block.supportsCrop()`. Graphic blocks with image fills support cropping:
274
+ CE.SDK provides three content fill modes that control how images fit within their frame. These modes determine whether you have manual control or automatic behavior.
280
275
 
281
- ```typescript highlight-check-crop-support
282
- // Verify the block supports cropping before applying crop operations
283
- const supportsCrop = engine.block.supportsCrop(imageBlock);
284
- console.log('Block supports crop:', supportsCrop);
276
+ ```typescript highlight-contentFillMode
277
+ // Content fill modes control how images fit within their frame
278
+ // Check if the block supports content fill modes
279
+ const supportsFillMode = engine.block.supportsContentFillMode(imageBlock);
280
+ console.log('Supports content fill mode:', supportsFillMode);
281
+
282
+ // Get the current content fill mode
283
+ const currentMode = engine.block.getContentFillMode(imageBlock);
284
+ console.log('Current fill mode:', currentMode);
285
+
286
+ // Set content fill mode - options are 'Crop', 'Cover', 'Contain'
287
+ // 'Cover' automatically scales and positions to fill the entire frame
288
+ engine.block.setContentFillMode(imageBlock, 'Cover');
285
289
  ```
286
290
 
287
- ### Content Fill Modes
291
+ The available fill modes are:
288
292
 
289
- CE.SDK provides three content fill modes that control how images fit within their frame. Set the mode using `engine.block.setContentFillMode()`:
293
+ - **Crop** - Manual control over the exact crop region using scale and translation
294
+ - **Cover** - Automatically scales and positions content to cover the entire frame (no gaps)
295
+ - **Contain** - Automatically scales and positions content to fit within the frame (may show gaps)
290
296
 
291
- ```typescript highlight-content-fill-mode
292
- // Check if the block supports content fill modes
293
- const supportsFillMode = engine.block.supportsContentFillMode(imageBlock);
294
- console.log('Supports content fill mode:', supportsFillMode);
297
+ Use `Crop` mode when you need precise control over which part of the image is visible. Use `Cover` for automatic framing that fills the entire space.
295
298
 
296
- // Get the current content fill mode
297
- const currentMode = engine.block.getContentFillMode(imageBlock);
298
- console.log('Current fill mode:', currentMode);
299
+ ### Align Content Fill
299
300
 
300
- // Set content fill mode - options are 'Crop', 'Cover', 'Contain'
301
- // 'Cover' automatically scales and positions to fill the entire frame
302
- engine.block.setContentFillMode(imageBlock, 'Cover');
301
+ In `Cover` and `Contain` modes, content is centered inside the block by default. Use the alignment APIs to pin content to a specific edge instead — for example, to keep the top-left of an image visible regardless of the image's aspect ratio.
302
+
303
+ ```typescript highlight-content-fill-alignment
304
+ // Alignment only applies in 'Cover' and 'Contain' fill modes — it controls
305
+ // which part of the content stays visible (Cover) or where the letterboxed
306
+ // content sits (Contain). It is ignored in 'Crop' mode.
307
+ // Pin the content to the top-left corner instead of the default center
308
+ engine.block.setContentFillHorizontalAlignment(imageBlock, 'Left');
309
+ engine.block.setContentFillVerticalAlignment(imageBlock, 'Top');
310
+
311
+ // Read the current alignment values
312
+ const horizontalAlignment =
313
+ engine.block.getContentFillHorizontalAlignment(imageBlock);
314
+ const verticalAlignment =
315
+ engine.block.getContentFillVerticalAlignment(imageBlock);
316
+ console.log('Content fill alignment:', {
317
+ horizontalAlignment,
318
+ verticalAlignment
319
+ });
303
320
  ```
304
321
 
305
- The available modes are:
322
+ The horizontal options are `'Left'`, `'Center'` (default), and `'Right'`. The vertical options are `'Top'`, `'Center'` (default), and `'Bottom'`. In `Cover` mode the alignment controls which part of the oversized content stays visible; in `Contain` mode it controls where the letterboxed content sits. The alignment is ignored in `Crop` mode, where translation is set explicitly.
306
323
 
307
- - **Crop** - Manual control over the exact crop region using scale, translation, and rotation
308
- - **Cover** - Automatically scale and position content to fill the entire frame (no empty areas)
309
- - **Contain** - Automatically scale and position content to fit entirely within the frame (may show background)
324
+ ### Scale Content
310
325
 
311
- ### Scale Crop
326
+ When using `Crop` fill mode, you can scale the content within the crop frame to zoom in or out. Values greater than 1 zoom in, while values less than 1 zoom out.
312
327
 
313
- Scale the image content within its frame using crop scale APIs. Values greater than 1.0 zoom in, values less than 1.0 zoom out:
328
+ ```typescript highlight-cropScale
329
+ // Create another image block to demonstrate crop scaling
330
+ const scaleBlock = await engine.block.addImage(imageUri, {
331
+ size: { width: 200, height: 200 }
332
+ });
333
+ engine.block.appendChild(page, scaleBlock);
334
+ engine.block.setPositionX(scaleBlock, 400);
335
+ engine.block.setPositionY(scaleBlock, 50);
314
336
 
315
- ```typescript highlight-scale-crop
316
- // Create another image block to demonstrate crop scaling
317
- const scaleBlock = await engine.block.addImage(imageUri, {
318
- size: { width: 200, height: 200 }
319
- });
320
- engine.block.appendChild(page, scaleBlock);
321
- engine.block.setPositionX(scaleBlock, 400);
322
- engine.block.setPositionY(scaleBlock, 50);
323
-
324
- // Set content fill mode to 'Crop' for manual control
325
- engine.block.setContentFillMode(scaleBlock, 'Crop');
326
-
327
- // Scale the content within the crop frame
328
- // Values > 1 zoom in, values < 1 zoom out
329
- engine.block.setCropScaleX(scaleBlock, 1.5);
330
- engine.block.setCropScaleY(scaleBlock, 1.5);
331
-
332
- // Or use uniform scaling from center
333
- engine.block.setCropScaleRatio(scaleBlock, 1.2);
334
-
335
- // Get the current scale values
336
- const scaleX = engine.block.getCropScaleX(scaleBlock);
337
- const scaleY = engine.block.getCropScaleY(scaleBlock);
338
- const scaleRatio = engine.block.getCropScaleRatio(scaleBlock);
339
- console.log('Crop scale:', { scaleX, scaleY, scaleRatio });
337
+ // Set content fill mode to 'Crop' for manual control
338
+ engine.block.setContentFillMode(scaleBlock, 'Crop');
339
+
340
+ // Scale the content within the crop frame
341
+ // Values > 1 zoom in, values < 1 zoom out
342
+ engine.block.setCropScaleX(scaleBlock, 1.5);
343
+ engine.block.setCropScaleY(scaleBlock, 1.5);
344
+
345
+ // Or use uniform scaling from center
346
+ engine.block.setCropScaleRatio(scaleBlock, 1.2);
347
+
348
+ // Get the current scale values
349
+ const scaleX = engine.block.getCropScaleX(scaleBlock);
350
+ const scaleY = engine.block.getCropScaleY(scaleBlock);
351
+ const scaleRatio = engine.block.getCropScaleRatio(scaleBlock);
352
+ console.log('Crop scale:', { scaleX, scaleY, scaleRatio });
340
353
  ```
341
354
 
342
- Use `setCropScaleRatio()` for uniform scaling from the center, or `setCropScaleX()` and `setCropScaleY()` for non-uniform scaling.
355
+ CE.SDK provides two scaling approaches:
343
356
 
344
- ### Translate Crop
357
+ - **Non-uniform scaling** - `setCropScaleX()` and `setCropScaleY()` for independent horizontal and vertical scaling
358
+ - **Uniform scaling** - `setCropScaleRatio()` for proportional scaling from the center of the crop frame
345
359
 
346
- Pan the image content within the crop frame using translation. Values are percentages of the crop frame dimensions:
360
+ Uniform scaling maintains the image's aspect ratio, while non-uniform scaling can stretch or compress the image.
347
361
 
348
- ```typescript highlight-translate-crop
349
- // Pan the content within the crop frame using translation
350
- // Values are in percentage of the crop frame dimensions
351
- engine.block.setCropTranslationX(scaleBlock, 0.1); // Move 10% right
352
- engine.block.setCropTranslationY(scaleBlock, -0.1); // Move 10% up
362
+ ### Position Content
353
363
 
354
- // Get the current translation values
355
- const translationX = engine.block.getCropTranslationX(scaleBlock);
356
- const translationY = engine.block.getCropTranslationY(scaleBlock);
357
- console.log('Crop translation:', { translationX, translationY });
364
+ Pan the content within the crop frame using translation. Translation values represent the offset as a percentage of the crop frame dimensions.
365
+
366
+ ```typescript highlight-cropTranslation
367
+ // Pan the content within the crop frame using translation
368
+ // Values are in percentage of the crop frame dimensions
369
+ engine.block.setCropTranslationX(scaleBlock, 0.1); // Move 10% right
370
+ engine.block.setCropTranslationY(scaleBlock, -0.1); // Move 10% up
371
+
372
+ // Get the current translation values
373
+ const translationX = engine.block.getCropTranslationX(scaleBlock);
374
+ const translationY = engine.block.getCropTranslationY(scaleBlock);
375
+ console.log('Crop translation:', { translationX, translationY });
358
376
  ```
359
377
 
360
- Positive X moves content right, positive Y moves content down.
378
+ Translation values:
361
379
 
362
- ### Fill Frame
380
+ - Positive X values move content to the right
381
+ - Negative X values move content to the left
382
+ - Positive Y values move content down
383
+ - Negative Y values move content up
363
384
 
364
- Adjust the crop to ensure content fills the frame without empty areas using `engine.block.adjustCropToFillFrame()`. The `minScaleRatio` parameter sets the minimum allowed scale:
385
+ After adjusting scale and translation, use `adjustCropToFillFrame()` to ensure content covers the entire frame without gaps.
365
386
 
366
- ```typescript highlight-fill-frame
387
+ ```typescript highlight-adjustCropToFillFrame
367
388
  // Ensure content covers the entire frame without gaps
368
389
  // The minScaleRatio parameter sets the minimum scale allowed
369
390
  const adjustedRatio = engine.block.adjustCropToFillFrame(scaleBlock, 1.0);
370
391
  console.log('Adjusted scale ratio:', adjustedRatio);
371
392
  ```
372
393
 
373
- This is useful after applying translations or rotations that might reveal empty areas.
394
+ The `minScaleRatio` parameter sets the minimum scale allowed—the method returns the actual scale ratio applied.
374
395
 
375
- ### Rotate Crop
396
+ ### Rotate Content
376
397
 
377
- Rotate the image content within its frame using `engine.block.setCropRotation()`. Rotation is specified in radians:
398
+ Rotate the content within the crop frame using radians. This rotates the image independently of the block's overall rotation.
378
399
 
379
- ```typescript highlight-rotate-crop
380
- // Create an image block to demonstrate crop rotation
381
- const rotateBlock = await engine.block.addImage(imageUri, {
382
- size: { width: 200, height: 200 }
383
- });
384
- engine.block.appendChild(page, rotateBlock);
385
- engine.block.setPositionX(rotateBlock, 50);
386
- engine.block.setPositionY(rotateBlock, 300);
387
- engine.block.setContentFillMode(rotateBlock, 'Crop');
400
+ ```typescript highlight-cropRotation
401
+ // Create an image block to demonstrate crop rotation
402
+ const rotateBlock = await engine.block.addImage(imageUri, {
403
+ size: { width: 200, height: 200 }
404
+ });
405
+ engine.block.appendChild(page, rotateBlock);
406
+ engine.block.setPositionX(rotateBlock, 50);
407
+ engine.block.setPositionY(rotateBlock, 300);
408
+ engine.block.setContentFillMode(rotateBlock, 'Crop');
388
409
 
389
- // Rotate the content within the crop frame (in radians)
390
- // Math.PI / 4 = 45 degrees
391
- engine.block.setCropRotation(rotateBlock, Math.PI / 12);
410
+ // Rotate the content within the crop frame (in radians)
411
+ // Math.PI / 4 = 45 degrees
412
+ engine.block.setCropRotation(rotateBlock, Math.PI / 4);
392
413
 
393
- // Get the current rotation
394
- const rotation = engine.block.getCropRotation(rotateBlock);
395
- console.log('Crop rotation (radians):', rotation);
414
+ // Get the current rotation
415
+ const rotation = engine.block.getCropRotation(rotateBlock);
416
+ console.log('Crop rotation (radians):', rotation);
396
417
 
397
- // Ensure content still fills the frame after rotation
398
- engine.block.adjustCropToFillFrame(rotateBlock, 1.0);
418
+ // Ensure content still fills the frame after rotation
419
+ engine.block.adjustCropToFillFrame(rotateBlock, 1.0);
399
420
  ```
400
421
 
401
- After rotation, call `adjustCropToFillFrame()` to ensure content still covers the frame.
422
+ After rotating content, call `adjustCropToFillFrame()` to ensure the rotated content still covers the entire frame.
402
423
 
403
- ### Flip Crop
424
+ The difference between crop rotation and block rotation:
404
425
 
405
- Flip the image content horizontally or vertically within its crop frame. This flips the content itself, not the block:
426
+ - **Crop rotation** - Rotates the content inside the frame while the frame stays fixed
427
+ - **Block rotation** - Rotates the entire block including its frame
406
428
 
407
- ```typescript highlight-flip-crop
408
- // Create an image block to demonstrate flipping
409
- const flipBlock = await engine.block.addImage(imageUri, {
410
- size: { width: 200, height: 200 }
411
- });
412
- engine.block.appendChild(page, flipBlock);
413
- engine.block.setPositionX(flipBlock, 300);
414
- engine.block.setPositionY(flipBlock, 300);
415
- engine.block.setContentFillMode(flipBlock, 'Crop');
429
+ ### Flip Content
430
+
431
+ Flip the content horizontally or vertically to create mirror effects.
432
+
433
+ ```typescript highlight-flipCrop
434
+ // Create an image block to demonstrate flipping
435
+ const flipBlock = await engine.block.addImage(imageUri, {
436
+ size: { width: 200, height: 200 }
437
+ });
438
+ engine.block.appendChild(page, flipBlock);
439
+ engine.block.setPositionX(flipBlock, 300);
440
+ engine.block.setPositionY(flipBlock, 300);
441
+ engine.block.setContentFillMode(flipBlock, 'Crop');
416
442
 
417
- // Flip the content horizontally
418
- engine.block.flipCropHorizontal(flipBlock);
443
+ // Flip the content horizontally
444
+ engine.block.flipCropHorizontal(flipBlock);
445
+
446
+ // Or flip vertically
447
+ // engine.block.flipCropVertical(flipBlock);
419
448
  ```
420
449
 
421
- ### Lock Aspect Ratio
450
+ Flipping affects only the content within the frame, not the frame itself.
422
451
 
423
- Lock the crop aspect ratio during interactive editing using `engine.block.setCropAspectRatioLocked()`. When locked, crop handles maintain the current aspect ratio:
452
+ ### Lock Aspect Ratio
424
453
 
425
- ```typescript highlight-lock-aspect-ratio
426
- // Create an image block to demonstrate aspect ratio locking
427
- const lockBlock = await engine.block.addImage(imageUri, {
428
- size: { width: 200, height: 200 }
429
- });
430
- engine.block.appendChild(page, lockBlock);
431
- engine.block.setPositionX(lockBlock, 550);
432
- engine.block.setPositionY(lockBlock, 300);
433
- engine.block.setContentFillMode(lockBlock, 'Crop');
434
-
435
- // Lock the crop aspect ratio - when locked, crop handles maintain
436
- // the current aspect ratio during resize operations
437
- engine.block.setCropAspectRatioLocked(lockBlock, true);
438
-
439
- // Check if aspect ratio is locked
440
- const isLocked = engine.block.isCropAspectRatioLocked(lockBlock);
441
- console.log('Aspect ratio locked:', isLocked);
454
+ When building interactive crop interfaces, you can lock the aspect ratio to maintain proportions during resize operations.
455
+
456
+ ```typescript highlight-lockAspectRatio
457
+ // Create an image block to demonstrate aspect ratio locking
458
+ const lockBlock = await engine.block.addImage(imageUri, {
459
+ size: { width: 200, height: 200 }
460
+ });
461
+ engine.block.appendChild(page, lockBlock);
462
+ engine.block.setPositionX(lockBlock, 550);
463
+ engine.block.setPositionY(lockBlock, 300);
464
+ engine.block.setContentFillMode(lockBlock, 'Crop');
465
+
466
+ // Lock the crop aspect ratio - when locked, crop handles maintain
467
+ // the current aspect ratio during resize operations
468
+ engine.block.setCropAspectRatioLocked(lockBlock, true);
469
+
470
+ // Check if aspect ratio is locked
471
+ const isLocked = engine.block.isCropAspectRatioLocked(lockBlock);
472
+ console.log('Aspect ratio locked:', isLocked);
442
473
  ```
443
474
 
475
+ When locked, crop handles maintain the current aspect ratio. This is useful for:
476
+
477
+ - Preparing images for specific formats (social media, print)
478
+ - Maintaining consistent proportions across multiple images
479
+ - Preventing accidental distortion during editing
480
+
444
481
  ### Reset Crop
445
482
 
446
- Reset all crop transformations to their default state using `engine.block.resetCrop()`:
483
+ To restore default crop settings, use `resetCrop()`. This sets the content fill mode to `Cover` and adjusts crop values so the content covers the block.
447
484
 
448
- ```typescript highlight-reset-crop
485
+ ```typescript highlight-resetCrop
449
486
  // Reset crop to default state (sets content fill mode to 'Cover')
450
487
  engine.block.resetCrop(lockBlock);
451
488
  ```
@@ -454,11 +491,11 @@ engine.block.resetCrop(lockBlock);
454
491
 
455
492
  Crop transforms use normalized values:
456
493
 
457
- | Property | Value Type | Description |
458
- | ----------- | ------------------- | ------------------------------------------------ |
459
- | Scale | Float (0.0+) | 1.0 is original size, 2.0 is double, 0.5 is half |
460
- | Translation | Float (-1.0 to 1.0) | Percentage of frame dimensions |
461
- | Rotation | Float (radians) | Math.PI = 180°, Math.PI/2 = 90° |
494
+ | Property | Value Type | Description |
495
+ |----------|------------|-------------|
496
+ | Scale | Float (0.0+) | 1.0 is original size, 2.0 is double, 0.5 is half |
497
+ | Translation | Float (-1.0 to 1.0) | Percentage of frame dimensions |
498
+ | Rotation | Float (radians) | Math.PI = 180°, Math.PI/2 = 90° |
462
499
 
463
500
  All crop values are independent of canvas zoom level.
464
501
 
@@ -476,48 +513,72 @@ engine.block.setRotation(imageBlock, Math.PI / 6);
476
513
  engine.block.setWidth(imageBlock, 400);
477
514
  ```
478
515
 
516
+ ## Export Results
517
+
518
+ After applying crop transformations, export the processed content to a file.
519
+
520
+ ```typescript highlight-export
521
+ // Export the result as PNG
522
+ const blob = await engine.block.export(page, { mimeType: 'image/png' });
523
+ const buffer = Buffer.from(await blob.arrayBuffer());
524
+ writeFileSync('crop-images-output.png', buffer);
525
+ console.log('Successfully exported crop-images-output.png');
526
+ ```
527
+
528
+ Always dispose of the engine instance when processing is complete to free resources.
529
+
530
+ ```typescript highlight-cleanup
531
+ // Always dispose the engine to free resources
532
+ engine.dispose();
533
+ ```
534
+
479
535
  ## Troubleshooting
480
536
 
481
- | Issue | Cause / Fix |
482
- | ------------------------------ | ------------------------------------------------------------------------------- |
483
- | Crop functions throw error | Verify block supports crop with `supportsCrop()` |
484
- | Black bars after scaling | Call `adjustCropToFillFrame()` or increase scale ratio |
485
- | Content not filling frame | Check content fill mode - use 'Cover' for automatic fill |
486
- | Unexpected crop behavior | Ensure content fill mode is set to 'Crop' for manual control |
487
- | Crop handles not visible in UI | Enable with `cesdk.editor.setSettingBool('controlGizmo/showCropHandles', true)` |
537
+ | Issue | Cause / Fix |
538
+ |-------|-------------|
539
+ | Crop functions throw error | Verify block supports crop with `supportsCrop()` |
540
+ | Black bars after scaling | Call `adjustCropToFillFrame()` or increase scale ratio |
541
+ | Content not filling frame | Check content fill mode - use 'Cover' for automatic fill |
542
+ | Unexpected crop behavior | Ensure content fill mode is set to 'Crop' for manual control |
488
543
 
489
544
  ## API Reference
490
545
 
491
- | Method | Description |
492
- | -------------------------------------------- | -------------------------------------------- |
493
- | `block.supportsCrop(id)` | Check if a block supports cropping |
494
- | `block.supportsContentFillMode(id)` | Check if block supports fill modes |
495
- | `block.setContentFillMode(id, mode)` | Set content fill mode (Crop, Cover, Contain) |
496
- | `block.getContentFillMode(id)` | Get current content fill mode |
497
- | `block.setCropScaleRatio(id, ratio)` | Set uniform crop scale from center |
498
- | `block.setCropScaleX(id, scaleX)` | Set horizontal crop scale |
499
- | `block.setCropScaleY(id, scaleY)` | Set vertical crop scale |
500
- | `block.setCropTranslationX(id, x)` | Set horizontal crop translation |
501
- | `block.setCropTranslationY(id, y)` | Set vertical crop translation |
502
- | `block.setCropRotation(id, rotation)` | Set crop rotation in radians |
503
- | `block.getCropScaleRatio(id)` | Get uniform crop scale ratio |
504
- | `block.getCropScaleX(id)` | Get horizontal crop scale |
505
- | `block.getCropScaleY(id)` | Get vertical crop scale |
506
- | `block.getCropTranslationX(id)` | Get horizontal crop translation |
507
- | `block.getCropTranslationY(id)` | Get vertical crop translation |
508
- | `block.getCropRotation(id)` | Get crop rotation in radians |
509
- | `block.adjustCropToFillFrame(id, minRatio)` | Adjust crop to fill frame |
510
- | `block.flipCropHorizontal(id)` | Flip content horizontally |
511
- | `block.flipCropVertical(id)` | Flip content vertically |
512
- | `block.setCropAspectRatioLocked(id, locked)` | Lock/unlock aspect ratio |
513
- | `block.isCropAspectRatioLocked(id)` | Check if aspect ratio is locked |
514
- | `block.resetCrop(id)` | Reset crop to default state |
546
+ | Method | Description |
547
+ |--------|-------------|
548
+ | `block.supportsCrop(id)` | Check if a block supports cropping |
549
+ | `block.setCropScaleX(id, scaleX)` | Set horizontal crop scale |
550
+ | `block.setCropScaleY(id, scaleY)` | Set vertical crop scale |
551
+ | `block.setCropScaleRatio(id, ratio)` | Set uniform crop scale from center |
552
+ | `block.setCropRotation(id, rotation)` | Set crop rotation in radians |
553
+ | `block.setCropTranslationX(id, x)` | Set horizontal crop translation |
554
+ | `block.setCropTranslationY(id, y)` | Set vertical crop translation |
555
+ | `block.adjustCropToFillFrame(id, minRatio)` | Adjust crop to fill frame |
556
+ | `block.flipCropHorizontal(id)` | Flip content horizontally |
557
+ | `block.flipCropVertical(id)` | Flip content vertically |
558
+ | `block.isCropAspectRatioLocked(id)` | Check if aspect ratio is locked |
559
+ | `block.setCropAspectRatioLocked(id, locked)` | Lock/unlock aspect ratio |
560
+ | `block.resetCrop(id)` | Reset crop to default state |
561
+ | `block.supportsContentFillMode(id)` | Check if block supports fill modes |
562
+ | `block.setContentFillMode(id, mode)` | Set content fill mode |
563
+ | `block.getContentFillMode(id)` | Get current content fill mode |
564
+ | `block.setContentFillHorizontalAlignment(id, alignment)` | Align fill horizontally (Left, Center, Right) in Cover/Contain modes |
565
+ | `block.getContentFillHorizontalAlignment(id)` | Get horizontal fill alignment |
566
+ | `block.setContentFillVerticalAlignment(id, alignment)` | Align fill vertically (Top, Center, Bottom) in Cover/Contain modes |
567
+ | `block.getContentFillVerticalAlignment(id)` | Get vertical fill alignment |
568
+ | `block.getCropScaleX(id)` | Get horizontal crop scale |
569
+ | `block.getCropScaleY(id)` | Get vertical crop scale |
570
+ | `block.getCropScaleRatio(id)` | Get uniform crop scale ratio |
571
+ | `block.getCropRotation(id)` | Get crop rotation in radians |
572
+ | `block.getCropTranslationX(id)` | Get horizontal crop translation |
573
+ | `block.getCropTranslationY(id)` | Get vertical crop translation |
574
+
575
+
515
576
 
516
577
  ---
517
578
 
518
579
  ## More Resources
519
580
 
520
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
581
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
521
582
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
522
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
523
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
583
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
584
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support