@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,92 +1,79 @@
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 Text](./text.md) > [Language Support](./text/language-support.md)
4
4
 
5
5
  ---
6
6
 
7
- Support right-to-left text, complex scripts, and multilingual typography in
8
- your designs using CE.SDK's comprehensive text rendering capabilities.
9
-
10
- ![Text and Language Support example showing multilingual text in different scripts](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
7
+ Support right-to-left text, complex scripts, and multilingual typography programmatically in headless Node.js environments.
11
8
 
12
9
  > **Reading time:** 15 minutes
13
10
  >
14
11
  > **Resources:**
15
12
  >
16
13
  > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
17
- > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-text-language-support-browser)
18
- > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-text-language-support-browser)
19
- > - [Live demo](https://img.ly/docs/cesdk/examples/guides-text-language-support-browser/)
20
-
21
- CE.SDK provides built-in support for creating designs that work seamlessly across different languages and writing systems. The engine automatically handles text shaping, bidirectional layout, and script-specific rendering - supporting all Unicode characters, complex script ligatures, and mixed LTR/RTL content without additional configuration.
22
-
23
- ```typescript file=@cesdk_web_examples/guides-text-language-support-browser/browser.ts reference-only
24
- import type {
25
- EditorPlugin,
26
- EditorPluginContext,
27
- CreativeEngine
28
- } from '@cesdk/cesdk-js';
29
-
30
- import {
31
- BlurAssetSource,
32
- ColorPaletteAssetSource,
33
- CropPresetsAssetSource,
34
- DemoAssetSources,
35
- EffectsAssetSource,
36
- FiltersAssetSource,
37
- PagePresetsAssetSource,
38
- StickerAssetSource,
39
- TextAssetSource,
40
- TextComponentAssetSource,
41
- TypefaceAssetSource,
42
- UploadAssetSources,
43
- VectorShapeAssetSource
44
- } from '@cesdk/cesdk-js/plugins';
45
- import { DesignEditorConfig } from './design-editor/plugin';
46
- import packageJson from './package.json';
14
+ >
15
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-text-language-support-server-js)
16
+ >
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-text-language-support-server-js)
18
+
19
+ CE.SDK provides comprehensive multilingual text support through the Block API. We can create text blocks in any language and the engine automatically handles complex text rendering including right-to-left scripts, ligatures, diacritical marks, and bidirectional text. This enables programmatic generation of designs for global audiences without UI complexity.
20
+
21
+ ```typescript file=@cesdk_web_examples/guides-text-language-support-server-js/server-js.ts reference-only
22
+ import CreativeEngine from "@cesdk/node";
23
+ import { config } from "dotenv";
24
+ import { writeFileSync, mkdirSync, existsSync } from "fs";
25
+
26
+ // Load environment variables
27
+ config();
28
+
29
+ /**
30
+ * CE.SDK Server Guide: Text and Language Support
31
+ */
47
32
 
48
33
  // Typeface definitions
49
34
  const ROBOTO_BOLD = {
50
- name: 'Roboto',
35
+ name: "Roboto",
51
36
  fonts: [
52
37
  {
53
- uri: 'https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vAw.ttf',
54
- subFamily: 'Bold',
55
- weight: 'bold' as const,
56
- style: 'normal' as const
57
- }
58
- ]
38
+ uri: "https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vAw.ttf",
39
+ subFamily: "Bold",
40
+ weight: "bold" as const,
41
+ style: "normal" as const,
42
+ },
43
+ ],
59
44
  };
60
45
 
61
46
  const NOTO_NASKH_ARABIC = {
62
- name: 'Noto Naskh Arabic',
47
+ name: "Noto Naskh Arabic",
63
48
  fonts: [
64
49
  {
65
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoNaskhArabic-Regular.ttf`,
66
- subFamily: 'Regular',
67
- weight: 'normal' as const,
68
- style: 'normal' as const
69
- }
70
- ]
50
+ uri: new URL("./assets/NotoNaskhArabic-Regular.ttf", import.meta.url)
51
+ .href,
52
+ subFamily: "Regular",
53
+ weight: "normal" as const,
54
+ style: "normal" as const,
55
+ },
56
+ ],
71
57
  };
72
58
 
73
59
  const NOTO_SANS_KR = {
74
- name: 'Noto Sans KR',
60
+ name: "Noto Sans KR",
75
61
  fonts: [
76
62
  {
77
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoSansKR-VariableFont_wght.ttf`,
78
- subFamily: 'Regular',
79
- weight: 'normal' as const,
80
- style: 'normal' as const
81
- }
82
- ]
63
+ uri: new URL("./assets/NotoSansKR-VariableFont_wght.ttf", import.meta.url)
64
+ .href,
65
+ subFamily: "Regular",
66
+ weight: "normal" as const,
67
+ style: "normal" as const,
68
+ },
69
+ ],
83
70
  };
84
71
 
85
72
  // Layout configuration
86
73
  const LAYOUT = {
87
74
  PAGE: { width: 800, height: 1200 },
88
75
  TEXT: { x: 50, width: 700, defaultHeight: 140, fontSize: 20 },
89
- SPACING: { gap: 16, startY: 50 }
76
+ SPACING: { gap: 16, startY: 50 },
90
77
  };
91
78
 
92
79
  // Typeface interface
