@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,794 @@
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) > [Create and Edit Shapes](./shapes.md) > [Create Shapes](./stickers-and-shapes/create-edit/create-shapes.md)
4
+
5
+ ---
6
+
7
+ Create and configure geometric shapes programmatically using the Engine
8
+ API—rectangles, ellipses, stars, polygons, lines, and custom vector paths
9
+ combined with fills.
10
+
11
+ ![Create Shapes example showing various geometric shapes with different colors and fills](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
12
+
13
+ > **Reading time:** 15 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)
19
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples)
20
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-stickers-and-shapes-create-shapes-browser/)
21
+
22
+ ```typescript file=@cesdk_web_examples/guides-stickers-and-shapes-create-shapes-browser/browser.ts reference-only
23
+ import type { EditorPlugin, EditorPluginContext } from '@cesdk/cesdk-js';
24
+
25
+ import {
26
+ BlurAssetSource,
27
+ ColorPaletteAssetSource,
28
+ CropPresetsAssetSource,
29
+ DemoAssetSources,
30
+ EffectsAssetSource,
31
+ FiltersAssetSource,
32
+ PagePresetsAssetSource,
33
+ StickerAssetSource,
34
+ TextAssetSource,
35
+ TextComponentAssetSource,
36
+ TypefaceAssetSource,
37
+ UploadAssetSources,
38
+ VectorShapeAssetSource
39
+ } from '@cesdk/cesdk-js/plugins';
40
+ import { DesignEditorConfig } from './design-editor/plugin';
41
+ import packageJson from './package.json';
42
+
43
+ class Example implements EditorPlugin {
44
+ name = packageJson.name;
45
+ version = packageJson.version;
46
+
47
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
48
+ if (!cesdk) {
49
+ throw new Error('CE.SDK instance is required for this plugin');
50
+ }
51
+ await cesdk.addPlugin(new DesignEditorConfig());
52
+
53
+ // Add asset source plugins
54
+ await cesdk.addPlugin(new BlurAssetSource());
55
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
56
+ await cesdk.addPlugin(new CropPresetsAssetSource());
57
+ await cesdk.addPlugin(
58
+ new UploadAssetSources({ include: ['ly.img.image.upload'] })
59
+ );
60
+ await cesdk.addPlugin(
61
+ new DemoAssetSources({
62
+ include: [
63
+ 'ly.img.templates.blank.*',
64
+ 'ly.img.templates.presentation.*',
65
+ 'ly.img.templates.print.*',
66
+ 'ly.img.templates.social.*',
67
+ 'ly.img.image.*'
68
+ ]
69
+ })
70
+ );
71
+ await cesdk.addPlugin(new EffectsAssetSource());
72
+ await cesdk.addPlugin(new FiltersAssetSource());
73
+ await cesdk.addPlugin(new PagePresetsAssetSource());
74
+ await cesdk.addPlugin(new StickerAssetSource());
75
+ await cesdk.addPlugin(new TextAssetSource());
76
+ await cesdk.addPlugin(new TextComponentAssetSource());
77
+ await cesdk.addPlugin(new TypefaceAssetSource());
78
+ await cesdk.addPlugin(new VectorShapeAssetSource());
79
+
80
+ await cesdk.actions.run('scene.create', {
81
+ page: { width: 300, height: 200, unit: 'Pixel' }
82
+ });
83
+
84
+ const engine = cesdk.engine;
85
+ const page = engine.block.findByType('page')[0];
86
+
87
+ const testGraphic = engine.block.create('graphic');
88
+ engine.block.supportsShape(testGraphic); // Returns true
89
+
90
+ const testText = engine.block.create('text');
91
+ engine.block.supportsShape(testText); // Returns false
92
+
93
+ engine.block.destroy(testText);
94
+ engine.block.destroy(testGraphic);
95
+
96
+ const rectGraphic = engine.block.create('graphic');
97
+ const rectShape = engine.block.createShape('rect');
98
+ engine.block.setShape(rectGraphic, rectShape);
99
+
100
+ const redFill = engine.block.createFill('color');
101
+ engine.block.setColor(redFill, 'fill/color/value', {
102
+ r: 1.0,
103
+ g: 0.0,
104
+ b: 0.0,
105
+ a: 1.0
106
+ });
107
+ engine.block.setFill(rectGraphic, redFill);
108
+
109
+ engine.block.setWidth(rectGraphic, 64);
110
+ engine.block.setHeight(rectGraphic, 64);
111
+ engine.block.appendChild(page, rectGraphic);
112
+ engine.block.setPositionX(rectGraphic, 10);
113
+ engine.block.setPositionY(rectGraphic, 10);
114
+
115
+ const ellipseGraphic = engine.block.create('graphic');
116
+ const ellipseShape = engine.block.createShape('ellipse');
117
+ engine.block.setShape(ellipseGraphic, ellipseShape);
118
+
119
+ const gradientFill = engine.block.createFill('gradient/linear');
120
+ engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
121
+ { color: { r: 0.2, g: 0.6, b: 0.9, a: 1.0 }, stop: 0.0 },
122
+ { color: { r: 0.9, g: 0.3, b: 0.6, a: 1.0 }, stop: 1.0 }
123
+ ]);
124
+ engine.block.setFill(ellipseGraphic, gradientFill);
125
+
126
+ engine.block.setWidth(ellipseGraphic, 64);
127
+ engine.block.setHeight(ellipseGraphic, 64);
128
+ engine.block.appendChild(page, ellipseGraphic);
129
+ engine.block.setPositionX(ellipseGraphic, 82);
130
+ engine.block.setPositionY(ellipseGraphic, 10);
131
+
132
+ // Discover what properties are available on a shape
133
+ const exampleStarShape = engine.block.createShape('star');
134
+ engine.block.findAllProperties(exampleStarShape);
135
+ // Returns: ['shape/star/points', 'shape/star/innerDiameter', 'type', ...]
136
+ engine.block.destroy(exampleStarShape);
137
+
138
+ const starGraphic = engine.block.create('graphic');
139
+ const starShape = engine.block.createShape('star');
140
+ engine.block.setShape(starGraphic, starShape);
141
+
142
+ engine.block.setInt(starShape, 'shape/star/points', 5);
143
+ engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
144
+
145
+ const yellowFill = engine.block.createFill('color');
146
+ engine.block.setColor(yellowFill, 'fill/color/value', {
147
+ r: 1.0,
148
+ g: 0.8,
149
+ b: 0.0,
150
+ a: 1.0
151
+ });
152
+ engine.block.setFill(starGraphic, yellowFill);
153
+
154
+ engine.block.setWidth(starGraphic, 64);
155
+ engine.block.setHeight(starGraphic, 64);
156
+ engine.block.appendChild(page, starGraphic);
157
+ engine.block.setPositionX(starGraphic, 154);
158
+ engine.block.setPositionY(starGraphic, 10);
159
+
160
+ const polygonGraphic = engine.block.create('graphic');
161
+ const polygonShape = engine.block.createShape('polygon');
162
+ engine.block.setShape(polygonGraphic, polygonShape);
163
+
164
+ engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
165
+
166
+ const greenFill = engine.block.createFill('color');
167
+ engine.block.setColor(greenFill, 'fill/color/value', {
168
+ r: 0.2,
169
+ g: 0.8,
170
+ b: 0.3,
171
+ a: 1.0
172
+ });
173
+ engine.block.setFill(polygonGraphic, greenFill);
174
+
175
+ engine.block.setWidth(polygonGraphic, 64);
176
+ engine.block.setHeight(polygonGraphic, 64);
177
+ engine.block.appendChild(page, polygonGraphic);
178
+ engine.block.setPositionX(polygonGraphic, 226);
179
+ engine.block.setPositionY(polygonGraphic, 10);
180
+
181
+ const lineGraphic = engine.block.create('graphic');
182
+ const lineShape = engine.block.createShape('line');
183
+ engine.block.setShape(lineGraphic, lineShape);
184
+
185
+ const purpleFill = engine.block.createFill('color');
186
+ engine.block.setColor(purpleFill, 'fill/color/value', {
187
+ r: 0.6,
188
+ g: 0.2,
189
+ b: 0.9,
190
+ a: 1.0
191
+ });
192
+ engine.block.setFill(lineGraphic, purpleFill);
193
+
194
+ engine.block.setWidth(lineGraphic, 64);
195
+ engine.block.setHeight(lineGraphic, 10);
196
+ engine.block.appendChild(page, lineGraphic);
197
+ engine.block.setPositionX(lineGraphic, 10);
198
+ engine.block.setPositionY(lineGraphic, 109);
199
+
200
+ const vectorPathGraphic = engine.block.create('graphic');
201
+ const vectorPathShape = engine.block.createShape('vector_path');
202
+ engine.block.setShape(vectorPathGraphic, vectorPathShape);
203
+
204
+ engine.block.setString(
205
+ vectorPathShape,
206
+ 'shape/vector_path/path',
207
+ 'M 0,0 L 100,50 L 0,100 Z'
208
+ );
209
+
210
+ const orangeFill = engine.block.createFill('color');
211
+ engine.block.setColor(orangeFill, 'fill/color/value', {
212
+ r: 1.0,
213
+ g: 0.5,
214
+ b: 0.0,
215
+ a: 1.0
216
+ });
217
+ engine.block.setFill(vectorPathGraphic, orangeFill);
218
+
219
+ engine.block.setWidth(vectorPathGraphic, 64);
220
+ engine.block.setHeight(vectorPathGraphic, 64);
221
+ engine.block.appendChild(page, vectorPathGraphic);
222
+ engine.block.setPositionX(vectorPathGraphic, 82);
223
+ engine.block.setPositionY(vectorPathGraphic, 82);
224
+
225
+ const roundedRectGraphic = engine.block.create('graphic');
226
+ const roundedRectShape = engine.block.createShape('rect');
227
+ engine.block.setShape(roundedRectGraphic, roundedRectShape);
228
+
229
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 5.0);
230
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 5.0);
231
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 5.0);
232
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 5.0);
233
+
234
+ const cyanFill = engine.block.createFill('color');
235
+ engine.block.setColor(cyanFill, 'fill/color/value', {
236
+ r: 0.0,
237
+ g: 0.8,
238
+ b: 0.8,
239
+ a: 1.0
240
+ });
241
+ engine.block.setFill(roundedRectGraphic, cyanFill);
242
+
243
+ engine.block.setWidth(roundedRectGraphic, 64);
244
+ engine.block.setHeight(roundedRectGraphic, 64);
245
+ engine.block.appendChild(page, roundedRectGraphic);
246
+ engine.block.setPositionX(roundedRectGraphic, 154);
247
+ engine.block.setPositionY(roundedRectGraphic, 82);
248
+ }
249
+ }
250
+
251
+ export default Example;
252
+ ```
253
+
254
+ ## Understanding Shapes and Graphic Blocks
255
+
256
+ ### What Are Shapes?
257
+
258
+ Shapes in CE.SDK are geometric definitions—rectangles, ellipses, stars, and other forms—that exist as independent objects until attached to graphic blocks. We create shapes using type identifiers like `'rect'` or `'ellipse'`, and they define the geometry while remaining invisible until combined with fills.
259
+
260
+ Shapes and fills are independent. Change a shape from a rectangle to a star while keeping the same fill, or change a fill from red to blue while maintaining the rectangular shape.
261
+
262
+ ### The Graphic Block System
263
+
264
+ Graphic blocks serve as containers that bring shapes and fills together. When we create a graphic block, it starts empty—no shape, no fill, and therefore invisible. We then apply both a shape and a fill to make it appear on the canvas.
265
+
266
+ Here's what a graphic block can hold:
267
+
268
+ - **Shape**: The geometric form (rectangle, ellipse, star, polygon, line, or vector path)
269
+ - **Fill**: The color, gradient, image, or video content that makes the shape visible
270
+ - **Effects**: Optional filters, blur, or shadows applied to the filled shape
271
+ - **Transform**: Position, rotation, and scale properties
272
+
273
+ ### Available Shape Types
274
+
275
+ CE.SDK provides six built-in shape types:
276
+
277
+ - **Rectangle** (`'rect'`): Basic rectangular shapes with optional rounded corners
278
+ - **Ellipse** (`'ellipse'`): Circular and oval shapes
279
+ - **Star** (`'star'`): Star shapes with configurable points and inner radius
280
+ - **Polygon** (`'polygon'`): Regular polygons with configurable number of sides
281
+ - **Line** (`'line'`): Straight lines spanning the block's dimensions
282
+ - **Vector Path** (`'vector_path'`): Custom shapes using SVG path data
283
+
284
+ You can use short type names like `'rect'` or fully qualified names like `'//ly.img.ubq/shape/rect'`—both work identically.
285
+
286
+ ## Checking Shape Support
287
+
288
+ Before applying shapes, we verify that a block type supports them. Not all block types can have shapes—graphic blocks support shapes, but text blocks, scenes, and pages don't.
289
+
290
+ ```typescript highlight-check-shape-support
291
+ const testGraphic = engine.block.create('graphic');
292
+ engine.block.supportsShape(testGraphic); // Returns true
293
+
294
+ const testText = engine.block.create('text');
295
+ engine.block.supportsShape(testText); // Returns false
296
+
297
+ engine.block.destroy(testText);
298
+ engine.block.destroy(testGraphic);
299
+ ```
300
+
301
+ We always check `supportsShape()` to prevent errors when working with unknown or dynamic block types. Graphic blocks return `true`, while text blocks return `false`.
302
+
303
+ ## Creating Basic Shapes
304
+
305
+ ### Creating a Rectangle
306
+
307
+ We create a graphic block, apply a rectangle shape, and add a fill to make it visible:
308
+
309
+ ```typescript highlight-create-rectangle
310
+ const rectGraphic = engine.block.create('graphic');
311
+ const rectShape = engine.block.createShape('rect');
312
+ engine.block.setShape(rectGraphic, rectShape);
313
+
314
+ const redFill = engine.block.createFill('color');
315
+ engine.block.setColor(redFill, 'fill/color/value', {
316
+ r: 1.0,
317
+ g: 0.0,
318
+ b: 0.0,
319
+ a: 1.0
320
+ });
321
+ engine.block.setFill(rectGraphic, redFill);
322
+
323
+ engine.block.setWidth(rectGraphic, 64);
324
+ engine.block.setHeight(rectGraphic, 64);
325
+ engine.block.appendChild(page, rectGraphic);
326
+ engine.block.setPositionX(rectGraphic, 10);
327
+ engine.block.setPositionY(rectGraphic, 10);
328
+ ```
329
+
330
+ Shapes require fills to become visible. The shape defines the geometry while the fill provides the visual content.
331
+
332
+ ### Creating Other Shape Types
333
+
334
+ Creating other shapes follows the same pattern with different shape types and properties.
335
+
336
+ Ellipse with gradient fill:
337
+
338
+ ```typescript highlight-create-ellipse
339
+ const ellipseGraphic = engine.block.create('graphic');
340
+ const ellipseShape = engine.block.createShape('ellipse');
341
+ engine.block.setShape(ellipseGraphic, ellipseShape);
342
+
343
+ const gradientFill = engine.block.createFill('gradient/linear');
344
+ engine.block.setGradientColorStops(gradientFill, 'fill/gradient/colors', [
345
+ { color: { r: 0.2, g: 0.6, b: 0.9, a: 1.0 }, stop: 0.0 },
346
+ { color: { r: 0.9, g: 0.3, b: 0.6, a: 1.0 }, stop: 1.0 }
347
+ ]);
348
+ engine.block.setFill(ellipseGraphic, gradientFill);
349
+
350
+ engine.block.setWidth(ellipseGraphic, 64);
351
+ engine.block.setHeight(ellipseGraphic, 64);
352
+ engine.block.appendChild(page, ellipseGraphic);
353
+ engine.block.setPositionX(ellipseGraphic, 82);
354
+ engine.block.setPositionY(ellipseGraphic, 10);
355
+ ```
356
+
357
+ Star with configurable points:
358
+
359
+ ```typescript highlight-create-star
360
+ const starGraphic = engine.block.create('graphic');
361
+ const starShape = engine.block.createShape('star');
362
+ engine.block.setShape(starGraphic, starShape);
363
+
364
+ engine.block.setInt(starShape, 'shape/star/points', 5);
365
+ engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
366
+
367
+ const yellowFill = engine.block.createFill('color');
368
+ engine.block.setColor(yellowFill, 'fill/color/value', {
369
+ r: 1.0,
370
+ g: 0.8,
371
+ b: 0.0,
372
+ a: 1.0
373
+ });
374
+ engine.block.setFill(starGraphic, yellowFill);
375
+
376
+ engine.block.setWidth(starGraphic, 64);
377
+ engine.block.setHeight(starGraphic, 64);
378
+ engine.block.appendChild(page, starGraphic);
379
+ engine.block.setPositionX(starGraphic, 154);
380
+ engine.block.setPositionY(starGraphic, 10);
381
+ ```
382
+
383
+ Polygon with custom number of sides:
384
+
385
+ ```typescript highlight-create-polygon
386
+ const polygonGraphic = engine.block.create('graphic');
387
+ const polygonShape = engine.block.createShape('polygon');
388
+ engine.block.setShape(polygonGraphic, polygonShape);
389
+
390
+ engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
391
+
392
+ const greenFill = engine.block.createFill('color');
393
+ engine.block.setColor(greenFill, 'fill/color/value', {
394
+ r: 0.2,
395
+ g: 0.8,
396
+ b: 0.3,
397
+ a: 1.0
398
+ });
399
+ engine.block.setFill(polygonGraphic, greenFill);
400
+
401
+ engine.block.setWidth(polygonGraphic, 64);
402
+ engine.block.setHeight(polygonGraphic, 64);
403
+ engine.block.appendChild(page, polygonGraphic);
404
+ engine.block.setPositionX(polygonGraphic, 226);
405
+ engine.block.setPositionY(polygonGraphic, 10);
406
+ ```
407
+
408
+ Line with stroke styling:
409
+
410
+ ```typescript highlight-create-line
411
+ const lineGraphic = engine.block.create('graphic');
412
+ const lineShape = engine.block.createShape('line');
413
+ engine.block.setShape(lineGraphic, lineShape);
414
+
415
+ const purpleFill = engine.block.createFill('color');
416
+ engine.block.setColor(purpleFill, 'fill/color/value', {
417
+ r: 0.6,
418
+ g: 0.2,
419
+ b: 0.9,
420
+ a: 1.0
421
+ });
422
+ engine.block.setFill(lineGraphic, purpleFill);
423
+
424
+ engine.block.setWidth(lineGraphic, 64);
425
+ engine.block.setHeight(lineGraphic, 10);
426
+ engine.block.appendChild(page, lineGraphic);
427
+ engine.block.setPositionX(lineGraphic, 10);
428
+ engine.block.setPositionY(lineGraphic, 109);
429
+ ```
430
+
431
+ ## Configuring Shape Properties
432
+
433
+ ### Discovering Properties
434
+
435
+ Each shape type has unique properties that control its appearance. We discover these properties using `findAllProperties()`:
436
+
437
+ ```typescript highlight-discover-properties
438
+ // Discover what properties are available on a shape
439
+ const exampleStarShape = engine.block.createShape('star');
440
+ engine.block.findAllProperties(exampleStarShape);
441
+ // Returns: ['shape/star/points', 'shape/star/innerDiameter', 'type', ...]
442
+ engine.block.destroy(exampleStarShape);
443
+ ```
444
+
445
+ This shows what can be configured for each shape type.
446
+
447
+ ### Rectangle: Corner Radius
448
+
449
+ Rectangles support independent corner radius values:
450
+
451
+ ```typescript highlight-configure-properties
452
+ const roundedRectGraphic = engine.block.create('graphic');
453
+ const roundedRectShape = engine.block.createShape('rect');
454
+ engine.block.setShape(roundedRectGraphic, roundedRectShape);
455
+
456
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTL', 5.0);
457
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusTR', 5.0);
458
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBL', 5.0);
459
+ engine.block.setFloat(roundedRectShape, 'shape/rect/cornerRadiusBR', 5.0);
460
+
461
+ const cyanFill = engine.block.createFill('color');
462
+ engine.block.setColor(cyanFill, 'fill/color/value', {
463
+ r: 0.0,
464
+ g: 0.8,
465
+ b: 0.8,
466
+ a: 1.0
467
+ });
468
+ engine.block.setFill(roundedRectGraphic, cyanFill);
469
+
470
+ engine.block.setWidth(roundedRectGraphic, 64);
471
+ engine.block.setHeight(roundedRectGraphic, 64);
472
+ engine.block.appendChild(page, roundedRectGraphic);
473
+ engine.block.setPositionX(roundedRectGraphic, 154);
474
+ engine.block.setPositionY(roundedRectGraphic, 82);
475
+ ```
476
+
477
+ Set each corner independently using `cornerRadiusTL`, `cornerRadiusTR`, `cornerRadiusBL`, and `cornerRadiusBR` (values in pixels).
478
+
479
+ ### Star: Points and Inner Diameter
480
+
481
+ Configure star shapes using two properties:
482
+
483
+ ```typescript highlight-create-star
484
+ const starGraphic = engine.block.create('graphic');
485
+ const starShape = engine.block.createShape('star');
486
+ engine.block.setShape(starGraphic, starShape);
487
+
488
+ engine.block.setInt(starShape, 'shape/star/points', 5);
489
+ engine.block.setFloat(starShape, 'shape/star/innerDiameter', 0.5);
490
+
491
+ const yellowFill = engine.block.createFill('color');
492
+ engine.block.setColor(yellowFill, 'fill/color/value', {
493
+ r: 1.0,
494
+ g: 0.8,
495
+ b: 0.0,
496
+ a: 1.0
497
+ });
498
+ engine.block.setFill(starGraphic, yellowFill);
499
+
500
+ engine.block.setWidth(starGraphic, 64);
501
+ engine.block.setHeight(starGraphic, 64);
502
+ engine.block.appendChild(page, starGraphic);
503
+ engine.block.setPositionX(starGraphic, 154);
504
+ engine.block.setPositionY(starGraphic, 10);
505
+ ```
506
+
507
+ The `points` property (minimum 3) sets the number of points. The `innerDiameter` (0.0 to 1.0) controls point sharpness.
508
+
509
+ ### Polygon: Number of Sides
510
+
511
+ Configure polygons by setting the number of sides:
512
+
513
+ ```typescript highlight-create-polygon
514
+ const polygonGraphic = engine.block.create('graphic');
515
+ const polygonShape = engine.block.createShape('polygon');
516
+ engine.block.setShape(polygonGraphic, polygonShape);
517
+
518
+ engine.block.setInt(polygonShape, 'shape/polygon/sides', 8);
519
+
520
+ const greenFill = engine.block.createFill('color');
521
+ engine.block.setColor(greenFill, 'fill/color/value', {
522
+ r: 0.2,
523
+ g: 0.8,
524
+ b: 0.3,
525
+ a: 1.0
526
+ });
527
+ engine.block.setFill(polygonGraphic, greenFill);
528
+
529
+ engine.block.setWidth(polygonGraphic, 64);
530
+ engine.block.setHeight(polygonGraphic, 64);
531
+ engine.block.appendChild(page, polygonGraphic);
532
+ engine.block.setPositionX(polygonGraphic, 226);
533
+ engine.block.setPositionY(polygonGraphic, 10);
534
+ ```
535
+
536
+ ### Vector Paths: Custom SVG Paths
537
+
538
+ Create custom shapes using SVG path data:
539
+
540
+ ```typescript highlight-create-vector-path
541
+ const vectorPathGraphic = engine.block.create('graphic');
542
+ const vectorPathShape = engine.block.createShape('vector_path');
543
+ engine.block.setShape(vectorPathGraphic, vectorPathShape);
544
+
545
+ engine.block.setString(
546
+ vectorPathShape,
547
+ 'shape/vector_path/path',
548
+ 'M 0,0 L 100,50 L 0,100 Z'
549
+ );
550
+
551
+ const orangeFill = engine.block.createFill('color');
552
+ engine.block.setColor(orangeFill, 'fill/color/value', {
553
+ r: 1.0,
554
+ g: 0.5,
555
+ b: 0.0,
556
+ a: 1.0
557
+ });
558
+ engine.block.setFill(vectorPathGraphic, orangeFill);
559
+
560
+ engine.block.setWidth(vectorPathGraphic, 64);
561
+ engine.block.setHeight(vectorPathGraphic, 64);
562
+ engine.block.appendChild(page, vectorPathGraphic);
563
+ engine.block.setPositionX(vectorPathGraphic, 82);
564
+ engine.block.setPositionY(vectorPathGraphic, 82);
565
+ ```
566
+
567
+ Vector paths support single-path SVG data only. For complex multi-path graphics, use image fills with SVG files.
568
+
569
+ ## Combining Shapes with Fills
570
+
571
+ ### Why Fills Matter
572
+
573
+ Shapes define geometry but remain invisible without fills. Fills provide the visual content that makes shapes visible on the canvas.
574
+
575
+ ### Shape and Fill Independence
576
+
577
+ Shapes and fills operate independently—change one without affecting the other. We can replace a shape while keeping its fill, or change a fill while maintaining the shape geometry. This enables flexible design workflows where shapes and fills can be modified separately.
578
+
579
+ For comprehensive fill system documentation, see the [Fills Overview](./fills/overview.md) guide.
580
+
581
+ ## Managing Shapes
582
+
583
+ ### Retrieving Shapes
584
+
585
+ We can access the current shape on any graphic block:
586
+
587
+ ```typescript
588
+ // Get the shape ID from a graphic block
589
+ const shapeId = engine.block.getShape(graphic);
590
+
591
+ // Check what type of shape it is
592
+ const shapeType = engine.block.getType(shapeId);
593
+ // Returns: '//ly.img.ubq/shape/rect' or similar
594
+ ```
595
+
596
+ Use this pattern to inspect and modify existing shapes.
597
+
598
+ ### Replacing Shapes
599
+
600
+ Replace shapes by applying the new shape first, then destroying the old one:
601
+
602
+ ```typescript
603
+ const oldShape = engine.block.getShape(graphic);
604
+ const newShape = engine.block.createShape('ellipse');
605
+
606
+ engine.block.setShape(graphic, newShape);
607
+ engine.block.destroy(oldShape);
608
+ ```
609
+
610
+ Always destroy old shapes after replacement to prevent memory leaks.
611
+
612
+ ### Positioning and Transforms
613
+
614
+ Transforms apply to the graphic block. The shape geometry scales automatically:
615
+
616
+ ```typescript
617
+ const page = engine.block.findByType('page')[0];
618
+ engine.block.appendChild(page, graphic);
619
+
620
+ engine.block.setPositionX(graphic, 100);
621
+ engine.block.setPositionY(graphic, 100);
622
+ engine.block.setRotation(graphic, Math.PI / 4);
623
+ engine.block.setWidth(graphic, 200);
624
+ engine.block.setHeight(graphic, 200);
625
+ ```
626
+
627
+ ## Troubleshooting
628
+
629
+ ### Shape Not Visible
630
+
631
+ If your shape doesn't appear, verify these requirements:
632
+
633
+ **Check fill is applied:**
634
+
635
+ ```typescript
636
+ const fill = engine.block.getFill(graphic);
637
+ if (!fill) {
638
+ const colorFill = engine.block.createFill('color');
639
+ engine.block.setColor(colorFill, 'fill/color/value', {
640
+ r: 1,
641
+ g: 0,
642
+ b: 0,
643
+ a: 1
644
+ });
645
+ engine.block.setFill(graphic, colorFill);
646
+ }
647
+ ```
648
+
649
+ **Check dimensions:**
650
+
651
+ ```typescript
652
+ const width = engine.block.getWidth(graphic);
653
+ const height = engine.block.getHeight(graphic);
654
+ if (width === 0 || height === 0) {
655
+ engine.block.setWidth(graphic, 100);
656
+ engine.block.setHeight(graphic, 100);
657
+ }
658
+ ```
659
+
660
+ **Check scene hierarchy:**
661
+
662
+ ```typescript
663
+ const parent = engine.block.getParent(graphic);
664
+ if (!parent) {
665
+ const page = engine.block.findByType('page')[0];
666
+ engine.block.appendChild(page, graphic);
667
+ }
668
+ ```
669
+
670
+ ### Cannot Apply Shape
671
+
672
+ Verify the block type supports shapes:
673
+
674
+ ```typescript
675
+ if (!engine.block.supportsShape(blockId)) {
676
+ console.error('This block type does not support shapes');
677
+ // Use a graphic block instead
678
+ const graphic = engine.block.create('graphic');
679
+ }
680
+ ```
681
+
682
+ ### Shape Properties Not Changing
683
+
684
+ Use the correct setter method for each property type:
685
+
686
+ ```typescript
687
+ // Integer properties
688
+ engine.block.setInt(shape, 'shape/polygon/sides', 5);
689
+
690
+ // Float properties
691
+ engine.block.setFloat(shape, 'shape/star/innerDiameter', 0.5);
692
+
693
+ // String properties
694
+ engine.block.setString(shape, 'shape/vector_path/path', 'M 0,0 L 100,100');
695
+ ```
696
+
697
+ List available properties first if you're unsure:
698
+
699
+ ```typescript
700
+ const properties = engine.block.findAllProperties(shape);
701
+ console.log('Available properties:', properties);
702
+ ```
703
+
704
+ ## API Reference
705
+
706
+ | Method | Description | Returns |
707
+ | ------------------------------------- | ------------------------------ | ----------------- |
708
+ | `block.create('graphic')` | Create a new graphic block | Block ID (number) |
709
+ | `block.createShape(type)` | Create shape of specified type | Shape ID (number) |
710
+ | `block.setShape(block, shape)` | Apply shape to graphic block | void |
711
+ | `block.getShape(block)` | Get shape attached to block | Shape ID (number) |
712
+ | `block.supportsShape(block)` | Check if block supports shapes | boolean |
713
+ | `block.getType(shape)` | Get shape type identifier | string |
714
+ | `block.findAllProperties(shape)` | List available properties | string\[] |
715
+ | `block.setInt(shape, prop, value)` | Set integer property | void |
716
+ | `block.setFloat(shape, prop, value)` | Set float property | void |
717
+ | `block.setString(shape, prop, value)` | Set string property | void |
718
+ | `block.destroy(shape)` | Destroy shape and free memory | void |
719
+
720
+ ## Ellipse Type
721
+
722
+ A shape block representing an ellipse.
723
+
724
+ This section describes the properties available for the **Ellipse Type** (`//ly.img.ubq/shape/ellipse`) block type.
725
+
726
+ | Property | Type | Default | Description |
727
+ | -------------------------- | ---- | ------- | ----------- |
728
+ | _(no specific properties)_ | | | |
729
+
730
+ ## Line Type
731
+
732
+ A shape block representing a line.
733
+
734
+ This section describes the properties available for the **Line Type** (`//ly.img.ubq/shape/line`) block type.
735
+
736
+ | Property | Type | Default | Description |
737
+ | -------------------------- | ---- | ------- | ----------- |
738
+ | _(no specific properties)_ | | | |
739
+
740
+ ## Polygon Type
741
+
742
+ A shape block representing a polygon.
743
+
744
+ This section describes the properties available for the **Polygon Type** (`//ly.img.ubq/shape/polygon`) block type.
745
+
746
+ | Property | Type | Default | Description |
747
+ | ---------------------------- | ------- | ------- | ---------------------------------------------------- |
748
+ | `shape/polygon/cornerRadius` | `Float` | `0` | The radius for rounding the corners of the shape. |
749
+ | `shape/polygon/sides` | `Int` | `5` | The number of sides the polygon is supposed to have. |
750
+
751
+ ## Rect Type
752
+
753
+ A shape block representing a rectangle.
754
+
755
+ This section describes the properties available for the **Rect Type** (`//ly.img.ubq/shape/rect`) block type.
756
+
757
+ | Property | Type | Default | Description |
758
+ | --------------------------- | ------- | ------- | -------------------------------------------------------------- |
759
+ | `shape/rect/cornerRadiusBL` | `Float` | `0` | The bottom-left radius for rounding the corners of the shape. |
760
+ | `shape/rect/cornerRadiusBR` | `Float` | `0` | The bottom-right radius for rounding the corners of the shape. |
761
+ | `shape/rect/cornerRadiusTL` | `Float` | `0` | The top-left radius for rounding the corners of the shape. |
762
+ | `shape/rect/cornerRadiusTR` | `Float` | `0` | The top-right radius for rounding the corners of the shape. |
763
+
764
+ ## Star Type
765
+
766
+ A shape block representing a star.
767
+
768
+ This section describes the properties available for the **Star Type** (`//ly.img.ubq/shape/star`) block type.
769
+
770
+ | Property | Type | Default | Description |
771
+ | -------------------------- | ------- | ------- | ------------------------------------------------ |
772
+ | `shape/star/innerDiameter` | `Float` | `0.5` | The inner diameter of the star. |
773
+ | `shape/star/points` | `Int` | `5` | The number of tips the star is supposed to have. |
774
+
775
+ ## Vector Path Type
776
+
777
+ A shape block representing a custom vector path.
778
+
779
+ This section describes the properties available for the **Vector Path Type** (`//ly.img.ubq/shape/vector_path`) block type.
780
+
781
+ | Property | Type | Default | Description |
782
+ | -------------------------- | -------- | ------- | ------------------------------------------------------ |
783
+ | `shape/vector_path/height` | `Float` | `100` | The coordinate bounds in y direction. |
784
+ | `shape/vector_path/path` | `String` | `""` | The path string, accepts a subset of svg path strings. |
785
+ | `shape/vector_path/width` | `Float` | `100` | The coordinate bounds in x direction. |
786
+
787
+ ---
788
+
789
+ ## More Resources
790
+
791
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
792
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
793
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
794
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support