@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,303 @@
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) > [Open the Editor](./open-the-editor.md) > [Set Zoom Level](./open-the-editor/set-zoom-level.md)
4
+
5
+ ---
6
+
7
+ Control the canvas zoom level programmatically using CE.SDK. Learn how to use
8
+ the zoom APIs to set specific levels, enable auto-fit, and zoom to blocks. You
9
+ can also customize the navigation bar with your own zoom controls.
10
+
11
+ ![Set Zoom Level example showing canvas with zoom controls](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
12
+
13
+ > **Reading time:** 10 minutes
14
+ >
15
+ > **Resources:**
16
+ >
17
+ > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
18
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-open-the-editor-set-zoom-level-browser)
19
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-open-the-editor-set-zoom-level-browser)
20
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-open-the-editor-set-zoom-level-browser/)
21
+
22
+ The zoom level is a ratio where 1.0 equals one design pixel per screen pixel. A zoom level of 2.0 makes content appear twice as large on screen, while 0.5 makes it appear half as large.
23
+
24
+ ```typescript file=@cesdk_web_examples/guides-open-the-editor-set-zoom-level-browser/src/browser.ts reference-only
25
+ import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
26
+ import packageJson from '../package.json';
27
+ import {
28
+ BlurAssetSource,
29
+ CaptionPresetsAssetSource,
30
+ ColorPaletteAssetSource,
31
+ CropPresetsAssetSource,
32
+ DemoAssetSources,
33
+ EffectsAssetSource,
34
+ FiltersAssetSource,
35
+ PagePresetsAssetSource,
36
+ StickerAssetSource,
37
+ TextAssetSource,
38
+ TypefaceAssetSource,
39
+ UploadAssetSources,
40
+ VectorShapeAssetSource
41
+ } from '@cesdk/cesdk-js/plugins';
42
+ import { DesignEditorConfig } from '../design-editor/plugin';
43
+
44
+ class Example implements EditorPlugin {
45
+ name = packageJson.name;
46
+ version = packageJson.version;
47
+
48
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
49
+ if (!cesdk) {
50
+ throw new Error('CE.SDK instance is required for this plugin');
51
+ }
52
+
53
+ const engine = cesdk.engine;
54
+
55
+ await cesdk.addPlugin(new DesignEditorConfig());
56
+
57
+ // Load asset source plugins
58
+ await cesdk.addPlugin(new BlurAssetSource());
59
+ await cesdk.addPlugin(new CaptionPresetsAssetSource());
60
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
61
+ await cesdk.addPlugin(new CropPresetsAssetSource());
62
+ await cesdk.addPlugin(new EffectsAssetSource());
63
+ await cesdk.addPlugin(new FiltersAssetSource());
64
+ await cesdk.addPlugin(new PagePresetsAssetSource());
65
+ await cesdk.addPlugin(new StickerAssetSource());
66
+ await cesdk.addPlugin(new TextAssetSource());
67
+ await cesdk.addPlugin(new TypefaceAssetSource());
68
+ await cesdk.addPlugin(new VectorShapeAssetSource());
69
+ await cesdk.addPlugin(
70
+ new UploadAssetSources({
71
+ include: ['ly.img.image.upload']
72
+ })
73
+ );
74
+ await cesdk.addPlugin(
75
+ new DemoAssetSources({
76
+ include: ['ly.img.image.*']
77
+ })
78
+ );
79
+ await cesdk.actions.run('scene.create', {
80
+ page: {
81
+ sourceId: 'ly.img.page.presets',
82
+ assetId: 'ly.img.page.presets.print.iso.a6.landscape'
83
+ }
84
+ });
85
+
86
+ const page = engine.block.findByType('page')[0];
87
+
88
+ // Set a specific zoom level (value 0.15 = 15%, 1.0 = 100%)
89
+ engine.scene.setZoomLevel(0.15);
90
+
91
+ // Enable auto-fit to keep content visible within the viewport
92
+ // Parameters: block, fitMode, paddingTop, paddingRight, paddingBottom, paddingLeft
93
+ engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
94
+
95
+ // Configure navigation bar with custom zoom buttons
96
+ // This replaces the default zoom controls
97
+ cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
98
+ 'ly.img.spacer',
99
+ {
100
+ id: 'ly.img.action.navigationBar',
101
+ key: 'zoom-15',
102
+ label: 'Zoom 15%',
103
+ icon: '@imgly/ZoomOut',
104
+ onClick: () => {
105
+ engine.scene.setZoomLevel(0.15);
106
+ }
107
+ },
108
+ {
109
+ id: 'ly.img.action.navigationBar',
110
+ key: 'zoom-42',
111
+ label: 'Zoom 42%',
112
+ icon: '@imgly/Zoom',
113
+ onClick: () => {
114
+ engine.scene.setZoomLevel(0.42);
115
+ }
116
+ },
117
+ {
118
+ id: 'ly.img.action.navigationBar',
119
+ key: 'zoom-90',
120
+ label: 'Zoom 90%',
121
+ icon: '@imgly/ZoomIn',
122
+ onClick: () => {
123
+ engine.scene.setZoomLevel(0.9);
124
+ }
125
+ },
126
+ {
127
+ id: 'ly.img.action.navigationBar',
128
+ key: 'zoom-auto-fit',
129
+ label: 'Auto-Fit',
130
+ icon: '@imgly/Fit',
131
+ onClick: () => {
132
+ engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
133
+ }
134
+ }
135
+ ]);
136
+
137
+ // Zoom to show a specific block with smooth animation
138
+ await engine.scene.zoomToBlock(page, {
139
+ padding: 40,
140
+ animate: { duration: 0.3, easing: 'EaseOut' }
141
+ });
142
+ }
143
+ }
144
+
145
+ export default Example;
146
+ ```
147
+
148
+ ## Understanding the Zoom APIs
149
+
150
+ CE.SDK provides three main approaches for controlling the zoom level.
151
+
152
+ ### Set Zoom Level
153
+
154
+ Use `engine.scene.setZoomLevel()` to set a specific zoom level. The value is a ratio where:
155
+
156
+ - `0.15` = 15% zoom (zoomed out)
157
+ - `1.0` = 100% zoom (1:1 pixel ratio)
158
+ - `2.0` = 200% zoom (zoomed in)
159
+
160
+ ```typescript highlight-set-zoom-level
161
+ // Set a specific zoom level (value 0.15 = 15%, 1.0 = 100%)
162
+ engine.scene.setZoomLevel(0.15);
163
+ ```
164
+
165
+ ### Auto-Fit Zoom
166
+
167
+ Use `engine.scene.enableZoomAutoFit()` to continuously adjust zoom to fit a block in the viewport. The parameters are:
168
+
169
+ - **blockOrScene**: The block ID to fit
170
+ - **axis**: `'Both'`, `'Horizontal'`, or `'Vertical'`
171
+ - **padding values**: Space around the block in screen pixels (top, right, bottom, left)
172
+
173
+ ```typescript highlight-auto-fit
174
+ // Enable auto-fit to keep content visible within the viewport
175
+ // Parameters: block, fitMode, paddingTop, paddingRight, paddingBottom, paddingLeft
176
+ engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
177
+ ```
178
+
179
+ When auto-fit is enabled, the viewport automatically adjusts when the block changes size. Calling `setZoomLevel()` or `zoomToBlock()` disables auto-fit.
180
+
181
+ ### Zoom to Block
182
+
183
+ Use `engine.scene.zoomToBlock()` to focus the viewport on a specific block with animation:
184
+
185
+ ```typescript highlight-zoom-to-block
186
+ // Zoom to show a specific block with smooth animation
187
+ await engine.scene.zoomToBlock(page, {
188
+ padding: 40,
189
+ animate: { duration: 0.3, easing: 'EaseOut' }
190
+ });
191
+ ```
192
+
193
+ ## Built-in Zoom Controls
194
+
195
+ CE.SDK includes a built-in zoom component that provides a complete zoom interface out of the box. The `ly.img.zoom.navigationBar` component includes:
196
+
197
+ - Zoom in and zoom out buttons
198
+ - Auto-fit button
199
+ - Fit-to-page option
200
+ - Preset zoom levels (200%, 100%, 50%)
201
+ - A dropdown with a numeric input for custom zoom values
202
+
203
+ This component appears in the navigation bar by default. For most use cases, the built-in zoom controls provide everything users need without any additional code.
204
+
205
+ ## Customizing the Navigation Bar
206
+
207
+ If you need custom zoom behavior beyond what the built-in component provides, use `cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, order)` to replace or extend the navigation bar controls.
208
+
209
+ ```typescript highlight-navigation-bar-buttons
210
+ // Configure navigation bar with custom zoom buttons
211
+ // This replaces the default zoom controls
212
+ cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, [
213
+ 'ly.img.spacer',
214
+ {
215
+ id: 'ly.img.action.navigationBar',
216
+ key: 'zoom-15',
217
+ label: 'Zoom 15%',
218
+ icon: '@imgly/ZoomOut',
219
+ onClick: () => {
220
+ engine.scene.setZoomLevel(0.15);
221
+ }
222
+ },
223
+ {
224
+ id: 'ly.img.action.navigationBar',
225
+ key: 'zoom-42',
226
+ label: 'Zoom 42%',
227
+ icon: '@imgly/Zoom',
228
+ onClick: () => {
229
+ engine.scene.setZoomLevel(0.42);
230
+ }
231
+ },
232
+ {
233
+ id: 'ly.img.action.navigationBar',
234
+ key: 'zoom-90',
235
+ label: 'Zoom 90%',
236
+ icon: '@imgly/ZoomIn',
237
+ onClick: () => {
238
+ engine.scene.setZoomLevel(0.9);
239
+ }
240
+ },
241
+ {
242
+ id: 'ly.img.action.navigationBar',
243
+ key: 'zoom-auto-fit',
244
+ label: 'Auto-Fit',
245
+ icon: '@imgly/Fit',
246
+ onClick: () => {
247
+ engine.scene.enableZoomAutoFit(page, 'Both', 20, 20, 20, 20);
248
+ }
249
+ }
250
+ ]);
251
+ ```
252
+
253
+ Each action button requires:
254
+
255
+ - **id**: Use `'ly.img.action.navigationBar'` for action buttons
256
+ - **key**: Unique identifier for the button
257
+ - **label**: Display text
258
+ - **icon**: Icon from the `@imgly/` icon set
259
+ - **onClick**: Handler function
260
+
261
+ By defining your own order, you can remove default controls, add custom action buttons, and reorder existing components.
262
+
263
+ ## Troubleshooting
264
+
265
+ ### Zoom Level Doesn't Change
266
+
267
+ - Check that no UI component is overriding zoom
268
+ - Ensure a scene exists before calling zoom methods
269
+ - Verify zoom clamping isn't limiting the range
270
+
271
+ ### Auto-Fit Not Working
272
+
273
+ - Only one block can have auto-fit enabled at a time
274
+ - Calling `setZoomLevel()` or `zoomToBlock()` disables auto-fit
275
+ - Pass a valid block ID that exists in the scene
276
+
277
+ ### Custom Buttons Not Appearing
278
+
279
+ - Ensure `setComponentOrder()` is called after the scene is created
280
+ - Check that button keys are unique
281
+ - Verify the icon name is correct
282
+
283
+ ## API Reference
284
+
285
+ | Method | Description |
286
+ | -------------------------------------------------------------------- | --------------------------------- |
287
+ | `engine.scene.getZoomLevel()` | Get current zoom level |
288
+ | `engine.scene.setZoomLevel()` | Set zoom level directly |
289
+ | `engine.scene.zoomToBlock()` | Zoom and pan to show a block |
290
+ | `engine.scene.enableZoomAutoFit()` | Enable continuous zoom adjustment |
291
+ | `engine.scene.disableZoomAutoFit()` | Disable auto-fit |
292
+ | `engine.scene.isZoomAutoFitEnabled()` | Query auto-fit state |
293
+ | `engine.scene.onZoomLevelChanged()` | Subscribe to zoom changes |
294
+ | `cesdk.ui.setComponentOrder({ in: 'ly.img.navigation.bar' }, order)` | Customize navigation bar layout |
295
+
296
+ ---
297
+
298
+ ## More Resources
299
+
300
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
301
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
302
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
303
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
@@ -0,0 +1,347 @@
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) > [Open the Editor](./open-the-editor.md) > [URI Resolver](./open-the-editor/uri-resolver.md)
4
+
5
+ ---
6
+
7
+ Learn how to intercept and transform asset URIs in CE.SDK, enabling authentication and custom resolution logic.
8
+
9
+ ![CE.SDK URI Resolver demonstration showing custom resolution behavior](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
10
+
11
+ > **Reading time:** 5 minutes
12
+ >
13
+ > **Resources:**
14
+ >
15
+ > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
16
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-open-the-editor-uri-resolver-browser)
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-open-the-editor-uri-resolver-browser)
18
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-open-the-editor-uri-resolver-browser/)
19
+
20
+ When CE.SDK loads an asset, it resolves the URI to an absolute path before fetching. You can intercept this process to add authentication tokens or transform URIs based on your application's needs.
21
+
22
+ ```typescript file=@cesdk_web_examples/guides-open-the-editor-uri-resolver-browser/browser.ts reference-only
23
+ import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
24
+ import {
25
+ BlurAssetSource,
26
+ ColorPaletteAssetSource,
27
+ CropPresetsAssetSource,
28
+ DemoAssetSources,
29
+ EffectsAssetSource,
30
+ FiltersAssetSource,
31
+ PagePresetsAssetSource,
32
+ StickerAssetSource,
33
+ TextAssetSource,
34
+ TextComponentAssetSource,
35
+ TypefaceAssetSource,
36
+ UploadAssetSources,
37
+ VectorShapeAssetSource
38
+ } from '@cesdk/cesdk-js/plugins';
39
+ import { DesignEditorConfig } from './design-editor/plugin';
40
+ import packageJson from './package.json';
41
+
42
+ /**
43
+ * CE.SDK Plugin: URI Resolver Guide
44
+ *
45
+ * This example demonstrates:
46
+ * - Understanding default URI resolution behavior
47
+ * - Setting custom URI resolvers
48
+ * - Adding authentication tokens
49
+ * - Removing custom resolvers
50
+ */
51
+ class Example implements EditorPlugin {
52
+ name = packageJson.name;
53
+
54
+ version = packageJson.version;
55
+
56
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
57
+ if (!cesdk) {
58
+ throw new Error('CE.SDK instance is required for this plugin');
59
+ }
60
+
61
+ await cesdk.addPlugin(new DesignEditorConfig());
62
+ // Add asset source plugins
63
+ await cesdk.addPlugin(new BlurAssetSource());
64
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
65
+ await cesdk.addPlugin(new CropPresetsAssetSource());
66
+ await cesdk.addPlugin(
67
+ new UploadAssetSources({ include: ['ly.img.image.upload'] })
68
+ );
69
+ await cesdk.addPlugin(
70
+ new DemoAssetSources({
71
+ include: [
72
+ 'ly.img.templates.blank.*',
73
+ 'ly.img.templates.presentation.*',
74
+ 'ly.img.templates.print.*',
75
+ 'ly.img.templates.social.*',
76
+ 'ly.img.image.*'
77
+ ]
78
+ })
79
+ );
80
+ await cesdk.addPlugin(new EffectsAssetSource());
81
+ await cesdk.addPlugin(new FiltersAssetSource());
82
+ await cesdk.addPlugin(new PagePresetsAssetSource());
83
+ await cesdk.addPlugin(new StickerAssetSource());
84
+ await cesdk.addPlugin(new TextAssetSource());
85
+ await cesdk.addPlugin(new TextComponentAssetSource());
86
+ await cesdk.addPlugin(new TypefaceAssetSource());
87
+ await cesdk.addPlugin(new VectorShapeAssetSource());
88
+
89
+ // Create a design scene
90
+ await cesdk.actions.run('scene.create', {
91
+ page: { width: 800, height: 600, unit: 'Pixel' }
92
+ });
93
+
94
+ const engine = cesdk.engine;
95
+
96
+ // Get the page
97
+ const pages = engine.block.findByType('page');
98
+ const page = pages[0];
99
+ if (!page) {
100
+ throw new Error('No page found');
101
+ }
102
+
103
+ // Set page background to light gray
104
+ const pageFill = engine.block.getFill(page);
105
+ engine.block.setColor(pageFill, 'fill/color/value', {
106
+ r: 0.96,
107
+ g: 0.96,
108
+ b: 0.96,
109
+ a: 1.0
110
+ });
111
+
112
+ // ========================================
113
+ // Section 1: Understanding Default URI Resolution
114
+ // ========================================
115
+
116
+ // Test resolution without loading assets
117
+ const relativeURI = '/images/photo.jpg';
118
+ const resolvedURI = await engine.editor.getAbsoluteURI(relativeURI);
119
+ // eslint-disable-next-line no-console
120
+ console.log('Default resolution:');
121
+ // eslint-disable-next-line no-console
122
+ console.log(` Input: ${relativeURI}`);
123
+ // eslint-disable-next-line no-console
124
+ console.log(` Output: ${resolvedURI}`);
125
+
126
+ // ========================================
127
+ // Section 2: Setting a Custom URI Resolver
128
+ // ========================================
129
+
130
+ // Set a custom resolver that transforms specific file types
131
+ engine.editor.setURIResolver((uri, defaultURIResolver) => {
132
+ // Transform JPG files to a watermarked version
133
+ if (uri.endsWith('.jpg')) {
134
+ // eslint-disable-next-line no-console
135
+ console.log(`Custom resolver: Transforming ${uri}`);
136
+ return 'https://img.ly/static/ubq_samples/sample_1.jpg';
137
+ }
138
+ // Use default resolver for all other URIs
139
+ return defaultURIResolver(uri);
140
+ });
141
+
142
+ // Test the custom resolver
143
+ // ========================================
144
+ // Section 2: Adding Authentication with JWT Tokens
145
+ // ========================================
146
+
147
+ // Pre-generate token BEFORE setting the resolver (must be synchronous)
148
+ const authToken = 'demo-jwt-token-123';
149
+
150
+ // Set resolver that adds authentication to specific endpoints
151
+ engine.editor.setURIResolver((uri, defaultURIResolver) => {
152
+ // Only add auth token to URIs pointing to your stable link endpoint
153
+ if (uri.includes('your-server/image-stable-links/')) {
154
+ const authenticatedURI = `${uri}?auth=${authToken}`;
155
+ // eslint-disable-next-line no-console
156
+ console.log(`\nAuth resolver: Adding token to ${uri}`);
157
+ // eslint-disable-next-line no-console
158
+ console.log(` Result: ${authenticatedURI}`);
159
+ return authenticatedURI;
160
+ }
161
+ // Use default resolver for all other URIs
162
+ return defaultURIResolver(uri);
163
+ });
164
+
165
+ // Test authentication with a protected URI
166
+ const protectedURI = 'https://your-server/image-stable-links/abc123';
167
+ await engine.editor.getAbsoluteURI(protectedURI);
168
+
169
+ // ========================================
170
+ // Section 3: Removing a Custom Resolver
171
+ // ========================================
172
+
173
+ // Remove the custom resolver to restore default behavior
174
+ engine.editor.setURIResolver((uri, defaultURIResolver) =>
175
+ defaultURIResolver(uri)
176
+ );
177
+ // eslint-disable-next-line no-console
178
+ console.log('\n✓ Removed custom resolver - back to default behavior');
179
+
180
+ // ========================================
181
+ // Visual Demonstration: Load Images
182
+ // ========================================
183
+
184
+ // Create a visual demonstration with actual image loading
185
+ // This shows that the resolver affects actual asset loading, not just getAbsoluteURI()
186
+
187
+ // Set a simple resolver for the demo
188
+ engine.editor.setURIResolver((uri, defaultURIResolver) => {
189
+ // For this demo, ensure all images resolve to valid URLs
190
+ if (uri.includes('sample')) {
191
+ return uri;
192
+ }
193
+ return defaultURIResolver(uri);
194
+ });
195
+
196
+ // Create three image blocks to demonstrate URI resolution in action
197
+ const imageSize = { width: 200, height: 150 };
198
+ const spacing = 40;
199
+ const startX = (800 - (imageSize.width * 3 + spacing * 2)) / 2;
200
+ const startY = (600 - imageSize.height) / 2;
201
+
202
+ // Image 1: Standard resolution
203
+ const image1 = await engine.block.addImage(
204
+ 'https://img.ly/static/ubq_samples/sample_1.jpg',
205
+ { size: imageSize }
206
+ );
207
+ engine.block.setPositionX(image1, startX);
208
+ engine.block.setPositionY(image1, startY);
209
+ engine.block.appendChild(page, image1);
210
+
211
+ // Image 2: Another sample
212
+ const image2 = await engine.block.addImage(
213
+ 'https://img.ly/static/ubq_samples/sample_2.jpg',
214
+ { size: imageSize }
215
+ );
216
+ engine.block.setPositionX(image2, startX + imageSize.width + spacing);
217
+ engine.block.setPositionY(image2, startY);
218
+ engine.block.appendChild(page, image2);
219
+
220
+ // Image 3: Third sample
221
+ const image3 = await engine.block.addImage(
222
+ 'https://img.ly/static/ubq_samples/sample_3.jpg',
223
+ { size: imageSize }
224
+ );
225
+ engine.block.setPositionX(image3, startX + (imageSize.width + spacing) * 2);
226
+ engine.block.setPositionY(image3, startY);
227
+ engine.block.appendChild(page, image3);
228
+
229
+ // Zoom to fit all content
230
+ await engine.scene.zoomToBlock(page, {
231
+ padding: {
232
+ left: 40,
233
+ top: 40,
234
+ right: 40,
235
+ bottom: 40
236
+ }
237
+ });
238
+
239
+ // eslint-disable-next-line no-console
240
+ console.log('\n✓ URI Resolver guide loaded successfully!');
241
+ }
242
+ }
243
+
244
+ export default Example;
245
+ ```
246
+
247
+ ## Default URI Resolution
248
+
249
+ By default, CE.SDK resolves URIs relative to the `basePath` setting. Absolute URIs (with http://, https://, data:) pass through unchanged, while relative paths get prepended with `basePath`.
250
+
251
+ Use `getAbsoluteURI()` to test how URIs resolve without loading assets:
252
+
253
+ ```typescript highlight=highlight-test-resolution
254
+ // Test resolution without loading assets
255
+ const relativeURI = '/images/photo.jpg';
256
+ const resolvedURI = await engine.editor.getAbsoluteURI(relativeURI);
257
+ // eslint-disable-next-line no-console
258
+ console.log('Default resolution:');
259
+ // eslint-disable-next-line no-console
260
+ console.log(` Input: ${relativeURI}`);
261
+ // eslint-disable-next-line no-console
262
+ console.log(` Output: ${resolvedURI}`);
263
+ ```
264
+
265
+ ## Custom URI Resolver
266
+
267
+ Set a custom resolver to intercept and transform URIs. The resolver receives the URI and a `defaultURIResolver` function for fallback behavior:
268
+
269
+ ```typescript highlight=highlight-set-resolver
270
+ // Set a custom resolver that transforms specific file types
271
+ engine.editor.setURIResolver((uri, defaultURIResolver) => {
272
+ // Transform JPG files to a watermarked version
273
+ if (uri.endsWith('.jpg')) {
274
+ // eslint-disable-next-line no-console
275
+ console.log(`Custom resolver: Transforming ${uri}`);
276
+ return 'https://img.ly/static/ubq_samples/sample_1.jpg';
277
+ }
278
+ // Use default resolver for all other URIs
279
+ return defaultURIResolver(uri);
280
+ });
281
+ ```
282
+
283
+ **Important:** The resolver must be synchronous—no `async`/`await` or Promises. Pre-compute any tokens or transformations before setting the resolver.
284
+
285
+ ## Adding Authentication
286
+
287
+ A common use case is adding authentication tokens to asset URIs. Generate the token before setting the resolver, then append it as a query parameter:
288
+
289
+ ```typescript highlight=highlight-auth-resolver
290
+ // Pre-generate token BEFORE setting the resolver (must be synchronous)
291
+ const authToken = 'demo-jwt-token-123';
292
+
293
+ // Set resolver that adds authentication to specific endpoints
294
+ engine.editor.setURIResolver((uri, defaultURIResolver) => {
295
+ // Only add auth token to URIs pointing to your stable link endpoint
296
+ if (uri.includes('your-server/image-stable-links/')) {
297
+ const authenticatedURI = `${uri}?auth=${authToken}`;
298
+ // eslint-disable-next-line no-console
299
+ console.log(`\nAuth resolver: Adding token to ${uri}`);
300
+ // eslint-disable-next-line no-console
301
+ console.log(` Result: ${authenticatedURI}`);
302
+ return authenticatedURI;
303
+ }
304
+ // Use default resolver for all other URIs
305
+ return defaultURIResolver(uri);
306
+ });
307
+
308
+ // Test authentication with a protected URI
309
+ const protectedURI = 'https://your-server/image-stable-links/abc123';
310
+ await engine.editor.getAbsoluteURI(protectedURI);
311
+ ```
312
+
313
+ Your server validates the token and redirects to the actual asset (e.g., pre-signed S3 URL). CE.SDK follows redirects automatically.
314
+
315
+ ## Removing a Resolver
316
+
317
+ Restore default behavior by setting a resolver that delegates to `defaultURIResolver`:
318
+
319
+ ```typescript highlight=highlight-remove-resolver
320
+ // Remove the custom resolver to restore default behavior
321
+ engine.editor.setURIResolver((uri, defaultURIResolver) =>
322
+ defaultURIResolver(uri)
323
+ );
324
+ // eslint-disable-next-line no-console
325
+ console.log('\n✓ Removed custom resolver - back to default behavior');
326
+ ```
327
+
328
+ ## Key Constraints
329
+
330
+ - **Sync vs async**: `setURIResolver` must be synchronous. Use `setURIResolverAsync` for async resolution.
331
+ - **Must return absolute URIs**: Include scheme (http://, https://, data:)
332
+ - **One resolver at a time**: New calls overwrite previous resolvers
333
+ - **Delegate unmatched URIs**: Pass to `defaultURIResolver()` for unchanged paths
334
+
335
+ ## Next Steps
336
+
337
+ - [Configuration](./configuration.md) — CE.SDK initialization and baseURL settings
338
+ - [Load Assets from Remote](./import-media/from-remote-source.md) — Load assets from remote URLs and servers
339
+
340
+ ---
341
+
342
+ ## More Resources
343
+
344
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
345
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
346
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
347
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
@@ -0,0 +1,29 @@
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) > [Open the Editor](./open-the-editor.md)
4
+
5
+ ---
6
+
7
+ ---
8
+
9
+ ## Related Pages
10
+
11
+ - [Overview](./open-the-editor/overview.md) - Learn how to load and create scenes, set the zoom level, and configure file proxies or URI resolvers.
12
+ - [Load a Scene](./open-the-editor/load-scene.md) - Load existing design scenes into the editor to resume or modify previous work.
13
+ - [Start With Blank Canvas](./open-the-editor/blank-canvas.md) - Launch the editor with an empty canvas as a starting point for new designs.
14
+ - [Create From Image](./open-the-editor/from-image.md) - Create an editable scene from an image file, with automatic page dimensions matching the source image.
15
+ - [Create From HTMLCanvas](./open-the-editor/from-htmlcanvas.md) - Start the editor from an HTMLCanvas element and enable editing on top of its rendered content.
16
+ - [Create From Video](./open-the-editor/from-video.md) - Load a video file into the editor to start editing frame-based or time-based video content.
17
+ - [Create From Template](./open-the-editor/from-template.md) - Start the editor with a pre-designed template for faster editing and consistent output.
18
+ - [Import a Design](./open-the-editor/import-design.md) - Load previously saved scenes, self-contained archives, or create editable scenes from images and videos.
19
+ - [Set Zoom Level](./open-the-editor/set-zoom-level.md) - Control the canvas zoom level programmatically to focus on specific areas of the design.
20
+ - [URI Resolver](./open-the-editor/uri-resolver.md) - Take control over asset URI resolution in CE.SDK by intercepting and transforming URIs before the engine loads them.
21
+
22
+ ---
23
+
24
+ ## More Resources
25
+
26
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
27
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
28
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
29
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support
@@ -0,0 +1,14 @@
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) > [Outlines](./outlines.md) > [Overview](./outlines/overview.md)
4
+
5
+ ---
6
+
7
+ ---
8
+
9
+ ## More Resources
10
+
11
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
12
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
13
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
14
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support