@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
@@ -14,7 +14,6 @@ export(handle: DesignBlockId, options?: ExportOptions): Promise<Blob>
14
14
  ```
15
15
 
16
16
  **Parameters:**
17
-
18
17
  - `handle` - The design block element to export.
19
18
  - `options` - The options for exporting the block type, including mime type and export settings.
20
19
 
@@ -30,7 +29,6 @@ exportWithColorMask(handle: DesignBlockId, maskColorR: number, maskColorG: numbe
30
29
  ```
31
30
 
32
31
  **Parameters:**
33
-
34
32
  - `handle` - The design block element to export.
35
33
  - `maskColorR` - The red component of the special color mask color.
36
34
  - `maskColorG` - The green component of the special color mask color.
@@ -49,7 +47,6 @@ exportVideo(handle: DesignBlockId, options?: VideoExportOptions): Promise<Blob>
49
47
  ```
50
48
 
51
49
  **Parameters:**
52
-
53
50
  - `handle` - The design block element to export. Currently, only page blocks are supported.
54
51
  - `options` - The options for exporting the video, including mime type, h264 profile, level, bitrate, time offset, duration, framerate, target width and height.
55
52
 
@@ -64,12 +61,33 @@ exportAudio(handle: DesignBlockId, options?: AudioExportOptions): Promise<Blob>
64
61
  ```
65
62
 
66
63
  **Parameters:**
67
-
68
64
  - `handle` - The design block element to export. Currently, only audio blocks are supported.
69
65
  - `options` - The options for exporting the audio, including mime type, progress callback, and export settings.
70
66
 
71
67
  **Returns:** A promise that resolves with an audio blob or is rejected with an error.
72
68
 
69
+ ## Block Analysis
70
+
71
+ ### getDominantColors()
72
+
73
+ Extracts the dominant colors from the rendered appearance of a block.
74
+ Performs an internal update to resolve the final layout for the block. Will not
75
+ complete as long as assets are in a pending state; asset loading progresses during
76
+ engine updates. Crops, color adjustments, and effects applied to the block are
77
+ reflected in the returned palette. Fully or mostly transparent pixels are excluded
78
+ from the analysis.
79
+
80
+ ```typescript
81
+ getDominantColors(handle: DesignBlockId, options?: DominantColorsOptions): Promise<DominantColor[]>
82
+ ```
83
+
84
+ **Parameters:**
85
+ - `handle` - The design block element to analyze. Must be attached to a scene
86
+ and render visible content.
87
+ - `options` - See `DominantColorsOptions`.
88
+
89
+ **Returns:** A promise that resolves with the dominant colors sorted by weight, descending.
90
+
73
91
  ## Block Lifecycle
74
92
 
75
93
  Manage the complete lifecycle: create, find, duplicate, destroy, and serialize blocks.
@@ -85,7 +103,6 @@ loadFromString(content: string): Promise<DesignBlockId[]>
85
103
  ```
86
104
 
87
105
  **Parameters:**
88
-
89
106
  - `content` - A string representing the given blocks.
90
107
 
91
108
  **Returns:** A promise that resolves with a list of handles representing the found blocks or an error.
@@ -102,7 +119,6 @@ loadFromArchiveURL(url: string): Promise<DesignBlockId[]>
102
119
  ```
103
120
 
104
121
  **Parameters:**
105
-
106
122
  - `url` - The URL of the blocks archive file.
107
123
 
108
124
  **Returns:** A promise that resolves with a list of handles representing the found blocks or an error.
@@ -119,7 +135,6 @@ loadFromURL(url: string): Promise<DesignBlockId[]>
119
135
  ```
120
136
 
121
137
  **Parameters:**
122
-
123
138
  - `url` - The URL to the blocks file
124
139
 
125
140
  **Returns:** A promise that resolves with a list of block handles
@@ -134,13 +149,12 @@ saveToString(blocks: DesignBlockId[], allowedResourceSchemes?: string[], onDisal
134
149
  ```
135
150
 
136
151
  **Parameters:**
137
-
138
152
  - `blocks` - The blocks to save.
139
153
  - `allowedResourceSchemes` - The resource schemes to allow in the saved string. Defaults to ['buffer', 'http', 'https'].
140
154
  - `onDisallowedResourceScheme` - An optional callback that is called for each resource URL that has a scheme absent from
141
- `resourceSchemesAllowed`. The `url` parameter is the resource URL and the `dataHash` parameter is the hash of the
142
- resource's data. The callback should return a new URL for the resource, which will be used in the serialized
143
- scene. The callback is expected to return the original URL if no persistence is needed.
155
+ `resourceSchemesAllowed`. The `url` parameter is the resource URL and the `dataHash` parameter is the hash of the
156
+ resource's data. The callback should return a new URL for the resource, which will be used in the serialized
157
+ scene. The callback is expected to return the original URL if no persistence is needed.
144
158
 
145
159
  **Returns:** A promise that resolves to a string representing the blocks or an error.
146
160
 
@@ -155,7 +169,6 @@ saveToArchive(blocks: DesignBlockId[]): Promise<Blob>
155
169
  ```
156
170
 
157
171
  **Parameters:**
158
-
159
172
  - `blocks` - The blocks to save.
160
173
 
161
174
  **Returns:** A promise that resolves with a Blob on success or an error on failure.
@@ -163,7 +176,6 @@ saveToArchive(blocks: DesignBlockId[]): Promise<Blob>
163
176
  ### create()
164
177
 
165
178
  Creates a new block of a given type.
166
-
167
179
  ```javascript
168
180
  // Create a new text block
169
181
  const text = engine.block.create('text');
@@ -174,21 +186,13 @@ const image = engine.block.create('graphic');
174
186
  engine.block.setShape(image, engine.block.createShape('rect'));
175
187
  const imageFill = engine.block.createFill('image');
176
188
  engine.block.setFill(image, imageFill);
177
- engine.block.setString(
178
- imageFill,
179
- 'fill/image/imageFileURI',
180
- 'https://img.ly/static/ubq_samples/sample_1.jpg'
181
- );
189
+ engine.block.setString(imageFill, 'fill/image/imageFileURI', 'https://img.ly/static/ubq_samples/sample_1.jpg');
182
190
  engine.block.appendChild(page, image);
183
191
  // Create a new video block
184
192
  const video = engine.block.create('graphic');
185
193
  engine.block.setShape(video, engine.block.createShape('rect'));
186
194
  const videoFill = engine.block.createFill('video');
187
- engine.block.setString(
188
- videoFill,
189
- 'fill/video/fileURI',
190
- 'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4'
191
- );
195
+ engine.block.setString(videoFill, 'fill/video/fileURI', 'https://cdn.img.ly/assets/demo/v3/ly.img.video/videos/pexels-drone-footage-of-a-surfer-barrelling-a-wave-12715991.mp4');
192
196
  engine.block.setFill(video, videoFill);
193
197
  engine.block.appendChild(page, video);
194
198
  ```
@@ -198,7 +202,6 @@ create(type: DesignBlockType): DesignBlockId
198
202
  ```
199
203
 
200
204
  **Parameters:**
201
-
202
205
  - `type` - The type of the block that shall be created.
203
206
 
204
207
  **Returns:** The created block's handle.
@@ -212,7 +215,6 @@ duplicate(id: DesignBlockId, attachToParent?: boolean): DesignBlockId
212
215
  ```
213
216
 
214
217
  **Parameters:**
215
-
216
218
  - `id` - The block to duplicate.
217
219
  - `attachToParent` - Whether the duplicated block should be attached to the original's parent. Defaults to true.
218
220
 
@@ -227,21 +229,21 @@ destroy(id: DesignBlockId): void
227
229
  ```
228
230
 
229
231
  **Parameters:**
230
-
231
232
  - `id` - The block to destroy.
232
233
 
233
234
  ### forceLoadResources()
234
235
 
235
236
  Forces the loading of resources for a set of blocks and their children.
236
237
  This is useful for preloading resources. If a resource failed to load previously, it will be reloaded.
238
+ Pass an empty array to load resources for every block currently known to the engine.
237
239
 
238
240
  ```typescript
239
241
  forceLoadResources(ids: DesignBlockId[]): Promise<void>
240
242
  ```
241
243
 
242
244
  **Parameters:**
243
-
244
- - `ids` - The blocks whose resources should be loaded.
245
+ - `ids` - The blocks whose resources should be loaded. Pass an empty array to load resources for every
246
+ block currently known to the engine.
245
247
 
246
248
  **Returns:** A Promise that resolves once all resources have finished loading.
247
249
 
@@ -252,7 +254,6 @@ Create, configure, and manage block fills, including solid colors, gradients, an
252
254
  ### createFill()
253
255
 
254
256
  Creates a new fill block.
255
-
256
257
  ```javascript
257
258
  const solidColoFill = engine.block.createFill('color');
258
259
  // Longhand fill types are also supported
@@ -264,12 +265,11 @@ createFill(type: FillType): DesignBlockId
264
265
  ```
265
266
 
266
267
  **Parameters:**
267
-
268
268
  - `type` - The type of the fill object that shall be created.
269
269
 
270
270
  **Returns:** The created fill's handle.
271
271
 
272
- ### hasContentFillMode() _(deprecated)_
272
+ ### hasContentFillMode() *(deprecated)*
273
273
 
274
274
  Checks if a block supports content fill modes.
275
275
 
@@ -278,7 +278,6 @@ hasContentFillMode(id: DesignBlockId): boolean
278
278
  ```
279
279
 
280
280
  **Parameters:**
281
-
282
281
  - `id` - The block to query.
283
282
 
284
283
  **Returns:** true, if the block has a content fill mode.
@@ -292,7 +291,6 @@ supportsContentFillMode(id: DesignBlockId): boolean
292
291
  ```
293
292
 
294
293
  **Parameters:**
295
-
296
294
  - `id` - The block to query.
297
295
 
298
296
  **Returns:** true, if the block has a content fill mode.
@@ -300,7 +298,6 @@ supportsContentFillMode(id: DesignBlockId): boolean
300
298
  ### setContentFillMode()
301
299
 
302
300
  Sets the content fill mode of a block.
303
-
304
301
  ```javascript
305
302
  engine.block.setContentFillMode(image, 'Cover');
306
303
  ```
@@ -310,14 +307,12 @@ setContentFillMode(id: DesignBlockId, mode: ContentFillMode): void
310
307
  ```
311
308
 
312
309
  **Parameters:**
313
-
314
310
  - `id` - The block to update.
315
311
  - `mode` - The content fill mode: 'Crop', 'Cover' or 'Contain'.
316
312
 
317
313
  ### getContentFillMode()
318
314
 
319
315
  Gets the content fill mode of a block.
320
-
321
316
  ```javascript
322
317
  engine.block.getContentFillMode(image);
323
318
  ```
@@ -327,15 +322,79 @@ getContentFillMode(id: DesignBlockId): ContentFillMode
327
322
  ```
328
323
 
329
324
  **Parameters:**
330
-
331
325
  - `id` - The block to query.
332
326
 
333
327
  **Returns:** The current mode: 'Crop', 'Cover' or 'Contain'.
334
328
 
329
+ ### setContentFillHorizontalAlignment()
330
+
331
+ Sets the horizontal alignment of the content fill within a block.
332
+ Only affects 'Contain' and 'Cover' fill modes; has no visible effect in 'Crop' mode,
333
+ where the user positions the content explicitly.
334
+ ```javascript
335
+ engine.block.setContentFillHorizontalAlignment(image, 'Left');
336
+ ```
337
+
338
+ ```typescript
339
+ setContentFillHorizontalAlignment(id: DesignBlockId, alignment: HorizontalContentFillAlignment): void
340
+ ```
341
+
342
+ **Parameters:**
343
+ - `id` - The block to update.
344
+ - `alignment` - The horizontal alignment: 'Left', 'Center' or 'Right'.
345
+
346
+ ### getContentFillHorizontalAlignment()
347
+
348
+ Gets the horizontal alignment of the content fill within a block.
349
+ ```javascript
350
+ engine.block.getContentFillHorizontalAlignment(image);
351
+ ```
352
+
353
+ ```typescript
354
+ getContentFillHorizontalAlignment(id: DesignBlockId): HorizontalContentFillAlignment
355
+ ```
356
+
357
+ **Parameters:**
358
+ - `id` - The block to query.
359
+
360
+ **Returns:** The current alignment: 'Left', 'Center' or 'Right'.
361
+
362
+ ### setContentFillVerticalAlignment()
363
+
364
+ Sets the vertical alignment of the content fill within a block.
365
+ Only affects 'Contain' and 'Cover' fill modes; has no visible effect in 'Crop' mode,
366
+ where the user positions the content explicitly.
367
+ ```javascript
368
+ engine.block.setContentFillVerticalAlignment(image, 'Top');
369
+ ```
370
+
371
+ ```typescript
372
+ setContentFillVerticalAlignment(id: DesignBlockId, alignment: VerticalContentFillAlignment): void
373
+ ```
374
+
375
+ **Parameters:**
376
+ - `id` - The block to update.
377
+ - `alignment` - The vertical alignment: 'Top', 'Center' or 'Bottom'.
378
+
379
+ ### getContentFillVerticalAlignment()
380
+
381
+ Gets the vertical alignment of the content fill within a block.
382
+ ```javascript
383
+ engine.block.getContentFillVerticalAlignment(image);
384
+ ```
385
+
386
+ ```typescript
387
+ getContentFillVerticalAlignment(id: DesignBlockId): VerticalContentFillAlignment
388
+ ```
389
+
390
+ **Parameters:**
391
+ - `id` - The block to query.
392
+
393
+ **Returns:** The current alignment: 'Top', 'Center' or 'Bottom'.
394
+
335
395
  ### setGradientColorStops()
336
396
 
337
397
  Sets the color stops for a gradient property.
338
-
339
398
  ```javascript
340
399
  engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
341
400
  { color: { r: 1.0, g: 0.8, b: 0.2, a: 1.0 }, stop: 0 },
@@ -348,7 +407,6 @@ setGradientColorStops(id: DesignBlockId, property: string, colors: GradientColor
348
407
  ```
349
408
 
350
409
  **Parameters:**
351
-
352
410
  - `id` - The block whose property should be set.
353
411
  - `property` - The name of the property to set, e.g. 'fill/gradient/colors'.
354
412
  - `colors` - An array of gradient color stops.
