@imgly/codesign-mcp 0.1.0

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 (816) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +158 -0
  3. package/assets/docs/api/SKILL.md +49 -0
  4. package/assets/docs/api/index.d.ts +10518 -0
  5. package/assets/docs/guide/SKILL.md +142 -0
  6. package/assets/docs/guide/actions.md +1038 -0
  7. package/assets/docs/guide/animation/create/base.md +467 -0
  8. package/assets/docs/guide/animation/create/text.md +453 -0
  9. package/assets/docs/guide/animation/create.md +558 -0
  10. package/assets/docs/guide/animation/edit.md +501 -0
  11. package/assets/docs/guide/animation/overview.md +22 -0
  12. package/assets/docs/guide/animation/types.md +430 -0
  13. package/assets/docs/guide/animation.md +23 -0
  14. package/assets/docs/guide/api/AssetAPI.md +602 -0
  15. package/assets/docs/guide/api/BlockAPI.md +6152 -0
  16. package/assets/docs/guide/api/CreativeEngine.md +180 -0
  17. package/assets/docs/guide/api/EditorAPI.md +1261 -0
  18. package/assets/docs/guide/api/EventAPI.md +25 -0
  19. package/assets/docs/guide/api/SceneAPI.md +729 -0
  20. package/assets/docs/guide/api/VariableAPI.md +59 -0
  21. package/assets/docs/guide/api/types.md +71 -0
  22. package/assets/docs/guide/api-reference/overview.md +20 -0
  23. package/assets/docs/guide/automation/auto-resize.md +412 -0
  24. package/assets/docs/guide/automation/batch-processing.md +474 -0
  25. package/assets/docs/guide/automation/data-merge.md +406 -0
  26. package/assets/docs/guide/automation/design-generation.md +107 -0
  27. package/assets/docs/guide/automation/overview.md +16 -0
  28. package/assets/docs/guide/automation.md +24 -0
  29. package/assets/docs/guide/browser-support.md +38 -0
  30. package/assets/docs/guide/capabilities.md +18 -0
  31. package/assets/docs/guide/colors/adjust.md +551 -0
  32. package/assets/docs/guide/colors/apply.md +349 -0
  33. package/assets/docs/guide/colors/basics.md +440 -0
  34. package/assets/docs/guide/colors/conversion.md +504 -0
  35. package/assets/docs/guide/colors/create-color-palette.md +426 -0
  36. package/assets/docs/guide/colors/for-print/cmyk.md +577 -0
  37. package/assets/docs/guide/colors/for-print/spot.md +751 -0
  38. package/assets/docs/guide/colors/for-print.md +21 -0
  39. package/assets/docs/guide/colors/for-screen/p3.md +60 -0
  40. package/assets/docs/guide/colors/for-screen/srgb.md +463 -0
  41. package/assets/docs/guide/colors/for-screen.md +21 -0
  42. package/assets/docs/guide/colors/overview.md +20 -0
  43. package/assets/docs/guide/colors/replace.md +535 -0
  44. package/assets/docs/guide/colors.md +28 -0
  45. package/assets/docs/guide/compatibility.md +27 -0
  46. package/assets/docs/guide/concepts/architecture.md +99 -0
  47. package/assets/docs/guide/concepts/assets.md +360 -0
  48. package/assets/docs/guide/concepts/blocks.md +750 -0
  49. package/assets/docs/guide/concepts/buffers.md +546 -0
  50. package/assets/docs/guide/concepts/design-units.md +333 -0
  51. package/assets/docs/guide/concepts/edit-modes.md +431 -0
  52. package/assets/docs/guide/concepts/editing-workflow.md +303 -0
  53. package/assets/docs/guide/concepts/events.md +466 -0
  54. package/assets/docs/guide/concepts/headless-mode/browser.md +291 -0
  55. package/assets/docs/guide/concepts/pages.md +396 -0
  56. package/assets/docs/guide/concepts/resources.md +496 -0
  57. package/assets/docs/guide/concepts/scenes.md +443 -0
  58. package/assets/docs/guide/concepts/templating.md +194 -0
  59. package/assets/docs/guide/concepts/terminology.md +296 -0
  60. package/assets/docs/guide/concepts/undo-and-history.md +461 -0
  61. package/assets/docs/guide/concepts.md +38 -0
  62. package/assets/docs/guide/configuration.md +469 -0
  63. package/assets/docs/guide/conversion/overview.md +22 -0
  64. package/assets/docs/guide/conversion/to-base64.md +234 -0
  65. package/assets/docs/guide/conversion/to-pdf.md +616 -0
  66. package/assets/docs/guide/conversion/to-png.md +290 -0
  67. package/assets/docs/guide/conversion.md +23 -0
  68. package/assets/docs/guide/create-audio/audio/add-music.md +430 -0
  69. package/assets/docs/guide/create-audio/audio/add-sound-effects.md +664 -0
  70. package/assets/docs/guide/create-audio/audio/loop.md +370 -0
  71. package/assets/docs/guide/create-audio/audio.md +336 -0
  72. package/assets/docs/guide/create-composition/add-background.md +395 -0
  73. package/assets/docs/guide/create-composition/blend-modes.md +372 -0
  74. package/assets/docs/guide/create-composition/collage.md +432 -0
  75. package/assets/docs/guide/create-composition/group-and-ungroup.md +388 -0
  76. package/assets/docs/guide/create-composition/layer-management.md +503 -0
  77. package/assets/docs/guide/create-composition/layout.md +396 -0
  78. package/assets/docs/guide/create-composition/lock-design.md +362 -0
  79. package/assets/docs/guide/create-composition/multi-page.md +204 -0
  80. package/assets/docs/guide/create-composition/overview.md +18 -0
  81. package/assets/docs/guide/create-composition/programmatic.md +593 -0
  82. package/assets/docs/guide/create-composition.md +30 -0
  83. package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +688 -0
  84. package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +600 -0
  85. package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +647 -0
  86. package/assets/docs/guide/create-templates/add-dynamic-content.md +307 -0
  87. package/assets/docs/guide/create-templates/add-to-template-library.md +297 -0
  88. package/assets/docs/guide/create-templates/edit-or-remove.md +441 -0
  89. package/assets/docs/guide/create-templates/from-scratch.md +558 -0
  90. package/assets/docs/guide/create-templates/import/from-scene-file.md +440 -0
  91. package/assets/docs/guide/create-templates/import.md +244 -0
  92. package/assets/docs/guide/create-templates/lock.md +325 -0
  93. package/assets/docs/guide/create-templates/overview.md +16 -0
  94. package/assets/docs/guide/create-templates.md +32 -0
  95. package/assets/docs/guide/create-video/audio/adjust-speed.md +302 -0
  96. package/assets/docs/guide/create-video/audio/adjust-volume.md +346 -0
  97. package/assets/docs/guide/create-video/control.md +285 -0
  98. package/assets/docs/guide/create-video/limitations.md +396 -0
  99. package/assets/docs/guide/create-video/overview.md +224 -0
  100. package/assets/docs/guide/create-video/timeline-editor.md +622 -0
  101. package/assets/docs/guide/create-video/update-caption-presets.md +676 -0
  102. package/assets/docs/guide/create-video.md +32 -0
  103. package/assets/docs/guide/edit-image/add-watermark.md +497 -0
  104. package/assets/docs/guide/edit-image/overview.md +22 -0
  105. package/assets/docs/guide/edit-image/remove-bg.md +420 -0
  106. package/assets/docs/guide/edit-image/replace-colors.md +680 -0
  107. package/assets/docs/guide/edit-image/transform/crop.md +523 -0
  108. package/assets/docs/guide/edit-image/transform/move.md +279 -0
  109. package/assets/docs/guide/edit-image/transform/resize.md +301 -0
  110. package/assets/docs/guide/edit-image/transform/rotate.md +408 -0
  111. package/assets/docs/guide/edit-image/transform/scale.md +278 -0
  112. package/assets/docs/guide/edit-image/transform.md +24 -0
  113. package/assets/docs/guide/edit-image/vectorize.md +204 -0
  114. package/assets/docs/guide/edit-image.md +25 -0
  115. package/assets/docs/guide/edit-video/add-captions.md +589 -0
  116. package/assets/docs/guide/edit-video/add-watermark.md +429 -0
  117. package/assets/docs/guide/edit-video/join-and-arrange.md +540 -0
  118. package/assets/docs/guide/edit-video/redaction.md +544 -0
  119. package/assets/docs/guide/edit-video/split.md +634 -0
  120. package/assets/docs/guide/edit-video/transform/crop.md +380 -0
  121. package/assets/docs/guide/edit-video/transform/flip.md +182 -0
  122. package/assets/docs/guide/edit-video/transform/move.md +413 -0
  123. package/assets/docs/guide/edit-video/transform/resize.md +534 -0
  124. package/assets/docs/guide/edit-video/transform/rotate.md +312 -0
  125. package/assets/docs/guide/edit-video/transform/scale.md +603 -0
  126. package/assets/docs/guide/edit-video/transform.md +25 -0
  127. package/assets/docs/guide/edit-video/trim.md +773 -0
  128. package/assets/docs/guide/engine-interface.md +108 -0
  129. package/assets/docs/guide/export-save-publish/create-thumbnail.md +292 -0
  130. package/assets/docs/guide/export-save-publish/export/compress.md +639 -0
  131. package/assets/docs/guide/export-save-publish/export/overview.md +576 -0
  132. package/assets/docs/guide/export-save-publish/export/partial-export.md +694 -0
  133. package/assets/docs/guide/export-save-publish/export/size-limits.md +401 -0
  134. package/assets/docs/guide/export-save-publish/export/to-html5.md +474 -0
  135. package/assets/docs/guide/export-save-publish/export/to-jpeg.md +312 -0
  136. package/assets/docs/guide/export-save-publish/export/to-mp4.md +364 -0
  137. package/assets/docs/guide/export-save-publish/export/to-pdf.md +389 -0
  138. package/assets/docs/guide/export-save-publish/export/to-png.md +255 -0
  139. package/assets/docs/guide/export-save-publish/export/to-raw-data.md +303 -0
  140. package/assets/docs/guide/export-save-publish/export/to-webp.md +261 -0
  141. package/assets/docs/guide/export-save-publish/export/with-color-mask.md +278 -0
  142. package/assets/docs/guide/export-save-publish/export.md +36 -0
  143. package/assets/docs/guide/export-save-publish/for-printing.md +423 -0
  144. package/assets/docs/guide/export-save-publish/for-social-media.md +318 -0
  145. package/assets/docs/guide/export-save-publish/pre-export-validation.md +698 -0
  146. package/assets/docs/guide/export-save-publish/save.md +340 -0
  147. package/assets/docs/guide/export-save-publish/store-custom-metadata.md +367 -0
  148. package/assets/docs/guide/file-format-support.md +34 -0
  149. package/assets/docs/guide/fills/color.md +678 -0
  150. package/assets/docs/guide/fills/image.md +539 -0
  151. package/assets/docs/guide/fills/overview.md +144 -0
  152. package/assets/docs/guide/fills/video.md +641 -0
  153. package/assets/docs/guide/fills.md +24 -0
  154. package/assets/docs/guide/filters-and-effects/apply.md +1019 -0
  155. package/assets/docs/guide/filters-and-effects/blur.md +382 -0
  156. package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +445 -0
  157. package/assets/docs/guide/filters-and-effects/create-custom-filters.md +614 -0
  158. package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +426 -0
  159. package/assets/docs/guide/filters-and-effects/distortion.md +527 -0
  160. package/assets/docs/guide/filters-and-effects/duotone.md +602 -0
  161. package/assets/docs/guide/filters-and-effects/gradients.md +1311 -0
  162. package/assets/docs/guide/filters-and-effects/overview.md +22 -0
  163. package/assets/docs/guide/filters-and-effects/support.md +623 -0
  164. package/assets/docs/guide/filters-and-effects.md +28 -0
  165. package/assets/docs/guide/get-started/agent-skills.md +119 -0
  166. package/assets/docs/guide/get-started/build-with-ai.md +45 -0
  167. package/assets/docs/guide/get-started/mcp-server.md +119 -0
  168. package/assets/docs/guide/get-started/overview.md +28 -0
  169. package/assets/docs/guide/get-started/vanilla-js/quickstart.md +175 -0
  170. package/assets/docs/guide/grid-and-rulers.md +222 -0
  171. package/assets/docs/guide/guides/export-save-publish/export/audio.md +224 -0
  172. package/assets/docs/guide/guides/text/rendering-internals.md +796 -0
  173. package/assets/docs/guide/guides.md +49 -0
  174. package/assets/docs/guide/import-media/asset-library.md +23 -0
  175. package/assets/docs/guide/import-media/asset-panel/basics.md +324 -0
  176. package/assets/docs/guide/import-media/asset-panel/customize.md +478 -0
  177. package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +415 -0
  178. package/assets/docs/guide/import-media/asset-panel/thumbnails.md +633 -0
  179. package/assets/docs/guide/import-media/capture-from-camera/record-video.md +137 -0
  180. package/assets/docs/guide/import-media/capture-from-camera.md +20 -0
  181. package/assets/docs/guide/import-media/concepts.md +173 -0
  182. package/assets/docs/guide/import-media/content-json-schema.md +615 -0
  183. package/assets/docs/guide/import-media/default-assets.md +381 -0
  184. package/assets/docs/guide/import-media/edit-or-remove-assets.md +489 -0
  185. package/assets/docs/guide/import-media/file-format-support.md +178 -0
  186. package/assets/docs/guide/import-media/from-local-source/user-upload.md +438 -0
  187. package/assets/docs/guide/import-media/from-local-source.md +20 -0
  188. package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +390 -0
  189. package/assets/docs/guide/import-media/from-remote-source/getty-images.md +627 -0
  190. package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +625 -0
  191. package/assets/docs/guide/import-media/from-remote-source/pexels.md +692 -0
  192. package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +473 -0
  193. package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +497 -0
  194. package/assets/docs/guide/import-media/from-remote-source/third-party.md +51 -0
  195. package/assets/docs/guide/import-media/from-remote-source/unsplash.md +914 -0
  196. package/assets/docs/guide/import-media/from-remote-source/your-server.md +764 -0
  197. package/assets/docs/guide/import-media/from-remote-source.md +28 -0
  198. package/assets/docs/guide/import-media/overview.md +32 -0
  199. package/assets/docs/guide/import-media/retrieve-mimetype.md +274 -0
  200. package/assets/docs/guide/import-media/size-limits.md +20 -0
  201. package/assets/docs/guide/import-media/source-sets.md +476 -0
  202. package/assets/docs/guide/import-media.md +32 -0
  203. package/assets/docs/guide/insert-media/audio.md +291 -0
  204. package/assets/docs/guide/insert-media/images.md +380 -0
  205. package/assets/docs/guide/insert-media/position-and-align.md +734 -0
  206. package/assets/docs/guide/insert-media/shapes-or-stickers.md +799 -0
  207. package/assets/docs/guide/insert-media/videos.md +308 -0
  208. package/assets/docs/guide/insert-media.md +24 -0
  209. package/assets/docs/guide/key-capabilities.md +24 -0
  210. package/assets/docs/guide/key-concepts.md +83 -0
  211. package/assets/docs/guide/licensing.md +45 -0
  212. package/assets/docs/guide/llms-txt.md +53 -0
  213. package/assets/docs/guide/open-the-editor/blank-canvas.md +124 -0
  214. package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +228 -0
  215. package/assets/docs/guide/open-the-editor/from-image.md +205 -0
  216. package/assets/docs/guide/open-the-editor/from-template.md +189 -0
  217. package/assets/docs/guide/open-the-editor/from-video.md +274 -0
  218. package/assets/docs/guide/open-the-editor/import-design/from-archive.md +504 -0
  219. package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +680 -0
  220. package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +865 -0
  221. package/assets/docs/guide/open-the-editor/import-design.md +481 -0
  222. package/assets/docs/guide/open-the-editor/load-scene.md +178 -0
  223. package/assets/docs/guide/open-the-editor/overview.md +20 -0
  224. package/assets/docs/guide/open-the-editor/set-zoom-level.md +303 -0
  225. package/assets/docs/guide/open-the-editor/uri-resolver.md +347 -0
  226. package/assets/docs/guide/open-the-editor.md +29 -0
  227. package/assets/docs/guide/outlines/overview.md +14 -0
  228. package/assets/docs/guide/outlines/shadows-and-glows.md +515 -0
  229. package/assets/docs/guide/outlines/strokes.md +292 -0
  230. package/assets/docs/guide/outlines.md +22 -0
  231. package/assets/docs/guide/overview.md +22 -0
  232. package/assets/docs/guide/performance.md +217 -0
  233. package/assets/docs/guide/plugins/asset-sources.md +553 -0
  234. package/assets/docs/guide/plugins/print-ready-pdf.md +549 -0
  235. package/assets/docs/guide/plugins.md +36 -0
  236. package/assets/docs/guide/rules/asset-handling.md +180 -0
  237. package/assets/docs/guide/rules/common-pitfalls.md +272 -0
  238. package/assets/docs/guide/rules/content-fill-mode.md +29 -0
  239. package/assets/docs/guide/rules/enforce-brand-guidelines.md +672 -0
  240. package/assets/docs/guide/rules/lock-content.md +478 -0
  241. package/assets/docs/guide/rules/moderate-content.md +761 -0
  242. package/assets/docs/guide/rules/overview.md +514 -0
  243. package/assets/docs/guide/rules/silent-init-errors.md +137 -0
  244. package/assets/docs/guide/rules/verify-properties-before-use.md +78 -0
  245. package/assets/docs/guide/rules.md +23 -0
  246. package/assets/docs/guide/security.md +199 -0
  247. package/assets/docs/guide/serve-assets.md +332 -0
  248. package/assets/docs/guide/settings.md +199 -0
  249. package/assets/docs/guide/shapes.md +23 -0
  250. package/assets/docs/guide/starterkits/3d-mockup-editor.md +748 -0
  251. package/assets/docs/guide/starterkits/advanced-editor.md +698 -0
  252. package/assets/docs/guide/starterkits/advanced-video-editor.md +696 -0
  253. package/assets/docs/guide/starterkits/ai-editor.md +749 -0
  254. package/assets/docs/guide/starterkits/airtable-image-editor.md +672 -0
  255. package/assets/docs/guide/starterkits/apparel-ui.md +188 -0
  256. package/assets/docs/guide/starterkits/assets.md +27 -0
  257. package/assets/docs/guide/starterkits/auto-resize.md +586 -0
  258. package/assets/docs/guide/starterkits/automated-video-generation.md +692 -0
  259. package/assets/docs/guide/starterkits/background-removal-editor.md +480 -0
  260. package/assets/docs/guide/starterkits/content-moderation.md +863 -0
  261. package/assets/docs/guide/starterkits/creative-automation.md +28 -0
  262. package/assets/docs/guide/starterkits/custom-built-uis.md +26 -0
  263. package/assets/docs/guide/starterkits/customization.md +29 -0
  264. package/assets/docs/guide/starterkits/cutout-lines-editor.md +470 -0
  265. package/assets/docs/guide/starterkits/data-merge.md +850 -0
  266. package/assets/docs/guide/starterkits/design-editor.md +698 -0
  267. package/assets/docs/guide/starterkits/design-generation.md +719 -0
  268. package/assets/docs/guide/starterkits/design-validation.md +808 -0
  269. package/assets/docs/guide/starterkits/editor-ui-configurations.md +14 -0
  270. package/assets/docs/guide/starterkits/export-options.md +724 -0
  271. package/assets/docs/guide/starterkits/export-using-renderer.md +708 -0
  272. package/assets/docs/guide/starterkits/extensibility.md +28 -0
  273. package/assets/docs/guide/starterkits/force-crop-editor.md +675 -0
  274. package/assets/docs/guide/starterkits/form-based-template-adoption.md +522 -0
  275. package/assets/docs/guide/starterkits/getty-images-editor.md +700 -0
  276. package/assets/docs/guide/starterkits/html5-ads-exporter.md +719 -0
  277. package/assets/docs/guide/starterkits/indesign-template-import.md +580 -0
  278. package/assets/docs/guide/starterkits/layouts-editor.md +724 -0
  279. package/assets/docs/guide/starterkits/mobile-ui.md +185 -0
  280. package/assets/docs/guide/starterkits/mockup-editor.md +745 -0
  281. package/assets/docs/guide/starterkits/multi-image-generation.md +542 -0
  282. package/assets/docs/guide/starterkits/page-sizes-editor.md +657 -0
  283. package/assets/docs/guide/starterkits/pexels-image-editor.md +665 -0
  284. package/assets/docs/guide/starterkits/photo-editor.md +755 -0
  285. package/assets/docs/guide/starterkits/photo-ui.md +186 -0
  286. package/assets/docs/guide/starterkits/photobook-ui.md +188 -0
  287. package/assets/docs/guide/starterkits/placeholders.md +678 -0
  288. package/assets/docs/guide/starterkits/player.md +405 -0
  289. package/assets/docs/guide/starterkits/plugins.md +25 -0
  290. package/assets/docs/guide/starterkits/postcard-editor.md +202 -0
  291. package/assets/docs/guide/starterkits/pptx-template-import.md +581 -0
  292. package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +746 -0
  293. package/assets/docs/guide/starterkits/product-editor.md +773 -0
  294. package/assets/docs/guide/starterkits/psd-template-import.md +580 -0
  295. package/assets/docs/guide/starterkits/qr-code-editor.md +470 -0
  296. package/assets/docs/guide/starterkits/single-page-editor.md +661 -0
  297. package/assets/docs/guide/starterkits/start-with-image.md +684 -0
  298. package/assets/docs/guide/starterkits/start-with-video.md +651 -0
  299. package/assets/docs/guide/starterkits/t-shirt-designer.md +742 -0
  300. package/assets/docs/guide/starterkits/templating.md +23 -0
  301. package/assets/docs/guide/starterkits/theming.md +662 -0
  302. package/assets/docs/guide/starterkits/translation-internationalization.md +662 -0
  303. package/assets/docs/guide/starterkits/unsplash-editor.md +839 -0
  304. package/assets/docs/guide/starterkits/vectorizer-editor.md +466 -0
  305. package/assets/docs/guide/starterkits/version-history.md +745 -0
  306. package/assets/docs/guide/starterkits/video-animations.md +853 -0
  307. package/assets/docs/guide/starterkits/video-captions.md +884 -0
  308. package/assets/docs/guide/starterkits/video-editing.md +25 -0
  309. package/assets/docs/guide/starterkits/video-editor.md +696 -0
  310. package/assets/docs/guide/starterkits/video-export-options.md +676 -0
  311. package/assets/docs/guide/starterkits/viewer.md +400 -0
  312. package/assets/docs/guide/starterkits.md +41 -0
  313. package/assets/docs/guide/stickers-and-shapes/combine.md +743 -0
  314. package/assets/docs/guide/stickers-and-shapes/create-cutout.md +425 -0
  315. package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +794 -0
  316. package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +290 -0
  317. package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +211 -0
  318. package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +362 -0
  319. package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +208 -0
  320. package/assets/docs/guide/stickers.md +21 -0
  321. package/assets/docs/guide/text/add.md +641 -0
  322. package/assets/docs/guide/text/adjust-spacing.md +288 -0
  323. package/assets/docs/guide/text/auto-size.md +404 -0
  324. package/assets/docs/guide/text/custom-fonts.md +401 -0
  325. package/assets/docs/guide/text/decorations.md +330 -0
  326. package/assets/docs/guide/text/edit.md +458 -0
  327. package/assets/docs/guide/text/effects.md +244 -0
  328. package/assets/docs/guide/text/emojis.md +310 -0
  329. package/assets/docs/guide/text/enumerations.md +258 -0
  330. package/assets/docs/guide/text/language-support.md +604 -0
  331. package/assets/docs/guide/text/overview.md +14 -0
  332. package/assets/docs/guide/text/styling.md +390 -0
  333. package/assets/docs/guide/text/text-designs.md +834 -0
  334. package/assets/docs/guide/text.md +33 -0
  335. package/assets/docs/guide/to-v1-10.md +131 -0
  336. package/assets/docs/guide/to-v1-13.md +165 -0
  337. package/assets/docs/guide/to-v1-19.md +315 -0
  338. package/assets/docs/guide/to-v1-32.md +110 -0
  339. package/assets/docs/guide/to-v1-69.md +468 -0
  340. package/assets/docs/guide/to-v1-72.md +193 -0
  341. package/assets/docs/guide/upgrade.md +25 -0
  342. package/assets/docs/guide/use-templates/apply-template.md +279 -0
  343. package/assets/docs/guide/use-templates/generate.md +405 -0
  344. package/assets/docs/guide/use-templates/library.md +450 -0
  345. package/assets/docs/guide/use-templates/overview.md +20 -0
  346. package/assets/docs/guide/use-templates/programmatic.md +482 -0
  347. package/assets/docs/guide/use-templates/replace-content.md +399 -0
  348. package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +428 -0
  349. package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +337 -0
  350. package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +853 -0
  351. package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +1045 -0
  352. package/assets/docs/guide/user-interface/ai-integration/image-generation.md +641 -0
  353. package/assets/docs/guide/user-interface/ai-integration/integrate.md +966 -0
  354. package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +99 -0
  355. package/assets/docs/guide/user-interface/ai-integration/text-generation.md +498 -0
  356. package/assets/docs/guide/user-interface/ai-integration/video-generation.md +493 -0
  357. package/assets/docs/guide/user-interface/ai-integration.md +30 -0
  358. package/assets/docs/guide/user-interface/appearance/change-ui-font.md +316 -0
  359. package/assets/docs/guide/user-interface/appearance/custom-labels.md +509 -0
  360. package/assets/docs/guide/user-interface/appearance/icons.md +373 -0
  361. package/assets/docs/guide/user-interface/appearance/theming.md +665 -0
  362. package/assets/docs/guide/user-interface/appearance.md +23 -0
  363. package/assets/docs/guide/user-interface/build-your-own-ui.md +620 -0
  364. package/assets/docs/guide/user-interface/customization/canvas-menu.md +412 -0
  365. package/assets/docs/guide/user-interface/customization/canvas.md +281 -0
  366. package/assets/docs/guide/user-interface/customization/color-palette.md +413 -0
  367. package/assets/docs/guide/user-interface/customization/crop-presets.md +384 -0
  368. package/assets/docs/guide/user-interface/customization/disable-or-enable.md +676 -0
  369. package/assets/docs/guide/user-interface/customization/dock.md +399 -0
  370. package/assets/docs/guide/user-interface/customization/force-crop.md +289 -0
  371. package/assets/docs/guide/user-interface/customization/inspector-bar.md +371 -0
  372. package/assets/docs/guide/user-interface/customization/navigation-bar.md +516 -0
  373. package/assets/docs/guide/user-interface/customization/page-format.md +436 -0
  374. package/assets/docs/guide/user-interface/customization/panel.md +605 -0
  375. package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +531 -0
  376. package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +358 -0
  377. package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +374 -0
  378. package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +323 -0
  379. package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +294 -0
  380. package/assets/docs/guide/user-interface/customization/quick-start.md +12 -0
  381. package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +519 -0
  382. package/assets/docs/guide/user-interface/customization/reference/component-reference.md +333 -0
  383. package/assets/docs/guide/user-interface/customization/reference.md +12 -0
  384. package/assets/docs/guide/user-interface/customization.md +39 -0
  385. package/assets/docs/guide/user-interface/localization.md +633 -0
  386. package/assets/docs/guide/user-interface/overview.md +167 -0
  387. package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +411 -0
  388. package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +721 -0
  389. package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +331 -0
  390. package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +553 -0
  391. package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +672 -0
  392. package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +415 -0
  393. package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +521 -0
  394. package/assets/docs/guide/user-interface/ui-extensions.md +26 -0
  395. package/assets/docs/guide/user-interface.md +25 -0
  396. package/assets/docs/guide/what-is-cesdk.md +319 -0
  397. package/assets/docs/handbook/SKILL.md +521 -0
  398. package/assets/prompts/evals-assetGenerate.md +12 -0
  399. package/assets/prompts/evals-brutalistCore.md +34 -0
  400. package/assets/prompts/evals-danskCatalogue.md +31 -0
  401. package/assets/prompts/evals-exportRoundTrip.md +12 -0
  402. package/assets/prompts/evals-inspectPriorCode.md +16 -0
  403. package/assets/prompts/evals-listProjectFiles.md +6 -0
  404. package/assets/prompts/evals-readAndExplainScript.md +6 -0
  405. package/assets/prompts/evals-resumeAcrossRestart.md +15 -0
  406. package/assets/prompts/evals-rewindRecovery.md +10 -0
  407. package/assets/prompts/evals-searchAcrossFiles.md +6 -0
  408. package/assets/prompts/evals-weddingCard.md +20 -0
  409. package/assets/prompts/explain.md +6 -0
  410. package/assets/prompts/review.md +6 -0
  411. package/dist/assets/inline.generated.d.ts +2 -0
  412. package/dist/assets/inline.generated.d.ts.map +1 -0
  413. package/dist/assets/inline.generated.js +413 -0
  414. package/dist/assets/inline.generated.js.map +1 -0
  415. package/dist/assets/load-browser.d.ts +8 -0
  416. package/dist/assets/load-browser.d.ts.map +1 -0
  417. package/dist/assets/load-browser.js +11 -0
  418. package/dist/assets/load-browser.js.map +1 -0
  419. package/dist/assets/load-node.d.ts +8 -0
  420. package/dist/assets/load-node.d.ts.map +1 -0
  421. package/dist/assets/load-node.js +11 -0
  422. package/dist/assets/load-node.js.map +1 -0
  423. package/dist/cli/http.d.ts +2 -0
  424. package/dist/cli/http.d.ts.map +1 -0
  425. package/dist/cli/http.js +231 -0
  426. package/dist/cli/http.js.map +1 -0
  427. package/dist/cli/redirect-console.d.ts +10 -0
  428. package/dist/cli/redirect-console.d.ts.map +1 -0
  429. package/dist/cli/redirect-console.js +18 -0
  430. package/dist/cli/redirect-console.js.map +1 -0
  431. package/dist/cli/resolve-license.d.ts +2 -0
  432. package/dist/cli/resolve-license.d.ts.map +1 -0
  433. package/dist/cli/resolve-license.js +13 -0
  434. package/dist/cli/resolve-license.js.map +1 -0
  435. package/dist/cli/stdio.d.ts +2 -0
  436. package/dist/cli/stdio.d.ts.map +1 -0
  437. package/dist/cli/stdio.js +124 -0
  438. package/dist/cli/stdio.js.map +1 -0
  439. package/dist/cli/trial-license.generated.d.ts +2 -0
  440. package/dist/cli/trial-license.generated.d.ts.map +1 -0
  441. package/dist/cli/trial-license.generated.js +4 -0
  442. package/dist/cli/trial-license.generated.js.map +1 -0
  443. package/dist/cli.d.ts +3 -0
  444. package/dist/cli.d.ts.map +1 -0
  445. package/dist/cli.js +64 -0
  446. package/dist/cli.js.map +1 -0
  447. package/dist/config.d.ts +61 -0
  448. package/dist/config.d.ts.map +1 -0
  449. package/dist/config.js +102 -0
  450. package/dist/config.js.map +1 -0
  451. package/dist/cross-ref.d.ts +2 -0
  452. package/dist/cross-ref.d.ts.map +1 -0
  453. package/dist/cross-ref.js +31 -0
  454. package/dist/cross-ref.js.map +1 -0
  455. package/dist/dashboard/router.d.ts +3 -0
  456. package/dist/dashboard/router.d.ts.map +1 -0
  457. package/dist/dashboard/router.js +19 -0
  458. package/dist/dashboard/router.js.map +1 -0
  459. package/dist/dashboard/spa-assets.generated.d.ts +2 -0
  460. package/dist/dashboard/spa-assets.generated.d.ts.map +1 -0
  461. package/dist/dashboard/spa-assets.generated.js +220 -0
  462. package/dist/dashboard/spa-assets.generated.js.map +1 -0
  463. package/dist/engine/asset-sources.d.ts +17 -0
  464. package/dist/engine/asset-sources.d.ts.map +1 -0
  465. package/dist/engine/asset-sources.js +75 -0
  466. package/dist/engine/asset-sources.js.map +1 -0
  467. package/dist/engine/cesdk-adapter.d.ts +10 -0
  468. package/dist/engine/cesdk-adapter.d.ts.map +1 -0
  469. package/dist/engine/cesdk-adapter.js +19 -0
  470. package/dist/engine/cesdk-adapter.js.map +1 -0
  471. package/dist/engine/index.d.ts +3 -0
  472. package/dist/engine/index.d.ts.map +1 -0
  473. package/dist/engine/index.js +3 -0
  474. package/dist/engine/index.js.map +1 -0
  475. package/dist/engine/mutex.d.ts +5 -0
  476. package/dist/engine/mutex.d.ts.map +1 -0
  477. package/dist/engine/mutex.js +42 -0
  478. package/dist/engine/mutex.js.map +1 -0
  479. package/dist/engine/session.d.ts +50 -0
  480. package/dist/engine/session.d.ts.map +1 -0
  481. package/dist/engine/session.js +95 -0
  482. package/dist/engine/session.js.map +1 -0
  483. package/dist/engine/uri-resolver.d.ts +14 -0
  484. package/dist/engine/uri-resolver.d.ts.map +1 -0
  485. package/dist/engine/uri-resolver.js +12 -0
  486. package/dist/engine/uri-resolver.js.map +1 -0
  487. package/dist/frontmatter.d.ts +15 -0
  488. package/dist/frontmatter.d.ts.map +1 -0
  489. package/dist/frontmatter.js +46 -0
  490. package/dist/frontmatter.js.map +1 -0
  491. package/dist/gateway/hosted-stub.d.ts +6 -0
  492. package/dist/gateway/hosted-stub.d.ts.map +1 -0
  493. package/dist/gateway/hosted-stub.js +11 -0
  494. package/dist/gateway/hosted-stub.js.map +1 -0
  495. package/dist/gateway/index.d.ts +4 -0
  496. package/dist/gateway/index.d.ts.map +1 -0
  497. package/dist/gateway/index.js +4 -0
  498. package/dist/gateway/index.js.map +1 -0
  499. package/dist/gateway/local.d.ts +14 -0
  500. package/dist/gateway/local.d.ts.map +1 -0
  501. package/dist/gateway/local.js +41 -0
  502. package/dist/gateway/local.js.map +1 -0
  503. package/dist/gateway/types.d.ts +24 -0
  504. package/dist/gateway/types.d.ts.map +1 -0
  505. package/dist/gateway/types.js +7 -0
  506. package/dist/gateway/types.js.map +1 -0
  507. package/dist/http/server.d.ts +80 -0
  508. package/dist/http/server.d.ts.map +1 -0
  509. package/dist/http/server.js +183 -0
  510. package/dist/http/server.js.map +1 -0
  511. package/dist/http/session-manager.d.ts +42 -0
  512. package/dist/http/session-manager.d.ts.map +1 -0
  513. package/dist/http/session-manager.js +82 -0
  514. package/dist/http/session-manager.js.map +1 -0
  515. package/dist/http/workspace-auth.d.ts +9 -0
  516. package/dist/http/workspace-auth.d.ts.map +1 -0
  517. package/dist/http/workspace-auth.js +29 -0
  518. package/dist/http/workspace-auth.js.map +1 -0
  519. package/dist/index.d.ts +10 -0
  520. package/dist/index.d.ts.map +1 -0
  521. package/dist/index.js +10 -0
  522. package/dist/index.js.map +1 -0
  523. package/dist/metrics/mount.d.ts +11 -0
  524. package/dist/metrics/mount.d.ts.map +1 -0
  525. package/dist/metrics/mount.js +13 -0
  526. package/dist/metrics/mount.js.map +1 -0
  527. package/dist/metrics/recorder.d.ts +55 -0
  528. package/dist/metrics/recorder.d.ts.map +1 -0
  529. package/dist/metrics/recorder.js +97 -0
  530. package/dist/metrics/recorder.js.map +1 -0
  531. package/dist/revisions/hash.d.ts +7 -0
  532. package/dist/revisions/hash.d.ts.map +1 -0
  533. package/dist/revisions/hash.js +24 -0
  534. package/dist/revisions/hash.js.map +1 -0
  535. package/dist/revisions/index.d.ts +4 -0
  536. package/dist/revisions/index.d.ts.map +1 -0
  537. package/dist/revisions/index.js +4 -0
  538. package/dist/revisions/index.js.map +1 -0
  539. package/dist/revisions/store.d.ts +69 -0
  540. package/dist/revisions/store.d.ts.map +1 -0
  541. package/dist/revisions/store.js +196 -0
  542. package/dist/revisions/store.js.map +1 -0
  543. package/dist/revisions/types.d.ts +39 -0
  544. package/dist/revisions/types.d.ts.map +1 -0
  545. package/dist/revisions/types.js +2 -0
  546. package/dist/revisions/types.js.map +1 -0
  547. package/dist/server.d.ts +51 -0
  548. package/dist/server.d.ts.map +1 -0
  549. package/dist/server.js +175 -0
  550. package/dist/server.js.map +1 -0
  551. package/dist/skill-tools.d.ts +3 -0
  552. package/dist/skill-tools.d.ts.map +1 -0
  553. package/dist/skill-tools.js +105 -0
  554. package/dist/skill-tools.js.map +1 -0
  555. package/dist/test/test/cli/dispatcher.test.d.ts +2 -0
  556. package/dist/test/test/cli/dispatcher.test.d.ts.map +1 -0
  557. package/dist/test/test/cli/dispatcher.test.js +47 -0
  558. package/dist/test/test/cli/dispatcher.test.js.map +1 -0
  559. package/dist/test/test/cross-ref.test.d.ts +2 -0
  560. package/dist/test/test/cross-ref.test.d.ts.map +1 -0
  561. package/dist/test/test/cross-ref.test.js +39 -0
  562. package/dist/test/test/cross-ref.test.js.map +1 -0
  563. package/dist/test/test/engine/session.test.d.ts +2 -0
  564. package/dist/test/test/engine/session.test.d.ts.map +1 -0
  565. package/dist/test/test/engine/session.test.js +144 -0
  566. package/dist/test/test/engine/session.test.js.map +1 -0
  567. package/dist/test/test/engine/uri-resolver.test.d.ts +2 -0
  568. package/dist/test/test/engine/uri-resolver.test.d.ts.map +1 -0
  569. package/dist/test/test/engine/uri-resolver.test.js +38 -0
  570. package/dist/test/test/engine/uri-resolver.test.js.map +1 -0
  571. package/dist/test/test/frontmatter.test.d.ts +2 -0
  572. package/dist/test/test/frontmatter.test.d.ts.map +1 -0
  573. package/dist/test/test/frontmatter.test.js +55 -0
  574. package/dist/test/test/frontmatter.test.js.map +1 -0
  575. package/dist/test/test/gateway/hosted-stub.test.d.ts +2 -0
  576. package/dist/test/test/gateway/hosted-stub.test.d.ts.map +1 -0
  577. package/dist/test/test/gateway/hosted-stub.test.js +11 -0
  578. package/dist/test/test/gateway/hosted-stub.test.js.map +1 -0
  579. package/dist/test/test/gateway/local.test.d.ts +2 -0
  580. package/dist/test/test/gateway/local.test.d.ts.map +1 -0
  581. package/dist/test/test/gateway/local.test.js +29 -0
  582. package/dist/test/test/gateway/local.test.js.map +1 -0
  583. package/dist/test/test/handbook-contract.test.d.ts +2 -0
  584. package/dist/test/test/handbook-contract.test.d.ts.map +1 -0
  585. package/dist/test/test/handbook-contract.test.js +71 -0
  586. package/dist/test/test/handbook-contract.test.js.map +1 -0
  587. package/dist/test/test/http/server.test.d.ts +2 -0
  588. package/dist/test/test/http/server.test.d.ts.map +1 -0
  589. package/dist/test/test/http/server.test.js +245 -0
  590. package/dist/test/test/http/server.test.js.map +1 -0
  591. package/dist/test/test/http/session-manager.test.d.ts +2 -0
  592. package/dist/test/test/http/session-manager.test.d.ts.map +1 -0
  593. package/dist/test/test/http/session-manager.test.js +83 -0
  594. package/dist/test/test/http/session-manager.test.js.map +1 -0
  595. package/dist/test/test/revisions/hash.test.d.ts +2 -0
  596. package/dist/test/test/revisions/hash.test.d.ts.map +1 -0
  597. package/dist/test/test/revisions/hash.test.js +33 -0
  598. package/dist/test/test/revisions/hash.test.js.map +1 -0
  599. package/dist/test/test/revisions/store.test.d.ts +2 -0
  600. package/dist/test/test/revisions/store.test.d.ts.map +1 -0
  601. package/dist/test/test/revisions/store.test.js +245 -0
  602. package/dist/test/test/revisions/store.test.js.map +1 -0
  603. package/dist/test/test/server.test.d.ts +2 -0
  604. package/dist/test/test/server.test.d.ts.map +1 -0
  605. package/dist/test/test/server.test.js +157 -0
  606. package/dist/test/test/server.test.js.map +1 -0
  607. package/dist/test/test/skill-tools.test.d.ts +2 -0
  608. package/dist/test/test/skill-tools.test.d.ts.map +1 -0
  609. package/dist/test/test/skill-tools.test.js +84 -0
  610. package/dist/test/test/skill-tools.test.js.map +1 -0
  611. package/dist/test/test/smoke.test.d.ts +2 -0
  612. package/dist/test/test/smoke.test.d.ts.map +1 -0
  613. package/dist/test/test/smoke.test.js +8 -0
  614. package/dist/test/test/smoke.test.js.map +1 -0
  615. package/dist/test/test/tools/asset-generate.test.d.ts +2 -0
  616. package/dist/test/test/tools/asset-generate.test.d.ts.map +1 -0
  617. package/dist/test/test/tools/asset-generate.test.js +66 -0
  618. package/dist/test/test/tools/asset-generate.test.js.map +1 -0
  619. package/dist/test/test/tools/edit.test.d.ts +2 -0
  620. package/dist/test/test/tools/edit.test.d.ts.map +1 -0
  621. package/dist/test/test/tools/edit.test.js +205 -0
  622. package/dist/test/test/tools/edit.test.js.map +1 -0
  623. package/dist/test/test/tools/export.test.d.ts +2 -0
  624. package/dist/test/test/tools/export.test.d.ts.map +1 -0
  625. package/dist/test/test/tools/export.test.js +144 -0
  626. package/dist/test/test/tools/export.test.js.map +1 -0
  627. package/dist/test/test/tools/history.test.d.ts +2 -0
  628. package/dist/test/test/tools/history.test.d.ts.map +1 -0
  629. package/dist/test/test/tools/history.test.js +29 -0
  630. package/dist/test/test/tools/history.test.js.map +1 -0
  631. package/dist/test/test/tools/inspect.test.d.ts +2 -0
  632. package/dist/test/test/tools/inspect.test.d.ts.map +1 -0
  633. package/dist/test/test/tools/inspect.test.js +62 -0
  634. package/dist/test/test/tools/inspect.test.js.map +1 -0
  635. package/dist/test/test/tools/list.test.d.ts +2 -0
  636. package/dist/test/test/tools/list.test.d.ts.map +1 -0
  637. package/dist/test/test/tools/list.test.js +23 -0
  638. package/dist/test/test/tools/list.test.js.map +1 -0
  639. package/dist/test/test/tools/open-editor.test.d.ts +2 -0
  640. package/dist/test/test/tools/open-editor.test.d.ts.map +1 -0
  641. package/dist/test/test/tools/open-editor.test.js +53 -0
  642. package/dist/test/test/tools/open-editor.test.js.map +1 -0
  643. package/dist/test/test/tools/preview.test.d.ts +2 -0
  644. package/dist/test/test/tools/preview.test.d.ts.map +1 -0
  645. package/dist/test/test/tools/preview.test.js +73 -0
  646. package/dist/test/test/tools/preview.test.js.map +1 -0
  647. package/dist/test/test/tools/rename.test.d.ts +2 -0
  648. package/dist/test/test/tools/rename.test.d.ts.map +1 -0
  649. package/dist/test/test/tools/rename.test.js +17 -0
  650. package/dist/test/test/tools/rename.test.js.map +1 -0
  651. package/dist/test/test/viewer/broadcaster.test.d.ts +2 -0
  652. package/dist/test/test/viewer/broadcaster.test.d.ts.map +1 -0
  653. package/dist/test/test/viewer/broadcaster.test.js +53 -0
  654. package/dist/test/test/viewer/broadcaster.test.js.map +1 -0
  655. package/dist/test/test/viewer/resource-route.test.d.ts +2 -0
  656. package/dist/test/test/viewer/resource-route.test.d.ts.map +1 -0
  657. package/dist/test/test/viewer/resource-route.test.js +70 -0
  658. package/dist/test/test/viewer/resource-route.test.js.map +1 -0
  659. package/dist/test/test/viewer/router.test.d.ts +2 -0
  660. package/dist/test/test/viewer/router.test.d.ts.map +1 -0
  661. package/dist/test/test/viewer/router.test.js +171 -0
  662. package/dist/test/test/viewer/router.test.js.map +1 -0
  663. package/dist/test/test/viewer/url-builder.test.d.ts +2 -0
  664. package/dist/test/test/viewer/url-builder.test.d.ts.map +1 -0
  665. package/dist/test/test/viewer/url-builder.test.js +31 -0
  666. package/dist/test/test/viewer/url-builder.test.js.map +1 -0
  667. package/dist/test/test/workspace/hosted-stub.test.d.ts +2 -0
  668. package/dist/test/test/workspace/hosted-stub.test.d.ts.map +1 -0
  669. package/dist/test/test/workspace/hosted-stub.test.js +30 -0
  670. package/dist/test/test/workspace/hosted-stub.test.js.map +1 -0
  671. package/dist/test/test/workspace/in-memory.test.d.ts +2 -0
  672. package/dist/test/test/workspace/in-memory.test.d.ts.map +1 -0
  673. package/dist/test/test/workspace/in-memory.test.js +4 -0
  674. package/dist/test/test/workspace/in-memory.test.js.map +1 -0
  675. package/dist/test/test/workspace/node-fs.test.d.ts +2 -0
  676. package/dist/test/test/workspace/node-fs.test.d.ts.map +1 -0
  677. package/dist/test/test/workspace/node-fs.test.js +20 -0
  678. package/dist/test/test/workspace/node-fs.test.js.map +1 -0
  679. package/dist/test/test/workspace/shared-contract.d.ts +3 -0
  680. package/dist/test/test/workspace/shared-contract.d.ts.map +1 -0
  681. package/dist/test/test/workspace/shared-contract.js +92 -0
  682. package/dist/test/test/workspace/shared-contract.js.map +1 -0
  683. package/dist/test/tsconfig.test.tsbuildinfo +1 -0
  684. package/dist/test/vitest.config.d.ts +3 -0
  685. package/dist/test/vitest.config.d.ts.map +1 -0
  686. package/dist/test/vitest.config.js +8 -0
  687. package/dist/test/vitest.config.js.map +1 -0
  688. package/dist/tools/asset-generate.d.ts +12 -0
  689. package/dist/tools/asset-generate.d.ts.map +1 -0
  690. package/dist/tools/asset-generate.js +112 -0
  691. package/dist/tools/asset-generate.js.map +1 -0
  692. package/dist/tools/asset-search.d.ts +10 -0
  693. package/dist/tools/asset-search.d.ts.map +1 -0
  694. package/dist/tools/asset-search.js +120 -0
  695. package/dist/tools/asset-search.js.map +1 -0
  696. package/dist/tools/content-types.d.ts +11 -0
  697. package/dist/tools/content-types.d.ts.map +1 -0
  698. package/dist/tools/content-types.js +2 -0
  699. package/dist/tools/content-types.js.map +1 -0
  700. package/dist/tools/edit.d.ts +29 -0
  701. package/dist/tools/edit.d.ts.map +1 -0
  702. package/dist/tools/edit.js +165 -0
  703. package/dist/tools/edit.js.map +1 -0
  704. package/dist/tools/engine.d.ts +31 -0
  705. package/dist/tools/engine.d.ts.map +1 -0
  706. package/dist/tools/engine.js +59 -0
  707. package/dist/tools/engine.js.map +1 -0
  708. package/dist/tools/export.d.ts +19 -0
  709. package/dist/tools/export.d.ts.map +1 -0
  710. package/dist/tools/export.js +179 -0
  711. package/dist/tools/export.js.map +1 -0
  712. package/dist/tools/history.d.ts +7 -0
  713. package/dist/tools/history.d.ts.map +1 -0
  714. package/dist/tools/history.js +54 -0
  715. package/dist/tools/history.js.map +1 -0
  716. package/dist/tools/index.d.ts +35 -0
  717. package/dist/tools/index.d.ts.map +1 -0
  718. package/dist/tools/index.js +72 -0
  719. package/dist/tools/index.js.map +1 -0
  720. package/dist/tools/inspect.d.ts +7 -0
  721. package/dist/tools/inspect.d.ts.map +1 -0
  722. package/dist/tools/inspect.js +80 -0
  723. package/dist/tools/inspect.js.map +1 -0
  724. package/dist/tools/list.d.ts +7 -0
  725. package/dist/tools/list.d.ts.map +1 -0
  726. package/dist/tools/list.js +18 -0
  727. package/dist/tools/list.js.map +1 -0
  728. package/dist/tools/metrics.d.ts +11 -0
  729. package/dist/tools/metrics.d.ts.map +1 -0
  730. package/dist/tools/metrics.js +28 -0
  731. package/dist/tools/metrics.js.map +1 -0
  732. package/dist/tools/open-editor.d.ts +10 -0
  733. package/dist/tools/open-editor.d.ts.map +1 -0
  734. package/dist/tools/open-editor.js +62 -0
  735. package/dist/tools/open-editor.js.map +1 -0
  736. package/dist/tools/preview.d.ts +12 -0
  737. package/dist/tools/preview.d.ts.map +1 -0
  738. package/dist/tools/preview.js +104 -0
  739. package/dist/tools/preview.js.map +1 -0
  740. package/dist/tools/rename.d.ts +7 -0
  741. package/dist/tools/rename.d.ts.map +1 -0
  742. package/dist/tools/rename.js +39 -0
  743. package/dist/tools/rename.js.map +1 -0
  744. package/dist/tools/result.d.ts +12 -0
  745. package/dist/tools/result.d.ts.map +1 -0
  746. package/dist/tools/result.js +55 -0
  747. package/dist/tools/result.js.map +1 -0
  748. package/dist/tools/save.d.ts +19 -0
  749. package/dist/tools/save.d.ts.map +1 -0
  750. package/dist/tools/save.js +117 -0
  751. package/dist/tools/save.js.map +1 -0
  752. package/dist/viewer/broadcaster.d.ts +13 -0
  753. package/dist/viewer/broadcaster.d.ts.map +1 -0
  754. package/dist/viewer/broadcaster.js +44 -0
  755. package/dist/viewer/broadcaster.js.map +1 -0
  756. package/dist/viewer/index.d.ts +7 -0
  757. package/dist/viewer/index.d.ts.map +1 -0
  758. package/dist/viewer/index.js +7 -0
  759. package/dist/viewer/index.js.map +1 -0
  760. package/dist/viewer/listener.d.ts +16 -0
  761. package/dist/viewer/listener.d.ts.map +1 -0
  762. package/dist/viewer/listener.js +30 -0
  763. package/dist/viewer/listener.js.map +1 -0
  764. package/dist/viewer/presigned-r2-url-builder.d.ts +30 -0
  765. package/dist/viewer/presigned-r2-url-builder.d.ts.map +1 -0
  766. package/dist/viewer/presigned-r2-url-builder.js +40 -0
  767. package/dist/viewer/presigned-r2-url-builder.js.map +1 -0
  768. package/dist/viewer/resource-route.d.ts +9 -0
  769. package/dist/viewer/resource-route.d.ts.map +1 -0
  770. package/dist/viewer/resource-route.js +59 -0
  771. package/dist/viewer/resource-route.js.map +1 -0
  772. package/dist/viewer/router.d.ts +20 -0
  773. package/dist/viewer/router.d.ts.map +1 -0
  774. package/dist/viewer/router.js +142 -0
  775. package/dist/viewer/router.js.map +1 -0
  776. package/dist/viewer/session-mount.d.ts +10 -0
  777. package/dist/viewer/session-mount.d.ts.map +1 -0
  778. package/dist/viewer/session-mount.js +24 -0
  779. package/dist/viewer/session-mount.js.map +1 -0
  780. package/dist/viewer/spa-assets.generated.d.ts +2 -0
  781. package/dist/viewer/spa-assets.generated.d.ts.map +1 -0
  782. package/dist/viewer/spa-assets.generated.js +989 -0
  783. package/dist/viewer/spa-assets.generated.js.map +1 -0
  784. package/dist/viewer/url-builder.d.ts +48 -0
  785. package/dist/viewer/url-builder.d.ts.map +1 -0
  786. package/dist/viewer/url-builder.js +38 -0
  787. package/dist/viewer/url-builder.js.map +1 -0
  788. package/dist/workspace/hosted-stub.d.ts +28 -0
  789. package/dist/workspace/hosted-stub.d.ts.map +1 -0
  790. package/dist/workspace/hosted-stub.js +44 -0
  791. package/dist/workspace/hosted-stub.js.map +1 -0
  792. package/dist/workspace/in-memory.d.ts +23 -0
  793. package/dist/workspace/in-memory.d.ts.map +1 -0
  794. package/dist/workspace/in-memory.js +161 -0
  795. package/dist/workspace/in-memory.js.map +1 -0
  796. package/dist/workspace/index.d.ts +6 -0
  797. package/dist/workspace/index.d.ts.map +1 -0
  798. package/dist/workspace/index.js +6 -0
  799. package/dist/workspace/index.js.map +1 -0
  800. package/dist/workspace/node-fs.d.ts +23 -0
  801. package/dist/workspace/node-fs.d.ts.map +1 -0
  802. package/dist/workspace/node-fs.js +90 -0
  803. package/dist/workspace/node-fs.js.map +1 -0
  804. package/dist/workspace/s3.d.ts +32 -0
  805. package/dist/workspace/s3.d.ts.map +1 -0
  806. package/dist/workspace/s3.js +191 -0
  807. package/dist/workspace/s3.js.map +1 -0
  808. package/dist/workspace/scoped.d.ts +32 -0
  809. package/dist/workspace/scoped.d.ts.map +1 -0
  810. package/dist/workspace/scoped.js +76 -0
  811. package/dist/workspace/scoped.js.map +1 -0
  812. package/dist/workspace/types.d.ts +75 -0
  813. package/dist/workspace/types.d.ts.map +1 -0
  814. package/dist/workspace/types.js +18 -0
  815. package/dist/workspace/types.js.map +1 -0
  816. package/package.json +80 -0