@@ -95,11 +82,12 @@ interface Typeface {
95
82
  fonts: Array<{
96
83
  uri: string;
97
84
  subFamily: string;
98
- weight: 'normal' | 'bold';
99
- style: 'normal' | 'italic';
85
+ weight: "normal" | "bold";
86
+ style: "normal" | "italic";
100
87
  }>;
101
88
  }
102
89
 
90
+ // Helper function to create text blocks
103
91
  function createTextBlock(
104
92
  engine: CreativeEngine,
105
93
  page: number,
@@ -107,211 +95,269 @@ function createTextBlock(
107
95
  typeface: Typeface,
108
96
  yPosition: number,
109
97
  height: number = LAYOUT.TEXT.defaultHeight,
110
- alignment: 'Left' | 'Center' | 'Right' = 'Left'
98
+ alignment: "Left" | "Center" | "Right" = "Left",
111
99
  ): void {
112
- const textBlock = engine.block.create('text');
113
- engine.block.setString(textBlock, 'text/text', text);
100
+ const textBlock = engine.block.create("text");
101
+ engine.block.setString(textBlock, "text/text", text);
102
+ engine.block.appendChild(page, textBlock);
114
103
  engine.block.setPositionX(textBlock, LAYOUT.TEXT.x);
115
104
  engine.block.setPositionY(textBlock, yPosition);
116
105
  engine.block.setWidth(textBlock, LAYOUT.TEXT.width);
117
106
  engine.block.setHeight(textBlock, height);
118
- engine.block.setFloat(textBlock, 'text/fontSize', LAYOUT.TEXT.fontSize);
107
+ engine.block.setFloat(textBlock, "text/fontSize", LAYOUT.TEXT.fontSize);
119
108
  engine.block.setTypeface(textBlock, typeface);
120
- if (alignment !== 'Left') {
121
- engine.block.setEnum(textBlock, 'text/horizontalAlignment', alignment);
109
+ if (alignment !== "Left") {
110
+ engine.block.setEnum(textBlock, "text/horizontalAlignment", alignment);
122
111
  }
123
- engine.block.appendChild(page, textBlock);
124
112
  }
125
113
 
126
- /**
127
- * CE.SDK Plugin: Text Language Support Guide
128
- *
129
- * Demonstrates multilingual text support:
130
- * - RTL text rendering (Arabic)
131
- * - Complex script support (Korean)
132
- * - Custom font loading for Unicode coverage
133
- * - Text alignment for different writing directions
134
- */
135
- class Example implements EditorPlugin {
136
- name = packageJson.name;
137
-
138
- version = packageJson.version;
139
-
140
- async initialize({ cesdk }: EditorPluginContext): Promise<void> {
141
- if (!cesdk) {
142
- throw new Error('CE.SDK instance is required for this plugin');
143
- }
144
- // Add custom multilingual fonts to asset library
145
- cesdk.engine.asset.addLocalSource('multilingual-typefaces');
146
-
147
- cesdk.engine.asset.addAssetToSource('multilingual-typefaces', {
148
- id: 'noto-naskh-arabic',
149
- label: { en: 'Noto Naskh Arabic' },
150
- payload: {
151
- typeface: {
152
- name: 'Noto Naskh Arabic',
153
- fonts: [
154
- {
155
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoNaskhArabic-Regular.ttf`,
156
- subFamily: 'Regular',
157
- weight: 'normal',
158
- style: 'normal'
159
- }
160
- ]
161
- }
162
- }
163
- });
164
-
165
- cesdk.engine.asset.addAssetToSource('multilingual-typefaces', {
166
- id: 'noto-sans-kr',
167
- label: { en: 'Noto Sans KR' },
168
- payload: {
169
- typeface: {
170
- name: 'Noto Sans KR',
171
- fonts: [
172
- {
173
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoSansKR-VariableFont_wght.ttf`,
174
- subFamily: 'Regular',
175
- weight: 'normal',
176
- style: 'normal'
177
- }
178
- ]
179
- }
180
- }
181
- });
182
-
183
- cesdk.ui.updateAssetLibraryEntry('ly.img.typefaces', {
184
- sourceIds: ['ly.img.typeface', 'multilingual-typefaces']
185
- });
186
-
187
- const engine = cesdk.engine;
188
-
189
- // Create a blank scene with a white canvas
190
- const scene = engine.scene.create();
191
- const page = engine.block.create('page');
192
- engine.block.setWidth(page, LAYOUT.PAGE.width);
193
- engine.block.setHeight(page, LAYOUT.PAGE.height);
194
- engine.block.appendChild(scene, page);
195
- engine.scene.zoomToBlock(page);
196
-
197
- // Create four text elements demonstrating multilingual font support
198
- const textElements = [
199
- { text: 'RTL Arabic', typeface: ROBOTO_BOLD, height: 140 },
200
- {
201
- text: 'هذا مثال.',
202
- typeface: NOTO_NASKH_ARABIC,
203
- height: 160,
204
- alignment: 'Right' as const
205
- },
206
- { text: 'Korean', typeface: ROBOTO_BOLD, height: 140 },
207
- { text: '이는 한 예입니다.', typeface: NOTO_SANS_KR, height: 140 }
208
- ];
209
-
210
- let currentY = LAYOUT.SPACING.startY;
211
- for (const element of textElements) {
212
- createTextBlock(
213
- engine,
214
- page,
215
- element.text,
216
- element.typeface,
217
- currentY,
218
- element.height,
219
- element.alignment
220
- );
221
- currentY += element.height + LAYOUT.SPACING.gap;
222
- }
114
+ // Initialize CE.SDK engine in headless mode
115
+ const engine = await CreativeEngine.init({
116
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
117
+ // license: process.env.CESDK_LICENSE, // Optional (trial mode available)
118
+ });
119
+
120
+ // Create a design scene with specific page dimensions
121
+ engine.scene.create("VerticalStack", {
122
+ page: { size: { width: LAYOUT.PAGE.width, height: LAYOUT.PAGE.height } },
123
+ });
124
+ const page = engine.block.findByType("page")[0];
125
+
126
+ try {
127
+ // Create four text elements demonstrating multilingual font support
128
+ const textElements = [
129
+ { text: "RTL Arabic", typeface: ROBOTO_BOLD, height: 140 },
130
+ {
131
+ text: "هذا مثال.",
132
+ typeface: NOTO_NASKH_ARABIC,
133
+ height: 160,
134
+ alignment: "Right" as const,
135
+ },
136
+ { text: "Korean", typeface: ROBOTO_BOLD, height: 140 },
137
+ { text: "이는 한 예입니다.", typeface: NOTO_SANS_KR, height: 140 },
138
+ ];
139
+
140
+ let currentY = LAYOUT.SPACING.startY;
141
+ for (const element of textElements) {
142
+ createTextBlock(
143
+ engine,
144
+ page,
145
+ element.text,
146
+ element.typeface,
147
+ currentY,
148
+ element.height,
149
+ element.alignment,
150
+ );
151
+ currentY += element.height + LAYOUT.SPACING.gap;
152
+ }
153
+
154
+ // Zoom to show all content
155
+ engine.scene.zoomToBlock(page, { padding: 40 });
156
+
157
+ // Export the scene to PNG
158
+ const blob = await engine.block.export(page, { mimeType: "image/png" });
159
+ const buffer = Buffer.from(await blob.arrayBuffer());
160
+
161
+ // Ensure output directory exists
162
+ if (!existsSync("output")) {
163
+ mkdirSync("output");
223
164
  }
165
+
166
+ // Save to file
167
+ writeFileSync("output/text-language-support.png", buffer);
168
+ console.log(
169
+ "✅ Exported multilingual text to output/text-language-support.png",
170
+ );
171
+ } finally {
172
+ engine.dispose();
224
173
  }
174
+ ```
175
+
176
+ This guide covers headless rendering of RTL text, font configuration for different scripts, complex script support, and variable bindings for multilingual content.
177
+
178
+ ## Initialize Headless Engine
225
179
 
226
- export default Example;
180
+ We initialize CE.SDK in headless mode for server-side text processing. The engine provides the same text rendering capabilities as the browser version but optimized for programmatic usage and image export.
181
+
182
+ ```typescript highlight-setup
183
+ // Initialize CE.SDK engine in headless mode
184
+ const engine = await CreativeEngine.init({
185
+ baseURL: process.env.IMGLY_LOCAL_ASSETS_URL,
186
+ // license: process.env.CESDK_LICENSE, // Optional (trial mode available)
187
+ });
188
+
189
+ // Create a design scene with specific page dimensions
190
+ engine.scene.create("VerticalStack", {
191
+ page: { size: { width: LAYOUT.PAGE.width, height: LAYOUT.PAGE.height } },
192
+ });
193
+ const page = engine.block.findByType("page")[0];
227
194
  ```
228
195
 
229
- This guide covers how to work with multilingual text using both the built-in text UI and programmatic APIs for font configuration, text direction, and dynamic language content.
196
+ The headless engine creates scenes programmatically and exports designs to PNG, PDF, or other formats without browser dependencies.
197
+
198
+ ## Right-to-Left Text Detection
199
+
200
+ We create text blocks with RTL content and the engine automatically detects text direction based on Unicode character properties. CE.SDK implements the Unicode Bidirectional Algorithm (UAX #9) to handle RTL languages like Arabic, Hebrew, Persian, and Urdu.
230
201
 
231
- ## Programmatic Font and Typeface Management
202
+ ```typescript highlight-apply-fonts
203
+ // Create four text elements demonstrating multilingual font support
204
+ const textElements = [
205
+ { text: "RTL Arabic", typeface: ROBOTO_BOLD, height: 140 },
206
+ {
207
+ text: "هذا مثال.",
208
+ typeface: NOTO_NASKH_ARABIC,
209
+ height: 160,
210
+ alignment: "Right" as const,
211
+ },
212
+ { text: "Korean", typeface: ROBOTO_BOLD, height: 140 },
213
+ { text: "이는 한 예입니다.", typeface: NOTO_SANS_KR, height: 140 },
214
+ ];
215
+
216
+ let currentY = LAYOUT.SPACING.startY;
217
+ for (const element of textElements) {
218
+ createTextBlock(
219
+ engine,
220
+ page,
221
+ element.text,
222
+ element.typeface,
223
+ currentY,
224
+ element.height,
225
+ element.alignment,
226
+ );
227
+ currentY += element.height + LAYOUT.SPACING.gap;
228
+ }
229
+ ```
232
230
 
233
- ### Initialize CE.SDK
231
+ The engine analyzes strong directional characters to determine text flow. Arabic and Hebrew letters establish right-to-left direction automatically. Mixed content with embedded LTR words renders correctly without additional configuration.
234
232
 
235
- For applications that need to manage multilingual text programmatically, we start by setting up CE.SDK and creating a scene.
233
+ ## Text Alignment for RTL Scripts
236
234
 
237
- ```typescript highlight-setup
238
- // Create a blank scene with a white canvas
239
- const scene = engine.scene.create();
240
- const page = engine.block.create('page');
241
- engine.block.setWidth(page, LAYOUT.PAGE.width);
242
- engine.block.setHeight(page, LAYOUT.PAGE.height);
243
- engine.block.appendChild(scene, page);
244
- engine.scene.zoomToBlock(page);
235
+ CE.SDK defaults to 'Auto' alignment, which automatically aligns text based on script direction. RTL scripts (Arabic, Hebrew) align right, while LTR scripts align left. This eliminates the need to manually configure alignment for different writing systems.
236
+
237
+ ```typescript highlight-text-alignment
238
+ if (alignment !== "Left") {
239
+ engine.block.setEnum(textBlock, "text/horizontalAlignment", alignment);
240
+ }
245
241
  ```
246
242
 
247
- This creates a blank 800×1200px canvas that we'll use for demonstrating multilingual text features.
243
+ The alignment options:
248
244
 
249
- ### Configuring Typefaces for Language Support
245
+ - **'Auto'** (default) - Automatically aligns based on the text's script direction. RTL scripts align right, LTR scripts align left.
246
+ - **'Left'** - Always align text to the left
247
+ - **'Right'** - Always align text to the right
248
+ - **'Center'** - Center-align text (language-neutral)
249
+
250
+ With 'Auto' alignment, the Arabic text in our example automatically aligns to the right without explicit configuration:
251
+
252
+ ```typescript
253
+ {
254
+ text: "هذا مثال.",
255
+ typeface: NOTO_NASKH_ARABIC,
256
+ height: 160,
257
+ // No alignment needed - Auto handles RTL automatically
258
+ }
259
+ ```
260
+
261
+ You can still override alignment when needed:
262
+
263
+ ```typescript
264
+ {
265
+ text: "Centered Title",
266
+ typeface: ROBOTO_BOLD,
267
+ height: 80,
268
+ alignment: "Center" as const // Override Auto for centering
269
+ }
270
+ ```
271
+
272
+ To check the effective alignment when 'Auto' is set, use `getTextEffectiveHorizontalAlignment()`:
273
+
274
+ ```typescript
275
+ const effectiveAlignment = engine.block.getTextEffectiveHorizontalAlignment(textBlock);
276
+ // Returns 'Left' or 'Right' based on text content, never 'Auto'
277
+ ```
278
+
279
+ This approach simplifies multilingual templates - the same template works correctly for both LTR and RTL languages without alignment adjustments.
280
+
281
+ ## Font Configuration for Language Support
250
282
 
251
283
  To support specific languages and scripts, we define typefaces as constants with appropriate Unicode coverage. This example uses a constants-based approach for reusable typeface definitions that can be referenced throughout the code.
252
284
 
253
285
  ```typescript highlight-configure-fonts
254
286
  // Typeface definitions
255
287
  const ROBOTO_BOLD = {
256
- name: 'Roboto',
288
+ name: "Roboto",
257
289
  fonts: [
258
290
  {
259
- uri: 'https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vAw.ttf',
260
- subFamily: 'Bold',
261
- weight: 'bold' as const,
262
- style: 'normal' as const
263
- }
264
- ]
291
+ uri: "https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vAw.ttf",
292
+ subFamily: "Bold",
293
+ weight: "bold" as const,
294
+ style: "normal" as const,
295
+ },
296
+ ],
265
297
  };
266
298
 
267
299
  const NOTO_NASKH_ARABIC = {
268
- name: 'Noto Naskh Arabic',
300
+ name: "Noto Naskh Arabic",
269
301
  fonts: [
270
302
  {
271
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoNaskhArabic-Regular.ttf`,
272
- subFamily: 'Regular',
273
- weight: 'normal' as const,
274
- style: 'normal' as const
275
- }
276
- ]
303
+ uri: new URL("./assets/NotoNaskhArabic-Regular.ttf", import.meta.url)
304
+ .href,
305
+ subFamily: "Regular",
306
+ weight: "normal" as const,
307
+ style: "normal" as const,
308
+ },
309
+ ],
277
310
  };