@@ -356,7 +414,6 @@ setGradientColorStops(id: DesignBlockId, property: string, colors: GradientColor
356
414
  ### getGradientColorStops()
357
415
 
358
416
  Gets the color stops from a gradient property.
359
-
360
417
  ```
361
418
  engine.block.getGradientColorStops(gradientFill, 'fill/gradient/colors');
362
419
  ```
@@ -366,7 +423,6 @@ getGradientColorStops(id: DesignBlockId, property: string): GradientColorStop[]
366
423
  ```
367
424
 
368
425
  **Parameters:**
369
-
370
426
  - `id` - The block whose property should be queried.
371
427
  - `property` - The name of the property to query.
372
428
 
@@ -375,7 +431,6 @@ getGradientColorStops(id: DesignBlockId, property: string): GradientColorStop[]
375
431
  ### getSourceSet()
376
432
 
377
433
  Gets the source set from a block property.
378
-
379
434
  ```javascript
380
435
  const sourceSet = engine.block.getSourceSet(imageFill, 'fill/image/sourceSet');
381
436
  ```
@@ -385,7 +440,6 @@ getSourceSet(id: DesignBlockId, property: SourceSetPropertyName): Source[]
385
440
  ```
386
441
 
387
442
  **Parameters:**
388
-
389
443
  - `id` - The block that should be queried.
390
444
  - `property` - The name of the property to query, e.g. 'fill/image/sourceSet'.
391
445
 
@@ -395,15 +449,12 @@ getSourceSet(id: DesignBlockId, property: SourceSetPropertyName): Source[]
395
449
 
396
450
  Sets the source set for a block property.
397
451
  The crop and content fill mode of the associated block will be reset to default values.
398
-
399
452
  ```javascript
400
- engine.block.setSourceSet(imageFill, 'fill/image/sourceSet', [
401
- {
402
- uri: 'https://example.com/sample.jpg',
403
- width: 800,
404
- height: 600
405
- }
406
- ]);
453
+ engine.block.setSourceSet(imageFill, 'fill/image/sourceSet', [{
454
+ uri: 'https://example.com/sample.jpg',
455
+ width: 800,
456
+ height: 600
457
+ }]);
407
458
  ```
408
459
 
409
460
  ```typescript
@@ -411,7 +462,6 @@ setSourceSet(id: DesignBlockId, property: SourceSetPropertyName, sourceSet: Sour
411
462
  ```
412
463
 
413
464
  **Parameters:**
414
-
415
465
  - `id` - The block whose property should be set.
416
466
  - `property` - The name of the property to set.
417
467
  - `sourceSet` - The block's new source set.
@@ -420,13 +470,8 @@ setSourceSet(id: DesignBlockId, property: SourceSetPropertyName, sourceSet: Sour
420
470
 
421
471
  Adds an image file URI to a source set property.
422
472
  If an image with the same width already exists in the source set, it will be replaced.
423
-
424
473
  ```javascript
425
- await engine.block.addImageFileURIToSourceSet(
426
- imageFill,
427
- 'fill/image/sourceSet',
428
- 'https://example.com/sample.jpg'
429
- );
474
+ await engine.block.addImageFileURIToSourceSet(imageFill, 'fill/image/sourceSet', 'https://example.com/sample.jpg');
430
475
  ```
431
476
 
432
477
  ```typescript
@@ -434,7 +479,6 @@ addImageFileURIToSourceSet(id: DesignBlockId, property: SourceSetPropertyName, u
434
479
  ```
435
480
 
436
481
  **Parameters:**
437
-
438
482
  - `id` - The block to update.
439
483
  - `property` - The name of the property to modify.
440
484
  - `uri` - The source to add to the source set.
@@ -445,13 +489,8 @@ addImageFileURIToSourceSet(id: DesignBlockId, property: SourceSetPropertyName, u
445
489
 
446
490
  Adds a video file URI to a source set property.
447
491
  If a video with the same width already exists in the source set, it will be replaced.
448
-
449
492
  ```javascript
450
- await engine.block.addVideoFileURIToSourceSet(
451
- videoFill,
452
- 'fill/video/sourceSet',
453
- 'https://example.com/sample.mp4'
454
- );
493
+ await engine.block.addVideoFileURIToSourceSet(videoFill, 'fill/video/sourceSet', 'https://example.com/sample.mp4');
455
494
  ```
456
495
 
457
496
  ```typescript
@@ -459,14 +498,13 @@ addVideoFileURIToSourceSet(id: DesignBlockId, property: SourceSetPropertyName, u
459
498
  ```
460
499
 
461
500
  **Parameters:**
462
-
463
501
  - `id` - The block to update.
464
502
  - `property` - The name of the property to modify.
465
503
  - `uri` - The source to add to the source set.
466
504
 
467
505
  **Returns:** A promise that resolves when the operation is complete.
468
506
 
469
- ### hasFillColor() _(deprecated)_
507
+ ### hasFillColor() *(deprecated)*
470
508
 
471
509
  Checks if a block has fill color properties.
472
510
 
@@ -475,12 +513,11 @@ hasFillColor(id: DesignBlockId): boolean
475
513
  ```
476
514
 
477
515
  **Parameters:**
478
-
479
516
  - `id` - The block to query.
480
517
 
481
518
  **Returns:** true, if the block has fill color properties.
482
519
 
483
- ### setFillColorRGBA() _(deprecated)_
520
+ ### setFillColorRGBA() *(deprecated)*
484
521
 
485
522
  Sets the fill color of a block using RGBA values.
486
523
 
@@ -489,14 +526,13 @@ setFillColorRGBA(id: DesignBlockId, r: number, g: number, b: number, a?: number)
489
526
  ```
490
527
 
491
528
  **Parameters:**
492
-
493
529
  - `id` - The block whose fill color should be set.
494
530
  - `r` - The red color component in the range of 0 to 1.
495
531
  - `g` - The green color component in the range of 0 to 1.
496
532
  - `b` - The blue color component in the range of 0 to 1.
497
533
  - `a` - The alpha color component in the range of 0 to 1.
498
534
 
499
- ### getFillColorRGBA() _(deprecated)_
535
+ ### getFillColorRGBA() *(deprecated)*
500
536
 
501
537
  Gets the fill color of a block as RGBA values.
502
538
 
@@ -505,12 +541,11 @@ getFillColorRGBA(id: DesignBlockId): RGBA
505
541
  ```
506
542
 
507
543
  **Parameters:**
508
-
509
544
  - `id` - The block whose fill color should be queried.
510
545
 
511
546
  **Returns:** The fill color.
512
547
 
513
- ### setFillColorEnabled() _(deprecated)_
548
+ ### setFillColorEnabled() *(deprecated)*
514
549
 
515
550
  Enables or disables the fill of a block.
516
551
 
@@ -519,11 +554,10 @@ setFillColorEnabled(id: DesignBlockId, enabled: boolean): void
519
554
  ```
520
555
 
521
556
  **Parameters:**
522
-
523
557
  - `id` - The block whose fill should be enabled or disabled.
524
558
  - `enabled` - If true, the fill will be enabled.
525
559
 
526
- ### isFillColorEnabled() _(deprecated)_
560
+ ### isFillColorEnabled() *(deprecated)*
527
561
 
528
562
  Checks if the fill of a block is enabled.
529
563
 
@@ -532,12 +566,11 @@ isFillColorEnabled(id: DesignBlockId): boolean
532
566
  ```
533
567
 
534
568
  **Parameters:**
535
-
536
569
  - `id` - The block whose fill state should be queried.
537
570
 
538
571
  **Returns:** True, if fill is enabled.
539
572
 
540
- ### hasFill() _(deprecated)_
573
+ ### hasFill() *(deprecated)*
541
574
 
542
575
  Checks if a block has fill properties.
543
576
 
@@ -546,7 +579,6 @@ hasFill(id: DesignBlockId): boolean
546
579
  ```
547
580
 
548
581
  **Parameters:**
549
-
550
582
  - `id` - The block to query.
551
583
 
552
584
  **Returns:** true, if the block has fill properties.
@@ -560,7 +592,6 @@ supportsFill(id: DesignBlockId): boolean
560
592
  ```
561
593
 
562
594
  **Parameters:**
563
-
564
595
  - `id` - The block to query.
565
596
 
566
597
  **Returns:** true, if the block supports a fill.
@@ -568,7 +599,6 @@ supportsFill(id: DesignBlockId): boolean
568
599
  ### isFillEnabled()
569
600
 
570
601
  Checks if the fill of a block is enabled.
571
-
572
602
  ```javascript
573
603
  engine.block.isFillEnabled(block);
574
604
  ```
@@ -578,7 +608,6 @@ isFillEnabled(id: DesignBlockId): boolean
578
608
  ```
579
609
 
580
610
  **Parameters:**
581
-
582
611
  - `id` - The block whose fill state should be queried.
583
612
 
584
613
  **Returns:** The fill state.
@@ -586,7 +615,6 @@ isFillEnabled(id: DesignBlockId): boolean
586
615
  ### setFillEnabled()
587
616
 
588
617
  Enables or disables the fill of a block.
589
-
590
618
  ```javascript
591
619
  engine.block.setFillEnabled(block, false);
592
620
  ```
@@ -596,10 +624,43 @@ setFillEnabled(id: DesignBlockId, enabled: boolean): void
596
624
  ```
597
625
 
598
626
  **Parameters:**
599
-
600
627
  - `id` - The block whose fill should be enabled or disabled.
601
628
  - `enabled` - If true, the fill will be enabled.
602
629
 
630
+ ### getFillOverprint()
631
+
632
+ Queries whether the fill of a block is marked as overprint for PDF export.
633
+ ```javascript
634
+ const overprint = engine.block.getFillOverprint(block);
635
+ ```
636
+
637
+ ```typescript
638
+ getFillOverprint(id: DesignBlockId): boolean
639
+ ```
640
+
641
+ **Parameters:**
642
+ - `id` - The block whose fill overprint flag should be queried.
643
+
644
+ **Returns:** The fill overprint flag.
645
+
646
+ ### setFillOverprint()
647
+
648
+ Marks the fill of a block as overprint for PDF export.
649
+ The flag is only honored by the PDF writer when the fill uses a spot color
650
+ (Separation/DeviceN). For process-color fills it is a silent no-op. On-screen
651
+ rendering ignores the flag.
652
+ ```javascript
653
+ engine.block.setFillOverprint(block, true);
654
+ ```
655
+
656
+ ```typescript
657
+ setFillOverprint(id: DesignBlockId, overprint: boolean): void
658
+ ```
659
+
660
+ **Parameters:**
661
+ - `id` - The block whose fill overprint flag should be set.
662
+ - `overprint` - If true, the fill is marked as overprint in exported PDFs.
663
+
603
664
  ### getFill()
604
665
 
605
666
  Gets the fill block attached to a given block.
@@ -609,7 +670,6 @@ getFill(id: DesignBlockId): DesignBlockId
609
670
  ```
610
671
 
611
672
  **Parameters:**
612
-
613
673
  - `id` - The block whose fill block should be returned.
614
674
 
615
675
  **Returns:** The block that currently defines the given block's fill.
@@ -624,7 +684,6 @@ setFill(id: DesignBlockId, fill: DesignBlockId): void
624
684
  ```
625
685
 
626
686
  **Parameters:**
627
-
628
687
  - `id` - The block whose fill should be changed.
629
688
  - `fill` - The new fill block.
630
689
 
@@ -637,7 +696,6 @@ setFillSolidColor(id: DesignBlockId, r: number, g: number, b: number, a?: number
637
696
  ```
638
697
 
639
698
  **Parameters:**
640
-
641
699
  - `id` - The block whose fill color should be set.
642
700
  - `r` - The red color component in the range of 0 to 1.
643
701
  - `g` - The green color component in the range of 0 to 1.
@@ -653,7 +711,6 @@ getFillSolidColor(id: DesignBlockId): RGBA
653
711
  ```
654
712
 
655
713
  **Parameters:**
656
-
657
714
  - `id` - The block whose fill color should be queried.
658
715
 
659
716
  **Returns:** The fill color.
@@ -663,7 +720,6 @@ getFillSolidColor(id: DesignBlockId): RGBA
663
720
  ### getAudioTrackCountFromVideo()
664
721
 
665
722
  Gets the number of available audio tracks in a video fill block.
666
-
667
723
  ```javascript
668
724
  const trackCount = engine.block.getAudioTrackCountFromVideo(videoBlock);
669
725
  console.log(`Video has ${trackCount} audio tracks`);
@@ -674,7 +730,6 @@ getAudioTrackCountFromVideo(videoFillBlock: DesignBlockId): number
674
730
  ```
675
731
 
676
732
  **Parameters:**
677
-
678
733
  - `videoFillBlock` - The video fill block to examine.
679
734
 
680
735
  **Returns:** The number of audio tracks.
@@ -682,19 +737,13 @@ getAudioTrackCountFromVideo(videoFillBlock: DesignBlockId): number
682
737
  ### createAudioFromVideo()
683
738
 
684
739
  Creates a new audio block by extracting a specific audio track from a video fill block.
685
-
686
740
  ```javascript
687
741
  // Extract the first audio track (usually the main mix) with trim settings
688
742
  const audioBlock = engine.block.createAudioFromVideo(videoFillBlock, 0);
689
743
  // Extract full audio track without trim settings
690
- const audioBlock = engine.block.createAudioFromVideo(videoFillBlock, 0, {
691
- keepTrimSettings: false
692
- });
744
+ const audioBlock = engine.block.createAudioFromVideo(videoFillBlock, 0, { keepTrimSettings: false });
693
745
  // Extract a specific track, keep trim settings, and mute the original video
694
- const dialogueTrack = engine.block.createAudioFromVideo(videoFillBlock, 1, {
695
- keepTrimSettings: true,
696
- muteOriginalVideo: true
697
- });
746
+ const dialogueTrack = engine.block.createAudioFromVideo(videoFillBlock, 1, { keepTrimSettings: true, muteOriginalVideo: true });
698
747
  ```
699
748
 
700
749
  ```typescript
@@ -702,7 +751,6 @@ createAudioFromVideo(videoFillBlock: DesignBlockId, trackIndex: number, options?
702
751
  ```
703
752
 
704
753
  **Parameters:**
705
-
706
754
  - `videoFillBlock` - The video fill block to extract audio from.
707
755
  - `trackIndex` - The index of the audio track to extract (0-based).
708
756
  - `options` - Options for the audio extraction operation.
@@ -712,20 +760,14 @@ createAudioFromVideo(videoFillBlock: DesignBlockId, trackIndex: number, options?
712
760
  ### createAudiosFromVideo()
713
761
 
714
762
  Creates multiple audio blocks by extracting all audio tracks from a video fill block.
715
-
716
763
  ```javascript
717
764
  // Extract all audio tracks from a video with trim settings
718
765
  const audioBlocks = engine.block.createAudiosFromVideo(videoFillBlock);
719
766
  console.log(`Created ${audioBlocks.length} audio blocks`);
720
767
  // Extract all tracks without trim settings (full audio)
721
- const audioBlocks = engine.block.createAudiosFromVideo(videoFillBlock, {
722
- keepTrimSettings: false
723
- });
768
+ const audioBlocks = engine.block.createAudiosFromVideo(videoFillBlock, { keepTrimSettings: false });
724
769
  // Extract all tracks with trim settings and mute the original video
725
- const audioBlocks = engine.block.createAudiosFromVideo(videoFillBlock, {
726
- keepTrimSettings: true,
727
- muteOriginalVideo: true
728
- });
770
+ const audioBlocks = engine.block.createAudiosFromVideo(videoFillBlock, { keepTrimSettings: true, muteOriginalVideo: true });
729
771
  ```
730
772
 
731
773
  ```typescript
@@ -733,7 +775,6 @@ createAudiosFromVideo(videoFillBlock: DesignBlockId, options?: AudioFromVideoOpt
733
775
  ```
734
776
 
735
777
  **Parameters:**
736
-
737
778
  - `videoFillBlock` - The video fill block to extract audio from.
738
779
  - `options` - Options for the audio extraction operation.
739
780
 
@@ -742,20 +783,17 @@ createAudiosFromVideo(videoFillBlock: DesignBlockId, options?: AudioFromVideoOpt
742
783
  ### getAudioInfoFromVideo()
743
784
 
744
785
  Gets information about all audio tracks from a video fill block.
745
-
746
786
  ```javascript
747
787
  // Get information about all audio tracks
748
788
  const trackInfos = engine.block.getAudioInfoFromVideo(videoFillBlock);
749
789
  console.log(`Video has ${trackInfos.length} audio tracks`);
750
790
  // Display track information
751
791
  trackInfos.forEach((track, index) => {
752
- console.log(
753
- `Track ${index}: ${track.channels} channels, ${track.sampleRate}Hz, ${track.language}`
754
- );
792
+ console.log(`Track ${index}: ${track.channels} channels, ${track.sampleRate}Hz, ${track.language}`);
755
793
  });
756
794
  // Use track info to create audio blocks selectively
757
- const englishTracks = trackInfos.filter((track) => track.language === 'eng');
758
- const audioBlocks = englishTracks.map((track) =>
795
+ const englishTracks = trackInfos.filter(track => track.language === 'eng');
796
+ const audioBlocks = englishTracks.map(track =>
759
797
  engine.block.createAudioFromVideo(videoFillBlock, track.trackIndex)
760
798
  );
761
799
  ```
@@ -765,7 +803,6 @@ getAudioInfoFromVideo(videoFillBlock: DesignBlockId): AudioTrackInfo[]
765
803
  ```
766
804
 
767
805
  **Parameters:**
768
-
769
806
  - `videoFillBlock` - The video fill block to analyze for audio track information.
770
807
 
771
808
  **Returns:** An array containing information about each audio track.
@@ -783,12 +820,11 @@ createCaptionsFromURI(uri: string): Promise<DesignBlockId[]>
783
820
  ```
784
821
 
785
822
  **Parameters:**
786
-
787
823
  - `uri` - The URI for the captions file to load. Supported file formats are: SRT and VTT.
788
824
 
789
825
  **Returns:** A promise that resolves with a list of the created caption blocks.
790
826
 
791
- ### hasDuration() _(deprecated)_
827
+ ### hasDuration() *(deprecated)*
792
828
 
793
829
  Checks if a block has a duration property.
794
830
 
@@ -797,7 +833,6 @@ hasDuration(id: DesignBlockId): boolean
797
833
  ```
798
834
 
799
835
  **Parameters:**
800
-
801
836
  - `id` - The block to query.
802
837
 
803
838
  **Returns:** true if the block has a duration property.
@@ -811,7 +846,6 @@ supportsDuration(id: DesignBlockId): boolean
811
846
  ```
812
847
 
813
848
  **Parameters:**
814
-
815
849
  - `id` - The block to query.
816
850
 
817
851
  **Returns:** true if the block supports a duration property.
@@ -826,7 +860,6 @@ setDuration(id: DesignBlockId, duration: number): void
826
860
  ```
827
861
 
828
862
  **Parameters:**
829
-
830
863
  - `id` - The block whose duration should be changed.
831
864
  - `duration` - The new duration in seconds.
832
865
 
@@ -839,7 +872,6 @@ getDuration(id: DesignBlockId): number
839
872
  ```
840
873
 
841
874
  **Parameters:**
842
-
843
875
  - `id` - The block whose duration should be returned.
844
876
 
845
877
  **Returns:** The block's duration in seconds.
@@ -854,7 +886,6 @@ setPageDurationSource(page: DesignBlockId, id: DesignBlockId): void
854
886
  ```
855
887
 
856
888
  **Parameters:**
857
-
858
889
  - `page` - The page block for which it should be enabled.
859
890
  - `id` - The block that should become the duration source.
860
891
 
@@ -867,7 +898,6 @@ isPageDurationSource(id: DesignBlockId): boolean
867
898
  ```
868
899
 
869
900
  **Parameters:**
870
-
871
901
  - `id` - The block whose duration source property should be queried.
872
902
 
873
903
  **Returns:** true if the block is a duration source for a page.
@@ -881,7 +911,6 @@ supportsPageDurationSource(page: DesignBlockId, id: DesignBlockId): boolean
881
911
  ```
882
912
 
883
913
  **Parameters:**
884
-
885
914
  - `page` - The page to check against.
886
915
  - `id` - The block to query.
887
916
 
@@ -897,10 +926,9 @@ removePageDurationSource(id: DesignBlockId): void
897
926
  ```
898
927
 
899
928
  **Parameters:**
900
-
901
929
  - `id` - The block whose duration source property should be removed.
902
930
 
903
- ### hasTimeOffset() _(deprecated)_
931
+ ### hasTimeOffset() *(deprecated)*
904
932
 
905
933
  Checks if a block has a time offset property.
906
934
 
@@ -909,7 +937,6 @@ hasTimeOffset(id: DesignBlockId): boolean
909
937
  ```
910
938
 
911
939
  **Parameters:**
912
-
913
940
  - `id` - The block to query.
914
941
 
915
942
  **Returns:** true, if the block has a time offset property.
@@ -923,7 +950,6 @@ supportsTimeOffset(id: DesignBlockId): boolean
923
950
  ```
924
951
 
925
952
  **Parameters:**
926
-
927
953
  - `id` - The block to query.
928
954
 
929
955
  **Returns:** true, if the block supports a time offset.
@@ -938,7 +964,6 @@ setTimeOffset(id: DesignBlockId, offset: number): void
938
964
  ```
939
965
 
940
966
  **Parameters:**
941
-
942
967
  - `id` - The block whose time offset should be changed.
943
968
  - `offset` - The new time offset in seconds.
944
969
 
@@ -951,12 +976,11 @@ getTimeOffset(id: DesignBlockId): number
951
976
  ```
952
977
 
953
978
  **Parameters:**
954
-
955
979
  - `id` - The block whose time offset should be queried.
956
980
 
957
981
  **Returns:** The time offset of the block in seconds.
958
982
 
959
- ### hasTrim() _(deprecated)_
983
+ ### hasTrim() *(deprecated)*
960
984
 
961
985
  Checks if a block has trim properties.
962
986
 
@@ -965,7 +989,6 @@ hasTrim(id: DesignBlockId): boolean
965
989
  ```
966
990
 
967
991
  **Parameters:**
968
-
969
992
  - `id` - The block to query.
970
993
 
971
994
  **Returns:** true, if the block has trim properties.
@@ -979,7 +1002,6 @@ supportsTrim(id: DesignBlockId): boolean
979
1002
  ```
980
1003
 
981
1004
  **Parameters:**
982
-
983
1005
  - `id` - The block to query.
984
1006
 
985
1007
  **Returns:** true, if the block supports trim properties.
@@ -994,7 +1016,6 @@ setTrimOffset(id: DesignBlockId, offset: number): void
994
1016
  ```
995
1017
 
996
1018
  **Parameters:**
997
-
998
1019
  - `id` - The block whose trim should be updated.
999
1020
  - `offset` - The new trim offset, measured in timeline seconds (scaled by playback rate).
1000
1021
 
@@ -1007,7 +1028,6 @@ getTrimOffset(id: DesignBlockId): number
1007
1028
  ```
1008
1029
 
1009
1030
  **Parameters:**
1010
-
1011
1031
  - `id` - The block whose trim offset should be queried.
1012
1032
 
1013
1033
  **Returns:** the trim offset in seconds.
@@ -1022,7 +1042,6 @@ setTrimLength(id: DesignBlockId, length: number): void
1022
1042
  ```
1023
1043
 
1024
1044
  **Parameters:**
1025
-
1026
1045
  - `id` - The object whose trim length should be updated.
1027
1046
  - `length` - The new trim length in seconds.
1028
1047
 
@@ -1035,12 +1054,11 @@ getTrimLength(id: DesignBlockId): number
1035
1054
  ```
1036
1055
 
1037
1056
  **Parameters:**
1038
-
1039
1057
  - `id` - The object whose trim length should be queried.
1040
1058
 
1041
1059
  **Returns:** The trim length of the object in seconds.
1042
1060
 
1043
- ### getTotalSceneDuration() _(deprecated)_
1061
+ ### getTotalSceneDuration() *(deprecated)*
1044
1062
 
1045
1063
  Gets the total duration of a scene in video mode.
1046
1064
 
@@ -1049,7 +1067,6 @@ getTotalSceneDuration(scene: DesignBlockId): number
1049
1067
  ```
1050
1068
 
1051
1069
  **Parameters:**
1052
-
1053
1070
  - `scene` - The scene whose duration is being queried.
1054
1071
 
1055
1072
  **Returns:** the total scene duration.
@@ -1063,7 +1080,6 @@ setPlaying(id: DesignBlockId, enabled: boolean): void
1063
1080
  ```
1064
1081
 
1065
1082
  **Parameters:**
1066
-
1067
1083
  - `id` - The block that should be updated.
1068
1084
  - `enabled` - Whether the block should be playing its contents.
1069
1085
 
@@ -1076,12 +1092,11 @@ isPlaying(id: DesignBlockId): boolean
1076
1092
  ```
1077
1093
 
1078
1094
  **Parameters:**
1079
-
1080
1095
  - `id` - The block to query.
1081
1096
 
1082
1097
  **Returns:** whether the block is playing during playback.
1083
1098
 
1084
- ### hasPlaybackTime() _(deprecated)_
1099
+ ### hasPlaybackTime() *(deprecated)*
1085
1100
 
1086
1101
  Checks if a block has a playback time property.
1087
1102
 
@@ -1090,7 +1105,6 @@ hasPlaybackTime(id: DesignBlockId): boolean
1090
1105
  ```
1091
1106
 
1092
1107
  **Parameters:**
1093
-
1094
1108
  - `id` - The block to query.
1095
1109
 
1096
1110
  **Returns:** whether the block has a playback time property.
@@ -1104,7 +1118,6 @@ supportsPlaybackTime(id: DesignBlockId): boolean
1104
1118
  ```
1105
1119
 
1106
1120
  **Parameters:**
1107
-
1108
1121
  - `id` - The block to query.
1109
1122
 
1110
1123
  **Returns:** whether the block supports a playback time property.
@@ -1118,7 +1131,6 @@ setPlaybackTime(id: DesignBlockId, time: number): void
1118
1131
  ```
1119
1132
 
1120
1133
  **Parameters:**
1121
-
1122
1134
  - `id` - The block whose playback time should be updated.
1123
1135
  - `time` - The new playback time of the block in seconds.
1124
1136
 
@@ -1131,7 +1143,6 @@ getPlaybackTime(id: DesignBlockId): number
1131
1143
  ```
1132
1144
 
1133
1145
  **Parameters:**
1134
-
1135
1146
  - `id` - The block to query.
1136
1147
 
1137
1148
  **Returns:** The playback time of the block in seconds.
@@ -1140,7 +1151,6 @@ getPlaybackTime(id: DesignBlockId): number
1140
1151
 
1141
1152
  Enables or disables solo playback for a block.
1142
1153
  When enabled, only this block's content will play while the rest of the scene remains paused.
1143
-
1144
1154
  ```javascript
1145
1155
  engine.block.setSoloPlaybackEnabled(videoFill, true);
1146
1156
  ```
@@ -1150,14 +1160,12 @@ setSoloPlaybackEnabled(id: DesignBlockId, enabled: boolean): void
1150
1160
  ```
1151
1161
 
1152
1162
  **Parameters:**
1153
-
1154
1163
  - `id` - The block or fill to update.
1155
1164
  - `enabled` - Whether solo playback should be enabled.
1156
1165
 
1157
1166
  ### isSoloPlaybackEnabled()
1158
1167
 
1159
1168
  Checks if solo playback is enabled for a block.
1160
-
1161
1169
  ```javascript
1162
1170
  engine.block.isSoloPlaybackEnabled(videoFill);
1163
1171
  ```
@@ -1167,12 +1175,11 @@ isSoloPlaybackEnabled(id: DesignBlockId): boolean
1167
1175
  ```
1168
1176
 
1169
1177
  **Parameters:**
1170
-
1171
1178
  - `id` - The block or fill to query.
1172
1179
 
1173
1180
  **Returns:** Whether solo playback is enabled for this block.
1174
1181
 
1175
- ### hasPlaybackControl() _(deprecated)_
1182
+ ### hasPlaybackControl() *(deprecated)*
1176
1183
 
1177
1184
  Checks if a block has playback controls.
1178
1185
 
@@ -1181,7 +1188,6 @@ hasPlaybackControl(id: DesignBlockId): boolean
1181
1188
  ```
1182
1189
 
1183
1190
  **Parameters:**
1184
-
1185
1191
  - `id` - The block to query.
1186
1192
 
1187
1193
  **Returns:** Whether the block has playback control.
@@ -1195,7 +1201,6 @@ supportsPlaybackControl(id: DesignBlockId): boolean
1195
1201
  ```
1196
1202
 
1197
1203
  **Parameters:**
1198
-
1199
1204
  - `id` - The block to query.
1200
1205
 
1201
1206
  **Returns:** Whether the block supports playback control.
@@ -1209,7 +1214,6 @@ setLooping(id: DesignBlockId, looping: boolean): void
1209
1214
  ```
1210
1215
 
1211
1216
  **Parameters:**
1212
-
1213
1217
  - `id` - The block or video fill to update.
1214
1218
  - `looping` - Whether the block should loop to the beginning or stop.
1215
1219
 
@@ -1222,7 +1226,6 @@ isLooping(id: DesignBlockId): boolean
1222
1226
  ```
1223
1227
 
1224
1228
  **Parameters:**
1225
-
1226
1229
  - `id` - The block to query.
1227
1230
 
1228
1231
  **Returns:** Whether the block is looping.
@@ -1236,7 +1239,6 @@ setMuted(id: DesignBlockId, muted: boolean): void
1236
1239
  ```
1237
1240
 
1238
1241
  **Parameters:**
1239
-
1240
1242
  - `id` - The block or video fill to update.
1241
1243
  - `muted` - Whether the audio should be muted.
1242
1244
 
@@ -1249,7 +1251,6 @@ isForceMuted(id: DesignBlockId): boolean
1249
1251
  ```
1250
1252
 
1251
1253
  **Parameters:**
1252
-
1253
1254
  - `id` - The block to query.
1254
1255
 
1255
1256
  **Returns:** Whether the block is force muted.
@@ -1263,7 +1264,6 @@ isMuted(id: DesignBlockId): boolean
1263
1264
  ```
1264
1265
 
1265
1266
  **Parameters:**
1266
-
1267
1267
  - `id` - The block to query.
1268
1268
 
1269
1269
  **Returns:** Whether the block is muted.
@@ -1277,7 +1277,6 @@ setVolume(id: DesignBlockId, volume: number): void
1277
1277
  ```
1278
1278
 
1279
1279
  **Parameters:**
1280
-
1281
1280
  - `id` - The block or video fill to update.
1282
1281
  - `volume` - The desired volume, ranging from 0.0 to 1.0.
1283
1282
 
@@ -1290,7 +1289,6 @@ getVolume(id: DesignBlockId): number
1290
1289
  ```
1291
1290
 
1292
1291
  **Parameters:**
1293
-
1294
1292
  - `id` - The block to query.
1295
1293
 
1296
1294
  **Returns:** The volume, ranging from 0.0 to 1.0.
@@ -1306,10 +1304,9 @@ setPlaybackSpeed(id: DesignBlockId, speed: number): void
1306
1304
  ```
1307
1305
 
1308
1306
  **Parameters:**
1309
-
1310
1307
  - `id` - The block or video fill to update.
1311
1308
  - `speed` - The desired playback speed multiplier. Valid range is [0.25, 3.0] for audio blocks and
1312
- [0.25, infinity) for video fills.
1309
+ [0.25, infinity) for video fills.
1313
1310
 
1314
1311
  ### getPlaybackSpeed()
1315
1312
 
@@ -1320,7 +1317,6 @@ getPlaybackSpeed(id: DesignBlockId): number
1320
1317
  ```
1321
1318
 
1322
1319
  **Parameters:**
1323
-
1324
1320
  - `id` - The block to query.
1325
1321
 
1326
1322
  **Returns:** The playback speed multiplier.
@@ -1335,7 +1331,6 @@ forceLoadAVResource(id: DesignBlockId): Promise<void>
1335
1331
  ```
1336
1332
 
1337
1333
  **Parameters:**
1338
-
1339
1334
  - `id` - The video fill or audio block whose resource should be loaded.
1340
1335
 
1341
1336
  **Returns:** A Promise that resolves once the resource has finished loading.
@@ -1349,7 +1344,6 @@ unstable_isAVResourceLoaded(id: DesignBlockId): boolean
1349
1344
  ```
1350
1345
 
1351
1346
  **Parameters:**
1352
-
1353
1347
  - `id` - The video fill or audio block.
1354
1348
 
1355
1349
  **Returns:** The loading state of the resource.
@@ -1363,7 +1357,6 @@ getAVResourceTotalDuration(id: DesignBlockId): number
1363
1357
  ```
1364
1358
 
1365
1359
  **Parameters:**
1366
-
1367
1360
  - `id` - The video fill or audio block.
1368
1361
 
1369
1362
  **Returns:** The video or audio file duration in seconds.
@@ -1377,7 +1370,6 @@ getVideoWidth(id: DesignBlockId): number
1377
1370
  ```
1378
1371
 
1379
1372
  **Parameters:**
1380
-
1381
1373
  - `id` - The video fill block.
1382
1374
 
1383
1375
  **Returns:** The video width in pixels.
@@ -1391,7 +1383,6 @@ getVideoHeight(id: DesignBlockId): number
1391
1383
  ```
1392
1384
 
1393
1385
  **Parameters:**
1394
-
1395
1386
  - `id` - The video fill block.
1396
1387
 
1397
1388
  **Returns:** The video height in pixels.
@@ -1407,7 +1398,6 @@ generateVideoThumbnailSequence(id: DesignBlockId, thumbnailHeight: number, timeB
1407
1398
  ```
1408
1399
 
1409
1400
  **Parameters:**
1410
-
1411
1401
  - `id` - The video fill or design block.
1412
1402
  - `thumbnailHeight` - The height of each thumbnail.
1413
1403
  - `timeBegin` - The start time in seconds for the thumbnail sequence.
@@ -1429,7 +1419,6 @@ generateAudioThumbnailSequence(id: DesignBlockId, samplesPerChunk: number, timeB
1429
1419
  ```
1430
1420
 
1431
1421
  **Parameters:**
1432
-
1433
1422
  - `id` - The audio block or video fill.
1434
1423
  - `samplesPerChunk` - The number of samples per chunk.
1435
1424
  - `timeBegin` - The start time in seconds for the thumbnail sequence.
@@ -1440,7 +1429,7 @@ generateAudioThumbnailSequence(id: DesignBlockId, samplesPerChunk: number, timeB
1440
1429
 
1441
1430
  **Returns:** A function to cancel the thumbnail generation request.
1442
1431
 
1443
- ### getVideoFillThumbnail() _(deprecated)_
1432
+ ### getVideoFillThumbnail() *(deprecated)*
1444
1433
 
1445
1434
  Generates a thumbnail for a video fill.
1446
1435
 
@@ -1449,13 +1438,12 @@ getVideoFillThumbnail(id: DesignBlockId, thumbnailHeight: number): Promise<Blob>
1449
1438
  ```
1450
1439
 
1451
1440
  **Parameters:**
1452
-
1453
1441
  - `id` - The video fill.
1454
1442
  - `thumbnailHeight` - The height of a thumbnail. The width will be calculated from the video aspect ratio.
1455
1443
 
1456
1444
  **Returns:** A promise that resolves with a thumbnail encoded as a JPEG blob.
1457
1445
 
1458
- ### getVideoFillThumbnailAtlas() _(deprecated)_
1446
+ ### getVideoFillThumbnailAtlas() *(deprecated)*
1459
1447
 
1460
1448
  Generates a thumbnail atlas for a video fill.
1461
1449
 
@@ -1464,7 +1452,6 @@ getVideoFillThumbnailAtlas(id: DesignBlockId, numberOfColumns: number, numberOfR
1464
1452
  ```
1465
1453
 
1466
1454
  **Parameters:**
1467
-
1468
1455
  - `id` - The video fill.
1469
1456
  - `numberOfColumns` - The number of columns in the atlas.
1470
1457
  - `numberOfRows` - The number of rows in the atlas.
@@ -1472,7 +1459,7 @@ getVideoFillThumbnailAtlas(id: DesignBlockId, numberOfColumns: number, numberOfR
1472
1459
 
1473
1460
  **Returns:** A promise that resolves with a thumbnail atlas encoded as a JPEG blob.
1474
1461
 
1475
- ### getPageThumbnailAtlas() _(deprecated)_
1462
+ ### getPageThumbnailAtlas() *(deprecated)*
1476
1463
 
1477
1464
  Generates a thumbnail atlas for a page.
1478
1465
 
@@ -1481,7 +1468,6 @@ getPageThumbnailAtlas(id: DesignBlockId, numberOfColumns: number, numberOfRows:
1481
1468
  ```
1482
1469
 
1483
1470
  **Parameters:**
1484
-
1485
1471
  - `id` - The page.
1486
1472
  - `numberOfColumns` - The number of columns in the atlas.
1487
1473
  - `numberOfRows` - The number of rows in the atlas.
@@ -1498,7 +1484,6 @@ setNativePixelBuffer(id: number, buffer: HTMLCanvasElement | HTMLVideoElement):
1498
1484
  ```
1499
1485
 
1500
1486
  **Parameters:**
1501
-
1502
1487
  - `id` - The pixel stream fill block.
1503
1488
  - `buffer` - A canvas or video element to use as the pixel source.
1504
1489
 
@@ -1515,7 +1500,6 @@ getType(id: DesignBlockId): ObjectTypeLonghand
1515
1500
  ```
1516
1501
 
1517
1502
  **Parameters:**
1518
-
1519
1503
  - `id` - The block to query.
1520
1504
 
1521
1505
  **Returns:** The block's type.
@@ -1529,7 +1513,6 @@ setName(id: DesignBlockId, name: string): void
1529
1513
  ```
1530
1514
 
1531
1515
  **Parameters:**
1532
-
1533
1516
  - `id` - The block to update.
1534
1517
  - `name` - The name to set.
1535
1518
 
@@ -1542,7 +1525,6 @@ getName(id: DesignBlockId): string
1542
1525
  ```
1543
1526
 
1544
1527
  **Parameters:**
1545
-
1546
1528
  - `id` - The block to query.
1547
1529
 
1548
1530
  **Returns:** The block's name.
@@ -1556,7 +1538,6 @@ getUUID(id: DesignBlockId): string
1556
1538
  ```
1557
1539
 
1558
1540
  **Parameters:**
1559
-
1560
1541
  - `id` - The block to query.
1561
1542
 
1562
1543
  **Returns:** The block's UUID.
@@ -1571,7 +1552,6 @@ isValid(id: DesignBlockId): boolean
1571
1552
  ```
1572
1553
 
1573
1554
  **Parameters:**
1574
-
1575
1555
  - `id` - The block to query.
1576
1556
 
1577
1557
  **Returns:** True, if the block is valid.
@@ -1586,7 +1566,6 @@ referencesAnyVariables(id: DesignBlockId): boolean
1586
1566
  ```
1587
1567
 
1588
1568
  **Parameters:**
1589
-
1590
1569
  - `id` - The block to inspect.
1591
1570
 
1592
1571
  **Returns:** true if the block references variables and false otherwise.
@@ -1600,7 +1579,6 @@ isIncludedInExport(id: DesignBlockId): boolean
1600
1579
  ```
1601
1580
 
1602
1581
  **Parameters:**
1603
-
1604
1582
  - `id` - The block to query.
1605
1583
 
1606
1584
  **Returns:** true, if the block is included on the exported result, false otherwise.
@@ -1614,7 +1592,6 @@ setIncludedInExport(id: DesignBlockId, enabled: boolean): void
1614
1592
  ```
1615
1593
 
1616
1594
  **Parameters:**
1617
-
1618
1595
  - `id` - The block whose exportable state should be set.
1619
1596
  - `enabled` - If true, the block will be included on the exported result.
1620
1597
 
@@ -1627,7 +1604,6 @@ isVisibleAtCurrentPlaybackTime(id: DesignBlockId): boolean
1627
1604
  ```
1628
1605
 
1629
1606
  **Parameters:**
1630
-
1631
1607
  - `id` - The block to query.
1632
1608
 
1633
1609
  **Returns:** Whether the block should be visible on the canvas at the current playback time.
@@ -1636,7 +1612,6 @@ isVisibleAtCurrentPlaybackTime(id: DesignBlockId): boolean
1636
1612
 
1637
1613
  Gets the current state of a block.
1638
1614
  A block's state is determined by its own state and that of its shape, fill, and effects.
1639
-
1640
1615
  ```javascript
1641
1616
  const state = engine.block.getState(block);
1642
1617
  ```
@@ -1646,7 +1621,6 @@ getState(id: DesignBlockId): BlockState
1646
1621
  ```
1647
1622
 
1648
1623
  **Parameters:**
1649
-
1650
1624
  - `id` - The block to query.
1651
1625
 
1652
1626
  **Returns:** The block's state: 'Ready', 'Pending', or 'Error'.
@@ -1654,11 +1628,10 @@ getState(id: DesignBlockId): BlockState
1654
1628
  ### setState()
1655
1629
 
1656
1630
  Sets the state of a block.
1657
-
1658
1631
  ```javascript
1659
- engine.block.setState(video, { type: 'Pending', progress: 0.5 });
1660
- engine.block.setState(page, { type: 'Ready' });
1661
- engine.block.setState(image, { type: 'Error', error: 'ImageDecoding' });
1632
+ engine.block.setState(video, {type: 'Pending', progress: 0.5});
1633
+ engine.block.setState(page, {type: 'Ready'});
1634
+ engine.block.setState(image, {type: 'Error', error: 'ImageDecoding'});
1662
1635
  ```
1663
1636
 
1664
1637
  ```typescript
@@ -1666,7 +1639,6 @@ setState(id: DesignBlockId, state: BlockState): void
1666
1639
  ```
1667
1640
 
1668
1641
  **Parameters:**
1669
-
1670
1642
  - `id` - The block whose state should be set.
1671
1643
  - `state` - The new state to set.
1672
1644
 
@@ -1677,7 +1649,6 @@ Get and set a block's 'kind' identifier for custom categorization.
1677
1649
  ### getKind()
1678
1650
 
1679
1651
  Gets the kind of a given block.
1680
-
1681
1652
  ```javascript
1682
1653
  const kind = engine.block.getKind(block);
1683
1654
  ```
@@ -1687,7 +1658,6 @@ getKind(id: DesignBlockId): string
1687
1658
  ```
1688
1659
 
1689
1660
  **Parameters:**
1690
-
1691
1661
  - `id` - The block to query.
1692
1662
 
1693
1663
  **Returns:** The block's kind.
@@ -1695,7 +1665,6 @@ getKind(id: DesignBlockId): string
1695
1665
  ### setKind()
1696
1666
 
1697
1667
  Sets the kind of a given block, a custom string for categorization of blocks.
1698
-
1699
1668
  ```javascript
1700
1669
  engine.block.setKind(text, 'title');
1701
1670
  ```
@@ -1705,7 +1674,6 @@ setKind(id: DesignBlockId, kind: string): void
1705
1674
  ```
1706
1675
 
1707
1676
  **Parameters:**
1708
-
1709
1677
  - `id` - The block whose kind should be changed.
1710
1678
  - `kind` - The new kind.
1711
1679
 
@@ -1720,7 +1688,6 @@ select(id: DesignBlockId): void
1720
1688
  ```
1721
1689
 
1722
1690
  **Parameters:**
1723
-
1724
1691
  - `id` - The block to be selected.
1725
1692
 
1726
1693
  ### setSelected()
@@ -1732,7 +1699,6 @@ setSelected(id: DesignBlockId, selected: boolean): void
1732
1699
  ```
1733
1700
 
1734
1701
  **Parameters:**
1735
-
1736
1702
  - `id` - The block to query.
1737
1703
  - `selected` - Whether or not the block should be selected.
1738
1704
 
@@ -1745,7 +1711,6 @@ isSelected(id: DesignBlockId): boolean
1745
1711
  ```
1746
1712
 
1747
1713
  **Parameters:**
1748
-
1749
1714
  - `id` - The block to query.
1750
1715
 
1751
1716
  **Returns:** True if the block is selected, false otherwise.
@@ -1769,7 +1734,6 @@ isVisible(id: DesignBlockId): boolean
1769
1734
  ```
1770
1735
 
1771
1736
  **Parameters:**
1772
-
1773
1737
  - `id` - The block to query.
1774
1738
 
1775
1739
  **Returns:** True if visible, false otherwise.
@@ -1783,7 +1747,6 @@ setVisible(id: DesignBlockId, visible: boolean): void
1783
1747
  ```
1784
1748
 
1785
1749
  **Parameters:**
1786
-
1787
1750
  - `id` - The block to update.
1788
1751
  - `visible` - Whether the block shall be visible.
1789
1752
 
@@ -1800,7 +1763,6 @@ onSelectionChanged(callback: () => void): (() => void)
1800
1763
  ```
1801
1764
 
1802
1765
  **Parameters:**
1803
-
1804
1766
  - `callback` - This function is called at the end of the engine update if the selection has changed.
1805
1767
 
1806
1768
  **Returns:** A method to unsubscribe.
@@ -1814,7 +1776,6 @@ onClicked(callback: (id: DesignBlockId) => void): (() => void)
1814
1776
  ```
1815
1777
 
1816
1778
  **Parameters:**
1817
-
1818
1779
  - `callback` - This function is called at the end of the engine update if a block has been clicked.
1819
1780
 
1820
1781
  **Returns:** A method to unsubscribe.
@@ -1823,10 +1784,9 @@ onClicked(callback: (id: DesignBlockId) => void): (() => void)
1823
1784
 
1824
1785
  Subscribes to state changes for a set of blocks.
1825
1786
  The state is determined by the block and its associated shape, fill, and effects.
1826
-
1827
1787
  ```javascript
1828
1788
  const unsubscribe = engine.block.onStateChanged([], (blocks) => {
1829
- blocks.forEach((block) => console.log(block));
1789
+ blocks.forEach(block => console.log(block));
1830
1790
  });
1831
1791
  ```
1832
1792
 
@@ -1835,7 +1795,6 @@ onStateChanged(ids: DesignBlockId[], callback: (ids: DesignBlockId[]) => void):
1835
1795
  ```
1836
1796
 
1837
1797
  **Parameters:**
1838
-
1839
1798
  - `ids` - A list of block IDs to monitor. If empty, all blocks are monitored.
1840
1799
  - `callback` - The function to call when a state changes.
1841
1800
 
@@ -1849,9 +1808,8 @@ Create and manage groups of blocks.
1849
1808
 
1850
1809
  Checks if a set of blocks can be grouped.
1851
1810
  A scene block or a block that is already part of a group cannot be grouped.
1852
-
1853
1811
  ```javascript
1854
- const groupable = engine.block.isGroupable([block1, block2]);
1812
+ const groupable = engine.block.isGroupable([block1, block2])
1855
1813
  ```
1856
1814
 
1857
1815
  ```typescript
@@ -1859,7 +1817,6 @@ isGroupable(ids: DesignBlockId[]): boolean
1859
1817
  ```
1860
1818
 
1861
1819
  **Parameters:**
1862
-
1863
1820
  - `ids` - An array of block ids.
1864
1821
 
1865
1822
  **Returns:** Whether the blocks can be grouped together.
@@ -1867,7 +1824,6 @@ isGroupable(ids: DesignBlockId[]): boolean
1867
1824
  ### group()
1868
1825
 
1869
1826
  Groups multiple blocks into a new group block.
1870
-
1871
1827
  ```javascript
1872
1828
  if (engine.block.isGroupable([block1, block2])) {
1873
1829
  const group = engine.block.group(block1, block2]);
@@ -1879,7 +1835,6 @@ group(ids: DesignBlockId[]): DesignBlockId
1879
1835
  ```
1880
1836
 
1881
1837
  **Parameters:**
1882
-
1883
1838
  - `ids` - A non-empty array of block ids.
1884
1839
 
1885
1840
  **Returns:** The block id of the created group.
@@ -1887,7 +1842,6 @@ group(ids: DesignBlockId[]): DesignBlockId
1887
1842
  ### ungroup()
1888
1843
 
1889
1844
  Ungroups a group block, releasing its children.
1890
-
1891
1845
  ```javascript
1892
1846
  engine.block.ungroup(group);
1893
1847
  ```
@@ -1897,14 +1851,12 @@ ungroup(id: DesignBlockId): void
1897
1851
  ```
1898
1852
 
1899
1853
  **Parameters:**
1900
-
1901
1854
  - `id` - The group id from a previous call to `group`.
1902
1855
 
1903
1856
  ### enterGroup()
1904
1857
 
1905
1858
  Changes selection to a block within a selected group.
1906
1859
  Nothing happens if the target is not a group.
1907
-
1908
1860
  ```javascript
1909
1861
  engine.block.enterGroup(group);
1910
1862
  ```
@@ -1914,14 +1866,12 @@ enterGroup(id: DesignBlockId): void
1914
1866
  ```
1915
1867
 
1916
1868
  **Parameters:**
1917
-
1918
1869
  - `id` - The group id from a previous call to `group`.
1919
1870
 
1920
1871
  ### exitGroup()
1921
1872
 
1922
1873
  Changes selection from a block to its parent group.
1923
1874
  Nothing happens if the block is not part of a group.
1924
-
1925
1875
  ```javascript
1926
1876
  engine.block.exitGroup(member1);
1927
1877
  ```
@@ -1931,7 +1881,6 @@ exitGroup(id: DesignBlockId): void
1931
1881
  ```
1932
1882
 
1933
1883
  **Parameters:**
1934
-
1935
1884
  - `id` - A block id.
1936
1885
 
1937
1886
  ## Block Boolean Operations
@@ -1949,7 +1898,6 @@ isCombinable(ids: DesignBlockId[]): boolean
1949
1898
  ```
1950
1899
 
1951
1900
  **Parameters:**
1952
-
1953
1901
  - `ids` - An array of block ids.
1954
1902
 
1955
1903
  **Returns:** Whether the blocks can be combined.
@@ -1965,7 +1913,6 @@ combine(ids: DesignBlockId[], op: BooleanOperation): DesignBlockId
1965
1913
  ```
1966
1914
 
1967
1915
  **Parameters:**
1968
-
1969
1916
  - `ids` - The blocks to combine. They will be destroyed if "lifecycle/destroy" scope is enabled.
1970
1917
  - `op` - The boolean operation to perform.
1971
1918
 
@@ -1984,7 +1931,6 @@ findByName(name: string): DesignBlockId[]
1984
1931
  ```
1985
1932
 
1986
1933
  **Parameters:**
1987
-
1988
1934
  - `name` - The name to search for.
1989
1935
 
1990
1936
  **Returns:** A list of block ids.
@@ -1998,7 +1944,6 @@ findByType(type: ObjectType): DesignBlockId[]
1998
1944
  ```
1999
1945
 
2000
1946
  **Parameters:**
2001
-
2002
1947
  - `type` - The type to search for.
2003
1948
 
2004
1949
  **Returns:** A list of block ids.
@@ -2006,7 +1951,6 @@ findByType(type: ObjectType): DesignBlockId[]
2006
1951
  ### findByKind()
2007
1952
 
2008
1953
  Finds all blocks with a given kind.
2009
-
2010
1954
  ```javascript
2011
1955
  const allTitles = engine.block.findByKind('title');
2012
1956
  ```
@@ -2016,7 +1960,6 @@ findByKind(kind: string): DesignBlockId[]
2016
1960
  ```
2017
1961
 
2018
1962
  **Parameters:**
2019
-
2020
1963
  - `kind` - The kind to search for.
2021
1964
 
2022
1965
  **Returns:** A list of block ids.
@@ -2041,6 +1984,22 @@ findAllPlaceholders(): DesignBlockId[]
2041
1984
 
2042
1985
  **Returns:** A list of block ids.
2043
1986
 
1987
+ ### findAllUnused()
1988
+
1989
+ Finds all blocks that are not attached to any scene.
1990
+ A block is considered unused when it has no path to a scene (no scene
1991
+ reference and no ancestor that belongs to a scene) and is not itself a
1992
+ scene. Generated blocks and render blocks (fills, effects, shapes, blurs)
1993
+ are excluded, matching the behaviour of {@link BlockAPI.findAll}.
1994
+ This is useful for cleanup workflows and for filtering the URIs returned
1995
+ by {@link EditorAPI.findAllMediaURIs} before relocating resources.
1996
+
1997
+ ```typescript
1998
+ findAllUnused(): DesignBlockId[]
1999
+ ```
2000
+
2001
+ **Returns:** A list of block ids that are not attached to any scene.
2002
+
2044
2003
  ## Block Shapes
2045
2004
 
2046
2005
  Create and configure shape blocks and geometric forms.
@@ -2048,7 +2007,6 @@ Create and configure shape blocks and geometric forms.
2048
2007
  ### createShape()
2049
2008
 
2050
2009
  Creates a new shape block of a given type.
2051
-
2052
2010
  ```javascript
2053
2011
  const star = engine.block.createShape('star');
2054
2012
  // Longhand shape types are also supported
@@ -2060,12 +2018,11 @@ createShape(type: ShapeType): DesignBlockId
2060
2018
  ```
2061
2019
 
2062
2020
  **Parameters:**
2063
-
2064
2021
  - `type` - The type of the shape object that shall be created.
2065
2022
 
2066
2023
  **Returns:** The created shape's handle.
2067
2024
 
2068
- ### hasShape() _(deprecated)_
2025
+ ### hasShape() *(deprecated)*
2069
2026
 
2070
2027
  Checks if a block has a shape property.
2071
2028
 
@@ -2074,7 +2031,6 @@ hasShape(id: DesignBlockId): boolean
2074
2031
  ```
2075
2032
 
2076
2033
  **Parameters:**
2077
-
2078
2034
  - `id` - The block to query.
2079
2035
 
2080
2036
  **Returns:** true, if the block has a shape property, an error otherwise.
@@ -2088,7 +2044,6 @@ supportsShape(id: DesignBlockId): boolean
2088
2044
  ```
2089
2045
 
2090
2046
  **Parameters:**
2091
-
2092
2047
  - `id` - The block to query.
2093
2048
 
2094
2049
  **Returns:** true, if the block has a shape property, an error otherwise.
@@ -2102,7 +2057,6 @@ getShape(id: DesignBlockId): DesignBlockId
2102
2057
  ```
2103
2058
 
2104
2059
  **Parameters:**
2105
-
2106
2060
  - `id` - The block whose shape block should be returned.
2107
2061
 
2108
2062
  **Returns:** The block that currently defines the given block's shape.
@@ -2118,7 +2072,6 @@ setShape(id: DesignBlockId, shape: DesignBlockId): void
2118
2072
  ```
2119
2073
 
2120
2074
  **Parameters:**
2121
-
2122
2075
  - `id` - The block whose shape should be changed.
2123
2076
  - `shape` - The new shape.
2124
2077
 
@@ -2136,7 +2089,6 @@ isClipped(id: DesignBlockId): boolean
2136
2089
  ```
2137
2090
 
2138
2091
  **Parameters:**
2139
-
2140
2092
  - `id` - The block to query.
2141
2093
 
2142
2094
  **Returns:** True if clipped, false otherwise.
@@ -2150,7 +2102,6 @@ setClipped(id: DesignBlockId, clipped: boolean): void
2150
2102
  ```
2151
2103
 
2152
2104
  **Parameters:**
2153
-
2154
2105
  - `id` - The block to update.
2155
2106
  - `clipped` - Whether the block should clips its contents to its frame.
2156
2107
 
@@ -2163,7 +2114,6 @@ getFlipHorizontal(id: DesignBlockId): boolean
2163
2114
  ```
2164
2115
 
2165
2116
  **Parameters:**
2166
-
2167
2117
  - `id` - The block to query.
2168
2118
 
2169
2119
  **Returns:** A boolean indicating whether the block is flipped horizontally.
@@ -2177,7 +2127,6 @@ getFlipVertical(id: DesignBlockId): boolean
2177
2127
  ```
2178
2128
 
2179
2129
  **Parameters:**
2180
-
2181
2130
  - `id` - The block to query.
2182
2131
 
2183
2132
  **Returns:** A boolean indicating whether the block is flipped vertically.
@@ -2191,7 +2140,6 @@ setFlipHorizontal(id: DesignBlockId, flip: boolean): void
2191
2140
  ```
2192
2141
 
2193
2142
  **Parameters:**
2194
-
2195
2143
  - `id` - The block to update.
2196
2144
  - `flip` - If the flip should be enabled.
2197
2145
 
@@ -2204,11 +2152,10 @@ setFlipVertical(id: DesignBlockId, flip: boolean): void
2204
2152
  ```
2205
2153
 
2206
2154
  **Parameters:**
2207
-
2208
2155
  - `id` - The block to update.
2209
2156
  - `flip` - If the flip should be enabled.
2210
2157
 
2211
- ### hasOpacity() _(deprecated)_
2158
+ ### hasOpacity() *(deprecated)*
2212
2159
 
2213
2160
  Checks if a block has an opacity property.
2214
2161
 
@@ -2217,7 +2164,6 @@ hasOpacity(id: DesignBlockId): boolean
2217
2164
  ```
2218
2165
 
2219
2166
  **Parameters:**
2220
-
2221
2167
  - `id` - The block to query.
2222
2168
 
2223
2169
  **Returns:** true, if the block has an opacity.
@@ -2231,7 +2177,6 @@ supportsOpacity(id: DesignBlockId): boolean
2231
2177
  ```
2232
2178
 
2233
2179
  **Parameters:**
2234
-
2235
2180
  - `id` - The block to query.
2236
2181
 
2237
2182
  **Returns:** true, if the block supports opacity.
@@ -2245,7 +2190,6 @@ setOpacity(id: DesignBlockId, opacity: number): void
2245
2190
  ```
2246
2191
 
2247
2192
  **Parameters:**
2248
-
2249
2193
  - `id` - The block whose opacity should be set.
2250
2194
  - `opacity` - The opacity to be set. The valid range is 0 to 1.
2251
2195
 
@@ -2258,12 +2202,11 @@ getOpacity(id: DesignBlockId): number
2258
2202
  ```
2259
2203
 
2260
2204
  **Parameters:**
2261
-
2262
2205
  - `id` - The block whose opacity should be queried.
2263
2206
 
2264
2207
  **Returns:** The opacity value.
2265
2208
 
2266
- ### hasBlendMode() _(deprecated)_
2209
+ ### hasBlendMode() *(deprecated)*
2267
2210
 
2268
2211
  Checks if a block has a blend mode property.
2269
2212
 
@@ -2272,7 +2215,6 @@ hasBlendMode(id: DesignBlockId): boolean
2272
2215
  ```
2273
2216
 
2274
2217
  **Parameters:**
2275
-
2276
2218
  - `id` - The block to query.
2277
2219
 
2278
2220
  **Returns:** true, if the block has a blend mode.
@@ -2286,7 +2228,6 @@ supportsBlendMode(id: DesignBlockId): boolean
2286
2228
  ```
2287
2229
 
2288
2230
  **Parameters:**
2289
-
2290
2231
  - `id` - The block to query.
2291
2232
 
2292
2233
  **Returns:** true, if the block supports blend modes.
@@ -2300,7 +2241,6 @@ setBlendMode(id: DesignBlockId, blendMode: BlendMode): void
2300
2241
  ```
2301
2242
 
2302
2243
  **Parameters:**
2303
-
2304
2244
  - `id` - The block whose blend mode should be set.
2305
2245
  - `blendMode` - The blend mode to be set.
2306
2246
 
@@ -2313,12 +2253,11 @@ getBlendMode(id: DesignBlockId): BlendMode
2313
2253
  ```
2314
2254
 
2315
2255
  **Parameters:**
2316
-
2317
2256
  - `id` - The block whose blend mode should be queried.
2318
2257
 
2319
2258
  **Returns:** The blend mode.
2320
2259
 
2321
- ### hasBackgroundColor() _(deprecated)_
2260
+ ### hasBackgroundColor() *(deprecated)*
2322
2261
 
2323
2262
  Checks if a block has background color properties.
2324
2263
 
@@ -2327,7 +2266,6 @@ hasBackgroundColor(id: DesignBlockId): boolean
2327
2266
  ```
2328
2267
 
2329
2268
  **Parameters:**
2330
-
2331
2269
  - `id` - The block to query.
2332
2270
 
2333
2271
  **Returns:** true, if the block has background color properties.
@@ -2341,12 +2279,11 @@ supportsBackgroundColor(id: DesignBlockId): boolean
2341
2279
  ```
2342
2280
 
2343
2281
  **Parameters:**
2344
-
2345
2282
  - `id` - The block to query.
2346
2283
 
2347
2284
  **Returns:** true, if the block supports a background color.
2348
2285
 
2349
- ### setBackgroundColorRGBA() _(deprecated)_
2286
+ ### setBackgroundColorRGBA() *(deprecated)*
2350
2287
 
2351
2288
  Sets the background color of a block using RGBA values.
2352
2289
 
@@ -2355,14 +2292,13 @@ setBackgroundColorRGBA(id: DesignBlockId, r: number, g: number, b: number, a?: n
2355
2292
  ```
2356
2293
 
2357
2294
  **Parameters:**
2358
-
2359
2295
  - `id` - The block whose background color should be set.
2360
2296
  - `r` - The red color component in the range of 0 to 1.
2361
2297
  - `g` - The green color component in the range of 0 to 1.
2362
2298
  - `b` - The blue color component in the range of 0 to 1.
2363
2299
  - `a` - The alpha color component in the range of 0 to 1.
2364
2300
 
2365
- ### getBackgroundColorRGBA() _(deprecated)_
2301
+ ### getBackgroundColorRGBA() *(deprecated)*
2366
2302
 
2367
2303
  Gets the background color of a block as RGBA values.
2368
2304
 
@@ -2371,7 +2307,6 @@ getBackgroundColorRGBA(id: DesignBlockId): RGBA
2371
2307
  ```
2372
2308
 
2373
2309
  **Parameters:**
2374
-
2375
2310
  - `id` - The block whose background color should be queried.
2376
2311
 
2377
2312
  **Returns:** The background color.
@@ -2379,7 +2314,6 @@ getBackgroundColorRGBA(id: DesignBlockId): RGBA
2379
2314
  ### setBackgroundColorEnabled()
2380
2315
 
2381
2316
  Enables or disables the background of a block.
2382
-
2383
2317
  ```javascript
2384
2318
  engine.block.setBackgroundColorEnabled(block, true);
2385
2319
  ```
@@ -2389,14 +2323,12 @@ setBackgroundColorEnabled(id: DesignBlockId, enabled: boolean): void
2389
2323
  ```
2390
2324
 
2391
2325
  **Parameters:**
2392
-
2393
2326
  - `id` - The block whose background should be enabled or disabled.
2394
2327
  - `enabled` - If true, the background will be enabled.
2395
2328
 
2396
2329
  ### isBackgroundColorEnabled()
2397
2330
 
2398
2331
  Checks if the background of a block is enabled.
2399
-
2400
2332
  ```javascript
2401
2333
  const backgroundColorIsEnabled = engine.block.isBackgroundColorEnabled(block);
2402
2334
  ```
@@ -2406,7 +2338,6 @@ isBackgroundColorEnabled(id: DesignBlockId): boolean
2406
2338
  ```
2407
2339
 
2408
2340
  **Parameters:**
2409
-
2410
2341
  - `id` - The block whose background state should be queried.
2411
2342
 
2412
2343
  **Returns:** True, if background is enabled.
@@ -2425,11 +2356,25 @@ isTransformLocked(id: DesignBlockId): boolean
2425
2356
  ```
2426
2357
 
2427
2358
  **Parameters:**
2428
-
2429
2359
  - `id` - The block to query.
2430
2360
 
2431
2361
  **Returns:** True if transform locked, false otherwise.
2432
2362
 
2363
+ ### isLineOrigin()
2364
+
2365
+ Checks whether a graphic block originated as a line shape. Survives the
2366
+ line's conversion to a vector path during vector-edit; resets only when
2367
+ the shape is replaced by a non-line shape via `setShape`.
2368
+
2369
+ ```typescript
2370
+ isLineOrigin(id: DesignBlockId): boolean
2371
+ ```
2372
+
2373
+ **Parameters:**
2374
+ - `id` - The block to query.
2375
+
2376
+ **Returns:** True if the block originated as a line shape, false otherwise.
2377
+
2433
2378
  ### setTransformLocked()
2434
2379
 
2435
2380
  Sets the transform-locked state of a block.
@@ -2439,7 +2384,6 @@ setTransformLocked(id: DesignBlockId, locked: boolean): void
2439
2384
  ```
2440
2385
 
2441
2386
  **Parameters:**
2442
-
2443
2387
  - `id` - The block to update.
2444
2388
  - `locked` - Whether the block's transform should be locked.
2445
2389
 
@@ -2452,7 +2396,6 @@ getPositionX(id: DesignBlockId): number
2452
2396
  ```
2453
2397
 
2454
2398
  **Parameters:**
2455
-
2456
2399
  - `id` - The block to query.
2457
2400
 
2458
2401
  **Returns:** The value of the x position.
@@ -2466,7 +2409,6 @@ getPositionXMode(id: DesignBlockId): PositionXMode
2466
2409
  ```
2467
2410
 
2468
2411
  **Parameters:**
2469
-
2470
2412
  - `id` - The block to query.
2471
2413
 
2472
2414
  **Returns:** The current mode for the x position: 'Absolute' or 'Percent'.
@@ -2480,7 +2422,6 @@ getPositionY(id: DesignBlockId): number
2480
2422
  ```
2481
2423
 
2482
2424
  **Parameters:**
2483
-
2484
2425
  - `id` - The block to query.
2485
2426
 
2486
2427
  **Returns:** The value of the y position.
@@ -2494,7 +2435,6 @@ getPositionYMode(id: DesignBlockId): PositionYMode
2494
2435
  ```
2495
2436
 
2496
2437
  **Parameters:**
2497
-
2498
2438
  - `id` - The block to query.
2499
2439
 
2500
2440
  **Returns:** The current mode for the y position: 'Absolute' or 'Percent'.
@@ -2503,7 +2443,6 @@ getPositionYMode(id: DesignBlockId): PositionYMode
2503
2443
 
2504
2444
  Sets the X position of a block.
2505
2445
  The position refers to the block's local space, relative to its parent with the origin at the top left.
2506
-
2507
2446
  ```javascript
2508
2447
  engine.block.setPositionX(block, 0.25);
2509
2448
  ```
@@ -2513,14 +2452,12 @@ setPositionX(id: DesignBlockId, value: number): void
2513
2452
  ```
2514
2453
 
2515
2454
  **Parameters:**
2516
-
2517
2455
  - `id` - The block to update.
2518
2456
  - `value` - The value of the x position.
2519
2457
 
2520
2458
  ### setPositionXMode()
2521
2459
 
2522
2460
  Sets the mode for the block's X position.
2523
-
2524
2461
  ```javascript
2525
2462
  engine.block.setPositionXMode(block, 'Percent');
2526
2463
  ```
@@ -2530,7 +2467,6 @@ setPositionXMode(id: DesignBlockId, mode: PositionXMode): void
2530
2467
  ```
2531
2468
 
2532
2469
  **Parameters:**
2533
-
2534
2470
  - `id` - The block to update.
2535
2471
  - `mode` - The x position mode: 'Absolute' or 'Percent'.
2536
2472
 
@@ -2538,7 +2474,6 @@ setPositionXMode(id: DesignBlockId, mode: PositionXMode): void
2538
2474
 
2539
2475
  Sets the Y position of a block.
2540
2476
  The position refers to the block's local space, relative to its parent with the origin at the top left.
2541
-
2542
2477
  ```javascript
2543
2478
  engine.block.setPositionY(block, 0.25);
2544
2479
  ```
@@ -2548,14 +2483,12 @@ setPositionY(id: DesignBlockId, value: number): void
2548
2483
  ```
2549
2484
 
2550
2485
  **Parameters:**
2551
-
2552
2486
  - `id` - The block to update.
2553
2487
  - `value` - The value of the y position.
2554
2488
 
2555
2489
  ### setPositionYMode()
2556
2490
 
2557
2491
  Sets the mode for the block's Y position.
2558
-
2559
2492
  ```javascript
2560
2493
  engine.block.setPositionYMode(block, 'Absolute');
2561
2494
  ```
@@ -2565,7 +2498,6 @@ setPositionYMode(id: DesignBlockId, mode: PositionYMode): void
2565
2498
  ```
2566
2499
 
2567
2500
  **Parameters:**
2568
-
2569
2501
  - `id` - The block to update.
2570
2502
  - `mode` - The y position mode: 'Absolute' or 'Percent'.
2571
2503
 
@@ -2579,7 +2511,6 @@ setAlwaysOnTop(id: DesignBlockId, enabled: boolean): void
2579
2511
  ```
2580
2512
 
2581
2513
  **Parameters:**
2582
-
2583
2514
  - `id` - the block to update.
2584
2515
  - `enabled` - whether the block shall be always-on-top.
2585
2516
 
@@ -2593,7 +2524,6 @@ setAlwaysOnBottom(id: DesignBlockId, enabled: boolean): void
2593
2524
  ```
2594
2525
 
2595
2526
  **Parameters:**
2596
-
2597
2527
  - `id` - the block to update.
2598
2528
  - `enabled` - whether the block shall always be below its siblings.
2599
2529
 
@@ -2606,7 +2536,6 @@ isAlwaysOnTop(id: DesignBlockId): boolean
2606
2536
  ```
2607
2537
 
2608
2538
  **Parameters:**
2609
-
2610
2539
  - `id` - the block to query.
2611
2540
 
2612
2541
  **Returns:** true if the block is set to be always-on-top, false otherwise.
@@ -2620,7 +2549,6 @@ isAlwaysOnBottom(id: DesignBlockId): boolean
2620
2549
  ```
2621
2550
 
2622
2551
  **Parameters:**
2623
-
2624
2552
  - `id` - the block to query.
2625
2553
 
2626
2554
  **Returns:** true if the block is set to be always-on-bottom, false otherwise.
@@ -2635,7 +2563,6 @@ bringToFront(id: DesignBlockId): void
2635
2563
  ```
2636
2564
 
2637
2565
  **Parameters:**
2638
-
2639
2566
  - `id` - The id of the block to bring to the front.
2640
2567
 
2641
2568
  ### sendToBack()
@@ -2648,7 +2575,6 @@ sendToBack(id: DesignBlockId): void
2648
2575
  ```
2649
2576
 
2650
2577
  **Parameters:**
2651
-
2652
2578
  - `id` - The id of the block to send to the back.
2653
2579
 
2654
2580
  ### bringForward()
@@ -2661,7 +2587,6 @@ bringForward(id: DesignBlockId): void
2661
2587
  ```
2662
2588
 
2663
2589
  **Parameters:**
2664
-
2665
2590
  - `id` - The id of the block to bring forward.
2666
2591
 
2667
2592
  ### sendBackward()
@@ -2674,7 +2599,6 @@ sendBackward(id: DesignBlockId): void
2674
2599
  ```
2675
2600
 
2676
2601
  **Parameters:**
2677
-
2678
2602
  - `id` - The id of the block to send backward.
2679
2603
 
2680
2604
  ### getRotation()
@@ -2686,7 +2610,6 @@ getRotation(id: DesignBlockId): number
2686
2610
  ```
2687
2611
 
2688
2612
  **Parameters:**
2689
-
2690
2613
  - `id` - The block to query.
2691
2614
 
2692
2615
  **Returns:** The block's rotation around its center in radians.
@@ -2701,14 +2624,12 @@ setRotation(id: DesignBlockId, radians: number): void
2701
2624
  ```
2702
2625
 
2703
2626
  **Parameters:**
2704
-
2705
2627
  - `id` - The block to update.
2706
2628
  - `radians` - The new rotation in radians.
2707
2629
 
2708
2630
  ### getWidth()
2709
2631
 
2710
2632
  Gets the width of a block in the current width mode.
2711
-
2712
2633
  ```javascript
2713
2634
  const width = engine.block.getWidth(block);
2714
2635
  ```
@@ -2718,7 +2639,6 @@ getWidth(id: DesignBlockId): number
2718
2639
  ```
2719
2640
 
2720
2641
  **Parameters:**
2721
-
2722
2642
  - `id` - The block to query.
2723
2643
 
2724
2644
  **Returns:** The value of the block's width.
@@ -2726,7 +2646,6 @@ getWidth(id: DesignBlockId): number
2726
2646
  ### getWidthMode()
2727
2647
 
2728
2648
  Gets the mode for the block's width.
2729
-
2730
2649
  ```javascript
2731
2650
  const widthMode = engine.block.getWidthMode(block);
2732
2651
  ```
@@ -2736,7 +2655,6 @@ getWidthMode(id: DesignBlockId): WidthMode
2736
2655
  ```
2737
2656
 
2738
2657
  **Parameters:**
2739
-
2740
2658
  - `id` - The block to query.
2741
2659
 
2742
2660
  **Returns:** The current mode for the width: 'Absolute', 'Percent' or 'Auto'.
@@ -2744,7 +2662,6 @@ getWidthMode(id: DesignBlockId): WidthMode
2744
2662
  ### getHeight()
2745
2663
 
2746
2664
  Gets the height of a block in the current height mode.
2747
-
2748
2665
  ```javascript
2749
2666
  const height = engine.block.getHeight(block);
2750
2667
  ```
@@ -2754,7 +2671,6 @@ getHeight(id: DesignBlockId): number
2754
2671
  ```
2755
2672
 
2756
2673
  **Parameters:**
2757
-
2758
2674
  - `id` - The block to query.
2759
2675
 
2760
2676
  **Returns:** The value of the block's height.
@@ -2762,7 +2678,6 @@ getHeight(id: DesignBlockId): number
2762
2678
  ### getHeightMode()
2763
2679
 
2764
2680
  Gets the mode for the block's height.
2765
-
2766
2681
  ```javascript
2767
2682
  const heightMode = engine.block.getHeightMode(block);
2768
2683
  ```
@@ -2772,7 +2687,6 @@ getHeightMode(id: DesignBlockId): HeightMode
2772
2687
  ```
2773
2688
 
2774
2689
  **Parameters:**
2775
-
2776
2690
  - `id` - The block to query.
2777
2691
 
2778
2692
  **Returns:** The current mode for the height: 'Absolute', 'Percent' or 'Auto'.
@@ -2781,7 +2695,6 @@ getHeightMode(id: DesignBlockId): HeightMode
2781
2695
 
2782
2696
  Sets the width of a block in the current width mode.
2783
2697
  If the crop is maintained, the crop values will be automatically adjusted.
2784
-
2785
2698
  ```javascript
2786
2699
  engine.block.setWidth(block, 2.5, true);
2787
2700
  ```
@@ -2791,7 +2704,6 @@ setWidth(id: DesignBlockId, value: number, maintainCrop?: boolean): void
2791
2704
  ```
2792
2705
 
2793
2706
  **Parameters:**
2794
-
2795
2707
  - `id` - The block to update.
2796
2708
  - `value` - The new width of the block.
2797
2709
  - `maintainCrop` - Whether or not the crop values, if available, should be automatically adjusted.
@@ -2799,7 +2711,6 @@ setWidth(id: DesignBlockId, value: number, maintainCrop?: boolean): void
2799
2711
  ### setWidthMode()
2800
2712
 
2801
2713
  Sets the mode for the block's width.
2802
-
2803
2714
  ```javascript
2804
2715
  engine.block.setWidthMode(block, 'Percent');
2805
2716
  ```
@@ -2809,7 +2720,6 @@ setWidthMode(id: DesignBlockId, mode: WidthMode): void
2809
2720
  ```
2810
2721
 
2811
2722
  **Parameters:**
2812
-
2813
2723
  - `id` - The block to update.
2814
2724
  - `mode` - The width mode: 'Absolute', 'Percent' or 'Auto'.
2815
2725
 
@@ -2817,7 +2727,6 @@ setWidthMode(id: DesignBlockId, mode: WidthMode): void
2817
2727
 
2818
2728
  Sets the height of a block in the current height mode.
2819
2729
  If the crop is maintained, the crop values will be automatically adjusted.
2820
-
2821
2730
  ```javascript
2822
2731
  engine.block.setHeight(block, 0.5);
2823
2732
  engine.block.setHeight(block, 2.5, true);
@@ -2828,7 +2737,6 @@ setHeight(id: DesignBlockId, value: number, maintainCrop?: boolean): void
2828
2737
  ```
2829
2738
 
2830
2739
  **Parameters:**
2831
-
2832
2740
  - `id` - The block to update.
2833
2741
  - `value` - The new height of the block.
2834
2742
  - `maintainCrop` - Whether or not the crop values, if available, should be automatically adjusted.
@@ -2836,7 +2744,6 @@ setHeight(id: DesignBlockId, value: number, maintainCrop?: boolean): void
2836
2744
  ### setHeightMode()
2837
2745
 
2838
2746
  Sets the mode for the block's height.
2839
-
2840
2747
  ```javascript
2841
2748
  engine.block.setHeightMode(block, 'Percent');
2842
2749
  ```
@@ -2846,7 +2753,6 @@ setHeightMode(id: DesignBlockId, mode: HeightMode): void
2846
2753
  ```
2847
2754
 
2848
2755
  **Parameters:**
2849
-
2850
2756
  - `id` - The block to update.
2851
2757
  - `mode` - The height mode: 'Absolute', 'Percent' or 'Auto'.
2852
2758
 
@@ -2854,7 +2760,6 @@ setHeightMode(id: DesignBlockId, mode: HeightMode): void
2854
2760
 
2855
2761
  Gets the final calculated X position of a block's frame.
2856
2762
  The position is only available after an internal update loop.
2857
-
2858
2763
  ```javascript
2859
2764
  const frameX = engine.block.getFrameX(block);
2860
2765
  ```
@@ -2864,7 +2769,6 @@ getFrameX(id: DesignBlockId): number
2864
2769
  ```
2865
2770
 
2866
2771
  **Parameters:**
2867
-
2868
2772
  - `id` - The block to query.
2869
2773
 
2870
2774
  **Returns:** The layout position on the x-axis.
@@ -2873,7 +2777,6 @@ getFrameX(id: DesignBlockId): number
2873
2777
 
2874
2778
  Gets the final calculated Y position of a block's frame.
2875
2779
  The position is only available after an internal update loop.
2876
-
2877
2780
  ```javascript
2878
2781
  const frameY = engine.block.getFrameY(block);
2879
2782
  ```
@@ -2883,7 +2786,6 @@ getFrameY(id: DesignBlockId): number
2883
2786
  ```
2884
2787
 
2885
2788
  **Parameters:**
2886
-
2887
2789
  - `id` - The block to query.
2888
2790
 
2889
2791
  **Returns:** The layout position on the y-axis.
@@ -2892,7 +2794,6 @@ getFrameY(id: DesignBlockId): number
2892
2794
 
2893
2795
  Gets the final calculated width of a block's frame.
2894
2796
  The width is only available after an internal update loop.
2895
-
2896
2797
  ```javascript
2897
2798
  const frameWidth = engine.block.getFrameWidth(block);
2898
2799
  ```
@@ -2902,7 +2803,6 @@ getFrameWidth(id: DesignBlockId): number
2902
2803
  ```
2903
2804
 
2904
2805
  **Parameters:**
2905
-
2906
2806
  - `id` - The block to query.
2907
2807
 
2908
2808
  **Returns:** The layout width.
@@ -2911,7 +2811,6 @@ getFrameWidth(id: DesignBlockId): number
2911
2811
 
2912
2812
  Gets the final calculated height of a block's frame.
2913
2813
  The height is only available after an internal update loop.
2914
-
2915
2814
  ```javascript
2916
2815
  const frameHeight = engine.block.getFrameHeight(block);
2917
2816
  ```
@@ -2921,7 +2820,6 @@ getFrameHeight(id: DesignBlockId): number
2921
2820
  ```
2922
2821
 
2923
2822
  **Parameters:**
2924
-
2925
2823
  - `id` - The block to query.
2926
2824
 
2927
2825
  **Returns:** The layout height.
@@ -2930,7 +2828,6 @@ getFrameHeight(id: DesignBlockId): number
2930
2828
 
2931
2829
  Gets the X position of the block's global bounding box.
2932
2830
  The position is in the scene's global coordinate space, with the origin at the top left.
2933
-
2934
2831
  ```javascript
2935
2832
  const globalX = engine.block.getGlobalBoundingBoxX(block);
2936
2833
  ```
@@ -2940,7 +2837,6 @@ getGlobalBoundingBoxX(id: DesignBlockId): number
2940
2837
  ```
2941
2838
 
2942
2839
  **Parameters:**
2943
-
2944
2840
  - `id` - The block whose bounding box should be calculated.
2945
2841
 
2946
2842
  **Returns:** The x coordinate of the axis-aligned bounding box.
@@ -2949,7 +2845,6 @@ getGlobalBoundingBoxX(id: DesignBlockId): number
2949
2845
 
2950
2846
  Gets the Y position of the block's global bounding box.
2951
2847
  The position is in the scene's global coordinate space, with the origin at the top left.
2952
-
2953
2848
  ```javascript
2954
2849
  const globalY = engine.block.getGlobalBoundingBoxY(block);
2955
2850
  ```
@@ -2959,7 +2854,6 @@ getGlobalBoundingBoxY(id: DesignBlockId): number
2959
2854
  ```
2960
2855
 
2961
2856
  **Parameters:**
2962
-
2963
2857
  - `id` - The block whose bounding box should be calculated.
2964
2858
 
2965
2859
  **Returns:** The y coordinate of the axis-aligned bounding box.
@@ -2968,7 +2862,6 @@ getGlobalBoundingBoxY(id: DesignBlockId): number
2968
2862
 
2969
2863
  Gets the width of the block's global bounding box.
2970
2864
  The width is in the scene's global coordinate space.
2971
-
2972
2865
  ```javascript
2973
2866
  const globalWidth = engine.block.getGlobalBoundingBoxWidth(block);
2974
2867
  ```
@@ -2978,7 +2871,6 @@ getGlobalBoundingBoxWidth(id: DesignBlockId): number
2978
2871
  ```
2979
2872
 
2980
2873
  **Parameters:**
2981
-
2982
2874
  - `id` - The block whose bounding box should be calculated.
2983
2875
 
2984
2876
  **Returns:** The width of the axis-aligned bounding box.
@@ -2987,7 +2879,6 @@ getGlobalBoundingBoxWidth(id: DesignBlockId): number
2987
2879
 
2988
2880
  Gets the height of the block's global bounding box.
2989
2881
  The height is in the scene's global coordinate space.
2990
-
2991
2882
  ```javascript
2992
2883
  const globalHeight = engine.block.getGlobalBoundingBoxHeight(block);
2993
2884
  ```
@@ -2997,7 +2888,6 @@ getGlobalBoundingBoxHeight(id: DesignBlockId): number
2997
2888
  ```
2998
2889
 
2999
2890
  **Parameters:**
3000
-
3001
2891
  - `id` - The block whose bounding box should be calculated.
3002
2892
 
3003
2893
  **Returns:** The height of the axis-aligned bounding box.
@@ -3005,7 +2895,6 @@ getGlobalBoundingBoxHeight(id: DesignBlockId): number
3005
2895
  ### getScreenSpaceBoundingBoxXYWH()
3006
2896
 
3007
2897
  Gets the screen-space bounding box for a set of blocks.
3008
-
3009
2898
  ```javascript
3010
2899
  const boundingBox = engine.block.getScreenSpaceBoundingBoxXYWH([block]);
3011
2900
  ```
@@ -3015,7 +2904,6 @@ getScreenSpaceBoundingBoxXYWH(ids: DesignBlockId[]): XYWH
3015
2904
  ```
3016
2905
 
3017
2906
  **Parameters:**
3018
-
3019
2907
  - `ids` - The block to query.
3020
2908
 
3021
2909
  **Returns:** The position and size of the bounding box.
@@ -3030,7 +2918,6 @@ alignHorizontally(ids: DesignBlockId[], horizontalBlockAlignment: TextHorizontal
3030
2918
  ```
3031
2919
 
3032
2920
  **Parameters:**
3033
-
3034
2921
  - `ids` - A non-empty array of block ids.
3035
2922
  - `horizontalBlockAlignment` - How they should be aligned: 'Left', 'Right', or 'Center'.
3036
2923
 
@@ -3044,7 +2931,6 @@ alignVertically(ids: DesignBlockId[], verticalBlockAlignment: TextVerticalAlignm
3044
2931
  ```
3045
2932
 
3046
2933
  **Parameters:**
3047
-
3048
2934
  - `ids` - A non-empty array of block ids.
3049
2935
  - `verticalBlockAlignment` - How they should be aligned: 'Top', 'Bottom', or 'Center'.
3050
2936
 
@@ -3058,7 +2944,6 @@ distributeHorizontally(ids: DesignBlockId[]): void
3058
2944
  ```
3059
2945
 
3060
2946
  **Parameters:**
3061
-
3062
2947
  - `ids` - A non-empty array of block ids.
3063
2948
 
3064
2949
  ### distributeVertically()
@@ -3071,7 +2956,6 @@ distributeVertically(ids: DesignBlockId[]): void
3071
2956
  ```
3072
2957
 
3073
2958
  **Parameters:**
3074
-
3075
2959
  - `ids` - A non-empty array of block ids.
3076
2960
 
3077
2961
  ### fillParent()
@@ -3084,7 +2968,6 @@ fillParent(id: DesignBlockId): void
3084
2968
  ```
3085
2969
 
3086
2970
  **Parameters:**
3087
-
3088
2971
  - `id` - The block that should fill its parent.
3089
2972
 
3090
2973
  ### resizeContentAware()
@@ -3092,7 +2975,6 @@ fillParent(id: DesignBlockId): void
3092
2975
  Resizes blocks while adjusting content to fit.
3093
2976
  The content of the blocks is automatically adjusted to fit the new dimensions.
3094
2977
  Full-page blocks are resized to remain as full-page afterwards, while the blocks that are not full-page get resized as a group to the same scale factor and centered.
3095
-
3096
2978
  ```javascript
3097
2979
  const pages = engine.scene.getPages();
3098
2980
  engine.block.resizeContentAware(pages, width: 100.0, 100.0);
@@ -3103,7 +2985,6 @@ resizeContentAware(ids: DesignBlockId[], width: number, height: number): void
3103
2985
  ```
3104
2986
 
3105
2987
  **Parameters:**
3106
-
3107
2988
  - `ids` - The blocks to resize.
3108
2989
  - `width` - The new width of the blocks.
3109
2990
  - `height` - The new height of the blocks.
@@ -3113,7 +2994,6 @@ resizeContentAware(ids: DesignBlockId[], width: number, height: number): void
3113
2994
  Scales a block and its children proportionally.
3114
2995
  This updates the position, size and style properties (e.g. stroke width) of
3115
2996
  the block and its children around the specified anchor point.
3116
-
3117
2997
  ```javascript
3118
2998
  // Scale a block to double its size, anchored at the center.
3119
2999
  engine.block.scale(block, 2.0, 0.5, 0.5);
@@ -3124,7 +3004,6 @@ scale(id: DesignBlockId, scale: number, anchorX?: number, anchorY?: number): voi
3124
3004
  ```
3125
3005
 
3126
3006
  **Parameters:**
3127
-
3128
3007
  - `id` - The block that should be scaled.
3129
3008
  - `scale` - The scale factor to be applied to the current properties of the block.
3130
3009
  - `anchorX` - The relative position along the width of the block around which the scaling should occur (0=left, 0.5=center, 1=right). Defaults to 0.
@@ -3146,7 +3025,6 @@ setSize(id: DesignBlockId, width: number, height: number, options?: {
3146
3025
  ```
3147
3026
 
3148
3027
  **Parameters:**
3149
-
3150
3028
  - `id` - The block to update.
3151
3029
  - `width` - The new width of the block.
3152
3030
  - `height` - The new height of the block.
@@ -3165,7 +3043,6 @@ setPosition(id: DesignBlockId, x: number, y: number, options?: {
3165
3043
  ```
3166
3044
 
3167
3045
  **Parameters:**
3168
-
3169
3046
  - `id` - The block to update.
3170
3047
  - `x` - The new x position of the block.
3171
3048
  - `y` - The new y position of the block.
@@ -3182,7 +3059,6 @@ addImage(url: string, options?: AddImageOptions): Promise<DesignBlockId>
3182
3059
  ```
3183
3060
 
3184
3061
  **Parameters:**
3185
-
3186
3062
  - `url` - URL or path to the image file
3187
3063
  - `options` - Configuration options for the image
3188
3064
 
@@ -3198,7 +3074,6 @@ addVideo(url: string, width: number, height: number, options?: AddVideoOptions):
3198
3074
  ```
3199
3075
 
3200
3076
  **Parameters:**
3201
-
3202
3077
  - `url` - URL or path to the video file
3203
3078
  - `width` - Width of the video in scene design units
3204
3079
  - `height` - Height of the video in scene design units
@@ -3215,7 +3090,6 @@ applyAnimation(block: DesignBlockId, animation?: AnimationOptions): void
3215
3090
  ```
3216
3091
 
3217
3092
  **Parameters:**
3218
-
3219
3093
  - `block` - The ID of the block to apply the animation to
3220
3094
  - `animation` - The animation configuration options
3221
3095
 
@@ -3228,7 +3102,6 @@ applyDropShadow(block: DesignBlockId, options?: DropShadowOptions): void
3228
3102
  ```
3229
3103
 
3230
3104
  **Parameters:**
3231
-
3232
3105
  - `block` - The ID of the block to apply the shadow to
3233
3106
  - `options` - Shadow configuration options. If not provided, enables shadow with default settings
3234
3107
 
@@ -3241,7 +3114,6 @@ generateThumbnailAtTimeOffset(height: number, time: number): Promise<Blob>
3241
3114
  ```
3242
3115
 
3243
3116
  **Parameters:**
3244
-
3245
3117
  - `height` - Height of the thumbnail in scene design units (maximum 512)
3246
3118
  - `time` - Time position in seconds to capture the thumbnail
3247
3119
 
@@ -3271,7 +3143,6 @@ moveToBackgroundTrack(block: DesignBlockId): void
3271
3143
  ```
3272
3144
 
3273
3145
  **Parameters:**
3274
-
3275
3146
  - `block` - The ID of the block to move to the background track
3276
3147
 
3277
3148
  ## Block Hierarchies
@@ -3287,7 +3158,6 @@ getParent(id: DesignBlockId): DesignBlockId | null
3287
3158
  ```
3288
3159
 
3289
3160
  **Parameters:**
3290
-
3291
3161
  - `id` - The block to query.
3292
3162
 
3293
3163
  **Returns:** The parent's handle or null if the block has no parent.
@@ -3302,7 +3172,6 @@ getChildren(id: DesignBlockId): DesignBlockId[]
3302
3172
  ```
3303
3173
 
3304
3174
  **Parameters:**
3305
-
3306
3175
  - `id` - The block to query.
3307
3176
 
3308
3177
  **Returns:** A list of block ids.
@@ -3316,7 +3185,6 @@ insertChild(parent: DesignBlockId, child: DesignBlockId, index: number): void
3316
3185
  ```
3317
3186
 
3318
3187
  **Parameters:**
3319
-
3320
3188
  - `parent` - The block whose children should be updated.
3321
3189
  - `child` - The child to insert. Can be an existing child of `parent`.
3322
3190
  - `index` - The index to insert or move to.
@@ -3330,7 +3198,6 @@ appendChild(parent: DesignBlockId, child: DesignBlockId): void
3330
3198
  ```
3331
3199
 
3332
3200
  **Parameters:**
3333
-
3334
3201
  - `parent` - The block whose children should be updated.
3335
3202
  - `child` - The child to insert. Can be an existing child of `parent`.
3336
3203
 
@@ -3347,7 +3214,6 @@ isAlignable(ids: DesignBlockId[]): boolean
3347
3214
  ```
3348
3215
 
3349
3216
  **Parameters:**
3350
-
3351
3217
  - `ids` - An array of block ids.
3352
3218
 
3353
3219
  **Returns:** Whether the blocks can be aligned.
@@ -3361,7 +3227,6 @@ isDistributable(ids: DesignBlockId[]): boolean
3361
3227
  ```
3362
3228
 
3363
3229
  **Parameters:**
3364
-
3365
3230
  - `ids` - An array of block ids.
3366
3231
 
3367
3232
  **Returns:** Whether the blocks can be distributed.
@@ -3379,7 +3244,6 @@ findAllProperties(id: DesignBlockId): string[]
3379
3244
  ```
3380
3245
 
3381
3246
  **Parameters:**
3382
-
3383
3247
  - `id` - The block whose properties should be queried.
3384
3248
 
3385
3249
  **Returns:** A list of the property names.
@@ -3393,7 +3257,6 @@ isPropertyReadable(property: string): boolean
3393
3257
  ```
3394
3258
 
3395
3259
  **Parameters:**
3396
-
3397
3260
  - `property` - The name of the property to check.
3398
3261
 
3399
3262
  **Returns:** Whether the property is readable. Returns false for unknown properties.
@@ -3407,7 +3270,6 @@ isPropertyWritable(property: string): boolean
3407
3270
  ```
3408
3271
 
3409
3272
  **Parameters:**
3410
-
3411
3273
  - `property` - The name of the property to check.
3412
3274
 
3413
3275
  **Returns:** Whether the property is writable. Returns false for unknown properties.
@@ -3421,7 +3283,6 @@ getPropertyType(property: string): PropertyType
3421
3283
  ```
3422
3284
 
3423
3285
  **Parameters:**
3424
-
3425
3286
  - `property` - The name of the property whose type should be queried.
3426
3287
 
3427
3288
  **Returns:** The property type.
@@ -3435,7 +3296,6 @@ getEnumValues<T = string>(enumProperty: string): T[]
3435
3296
  ```
3436
3297
 
3437
3298
  **Parameters:**
3438
-
3439
3299
  - `enumProperty` - The name of the property whose enum values should be queried.
3440
3300
 
3441
3301
  **Returns:** A list of the enum value names as a string array.
@@ -3443,7 +3303,6 @@ getEnumValues<T = string>(enumProperty: string): T[]
3443
3303
  ### setBool()
3444
3304
 
3445
3305
  Sets a boolean property on a block.
3446
-
3447
3306
  ```javascript
3448
3307
  engine.block.setBool(scene, 'scene/aspectRatioLock', false);
3449
3308
  ```
@@ -3453,7 +3312,6 @@ setBool(id: DesignBlockId, property: BoolPropertyName, value: boolean): void
3453
3312
  ```
3454
3313
 
3455
3314
  **Parameters:**
3456
-
3457
3315
  - `id` - The block whose property should be set.
3458
3316
  - `property` - The name of the property to set.
3459
3317
  - `value` - The value to set.
@@ -3461,7 +3319,6 @@ setBool(id: DesignBlockId, property: BoolPropertyName, value: boolean): void
3461
3319
  ### getBool()
3462
3320
 
3463
3321
  Gets a boolean property from a block.
3464
-
3465
3322
  ```javascript
3466
3323
  engine.block.getBool(scene, 'scene/aspectRatioLock');
3467
3324
  ```
@@ -3471,7 +3328,6 @@ getBool(id: DesignBlockId, property: BoolPropertyName): boolean
3471
3328
  ```
3472
3329
 
3473
3330
  **Parameters:**
3474
-
3475
3331
  - `id` - The block whose property should be queried.
3476
3332
  - `property` - The name of the property to query.
3477
3333
 
@@ -3480,7 +3336,6 @@ getBool(id: DesignBlockId, property: BoolPropertyName): boolean
3480
3336
  ### setInt()
3481
3337
 
3482
3338
  Sets an integer property on a block.
3483
-
3484
3339
  ```javascript
3485
3340
  engine.block.setInt(starShape, 'shape/star/points', points + 2);
3486
3341
  ```
@@ -3490,7 +3345,6 @@ setInt(id: DesignBlockId, property: IntPropertyName, value: number): void
3490
3345
  ```
3491
3346
 
3492
3347
  **Parameters:**
3493
-
3494
3348
  - `id` - The block whose property should be set.
3495
3349
  - `property` - The name of the property to set.
3496
3350
  - `value` - The value to set.
@@ -3498,7 +3352,6 @@ setInt(id: DesignBlockId, property: IntPropertyName, value: number): void
3498
3352
  ### getInt()
3499
3353
 
3500
3354
  Gets an integer property from a block.
3501
-
3502
3355
  ```javascript
3503
3356
  engine.block.setInt(starShape, 'shape/star/points', points + 2);
3504
3357
  ```
@@ -3508,7 +3361,6 @@ getInt(id: DesignBlockId, property: IntPropertyName): number
3508
3361
  ```
3509
3362
 
3510
3363
  **Parameters:**
3511
-
3512
3364
  - `id` - The block whose property should be queried.
3513
3365
  - `property` - The name of the property to query.
3514
3366
 
@@ -3517,10 +3369,9 @@ getInt(id: DesignBlockId, property: IntPropertyName): number
3517
3369
  ### setFloat()
3518
3370
 
3519
3371
  Sets a float property on a block.
3520
-
3521
3372
  ```javascript
3522
- engine.block.setFloat(text, 'text/letterSpacing', 0.2);
3523
- engine.block.setFloat(text, 'text/lineHeight', 1.2);
3373
+ engine.block.setFloat(text, "text/letterSpacing", 0.2);
3374
+ engine.block.setFloat(text, "text/lineHeight", 1.2);
3524
3375
  ```
3525
3376
 
3526
3377
  ```typescript
@@ -3528,7 +3379,6 @@ setFloat(id: DesignBlockId, property: FloatPropertyName, value: number): void
3528
3379
  ```
3529
3380
 
3530
3381
  **Parameters:**
3531
-
3532
3382
  - `id` - The block whose property should be set.
3533
3383
  - `property` - The name of the property to set.
3534
3384
  - `value` - The value to set.
@@ -3536,7 +3386,6 @@ setFloat(id: DesignBlockId, property: FloatPropertyName, value: number): void
3536
3386
  ### getFloat()
3537
3387
 
3538
3388
  Gets a float property from a block.
3539
-
3540
3389
  ```javascript
3541
3390
  engine.block.getFloat(starShape, 'shape/star/innerDiameter');
3542
3391
  ```
@@ -3546,7 +3395,6 @@ getFloat(id: DesignBlockId, property: FloatPropertyName): number
3546
3395
  ```
3547
3396
 
3548
3397
  **Parameters:**
3549
-
3550
3398
  - `id` - The block whose property should be queried.
3551
3399
  - `property` - The name of the property to query.
3552
3400
 
@@ -3555,7 +3403,6 @@ getFloat(id: DesignBlockId, property: FloatPropertyName): number
3555
3403
  ### setDouble()
3556
3404
 
3557
3405
  Sets a double-precision float property on a block.
3558
-
3559
3406
  ```javascript
3560
3407
  engine.block.setDouble(audio, 'playback/duration', 1.0);
3561
3408
  ```
@@ -3565,7 +3412,6 @@ setDouble(id: DesignBlockId, property: DoublePropertyName, value: number): void
3565
3412
  ```
3566
3413
 
3567
3414
  **Parameters:**
3568
-
3569
3415
  - `id` - The block whose property should be set.
3570
3416
  - `property` - The name of the property to set.
3571
3417
  - `value` - The value to set.
@@ -3573,7 +3419,6 @@ setDouble(id: DesignBlockId, property: DoublePropertyName, value: number): void
3573
3419
  ### getDouble()
3574
3420
 
3575
3421
  Gets a double-precision float property from a block.
3576
-
3577
3422
  ```javascript
3578
3423
  engine.block.getDouble(audio, 'playback/duration');
3579
3424
  ```
@@ -3583,7 +3428,6 @@ getDouble(id: DesignBlockId, property: DoublePropertyName): number
3583
3428
  ```
3584
3429
 
3585
3430
  **Parameters:**
3586
-
3587
3431
  - `id` - The block whose property should be queried.
3588
3432
  - `property` - The name of the property to query.
3589
3433
 
@@ -3592,14 +3436,9 @@ getDouble(id: DesignBlockId, property: DoublePropertyName): number
3592
3436
  ### setString()
3593
3437
 
3594
3438
  Sets a string property on a block.
3595
-
3596
3439
  ```javascript
3597
3440
  engine.block.setString(text, 'text/text', 'Hello World');
3598
- engine.block.setString(
3599
- imageFill,
3600
- 'fill/image/imageFileURI',
3601
- 'https://example.com/sample.jpg'
3602
- );
3441
+ engine.block.setString(imageFill, 'fill/image/imageFileURI', 'https://example.com/sample.jpg');
3603
3442
  ```
3604
3443
 
3605
3444
  ```typescript
@@ -3607,7 +3446,6 @@ setString(id: DesignBlockId, property: StringPropertyName, value: string): void
3607
3446
  ```
3608
3447
 
3609
3448
  **Parameters:**
3610
-
3611
3449
  - `id` - The block whose property should be set.
3612
3450
  - `property` - The name of the property to set.
3613
3451
  - `value` - The value to set.
@@ -3615,7 +3453,6 @@ setString(id: DesignBlockId, property: StringPropertyName, value: string): void
3615
3453
  ### getString()
3616
3454
 
3617
3455
  Gets a string property from a block.
3618
-
3619
3456
  ```javascript
3620
3457
  engine.block.getString(text, 'text/text');
3621
3458
  engine.block.getString(imageFill, 'fill/image/imageFileURI');
@@ -3626,7 +3463,6 @@ getString(id: DesignBlockId, property: StringPropertyName): string
3626
3463
  ```
3627
3464
 
3628
3465
  **Parameters:**
3629
-
3630
3466
  - `id` - The block whose property should be queried.
3631
3467
  - `property` - The name of the property to query.
3632
3468
 
@@ -3635,15 +3471,9 @@ getString(id: DesignBlockId, property: StringPropertyName): string
3635
3471
  ### setColor()
3636
3472
 
3637
3473
  Sets a color property on a block.
3638
-
3639
3474
  ```javascript
3640
3475
  // Set the block's fill color to white.
3641
- engine.block.setColor(colorFill, 'fill/color/value', {
3642
- r: 1,
3643
- g: 1,
3644
- b: 1,
3645
- a: 1
3646
- });
3476
+ engine.block.setColor(colorFill, 'fill/color/value', { r: 1, g: 1, b: 1, a: 1 });
3647
3477
  ```
3648
3478
 
3649
3479
  ```typescript
@@ -3651,7 +3481,6 @@ setColor(id: DesignBlockId, property: ColorPropertyName, value: Color): void
3651
3481
  ```
3652
3482
 
3653
3483
  **Parameters:**
3654
-
3655
3484
  - `id` - The block whose property should be set.
3656
3485
  - `property` - The name of the property to set.
3657
3486
  - `value` - The value to set.
@@ -3659,7 +3488,6 @@ setColor(id: DesignBlockId, property: ColorPropertyName, value: Color): void
3659
3488
  ### getColor()
3660
3489
 
3661
3490
  Gets a color property from a block.
3662
-
3663
3491
  ```javascript
3664
3492
  engine.block.getColor(colorFill, 'fill/color/value');
3665
3493
  ```
@@ -3669,13 +3497,12 @@ getColor(id: DesignBlockId, property: ColorPropertyName): Color
3669
3497
  ```
3670
3498
 
3671
3499
  **Parameters:**
3672
-
3673
3500
  - `id` - The block whose property should be queried.
3674
3501
  - `property` - The name of the property to query.
3675
3502
 
3676
3503
  **Returns:** The value of the property.
3677
3504
 
3678
- ### setColorRGBA() _(deprecated)_
3505
+ ### setColorRGBA() *(deprecated)*
3679
3506
 
3680
3507
  Sets a color property on a block using RGBA values.
3681
3508
 
@@ -3684,7 +3511,6 @@ setColorRGBA(id: DesignBlockId, property: string, r: number, g: number, b: numbe
3684
3511
  ```
3685
3512
 
3686
3513
  **Parameters:**
3687
-
3688
3514
  - `id` - The block whose property should be set.
3689
3515
  - `property` - The name of the property to set.
3690
3516
  - `r` - The red color component in the range of 0 to 1.
@@ -3692,7 +3518,7 @@ setColorRGBA(id: DesignBlockId, property: string, r: number, g: number, b: numbe
3692
3518
  - `b` - The blue color component in the range of 0 to 1.
3693
3519
  - `a` - The alpha color component in the range of 0 to 1. Defaults to 1.
3694
3520
 
3695
- ### getColorRGBA() _(deprecated)_
3521
+ ### getColorRGBA() *(deprecated)*
3696
3522
 
3697
3523
  Gets a color property from a block as RGBA values.
3698
3524
 
@@ -3701,13 +3527,12 @@ getColorRGBA(id: DesignBlockId, property: string): RGBA
3701
3527
  ```
3702
3528
 
3703
3529
  **Parameters:**
3704
-
3705
3530
  - `id` - The block whose property should be queried.
3706
3531
  - `property` - The name of the property to query.
3707
3532
 
3708
3533
  **Returns:** A tuple of channels red, green, blue and alpha in the range of 0 to 1.
3709
3534
 
3710
- ### setColorSpot() _(deprecated)_
3535
+ ### setColorSpot() *(deprecated)*
3711
3536
 
3712
3537
  Sets a spot color property on a block.
3713
3538
 
@@ -3716,13 +3541,12 @@ setColorSpot(id: DesignBlockId, property: string, name: string, tint?: number):
3716
3541
  ```
3717
3542
 
3718
3543
  **Parameters:**
3719
-
3720
3544
  - `id` - The block whose property should be set.
3721
3545
  - `property` - The name of the property to set.
3722
3546
  - `name` - The name of the spot color.
3723
3547
  - `tint` - The tint factor in the range of 0 to 1. Defaults to 1.
3724
3548
 
3725
- ### getColorSpotName() _(deprecated)_
3549
+ ### getColorSpotName() *(deprecated)*
3726
3550
 
3727
3551
  Gets the spot color name from a color property.
3728
3552
 
@@ -3731,13 +3555,12 @@ getColorSpotName(id: DesignBlockId, property: string): string
3731
3555
  ```
3732
3556
 
3733
3557
  **Parameters:**
3734
-
3735
3558
  - `id` - The block whose property should be queried.
3736
3559
  - `property` - The name of the property to query.
3737
3560
 
3738
3561
  **Returns:** The name of the spot color.
3739
3562
 
3740
- ### getColorSpotTint() _(deprecated)_
3563
+ ### getColorSpotTint() *(deprecated)*
3741
3564
 
3742
3565
  Gets the spot color tint from a color property.
3743
3566
 
@@ -3746,7 +3569,6 @@ getColorSpotTint(id: DesignBlockId, property: string): number
3746
3569
  ```
3747
3570
 
3748
3571
  **Parameters:**
3749
-
3750
3572
  - `id` - The block whose property should be queried.
3751
3573
  - `property` - The name of the property to query.
3752
3574
 
@@ -3755,7 +3577,6 @@ getColorSpotTint(id: DesignBlockId, property: string): number
3755
3577
  ### setEnum<T extends keyof BlockEnumType>()
3756
3578
 
3757
3579
  Sets an enum property on a block.
3758
-
3759
3580
  ```javascript
3760
3581
  engine.block.setEnum(text, 'text/horizontalAlignment', 'Center');
3761
3582
  engine.block.setEnum(text, 'text/verticalAlignment', 'Center');
@@ -3766,7 +3587,6 @@ setEnum<T extends keyof BlockEnumType>(id: DesignBlockId, property: T, value: Bl
3766
3587
  ```
3767
3588
 
3768
3589
  **Parameters:**
3769
-
3770
3590
  - `id` - The block whose property should be set.
3771
3591
  - `property` - The name of the property to set.
3772
3592
  - `value` - The enum value as a string.
@@ -3774,7 +3594,6 @@ setEnum<T extends keyof BlockEnumType>(id: DesignBlockId, property: T, value: Bl
3774
3594
  ### getEnum<T extends keyof BlockEnumType>()
3775
3595
 
3776
3596
  Gets an enum property from a block.
3777
-
3778
3597
  ```javascript
3779
3598
  engine.block.getEnum(text, 'text/horizontalAlignment');
3780
3599
  engine.block.getEnum(text, 'text/verticalAlignment');
@@ -3785,7 +3604,6 @@ getEnum<T extends keyof BlockEnumType>(id: DesignBlockId, property: T): BlockEnu
3785
3604
  ```
3786
3605
 
3787
3606
  **Parameters:**
3788
-
3789
3607
  - `id` - The block whose property should be queried.
3790
3608
  - `property` - The name of the property to query.
3791
3609
 
@@ -3795,7 +3613,7 @@ getEnum<T extends keyof BlockEnumType>(id: DesignBlockId, property: T): BlockEnu
3795
3613
 
3796
3614
  Crop, scale, translate, and transform block content.
3797
3615
 
3798
- ### hasCrop() _(deprecated)_
3616
+ ### hasCrop() *(deprecated)*
3799
3617
 
3800
3618
  Checks if a block has crop properties.
3801
3619
 
@@ -3804,7 +3622,6 @@ hasCrop(id: DesignBlockId): boolean
3804
3622
  ```
3805
3623
 
3806
3624
  **Parameters:**
3807
-
3808
3625
  - `id` - The block to query.
3809
3626
 
3810
3627
  **Returns:** true, if the block has crop properties.
@@ -3812,7 +3629,6 @@ hasCrop(id: DesignBlockId): boolean
3812
3629
  ### supportsCrop()
3813
3630
 
3814
3631
  Checks if a block supports cropping.
3815
-
3816
3632
  ```javascript
3817
3633
  engine.block.supportsCrop(image);
3818
3634
  ```
@@ -3822,7 +3638,6 @@ supportsCrop(id: DesignBlockId): boolean
3822
3638
  ```
3823
3639
 
3824
3640
  **Parameters:**
3825
-
3826
3641
  - `id` - The block to query.
3827
3642
 
3828
3643
  **Returns:** true, if the block supports cropping.
@@ -3830,7 +3645,6 @@ supportsCrop(id: DesignBlockId): boolean
3830
3645
  ### setCropScaleX()
3831
3646
 
3832
3647
  Sets the horizontal crop scale of a block.
3833
-
3834
3648
  ```javascript
3835
3649
  engine.block.setCropScaleX(image, 2.0);
3836
3650
  ```
@@ -3840,14 +3654,12 @@ setCropScaleX(id: DesignBlockId, scaleX: number): void
3840
3654
  ```
3841
3655
 
3842
3656
  **Parameters:**
3843
-
3844
3657
  - `id` - The block whose crop should be set.
3845
3658
  - `scaleX` - The scale in x direction.
3846
3659
 
3847
3660
  ### setCropScaleY()
3848
3661
 
3849
3662
  Sets the vertical crop scale of a block.
3850
-
3851
3663
  ```javascript
3852
3664
  engine.block.setCropScaleY(image, 1.5);
3853
3665
  ```
@@ -3857,14 +3669,12 @@ setCropScaleY(id: DesignBlockId, scaleY: number): void
3857
3669
  ```
3858
3670
 
3859
3671
  **Parameters:**
3860
-
3861
3672
  - `id` - The block whose crop should be set.
3862
3673
  - `scaleY` - The scale in y direction.
3863
3674
 
3864
3675
  ### setCropRotation()
3865
3676
 
3866
3677
  Sets the crop rotation of a block in radians.
3867
-
3868
3678
  ```javascript
3869
3679
  engine.block.setCropRotation(image, Math.PI);
3870
3680
  ```
@@ -3874,7 +3684,6 @@ setCropRotation(id: DesignBlockId, rotation: number): void
3874
3684
  ```
3875
3685
 
3876
3686
  **Parameters:**
3877
-
3878
3687
  - `id` - The block whose crop should be set.
3879
3688
  - `rotation` - The rotation in radians.
3880
3689
 
@@ -3882,7 +3691,6 @@ setCropRotation(id: DesignBlockId, rotation: number): void
3882
3691
 
3883
3692
  Sets the uniform crop scale ratio of a block.
3884
3693
  This scales the content up or down from the center of the crop frame.
3885
-
3886
3694
  ```javascript
3887
3695
  engine.block.setCropScaleRatio(image, 3.0);
3888
3696
  ```
@@ -3892,14 +3700,12 @@ setCropScaleRatio(id: DesignBlockId, scaleRatio: number): void
3892
3700
  ```
3893
3701
 
3894
3702
  **Parameters:**
3895
-
3896
3703
  - `id` - The block whose crop should be set.
3897
3704
  - `scaleRatio` - The crop scale ratio.
3898
3705
 
3899
3706
  ### setCropTranslationX()
3900
3707
 
3901
3708
  Sets the horizontal crop translation of a block in percentage of the crop frame width.
3902
-
3903
3709
  ```javascript
3904
3710
  engine.block.setCropTranslationX(image, -1.0);
3905
3711
  ```
@@ -3909,14 +3715,12 @@ setCropTranslationX(id: DesignBlockId, translationX: number): void
3909
3715
  ```
3910
3716
 
3911
3717
  **Parameters:**
3912
-
3913
3718
  - `id` - The block whose crop should be set.
3914
3719
  - `translationX` - The translation in x direction.
3915
3720
 
3916
3721
  ### setCropTranslationY()
3917
3722
 
3918
3723
  Sets the vertical crop translation of a block in percentage of the crop frame height.
3919
-
3920
3724
  ```javascript
3921
3725
  engine.block.setCropTranslationY(image, 1.0);
3922
3726
  ```
@@ -3926,7 +3730,6 @@ setCropTranslationY(id: DesignBlockId, translationY: number): void
3926
3730
  ```
3927
3731
 
3928
3732
  **Parameters:**
3929
-
3930
3733
  - `id` - The block whose crop should be set.
3931
3734
  - `translationY` - The translation in y direction.
3932
3735
 
@@ -3934,7 +3737,6 @@ setCropTranslationY(id: DesignBlockId, translationY: number): void
3934
3737
 
3935
3738
  Resets the crop of a block to its default state.
3936
3739
  The block's content fill mode is set to 'Cover'.
3937
-
3938
3740
  ```javascript
3939
3741
  engine.block.resetCrop(image);
3940
3742
  ```
@@ -3944,13 +3746,11 @@ resetCrop(id: DesignBlockId): void
3944
3746
  ```
3945
3747
 
3946
3748
  **Parameters:**
3947
-
3948
3749
  - `id` - The block whose crop should be reset.
3949
3750
 
3950
3751
  ### getCropScaleX()
3951
3752
 
3952
3753
  Gets the horizontal crop scale of a block.
3953
-
3954
3754
  ```javascript
3955
3755
  const scaleX = engine.block.getCropScaleX(image);
3956
3756
  ```
@@ -3960,7 +3760,6 @@ getCropScaleX(id: DesignBlockId): number
3960
3760
  ```
3961
3761
 
3962
3762
  **Parameters:**
3963
-
3964
3763
  - `id` - The block whose scale should be queried.
3965
3764
 
3966
3765
  **Returns:** The scale on the x axis.
@@ -3968,7 +3767,6 @@ getCropScaleX(id: DesignBlockId): number
3968
3767
  ### getCropScaleY()
3969
3768
 
3970
3769
  Gets the vertical crop scale of a block.
3971
-
3972
3770
  ```javascript
3973
3771
  const scaleY = engine.block.getCropScaleY(image);
3974
3772
  ```
@@ -3978,7 +3776,6 @@ getCropScaleY(id: DesignBlockId): number
3978
3776
  ```
3979
3777
 
3980
3778
  **Parameters:**
3981
-
3982
3779
  - `id` - The block whose scale should be queried.
3983
3780
 
3984
3781
  **Returns:** The scale on the y axis.
@@ -3986,7 +3783,6 @@ getCropScaleY(id: DesignBlockId): number
3986
3783
  ### getCropRotation()
3987
3784
 
3988
3785
  Gets the crop rotation of a block in radians.
3989
-
3990
3786
  ```javascript
3991
3787
  const cropRotation = engine.block.getCropRotation(image);
3992
3788
  ```
@@ -3996,7 +3792,6 @@ getCropRotation(id: DesignBlockId): number
3996
3792
  ```
3997
3793
 
3998
3794
  **Parameters:**
3999
-
4000
3795
  - `id` - The block whose crop rotation should be queried.
4001
3796
 
4002
3797
  **Returns:** The crop rotation in radians.
@@ -4004,7 +3799,6 @@ getCropRotation(id: DesignBlockId): number
4004
3799
  ### getCropScaleRatio()
4005
3800
 
4006
3801
  Gets the uniform crop scale ratio of a block.
4007
-
4008
3802
  ```javascript
4009
3803
  const cropScaleRatio = engine.block.getCropScaleRatio(image);
4010
3804
  ```
@@ -4014,7 +3808,6 @@ getCropScaleRatio(id: DesignBlockId): number
4014
3808
  ```
4015
3809
 
4016
3810
  **Parameters:**
4017
-
4018
3811
  - `id` - The block whose crop scale ratio should be queried.
4019
3812
 
4020
3813
  **Returns:** The crop scale ratio.
@@ -4022,7 +3815,6 @@ getCropScaleRatio(id: DesignBlockId): number
4022
3815
  ### getCropTranslationX()
4023
3816
 
4024
3817
  Gets the horizontal crop translation of a block in percentage of the crop frame width.
4025
-
4026
3818
  ```javascript
4027
3819
  const cropTranslationX = engine.block.getCropTranslationX(image);
4028
3820
  ```
@@ -4032,7 +3824,6 @@ getCropTranslationX(id: DesignBlockId): number
4032
3824
  ```
4033
3825
 
4034
3826
  **Parameters:**
4035
-
4036
3827
  - `id` - The block whose translation should be queried.
4037
3828
 
4038
3829
  **Returns:** The translation on the x axis.
@@ -4040,7 +3831,6 @@ getCropTranslationX(id: DesignBlockId): number
4040
3831
  ### getCropTranslationY()
4041
3832
 
4042
3833
  Gets the vertical crop translation of a block in percentage of the crop frame height.
4043
-
4044
3834
  ```javascript
4045
3835
  const cropTranslationY = engine.block.getCropTranslationY(image);
4046
3836
  ```
@@ -4050,7 +3840,6 @@ getCropTranslationY(id: DesignBlockId): number
4050
3840
  ```
4051
3841
 
4052
3842
  **Parameters:**
4053
-
4054
3843
  - `id` - The block whose translation should be queried.
4055
3844
 
4056
3845
  **Returns:** The translation on the y axis.
@@ -4058,7 +3847,6 @@ getCropTranslationY(id: DesignBlockId): number
4058
3847
  ### adjustCropToFillFrame()
4059
3848
 
4060
3849
  Adjusts the crop position and scale of the given image block to fill its crop frame, while maintaining the position and size of the crop frame.
4061
-
4062
3850
  ```javascript
4063
3851
  const adjustedScaleRatio = engine.block.adjustCropToFillFrame(image, 1.0);
4064
3852
  ```
@@ -4068,7 +3856,6 @@ adjustCropToFillFrame(id: DesignBlockId, minScaleRatio: number): number
4068
3856
  ```
4069
3857
 
4070
3858
  **Parameters:**
4071
-
4072
3859
  - `id` - The block whose crop should be adjusted.
4073
3860
  - `minScaleRatio` - The minimal crop scale ratio to use.
4074
3861
 
@@ -4077,7 +3864,6 @@ adjustCropToFillFrame(id: DesignBlockId, minScaleRatio: number): number
4077
3864
  ### flipCropHorizontal()
4078
3865
 
4079
3866
  Flips the content horizontally within its crop frame.
4080
-
4081
3867
  ```javascript
4082
3868
  engine.block.flipCropHorizontal(image);
4083
3869
  ```
@@ -4087,13 +3873,11 @@ flipCropHorizontal(id: DesignBlockId): void
4087
3873
  ```
4088
3874
 
4089
3875
  **Parameters:**
4090
-
4091
3876
  - `id` - The block whose crop should be updated.
4092
3877
 
4093
3878
  ### flipCropVertical()
4094
3879
 
4095
3880
  Flips the content vertically within its crop frame.
4096
-
4097
3881
  ```javascript
4098
3882
  engine.block.flipCropVertical(image);
4099
3883
  ```
@@ -4103,14 +3887,12 @@ flipCropVertical(id: DesignBlockId): void
4103
3887
  ```
4104
3888
 
4105
3889
  **Parameters:**
4106
-
4107
3890
  - `id` - The block whose crop should be updated.
4108
3891
 
4109
3892
  ### isCropAspectRatioLocked()
4110
3893
 
4111
3894
  Checks if the crop aspect ratio is locked for a block.
4112
3895
  When locked, crop handles will maintain the current aspect ratio during resize.
4113
-
4114
3896
  ```javascript
4115
3897
  const isLocked = engine.block.isCropAspectRatioLocked(block);
4116
3898
  ```
@@ -4120,7 +3902,6 @@ isCropAspectRatioLocked(id: DesignBlockId): boolean
4120
3902
  ```
4121
3903
 
4122
3904
  **Parameters:**
4123
-
4124
3905
  - `id` - The block to query.
4125
3906
 
4126
3907
  **Returns:** True if aspect ratio is locked, false otherwise.
@@ -4130,7 +3911,6 @@ isCropAspectRatioLocked(id: DesignBlockId): boolean
4130
3911
  Sets whether the crop aspect ratio should be locked for a block.
4131
3912
  When enabled, crop handles will maintain the current aspect ratio.
4132
3913
  When disabled, free resizing is allowed.
4133
-
4134
3914
  ```javascript
4135
3915
  engine.block.setCropAspectRatioLocked(block, true);
4136
3916
  ```
@@ -4140,10 +3920,31 @@ setCropAspectRatioLocked(id: DesignBlockId, locked: boolean): void
4140
3920
  ```
4141
3921
 
4142
3922
  **Parameters:**
4143
-
4144
3923
  - `id` - The block to update.
4145
3924
  - `locked` - Whether aspect ratio should be locked.
4146
3925
 
3926
+ ### canRevertToOriginalRatio()
3927
+
3928
+ Checks whether the "Original" crop preset (`ContentAspectRatio`) can be applied to a block.
3929
+ This runs the same preliminary check the apply path performs: it resolves the intrinsic
3930
+ content dimensions from the block's image/video fill (an image fill resolves only from its
3931
+ `sourceSet`; a video fill resolves from its `sourceSet` or the first decoded frame). Use it
3932
+ to gate UI that would otherwise call the preset and fail — e.g. an unreplaced placeholder
3933
+ image fill with an empty `sourceSet`.
3934
+ ```javascript
3935
+ const canRevert = engine.block.canRevertToOriginalRatio(block);
3936
+ ```
3937
+
3938
+ ```typescript
3939
+ canRevertToOriginalRatio(id: DesignBlockId): boolean
3940
+ ```
3941
+
3942
+ **Parameters:**
3943
+ - `id` - The block to query.
3944
+
3945
+ **Returns:** True if the preset would resolve, false if it cannot (no/placeholder fill, empty
3946
+ sourceSet, video not yet decoded, or unsupported fill type).
3947
+
4147
3948
  ## Block Effects
4148
3949
 
4149
3950
  Create, manage, and apply various visual effects to blocks.
@@ -4157,12 +3958,11 @@ createEffect(type: EffectType): DesignBlockId
4157
3958
  ```
4158
3959
 
4159
3960
  **Parameters:**
4160
-
4161
3961
  - `type` - The type of the effect.
4162
3962
 
4163
3963
  **Returns:** The created effect's handle.
4164
3964
 
4165
- ### hasEffects() _(deprecated)_
3965
+ ### hasEffects() *(deprecated)*
4166
3966
 
4167
3967
  Checks if a block supports effects.
4168
3968
 
@@ -4171,7 +3971,6 @@ hasEffects(id: DesignBlockId): boolean
4171
3971
  ```
4172
3972
 
4173
3973
  **Parameters:**
4174
-
4175
3974
  - `id` - The block to query.
4176
3975
 
4177
3976
  **Returns:** True, if the block can render effects, false otherwise.
@@ -4185,7 +3984,6 @@ supportsEffects(id: DesignBlockId): boolean
4185
3984
  ```
4186
3985
 
4187
3986
  **Parameters:**
4188
-
4189
3987
  - `id` - The block to query.
4190
3988
 
4191
3989
  **Returns:** True, if the block can render effects, false otherwise.
@@ -4199,7 +3997,6 @@ getEffects(id: DesignBlockId): DesignBlockId[]
4199
3997
  ```
4200
3998
 
4201
3999
  **Parameters:**
4202
-
4203
4000
  - `id` - The block to query.
4204
4001
 
4205
4002
  **Returns:** A list of effects or an error, if the block doesn't support effects.
@@ -4213,7 +4010,6 @@ insertEffect(id: DesignBlockId, effectId: DesignBlockId, index: number): void
4213
4010
  ```
4214
4011
 
4215
4012
  **Parameters:**
4216
-
4217
4013
  - `id` - The block to update.
4218
4014
  - `effectId` - The effect to insert.
4219
4015
  - `index` - The index at which the effect shall be inserted.
@@ -4227,7 +4023,6 @@ appendEffect(id: DesignBlockId, effectId: DesignBlockId): void
4227
4023
  ```
4228
4024
 
4229
4025
  **Parameters:**
4230
-
4231
4026
  - `id` - The block to append the effect to.
4232
4027
  - `effectId` - The effect to append.
4233
4028
 
@@ -4240,11 +4035,10 @@ removeEffect(id: DesignBlockId, index: number): void
4240
4035
  ```
4241
4036
 
4242
4037
  **Parameters:**
4243
-
4244
4038
  - `id` - The block to remove the effect from.
4245
4039
  - `index` - The index where the effect is stored.
4246
4040
 
4247
- ### hasEffectEnabled() _(deprecated)_
4041
+ ### hasEffectEnabled() *(deprecated)*
4248
4042
 
4249
4043
  Checks if an effect block can be enabled or disabled.
4250
4044
 
@@ -4253,7 +4047,6 @@ hasEffectEnabled(effectId: DesignBlockId): boolean
4253
4047
  ```
4254
4048
 
4255
4049
  **Parameters:**
4256
-
4257
4050
  - `effectId` - The 'effect' block to query.
4258
4051
 
4259
4052
  **Returns:** True, if the block supports enabling and disabling, false otherwise.
@@ -4261,7 +4054,6 @@ hasEffectEnabled(effectId: DesignBlockId): boolean
4261
4054
  ### setEffectEnabled()
4262
4055
 
4263
4056
  Sets the enabled state of an effect block.
4264
-
4265
4057
  ```javascript
4266
4058
  engine.block.setEffectEnabled(effects[0], false);
4267
4059
  ```
@@ -4271,14 +4063,12 @@ setEffectEnabled(effectId: DesignBlockId, enabled: boolean): void
4271
4063
  ```
4272
4064
 
4273
4065
  **Parameters:**
4274
-
4275
4066
  - `effectId` - The 'effect' block to update.
4276
4067
  - `enabled` - The new state.
4277
4068
 
4278
4069
  ### isEffectEnabled()
4279
4070
 
4280
4071
  Queries if an effect block is enabled.
4281
-
4282
4072
  ```javascript
4283
4073
  engine.block.isEffectEnabled(effects[0]);
4284
4074
  ```
@@ -4288,7 +4078,6 @@ isEffectEnabled(effectId: DesignBlockId): boolean
4288
4078
  ```
4289
4079
 
4290
4080
  **Parameters:**
4291
-
4292
4081
  - `effectId` - The 'effect' block to query.
4293
4082
 
4294
4083
  **Returns:** True, if the effect is enabled. False otherwise.
@@ -4306,12 +4095,11 @@ createBlur(type: BlurType): DesignBlockId
4306
4095
  ```
4307
4096
 
4308
4097
  **Parameters:**
4309
-
4310
4098
  - `type` - The type of blur.
4311
4099
 
4312
4100
  **Returns:** The handle of the newly created blur.
4313
4101
 
4314
- ### hasBlur() _(deprecated)_
4102
+ ### hasBlur() *(deprecated)*
4315
4103
 
4316
4104
  Checks if a block supports blur.
4317
4105
 
@@ -4320,7 +4108,6 @@ hasBlur(id: DesignBlockId): boolean
4320
4108
  ```
4321
4109
 
4322
4110
  **Parameters:**
4323
-
4324
4111
  - `id` - The block to query.
4325
4112
 
4326
4113
  **Returns:** True, if the block supports blur.
@@ -4334,7 +4121,6 @@ supportsBlur(id: DesignBlockId): boolean
4334
4121
  ```
4335
4122
 
4336
4123
  **Parameters:**
4337
-
4338
4124
  - `id` - The block to query.
4339
4125
 
4340
4126
  **Returns:** True, if the block supports blur.
@@ -4348,7 +4134,6 @@ setBlur(id: DesignBlockId, blurId: DesignBlockId): void
4348
4134
  ```
4349
4135
 
4350
4136
  **Parameters:**
4351
-
4352
4137
  - `id` - The block to update.
4353
4138
  - `blurId` - A 'blur' block to apply.
4354
4139
 
@@ -4361,7 +4146,6 @@ getBlur(id: DesignBlockId): DesignBlockId
4361
4146
  ```
4362
4147
 
4363
4148
  **Parameters:**
4364
-
4365
4149
  - `id` - The block to query.
4366
4150
 
4367
4151
  **Returns:** The 'blur' block.
@@ -4369,7 +4153,6 @@ getBlur(id: DesignBlockId): DesignBlockId
4369
4153
  ### setBlurEnabled()
4370
4154
 
4371
4155
  Enables or disables the blur effect on a block.
4372
-
4373
4156
  ```javascript
4374
4157
  engine.block.setBlurEnabled(block, true);
4375
4158
  ```
@@ -4379,14 +4162,12 @@ setBlurEnabled(id: DesignBlockId, enabled: boolean): void
4379
4162
  ```
4380
4163
 
4381
4164
  **Parameters:**
4382
-
4383
4165
  - `id` - The block to update.
4384
4166
  - `enabled` - The new enabled value.
4385
4167
 
4386
4168
  ### isBlurEnabled()
4387
4169
 
4388
4170
  Checks if blur is enabled for a block.
4389
-
4390
4171
  ```javascript
4391
4172
  const isBlurEnabled = engine.block.isBlurEnabled(block);
4392
4173
  ```
@@ -4396,7 +4177,6 @@ isBlurEnabled(id: DesignBlockId): boolean
4396
4177
  ```
4397
4178
 
4398
4179
  **Parameters:**
4399
-
4400
4180
  - `id` - The block to query.
4401
4181
 
4402
4182
  **Returns:** True, if the blur is enabled. False otherwise.
@@ -4405,7 +4185,7 @@ isBlurEnabled(id: DesignBlockId): boolean
4405
4185
 
4406
4186
  Control stroke appearance, including color, width, style, and position.
4407
4187
 
4408
- ### hasStroke() _(deprecated)_
4188
+ ### hasStroke() *(deprecated)*
4409
4189
 
4410
4190
  Checks if a block has a stroke property.
4411
4191
 
@@ -4414,7 +4194,6 @@ hasStroke(id: DesignBlockId): boolean
4414
4194
  ```
4415
4195
 
4416
4196
  **Parameters:**
4417
-
4418
4197
  - `id` - The block to query.
4419
4198
 
4420
4199
  **Returns:** True if the block has a stroke property.
@@ -4428,7 +4207,6 @@ supportsStroke(id: DesignBlockId): boolean
4428
4207
  ```
4429
4208
 
4430
4209
  **Parameters:**
4431
-
4432
4210
  - `id` - The block to query.
4433
4211
 
4434
4212
  **Returns:** True if the block supports a stroke.
@@ -4436,7 +4214,6 @@ supportsStroke(id: DesignBlockId): boolean
4436
4214
  ### setStrokeEnabled()
4437
4215
 
4438
4216
  Enables or disables the stroke of a block.
4439
-
4440
4217
  ```javascript
4441
4218
  engine.block.setStrokeEnabled(block, true);
4442
4219
  ```
@@ -4446,14 +4223,12 @@ setStrokeEnabled(id: DesignBlockId, enabled: boolean): void
4446
4223
  ```
4447
4224
 
4448
4225
  **Parameters:**
4449
-
4450
4226
  - `id` - The block whose stroke should be enabled or disabled.
4451
4227
  - `enabled` - If true, the stroke will be enabled.
4452
4228
 
4453
4229
  ### isStrokeEnabled()
4454
4230
 
4455
4231
  Checks if the stroke of a block is enabled.
4456
-
4457
4232
  ```javascript
4458
4233
  const strokeIsEnabled = engine.block.isStrokeEnabled(block);
4459
4234
  ```
@@ -4463,12 +4238,45 @@ isStrokeEnabled(id: DesignBlockId): boolean
4463
4238
  ```
4464
4239
 
4465
4240
  **Parameters:**
4466
-
4467
4241
  - `id` - The block whose stroke state should be queried.
4468
4242
 
4469
4243
  **Returns:** True if the block's stroke is enabled.
4470
4244
 
4471
- ### setStrokeColorRGBA() _(deprecated)_
4245
+ ### setStrokeOverprint()
4246
+
4247
+ Marks the stroke of a block as overprint for PDF export.
4248
+ The flag is only honored by the PDF writer when the stroke uses a spot color
4249
+ (Separation/DeviceN). For process-color strokes it is a silent no-op. On-screen
4250
+ rendering ignores the flag.
4251
+ ```javascript
4252
+ engine.block.setStrokeOverprint(block, true);
4253
+ ```
4254
+
4255
+ ```typescript
4256
+ setStrokeOverprint(id: DesignBlockId, overprint: boolean): void
4257
+ ```
4258
+
4259
+ **Parameters:**
4260
+ - `id` - The block whose stroke overprint flag should be set.
4261
+ - `overprint` - If true, the stroke is marked as overprint in exported PDFs.
4262
+
4263
+ ### getStrokeOverprint()
4264
+
4265
+ Queries whether the stroke of a block is marked as overprint for PDF export.
4266
+ ```javascript
4267
+ const overprint = engine.block.getStrokeOverprint(block);
4268
+ ```
4269
+
4270
+ ```typescript
4271
+ getStrokeOverprint(id: DesignBlockId): boolean
4272
+ ```
4273
+
4274
+ **Parameters:**
4275
+ - `id` - The block whose stroke overprint flag should be queried.
4276
+
4277
+ **Returns:** The stroke overprint flag.
4278
+
4279
+ ### setStrokeColorRGBA() *(deprecated)*
4472
4280
 
4473
4281
  Sets the stroke color of a block using RGBA values.
4474
4282
 
@@ -4477,7 +4285,6 @@ setStrokeColorRGBA(id: DesignBlockId, r: number, g: number, b: number, a?: numbe
4477
4285
  ```
4478
4286
 
4479
4287
  **Parameters:**
4480
-
4481
4288
  - `id` - The block whose stroke color should be set.
4482
4289
  - `r` - The red color component in the range of 0 to 1.
4483
4290
  - `g` - The green color component in the range of 0 to 1.
@@ -4493,11 +4300,10 @@ setStrokeColor(id: DesignBlockId, color: Color): void
4493
4300
  ```
4494
4301
 
4495
4302
  **Parameters:**
4496
-
4497
4303
  - `id` - The block whose stroke color should be set.
4498
4304
  - `color` - The color to set.
4499
4305
 
4500
- ### getStrokeColorRGBA() _(deprecated)_
4306
+ ### getStrokeColorRGBA() *(deprecated)*
4501
4307
 
4502
4308
  Gets the stroke color of a block as RGBA values.
4503
4309
 
@@ -4506,7 +4312,6 @@ getStrokeColorRGBA(id: DesignBlockId): RGBA
4506
4312
  ```
4507
4313
 
4508
4314
  **Parameters:**
4509
-
4510
4315
  - `id` - The block whose stroke color should be queried.
4511
4316
 
4512
4317
  **Returns:** The stroke color.
@@ -4520,7 +4325,6 @@ getStrokeColor(id: DesignBlockId): Color
4520
4325
  ```
4521
4326
 
4522
4327
  **Parameters:**
4523
-
4524
4328
  - `id` - The block whose stroke color should be queried.
4525
4329
 
4526
4330
  **Returns:** The stroke color.
@@ -4534,7 +4338,6 @@ setStrokeWidth(id: DesignBlockId, width: number): void
4534
4338
  ```
4535
4339
 
4536
4340
  **Parameters:**
4537
-
4538
4341
  - `id` - The block whose stroke width should be set.
4539
4342
  - `width` - The stroke width to be set.
4540
4343
 
@@ -4547,7 +4350,6 @@ getStrokeWidth(id: DesignBlockId): number
4547
4350
  ```
4548
4351
 
4549
4352
  **Parameters:**
4550
-
4551
4353
  - `id` - The block whose stroke width should be queried.
4552
4354
 
4553
4355
  **Returns:** The stroke's width.
@@ -4561,7 +4363,6 @@ setStrokeStyle(id: DesignBlockId, style: StrokeStyle): void
4561
4363
  ```
4562
4364
 
4563
4365
  **Parameters:**
4564
-
4565
4366
  - `id` - The block whose stroke style should be set.
4566
4367
  - `style` - The stroke style to be set.
4567
4368
 
@@ -4574,7 +4375,6 @@ getStrokeStyle(id: DesignBlockId): StrokeStyle
4574
4375
  ```
4575
4376
 
4576
4377
  **Parameters:**
4577
-
4578
4378
  - `id` - The block whose stroke style should be queried.
4579
4379
 
4580
4380
  **Returns:** The stroke's style.
@@ -4588,7 +4388,6 @@ setStrokePosition(id: DesignBlockId, position: StrokePosition): void
4588
4388
  ```
4589
4389
 
4590
4390
  **Parameters:**
4591
-
4592
4391
  - `id` - The block whose stroke position should be set.
4593
4392
  - `position` - The stroke position to be set.
4594
4393
 
@@ -4601,7 +4400,6 @@ getStrokePosition(id: DesignBlockId): StrokePosition
4601
4400
  ```
4602
4401
 
4603
4402
  **Parameters:**
4604
-
4605
4403
  - `id` - The block whose stroke position should be queried.
4606
4404
 
4607
4405
  **Returns:** The stroke position.
@@ -4615,7 +4413,6 @@ setStrokeCornerGeometry(id: DesignBlockId, cornerGeometry: StrokeCornerGeometry)
4615
4413
  ```
4616
4414
 
4617
4415
  **Parameters:**
4618
-
4619
4416
  - `id` - The block whose stroke corner geometry should be set.
4620
4417
  - `cornerGeometry` - The stroke corner geometry to be set.
4621
4418
 
@@ -4628,26 +4425,216 @@ getStrokeCornerGeometry(id: DesignBlockId): StrokeCornerGeometry
4628
4425
  ```
4629
4426
 
4630
4427
  **Parameters:**
4631
-
4632
4428
  - `id` - The block whose stroke corner geometry should be queried.
4633
4429
 
4634
4430
  **Returns:** The stroke corner geometry.
4635
4431
 
4636
- ## Block Drop Shadow
4432
+ ### setStrokeCap() *(deprecated)*
4637
4433
 
4638
- Configure drop shadow effects, including blur, color, and offset.
4434
+ Sets the stroke cap of a block. Writes both the start and end caps to the
4435
+ same value.
4639
4436
 
4640
- ### hasDropShadow() _(deprecated)_
4437
+ ```typescript
4438
+ setStrokeCap(id: DesignBlockId, cap: StrokeCap): void
4439
+ ```
4641
4440
 
4642
- Checks if a block has a drop shadow property.
4441
+ **Parameters:**
4442
+ - `id` - The block whose stroke cap should be set.
4443
+ - `cap` - The stroke cap to be set.
4444
+
4445
+ ### getStrokeCap() *(deprecated)*
4446
+
4447
+ Gets the legacy single stroke cap of a block. Tracks the value last written
4448
+ via `setStrokeCap` or `setStrokeStartCap`; ignores changes made via
4449
+ `setStrokeEndCap`.
4643
4450
 
4644
4451
  ```typescript
4645
- hasDropShadow(id: DesignBlockId): boolean
4452
+ getStrokeCap(id: DesignBlockId): StrokeCap
4646
4453
  ```
4647
4454
 
4648
4455
  **Parameters:**
4456
+ - `id` - The block whose stroke cap should be queried.
4649
4457
 
4650
- - `id` - The block to query.
4458
+ **Returns:** The stroke cap.
4459
+
4460
+ ### setStrokeStartCap()
4461
+
4462
+ Sets the cap geometry at the start of an open stroked path. Use this with
4463
+ `setStrokeEndCap` to set distinct caps for each end of a stroke (for
4464
+ example a flat start with an arrowhead end). `setStrokeCap` continues to
4465
+ set both ends at once and is preserved for backwards compatibility.
4466
+
4467
+ ```typescript
4468
+ setStrokeStartCap(id: DesignBlockId, cap: StrokeCap): void
4469
+ ```
4470
+
4471
+ **Parameters:**
4472
+ - `id` - The block whose stroke start cap should be set.
4473
+ - `cap` - The cap geometry to use at the path start.
4474
+
4475
+ ### getStrokeStartCap()
4476
+
4477
+ Gets the cap geometry at the start of an open stroked path.
4478
+
4479
+ ```typescript
4480
+ getStrokeStartCap(id: DesignBlockId): StrokeCap
4481
+ ```
4482
+
4483
+ **Parameters:**
4484
+ - `id` - The block whose stroke start cap should be queried.
4485
+
4486
+ **Returns:** The start cap.
4487
+
4488
+ ### setStrokeEndCap()
4489
+
4490
+ Sets the cap geometry at the end of an open stroked path. Use this with
4491
+ `setStrokeStartCap` to set distinct caps for each end of a stroke.
4492
+
4493
+ ```typescript
4494
+ setStrokeEndCap(id: DesignBlockId, cap: StrokeCap): void
4495
+ ```
4496
+
4497
+ **Parameters:**
4498
+ - `id` - The block whose stroke end cap should be set.
4499
+ - `cap` - The cap geometry to use at the path end.
4500
+
4501
+ ### getStrokeEndCap()
4502
+
4503
+ Gets the cap geometry at the end of an open stroked path.
4504
+
4505
+ ```typescript
4506
+ getStrokeEndCap(id: DesignBlockId): StrokeCap
4507
+ ```
4508
+
4509
+ **Parameters:**
4510
+ - `id` - The block whose stroke end cap should be queried.
4511
+
4512
+ **Returns:** The end cap.
4513
+
4514
+ ### setStrokeDashStartCap()
4515
+
4516
+ Sets the cap geometry at the leading edge of each dash piece (excluding the
4517
+ line's actual start). Only takes effect when a dash pattern is active.
4518
+ Distinct from `setStrokeStartCap`, which only applies to the start of the
4519
+ open path itself.
4520
+
4521
+ ```typescript
4522
+ setStrokeDashStartCap(id: DesignBlockId, cap: StrokeCap): void
4523
+ ```
4524
+
4525
+ **Parameters:**
4526
+ - `id` - The block whose dash start cap should be set.
4527
+ - `cap` - The cap geometry to use at the leading edge of each dash piece.
4528
+
4529
+ ### getStrokeDashStartCap()
4530
+
4531
+ Gets the cap geometry at the leading edge of each dash piece.
4532
+
4533
+ ```typescript
4534
+ getStrokeDashStartCap(id: DesignBlockId): StrokeCap
4535
+ ```
4536
+
4537
+ **Parameters:**
4538
+ - `id` - The block whose dash start cap should be queried.
4539
+
4540
+ **Returns:** The dash start cap.
4541
+
4542
+ ### setStrokeDashEndCap()
4543
+
4544
+ Sets the cap geometry at the trailing edge of each dash piece (excluding the
4545
+ line's actual end). Only takes effect when a dash pattern is active. Distinct
4546
+ from `setStrokeEndCap`, which only applies to the end of the open path itself.
4547
+
4548
+ ```typescript
4549
+ setStrokeDashEndCap(id: DesignBlockId, cap: StrokeCap): void
4550
+ ```
4551
+
4552
+ **Parameters:**
4553
+ - `id` - The block whose dash end cap should be set.
4554
+ - `cap` - The cap geometry to use at the trailing edge of each dash piece.
4555
+
4556
+ ### getStrokeDashEndCap()
4557
+
4558
+ Gets the cap geometry at the trailing edge of each dash piece.
4559
+
4560
+ ```typescript
4561
+ getStrokeDashEndCap(id: DesignBlockId): StrokeCap
4562
+ ```
4563
+
4564
+ **Parameters:**
4565
+ - `id` - The block whose dash end cap should be queried.
4566
+
4567
+ **Returns:** The dash end cap.
4568
+
4569
+ ### setStrokeDashArray()
4570
+
4571
+ Sets a custom dash pattern for the block's stroke. Semantics match SVG's
4572
+ `stroke-dasharray`: alternating on/off lengths in design-unit space. When the
4573
+ pattern is non-empty it overrides the preset implied by `StrokeStyle`. Pass an
4574
+ empty array to fall back to the preset.
4575
+
4576
+ ```typescript
4577
+ setStrokeDashArray(id: DesignBlockId, dashArray: number[]): void
4578
+ ```
4579
+
4580
+ **Parameters:**
4581
+ - `id` - The block whose stroke dash pattern should be set.
4582
+ - `dashArray` - Alternating on/off lengths. Odd-length arrays are doubled to
4583
+ an even length, matching SVG behaviour.
4584
+
4585
+ ### getStrokeDashArray()
4586
+
4587
+ Gets the custom dash pattern of the block's stroke.
4588
+
4589
+ ```typescript
4590
+ getStrokeDashArray(id: DesignBlockId): number[]
4591
+ ```
4592
+
4593
+ **Parameters:**
4594
+ - `id` - The block whose stroke dash pattern should be queried.
4595
+
4596
+ **Returns:** The dash pattern, or an empty array if no custom pattern is set.
4597
+
4598
+ ### setStrokeDashOffset()
4599
+
4600
+ Sets the dash offset of the block's stroke. Semantics match SVG's
4601
+ `stroke-dashoffset`. Ignored when the custom dash pattern is empty.
4602
+
4603
+ ```typescript
4604
+ setStrokeDashOffset(id: DesignBlockId, dashOffset: number): void
4605
+ ```
4606
+
4607
+ **Parameters:**
4608
+ - `id` - The block whose stroke dash offset should be set.
4609
+ - `dashOffset` - The dash offset in design-unit space.
4610
+
4611
+ ### getStrokeDashOffset()
4612
+
4613
+ Gets the dash offset of the block's stroke.
4614
+
4615
+ ```typescript
4616
+ getStrokeDashOffset(id: DesignBlockId): number
4617
+ ```
4618
+
4619
+ **Parameters:**
4620
+ - `id` - The block whose stroke dash offset should be queried.
4621
+
4622
+ **Returns:** The dash offset.
4623
+
4624
+ ## Block Drop Shadow
4625
+
4626
+ Configure drop shadow effects, including blur, color, and offset.
4627
+
4628
+ ### hasDropShadow() *(deprecated)*
4629
+
4630
+ Checks if a block has a drop shadow property.
4631
+
4632
+ ```typescript
4633
+ hasDropShadow(id: DesignBlockId): boolean
4634
+ ```
4635
+
4636
+ **Parameters:**
4637
+ - `id` - The block to query.
4651
4638
 
4652
4639
  **Returns:** True if the block has a drop shadow property.
4653
4640
 
@@ -4660,7 +4647,6 @@ supportsDropShadow(id: DesignBlockId): boolean
4660
4647
  ```
4661
4648
 
4662
4649
  **Parameters:**
4663
-
4664
4650
  - `id` - The block to query.
4665
4651
 
4666
4652
  **Returns:** True if the block supports a drop shadow.
@@ -4668,7 +4654,6 @@ supportsDropShadow(id: DesignBlockId): boolean
4668
4654
  ### setDropShadowEnabled()
4669
4655
 
4670
4656
  Enables or disables the drop shadow of a block.
4671
-
4672
4657
  ```javascript
4673
4658
  engine.block.setDropShadowEnabled(block, true);
4674
4659
  ```
@@ -4678,14 +4663,12 @@ setDropShadowEnabled(id: DesignBlockId, enabled: boolean): void
4678
4663
  ```
4679
4664
 
4680
4665
  **Parameters:**
4681
-
4682
4666
  - `id` - The block whose drop shadow should be enabled or disabled.
4683
4667
  - `enabled` - If true, the drop shadow will be enabled.
4684
4668
 
4685
4669
  ### isDropShadowEnabled()
4686
4670
 
4687
4671
  Checks if the drop shadow of a block is enabled.
4688
-
4689
4672
  ```javascript
4690
4673
  const dropShadowIsEnabled = engine.block.isDropShadowEnabled(block);
4691
4674
  ```
@@ -4695,12 +4678,11 @@ isDropShadowEnabled(id: DesignBlockId): boolean
4695
4678
  ```
4696
4679
 
4697
4680
  **Parameters:**
4698
-
4699
4681
  - `id` - The block whose drop shadow state should be queried.
4700
4682
 
4701
4683
  **Returns:** True if the block's drop shadow is enabled.
4702
4684
 
4703
- ### setDropShadowColorRGBA() _(deprecated)_
4685
+ ### setDropShadowColorRGBA() *(deprecated)*
4704
4686
 
4705
4687
  Sets the drop shadow color of a block using RGBA values.
4706
4688
 
@@ -4709,7 +4691,6 @@ setDropShadowColorRGBA(id: DesignBlockId, r: number, g: number, b: number, a?: n
4709
4691
  ```
4710
4692
 
4711
4693
  **Parameters:**
4712
-
4713
4694
  - `id` - The block whose drop shadow color should be set.
4714
4695
  - `r` - The red color component in the range of 0 to 1.
4715
4696
  - `g` - The green color component in the range of 0 to 1.
@@ -4725,11 +4706,10 @@ setDropShadowColor(id: DesignBlockId, color: Color): void
4725
4706
  ```
4726
4707
 
4727
4708
  **Parameters:**
4728
-
4729
4709
  - `id` - The block whose drop shadow color should be set.
4730
4710
  - `color` - The color to set.
4731
4711
 
4732
- ### getDropShadowColorRGBA() _(deprecated)_
4712
+ ### getDropShadowColorRGBA() *(deprecated)*
4733
4713
 
4734
4714
  Gets the drop shadow color of a block as RGBA values.
4735
4715
 
@@ -4738,7 +4718,6 @@ getDropShadowColorRGBA(id: DesignBlockId): RGBA
4738
4718
  ```
4739
4719
 
4740
4720
  **Parameters:**
4741
-
4742
4721
  - `id` - The block whose drop shadow color should be queried.
4743
4722
 
4744
4723
  **Returns:** The drop shadow color.
@@ -4752,7 +4731,6 @@ getDropShadowColor(id: DesignBlockId): Color
4752
4731
  ```
4753
4732
 
4754
4733
  **Parameters:**
4755
-
4756
4734
  - `id` - The block whose drop shadow color should be queried.
4757
4735
 
4758
4736
  **Returns:** The drop shadow color.
@@ -4766,7 +4744,6 @@ setDropShadowOffsetX(id: DesignBlockId, offsetX: number): void
4766
4744
  ```
4767
4745
 
4768
4746
  **Parameters:**
4769
-
4770
4747
  - `id` - The block whose drop shadow's X offset should be set.
4771
4748
  - `offsetX` - The X offset to be set.
4772
4749
 
@@ -4779,7 +4756,6 @@ getDropShadowOffsetX(id: DesignBlockId): number
4779
4756
  ```
4780
4757
 
4781
4758
  **Parameters:**
4782
-
4783
4759
  - `id` - The block whose drop shadow's X offset should be queried.
4784
4760
 
4785
4761
  **Returns:** The offset.
@@ -4793,7 +4769,6 @@ setDropShadowOffsetY(id: DesignBlockId, offsetY: number): void
4793
4769
  ```
4794
4770
 
4795
4771
  **Parameters:**
4796
-
4797
4772
  - `id` - The block whose drop shadow's Y offset should be set.
4798
4773
  - `offsetY` - The Y offset to be set.
4799
4774
 
@@ -4806,7 +4781,6 @@ getDropShadowOffsetY(id: DesignBlockId): number
4806
4781
  ```
4807
4782
 
4808
4783
  **Parameters:**
4809
-
4810
4784
  - `id` - The block whose drop shadow's Y offset should be queried.
4811
4785
 
4812
4786
  **Returns:** The offset.
@@ -4820,7 +4794,6 @@ setDropShadowBlurRadiusX(id: DesignBlockId, blurRadiusX: number): void
4820
4794
  ```
4821
4795
 
4822
4796
  **Parameters:**
4823
-
4824
4797
  - `id` - The block whose drop shadow's blur radius should be set.
4825
4798
  - `blurRadiusX` - The blur radius to be set.
4826
4799
 
@@ -4833,7 +4806,6 @@ getDropShadowBlurRadiusX(id: DesignBlockId): number
4833
4806
  ```
4834
4807
 
4835
4808
  **Parameters:**
4836
-
4837
4809
  - `id` - The block whose drop shadow's blur radius should be queried.
4838
4810
 
4839
4811
  **Returns:** The blur radius.
@@ -4847,7 +4819,6 @@ setDropShadowBlurRadiusY(id: DesignBlockId, blurRadiusY: number): void
4847
4819
  ```
4848
4820
 
4849
4821
  **Parameters:**
4850
-
4851
4822
  - `id` - The block whose drop shadow's blur radius should be set.
4852
4823
  - `blurRadiusY` - The blur radius to be set.
4853
4824
 
@@ -4860,7 +4831,6 @@ getDropShadowBlurRadiusY(id: DesignBlockId): number
4860
4831
  ```
4861
4832
 
4862
4833
  **Parameters:**
4863
-
4864
4834
  - `id` - The block whose drop shadow's blur radius should be queried.
4865
4835
 
4866
4836
  **Returns:** The blur radius.
@@ -4875,7 +4845,6 @@ setDropShadowClip(id: DesignBlockId, clip: boolean): void
4875
4845
  ```
4876
4846
 
4877
4847
  **Parameters:**
4878
-
4879
4848
  - `id` - The block whose drop shadow's clip should be set.
4880
4849
  - `clip` - The drop shadow's clip to be set.
4881
4850
 
@@ -4888,7 +4857,6 @@ getDropShadowClip(id: DesignBlockId): boolean
4888
4857
  ```
4889
4858
 
4890
4859
  **Parameters:**
4891
-
4892
4860
  - `id` - The block whose drop shadow's clipping should be queried.
4893
4861
 
4894
4862
  **Returns:** The drop shadow's clipping state.
@@ -4907,7 +4875,6 @@ createCutoutFromBlocks(ids: DesignBlockId[], vectorizeDistanceThreshold?: number
4907
4875
  ```
4908
4876
 
4909
4877
  **Parameters:**
4910
-
4911
4878
  - `ids` - The blocks whose shape will serve as the basis for the cutout's path.
4912
4879
  - `vectorizeDistanceThreshold` - Max deviation from the original contour during vectorization.
4913
4880
  - `simplifyDistanceThreshold` - Max deviation for path simplification. 0 disables simplification.
@@ -4924,7 +4891,6 @@ createCutoutFromPath(path: string): DesignBlockId
4924
4891
  ```
4925
4892
 
4926
4893
  **Parameters:**
4927
-
4928
4894
  - `path` - An SVG string describing a path.
4929
4895
 
4930
4896
  **Returns:** The newly created block or an error.
@@ -4938,7 +4904,6 @@ createCutoutFromOperation(ids: DesignBlockId[], op: CutoutOperation): DesignBloc
4938
4904
  ```
4939
4905
 
4940
4906
  **Parameters:**
4941
-
4942
4907
  - `ids` - The cutout blocks with which to perform to the operation.
4943
4908
  - `op` - The boolean operation to perform.
4944
4909
 
@@ -4951,7 +4916,6 @@ Create, edit, and style text content.
4951
4916
  ### replaceText()
4952
4917
 
4953
4918
  Replaces a range of text in a text block.
4954
-
4955
4919
  ```javascript
4956
4920
  engine.block.replaceText(text, 'Hello World');
4957
4921
  engine.block.replaceText(text, 'Alex', 6, 11);
@@ -4962,7 +4926,6 @@ replaceText(id: DesignBlockId, text: string, from?: number, to?: number): void
4962
4926
  ```
4963
4927
 
4964
4928
  **Parameters:**
4965
-
4966
4929
  - `id` - The text block into which to insert the given text.
4967
4930
  - `text` - The text which should replace the selected range in the block.
4968
4931
  - `from` - The start index of the UTF-16 range to replace. Defaults to the start of the current selection or text.
@@ -4971,7 +4934,6 @@ replaceText(id: DesignBlockId, text: string, from?: number, to?: number): void
4971
4934
  ### removeText()
4972
4935
 
4973
4936
  Removes a range of text from a text block.
4974
-
4975
4937
  ```javascript
4976
4938
  engine.block.removeText(text, 0, 6);
4977
4939
  ```
@@ -4981,7 +4943,6 @@ removeText(id: DesignBlockId, from?: number, to?: number): void
4981
4943
  ```
4982
4944
 
4983
4945
  **Parameters:**
4984
-
4985
4946
  - `id` - The text block from which the selected text should be removed.
4986
4947
  - `from` - The start index of the UTF-16 range to remove. Defaults to the start of the current selection or text.
4987
4948
  - `to` - The end index of the UTF-16 range to remove. Defaults to the end of the current selection or text.
@@ -4989,7 +4950,6 @@ removeText(id: DesignBlockId, from?: number, to?: number): void
4989
4950
  ### setTextColor()
4990
4951
 
4991
4952
  Sets the color for a range of text.
4992
-
4993
4953
  ```javascript
4994
4954
  engine.block.setTextColor(text, { r: 0.0, g: 0.0, b: 0.0, a: 1.0 }, 1, 4);
4995
4955
  ```
@@ -4999,7 +4959,6 @@ setTextColor(id: DesignBlockId, color: Color, from?: number, to?: number): void
4999
4959
  ```
5000
4960
 
5001
4961
  **Parameters:**
5002
-
5003
4962
  - `id` - The text block whose color should be changed.
5004
4963
  - `color` - The new color of the selected text range.
5005
4964
  - `from` - The start index of the UTF-16 range to change. Defaults to the start of the current selection or text.
@@ -5008,7 +4967,6 @@ setTextColor(id: DesignBlockId, color: Color, from?: number, to?: number): void
5008
4967
  ### getTextColors()
5009
4968
 
5010
4969
  Gets the unique colors within a range of text.
5011
-
5012
4970
  ```javascript
5013
4971
  const colorsInRange = engine.block.getTextColors(text, 2, 5);
5014
4972
  ```
@@ -5018,7 +4976,6 @@ getTextColors(id: DesignBlockId, from?: number, to?: number): Array<Color>
5018
4976
  ```
5019
4977
 
5020
4978
  **Parameters:**
5021
-
5022
4979
  - `id` - The text block whose colors should be returned.
5023
4980
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5024
4981
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5028,7 +4985,6 @@ getTextColors(id: DesignBlockId, from?: number, to?: number): Array<Color>
5028
4985
  ### setTextFontWeight()
5029
4986
 
5030
4987
  Sets the font weight for a range of text.
5031
-
5032
4988
  ```javascript
5033
4989
  engine.block.setTextFontWeight(text, 'bold', 0, 5);
5034
4990
  ```
@@ -5038,7 +4994,6 @@ setTextFontWeight(id: DesignBlockId, fontWeight: FontWeight, from?: number, to?:
5038
4994
  ```
5039
4995
 
5040
4996
  **Parameters:**
5041
-
5042
4997
  - `id` - The text block whose weight should be changed.
5043
4998
  - `fontWeight` - The new weight of the selected text range.
5044
4999
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
@@ -5047,7 +5002,6 @@ setTextFontWeight(id: DesignBlockId, fontWeight: FontWeight, from?: number, to?:
5047
5002
  ### getTextFontWeights()
5048
5003
 
5049
5004
  Gets the unique font weights within a range of text.
5050
-
5051
5005
  ```javascript
5052
5006
  const fontWeights = engine.block.getTextFontWeights(text, 0, 6);
5053
5007
  ```
@@ -5057,7 +5011,6 @@ getTextFontWeights(id: DesignBlockId, from?: number, to?: number): FontWeight[]
5057
5011
  ```
5058
5012
 
5059
5013
  **Parameters:**
5060
-
5061
5014
  - `id` - The text block whose font weights should be returned.
5062
5015
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5063
5016
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5067,7 +5020,6 @@ getTextFontWeights(id: DesignBlockId, from?: number, to?: number): FontWeight[]
5067
5020
  ### setTextFontSize()
5068
5021
 
5069
5022
  Sets the font size for a range of text.
5070
-
5071
5023
  ```javascript
5072
5024
  // With numeric fontSize (in points)
5073
5025
  engine.block.setTextFontSize(text, 12, 0, 5);
@@ -5081,7 +5033,6 @@ setTextFontSize(id: DesignBlockId, fontSize: number, options?: TextFontSizeOptio
5081
5033
  ```
5082
5034
 
5083
5035
  **Parameters:**
5084
-
5085
5036
  - `id` - The text block whose font size should be changed.
5086
5037
  - `fontSize` - The new font size value.
5087
5038
  - `options` - An options object with unit, from, and to properties.
@@ -5089,7 +5040,6 @@ setTextFontSize(id: DesignBlockId, fontSize: number, options?: TextFontSizeOptio
5089
5040
  ### getTextFontSizes()
5090
5041
 
5091
5042
  Gets the unique font sizes within a range of text.
5092
-
5093
5043
  ```javascript
5094
5044
  // Get all font sizes
5095
5045
  const fontSizes = engine.block.getTextFontSizes(text);
@@ -5097,11 +5047,7 @@ const fontSizes = engine.block.getTextFontSizes(text);
5097
5047
  const fontSizes = engine.block.getTextFontSizes(text, 0, 10);
5098
5048
  // With options object
5099
5049
  const sizesInPx = engine.block.getTextFontSizes(text, { unit: 'Pixel' });
5100
- const sizesInRange = engine.block.getTextFontSizes(text, {
5101
- unit: 'Millimeter',
5102
- from: 5,
5103
- to: 15
5104
- });
5050
+ const sizesInRange = engine.block.getTextFontSizes(text, { unit: 'Millimeter', from: 5, to: 15 });
5105
5051
  ```
5106
5052
 
5107
5053
  ```typescript
@@ -5109,7 +5055,6 @@ getTextFontSizes(id: DesignBlockId, options?: TextFontSizeOptions): number[]
5109
5055
  ```
5110
5056
 
5111
5057
  **Parameters:**
5112
-
5113
5058
  - `id` - The text block whose font sizes should be returned.
5114
5059
  - `options` - An options object with unit, from, and to properties.
5115
5060
 
@@ -5118,7 +5063,6 @@ getTextFontSizes(id: DesignBlockId, options?: TextFontSizeOptions): number[]
5118
5063
  ### setTextFontStyle()
5119
5064
 
5120
5065
  Sets the font style for a range of text.
5121
-
5122
5066
  ```javascript
5123
5067
  engine.block.setTextFontStyle(text, 'italic', 0, 5);
5124
5068
  ```
@@ -5128,7 +5072,6 @@ setTextFontStyle(id: DesignBlockId, fontStyle: FontStyle, from?: number, to?: nu
5128
5072
  ```
5129
5073
 
5130
5074
  **Parameters:**
5131
-
5132
5075
  - `id` - The text block whose style should be changed.
5133
5076
  - `fontStyle` - The new style of the selected text range.
5134
5077
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
@@ -5137,7 +5080,6 @@ setTextFontStyle(id: DesignBlockId, fontStyle: FontStyle, from?: number, to?: nu
5137
5080
  ### getTextFontStyles()
5138
5081
 
5139
5082
  Gets the unique font styles within a range of text.
5140
-
5141
5083
  ```javascript
5142
5084
  const fontStyles = engine.block.getTextFontStyles(text);
5143
5085
  ```
@@ -5147,7 +5089,6 @@ getTextFontStyles(id: DesignBlockId, from?: number, to?: number): FontStyle[]
5147
5089
  ```
5148
5090
 
5149
5091
  **Parameters:**
5150
-
5151
5092
  - `id` - The text block whose font styles should be returned.
5152
5093
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5153
5094
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5157,7 +5098,6 @@ getTextFontStyles(id: DesignBlockId, from?: number, to?: number): FontStyle[]
5157
5098
  ### getTextCases()
5158
5099
 
5159
5100
  Gets the unique text cases within a range of text.
5160
-
5161
5101
  ```javascript
5162
5102
  const textCases = engine.block.getTextCases(text);
5163
5103
  ```
@@ -5167,7 +5107,6 @@ getTextCases(id: DesignBlockId, from?: number, to?: number): TextCase[]
5167
5107
  ```
5168
5108
 
5169
5109
  **Parameters:**
5170
-
5171
5110
  - `id` - The text block whose text cases should be returned.
5172
5111
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5173
5112
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5177,7 +5116,6 @@ getTextCases(id: DesignBlockId, from?: number, to?: number): TextCase[]
5177
5116
  ### setTextCase()
5178
5117
 
5179
5118
  Sets the text case for a range of text.
5180
-
5181
5119
  ```javascript
5182
5120
  engine.block.setTextCase(text, 'Titlecase');
5183
5121
  ```
@@ -5187,7 +5125,6 @@ setTextCase(id: DesignBlockId, textCase: TextCase, from?: number, to?: number):
5187
5125
  ```
5188
5126
 
5189
5127
  **Parameters:**
5190
-
5191
5128
  - `id` - The text block whose text case should be changed.
5192
5129
  - `textCase` - The new text case value.
5193
5130
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
@@ -5198,7 +5135,6 @@ setTextCase(id: DesignBlockId, textCase: TextCase, from?: number, to?: number):
5198
5135
  Gets the unique text decoration configurations within a range of text.
5199
5136
  Each element of the returned array is a decoration configuration representing
5200
5137
  a unique combination of lines, style, color, and thickness found in the range.
5201
-
5202
5138
  ```javascript
5203
5139
  const decorations = engine.block.getTextDecorations(text);
5204
5140
  // e.g., [{ lines: ['None'] }, { lines: ['Underline'], style: 'Dashed' }]
@@ -5209,7 +5145,6 @@ getTextDecorations(id: DesignBlockId, from?: number, to?: number): TextDecoratio
5209
5145
  ```
5210
5146
 
5211
5147
  **Parameters:**
5212
-
5213
5148
  - `id` - The text block whose text decorations should be returned.
5214
5149
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5215
5150
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5221,18 +5156,10 @@ getTextDecorations(id: DesignBlockId, from?: number, to?: number): TextDecoratio
5221
5156
  Sets the text decoration for a range of text.
5222
5157
  The config specifies which decoration lines, style, underline color, thickness, and offset to apply.
5223
5158
  Use `{ lines: ['None'] }` to remove all decorations.
5224
-
5225
5159
  ```javascript
5226
5160
  engine.block.setTextDecoration(text, { lines: ['Underline'] });
5227
- engine.block.setTextDecoration(text, {
5228
- lines: ['Underline', 'Strikethrough'],
5229
- style: 'Dashed'
5230
- });
5231
- engine.block.setTextDecoration(text, {
5232
- lines: ['Overline'],
5233
- style: 'Wavy',
5234
- underlineThickness: 2.0
5235
- });
5161
+ engine.block.setTextDecoration(text, { lines: ['Underline', 'Strikethrough'], style: 'Dashed' });
5162
+ engine.block.setTextDecoration(text, { lines: ['Overline'], style: 'Wavy', underlineThickness: 2.0 });
5236
5163
  engine.block.setTextDecoration(text, { lines: ['None'] }); // Remove decorations
5237
5164
  ```
5238
5165
 
@@ -5241,19 +5168,54 @@ setTextDecoration(id: DesignBlockId, config: TextDecorationConfig, from?: number
5241
5168
  ```
5242
5169
 
5243
5170
  **Parameters:**
5244
-
5245
5171
  - `id` - The text block whose text decoration should be changed.
5246
5172
  - `config` - The decoration configuration to apply.
5247
5173
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5248
5174
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5249
5175
 
5176
+ ### setTextKerning()
5177
+
5178
+ Sets kerning for a grapheme range.
5179
+ Applies an additional offset in em units on top of the font's built-in kern.
5180
+ `1.0` equals the run's font size, so the offset scales proportionally with text size.
5181
+ ```javascript
5182
+ engine.block.setTextKerning(text, 0.1); // add 10% of font size as extra spacing
5183
+ engine.block.setTextKerning(text, -0.05, 0, 5); // tighten first 5 graphemes
5184
+ engine.block.setTextKerning(text, 0); // reset to no extra offset
5185
+ ```
5186
+
5187
+ ```typescript
5188
+ setTextKerning(id: DesignBlockId, kerning: number, from?: number, to?: number): void
5189
+ ```
5190
+
5191
+ **Parameters:**
5192
+ - `id` - The text block to modify.
5193
+ - `kerning` - Additional kerning in em units (1.0 = one full em). Use 0 for no extra offset.
5194
+ - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5195
+ - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5196
+
5197
+ ### getTextKernings()
5198
+
5199
+ Returns the unique kerning values across the grapheme range.
5200
+ ```javascript
5201
+ const kernings = engine.block.getTextKernings(text); // e.g. [0] or [0.1, 0]
5202
+ ```
5203
+
5204
+ ```typescript
5205
+ getTextKernings(id: DesignBlockId, from?: number, to?: number): number[]
5206
+ ```
5207
+
5208
+ **Parameters:**
5209
+ - `id` - The text block to query.
5210
+ - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5211
+ - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5212
+
5250
5213
  ### toggleTextDecorationUnderline()
5251
5214
 
5252
5215
  Toggles the underline decoration for a text range.
5253
5216
  If any part of the range does not have underline, the entire range gets underline.
5254
5217
  If the entire range already has underline, it is removed.
5255
5218
  Other decoration lines (strikethrough, overline) on each text run are preserved.
5256
-
5257
5219
  ```javascript
5258
5220
  engine.block.toggleTextDecorationUnderline(text);
5259
5221
  ```
@@ -5263,7 +5225,6 @@ toggleTextDecorationUnderline(id: DesignBlockId, from?: number, to?: number): vo
5263
5225
  ```
5264
5226
 
5265
5227
  **Parameters:**
5266
-
5267
5228
  - `id` - The text block to modify.
5268
5229
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5269
5230
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5274,7 +5235,6 @@ Toggles the strikethrough decoration for a text range.
5274
5235
  If any part of the range does not have strikethrough, the entire range gets strikethrough.
5275
5236
  If the entire range already has strikethrough, it is removed.
5276
5237
  Other decoration lines (underline, overline) on each text run are preserved.
5277
-
5278
5238
  ```javascript
5279
5239
  engine.block.toggleTextDecorationStrikethrough(text);
5280
5240
  ```
@@ -5284,7 +5244,6 @@ toggleTextDecorationStrikethrough(id: DesignBlockId, from?: number, to?: number)
5284
5244
  ```
5285
5245
 
5286
5246
  **Parameters:**
5287
-
5288
5247
  - `id` - The text block to modify.
5289
5248
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5290
5249
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5295,7 +5254,6 @@ Toggles the overline decoration for a text range.
5295
5254
  If any part of the range does not have overline, the entire range gets overline.
5296
5255
  If the entire range already has overline, it is removed.
5297
5256
  Other decoration lines (underline, strikethrough) on each text run are preserved.
5298
-
5299
5257
  ```javascript
5300
5258
  engine.block.toggleTextDecorationOverline(text);
5301
5259
  ```
@@ -5305,15 +5263,55 @@ toggleTextDecorationOverline(id: DesignBlockId, from?: number, to?: number): voi
5305
5263
  ```
5306
5264
 
5307
5265
  **Parameters:**
5308
-
5309
5266
  - `id` - The text block to modify.
5310
5267
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5311
5268
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5312
5269
 
5270
+ ### getTextHorizontalAlignment()
5271
+
5272
+ Gets the paragraph-level horizontal alignment override for a specific paragraph,
5273
+ or the block-level alignment.
5274
+ ```javascript
5275
+ const alignment = engine.block.getTextHorizontalAlignment(text, 0);
5276
+ const blockAlignment = engine.block.getTextHorizontalAlignment(text); // paragraphIndex defaults to -1
5277
+ // e.g. 'Left' | 'Center' | 'Right' | 'Auto' | undefined
5278
+ ```
5279
+
5280
+ ```typescript
5281
+ getTextHorizontalAlignment(id: DesignBlockId, paragraphIndex?: number): TextHorizontalAlignment | undefined
5282
+ ```
5283
+
5284
+ **Parameters:**
5285
+ - `id` - The text block to query.
5286
+ - `paragraphIndex` - The 0-based index of the paragraph to query.
5287
+ Negative values return the block-level `text/horizontalAlignment` setting.
5288
+
5289
+ **Returns:** The paragraph override, `undefined` if no override is set,
5290
+ or the block-level alignment when `paragraphIndex < 0`.
5291
+
5292
+ ### setTextHorizontalAlignment()
5293
+
5294
+ Sets the paragraph-level horizontal alignment override for one or all paragraphs.
5295
+ ```javascript
5296
+ engine.block.setTextHorizontalAlignment(text, 'Center', 0);
5297
+ engine.block.setTextHorizontalAlignment(text, undefined, 0); // clear override
5298
+ engine.block.setTextHorizontalAlignment(text, 'Right'); // apply to all
5299
+ ```
5300
+
5301
+ ```typescript
5302
+ setTextHorizontalAlignment(id: DesignBlockId, alignment: TextHorizontalAlignment | undefined, paragraphIndex?: number): void
5303
+ ```
5304
+
5305
+ **Parameters:**
5306
+ - `id` - The text block to modify.
5307
+ - `alignment` - The alignment to apply, or `undefined` to clear the paragraph override.
5308
+ - `paragraphIndex` - The 0-based index of the paragraph.
5309
+ Negative values clear all paragraph-level alignment overrides and, when `alignment` is provided,
5310
+ apply that alignment to the whole text block.
5311
+
5313
5312
  ### getTextListStyle()
5314
5313
 
5315
5314
  Gets the list style for a specific paragraph of a text block.
5316
-
5317
5315
  ```javascript
5318
5316
  const listStyle = engine.block.getTextListStyle(text, 0);
5319
5317
  ```
@@ -5323,7 +5321,6 @@ getTextListStyle(id: DesignBlockId, paragraphIndex: number): ListStyle
5323
5321
  ```
5324
5322
 
5325
5323
  **Parameters:**
5326
-
5327
5324
  - `id` - The text block whose list style should be returned.
5328
5325
  - `paragraphIndex` - The 0-based index of the paragraph.
5329
5326
 
@@ -5332,7 +5329,6 @@ getTextListStyle(id: DesignBlockId, paragraphIndex: number): ListStyle
5332
5329
  ### setTextListStyle()
5333
5330
 
5334
5331
  Sets the list style for a specific paragraph or all paragraphs of a text block.
5335
-
5336
5332
  ```javascript
5337
5333
  engine.block.setTextListStyle(text, 'Unordered');
5338
5334
  engine.block.setTextListStyle(text, 'Ordered', 0, 2);
@@ -5343,18 +5339,16 @@ setTextListStyle(id: DesignBlockId, listStyle: ListStyle, paragraphIndex?: numbe
5343
5339
  ```
5344
5340
 
5345
5341
  **Parameters:**
5346
-
5347
5342
  - `id` - The text block whose list style should be changed.
5348
5343
  - `listStyle` - The list style to apply.
5349
5344
  - `paragraphIndex` - The 0-based index of the paragraph to modify. Negative values apply to all paragraphs.
5350
5345
  - `listLevel` - Optional list nesting level to set atomically with the list style (0 = outermost).
5351
- When omitted the existing list level of each paragraph is preserved.
5352
- Has no visual effect when listStyle is 'None'.
5346
+ When omitted the existing list level of each paragraph is preserved.
5347
+ Has no visual effect when listStyle is 'None'.
5353
5348
 
5354
5349
  ### getTextListLevel()
5355
5350
 
5356
5351
  Gets the list nesting level for a specific paragraph of a text block.
5357
-
5358
5352
  ```javascript
5359
5353
  const listLevel = engine.block.getTextListLevel(text, 0);
5360
5354
  ```
@@ -5364,7 +5358,6 @@ getTextListLevel(id: DesignBlockId, paragraphIndex: number): number
5364
5358
  ```
5365
5359
 
5366
5360
  **Parameters:**
5367
-
5368
5361
  - `id` - The text block whose list level should be returned.
5369
5362
  - `paragraphIndex` - The 0-based index of the paragraph.
5370
5363
 
@@ -5373,7 +5366,6 @@ getTextListLevel(id: DesignBlockId, paragraphIndex: number): number
5373
5366
  ### setTextListLevel()
5374
5367
 
5375
5368
  Sets the list nesting level for a specific paragraph or all paragraphs of a text block.
5376
-
5377
5369
  ```javascript
5378
5370
  engine.block.setTextListLevel(text, 1);
5379
5371
  engine.block.setTextListLevel(text, 2, 0);
@@ -5384,7 +5376,6 @@ setTextListLevel(id: DesignBlockId, listLevel: number, paragraphIndex?: number):
5384
5376
  ```
5385
5377
 
5386
5378
  **Parameters:**
5387
-
5388
5379
  - `id` - The text block whose list level should be changed.
5389
5380
  - `listLevel` - The list nesting level (0 = outermost).
5390
5381
  - `paragraphIndex` - The 0-based index of the paragraph to modify. Negative values apply to all paragraphs.
@@ -5392,10 +5383,15 @@ setTextListLevel(id: DesignBlockId, listLevel: number, paragraphIndex?: number):
5392
5383
  ### getTextParagraphIndices()
5393
5384
 
5394
5385
  Returns the 0-based paragraph indices that overlap the given UTF-16 range.
5395
-
5386
+ The range is half-open (exclusive): `from` is inclusive, `to` is exclusive (one past the last
5387
+ code unit of interest). When `from === to` the range is a cursor position and the paragraph
5388
+ containing `from` is returned. This convention matches `getTextCursorRange`, so the values
5389
+ it returns can be passed directly without adjustment.
5390
+ Negative values for either parameter cause all paragraph indices to be returned.
5396
5391
  ```javascript
5397
5392
  const indices = engine.block.getTextParagraphIndices(text);
5398
- const indices = engine.block.getTextParagraphIndices(text, 0, 5);
5393
+ const { from, to } = engine.block.getTextCursorRange();
5394
+ const indices = engine.block.getTextParagraphIndices(text, from, to);
5399
5395
  ```
5400
5396
 
5401
5397
  ```typescript
@@ -5403,18 +5399,52 @@ getTextParagraphIndices(id: DesignBlockId, from?: number, to?: number): number[]
5403
5399
  ```
5404
5400
 
5405
5401
  **Parameters:**
5406
-
5407
5402
  - `id` - The text block to query.
5408
- - `from` - The start index of the UTF-16 range. Negative values reference the entire text.
5409
- - `to` - The end index of the UTF-16 range. Negative values reference the entire text.
5403
+ - `from` - The inclusive start UTF-16 index. Negative values reference the entire text.
5404
+ - `to` - The exclusive end UTF-16 index. Negative values reference the entire text.
5410
5405
 
5411
5406
  **Returns:** The paragraph indices overlapping the range.
5412
5407
 
5408
+ ### setTextLineHeight()
5409
+
5410
+ Sets the line height multiplier for a specific paragraph or all paragraphs of a text block.
5411
+ ```javascript
5412
+ engine.block.setTextLineHeight(text, 1.5);
5413
+ engine.block.setTextLineHeight(text, 1.5, 0);
5414
+ engine.block.setTextLineHeight(text, null); // reset all paragraphs to block default
5415
+ ```
5416
+
5417
+ ```typescript
5418
+ setTextLineHeight(id: DesignBlockId, lineHeight: number | null, paragraphIndex?: number): void
5419
+ ```
5420
+
5421
+ **Parameters:**
5422
+ - `id` - The text block to modify.
5423
+ - `lineHeight` - The line height multiplier, or `null` to reset to the block-level default.
5424
+ - `paragraphIndex` - The 0-based index of the paragraph to modify. Negative values apply to all paragraphs.
5425
+
5426
+ ### getTextLineHeight()
5427
+
5428
+ Returns the line height multiplier for a specific paragraph of a text block.
5429
+ Returns the per-paragraph override if one is set, otherwise returns the block-level `lineHeight`.
5430
+ ```javascript
5431
+ const lineHeight = engine.block.getTextLineHeight(text, 0);
5432
+ ```
5433
+
5434
+ ```typescript
5435
+ getTextLineHeight(id: DesignBlockId, paragraphIndex: number): number
5436
+ ```
5437
+
5438
+ **Parameters:**
5439
+ - `id` - The text block to query.
5440
+ - `paragraphIndex` - The 0-based index of the paragraph.
5441
+
5442
+ **Returns:** The line height multiplier for the paragraph.
5443
+
5413
5444
  ### canToggleBoldFont()
5414
5445
 
5415
5446
  Checks if the bold font weight can be toggled for a range of text.
5416
5447
  Returns true if any part of the range is not bold and the bold font is available.
5417
-
5418
5448
  ```javascript
5419
5449
  const canToggleBold = engine.block.canToggleBoldFont(text);
5420
5450
  ```
@@ -5424,7 +5454,6 @@ canToggleBoldFont(id: DesignBlockId, from?: number, to?: number): boolean
5424
5454
  ```
5425
5455
 
5426
5456
  **Parameters:**
5427
-
5428
5457
  - `id` - The text block to check.
5429
5458
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5430
5459
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5435,7 +5464,6 @@ canToggleBoldFont(id: DesignBlockId, from?: number, to?: number): boolean
5435
5464
 
5436
5465
  Checks if the italic font style can be toggled for a range of text.
5437
5466
  Returns true if any part of the range is not italic and the italic font is available.
5438
-
5439
5467
  ```javascript
5440
5468
  const canToggleItalic = engine.block.canToggleItalicFont(text);
5441
5469
  ```
@@ -5445,7 +5473,6 @@ canToggleItalicFont(id: DesignBlockId, from?: number, to?: number): boolean
5445
5473
  ```
5446
5474
 
5447
5475
  **Parameters:**
5448
-
5449
5476
  - `id` - The text block to check.
5450
5477
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5451
5478
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5456,7 +5483,6 @@ canToggleItalicFont(id: DesignBlockId, from?: number, to?: number): boolean
5456
5483
 
5457
5484
  Toggles the font weight of a text range between bold and normal.
5458
5485
  If any part of the range is not bold, the entire range becomes bold. If the entire range is already bold, it becomes normal.
5459
-
5460
5486
  ```javascript
5461
5487
  engine.block.toggleBoldFont(text);
5462
5488
  ```
@@ -5466,7 +5492,6 @@ toggleBoldFont(id: DesignBlockId, from?: number, to?: number): void
5466
5492
  ```
5467
5493
 
5468
5494
  **Parameters:**
5469
-
5470
5495
  - `id` - The text block to modify.
5471
5496
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5472
5497
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5475,7 +5500,6 @@ toggleBoldFont(id: DesignBlockId, from?: number, to?: number): void
5475
5500
 
5476
5501
  Toggles the font style of a text range between italic and normal.
5477
5502
  If any part of the range is not italic, the entire range becomes italic. If the entire range is already italic, it becomes normal.
5478
-
5479
5503
  ```javascript
5480
5504
  engine.block.toggleItalicFont(text);
5481
5505
  ```
@@ -5485,7 +5509,6 @@ toggleItalicFont(id: DesignBlockId, from?: number, to?: number): void
5485
5509
  ```
5486
5510
 
5487
5511
  **Parameters:**
5488
-
5489
5512
  - `id` - The text block to modify.
5490
5513
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5491
5514
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
@@ -5494,7 +5517,6 @@ toggleItalicFont(id: DesignBlockId, from?: number, to?: number): void
5494
5517
 
5495
5518
  Sets the font and typeface for an entire text block.
5496
5519
  Existing formatting is reset.
5497
-
5498
5520
  ```javascript
5499
5521
  engine.block.setFont(text, font.uri, typeface);
5500
5522
  ```
@@ -5504,7 +5526,6 @@ setFont(id: DesignBlockId, fontFileUri: string, typeface: Typeface): void
5504
5526
  ```
5505
5527
 
5506
5528
  **Parameters:**
5507
-
5508
5529
  - `id` - The text block whose font should be changed.
5509
5530
  - `fontFileUri` - The URI of the new font file.
5510
5531
  - `typeface` - The typeface of the new font.
@@ -5513,7 +5534,6 @@ setFont(id: DesignBlockId, fontFileUri: string, typeface: Typeface): void
5513
5534
 
5514
5535
  Sets the typeface for a range of text.
5515
5536
  The current formatting is retained as much as possible.
5516
-
5517
5537
  ```javascript
5518
5538
  engine.block.setTypeface(text, typeface, 2, 5);
5519
5539
  ```
@@ -5523,7 +5543,6 @@ setTypeface(id: DesignBlockId, typeface: Typeface, from?: number, to?: number):
5523
5543
  ```
5524
5544
 
5525
5545
  **Parameters:**
5526
-
5527
5546
  - `id` - The text block whose font should be changed.
5528
5547
  - `typeface` - The new typeface.
5529
5548
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
@@ -5533,7 +5552,6 @@ setTypeface(id: DesignBlockId, typeface: Typeface, from?: number, to?: number):
5533
5552
 
5534
5553
  Gets the base typeface of a text block.
5535
5554
  This does not return the typefaces of individual text runs.
5536
-
5537
5555
  ```javascript
5538
5556
  const defaultTypeface = engine.block.getTypeface(text);
5539
5557
  ```
@@ -5543,7 +5561,6 @@ getTypeface(id: DesignBlockId): Typeface
5543
5561
  ```
5544
5562
 
5545
5563
  **Parameters:**
5546
-
5547
5564
  - `id` - The text block whose typeface should be queried.
5548
5565
 
5549
5566
  **Returns:** the typeface property of the text block.
@@ -5551,7 +5568,6 @@ getTypeface(id: DesignBlockId): Typeface
5551
5568
  ### getTypefaces()
5552
5569
 
5553
5570
  Gets the unique typefaces within a range of text.
5554
-
5555
5571
  ```javascript
5556
5572
  const currentTypefaces = engine.block.getTypefaces(text);
5557
5573
  ```
@@ -5561,18 +5577,38 @@ getTypefaces(id: DesignBlockId, from?: number, to?: number): Typeface[]
5561
5577
  ```
5562
5578
 
5563
5579
  **Parameters:**
5564
-
5565
5580
  - `id` - The text block whose typefaces should be queried.
5566
5581
  - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5567
5582
  - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5568
5583
 
5569
5584
  **Returns:** The unique typefaces in the range.
5570
5585
 
5586
+ ### getTextRuns()
5587
+
5588
+ Gets all text runs within a range of text.
5589
+ Each run represents a contiguous span of text with uniform formatting.
5590
+ ```javascript
5591
+ const runs = engine.block.getTextRuns(text);
5592
+ ```
5593
+
5594
+ ```typescript
5595
+ getTextRuns(id: DesignBlockId, from?: number, to?: number): TextRunInfo[]
5596
+ ```
5597
+
5598
+ **Parameters:**
5599
+ - `id` - The text block to query.
5600
+ - `from` - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
5601
+ - `to` - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
5602
+
5603
+ **Returns:** The ordered list of text runs covering the requested range.
5604
+
5571
5605
  ### getTextCursorRange()
5572
5606
 
5573
5607
  Gets the current text cursor or selection range.
5574
- Returns the UTF-16 indices of the selected range of the text block that is currently being edited.
5575
-
5608
+ Returns the UTF-16 indices of the selected range of the text block that is currently being
5609
+ edited. The range is half-open (exclusive): `from` is the index of the first selected code
5610
+ unit, `to` is one past the last selected code unit. When `from === to` the cursor is
5611
+ positioned between characters with no text selected.
5576
5612
  ```javascript
5577
5613
  const selectedRange = engine.block.getTextCursorRange();
5578
5614
  ```
@@ -5592,13 +5628,11 @@ setTextCursorRange(range: Range): void
5592
5628
  ```
5593
5629
 
5594
5630
  **Parameters:**
5595
-
5596
5631
  - `range` - The UTF-16 range to set as the selection. If `from` equals `to`, the cursor is positioned at that index. If `from` and `to` are set to -1, the whole text is selected.
5597
5632
 
5598
5633
  ### getTextVisibleLineCount()
5599
5634
 
5600
5635
  Gets the number of visible lines in a text block.
5601
-
5602
5636
  ```javascript
5603
5637
  const lineCount = engine.block.getTextVisibleLineCount(text);
5604
5638
  ```
@@ -5608,7 +5642,6 @@ getTextVisibleLineCount(id: DesignBlockId): number
5608
5642
  ```
5609
5643
 
5610
5644
  **Parameters:**
5611
-
5612
5645
  - `id` - The text block whose line count should be returned.
5613
5646
 
5614
5647
  **Returns:** The number of lines in the text block.
@@ -5617,12 +5650,8 @@ getTextVisibleLineCount(id: DesignBlockId): number
5617
5650
 
5618
5651
  Gets the global bounding box of a visible line of text.
5619
5652
  The values are in the scene's global coordinate space.
5620
-
5621
5653
  ```javascript
5622
- const lineBoundingBox = engine.block.getTextVisibleLineGlobalBoundingBoxXYWH(
5623
- text,
5624
- 0
5625
- );
5654
+ const lineBoundingBox = engine.block.getTextVisibleLineGlobalBoundingBoxXYWH(text, 0);
5626
5655
  ```
5627
5656
 
5628
5657
  ```typescript
@@ -5630,7 +5659,6 @@ getTextVisibleLineGlobalBoundingBoxXYWH(id: DesignBlockId, lineIndex: number): X
5630
5659
  ```
5631
5660
 
5632
5661
  **Parameters:**
5633
-
5634
5662
  - `id` - The text block whose line bounding box should be returned.
5635
5663
  - `lineIndex` - The index of the line whose bounding box should be returned.
5636
5664
 
@@ -5645,12 +5673,28 @@ getTextVisibleLineContent(id: DesignBlockId, lineIndex: number): string
5645
5673
  ```
5646
5674
 
5647
5675
  **Parameters:**
5648
-
5649
5676
  - `id` - The text block whose line content should be returned.
5650
5677
  - `lineIndex` - The index of the line whose content should be returned.
5651
5678
 
5652
5679
  **Returns:** The text content of the line.
5653
5680
 
5681
+ ### getTextCharacterInkBoxes()
5682
+
5683
+ Returns the tight ink-paint bounding box for each grapheme in the range.
5684
+ One entry per grapheme in [from, to). Non-printable graphemes get a zero-rect.
5685
+ Coordinates are in global scene space.
5686
+
5687
+ ```typescript
5688
+ getTextCharacterInkBoxes(id: DesignBlockId, from?: number, to?: number): CharacterInkBox[]
5689
+ ```
5690
+
5691
+ **Parameters:**
5692
+ - `id` - The text block to query.
5693
+ - `from` - Start grapheme index (-1 = start of cursor selection or 0).
5694
+ - `to` - End grapheme index (-1 = end of cursor selection or text length).
5695
+
5696
+ **Returns:** Array of CharacterInkBox, one per grapheme in range, in text order.
5697
+
5654
5698
  ### getTextEffectiveHorizontalAlignment()
5655
5699
 
5656
5700
  Gets the effective horizontal alignment of a text block.
@@ -5662,11 +5706,87 @@ getTextEffectiveHorizontalAlignment(id: DesignBlockId): 'Left' | 'Right' | 'Cent
5662
5706
  ```
5663
5707
 
5664
5708
  **Parameters:**
5665
-
5666
5709
  - `id` - The text block whose effective alignment should be returned.
5667
5710
 
5668
5711
  **Returns:** The effective alignment ('Left', 'Right', or 'Center').
5669
5712
 
5713
+ ### setTextOnPath()
5714
+
5715
+ Sets the SVG path that the text baseline follows.
5716
+ Pass `null` to restore normal straight-line text layout.
5717
+
5718
+ ```typescript
5719
+ setTextOnPath(id: DesignBlockId, svgPath: string | null): void
5720
+ ```
5721
+
5722
+ **Parameters:**
5723
+ - `id` - The text block to modify.
5724
+ - `svgPath` - An SVG path string in the block's local coordinate space, or `null` to clear.
5725
+
5726
+ ### getTextOnPath()
5727
+
5728
+ Gets the SVG path currently used as the text baseline.
5729
+
5730
+ ```typescript
5731
+ getTextOnPath(id: DesignBlockId): string | null
5732
+ ```
5733
+
5734
+ **Parameters:**
5735
+ - `id` - The text block to query.
5736
+
5737
+ **Returns:** The SVG path string, or `null` if no path is set.
5738
+
5739
+ ### setTextOnPathOffset()
5740
+
5741
+ Sets the start offset along the baseline path as a proportion of the path length.
5742
+ Values are clamped to `[-1, 1]`; `1` and `-1` wrap back to the path start.
5743
+
5744
+ ```typescript
5745
+ setTextOnPathOffset(id: DesignBlockId, offset: number): void
5746
+ ```
5747
+
5748
+ **Parameters:**
5749
+ - `id` - The text block to modify.
5750
+ - `offset` - The proportional offset. Positive values move the text forward along the path.
5751
+
5752
+ ### getTextOnPathOffset()
5753
+
5754
+ Gets the start offset along the baseline path as a proportion of the path length.
5755
+
5756
+ ```typescript
5757
+ getTextOnPathOffset(id: DesignBlockId): number
5758
+ ```
5759
+
5760
+ **Parameters:**
5761
+ - `id` - The text block to query.
5762
+
5763
+ **Returns:** The proportional offset in `[-1, 1]`.
5764
+
5765
+ ### setTextOnPathFlipped()
5766
+
5767
+ Sets whether text is placed on the opposite side of the baseline path.
5768
+
5769
+ ```typescript
5770
+ setTextOnPathFlipped(id: DesignBlockId, flipped: boolean): void
5771
+ ```
5772
+
5773
+ **Parameters:**
5774
+ - `id` - The text block to modify.
5775
+ - `flipped` - When `true`, text sits on the underside of the curve and reads in the reverse direction.
5776
+
5777
+ ### getTextOnPathFlipped()
5778
+
5779
+ Gets whether the text-on-path rendering is flipped.
5780
+
5781
+ ```typescript
5782
+ getTextOnPathFlipped(id: DesignBlockId): boolean
5783
+ ```
5784
+
5785
+ **Parameters:**
5786
+ - `id` - The text block to query.
5787
+
5788
+ **Returns:** `true` when text is on the underside of the curve.
5789
+
5670
5790
  ## Block Placeholder
5671
5791
 
5672
5792
  Manage placeholder functionality, controls, and behavior.
@@ -5675,7 +5795,6 @@ Manage placeholder functionality, controls, and behavior.
5675
5795
 
5676
5796
  Enables or disables the placeholder function for a block.
5677
5797
  When set to `true`, the given block becomes selectable by users and its placeholder capabilities are enabled in Adopter mode.
5678
-
5679
5798
  ```javascript
5680
5799
  engine.block.setPlaceholderEnabled(block, true);
5681
5800
  ```
@@ -5685,14 +5804,12 @@ setPlaceholderEnabled(id: DesignBlockId, enabled: boolean): void
5685
5804
  ```
5686
5805
 
5687
5806
  **Parameters:**
5688
-
5689
5807
  - `id` - The block whose placeholder function should be enabled or disabled.
5690
5808
  - `enabled` - Whether the function should be enabled or disabled.
5691
5809
 
5692
5810
  ### isPlaceholderEnabled()
5693
5811
 
5694
5812
  Checks if the placeholder function for a block is enabled and can be selected by users in Adopter mode.
5695
-
5696
5813
  ```javascript
5697
5814
  const placeholderIsEnabled = engine.block.isPlaceholderEnabled(block);
5698
5815
  ```
@@ -5702,12 +5819,11 @@ isPlaceholderEnabled(id: DesignBlockId): boolean
5702
5819
  ```
5703
5820
 
5704
5821
  **Parameters:**
5705
-
5706
5822
  - `id` - The block whose placeholder function state should be queried.
5707
5823
 
5708
5824
  **Returns:** The enabled state of the placeholder function.
5709
5825
 
5710
- ### hasPlaceholderBehavior() _(deprecated)_
5826
+ ### hasPlaceholderBehavior() *(deprecated)*
5711
5827
 
5712
5828
  Checks if a block supports placeholder behavior.
5713
5829
 
@@ -5716,7 +5832,6 @@ hasPlaceholderBehavior(id: DesignBlockId): boolean
5716
5832
  ```
5717
5833
 
5718
5834
  **Parameters:**
5719
-
5720
5835
  - `id` - The block to query.
5721
5836
 
5722
5837
  **Returns:** True, if the block supports placeholder behavior.
@@ -5724,10 +5839,8 @@ hasPlaceholderBehavior(id: DesignBlockId): boolean
5724
5839
  ### supportsPlaceholderBehavior()
5725
5840
 
5726
5841
  Checks if a block supports placeholder behavior.
5727
-
5728
5842
  ```javascript
5729
- const placeholderBehaviorSupported =
5730
- engine.block.supportsPlaceholderBehavior(block);
5843
+ const placeholderBehaviorSupported = engine.block.supportsPlaceholderBehavior(block);
5731
5844
  ```
5732
5845
 
5733
5846
  ```typescript
@@ -5735,7 +5848,6 @@ supportsPlaceholderBehavior(id: DesignBlockId): boolean
5735
5848
  ```
5736
5849
 
5737
5850
  **Parameters:**
5738
-
5739
5851
  - `id` - The block to query.
5740
5852
 
5741
5853
  **Returns:** True, if the block supports placeholder behavior.
@@ -5744,7 +5856,6 @@ supportsPlaceholderBehavior(id: DesignBlockId): boolean
5744
5856
 
5745
5857
  Enables or disables the placeholder behavior for a block.
5746
5858
  When its fill block is set to `true`, an image block will act as a placeholder, showing a control overlay and a replacement button.
5747
-
5748
5859
  ```javascript
5749
5860
  engine.block.setPlaceholderBehaviorEnabled(block, true);
5750
5861
  ```
@@ -5754,14 +5865,12 @@ setPlaceholderBehaviorEnabled(id: DesignBlockId, enabled: boolean): void
5754
5865
  ```
5755
5866
 
5756
5867
  **Parameters:**
5757
-
5758
5868
  - `id` - The block whose placeholder behavior should be enabled or disabled.
5759
5869
  - `enabled` - Whether the placeholder behavior should be enabled or disabled.
5760
5870
 
5761
5871
  ### isPlaceholderBehaviorEnabled()
5762
5872
 
5763
5873
  Checks if the placeholder behavior for a block is enabled.
5764
-
5765
5874
  ```javascript
5766
5875
  engine.block.setPlaceholderBehaviorEnabled(block, true);
5767
5876
  ```
@@ -5771,12 +5880,11 @@ isPlaceholderBehaviorEnabled(id: DesignBlockId): boolean
5771
5880
  ```
5772
5881
 
5773
5882
  **Parameters:**
5774
-
5775
5883
  - `id` - The block whose placeholder behavior state should be queried.
5776
5884
 
5777
5885
  **Returns:** The enabled state of the placeholder behavior.
5778
5886
 
5779
- ### hasPlaceholderControls() _(deprecated)_
5887
+ ### hasPlaceholderControls() *(deprecated)*
5780
5888
 
5781
5889
  Checks if a block supports placeholder controls.
5782
5890
 
@@ -5785,7 +5893,6 @@ hasPlaceholderControls(id: DesignBlockId): boolean
5785
5893
  ```
5786
5894
 
5787
5895
  **Parameters:**
5788
-
5789
5896
  - `id` - The block to query.
5790
5897
 
5791
5898
  **Returns:** True, if the block supports placeholder controls.
@@ -5799,7 +5906,6 @@ supportsPlaceholderControls(id: DesignBlockId): boolean
5799
5906
  ```
5800
5907
 
5801
5908
  **Parameters:**
5802
-
5803
5909
  - `id` - The block to query.
5804
5910
 
5805
5911
  **Returns:** True, if the block supports placeholder controls.
@@ -5807,7 +5913,6 @@ supportsPlaceholderControls(id: DesignBlockId): boolean
5807
5913
  ### setPlaceholderControlsOverlayEnabled()
5808
5914
 
5809
5915
  Enables or disables the placeholder overlay pattern.
5810
-
5811
5916
  ```javascript
5812
5917
  engine.block.setPlaceholderControlsOverlayEnabled(block, true);
5813
5918
  ```
@@ -5817,14 +5922,12 @@ setPlaceholderControlsOverlayEnabled(id: DesignBlockId, enabled: boolean): void
5817
5922
  ```
5818
5923
 
5819
5924
  **Parameters:**
5820
-
5821
5925
  - `id` - The block whose placeholder overlay should be enabled or disabled.
5822
5926
  - `enabled` - Whether the placeholder overlay should be shown or not.
5823
5927
 
5824
5928
  ### isPlaceholderControlsOverlayEnabled()
5825
5929
 
5826
5930
  Checks if the placeholder overlay pattern is enabled.
5827
-
5828
5931
  ```javascript
5829
5932
  const overlayEnabled = engine.block.isPlaceholderControlsOverlayEnabled(block);
5830
5933
  ```
@@ -5834,7 +5937,6 @@ isPlaceholderControlsOverlayEnabled(id: DesignBlockId): boolean
5834
5937
  ```
5835
5938
 
5836
5939
  **Parameters:**
5837
-
5838
5940
  - `id` - The block whose placeholder overlay visibility state should be queried.
5839
5941
 
5840
5942
  **Returns:** The visibility state of the block's placeholder overlay pattern.
@@ -5842,7 +5944,6 @@ isPlaceholderControlsOverlayEnabled(id: DesignBlockId): boolean
5842
5944
  ### setPlaceholderControlsButtonEnabled()
5843
5945
 
5844
5946
  Enables or disables the placeholder button.
5845
-
5846
5947
  ```javascript
5847
5948
  engine.block.setPlaceholderControlsButtonEnabled(block, true);
5848
5949
  ```
@@ -5852,14 +5953,12 @@ setPlaceholderControlsButtonEnabled(id: DesignBlockId, enabled: boolean): void
5852
5953
  ```
5853
5954
 
5854
5955
  **Parameters:**
5855
-
5856
5956
  - `id` - The block whose placeholder button should be shown or not.
5857
5957
  - `enabled` - Whether the placeholder button should be shown or not.
5858
5958
 
5859
5959
  ### isPlaceholderControlsButtonEnabled()
5860
5960
 
5861
5961
  Checks if the placeholder button is enabled.
5862
-
5863
5962
  ```javascript
5864
5963
  const buttonEnabled = engine.block.isPlaceholderControlsButtonEnabled(block);
5865
5964
  ```
@@ -5869,7 +5968,6 @@ isPlaceholderControlsButtonEnabled(id: DesignBlockId): boolean
5869
5968
  ```
5870
5969
 
5871
5970
  **Parameters:**
5872
-
5873
5971
  - `id` - The block whose placeholder button visibility state should be queried.
5874
5972
 
5875
5973
  **Returns:** The visibility state of the block's placeholder button.
@@ -5886,7 +5984,6 @@ setMetadata(id: DesignBlockId, key: string, value: string): void
5886
5984
  ```
5887
5985
 
5888
5986
  **Parameters:**
5889
-
5890
5987
  - `id` - The block whose metadata will be accessed.
5891
5988
  - `key` - The key used to identify the desired piece of metadata.
5892
5989
  - `value` - The value to set.
@@ -5900,7 +5997,6 @@ getMetadata(id: DesignBlockId, key: string): string
5900
5997
  ```
5901
5998
 
5902
5999
  **Parameters:**
5903
-
5904
6000
  - `id` - The block whose metadata will be accessed.
5905
6001
  - `key` - The key used to identify the desired piece of metadata.
5906
6002
 
@@ -5915,7 +6011,6 @@ hasMetadata(id: DesignBlockId, key: string): boolean
5915
6011
  ```
5916
6012
 
5917
6013
  **Parameters:**
5918
-
5919
6014
  - `id` - The block whose metadata will be accessed.
5920
6015
  - `key` - The key used to identify the desired piece of metadata.
5921
6016
 
@@ -5930,7 +6025,6 @@ findAllMetadata(id: DesignBlockId): string[]
5930
6025
  ```
5931
6026
 
5932
6027
  **Parameters:**
5933
-
5934
6028
  - `id` - The block whose metadata will be accessed.
5935
6029
 
5936
6030
  **Returns:** A list of all metadata keys on this block.
@@ -5944,7 +6038,6 @@ removeMetadata(id: DesignBlockId, key: string): void
5944
6038
  ```
5945
6039
 
5946
6040
  **Parameters:**
5947
-
5948
6041
  - `id` - The block whose metadata will be accessed.
5949
6042
  - `key` - The key used to identify the desired piece of metadata.
5950
6043
 
@@ -5955,7 +6048,6 @@ Manage permissions and capabilities per block.
5955
6048
  ### setScopeEnabled()
5956
6049
 
5957
6050
  Enables or disables a scope for a block.
5958
-
5959
6051
  ```javascript
5960
6052
  // Allow the user to move the image block.
5961
6053
  engine.block.setScopeEnabled(image, 'layer/move', true);
@@ -5966,7 +6058,6 @@ setScopeEnabled(id: DesignBlockId, key: Scope, enabled: boolean): void
5966
6058
  ```
5967
6059
 
5968
6060
  **Parameters:**
5969
-
5970
6061
  - `id` - The block whose scope should be enabled or disabled.
5971
6062
  - `key` - The scope to enable or disable.
5972
6063
  - `enabled` - Whether the scope should be enabled or disabled.
@@ -5974,7 +6065,6 @@ setScopeEnabled(id: DesignBlockId, key: Scope, enabled: boolean): void
5974
6065
  ### isScopeEnabled()
5975
6066
 
5976
6067
  Checks if a scope is enabled for a block.
5977
-
5978
6068
  ```javascript
5979
6069
  engine.block.isScopeEnabled(image, 'layer/move');
5980
6070
  ```
@@ -5984,7 +6074,6 @@ isScopeEnabled(id: DesignBlockId, key: Scope): boolean
5984
6074
  ```
5985
6075
 
5986
6076
  **Parameters:**
5987
-
5988
6077
  - `id` - The block whose scope state should be queried.
5989
6078
  - `key` - The scope to query.
5990
6079
 
@@ -5993,7 +6082,6 @@ isScopeEnabled(id: DesignBlockId, key: Scope): boolean
5993
6082
  ### isAllowedByScope()
5994
6083
 
5995
6084
  Checks if an operation is allowed by a block's scopes.
5996
-
5997
6085
  ```javascript
5998
6086
  // This will return true when the global scope is set to 'Defer'.
5999
6087
  engine.block.isAllowedByScope(image, 'layer/move');
@@ -6004,7 +6092,6 @@ isAllowedByScope(id: DesignBlockId, key: Scope): boolean
6004
6092
  ```
6005
6093
 
6006
6094
  **Parameters:**
6007
-
6008
6095
  - `id` - The block to check.
6009
6096
  - `key` - The scope to check.
6010
6097
 
@@ -6017,7 +6104,6 @@ isAllowedByScope(id: DesignBlockId, key: Scope): boolean
6017
6104
  Splits a block at the specified time.
6018
6105
  The original block will be trimmed to end at the split time, and the returned duplicate
6019
6106
  will start at the split time and continue to the original end time.
6020
-
6021
6107
  ```javascript
6022
6108
  const duplicate = engine.block.split(video, 10.0);
6023
6109
  ```
@@ -6027,7 +6113,6 @@ split(id: DesignBlockId, atTime: number, options?: SplitOptions): DesignBlockId
6027
6113
  ```
6028
6114
 
6029
6115
  **Parameters:**
6030
-
6031
6116
  - `id` - The block to split.
6032
6117
  - `atTime` - The time (in seconds) relative to the block's time offset where the split should occur.
6033
6118
  - `options` - The options for configuring the split operation.
@@ -6047,7 +6132,6 @@ createAnimation(type: AnimationType): DesignBlockId
6047
6132
  ```
6048
6133
 
6049
6134
  **Parameters:**
6050
-
6051
6135
  - `type` - The type of animation to create.
6052
6136
 
6053
6137
  **Returns:** The handle of the new animation instance.
@@ -6061,7 +6145,6 @@ supportsAnimation(id: DesignBlockId): boolean
6061
6145
  ```
6062
6146
 
6063
6147
  **Parameters:**
6064
-
6065
6148
  - `id` - The block to query.
6066
6149
 
6067
6150
  **Returns:** Whether the block supports animation.
@@ -6075,7 +6158,6 @@ setInAnimation(id: DesignBlockId, animation: DesignBlockId): void
6075
6158
  ```
6076
6159
 
6077
6160
  **Parameters:**
6078
-
6079
6161
  - `id` - The block whose "in" animation should be set.
6080
6162
  - `animation` - The animation to set.
6081
6163
 
@@ -6088,7 +6170,6 @@ setLoopAnimation(id: DesignBlockId, animation: DesignBlockId): void
6088
6170
  ```
6089
6171
 
6090
6172
  **Parameters:**
6091
-
6092
6173
  - `id` - The block whose "loop" animation should be set.
6093
6174
  - `animation` - The animation to set.
6094
6175
 
@@ -6101,7 +6182,6 @@ setOutAnimation(id: DesignBlockId, animation: DesignBlockId): void
6101
6182
  ```
6102
6183
 
6103
6184
  **Parameters:**
6104
-
6105
6185
  - `id` - The block whose "out" animation should be set.
6106
6186
  - `animation` - The animation to set.
6107
6187
 
@@ -6114,7 +6194,6 @@ getInAnimation(id: DesignBlockId): DesignBlockId
6114
6194
  ```
6115
6195
 
6116
6196
  **Parameters:**
6117
-
6118
6197
  - `id` - The block whose "in" animation should be queried.
6119
6198
 
6120
6199
  **Returns:** The "in" animation of the block.
@@ -6128,7 +6207,6 @@ getLoopAnimation(id: DesignBlockId): DesignBlockId
6128
6207
  ```
6129
6208
 
6130
6209
  **Parameters:**
6131
-
6132
6210
  - `id` - The block whose "loop" animation should be queried.
6133
6211
 
6134
6212
  **Returns:** The "loop" animation of the block.
@@ -6142,11 +6220,10 @@ getOutAnimation(id: DesignBlockId): DesignBlockId
6142
6220
  ```
6143
6221
 
6144
6222
  **Parameters:**
6145
-
6146
6223
  - `id` - The block whose "out" animation should be queried.
6147
6224
 
6148
6225
  **Returns:** The "out" animation of the block.
6149
6226
 
6150
6227
  ---
6151
6228
 
6152
- For complete type definitions, see the [CE.SDK TypeScript API Reference](https://img.ly/docs/cesdk/engine/api/).
6229
+ For complete type definitions, see the [CE.SDK TypeScript API Reference](https://img.ly/docs/cesdk/engine/api/).