@@ -0,0 +1,1038 @@
1
+ > This is one page of the CE.SDK Vanilla JS/TS documentation. For a complete overview, see the [Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
2
+
3
+ **Navigation:** [Guides](./guides.md) > [Actions](./actions.md)
4
+
5
+ ---
6
+
7
+ The Actions API provides a centralized way to manage and customize actions for various user interactions in CE.SDK.
8
+
9
+ > **Note:** The Actions API is available after CE.SDK initialization through
10
+ > `cesdk.actions`.
11
+
12
+ > **Tip:** CE.SDK also provides a Utils API (`cesdk.utils`) with utility functions for
13
+ > common operations like exporting, file handling, and UI dialogs. These
14
+ > utilities can be used directly or within your custom actions.
15
+
16
+ ## API Methods
17
+
18
+ The Actions API provides four methods:
19
+
20
+ - `register(actionId, handler)` - Register an action function for a specific event
21
+ - `get(actionId)` - Retrieve a registered action function
22
+ - `run(actionId, ...args)` - Execute a registered action with the provided arguments (throws if not registered)
23
+ - `list(matcher)` - Lists registered action IDs, optionally filtered by wildcard pattern
24
+
25
+ ## Getting Started
26
+
27
+ Register actions after initializing CE.SDK:
28
+
29
+ ```javascript
30
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
31
+
32
+ const cesdk = await CreativeEditorSDK.create(container, {
33
+ // license: 'YOUR_CESDK_LICENSE_KEY',
34
+ });
35
+
36
+ // Register an action
37
+ cesdk.actions.register('actionType', async (...args) => {
38
+ // Your custom implementation
39
+ return result;
40
+ });
41
+
42
+ // Execute a registered action
43
+ await cesdk.actions.run('actionType', arg1, arg2);
44
+
45
+ // Or retrieve an action to call it later
46
+ const action = cesdk.actions.get('actionType');
47
+
48
+ // List all registered actions
49
+ const allActions = cesdk.actions.list();
50
+
51
+ // List actions matching a pattern
52
+ const exportActions = cesdk.actions.list({ matcher: 'export*' });
53
+ ```
54
+
55
+ ## Default Actions
56
+
57
+ CE.SDK automatically registers the following default actions:
58
+
59
+ ### Scene Creation
60
+
61
+ - `scene.create` - Creates a new scene with configurable layout and page sizes
62
+
63
+ ### Action Handlers
64
+
65
+ - `saveScene` - Saves the current scene (default: downloads scene file)
66
+ - `shareScene` - Shares the current scene (no default implementation)
67
+ - `exportDesign` - Exports design in various formats (default: downloads the exported file)
68
+ - `importScene` - Imports scene or archive files (default: opens file picker)
69
+ - `exportScene` - Exports scene or archive (default: downloads the file)
70
+ - `uploadFile` - Uploads files to asset sources (default: local upload for development)
71
+ - `onUnsupportedBrowser` - Handles unsupported browsers (no default implementation)
72
+ - `video.decode.checkSupport` - Checks video decoding/playback support (shows blocking dialog if unsupported)
73
+ - `video.encode.checkSupport` - Checks video encoding/export support (shows warning dialog if unsupported)
74
+
75
+ ### Zoom Actions
76
+
77
+ - `zoom.toBlock` - Zoom to a specific block with configurable padding
78
+ - `zoom.toPage` - Zoom to the current page with auto-fit support
79
+ - `zoom.toSelection` - Zoom to currently selected blocks
80
+ - `zoom.in` - Zoom in by one step with configurable maximum
81
+ - `zoom.out` - Zoom out by one step with configurable minimum
82
+ - `zoom.toLevel` - Set zoom to a specific level
83
+
84
+ ### Scroll Actions
85
+
86
+ - `scroll.toPage` - Scroll the viewport to center on a specific page with optional animation
87
+
88
+ ### Video Timeline Zoom Actions
89
+
90
+ - `timeline.zoom.in` - Zoom in the video timeline by one step
91
+ - `timeline.zoom.out` - Zoom out the video timeline by one step
92
+ - `timeline.zoom.fit` - Fit the video timeline to show all content
93
+ - `timeline.zoom.toLevel` - Set the video timeline zoom to a specific level
94
+ - `timeline.zoom.reset` - Reset the video timeline zoom to default (1.0)
95
+
96
+ > **Note:** The `shareScene` and `onUnsupportedBrowser` actions do not have default
97
+ > implementations and must be registered manually.
98
+
99
+ > **Tip:** CE.SDK provides both an Actions API for handling user actions and a Utils API
100
+ > for utility functions. See the Utils API section below for details on
101
+ > available utilities.
102
+
103
+ ### Scene Creation
104
+
105
+ #### `scene.create`
106
+
107
+ Creates a new scene with configurable mode, layout and page sizes. Returns the scene block ID.
108
+
109
+ ```javascript
110
+ // Create a scene
111
+ await cesdk.actions.run('scene.create');
112
+ ```
113
+
114
+ **Options:**
115
+
116
+ | Option | Type | Default | Description |
117
+ | ----------- | ------------- | ----------------- | ----------------------------------------------------------------------------------------- |
118
+ | `layout` | `SceneLayout` | `'VerticalStack'` | The scene layout. |
119
+ | `page` | `PageSpec` | — | A single page specification. Cannot be used together with `pages`. |
120
+ | `pageCount` | `number` | `1` | Number of pages to create from the single `page` spec. Ignored when `pages` is used. |
121
+ | `pages` | `PageSpec[]` | — | An array of page specifications, one page per entry. Cannot be used together with `page`. |
122
+
123
+ #### Page Specification
124
+
125
+ Pages can be specified in three ways:
126
+
127
+ **1. Direct dimensions**
128
+
129
+ Specify width, height, and unit directly:
130
+
131
+ ```javascript
132
+ await cesdk.actions.run('scene.create', {
133
+ page: { width: 1080, height: 1920, unit: 'Pixel' }
134
+ });
135
+
136
+ // With fixed orientation (prevents rotation from swapping dimensions)
137
+ await cesdk.actions.run('scene.create', {
138
+ page: { width: 1080, height: 1920, unit: 'Pixel', fixedOrientation: true }
139
+ });
140
+ ```
141
+
142
+ **2. Asset source reference**
143
+
144
+ Reference a page preset from an asset source by its source and asset IDs:
145
+
146
+ ```javascript
147
+ // Use an Instagram Story preset
148
+ await cesdk.actions.run('scene.create', {
149
+ page: {
150
+ sourceId: 'ly.img.page.presets',
151
+ assetId: 'ly.img.page.presets.instagram.story'
152
+ }
153
+ });
154
+ ```
155
+
156
+ **3. Asset object**
157
+
158
+ Pass an asset object directly, for example one returned by `engine.asset.findAssets()`:
159
+
160
+ ```javascript
161
+ const result = await cesdk.engine.asset.findAssets('ly.img.page.presets', {
162
+ query: ''
163
+ });
164
+ await cesdk.actions.run('scene.create', {
165
+ page: result.assets[0]
166
+ });
167
+ ```
168
+
169
+ #### Multiple Pages
170
+
171
+ Create scenes with multiple pages:
172
+
173
+ ```javascript
174
+ // Multiple pages with different sizes
175
+ await cesdk.actions.run('scene.create', {
176
+ pages: [
177
+ { width: 1080, height: 1920, unit: 'Pixel' },
178
+ { width: 1920, height: 1080, unit: 'Pixel' }
179
+ ]
180
+ });
181
+
182
+ // Multiple identical pages using pageCount
183
+ await cesdk.actions.run('scene.create', {
184
+ page: { width: 1080, height: 1080, unit: 'Pixel' },
185
+ pageCount: 3
186
+ });
187
+ ```
188
+
189
+ > **Tip:** When no `page` or `pages` option is provided, `scene.create` creates a single
190
+ > page with the default format from the configured page preset asset sources.
191
+
192
+ ### Scene Management Actions
193
+
194
+ #### `saveScene`
195
+
196
+ Handles saving the current scene. Default implementation downloads the scene file.
197
+
198
+ ```javascript
199
+ // Basic implementation
200
+ cesdk.actions.register('saveScene', async () => {
201
+ const scene = await cesdk.engine.scene.saveToString();
202
+ console.log('Scene saved:', scene.length, 'characters');
203
+
204
+ // Production:
205
+ // await yourAPI.saveScene(scene);
206
+
207
+ cesdk.ui.showNotification('Scene saved successfully');
208
+ });
209
+
210
+ // With loading dialog
211
+ cesdk.actions.register('saveScene', async () => {
212
+ const dialogController = cesdk.utils.showLoadingDialog({
213
+ title: 'Saving Scene',
214
+ message: 'Please wait...',
215
+ progress: 'indeterminate'
216
+ });
217
+
218
+ try {
219
+ const scene = await cesdk.engine.scene.saveToString();
220
+ console.log('Scene saved:', scene.length, 'characters');
221
+
222
+ // Production:
223
+ // await yourAPI.saveScene(scene);
224
+
225
+ dialogController.showSuccess({
226
+ title: 'Saved',
227
+ message: 'Scene saved successfully'
228
+ });
229
+ } catch (error) {
230
+ dialogController.showError({
231
+ title: 'Save Failed',
232
+ message: 'Could not save the scene'
233
+ });
234
+ throw error;
235
+ }
236
+ });
237
+ ```
238
+
239
+ #### `shareScene`
240
+
241
+ Handles scene sharing. No default implementation.
242
+
243
+ ```javascript
244
+ // Register share functionality
245
+ cesdk.actions.register('shareScene', async () => {
246
+ const scene = await cesdk.engine.scene.saveToString();
247
+ const shareUrl = 'https://example.com/shared-scene-placeholder';
248
+ console.log('Scene ready to share:', scene.length, 'characters');
249
+
250
+ // Production:
251
+ // const shareUrl = await yourAPI.createShareableLink(scene);
252
+
253
+ await navigator.share({ url: shareUrl });
254
+ });
255
+ ```
256
+
257
+ #### `importScene` and `exportScene`
258
+
259
+ Handle scene import/export operations with support for both scene files and archives.
260
+
261
+ ```javascript
262
+ // Import scene or archive
263
+ cesdk.actions.register('importScene', async ({ format }) => {
264
+ if (format === 'archive') {
265
+ console.log('Archive import requested');
266
+
267
+ // Production:
268
+ // const archive = await yourAPI.loadArchive();
269
+ // await cesdk.engine.scene.loadFromArchiveURL(archive);
270
+ } else {
271
+ console.log('Scene import requested');
272
+
273
+ // Production:
274
+ // const scene = await yourAPI.loadScene();
275
+ // await cesdk.engine.scene.loadFromString(scene);
276
+ }
277
+ });
278
+
279
+ // Export scene or archive
280
+ cesdk.actions.register('exportScene', async ({ format }) => {
281
+ if (format === 'archive') {
282
+ const archive = await cesdk.engine.scene.saveToArchive();
283
+ console.log('Archive ready for export:', archive.length, 'bytes');
284
+
285
+ // Production:
286
+ // await yourAPI.uploadArchive(archive);
287
+ } else {
288
+ const scene = await cesdk.engine.scene.saveToString();
289
+ console.log('Scene ready for export:', scene.length, 'characters');
290
+
291
+ // Production:
292
+ // await yourAPI.uploadScene(scene);
293
+ }
294
+ });
295
+ ```
296
+
297
+ ### Export Operations
298
+
299
+ #### `exportDesign`
300
+
301
+ Handles all export operations (images, PDFs, videos). Default implementation downloads the exported file.
302
+
303
+ ```javascript
304
+ // Basic implementation
305
+ cesdk.actions.register('exportDesign', async (options) => {
306
+ // Use the utils API to perform the export with loading dialog
307
+ const { blobs, options: exportOptions } = await cesdk.utils.export(options);
308
+ console.log('Exported', blobs.length, 'files');
309
+ blobs.forEach((blob, i) => console.log(`File ${i + 1}:`, blob.size, 'bytes'));
310
+
311
+ // Production:
312
+ // await Promise.all(blobs.map(blob => yourCDN.upload(blob)));
313
+
314
+ cesdk.ui.showNotification('Export completed successfully');
315
+ });
316
+
317
+ // Direct engine export with custom loading dialog (bypassing utils)
318
+ cesdk.actions.register('exportDesign', async (options) => {
319
+ const dialogController = cesdk.utils.showLoadingDialog({
320
+ title: 'Exporting',
321
+ message: 'Processing your export...'
322
+ });
323
+
324
+ try {
325
+ const page = cesdk.engine.scene.getCurrentPage();
326
+ if (page === null) {
327
+ throw new Error('No page selected for export');
328
+ }
329
+ let result;
330
+
331
+ if (options?.mimeType?.startsWith('video/')) {
332
+ // Video export with progress
333
+ result = await cesdk.engine.block.exportVideo(page, {
334
+ ...options,
335
+ onProgress: (rendered, encoded, total) => {
336
+ dialogController.updateProgress({
337
+ value: rendered,
338
+ max: total
339
+ });
340
+ }
341
+ });
342
+ } else {
343
+ // Static export (image/PDF)
344
+ result = await cesdk.engine.block.export(page, options);
345
+ }
346
+
347
+ console.log('File ready for export:', result.size, 'bytes');
348
+
349
+ // Production:
350
+ // await yourCDN.upload(result);
351
+
352
+ dialogController.showSuccess({
353
+ title: 'Export Complete',
354
+ message: 'Files uploaded successfully'
355
+ });
356
+ } catch (error) {
357
+ dialogController.showError({
358
+ title: 'Export Failed',
359
+ message: 'Could not complete the export'
360
+ });
361
+ throw error;
362
+ }
363
+ });
364
+ ```
365
+
366
+ ### File Upload Action
367
+
368
+ #### `uploadFile`
369
+
370
+ Handles file uploads to asset sources. Default implementation uses local upload for development.
371
+
372
+ ```javascript
373
+ // Register production upload handler
374
+ cesdk.actions.register('uploadFile', async (file, onProgress, context) => {
375
+ console.log('Uploading file:', file.name, file.size, 'bytes');
376
+ onProgress(50); // Simulate progress
377
+ await new Promise((resolve) => setTimeout(resolve, 500));
378
+ onProgress(100);
379
+
380
+ // Production:
381
+ // const asset = await yourStorageService.upload(file, {
382
+ // onProgress: (percent) => onProgress(percent),
383
+ // context
384
+ // });
385
+
386
+ // Return AssetDefinition
387
+ return {
388
+ id: 'local-' + Date.now(),
389
+ label: { en: file.name },
390
+ meta: {
391
+ uri: URL.createObjectURL(file),
392
+ thumbUri: URL.createObjectURL(file),
393
+ kind: 'image',
394
+ width: 1920,
395
+ height: 1080
396
+ // Production:
397
+ // uri: asset.url,
398
+ // thumbUri: asset.thumbnailUrl,
399
+ // width: asset.width,
400
+ // height: asset.height
401
+ }
402
+ };
403
+ });
404
+ ```
405
+
406
+ You can control which file types users can upload by setting the `upload/supportedMimeTypes` setting:
407
+
408
+ ```javascript
409
+ // Example 1: Only allow images
410
+ cesdk.engine.editor.setSettingString(
411
+ 'upload/supportedMimeTypes',
412
+ 'image/png,image/jpeg,image/gif,image/svg+xml'
413
+ );
414
+
415
+ // Example 2: Allow images and videos
416
+ cesdk.engine.editor.setSettingString(
417
+ 'upload/supportedMimeTypes',
418
+ 'image/png,image/jpeg,image/gif,video/mp4,video/quicktime'
419
+ );
420
+
421
+ // Example 3: Allow specific document types
422
+ cesdk.engine.editor.setSettingString(
423
+ 'upload/supportedMimeTypes',
424
+ 'application/pdf,image/png,image/jpeg'
425
+ );
426
+ ```
427
+
428
+ > **Caution:** The default `uploadFile` implementation uses local upload for development
429
+ > only. Always register a proper upload handler for production.
430
+
431
+ ### Unsupported Browser Action
432
+
433
+ #### `onUnsupportedBrowser`
434
+
435
+ Handles unsupported browser detection. No default implementation is provided.
436
+
437
+ ```javascript
438
+ // Register handler for unsupported browsers
439
+ cesdk.actions.register('onUnsupportedBrowser', () => {
440
+ // Redirect to a custom compatibility page
441
+ window.location.href = '/browser-not-supported';
442
+ });
443
+ ```
444
+
445
+ ### Video Support Actions
446
+
447
+ CE.SDK provides actions to detect video capabilities at runtime. These actions help you handle browsers and platforms that lack required video codecs, particularly Linux browsers and Firefox.
448
+
449
+ #### `video.decode.checkSupport`
450
+
451
+ Checks if the browser supports video decoding and playback via the WebCodecs API. If unsupported, displays a blocking error dialog that users cannot dismiss.
452
+
453
+ Returns `true` if video decoding is supported, `false` otherwise.
454
+
455
+ ```javascript
456
+ // Check video decode support before loading video content
457
+ const isSupported = cesdk.actions.run('video.decode.checkSupport');
458
+
459
+ if (!isSupported) {
460
+ // A blocking error dialog is shown automatically
461
+ // The user cannot proceed with video editing
462
+ return;
463
+ }
464
+
465
+ // Safe to proceed with video content
466
+ await cesdk.engine.scene.loadFromURL(videoSceneUrl);
467
+
468
+ // You can also disable the dialog and handle feedback yourself:
469
+ const supportedSilently = cesdk.actions.run('video.decode.checkSupport', {
470
+ dialog: false
471
+ });
472
+ ```
473
+
474
+ **Options:**
475
+
476
+ | Option | Type | Default | Description |
477
+ | -------- | -------------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------------------- |
478
+ | `dialog` | `boolean \| { show: boolean; backdrop?: 'transparent' \| 'opaque' }` | `true` (backdrop: `'opaque'`) | Controls dialog display. Use `false` to disable, or an object for fine-grained control. |
479
+
480
+ > **Caution:** The `video.decode.checkSupport` action shows a blocking dialog with no dismiss option
481
+ > when video is not supported. Only call this action when you intend to work
482
+ > with video content.
483
+
484
+ #### `video.encode.checkSupport`
485
+
486
+ Checks if the browser supports video encoding/export (H.264 video and AAC audio encoding). If unsupported, displays a warning dialog that users can dismiss to continue editing.
487
+
488
+ Returns a `Promise<boolean>` - `true` if video encoding is supported, `false` otherwise.
489
+
490
+ ```javascript
491
+ // Check video encode support before attempting export
492
+ const canExport = await cesdk.actions.run('video.encode.checkSupport');
493
+
494
+ if (!canExport) {
495
+ // A warning dialog is shown automatically
496
+ // User can dismiss and continue editing
497
+ // Consider offering server-side export as alternative
498
+ console.log('Video export unavailable - consider server-side rendering');
499
+ }
500
+
501
+ // You can also disable the dialog and handle feedback yourself:
502
+ const canExportSilently = await cesdk.actions.run('video.encode.checkSupport', {
503
+ dialog: false
504
+ });
505
+ ```
506
+
507
+ **Options:**
508
+
509
+ | Option | Type | Default | Description |
510
+ | -------- | -------------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------- |
511
+ | `dialog` | `boolean \| { show: boolean; backdrop?: 'transparent' \| 'opaque' }` | `true` (backdrop: `'transparent'`) | Controls dialog display. Use `false` to disable, or an object for fine-grained control. |
512
+
513
+ > **Tip:** For platforms that don't support client-side video export (Linux, Firefox),
514
+ > consider using [CE.SDK Renderer](#broken-link-7f3e9a)
515
+ > for server-side video rendering.
516
+
517
+ #### Platform Support
518
+
519
+ | Platform | Video Import | Video Export |
520
+ | ---------------------------- | ------------ | ------------ |
521
+ | Chrome/Edge (Windows, macOS) | ✅ | ✅ |
522
+ | Safari (macOS) | ✅ | ✅ |
523
+ | Chrome (Linux) | ❌ | ❌ |
524
+ | Firefox (all platforms) | ❌ | ❌ |
525
+
526
+ ### Zoom Actions
527
+
528
+ CE.SDK provides built-in zoom actions for controlling the viewport zoom level and focus. These actions are automatically registered and can be customized or called programmatically.
529
+
530
+ #### Available Zoom Actions
531
+
532
+ - `zoom.toBlock` - Zoom to a specific block with configurable padding
533
+ - `zoom.toPage` - Zoom to the current page (or a specified page)
534
+ - `zoom.toSelection` - Zoom to the currently selected blocks
535
+ - `zoom.in` - Zoom in by one step
536
+ - `zoom.out` - Zoom out by one step
537
+ - `zoom.toLevel` - Set zoom to a specific level
538
+
539
+ #### `zoom.toBlock`
540
+
541
+ Zooms the viewport to fit a specific block.
542
+
543
+ ```javascript
544
+ // Zoom to a block with default settings
545
+ await cesdk.actions.run('zoom.toBlock', blockId);
546
+
547
+ // Zoom with custom padding and animation
548
+ await cesdk.actions.run('zoom.toBlock', blockId, {
549
+ padding: 50, // Uniform padding on all sides
550
+ animate: true,
551
+ autoFit: false
552
+ });
553
+
554
+ // Different padding for each side
555
+ await cesdk.actions.run('zoom.toBlock', blockId, {
556
+ padding: { top: 20, bottom: 20, left: 40, right: 40 },
557
+ animate: {
558
+ duration: 0.3,
559
+ easing: 'EaseInOut'
560
+ }
561
+ });
562
+ ```
563
+
564
+ #### `zoom.toPage`
565
+
566
+ Zooms to the current page or a specified page. If no options are provided, defaults to the current page.
567
+
568
+ ```javascript
569
+ // Zoom to current page with auto-fit
570
+ await cesdk.actions.run('zoom.toPage', {
571
+ autoFit: true,
572
+ animate: false
573
+ });
574
+
575
+ // Zoom with custom padding
576
+ await cesdk.actions.run('zoom.toPage', {
577
+ padding: { x: 40, y: 80 },
578
+ animate: true
579
+ });
580
+ ```
581
+
582
+ #### `zoom.toSelection`
583
+
584
+ Zooms to fit all currently selected blocks in the viewport.
585
+
586
+ ```javascript
587
+ // Zoom to selection with animation
588
+ await cesdk.actions.run('zoom.toSelection', {
589
+ padding: 40,
590
+ animate: true
591
+ });
592
+
593
+ // Auto-fit to selection
594
+ await cesdk.actions.run('zoom.toSelection', {
595
+ autoFit: true,
596
+ padding: { x: 20, y: 20 }
597
+ });
598
+ ```
599
+
600
+ #### `zoom.in` and `zoom.out`
601
+
602
+ Step-based zoom controls with configurable limits.
603
+
604
+ ```javascript
605
+ // Zoom in with default settings
606
+ await cesdk.actions.run('zoom.in');
607
+
608
+ // Zoom in with custom maximum
609
+ await cesdk.actions.run('zoom.in', {
610
+ maxZoom: 4, // Maximum zoom level
611
+ animate: true
612
+ });
613
+
614
+ // Zoom out with custom minimum
615
+ await cesdk.actions.run('zoom.out', {
616
+ minZoom: 0.25, // Minimum zoom level
617
+ animate: {
618
+ duration: 0.2,
619
+ easing: 'EaseOut'
620
+ }
621
+ });
622
+ ```
623
+
624
+ #### `zoom.toLevel`
625
+
626
+ Sets the zoom to a specific level.
627
+
628
+ ```javascript
629
+ // Set zoom to 100%
630
+ await cesdk.actions.run('zoom.toLevel', 1.0);
631
+
632
+ // Set zoom to 200% with animation
633
+ await cesdk.actions.run('zoom.toLevel', 2.0, {
634
+ animate: true,
635
+ minZoom: 0.125,
636
+ maxZoom: 32
637
+ });
638
+
639
+ // Fit to width (50% zoom)
640
+ await cesdk.actions.run('zoom.toLevel', 0.5, {
641
+ animate: {
642
+ duration: 0.3,
643
+ easing: 'EaseInOut'
644
+ }
645
+ });
646
+ ```
647
+
648
+ #### Padding Options
649
+
650
+ Padding can be specified in multiple ways:
651
+
652
+ ```javascript
653
+ // Uniform padding on all sides
654
+ { padding: 20 }
655
+
656
+ // Different horizontal and vertical padding
657
+ { padding: { x: 40, y: 20 } }
658
+
659
+ // Individual padding for each side
660
+ { padding: { top: 10, bottom: 20, left: 30, right: 40 } }
661
+ ```
662
+
663
+ #### Animation Options
664
+
665
+ Animation can be a boolean or an object with detailed settings:
666
+
667
+ ```javascript
668
+ // Simple animation toggle
669
+ { animate: true } // Uses default duration and easing
670
+ { animate: false } // No animation
671
+
672
+ // Detailed animation configuration
673
+ {
674
+ animate: {
675
+ duration: 0.3, // Duration in seconds
676
+ easing: 'EaseInOut', // 'Linear', 'EaseIn', 'EaseOut', or 'EaseInOut'
677
+ interruptible: true // Whether the animation can be interrupted
678
+ }
679
+ }
680
+ ```
681
+
682
+ #### Auto-Fit Mode
683
+
684
+ The `autoFit` option enables automatic zoom adjustment when the viewport resizes:
685
+
686
+ ```javascript
687
+ // Enable auto-fit to maintain proper framing
688
+ await cesdk.actions.run('zoom.toPage', {
689
+ autoFit: true,
690
+ padding: { x: 40, y: 80 }
691
+ });
692
+ ```
693
+
694
+ When auto-fit is enabled, the zoom level will automatically adjust to keep the target properly framed when the viewport size changes.
695
+
696
+ #### Custom Zoom Action Example
697
+
698
+ You can override the default zoom actions with custom implementations:
699
+
700
+ ```javascript
701
+ // Custom zoom to page with analytics
702
+ cesdk.actions.register('zoom.toPage', async (options) => {
703
+ // Track zoom event
704
+ console.log('User zoomed to page');
705
+
706
+ // Get current page
707
+ const currentPage = cesdk.engine.scene.getCurrentPage();
708
+ if (!currentPage) return;
709
+
710
+ // Apply custom zoom logic
711
+ await cesdk.engine.scene.zoomToBlock(currentPage, {
712
+ padding: options?.padding ?? { x: 50, y: 100 },
713
+ animate: options?.animate ?? true
714
+ });
715
+
716
+ // Custom post-zoom behavior
717
+ cesdk.ui.showNotification('Zoomed to page');
718
+ });
719
+ ```
720
+
721
+ ### Video Timeline Zoom Actions
722
+
723
+ The video timeline has its own set of zoom controls for managing the timeline view. These actions are registered when the video timeline component is active and provide instant zoom without animation.
724
+
725
+ #### `timeline.zoom.in`
726
+
727
+ Zooms in the video timeline by one step (multiplies current zoom level by 1.25).
728
+
729
+ ```javascript
730
+ // Zoom in the timeline
731
+ await cesdk.actions.run('timeline.zoom.in');
732
+ ```
733
+
734
+ #### `timeline.zoom.out`
735
+
736
+ Zooms out the video timeline by one step (divides current zoom level by 1.25).
737
+
738
+ ```javascript
739
+ // Zoom out the timeline
740
+ await cesdk.actions.run('timeline.zoom.out');
741
+ ```
742
+
743
+ #### `timeline.zoom.fit`
744
+
745
+ Automatically adjusts the timeline zoom to fit all content in the visible area.
746
+
747
+ ```javascript
748
+ // Fit timeline to show all content
749
+ await cesdk.actions.run('timeline.zoom.fit');
750
+ ```
751
+
752
+ #### `timeline.zoom.toLevel`
753
+
754
+ Sets the timeline zoom to a specific level.
755
+
756
+ ```javascript
757
+ // Set timeline zoom to 100%
758
+ await cesdk.actions.run('timeline.zoom.toLevel', 1.0);
759
+
760
+ // Set timeline zoom to 150%
761
+ await cesdk.actions.run('timeline.zoom.toLevel', 1.5);
762
+
763
+ // Set timeline zoom to 50%
764
+ await cesdk.actions.run('timeline.zoom.toLevel', 0.5);
765
+ ```
766
+
767
+ #### `timeline.zoom.reset`
768
+
769
+ Resets the timeline zoom to the default level (1.0 or 100%).
770
+
771
+ ```javascript
772
+ // Reset timeline zoom to default
773
+ await cesdk.actions.run('timeline.zoom.reset');
774
+ ```
775
+
776
+ ### Scroll Actions
777
+
778
+ CE.SDK provides a scroll action for panning the viewport to different pages without changing the zoom level. This is useful for multi-page navigation where you want to maintain the current zoom.
779
+
780
+ #### `scroll.toPage`
781
+
782
+ Scrolls the viewport to center on a specific page without changing the zoom level.
783
+
784
+ ```javascript
785
+ // Scroll to current page without animation
786
+ await cesdk.actions.run('scroll.toPage');
787
+
788
+ // Scroll to current page with smooth animation
789
+ await cesdk.actions.run('scroll.toPage', {
790
+ animate: true
791
+ });
792
+
793
+ // Scroll to a specific page
794
+ await cesdk.actions.run('scroll.toPage', {
795
+ pageId: myPageId,
796
+ animate: true
797
+ });
798
+ ```
799
+
800
+ #### Parameters
801
+
802
+ The `scroll.toPage` action accepts an optional options object:
803
+
804
+ - `pageId` (optional): The ID of the page to scroll to. If not provided, scrolls to the current page.
805
+ - `animate` (optional): Whether to animate the scroll transition. Default is `false`.
806
+
807
+ #### Scroll vs Zoom
808
+
809
+ The key difference between `scroll.toPage` and `zoom.toPage`:
810
+
811
+ - **`scroll.toPage`**: Pans the viewport to center on the page while maintaining the current zoom level
812
+ - **`zoom.toPage`**: Adjusts the zoom level to fit the page within the viewport with padding
813
+
814
+ Use `scroll.toPage` when you want to navigate between pages in a multi-page document while keeping the same zoom level. Use `zoom.toPage` when you want to frame a page properly within the viewport.
815
+
816
+ ## Utils API
817
+
818
+ CE.SDK provides a Utils API with utility functions for common operations. These utilities are available through `cesdk.utils`:
819
+
820
+ ### Loading Dialogs
821
+
822
+ ```javascript
823
+ // Create and manage loading dialogs
824
+ const dialogController = cesdk.utils.showLoadingDialog({
825
+ title: 'Processing...',
826
+ message: 'Please wait', // Can also be an array of strings
827
+ progress: 0, // Initial progress value or 'indeterminate'
828
+ cancelLabel: 'Cancel',
829
+ abortTitle: 'Abort Operation?',
830
+ abortMessage: 'Are you sure you want to abort?',
831
+ abortLabel: 'Abort',
832
+ size: 'large', // 'regular' or 'large'
833
+ clickOutsideToClose: false,
834
+ onAbort: () => console.log('User cancelled'),
835
+ onDone: () => console.log('Dialog closed')
836
+ });
837
+
838
+ // Update progress
839
+ dialogController.updateProgress({ value: 50, max: 100 });
840
+
841
+ // Show success or error
842
+ dialogController.showSuccess({
843
+ title: 'Done!',
844
+ message: 'Operation completed'
845
+ });
846
+ dialogController.showError({ title: 'Error', message: 'Something went wrong' });
847
+
848
+ // Close dialog
849
+ dialogController.close();
850
+ ```
851
+
852
+ ### Export Utility
853
+
854
+ The export utility automatically handles both static (images, PDFs) and video exports:
855
+
856
+ ```javascript
857
+ // Export image or PDF
858
+ const { blobs, options } = await cesdk.utils.export({
859
+ mimeType: 'image/png',
860
+ pngCompressionLevel: 7
861
+ });
862
+
863
+ // Export video (automatically detected by MIME type)
864
+ const { blobs, options } = await cesdk.utils.export({
865
+ mimeType: 'video/mp4',
866
+ onProgress: (rendered, encoded, total) => {
867
+ console.log(`Progress: ${rendered}/${total} frames`);
868
+ }
869
+ });
870
+ ```
871
+
872
+ ### File Operations
873
+
874
+ ```javascript
875
+ // Load file from user
876
+ const file = await cesdk.utils.loadFile({
877
+ accept: 'image/*',
878
+ returnType: 'File' // 'dataURL', 'objectURL', 'text', 'blob', 'arrayBuffer', or 'File'
879
+ });
880
+
881
+ // Download file to user's device
882
+ await cesdk.utils.downloadFile(blob, 'image/png');
883
+
884
+ // Local upload (development only)
885
+ const asset = await cesdk.utils.localUpload(file, context);
886
+ ```
887
+
888
+ ### Video Support Detection
889
+
890
+ Check browser video capabilities before working with video content:
891
+
892
+ ```javascript
893
+ // Check if video decoding/playback is supported
894
+ if (cesdk.utils.supportsVideoDecode()) {
895
+ // Safe to load and play video content
896
+ await cesdk.engine.scene.loadFromURL(videoSceneUrl);
897
+ } else {
898
+ // Show fallback UI or message
899
+ console.log('Video playback not available in this browser');
900
+ }
901
+
902
+ // Check if video encoding/export is supported (async)
903
+ if (await cesdk.utils.supportsVideoEncode()) {
904
+ // Video export is available
905
+ const blob = await cesdk.engine.block.exportVideo(page);
906
+ } else {
907
+ // Suggest server-side rendering alternative
908
+ console.log('Video export not available - consider using CE.SDK Renderer');
909
+ }
910
+ ```
911
+
912
+ These utilities provide the same checks as the `video.decode.checkSupport` and `video.encode.checkSupport` actions, but without showing dialogs. Use them when you want to check support silently and handle the UI yourself.
913
+
914
+ ## Implementation Examples
915
+
916
+ ### Environment-Based Upload Strategy
917
+
918
+ ```javascript
919
+ // Use local upload in development, CDN in production
920
+ cesdk.actions.register('uploadFile', async (file, onProgress, context) => {
921
+ if (process.env.NODE_ENV === 'development') {
922
+ // Use utils for local upload
923
+ return await cesdk.utils.localUpload(file, context);
924
+ } else {
925
+ console.log('Production upload for:', file.name);
926
+ onProgress(100);
927
+
928
+ // Production:
929
+ // const asset = await yourCDNService.upload(file, {
930
+ // onProgress: onProgress
931
+ // });
932
+
933
+ return {
934
+ id: 'prod-' + Date.now(),
935
+ label: { en: file.name },
936
+ meta: {
937
+ uri: URL.createObjectURL(file),
938
+ thumbUri: URL.createObjectURL(file)
939
+ // Production:
940
+ // uri: asset.url,
941
+ // thumbUri: asset.thumbnailUrl
942
+ }
943
+ };
944
+ }
945
+ });
946
+ ```
947
+
948
+ ### Combining Utils with Custom Logic
949
+
950
+ ```javascript
951
+ // Use utils for heavy lifting, add custom business logic
952
+ cesdk.actions.register('exportDesign', async (options) => {
953
+ console.log('Export started:', { format: options?.mimeType });
954
+
955
+ // Production:
956
+ // analytics.track('export_started', { format: options?.mimeType });
957
+
958
+ // Use utils to handle the export with loading dialog
959
+ const { blobs, options: exportOptions } = await cesdk.utils.export(options);
960
+
961
+ // Custom post-processing
962
+ if (exportOptions.mimeType === 'application/pdf') {
963
+ console.log('PDF ready for watermarking:', blobs[0].size, 'bytes');
964
+
965
+ // Production:
966
+ // const watermarkedBlob = await addWatermark(blobs[0]);
967
+ // await cesdk.utils.downloadFile(watermarkedBlob, 'application/pdf');
968
+
969
+ await cesdk.utils.downloadFile(blobs[0], 'application/pdf');
970
+ } else {
971
+ // Direct download for other formats
972
+ await cesdk.utils.downloadFile(blobs[0], exportOptions.mimeType);
973
+ }
974
+
975
+ console.log('Export completed:', { format: exportOptions.mimeType });
976
+
977
+ // Production:
978
+ // analytics.track('export_completed', { format: exportOptions.mimeType });
979
+ });
980
+ ```
981
+
982
+ ## Registering Custom Actions with Custom IDs
983
+
984
+ Beyond the predefined action types, you can register actions with custom IDs for your own application-specific needs:
985
+
986
+ ```javascript
987
+ // Register a custom action
988
+ cesdk.actions.register('myCustomAction', async (data) => {
989
+ console.log('Custom action triggered with:', data);
990
+ return { success: true, processedData: data };
991
+ });
992
+
993
+ // Execute the custom action using run
994
+ const result = await cesdk.actions.run('myCustomAction', { someData: 'value' });
995
+
996
+ // Or retrieve it for conditional execution
997
+ const customAction = cesdk.actions.get('myCustomAction');
998
+ if (customAction) {
999
+ const result = await customAction({ someData: 'value' });
1000
+ }
1001
+ ```
1002
+
1003
+ ## Discovering Registered Actions
1004
+
1005
+ Use `list()` to get all registered action IDs or find actions matching a pattern:
1006
+
1007
+ ```javascript
1008
+ // Get all registered action IDs
1009
+ const registeredActions = cesdk.actions.list();
1010
+ console.log('Available actions:', registeredActions);
1011
+
1012
+ // Find actions matching a pattern
1013
+ const exportActions = cesdk.actions.list({ matcher: 'export*' });
1014
+ console.log('Export actions:', exportActions);
1015
+ ```
1016
+
1017
+ ## Using Actions with Navigation Actions
1018
+
1019
+ The navigation bar actions in CE.SDK automatically use the registered actions:
1020
+
1021
+ ### Default Navigation Bar Actions
1022
+
1023
+ The default navigation bar actions map to actions:
1024
+
1025
+ - Save action → `saveScene` action
1026
+ - Share action → `shareScene` action
1027
+ - Export actions → `exportDesign` action
1028
+ - Import scene/archive → `importScene` action
1029
+ - Export scene/archive → `exportScene` action
1030
+
1031
+ ---
1032
+
1033
+ ## More Resources
1034
+
1035
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
1036
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
1037
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
1038
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support