@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,799 @@
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) > [Insert Media Assets](./insert-media.md) > [Insert Shapes or Stickers](./insert-media/shapes-or-stickers.md)
4
+
5
+ ---
6
+
7
+ Add vector shapes and pre-made stickers to your designs using CE.SDK's block
8
+ API. Shapes require fills to be visible and offer type-specific properties
9
+ like corner radius and star points.
10
+
11
+ ![Insert Shapes or Stickers example showing various shapes on a canvas](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-insert-media-shapes-or-stickers-browser)
19
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-insert-media-shapes-or-stickers-browser)
20
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-insert-media-shapes-or-stickers-browser/)
21
+
22
+ Shapes are vector graphics created with `engine.block.createShape()` and attached to graphic blocks. CE.SDK supports six shape types: **rect**, **ellipse**, **star**, **polygon**, **line**, and **vector_path**. Stickers are pre-made graphic assets from sources like `ly.img.sticker`. Both require fills or strokes to be visible on the canvas.
23
+
24
+ ```typescript file=@cesdk_web_examples/guides-insert-media-shapes-or-stickers-browser/browser.ts reference-only
25
+ import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
26
+
27
+ import {
28
+ BlurAssetSource,
29
+ ColorPaletteAssetSource,
30
+ CropPresetsAssetSource,
31
+ DemoAssetSources,
32
+ EffectsAssetSource,
33
+ FiltersAssetSource,
34
+ PagePresetsAssetSource,
35
+ StickerAssetSource,
36
+ TextAssetSource,
37
+ TextComponentAssetSource,
38
+ TypefaceAssetSource,
39
+ UploadAssetSources,
40
+ VectorShapeAssetSource
41
+ } from '@cesdk/cesdk-js/plugins';
42
+ import { DesignEditorConfig } from './design-editor/plugin';
43
+ import packageJson from './package.json';
44
+ import { calculateGridLayout } from './utils';
45
+
46
+ /**
47
+ * CE.SDK Plugin: Insert Shapes or Stickers Guide
48
+ *
49
+ * Demonstrates inserting various shapes and stickers into designs:
50
+ * - Checking shape support on blocks
51
+ * - Creating different shape types (rect, ellipse, star, polygon, line, vector_path)
52
+ * - Configuring shape-specific properties
53
+ * - Applying fills to make shapes visible
54
+ * - Adding stickers using convenience API and manual construction
55
+ */
56
+ class Example implements EditorPlugin {
57
+ name = packageJson.name;
58
+
59
+ version = packageJson.version;
60
+
61
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
62
+ if (cesdk == null) {
63
+ throw new Error('CE.SDK instance is required for this plugin');
64
+ }
65
+
66
+ await cesdk.addPlugin(new DesignEditorConfig());
67
+
68
+ // Add asset source plugins
69
+ await cesdk.addPlugin(new BlurAssetSource());
70
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
71
+ await cesdk.addPlugin(new CropPresetsAssetSource());
72
+ await cesdk.addPlugin(
73
+ new UploadAssetSources({ include: ['ly.img.image.upload'] })
74
+ );
75
+ await cesdk.addPlugin(
76
+ new DemoAssetSources({
77
+ include: [
78
+ 'ly.img.templates.blank.*',
79
+ 'ly.img.templates.presentation.*',
80
+ 'ly.img.templates.print.*',
81
+ 'ly.img.templates.social.*',
82
+ 'ly.img.image.*'
83
+ ]
84
+ })
85
+ );
86
+ await cesdk.addPlugin(new EffectsAssetSource());
87
+ await cesdk.addPlugin(new FiltersAssetSource());
88
+ await cesdk.addPlugin(new PagePresetsAssetSource());
89
+ await cesdk.addPlugin(new StickerAssetSource());
90
+ await cesdk.addPlugin(new TextAssetSource());
91
+ await cesdk.addPlugin(new TextComponentAssetSource());
92
+ await cesdk.addPlugin(new TypefaceAssetSource());
93
+ await cesdk.addPlugin(new VectorShapeAssetSource());
94
+
95
+ await cesdk.actions.run('scene.create', {
96
+ page: { width: 800, height: 600, unit: 'Pixel' }
97
+ });
98
+
99
+ const engine = cesdk.engine;
100
+ const page = engine.block.findByType('page')[0];
101
+ if (!engine.block.isValid(page)) {
102
+ throw new Error('No page found');
103
+ }
104
+
105
+ const pageWidth = engine.block.getWidth(page);
106
+ const pageHeight = engine.block.getHeight(page);
107
+
108
+ // Calculate responsive grid layout based on page dimensions
109
+ const layout = calculateGridLayout(pageWidth, pageHeight, 10);
110
+ const { blockWidth, blockHeight, getPosition } = layout;
111
+ const blockSize = { width: blockWidth, height: blockHeight };
112
+
113
+ // Check if a block supports shapes before attaching one
114
+ const testBlock = engine.block.create('graphic');
115
+ const supportsShape = engine.block.supportsShape(testBlock);
116
+ // eslint-disable-next-line no-console
117
+ console.log('Graphic block supports shapes:', supportsShape); // true
118
+
119
+ // Text blocks do not support shapes
120
+ const textBlock = engine.block.create('text');
121
+ const textSupportsShape = engine.block.supportsShape(textBlock);
122
+ // eslint-disable-next-line no-console
123
+ console.log('Text block supports shapes:', textSupportsShape); // false
124
+ engine.block.destroy(textBlock);
125
+ engine.block.destroy(testBlock);
126
+
127
+ // Track all created blocks for positioning
128
+ const allBlocks: number[] = [];
129
+
130
+ // Create a rectangle with a solid color fill
131
+ const rectBlock = engine.block.create('graphic');
132
+ const rectShape = engine.block.createShape('rect');
133
+ engine.block.setShape(rectBlock, rectShape);
134
+
135
+ // Apply a solid color fill to make the shape visible
136
+ const rectFill = engine.block.createFill('color');
137
+ engine.block.setColor(rectFill, 'fill/color/value', {
138
+ r: 0.2,
139
+ g: 0.5,
140
+ b: 0.9,
141
+ a: 1.0
142
+ });
143
+ engine.block.setFill(rectBlock, rectFill);
144
+
145
+ engine.block.setWidth(rectBlock, blockWidth);
146
+ engine.block.setHeight(rectBlock, blockHeight);
147
+ engine.block.appendChild(page, rectBlock);
148
+ allBlocks.push(rectBlock);
149
+
150
+ // Create a rounded rectangle with corner radius
151
+ const roundedRectBlock = engine.block.create('graphic');
152
+ const roundedRectShape = engine.block.createShape('rect');
153
+ engine.block.setShape(roundedRectBlock, roundedRectShape);
154
+
155
+ // Set corner radius for rounded corners
156
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 20);
157
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 20);
158
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 20);
159
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 20);
160
+
161
+ const roundedRectFill = engine.block.createFill('color');
162
+ engine.block.setColor(roundedRectFill, 'fill/color/value', {
163
+ r: 0.9,
164
+ g: 0.4,
165
+ b: 0.2,
166
+ a: 1.0
167
+ });
168
+ engine.block.setFill(roundedRectBlock, roundedRectFill);
169
+
170
+ engine.block.setWidth(roundedRectBlock, blockWidth);
171
+ engine.block.setHeight(roundedRectBlock, blockHeight);
172
+ engine.block.appendChild(page, roundedRectBlock);
173
+ allBlocks.push(roundedRectBlock);
174
+
175
+ // Create an ellipse (circle when width equals height)
176
+ const ellipseBlock = engine.block.create('graphic');
177
+ const ellipseShape = engine.block.createShape('ellipse');
178
+ engine.block.setShape(ellipseBlock, ellipseShape);
179
+
180
+ const ellipseFill = engine.block.createFill('color');
181
+ engine.block.setColor(ellipseFill, 'fill/color/value', {
182
+ r: 0.3,
183
+ g: 0.8,
184
+ b: 0.4,
185
+ a: 1.0
186
+ });
187
+ engine.block.setFill(ellipseBlock, ellipseFill);
188
+
189
+ engine.block.setWidth(ellipseBlock, blockWidth);
190
+ engine.block.setHeight(ellipseBlock, blockHeight);
191
+ engine.block.appendChild(page, ellipseBlock);
192
+ allBlocks.push(ellipseBlock);
193
+
194
+ // Create a star with custom points and inner diameter
195
+ const starBlock = engine.block.create('graphic');
196
+ const starShape = engine.block.createShape('star');
197
+ engine.block.setShape(starBlock, starShape);
198
+
199
+ // Configure star properties
200
+ engine.block.setInt(starShape, 'shape/star/points', 5);
201
+ engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.4);
202
+
203
+ const starFill = engine.block.createFill('color');
204
+ engine.block.setColor(starFill, 'fill/color/value', {
205
+ r: 1.0,
206
+ g: 0.8,
207
+ b: 0.0,
208
+ a: 1.0
209
+ });
210
+ engine.block.setFill(starBlock, starFill);
211
+
212
+ engine.block.setWidth(starBlock, blockWidth);
213
+ engine.block.setHeight(starBlock, blockHeight);
214
+ engine.block.appendChild(page, starBlock);
215
+ allBlocks.push(starBlock);
216
+
217
+ // Create a polygon (hexagon with 6 sides)
218
+ const polygonBlock = engine.block.create('graphic');
219
+ const polygonShape = engine.block.createShape('polygon');
220
+ engine.block.setShape(polygonBlock, polygonShape);
221
+
222
+ // Set number of sides for the polygon
223
+ engine.block.setInt(polygonShape, 'shape/polygon/sides', 6);
224
+
225
+ const polygonFill = engine.block.createFill('color');
226
+ engine.block.setColor(polygonFill, 'fill/color/value', {
227
+ r: 0.6,
228
+ g: 0.2,
229
+ b: 0.8,
230
+ a: 1.0
231
+ });
232
+ engine.block.setFill(polygonBlock, polygonFill);
233
+
234
+ engine.block.setWidth(polygonBlock, blockWidth);
235
+ engine.block.setHeight(polygonBlock, blockHeight);
236
+ engine.block.appendChild(page, polygonBlock);
237
+ allBlocks.push(polygonBlock);
238
+
239
+ // Create a line shape
240
+ const lineBlock = engine.block.create('graphic');
241
+ const lineShape = engine.block.createShape('line');
242
+ engine.block.setShape(lineBlock, lineShape);
243
+
244
+ // Lines typically use strokes instead of fills
245
+ engine.block.setStrokeEnabled(lineBlock, true);
246
+ engine.block.setStrokeWidth(lineBlock, 6);
247
+ engine.block.setStrokeColor(lineBlock, {
248
+ r: 0.9,
249
+ g: 0.2,
250
+ b: 0.5,
251
+ a: 1.0
252
+ });
253
+
254
+ engine.block.setWidth(lineBlock, blockWidth);
255
+ engine.block.setHeight(lineBlock, blockHeight);
256
+ engine.block.appendChild(page, lineBlock);
257
+ allBlocks.push(lineBlock);
258
+
259
+ // Create a custom triangle using vector path
260
+ const vectorPathBlock = engine.block.create('graphic');
261
+ const vectorPathShape = engine.block.createShape('vector_path');
262
+ engine.block.setShape(vectorPathBlock, vectorPathShape);
263
+
264
+ // Define a triangle using SVG path syntax (coordinates scale with block size)
265
+ const trianglePath = 'M 50,0 L 100,100 L 0,100 Z';
266
+ engine.block.setString(
267
+ vectorPathShape,
268
+ 'shape/vector_path/path',
269
+ trianglePath
270
+ );
271
+
272
+ const vectorPathFill = engine.block.createFill('color');
273
+ engine.block.setColor(vectorPathFill, 'fill/color/value', {
274
+ r: 0.9,
275
+ g: 0.2,
276
+ b: 0.5,
277
+ a: 1.0
278
+ });
279
+ engine.block.setFill(vectorPathBlock, vectorPathFill);
280
+
281
+ engine.block.setWidth(vectorPathBlock, blockWidth);
282
+ engine.block.setHeight(vectorPathBlock, blockHeight);
283
+ engine.block.appendChild(page, vectorPathBlock);
284
+ allBlocks.push(vectorPathBlock);
285
+
286
+ // Discover available properties for a shape
287
+ const shapeProperties = engine.block.findAllProperties(starShape);
288
+ // eslint-disable-next-line no-console
289
+ console.log('Star shape properties:', shapeProperties);
290
+
291
+ // Add a sticker using the convenience API
292
+ const stickerUrl =
293
+ 'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_grin.svg';
294
+ const stickerBlock = await engine.block.addImage(stickerUrl, {
295
+ size: blockSize
296
+ });
297
+ engine.block.setKind(stickerBlock, 'sticker');
298
+ engine.block.appendChild(page, stickerBlock);
299
+ allBlocks.push(stickerBlock);
300
+
301
+ // Add a sticker using manual construction for more control
302
+ const manualStickerBlock = engine.block.create('graphic');
303
+ const manualStickerShape = engine.block.createShape('rect');
304
+ engine.block.setShape(manualStickerBlock, manualStickerShape);
305
+
306
+ // Create image fill with the sticker URI
307
+ const stickerFill = engine.block.createFill('image');
308
+ engine.block.setString(
309
+ stickerFill,
310
+ 'fill/image/imageFileURI',
311
+ 'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_star.svg'
312
+ );
313
+ engine.block.setFill(manualStickerBlock, stickerFill);
314
+
315
+ // Set content fill mode to preserve aspect ratio
316
+ if (engine.block.supportsContentFillMode(manualStickerBlock)) {
317
+ engine.block.setContentFillMode(manualStickerBlock, 'Contain');
318
+ }
319
+
320
+ // Set kind to 'sticker' for proper categorization
321
+ engine.block.setKind(manualStickerBlock, 'sticker');
322
+
323
+ engine.block.setWidth(manualStickerBlock, blockWidth);
324
+ engine.block.setHeight(manualStickerBlock, blockHeight);
325
+ engine.block.appendChild(page, manualStickerBlock);
326
+ allBlocks.push(manualStickerBlock);
327
+
328
+ // Query stickers from the asset library
329
+ const stickerResults = await engine.asset.findAssets('ly.img.sticker', {
330
+ page: 0,
331
+ perPage: 5
332
+ });
333
+ // eslint-disable-next-line no-console
334
+ console.log('Available stickers:', stickerResults.assets.length);
335
+
336
+ // Position all blocks in grid layout
337
+ allBlocks.forEach((block, index) => {
338
+ const pos = getPosition(index);
339
+ engine.block.setPositionX(block, pos.x);
340
+ engine.block.setPositionY(block, pos.y);
341
+ });
342
+
343
+ // Select the star block to show it in the inspector
344
+ engine.block.setSelected(starBlock, true);
345
+
346
+ // Set zoom to auto-fit the page
347
+ await cesdk.actions.run('zoom.toPage', { autoFit: true });
348
+
349
+ // eslint-disable-next-line no-console
350
+ console.log('Shapes and stickers guide initialized.');
351
+ }
352
+ }
353
+
354
+ export default Example;
355
+ ```
356
+
357
+ This guide covers using the built-in shapes panel for interactive editing and inserting shapes and stickers programmatically using the block API.
358
+
359
+ ## Using the Built-in UI
360
+
361
+ ### Shapes Panel
362
+
363
+ Users access shapes through the asset library panel. The shapes panel displays available shape types that can be placed onto the canvas with a single click.
364
+
365
+ Once placed, shapes can be:
366
+
367
+ - **Resized** by dragging corner handles
368
+ - **Rotated** using the rotation handle
369
+ - **Styled** through the inspector panel (fills, strokes, opacity)
370
+ - **Positioned** by dragging or using alignment tools
371
+
372
+ ### Stickers Panel
373
+
374
+ Stickers appear in the asset library under their categories. Users browse available stickers and add them to the canvas with a single click. Stickers maintain their aspect ratio when resized.
375
+
376
+ ## Programmatic Shape Creation
377
+
378
+ ### Initialize CE.SDK
379
+
380
+ Set up CE.SDK and configure the scene dimensions for your shapes.
381
+
382
+ ```typescript highlight-setup
383
+ await cesdk.addPlugin(new DesignEditorConfig());
384
+
385
+ // Add asset source plugins
386
+ await cesdk.addPlugin(new BlurAssetSource());
387
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
388
+ await cesdk.addPlugin(new CropPresetsAssetSource());
389
+ await cesdk.addPlugin(
390
+ new UploadAssetSources({ include: ['ly.img.image.upload'] })
391
+ );
392
+ await cesdk.addPlugin(
393
+ new DemoAssetSources({
394
+ include: [
395
+ 'ly.img.templates.blank.*',
396
+ 'ly.img.templates.presentation.*',
397
+ 'ly.img.templates.print.*',
398
+ 'ly.img.templates.social.*',
399
+ 'ly.img.image.*'
400
+ ]
401
+ })
402
+ );
403
+ await cesdk.addPlugin(new EffectsAssetSource());
404
+ await cesdk.addPlugin(new FiltersAssetSource());
405
+ await cesdk.addPlugin(new PagePresetsAssetSource());
406
+ await cesdk.addPlugin(new StickerAssetSource());
407
+ await cesdk.addPlugin(new TextAssetSource());
408
+ await cesdk.addPlugin(new TextComponentAssetSource());
409
+ await cesdk.addPlugin(new TypefaceAssetSource());
410
+ await cesdk.addPlugin(new VectorShapeAssetSource());
411
+
412
+ await cesdk.actions.run('scene.create', {
413
+ page: { width: 800, height: 600, unit: 'Pixel' }
414
+ });
415
+
416
+ const engine = cesdk.engine;
417
+ const page = engine.block.findByType('page')[0];
418
+ if (!engine.block.isValid(page)) {
419
+ throw new Error('No page found');
420
+ }
421
+
422
+ const pageWidth = engine.block.getWidth(page);
423
+ const pageHeight = engine.block.getHeight(page);
424
+ ```
425
+
426
+ ### Check Shape Support
427
+
428
+ Before attaching a shape to a block, verify it supports shapes using `supportsShape()`. Graphic blocks support shapes while text blocks do not.
429
+
430
+ ```typescript highlight-check-shape-support
431
+ // Check if a block supports shapes before attaching one
432
+ const testBlock = engine.block.create('graphic');
433
+ const supportsShape = engine.block.supportsShape(testBlock);
434
+ // eslint-disable-next-line no-console
435
+ console.log('Graphic block supports shapes:', supportsShape); // true
436
+
437
+ // Text blocks do not support shapes
438
+ const textBlock = engine.block.create('text');
439
+ const textSupportsShape = engine.block.supportsShape(textBlock);
440
+ // eslint-disable-next-line no-console
441
+ console.log('Text block supports shapes:', textSupportsShape); // false
442
+ engine.block.destroy(textBlock);
443
+ engine.block.destroy(testBlock);
444
+ ```
445
+
446
+ ### Create Rectangle
447
+
448
+ Create rectangles with `createShape('rect')` and attach them to a graphic block with `setShape()`. Apply a fill to make the shape visible.
449
+
450
+ ```typescript highlight-create-rectangle
451
+ // Create a rectangle with a solid color fill
452
+ const rectBlock = engine.block.create('graphic');
453
+ const rectShape = engine.block.createShape('rect');
454
+ engine.block.setShape(rectBlock, rectShape);
455
+
456
+ // Apply a solid color fill to make the shape visible
457
+ const rectFill = engine.block.createFill('color');
458
+ engine.block.setColor(rectFill, 'fill/color/value', {
459
+ r: 0.2,
460
+ g: 0.5,
461
+ b: 0.9,
462
+ a: 1.0
463
+ });
464
+ engine.block.setFill(rectBlock, rectFill);
465
+
466
+ engine.block.setWidth(rectBlock, blockWidth);
467
+ engine.block.setHeight(rectBlock, blockHeight);
468
+ engine.block.appendChild(page, rectBlock);
469
+ allBlocks.push(rectBlock);
470
+ ```
471
+
472
+ ### Create Rounded Rectangle
473
+
474
+ Rectangles support corner radius properties for rounded corners. Set each corner individually using `shape/rect/cornerRadiusTL`, `cornerRadiusTR`, `cornerRadiusBL`, and `cornerRadiusBR`.
475
+
476
+ ```typescript highlight-create-rounded-rectangle
477
+ // Create a rounded rectangle with corner radius
478
+ const roundedRectBlock = engine.block.create('graphic');
479
+ const roundedRectShape = engine.block.createShape('rect');
480
+ engine.block.setShape(roundedRectBlock, roundedRectShape);
481
+
482
+ // Set corner radius for rounded corners
483
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 20);
484
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 20);
485
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 20);
486
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 20);
487
+
488
+ const roundedRectFill = engine.block.createFill('color');
489
+ engine.block.setColor(roundedRectFill, 'fill/color/value', {
490
+ r: 0.9,
491
+ g: 0.4,
492
+ b: 0.2,
493
+ a: 1.0
494
+ });
495
+ engine.block.setFill(roundedRectBlock, roundedRectFill);
496
+
497
+ engine.block.setWidth(roundedRectBlock, blockWidth);
498
+ engine.block.setHeight(roundedRectBlock, blockHeight);
499
+ engine.block.appendChild(page, roundedRectBlock);
500
+ allBlocks.push(roundedRectBlock);
501
+ ```
502
+
503
+ ### Create Ellipse
504
+
505
+ Create circles and ovals with `createShape('ellipse')`. The block's aspect ratio determines whether it appears as a circle (equal width and height) or an oval.
506
+
507
+ ```typescript highlight-create-ellipse
508
+ // Create an ellipse (circle when width equals height)
509
+ const ellipseBlock = engine.block.create('graphic');
510
+ const ellipseShape = engine.block.createShape('ellipse');
511
+ engine.block.setShape(ellipseBlock, ellipseShape);
512
+
513
+ const ellipseFill = engine.block.createFill('color');
514
+ engine.block.setColor(ellipseFill, 'fill/color/value', {
515
+ r: 0.3,
516
+ g: 0.8,
517
+ b: 0.4,
518
+ a: 1.0
519
+ });
520
+ engine.block.setFill(ellipseBlock, ellipseFill);
521
+
522
+ engine.block.setWidth(ellipseBlock, blockWidth);
523
+ engine.block.setHeight(ellipseBlock, blockHeight);
524
+ engine.block.appendChild(page, ellipseBlock);
525
+ allBlocks.push(ellipseBlock);
526
+ ```
527
+
528
+ ### Create Star
529
+
530
+ Create stars with `createShape('star')`. Configure the number of points with `shape/star/points` and control the inner diameter with `shape/star/innerDiameter` (0.0 to 1.0).
531
+
532
+ ```typescript highlight-create-star
533
+ // Create a star with custom points and inner diameter
534
+ const starBlock = engine.block.create('graphic');
535
+ const starShape = engine.block.createShape('star');
536
+ engine.block.setShape(starBlock, starShape);
537
+
538
+ // Configure star properties
539
+ engine.block.setInt(starShape, 'shape/star/points', 5);
540
+ engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.4);
541
+
542
+ const starFill = engine.block.createFill('color');
543
+ engine.block.setColor(starFill, 'fill/color/value', {
544
+ r: 1.0,
545
+ g: 0.8,
546
+ b: 0.0,
547
+ a: 1.0
548
+ });
549
+ engine.block.setFill(starBlock, starFill);
550
+
551
+ engine.block.setWidth(starBlock, blockWidth);
552
+ engine.block.setHeight(starBlock, blockHeight);
553
+ engine.block.appendChild(page, starBlock);
554
+ allBlocks.push(starBlock);
555
+ ```
556
+
557
+ ### Create Polygon
558
+
559
+ Create regular polygons with `createShape('polygon')`. Set the number of sides with `shape/polygon/sides` to create triangles (3), pentagons (5), hexagons (6), and more.
560
+
561
+ ```typescript highlight-create-polygon
562
+ // Create a polygon (hexagon with 6 sides)
563
+ const polygonBlock = engine.block.create('graphic');
564
+ const polygonShape = engine.block.createShape('polygon');
565
+ engine.block.setShape(polygonBlock, polygonShape);
566
+
567
+ // Set number of sides for the polygon
568
+ engine.block.setInt(polygonShape, 'shape/polygon/sides', 6);
569
+
570
+ const polygonFill = engine.block.createFill('color');
571
+ engine.block.setColor(polygonFill, 'fill/color/value', {
572
+ r: 0.6,
573
+ g: 0.2,
574
+ b: 0.8,
575
+ a: 1.0
576
+ });
577
+ engine.block.setFill(polygonBlock, polygonFill);
578
+
579
+ engine.block.setWidth(polygonBlock, blockWidth);
580
+ engine.block.setHeight(polygonBlock, blockHeight);
581
+ engine.block.appendChild(page, polygonBlock);
582
+ allBlocks.push(polygonBlock);
583
+ ```
584
+
585
+ ### Create Line
586
+
587
+ Create lines with `createShape('line')`. Lines are typically styled with strokes rather than fills using `setStrokeEnabled()` and `setStrokeWidth()`.
588
+
589
+ ```typescript highlight-create-line
590
+ // Create a line shape
591
+ const lineBlock = engine.block.create('graphic');
592
+ const lineShape = engine.block.createShape('line');
593
+ engine.block.setShape(lineBlock, lineShape);
594
+
595
+ // Lines typically use strokes instead of fills
596
+ engine.block.setStrokeEnabled(lineBlock, true);
597
+ engine.block.setStrokeWidth(lineBlock, 6);
598
+ engine.block.setStrokeColor(lineBlock, {
599
+ r: 0.9,
600
+ g: 0.2,
601
+ b: 0.5,
602
+ a: 1.0
603
+ });
604
+
605
+ engine.block.setWidth(lineBlock, blockWidth);
606
+ engine.block.setHeight(lineBlock, blockHeight);
607
+ engine.block.appendChild(page, lineBlock);
608
+ allBlocks.push(lineBlock);
609
+ ```
610
+
611
+ ### Create Vector Path
612
+
613
+ Create custom shapes with `createShape('vector_path')`. Define the path using SVG path syntax with `shape/vector_path/path`. The path coordinates scale proportionally with the block dimensions.
614
+
615
+ ```typescript highlight-create-vector-path
616
+ // Create a custom triangle using vector path
617
+ const vectorPathBlock = engine.block.create('graphic');
618
+ const vectorPathShape = engine.block.createShape('vector_path');
619
+ engine.block.setShape(vectorPathBlock, vectorPathShape);
620
+
621
+ // Define a triangle using SVG path syntax (coordinates scale with block size)
622
+ const trianglePath = 'M 50,0 L 100,100 L 0,100 Z';
623
+ engine.block.setString(vectorPathShape, 'shape/vector_path/path', trianglePath);
624
+
625
+ const vectorPathFill = engine.block.createFill('color');
626
+ engine.block.setColor(vectorPathFill, 'fill/color/value', {
627
+ r: 0.9,
628
+ g: 0.2,
629
+ b: 0.5,
630
+ a: 1.0
631
+ });
632
+ engine.block.setFill(vectorPathBlock, vectorPathFill);
633
+
634
+ engine.block.setWidth(vectorPathBlock, blockWidth);
635
+ engine.block.setHeight(vectorPathBlock, blockHeight);
636
+ engine.block.appendChild(page, vectorPathBlock);
637
+ allBlocks.push(vectorPathBlock);
638
+ ```
639
+
640
+ ### Discover Shape Properties
641
+
642
+ Use `findAllProperties()` to discover available configuration options for any shape type.
643
+
644
+ ```typescript highlight-discover-shape-properties
645
+ // Discover available properties for a shape
646
+ const shapeProperties = engine.block.findAllProperties(starShape);
647
+ // eslint-disable-next-line no-console
648
+ console.log('Star shape properties:', shapeProperties);
649
+ ```
650
+
651
+ Each shape type has specific properties:
652
+
653
+ - **Rectangle**: `shape/rect/cornerRadiusTL`, `cornerRadiusTR`, `cornerRadiusBL`, `cornerRadiusBR`
654
+ - **Star**: `shape/star/points`, `shape/star/innerDiameter`
655
+ - **Polygon**: `shape/polygon/sides`
656
+ - **Vector Path**: `shape/vector_path/path`
657
+
658
+ ## Programmatic Sticker Insertion
659
+
660
+ ### Using the Convenience API
661
+
662
+ The simplest way to add stickers is with `engine.block.addImage()`. This convenience API handles graphic block creation, shape attachment, and fill setup automatically.
663
+
664
+ ```typescript highlight-sticker-convenience-api
665
+ // Add a sticker using the convenience API
666
+ const stickerUrl =
667
+ 'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_grin.svg';
668
+ const stickerBlock = await engine.block.addImage(stickerUrl, {
669
+ size: blockSize
670
+ });
671
+ engine.block.setKind(stickerBlock, 'sticker');
672
+ engine.block.appendChild(page, stickerBlock);
673
+ allBlocks.push(stickerBlock);
674
+ ```
675
+
676
+ Setting `setKind(block, 'sticker')` categorizes the block correctly in the UI, which helps with organization and enables sticker-specific behaviors.
677
+
678
+ ### Manual Sticker Construction
679
+
680
+ For full control over sticker creation, manually construct a graphic block with a rect shape and image fill.
681
+
682
+ ```typescript highlight-sticker-manual-construction
683
+ // Add a sticker using manual construction for more control
684
+ const manualStickerBlock = engine.block.create('graphic');
685
+ const manualStickerShape = engine.block.createShape('rect');
686
+ engine.block.setShape(manualStickerBlock, manualStickerShape);
687
+
688
+ // Create image fill with the sticker URI
689
+ const stickerFill = engine.block.createFill('image');
690
+ engine.block.setString(
691
+ stickerFill,
692
+ 'fill/image/imageFileURI',
693
+ 'https://cdn.img.ly/assets/v4/ly.img.sticker/images/emoticons/imgly_sticker_emoticons_star.svg'
694
+ );
695
+ engine.block.setFill(manualStickerBlock, stickerFill);
696
+
697
+ // Set content fill mode to preserve aspect ratio
698
+ if (engine.block.supportsContentFillMode(manualStickerBlock)) {
699
+ engine.block.setContentFillMode(manualStickerBlock, 'Contain');
700
+ }
701
+
702
+ // Set kind to 'sticker' for proper categorization
703
+ engine.block.setKind(manualStickerBlock, 'sticker');
704
+
705
+ engine.block.setWidth(manualStickerBlock, blockWidth);
706
+ engine.block.setHeight(manualStickerBlock, blockHeight);
707
+ engine.block.appendChild(page, manualStickerBlock);
708
+ allBlocks.push(manualStickerBlock);
709
+ ```
710
+
711
+ Using `setContentFillMode(block, 'Contain')` preserves the sticker's aspect ratio within the block bounds. Always check `supportsContentFillMode()` before setting this property.
712
+
713
+ ### Query Stickers from Asset Library
714
+
715
+ Browse available stickers from asset sources using `engine.asset.findAssets()`.
716
+
717
+ ```typescript highlight-query-stickers
718
+ // Query stickers from the asset library
719
+ const stickerResults = await engine.asset.findAssets('ly.img.sticker', {
720
+ page: 0,
721
+ perPage: 5
722
+ });
723
+ // eslint-disable-next-line no-console
724
+ console.log('Available stickers:', stickerResults.assets.length);
725
+ ```
726
+
727
+ Use `ly.img.sticker` for raster stickers or `ly.img.vector.shape` for vector-based sticker assets.
728
+
729
+ ## Troubleshooting
730
+
731
+ ### Shape Not Visible
732
+
733
+ If a shape doesn't appear after creation:
734
+
735
+ - **Verify a fill is applied** - Shapes without fills are invisible. Create a fill with `createFill()` and apply it with `setFill()`
736
+ - **Check the block is added to the page** - Use `appendChild(page, block)` to add the block to the scene hierarchy
737
+ - **Ensure dimensions are set** - Call `setWidth()` and `setHeight()` to give the shape a size
738
+
739
+ ### Sticker Appears Cropped
740
+
741
+ If stickers appear cropped or distorted:
742
+
743
+ - Use `setContentFillMode(block, 'Contain')` to preserve aspect ratio
744
+ - Check `supportsContentFillMode()` before setting the mode
745
+ - Adjust block dimensions to better match the sticker's native aspect ratio
746
+
747
+ ### Invalid Shape Type
748
+
749
+ If `createShape()` throws an error:
750
+
751
+ - Verify the shape type is one of: `rect`, `ellipse`, `star`, `polygon`, `line`, `vector_path`
752
+ - Check for typos in the type string (case-sensitive)
753
+
754
+ ## API Reference
755
+
756
+ | Method | Description |
757
+ | ----------------------------------------- | ------------------------------------------------ |
758
+ | `block.create('graphic')` | Create a graphic block for shapes |
759
+ | `block.createShape(type)` | Create a shape of the specified type |
760
+ | `block.supportsShape(block)` | Check if a block supports shapes |
761
+ | `block.setShape(block, shape)` | Attach a shape to a graphic block |
762
+ | `block.getShape(block)` | Get the shape attached to a block |
763
+ | `block.findAllProperties(shape)` | Discover available shape properties |
764
+ | `block.setInt(shape, property, value)` | Set integer property (points, sides) |
765
+ | `block.setFloat(shape, property, value)` | Set float property (corner radius, diameter) |
766
+ | `block.setString(shape, property, value)` | Set string property (vector path) |
767
+ | `block.createFill(type)` | Create a fill for the shape |
768
+ | `block.setFill(block, fill)` | Apply fill to a block |
769
+ | `block.setColor(fill, property, color)` | Set fill color value |
770
+ | `block.addImage(uri, options?)` | Convenience API for adding images/stickers |
771
+ | `block.setKind(block, kind)` | Set block kind for categorization |
772
+ | `block.setContentFillMode(block, mode)` | Set content fill mode ('Contain', 'Cover', etc.) |
773
+ | `block.supportsContentFillMode(block)` | Check if block supports content fill mode |
774
+ | `block.setPositionX(block, x)` | Set horizontal position |
775
+ | `block.setPositionY(block, y)` | Set vertical position |
776
+ | `block.setWidth(block, width)` | Set block width |
777
+ | `block.setHeight(block, height)` | Set block height |
778
+ | `block.appendChild(parent, child)` | Add block to parent |
779
+ | `block.setStrokeEnabled(block, enabled)` | Enable or disable stroke |
780
+ | `block.setStrokeWidth(block, width)` | Set stroke width |
781
+ | `block.setStrokeColor(block, color)` | Set stroke color |
782
+ | `block.isValid(block)` | Check if a block handle is valid |
783
+ | `scene.zoomToBlock(block, options)` | Zoom view to fit a block |
784
+ | `asset.findAssets(sourceId, query)` | Query assets from a source |
785
+
786
+ ## Next Steps
787
+
788
+ - [Colors](./colors.md) - Work with colors, fills, and gradients
789
+ - [Filters and Effects](./filters-and-effects.md) - Apply visual effects to design elements
790
+ - [Position and Align](./insert-media/position-and-align.md) - Position elements precisely on the canvas
791
+
792
+ ---
793
+
794
+ ## More Resources
795
+
796
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
797
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
798
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
799
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support