278
311
 
279
312
  const NOTO_SANS_KR = {
280
- name: 'Noto Sans KR',
313
+ name: "Noto Sans KR",
281
314
  fonts: [
282
315
  {
283
- uri: `${window.location.origin}${import.meta.env.BASE_URL}NotoSansKR-VariableFont_wght.ttf`,
284
- subFamily: 'Regular',
285
- weight: 'normal' as const,
286
- style: 'normal' as const
287
- }
288
- ]
316
+ uri: new URL("./assets/NotoSansKR-VariableFont_wght.ttf", import.meta.url)
317
+ .href,
318
+ subFamily: "Regular",
319
+ weight: "normal" as const,
320
+ style: "normal" as const,
321
+ },
322
+ ],
289
323
  };
290
324
  ```
291
325
 
292
326
  The example defines three typefaces as named constants:
293
327
 
294
- - **ROBOTO_BOLD** - A web font for Latin script labels
295
- - **NOTO_NASKH_ARABIC** - Optimized for Arabic script with proper contextual forms
296
- - **NOTO_SANS_KR** - Variable font supporting Korean (Hangul) characters
328
+ - **ROBOTO\_BOLD** - A web font for Latin script labels
329
+ - **NOTO\_NASKH\_ARABIC** - Optimized for Arabic script with proper contextual forms
330
+ - **NOTO\_SANS\_KR** - Variable font supporting Korean (Hangul) characters
297
331
 
298
332
  Each typeface includes:
299
333
 
300
334
  - **name** - The typeface family name
301
335
  - **fonts** - Array of font objects with URIs and styles
302
- - **uri** - Path to font file (TTF, OTF, WOFF2 formats supported)
336
+ - **uri** - Path to font file (uses `new URL()` with `import.meta.url` for local assets)
303
337
  - **weight** - Font weight (normal, bold, or numeric values)
304
338
  - **style** - Font style (normal or italic)
305
339
 
340
+ Defining typefaces as constants provides several benefits:
341
+
342
+ - **Reusability** - Reference the same typeface multiple times without duplication
343
+ - **Maintainability** - Update font URIs or properties in one location
344
+ - **Type safety** - TypeScript can infer and validate typeface structure
345
+ - **Clarity** - Clear semantic names indicate which script each font supports
346
+
306
347
  > **Note:** CE.SDK uses system fonts with Unicode support by default. Custom typefaces
307
348
  > are useful when you need specific brand fonts or enhanced coverage for
308
349
  > particular scripts.
309
350
 
310
- ### Applying Fonts with a Helper Function
351
+ ## Applying Fonts Programmatically
352
+
353
+ Instead of manually configuring each text block, this example uses a helper function and data-driven approach to apply fonts efficiently.
311
354
 
312
- The `createTextBlock()` function encapsulates all text block setup logic, reducing code duplication. Text elements are defined as an array and processed in a loop:
355
+ ### Helper Function
356
+
357
+ The `createTextBlock()` function encapsulates all text block setup logic, reducing code duplication:
313
358
 
314
359
  ```typescript highlight-helper-function
