@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,751 @@
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) > [Colors](./colors.md) > [For Print](./colors/for-print.md) > [Spot Colors](./colors/for-print/spot.md)
4
+
5
+ ---
6
+
7
+ Define and manage spot colors programmatically for professional print workflows with exact color matching through premixed inks.
8
+
9
+ ![Spot Colors example showing blocks with various spot color fills and tints](https://img.ly/docs/cesdk/./assets/browser.hero.webp)
10
+
11
+ > **Reading time:** 10 minutes
12
+ >
13
+ > **Resources:**
14
+ >
15
+ > - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
16
+ > - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-colors-for-print-spot-browser)
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-colors-for-print-spot-browser)
18
+ > - [Live demo](https://img.ly/docs/cesdk/examples/guides-colors-for-print-spot-browser/)
19
+
20
+ Spot colors are named colors reproduced using premixed inks in print production, providing exact color matching that CMYK process colors cannot guarantee. CE.SDK maintains a registry of spot color definitions at the editor level, where each spot color has a name and screen approximations (RGB and/or CMYK) for display purposes. The actual premixed ink is used during printing based on the color name.
21
+
22
+ ```typescript file=@cesdk_web_examples/guides-colors-for-print-spot-browser/browser.ts reference-only
23
+ import type {
24
+ EditorPlugin,
25
+ EditorPluginContext,
26
+ SpotColor
27
+ } from '@cesdk/cesdk-js';
28
+ import {
29
+ BlurAssetSource,
30
+ ColorPaletteAssetSource,
31
+ CropPresetsAssetSource,
32
+ DemoAssetSources,
33
+ EffectsAssetSource,
34
+ FiltersAssetSource,
35
+ PagePresetsAssetSource,
36
+ StickerAssetSource,
37
+ TextAssetSource,
38
+ TextComponentAssetSource,
39
+ TypefaceAssetSource,
40
+ UploadAssetSources,
41
+ VectorShapeAssetSource
42
+ } from '@cesdk/cesdk-js/plugins';
43
+ import { DesignEditorConfig } from './design-editor/plugin';
44
+ import packageJson from './package.json';
45
+
46
+ // Type guard to check if a color is a SpotColor
47
+ // Color can be RGBAColor, CMYKColor, or SpotColor
48
+ const isSpotColor = (color: unknown): color is SpotColor => {
49
+ return (
50
+ typeof color === 'object' &&
51
+ color !== null &&
52
+ 'name' in color &&
53
+ 'tint' in color &&
54
+ 'externalReference' in color
55
+ );
56
+ };
57
+
58
+ /**
59
+ * CE.SDK Plugin: Spot Colors Guide
60
+ *
61
+ * This example demonstrates:
62
+ * - Defining spot colors with RGB and CMYK approximations
63
+ * - Applying spot colors to fills, strokes, and shadows
64
+ * - Using tints for lighter color variations
65
+ * - Querying and updating spot color definitions
66
+ * - Removing spot colors and handling the magenta fallback
67
+ * - Assigning spot colors to cutout types
68
+ */
69
+ class Example implements EditorPlugin {
70
+ name = packageJson.name;
71
+
72
+ version = packageJson.version;
73
+
74
+ async initialize({ cesdk }: EditorPluginContext): Promise<void> {
75
+ if (!cesdk) {
76
+ throw new Error('CE.SDK instance is required for this plugin');
77
+ }
78
+
79
+ await cesdk.addPlugin(new DesignEditorConfig());
80
+ // Add asset source plugins
81
+ await cesdk.addPlugin(new BlurAssetSource());
82
+ await cesdk.addPlugin(new ColorPaletteAssetSource());
83
+ await cesdk.addPlugin(new CropPresetsAssetSource());
84
+ await cesdk.addPlugin(
85
+ new UploadAssetSources({ include: ['ly.img.image.upload'] })
86
+ );
87
+ await cesdk.addPlugin(
88
+ new DemoAssetSources({
89
+ include: [
90
+ 'ly.img.templates.blank.*',
91
+ 'ly.img.templates.presentation.*',
92
+ 'ly.img.templates.print.*',
93
+ 'ly.img.templates.social.*',
94
+ 'ly.img.image.*'
95
+ ]
96
+ })
97
+ );
98
+ await cesdk.addPlugin(new EffectsAssetSource());
99
+ await cesdk.addPlugin(new FiltersAssetSource());
100
+ await cesdk.addPlugin(new PagePresetsAssetSource());
101
+ await cesdk.addPlugin(new StickerAssetSource());
102
+ await cesdk.addPlugin(new TextAssetSource());
103
+ await cesdk.addPlugin(new TextComponentAssetSource());
104
+ await cesdk.addPlugin(new TypefaceAssetSource());
105
+ await cesdk.addPlugin(new VectorShapeAssetSource());
106
+
107
+ // Create a design scene using CE.SDK convenience method
108
+ await cesdk.actions.run('scene.create', {
109
+ page: { width: 800, height: 600, unit: 'Pixel' }
110
+ });
111
+
112
+ const engine = cesdk.engine;
113
+
114
+ // Get the page
115
+ const pages = engine.block.findByType('page');
116
+ const page = pages[0];
117
+ if (!page) {
118
+ throw new Error('No page found');
119
+ }
120
+
121
+ // Set page background to light gray for visibility
122
+ const pageFill = engine.block.getFill(page);
123
+ engine.block.setColor(pageFill, 'fill/color/value', {
124
+ r: 0.95,
125
+ g: 0.95,
126
+ b: 0.95,
127
+ a: 1.0
128
+ });
129
+
130
+ // Helper function to create a graphic block with a color fill
131
+ const createColorBlock = (
132
+ x: number,
133
+ y: number,
134
+ width: number,
135
+ height: number,
136
+ shape: 'rect' | 'ellipse' = 'rect'
137
+ ): { block: number; fill: number } => {
138
+ const block = engine.block.create('graphic');
139
+ const blockShape = engine.block.createShape(shape);
140
+ engine.block.setShape(block, blockShape);
141
+ engine.block.setWidth(block, width);
142
+ engine.block.setHeight(block, height);
143
+ engine.block.setPositionX(block, x);
144
+ engine.block.setPositionY(block, y);
145
+ engine.block.appendChild(page, block);
146
+
147
+ const colorFill = engine.block.createFill('color');
148
+ engine.block.setFill(block, colorFill);
149
+
150
+ return { block, fill: colorFill };
151
+ };
152
+
153
+ // Define a spot color with RGB approximation
154
+ // RGB values range from 0.0 to 1.0
155
+ engine.editor.setSpotColorRGB('Brand-Primary', 0.8, 0.1, 0.2);
156
+
157
+ // Add CMYK approximation for the same spot color
158
+ // This provides print-accurate preview in addition to screen display
159
+ engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
160
+
161
+ // Define another spot color with both approximations
162
+ engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
163
+ engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
164
+
165
+ // Apply spot colors to fills using SpotColor objects
166
+ // The tint property (0.0 to 1.0) controls color intensity
167
+ // The externalReference field stores metadata like color system origin
168
+ const brandPrimary: SpotColor = {
169
+ name: 'Brand-Primary',
170
+ tint: 1.0,
171
+ externalReference: ''
172
+ };
173
+
174
+ // Create a block and apply the Brand-Primary spot color
175
+ const { fill: primaryFill } = createColorBlock(50, 50, 150, 150);
176
+ engine.block.setColor(primaryFill, 'fill/color/value', brandPrimary);
177
+
178
+ // Apply Brand-Accent to another block
179
+ const brandAccent: SpotColor = {
180
+ name: 'Brand-Accent',
181
+ tint: 1.0,
182
+ externalReference: ''
183
+ };
184
+ const { fill: accentFill } = createColorBlock(220, 50, 150, 150);
185
+ engine.block.setColor(accentFill, 'fill/color/value', brandAccent);
186
+
187
+ // Use tints for lighter variations without defining new spot colors
188
+ // Tint of 0.5 gives 50% color intensity
189
+ const brandPrimaryHalfTint: SpotColor = {
190
+ name: 'Brand-Primary',
191
+ tint: 0.5,
192
+ externalReference: ''
193
+ };
194
+ const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
195
+ engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
196
+
197
+ // Create a gradient of tints
198
+ const brandAccentLightTint: SpotColor = {
199
+ name: 'Brand-Accent',
200
+ tint: 0.3,
201
+ externalReference: ''
202
+ };
203
+ const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
204
+ engine.block.setColor(
205
+ lightTintFill,
206
+ 'fill/color/value',
207
+ brandAccentLightTint
208
+ );
209
+
210
+ // Apply spot colors to strokes and shadows
211
+ const { block: strokeBlock, fill: strokeBlockFill } = createColorBlock(
212
+ 50,
213
+ 220,
214
+ 150,
215
+ 150
216
+ );
217
+ // Set fill to white
218
+ engine.block.setColor(strokeBlockFill, 'fill/color/value', {
219
+ r: 1.0,
220
+ g: 1.0,
221
+ b: 1.0,
222
+ a: 1.0
223
+ });
224
+
225
+ // Enable stroke and apply spot color
226
+ engine.block.setStrokeEnabled(strokeBlock, true);
227
+ engine.block.setStrokeWidth(strokeBlock, 8);
228
+ const strokeColor: SpotColor = {
229
+ name: 'Brand-Primary',
230
+ tint: 1.0,
231
+ externalReference: ''
232
+ };
233
+ engine.block.setColor(strokeBlock, 'stroke/color', strokeColor);
234
+
235
+ // Apply spot color to drop shadow
236
+ const { block: shadowBlock, fill: shadowBlockFill } = createColorBlock(
237
+ 220,
238
+ 220,
239
+ 150,
240
+ 150
241
+ );
242
+ engine.block.setColor(shadowBlockFill, 'fill/color/value', {
243
+ r: 0.95,
244
+ g: 0.95,
245
+ b: 0.95,
246
+ a: 1.0
247
+ });
248
+
249
+ engine.block.setDropShadowEnabled(shadowBlock, true);
250
+ engine.block.setDropShadowOffsetX(shadowBlock, 10);
251
+ engine.block.setDropShadowOffsetY(shadowBlock, 10);
252
+ engine.block.setDropShadowBlurRadiusX(shadowBlock, 15);
253
+ engine.block.setDropShadowBlurRadiusY(shadowBlock, 15);
254
+ const shadowColor: SpotColor = {
255
+ name: 'Brand-Accent',
256
+ tint: 0.8,
257
+ externalReference: ''
258
+ };
259
+ engine.block.setColor(shadowBlock, 'dropShadow/color', shadowColor);
260
+
261
+ // Query all defined spot colors
262
+ const spotColors = engine.editor.findAllSpotColors();
263
+ // eslint-disable-next-line no-console
264
+ console.log('Defined spot colors:', spotColors);
265
+
266
+ // Query RGB approximation for a spot color
267
+ const rgbaApprox = engine.editor.getSpotColorRGBA('Brand-Primary');
268
+ // eslint-disable-next-line no-console
269
+ console.log('Brand-Primary RGB approximation:', rgbaApprox);
270
+
271
+ // Query CMYK approximation for a spot color
272
+ const cmykApprox = engine.editor.getSpotColorCMYK('Brand-Primary');
273
+ // eslint-disable-next-line no-console
274
+ console.log('Brand-Primary CMYK approximation:', cmykApprox);
275
+
276
+ // Read back the color from a block and check if it's a spot color
277
+ const retrievedColor = engine.block.getColor(
278
+ primaryFill,
279
+ 'fill/color/value'
280
+ );
281
+ if (isSpotColor(retrievedColor)) {
282
+ // eslint-disable-next-line no-console
283
+ console.log(
284
+ `Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
285
+ );
286
+ }
287
+
288
+ // Update an existing spot color's approximation
289
+ // This changes how the color appears on screen without affecting the color name
290
+ engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
291
+ // eslint-disable-next-line no-console
292
+ console.log('Updated Brand-Accent RGB approximation');
293
+
294
+ // Show the updated color in a new block
295
+ const { fill: updatedFill } = createColorBlock(390, 220, 150, 150);
296
+ const updatedAccent: SpotColor = {
297
+ name: 'Brand-Accent',
298
+ tint: 1.0,
299
+ externalReference: ''
300
+ };
301
+ engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
302
+
303
+ // Define a temporary spot color
304
+ engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
305
+
306
+ // Create a block using the temporary color
307
+ const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
308
+ const tempColor: SpotColor = {
309
+ name: 'Temporary-Color',
310
+ tint: 1.0,
311
+ externalReference: ''
312
+ };
313
+ engine.block.setColor(tempFill, 'fill/color/value', tempColor);
314
+
315
+ // Remove the spot color definition
316
+ // Blocks using this color will display magenta (default fallback)
317
+ engine.editor.removeSpotColor('Temporary-Color');
318
+
319
+ // eslint-disable-next-line no-console
320
+ console.log('Removed Temporary-Color - block now shows magenta fallback');
321
+
322
+ // Verify the color is no longer defined
323
+ const remainingSpotColors = engine.editor.findAllSpotColors();
324
+ // eslint-disable-next-line no-console
325
+ console.log('Remaining spot colors:', remainingSpotColors);
326
+
327
+ // Assign spot colors to cutout types for die-cutting operations
328
+ // First define a spot color for the die line
329
+ engine.editor.setSpotColorRGB('DieLine', 1.0, 0.0, 1.0);
330
+ engine.editor.setSpotColorCMYK('DieLine', 0.0, 1.0, 0.0, 0.0);
331
+
332
+ // Associate the spot color with a cutout type
333
+ // CutoutType can be 'Solid' or 'Dashed'
334
+ engine.editor.setSpotColorForCutoutType('Solid', 'DieLine');
335
+
336
+ // Query the assigned spot color
337
+ const cutoutSpotColor = engine.editor.getSpotColorForCutoutType('Solid');
338
+ // eslint-disable-next-line no-console
339
+ console.log('Cutout type Solid uses spot color:', cutoutSpotColor);
340
+
341
+ // Create a legend block with text
342
+ const textBlock = engine.block.create('text');
343
+ engine.block.replaceText(textBlock, 'Spot Colors Demo');
344
+ engine.block.setTextFontSize(textBlock, 36);
345
+ engine.block.setWidthMode(textBlock, 'Auto');
346
+ engine.block.setHeightMode(textBlock, 'Auto');
347
+ engine.block.setPositionX(textBlock, 50);
348
+ engine.block.setPositionY(textBlock, 400);
349
+ engine.block.appendChild(page, textBlock);
350
+
351
+ // Create smaller label texts
352
+ const labels = [
353
+ { text: 'Brand-Primary', x: 50, y: 205 },
354
+ { text: 'Brand-Accent', x: 220, y: 205 },
355
+ { text: 'Primary 50%', x: 390, y: 205 },
356
+ { text: 'Accent 30%', x: 560, y: 205 },
357
+ { text: 'Stroke', x: 50, y: 375 },
358
+ { text: 'Shadow', x: 220, y: 375 },
359
+ { text: 'Updated', x: 390, y: 375 },
360
+ { text: 'Removed', x: 560, y: 375 }
361
+ ];
362
+
363
+ for (const label of labels) {
364
+ const labelBlock = engine.block.create('text');
365
+ engine.block.replaceText(labelBlock, label.text);
366
+ engine.block.setTextFontSize(labelBlock, 14);
367
+ engine.block.setWidthMode(labelBlock, 'Auto');
368
+ engine.block.setHeightMode(labelBlock, 'Auto');
369
+ engine.block.setPositionX(labelBlock, label.x);
370
+ engine.block.setPositionY(labelBlock, label.y);
371
+ engine.block.appendChild(page, labelBlock);
372
+ }
373
+
374
+ // Zoom to fit all content
375
+ await engine.scene.zoomToBlock(page, {
376
+ padding: {
377
+ left: 40,
378
+ top: 40,
379
+ right: 40,
380
+ bottom: 40
381
+ }
382
+ });
383
+ }
384
+ }
385
+
386
+ export default Example;
387
+ ```
388
+
389
+ This guide covers how to define spot colors with RGB and CMYK approximations, apply them to design elements with varying tints, query and update definitions, and assign spot colors to cutout types for die-cutting operations.
390
+
391
+ ## Understanding Spot Colors
392
+
393
+ Spot colors differ from CMYK process colors in several important ways:
394
+
395
+ - **Exact color matching** - Premixed inks guarantee consistent color reproduction across print runs
396
+ - **Brand consistency** - Essential for logos and brand colors (e.g., Pantone colors)
397
+ - **Specialty effects** - Enable metallic, fluorescent, and other specialty inks
398
+ - **Color gamut** - Some colors are unreproducible with CMYK process inks
399
+
400
+ In CE.SDK, spot colors have three components:
401
+
402
+ - **Name** - The identifier used in print output (e.g., "Pantone-485-C")
403
+ - **Approximations** - RGB and/or CMYK values for screen display
404
+ - **Tint** - A value from 0.0 to 1.0 controlling color intensity
405
+
406
+ ## Define Spot Colors
407
+
408
+ ### RGB Approximation
409
+
410
+ We register spot colors using `engine.editor.setSpotColorRGB()`. This creates a new spot color if the name doesn't exist, or updates the approximation if it does.
411
+
412
+ ```typescript highlight-define-spot-rgb
413
+ // Define a spot color with RGB approximation
414
+ // RGB values range from 0.0 to 1.0
415
+ engine.editor.setSpotColorRGB('Brand-Primary', 0.8, 0.1, 0.2);
416
+ ```
417
+
418
+ RGB approximations display the spot color on screen during editing. The values range from 0.0 to 1.0 for each channel.
419
+
420
+ ### CMYK Approximation
421
+
422
+ We can add a CMYK approximation using `engine.editor.setSpotColorCMYK()`. This provides print-accurate previews alongside the RGB screen display.
423
+
424
+ ```typescript highlight-define-spot-cmyk
425
+ // Add CMYK approximation for the same spot color
426
+ // This provides print-accurate preview in addition to screen display
427
+ engine.editor.setSpotColorCMYK('Brand-Primary', 0.05, 0.95, 0.85, 0.0);
428
+
429
+ // Define another spot color with both approximations
430
+ engine.editor.setSpotColorRGB('Brand-Accent', 0.2, 0.4, 0.8);
431
+ engine.editor.setSpotColorCMYK('Brand-Accent', 0.75, 0.5, 0.0, 0.0);
432
+ ```
433
+
434
+ For best results, provide both RGB and CMYK approximations for each spot color. RGB displays on screen while CMYK enables accurate print preview.
435
+
436
+ ## Apply Spot Colors to Design Elements
437
+
438
+ We apply spot colors to blocks using `engine.block.setColor()` with a SpotColor object containing `name`, `tint`, and `externalReference`.
439
+
440
+ ```typescript highlight-apply-spot-fill
441
+ // Apply spot colors to fills using SpotColor objects
442
+ // The tint property (0.0 to 1.0) controls color intensity
443
+ // The externalReference field stores metadata like color system origin
444
+ const brandPrimary: SpotColor = {
445
+ name: 'Brand-Primary',
446
+ tint: 1.0,
447
+ externalReference: ''
448
+ };
449
+
450
+ // Create a block and apply the Brand-Primary spot color
451
+ const { fill: primaryFill } = createColorBlock(50, 50, 150, 150);
452
+ engine.block.setColor(primaryFill, 'fill/color/value', brandPrimary);
453
+ ```
454
+
455
+ The SpotColor object has these properties:
456
+
457
+ - **name** - Must match a defined spot color exactly (case-sensitive)
458
+ - **tint** - Controls intensity from 0.0 (transparent) to 1.0 (full strength)
459
+ - **externalReference** - Optional metadata like the color system origin (e.g., "Pantone")
460
+
461
+ > **Note:** The spot color must be defined before applying it to blocks. Undefined spot colors display as magenta—the default fallback color.
462
+
463
+ ### Using Tints
464
+
465
+ Tints create lighter variations without defining separate spot colors for each shade. A tint of 0.5 gives 50% color intensity.
466
+
467
+ ```typescript highlight-tint
468
+ // Use tints for lighter variations without defining new spot colors
469
+ // Tint of 0.5 gives 50% color intensity
470
+ const brandPrimaryHalfTint: SpotColor = {
471
+ name: 'Brand-Primary',
472
+ tint: 0.5,
473
+ externalReference: ''
474
+ };
475
+ const { fill: tintedFill } = createColorBlock(390, 50, 150, 150, 'ellipse');
476
+ engine.block.setColor(tintedFill, 'fill/color/value', brandPrimaryHalfTint);
477
+
478
+ // Create a gradient of tints
479
+ const brandAccentLightTint: SpotColor = {
480
+ name: 'Brand-Accent',
481
+ tint: 0.3,
482
+ externalReference: ''
483
+ };
484
+ const { fill: lightTintFill } = createColorBlock(560, 50, 150, 150);
485
+ engine.block.setColor(lightTintFill, 'fill/color/value', brandAccentLightTint);
486
+ ```
487
+
488
+ Use tints for:
489
+
490
+ - Color variations in design systems
491
+ - Lighter backgrounds using brand colors
492
+ - Gradient-like effects with consistent spot color names
493
+
494
+ ### Strokes and Shadows
495
+
496
+ Spot colors work with any color property, including strokes and drop shadows.
497
+
498
+ ```typescript highlight-stroke-shadow
499
+ // Apply spot colors to strokes and shadows
500
+ const { block: strokeBlock, fill: strokeBlockFill } = createColorBlock(
501
+ 50,
502
+ 220,
503
+ 150,
504
+ 150
505
+ );
506
+ // Set fill to white
507
+ engine.block.setColor(strokeBlockFill, 'fill/color/value', {
508
+ r: 1.0,
509
+ g: 1.0,
510
+ b: 1.0,
511
+ a: 1.0
512
+ });
513
+
514
+ // Enable stroke and apply spot color
515
+ engine.block.setStrokeEnabled(strokeBlock, true);
516
+ engine.block.setStrokeWidth(strokeBlock, 8);
517
+ const strokeColor: SpotColor = {
518
+ name: 'Brand-Primary',
519
+ tint: 1.0,
520
+ externalReference: ''
521
+ };
522
+ engine.block.setColor(strokeBlock, 'stroke/color', strokeColor);
523
+
524
+ // Apply spot color to drop shadow
525
+ const { block: shadowBlock, fill: shadowBlockFill } = createColorBlock(
526
+ 220,
527
+ 220,
528
+ 150,
529
+ 150
530
+ );
531
+ engine.block.setColor(shadowBlockFill, 'fill/color/value', {
532
+ r: 0.95,
533
+ g: 0.95,
534
+ b: 0.95,
535
+ a: 1.0
536
+ });
537
+
538
+ engine.block.setDropShadowEnabled(shadowBlock, true);
539
+ engine.block.setDropShadowOffsetX(shadowBlock, 10);
540
+ engine.block.setDropShadowOffsetY(shadowBlock, 10);
541
+ engine.block.setDropShadowBlurRadiusX(shadowBlock, 15);
542
+ engine.block.setDropShadowBlurRadiusY(shadowBlock, 15);
543
+ const shadowColor: SpotColor = {
544
+ name: 'Brand-Accent',
545
+ tint: 0.8,
546
+ externalReference: ''
547
+ };
548
+ engine.block.setColor(shadowBlock, 'dropShadow/color', shadowColor);
549
+ ```
550
+
551
+ The `stroke/color` and `dropShadow/color` properties accept the same SpotColor objects as fill colors.
552
+
553
+ ## Query Spot Color Definitions
554
+
555
+ ### List Defined Spot Colors
556
+
557
+ We retrieve all defined spot colors with `engine.editor.findAllSpotColors()`.
558
+
559
+ ```typescript highlight-query-spot
560
+ // Query all defined spot colors
561
+ const spotColors = engine.editor.findAllSpotColors();
562
+ // eslint-disable-next-line no-console
563
+ console.log('Defined spot colors:', spotColors);
564
+
565
+ // Query RGB approximation for a spot color
566
+ const rgbaApprox = engine.editor.getSpotColorRGBA('Brand-Primary');
567
+ // eslint-disable-next-line no-console
568
+ console.log('Brand-Primary RGB approximation:', rgbaApprox);
569
+
570
+ // Query CMYK approximation for a spot color
571
+ const cmykApprox = engine.editor.getSpotColorCMYK('Brand-Primary');
572
+ // eslint-disable-next-line no-console
573
+ console.log('Brand-Primary CMYK approximation:', cmykApprox);
574
+
575
+ // Read back the color from a block and check if it's a spot color
576
+ const retrievedColor = engine.block.getColor(primaryFill, 'fill/color/value');
577
+ if (isSpotColor(retrievedColor)) {
578
+ // eslint-disable-next-line no-console
579
+ console.log(
580
+ `Retrieved SpotColor - Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`
581
+ );
582
+ }
583
+ ```
584
+
585
+ This returns an array of spot color names currently registered in the editor.
586
+
587
+ ### Get Color Approximations
588
+
589
+ Query individual color approximations with `engine.editor.getSpotColorRGBA()` or `engine.editor.getSpotColorCMYK()`.
590
+
591
+ Querying an undefined spot color returns magenta values—use this to detect missing definitions.
592
+
593
+ ### Read Colors from Blocks
594
+
595
+ When reading a color back from a block, `engine.block.getColor()` can return an `RGBAColor`, `CMYKColor`, or `SpotColor`. Use a type guard to check if it's a SpotColor:
596
+
597
+ ```typescript
598
+ const isSpotColor = (color: unknown): color is SpotColor => {
599
+ return (
600
+ typeof color === 'object' &&
601
+ color !== null &&
602
+ 'name' in color &&
603
+ 'tint' in color &&
604
+ 'externalReference' in color
605
+ );
606
+ };
607
+
608
+ const retrievedColor = engine.block.getColor(fill, 'fill/color/value');
609
+ if (isSpotColor(retrievedColor)) {
610
+ console.log(`Name: ${retrievedColor.name}, Tint: ${retrievedColor.tint}`);
611
+ }
612
+ ```
613
+
614
+ ## Update and Remove Spot Colors
615
+
616
+ ### Update Approximations
617
+
618
+ We update spot colors by calling the set methods again with the same name. This changes how the color appears on screen without affecting the color name in the print output.
619
+
620
+ ```typescript highlight-update-spot
621
+ // Update an existing spot color's approximation
622
+ // This changes how the color appears on screen without affecting the color name
623
+ engine.editor.setSpotColorRGB('Brand-Accent', 0.3, 0.5, 0.9);
624
+ // eslint-disable-next-line no-console
625
+ console.log('Updated Brand-Accent RGB approximation');
626
+
627
+ // Show the updated color in a new block
628
+ const { fill: updatedFill } = createColorBlock(390, 220, 150, 150);
629
+ const updatedAccent: SpotColor = {
630
+ name: 'Brand-Accent',
631
+ tint: 1.0,
632
+ externalReference: ''
633
+ };
634
+ engine.block.setColor(updatedFill, 'fill/color/value', updatedAccent);
635
+ ```
636
+
637
+ Existing blocks using that spot color automatically reflect the updated approximation.
638
+
639
+ ### Remove Spot Colors
640
+
641
+ We remove spot colors with `engine.editor.removeSpotColor()` when they're no longer needed.
642
+
643
+ ```typescript highlight-remove-spot
644
+ // Define a temporary spot color
645
+ engine.editor.setSpotColorRGB('Temporary-Color', 0.5, 0.8, 0.3);
646
+
647
+ // Create a block using the temporary color
648
+ const { fill: tempFill } = createColorBlock(560, 220, 150, 150);
649
+ const tempColor: SpotColor = {
650
+ name: 'Temporary-Color',
651
+ tint: 1.0,
652
+ externalReference: ''
653
+ };
654
+ engine.block.setColor(tempFill, 'fill/color/value', tempColor);
655
+
656
+ // Remove the spot color definition
657
+ // Blocks using this color will display magenta (default fallback)
658
+ engine.editor.removeSpotColor('Temporary-Color');
659
+
660
+ // eslint-disable-next-line no-console
661
+ console.log('Removed Temporary-Color - block now shows magenta fallback');
662
+
663
+ // Verify the color is no longer defined
664
+ const remainingSpotColors = engine.editor.findAllSpotColors();
665
+ // eslint-disable-next-line no-console
666
+ console.log('Remaining spot colors:', remainingSpotColors);
667
+ ```
668
+
669
+ Removing a spot color doesn't affect blocks already using it—they display magenta until redefined or until you apply a different color.
670
+
671
+ ## Spot Colors for Cutouts
672
+
673
+ CE.SDK supports assigning spot colors to cutout types for die-cutting, embossing, and other print finishing operations.
674
+
675
+ ```typescript highlight-cutout
676
+ // Assign spot colors to cutout types for die-cutting operations
677
+ // First define a spot color for the die line
678
+ engine.editor.setSpotColorRGB('DieLine', 1.0, 0.0, 1.0);
679
+ engine.editor.setSpotColorCMYK('DieLine', 0.0, 1.0, 0.0, 0.0);
680
+
681
+ // Associate the spot color with a cutout type
682
+ // CutoutType can be 'Solid' or 'Dashed'
683
+ engine.editor.setSpotColorForCutoutType('Solid', 'DieLine');
684
+
685
+ // Query the assigned spot color
686
+ const cutoutSpotColor = engine.editor.getSpotColorForCutoutType('Solid');
687
+ // eslint-disable-next-line no-console
688
+ console.log('Cutout type Solid uses spot color:', cutoutSpotColor);
689
+ ```
690
+
691
+ Use `engine.editor.setSpotColorForCutoutType()` to associate a spot color with a specific cutout type. Available cutout types are `'Solid'` and `'Dashed'`, representing different die-line styles used in print finishing. All cutout blocks of that type automatically use the assigned spot color in the output. Query the assignment with `engine.editor.getSpotColorForCutoutType()`.
692
+
693
+ ## Best Practices
694
+
695
+ **Define early** - Register spot colors at initialization before applying them to blocks. Undefined colors display as magenta, which can confuse users.
696
+
697
+ **Use descriptive names** - Match your print vendor's reference (e.g., "Pantone-485-C") to ensure correct ink matching in production.
698
+
699
+ **Provide both approximations** - RGB for screen display, CMYK for print-accurate previews. This gives designers the best experience across different workflows.
700
+
701
+ **Use tints sparingly** - Prefer tints (0.0-1.0) for lighter variations rather than defining separate spot colors for each shade. This keeps your spot color list manageable.
702
+
703
+ **Validate before export** - Query `findAllSpotColors()` to verify all expected spot colors are defined before exporting for print.
704
+
705
+ ## Troubleshooting
706
+
707
+ ### Spot Color Displays as Magenta
708
+
709
+ The spot color hasn't been defined. Call `setSpotColorRGB()` or `setSpotColorCMYK()` with the color name before applying it to blocks.
710
+
711
+ ### Color Approximation Looks Wrong
712
+
713
+ Update the approximation values using `setSpotColorRGB()` or `setSpotColorCMYK()`. Remember that RGB values are for screen display while CMYK values are for print preview.
714
+
715
+ ### Spot Color Not in Output
716
+
717
+ Verify the spot color name matches exactly (names are case-sensitive). Check that the block is using a SpotColor object, not an RGB or CMYK color value.
718
+
719
+ ### Can't Remove Spot Color
720
+
721
+ Ensure you're using the exact name string. Note that removing a spot color doesn't update existing blocks—they'll show magenta until redefined or replaced with a different color.
722
+
723
+ ## API Reference
724
+
725
+ | Method | Description |
726
+ | ------------------------------------------------------ | ------------------------------------------------ |
727
+ | `engine.editor.setSpotColorRGB(name, r, g, b)` | Define/update spot color with RGB approximation |
728
+ | `engine.editor.setSpotColorCMYK(name, c, m, y, k)` | Define/update spot color with CMYK approximation |
729
+ | `engine.editor.findAllSpotColors()` | Get array of all defined spot color names |
730
+ | `engine.editor.getSpotColorRGBA(name)` | Query RGB approximation for a spot color |
731
+ | `engine.editor.getSpotColorCMYK(name)` | Query CMYK approximation for a spot color |
732
+ | `engine.editor.removeSpotColor(name)` | Remove a spot color from the registry |
733
+ | `engine.editor.setSpotColorForCutoutType(type, color)` | Assign spot color to a cutout type |
734
+ | `engine.editor.getSpotColorForCutoutType(type)` | Get spot color assigned to a cutout type |
735
+ | `engine.block.setColor(block, property, color)` | Apply color (including SpotColor) to a property |
736
+ | `engine.block.getColor(block, property)` | Read color from a block property |
737
+
738
+ ## Next Steps
739
+
740
+ - [Export for Printing](./export-save-publish/for-printing.md) - Export designs with spot colors for professional print production
741
+ - [Apply Colors](./colors/apply.md) - Apply colors to fills, strokes, and shadows
742
+ - [CMYK Colors](./colors/for-print/cmyk.md) - Work with CMYK process colors
743
+
744
+ ---
745
+
746
+ ## More Resources
747
+
748
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
749
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
750
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
751
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support