360
+ // Helper function to create text blocks
315
361
  function createTextBlock(
316
362
  engine: CreativeEngine,
317
363
  page: number,
@@ -319,189 +365,110 @@ function createTextBlock(
319
365
  typeface: Typeface,
320
366
  yPosition: number,
321
367
  height: number = LAYOUT.TEXT.defaultHeight,
322
- alignment: 'Left' | 'Center' | 'Right' = 'Left'
368
+ alignment: "Left" | "Center" | "Right" = "Left",
323
369
  ): void {
324
- const textBlock = engine.block.create('text');
325
- engine.block.setString(textBlock, 'text/text', text);
370
+ const textBlock = engine.block.create("text");
371
+ engine.block.setString(textBlock, "text/text", text);
372
+ engine.block.appendChild(page, textBlock);
326
373
  engine.block.setPositionX(textBlock, LAYOUT.TEXT.x);
327
374
  engine.block.setPositionY(textBlock, yPosition);
328
375
  engine.block.setWidth(textBlock, LAYOUT.TEXT.width);
329
376
  engine.block.setHeight(textBlock, height);
330
- engine.block.setFloat(textBlock, 'text/fontSize', LAYOUT.TEXT.fontSize);
377
+ engine.block.setFloat(textBlock, "text/fontSize", LAYOUT.TEXT.fontSize);
331
378
  engine.block.setTypeface(textBlock, typeface);
332
- if (alignment !== 'Left') {
333
- engine.block.setEnum(textBlock, 'text/horizontalAlignment', alignment);
379
+ if (alignment !== "Left") {
380
+ engine.block.setEnum(textBlock, "text/horizontalAlignment", alignment);
334
381
  }
335
- engine.block.appendChild(page, textBlock);
336
382
  }
337
383
  ```
338
384
 
339
- ```typescript highlight-apply-fonts
340
- // Create four text elements demonstrating multilingual font support
341
- const textElements = [
342
- { text: 'RTL Arabic', typeface: ROBOTO_BOLD, height: 140 },
343
- {
344
- text: 'هذا مثال.',
345
- typeface: NOTO_NASKH_ARABIC,
346
- height: 160,
347
- alignment: 'Right' as const
348
- },
349
- { text: 'Korean', typeface: ROBOTO_BOLD, height: 140 },
350
- { text: '이는 한 예입니다.', typeface: NOTO_SANS_KR, height: 140 }
351
- ];
352
-
353
- let currentY = LAYOUT.SPACING.startY;
354
- for (const element of textElements) {
355
- createTextBlock(
356
- engine,
357
- page,
358
- element.text,
359
- element.typeface,
360
- currentY,
361
- element.height,
362
- element.alignment
363
- );
364
- currentY += element.height + LAYOUT.SPACING.gap;
365
- }
366
- ```
367
-
368
- This approach provides several benefits:
369
-
370
- - **DRY Principle** - Eliminates repetitive block setup code
371
- - **Easy to Extend** - Add new languages by appending to the configuration array
372
- - **Maintainable** - Change layout spacing or dimensions in one place
373
-
374
- The `engine.block.setTypeface()` method applies fonts at the block level. CE.SDK automatically uses the configured fonts to render text with proper glyph coverage for the languages in your content.
385
+ This function handles:
375
386
 
376
- ## Working with Right-to-Left (RTL) Text
387
+ - Creating text blocks
388
+ - Setting text content and styling
389
+ - Applying typefaces
390
+ - Positioning and sizing
391
+ - Conditional alignment (only when not 'Left')
377
392
 
378
- ### Understanding Automatic RTL Detection
393
+ ### Data-Driven Configuration
379
394
 
380
- CE.SDK automatically detects text direction based on Unicode character properties. When you create a text block with RTL content like Arabic or Hebrew, the engine analyzes the text and applies right-to-left rendering automatically.
395
+ Text elements are defined as an array and processed in a loop:
381
396
 
382
397
  ```typescript highlight-apply-fonts
383
- // Create four text elements demonstrating multilingual font support
384
- const textElements = [
385
- { text: 'RTL Arabic', typeface: ROBOTO_BOLD, height: 140 },
386
- {
387
- text: 'هذا مثال.',
388
- typeface: NOTO_NASKH_ARABIC,
389
- height: 160,
390
- alignment: 'Right' as const
391
- },
392
- { text: 'Korean', typeface: ROBOTO_BOLD, height: 140 },
393
- { text: '이는 한 예입니다.', typeface: NOTO_SANS_KR, height: 140 }
394
- ];
395
-
396
- let currentY = LAYOUT.SPACING.startY;
397
- for (const element of textElements) {
398
- createTextBlock(
399
- engine,
400
- page,
401
- element.text,
402
- element.typeface,
403
- currentY,
404
- element.height,
405
- element.alignment
406
- );
407
- currentY += element.height + LAYOUT.SPACING.gap;
408
- }
409
- ```
410
-
411
- The engine implements the Unicode Bidirectional Algorithm (UAX #9), which:
412
-
413
- - **Detects strong directional characters** - Characters like Arabic or Hebrew letters establish RTL flow
414
- - **Handles neutral characters** - Spaces, punctuation, and numbers display correctly in context
415
- - **Manages embedding** - LTR words (like English brand names) embed correctly within RTL text
416
-
417
- This automatic detection works for:
418
-
419
- - **Arabic** - Including Persian and Urdu variants
420
- - **Hebrew** - Modern and Biblical Hebrew
421
- - **Mixed content** - English or other LTR text within RTL paragraphs
422
-
423
- ### Text Alignment for RTL Languages
424
-
425
- CE.SDK now defaults to 'Auto' alignment, which automatically aligns text based on script direction. RTL scripts (Arabic, Hebrew) align right, while LTR scripts align left. This eliminates the need to manually configure alignment for different writing systems.
426
-
427
- ```typescript highlight-text-alignment
428
- if (alignment !== 'Left') {
429
- engine.block.setEnum(textBlock, 'text/horizontalAlignment', alignment);
430
- }
398
+ // Create four text elements demonstrating multilingual font support
399
+ const textElements = [
400
+ { text: "RTL Arabic", typeface: ROBOTO_BOLD, height: 140 },
401
+ {
402
+ text: "هذا مثال.",
403
+ typeface: NOTO_NASKH_ARABIC,
404
+ height: 160,
405
+ alignment: "Right" as const,
406
+ },
407
+ { text: "Korean", typeface: ROBOTO_BOLD, height: 140 },
408
+ { text: "이는 한 예입니다.", typeface: NOTO_SANS_KR, height: 140 },
409
+ ];
410
+
411
+ let currentY = LAYOUT.SPACING.startY;
412
+ for (const element of textElements) {
413
+ createTextBlock(
414
+ engine,
415
+ page,
416
+ element.text,
417
+ element.typeface,
418
+ currentY,
419
+ element.height,
420
+ element.alignment,
421
+ );
422
+ currentY += element.height + LAYOUT.SPACING.gap;
423
+ }
431
424
  ```
432
425
 
433
- The alignment options:
434
-
435
- - **'Auto'** (default) - Automatically aligns based on the text's script direction. RTL scripts align right, LTR scripts align left.
436
- - **'Left'** - Always align text to the left
437
- - **'Right'** - Always align text to the right
438
- - **'Center'** - Center-align text (language-neutral)
439
-
440
- With 'Auto' alignment, the Arabic text in our example automatically aligns to the right without explicit configuration:
426
+ This approach uses three key patterns:
441
427
 
442
- ```typescript
443
- {
444
- text: 'هذا مثال.',
445
- typeface: NOTO_NASKH_ARABIC,
446
- height: 160,
447
- // No alignment needed - Auto handles RTL automatically
448
- }
449
- ```
428
+ **1. Helper Function** - The `createTextBlock()` function creates and configures a text block with a single call. As a standalone function (not a class method), it takes the engine instance as the first parameter. Other parameters include text content, typeface, position, height, and optional alignment.
450
429
 
451
- You can still override alignment when needed:
430
+ **2. Data-Driven Configuration** - Text elements are defined as an array of objects specifying content, typeface, height, and alignment. This declarative approach makes it easy to see all elements at a glance and modify them as needed.
452
431
 
453
- ```typescript
454
- {
455
- text: 'Centered Title',
456
- typeface: ROBOTO_BOLD,
457
- height: 80,
458
- alignment: 'Center' as const // Override Auto for centering
459
- }
460
- ```
432
+ **3. Loop-Based Creation** - A for loop iterates through the configuration array, automatically calculating Y positions and creating each text block. The `currentY` variable tracks vertical position and updates after each element.
461
433
 
462
- To check the effective alignment when 'Auto' is set, use `getTextEffectiveHorizontalAlignment()`:
434
+ Benefits of this pattern:
463
435
 
464
- ```typescript
465
- const effectiveAlignment =
466
- engine.block.getTextEffectiveHorizontalAlignment(textBlock);
467
- // Returns 'Left' or 'Right' based on text content, never 'Auto'
468
- ```
436
+ - **DRY Principle** - Eliminates repetitive block setup code
437
+ - **Easy to Extend** - Add new languages by appending to the configuration array
438
+ - **Maintainable** - Change layout spacing or dimensions in one place
439
+ - **Educational** - Demonstrates best practices for managing multiple similar elements
469
440
 
470
- This approach simplifies multilingual templates - the same template works correctly for both LTR and RTL languages without alignment adjustments.
441
+ The `engine.block.setTypeface()` method applies fonts at the block level. CE.SDK automatically uses the configured fonts to render text with proper glyph coverage for the languages in your content.
471
442
 
472
443
  ## Complex Script Support
473
444
 
474
- CE.SDK automatically handles complex script features without requiring additional configuration. The text engine provides:
445
+ CE.SDK automatically handles complex script features without additional configuration. The text engine provides script-aware text shaping that applies:
475
446
 
476
447
  ### Arabic Script Features
477
448
 
478
- When rendering Arabic text, the engine automatically applies:
449
+ The engine automatically applies Arabic-specific rendering:
479
450
 
480
451
  - **Contextual letter forms** - Letters change shape based on position (initial, medial, final, isolated)
481
452
  - **Required ligatures** - Mandatory character combinations render as single glyphs
482
453
  - **Diacritical marks** - Tashkeel marks position correctly above and below letters
483
454
  - **Kashida** - Text justification through letter elongation
484
455
 
485
- These features work automatically when you use fonts that include the necessary OpenType tables.
486
-
487
456
  ### Other Complex Scripts
488
457
 
489
- The text engine similarly supports other writing systems:
458
+ The text engine supports additional writing systems:
490
459
 
491
460
  - **Devanagari** (Hindi, Sanskrit) - Conjunct formations and half-forms
492
461
  - **Thai** - Vowel and tone mark positioning above and below base characters
493
462
  - **Japanese** - Kanji, hiragana, and katakana rendering
494
463
  - **Southeast Asian scripts** - Khmer subscripts, Myanmar ligatures
495
464
 
496
- All complex script features are applied automatically based on Unicode properties and font capabilities.
497
-
498
- ## Creating Multilingual Design Templates
465
+ All complex script features apply automatically based on Unicode properties and font capabilities.
499
466
 
500
- ### Using Variables for Multilingual Content
467
+ ## Variables for Multilingual Content
501
468
 
502
- For designs that need to display different language content dynamically, use variable bindings. Variables enable you to switch languages while maintaining proper text rendering for each script.
469
+ We use variable bindings to create dynamic multilingual content. Variables enable language switching while maintaining proper text rendering for each script.
503
470
 
504
- Benefits of using variables:
471
+ Variable benefits:
505
472
 
506
473
  - **Dynamic language switching** - Update variable values to change content language
507
474
  - **Consistent formatting** - Text styling and layout remain stable across languages
@@ -509,43 +476,61 @@ Benefits of using variables:
509
476
 
510
477
  Variables are particularly useful for:
511
478
 
512
- - **Localized marketing materials** - Same design, different language content
479
+ - **Localized materials** - Same design, different language content
513
480
  - **A/B testing** - Test messaging across languages
514
481
  - **Regional campaigns** - Deploy region-specific content from a single template
515
482
 
516
- ### Template Design Considerations
483
+ ## Mixed-Direction Text
517
484
 
518
- When designing multilingual templates, account for:
485
+ The engine handles mixed-direction text automatically through the Unicode Bidirectional Algorithm. LTR and RTL content coexist correctly within the same text block.
519
486
 
520
- - **Text expansion** - Some languages require 30-50% more space than English
521
- - **Direction changes** - RTL layouts may need mirrored designs
522
- - **Font availability** - Ensure typefaces cover all target scripts
523
- - **Line height** - Scripts with diacritics may need additional vertical space
487
+ When we create text mixing English (LTR) with Arabic or Hebrew (RTL), the engine:
524
488
 
525
- Test templates with representative content in all target languages to verify layout works correctly.
526
-
527
- ## Font Fallback and Character Coverage
528
-
529
- ### Font Selection Priority
489
+ - **Detects strong directional characters** - Establishes text flow based on Unicode BiDi class
490
+ - **Handles neutral characters** - Spaces, punctuation, and numbers display correctly in context
491
+ - **Manages embedding** - LTR words embed correctly within RTL paragraphs
530
492
 
531
- When rendering text, CE.SDK follows a fallback chain to ensure all characters display correctly:
493
+ The engine resolves bidirectional layout automatically without requiring Unicode directional formatting characters.
532
494
 
533
- 1. **Primary typeface** - The explicitly assigned font
534
- 2. **System fonts** - Fonts available on the user's system
535
- 3. **Fallback glyphs** - Generic replacement characters when no font contains the glyph
495
+ ## Exporting Multilingual Designs
536
496
 
537
- This fallback system ensures text always renders, even when fonts lack specific characters.
497
+ We export scenes to various formats using `engine.block.export()`. The headless engine supports PNG, JPEG, PDF, and other formats for programmatic image generation.
538
498
 
539
- ### Ensuring Complete Character Coverage
499
+ ```typescript highlight-export
500
+ // Export the scene to PNG
501
+ const blob = await engine.block.export(page, { mimeType: "image/png" });
502
+ const buffer = Buffer.from(await blob.arrayBuffer());
540
503
 
541
- To avoid missing glyph issues:
504
+ // Ensure output directory exists
505
+ if (!existsSync("output")) {
506
+ mkdirSync("output");
507
+ }
542
508
 
543
- - **Use comprehensive typefaces** - Noto fonts family provides extensive Unicode coverage
544
- - **Test with target languages** - Verify fonts include required scripts before deployment
545
- - **Configure fallback stacks** - Define multiple typefaces for comprehensive coverage
546
- - **Check font formats** - Ensure fonts include OpenType layout tables for complex scripts
509
+ // Save to file
510
+ writeFileSync("output/text-language-support.png", buffer);
511
+ console.log(
512
+ "✅ Exported multilingual text to output/text-language-support.png",
513
+ );
514
+ ```
547
515
 
548
- Testing with representative text samples in all target languages helps identify coverage gaps before production.
516
+ Exported images preserve all multilingual text rendering including RTL layout, complex scripts, and mixed-direction content. This enables automated generation of localized designs for global markets.
517
+
518
+ ## API Reference
519
+
520
+ | Method | Purpose |
521
+ |--------|---------|
522
+ | `engine.block.create('text')` | Create text block for multilingual content |
523
+ | `engine.block.setString(id, 'text/text', value)` | Set text content in any language |
524
+ | `engine.block.getString(id, 'text/text')` | Get text content |
525
+ | `engine.block.setEnum(id, 'text/horizontalAlignment', value)` | Set horizontal text alignment (Auto, Left, Right, Center) |
526
+ | `engine.block.getEnum(id, 'text/horizontalAlignment')` | Get horizontal text alignment |
527
+ | `engine.block.getTextEffectiveHorizontalAlignment(id)` | Get resolved alignment (Auto resolves to Left or Right) |
528
+ | `engine.block.setTypeface()` | Apply typeface to text block |
529
+ | `engine.block.getTypeface()` | Get current typeface of text block |
530
+ | `engine.block.setFloat(id, 'text/fontSize', value)` | Set font size |
531
+ | `engine.block.setTextColor()` | Set color for character range |
532
+ | `engine.variable.setString()` | Create or update text variable for multilingual content |
533
+ | `engine.block.export()` | Export block or scene to various formats |
549
534
 
550
535
  ## Troubleshooting
551
536
 
@@ -553,10 +538,10 @@ Testing with representative text samples in all target languages helps identify
553
538
 
554
539
  **Issue**: Characters render as replacement glyphs (□ or ?) instead of the intended script.
555
540
 
556
- **Solution**: The selected font lacks glyphs for the text content. Use fonts with appropriate Unicode coverage:
541
+ **Solution**: The font lacks glyphs for the text content. Use fonts with appropriate Unicode coverage:
557
542
 
558
543
  - Verify font supports required Unicode blocks
559
- - Test with Noto fonts family for comprehensive coverage
544
+ - Use Noto fonts family for comprehensive coverage
560
545
  - Check font file format compatibility (TTF, OTF, WOFF2)
561
546
  - Ensure font files are accessible with correct URIs
562
547
 
@@ -569,36 +554,38 @@ Testing with representative text samples in all target languages helps identify
569
554
  - Verify alignment is set to 'Auto' (default) or explicitly 'Right'
570
555
  - Use `engine.block.getTextEffectiveHorizontalAlignment(block)` to check resolved alignment
571
556
  - Verify font includes bidirectional layout features
572
- - Check that font supports RTL scripts
573
557
  - Test with known RTL-compatible fonts (Noto Sans Arabic, Noto Sans Hebrew)
558
+ - Check that text content includes strong RTL directional characters
574
559
 
575
- ### Ligatures or Diacritics Display Incorrectly
560
+ ### Complex Script Features Display Incorrectly
576
561
 
577
- **Issue**: Complex script features like ligatures or diacritical marks appear disconnected or mispositioned.
562
+ **Issue**: Ligatures or diacritical marks appear disconnected or mispositioned.
578
563
 
579
564
  **Solution**: Use fonts specifically designed for the target script:
580
565
 
581
566
  - Verify font includes GSUB/GPOS OpenType tables
582
567
  - Use script-specific Noto fonts
583
568
  - Check font includes required OpenType layout features
584
- - Test with fonts known to support the script
569
+ - Ensure font supports the specific script's shaping requirements
570
+
571
+ ### Variable Substitution Not Working
572
+
573
+ **Issue**: Variable placeholders like `{{variable}}` display literally instead of substituting values.
585
574
 
586
- ### Mixed-Direction Text Layout Issues
575
+ **Solution**: Ensure variables are defined before creating text blocks:
587
576
 
588
- **Issue**: Text with both LTR and RTL content displays incorrectly.
577
+ - Call `engine.variable.setString()` before setting text content
578
+ - Verify variable names match exactly (case-sensitive)
579
+ - Check variable placeholders use double curly braces `{{name}}`
580
+ - Confirm variables are set in the same engine instance
589
581
 
590
- **Solution**: The engine's automatic bidirectional handling should resolve most cases. If issues persist:
591
582
 
592
- - Test with different fonts to verify bidirectional support
593
- - Use Unicode directional formatting characters sparingly (RLM U+200F, LRM U+200E)
594
- - Verify text editor preserves directional markers
595
- - Check that text content includes proper strong directional characters
596
583
 
597
584
  ---
598
585
 
599
586
  ## More Resources
600
587
 
601
- - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
588
+ - **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
602
589
  - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
603
- - **[Web Documentation](./js.md)** - Interactive documentation with examples
604
- - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
590
+ - **[Web Documentation](./node.md)** - Interactive documentation with examples
591
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support