@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,839 @@
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:** [Starter Kits](./starterkits.md) > [Assets](./starterkits/assets.md) > [Unsplash Editor](./starterkits/unsplash-editor.md)
4
+
5
+ ---
6
+
7
+ CE.SDK can include assets from third-party libraries accessible via API. Search and browse images from Unsplash in the editor.
8
+
9
+ ![Unsplash Editor starter kit showing a design interface with Unsplash images](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/starterkit-unsplash-asset-source-ts-web/archive/refs/tags/release-$UBQ_VERSION$.zip)
16
+ > - [View source on GitHub](https://github.com/imgly/starterkit-unsplash-asset-source-ts-web/tree/release-$UBQ_VERSION$)
17
+ > - [Open in StackBlitz](https://stackblitz.com/github/imgly/starterkit-unsplash-asset-source-ts-web/tree/release-$UBQ_VERSION$)
18
+ > - [Live demo](https://img.ly/docs/cesdk/examples/starterkit-unsplash-asset-source/)
19
+
20
+ ---
21
+
22
+ ## Pre-requisites
23
+
24
+ This guide assumes basic familiarity with JavaScript or TypeScript.
25
+
26
+ - **Node.js v20+** with npm – [Download](https://nodejs.org/)
27
+ - **Supported browsers** – Chrome 114+, Edge 114+, Firefox 115+, Safari 15.6+<br />
28
+ See [Browser Support](./browser-support.md) for the full list
29
+
30
+ ---
31
+
32
+ <Tabs syncKey="project-type">
33
+ <TabItem label="New Project">
34
+ ## Get Started
35
+
36
+ Start fresh with a standalone Unsplash Editor project. This creates a complete, ready-to-run application with Unsplash integration.
37
+
38
+ ## Step 1: Clone the Repository
39
+
40
+ <TerminalTabs>
41
+ <TerminalTab label="git">
42
+ git clone https://github.com/imgly/starterkit-unsplash-asset-source-ts-web.git
43
+ </TerminalTab>
44
+
45
+ <TerminalTab label="degit">
46
+ npx degit imgly/starterkit-unsplash-asset-source-ts-web starterkit-unsplash-asset-source-ts-web
47
+ </TerminalTab>
48
+ </TerminalTabs>
49
+
50
+ The `src/` folder contains the editor code:
51
+
52
+ ```
53
+ src/
54
+ ├── imgly/
55
+ │ ├── config/
56
+ │ │ ├── actions.ts # Export/import actions
57
+ │ │ ├── features.ts # Feature toggles
58
+ │ │ ├── i18n.ts # Translations
59
+ │ │ ├── plugin.ts # Main configuration plugin
60
+ │ │ ├── settings.ts # Engine settings
61
+ │ │ └── ui/
62
+ │ │ ├── canvas.ts # Canvas configuration
63
+ │ │ ├── components.ts # Custom component registration
64
+ │ │ ├── dock.ts # Dock layout configuration
65
+ │ │ ├── index.ts # Combines UI customization exports
66
+ │ │ ├── inspectorBar.ts # Inspector bar layout
67
+ │ │ ├── navigationBar.ts # Navigation bar layout
68
+ │ │ └── panel.ts # Panel configuration
69
+ │ ├── index.ts # Editor initialization function
70
+ │ └── plugins/
71
+ │ └── unsplash.ts
72
+ └── index.ts
73
+ ```
74
+
75
+ ## Step 2: Install Dependencies
76
+
77
+ Install the required packages:
78
+
79
+ <TerminalTabs syncKey="package-manager">
80
+ <TerminalTab label="npm">
81
+ cd starterkit-unsplash-asset-source-ts-web
82
+ npm install
83
+ </TerminalTab>
84
+
85
+ <TerminalTab label="pnpm">
86
+ cd starterkit-unsplash-asset-source-ts-web
87
+ pnpm install
88
+ </TerminalTab>
89
+
90
+ <TerminalTab label="yarn">
91
+ cd starterkit-unsplash-asset-source-ts-web
92
+ yarn
93
+ </TerminalTab>
94
+ </TerminalTabs>
95
+
96
+ ## Step 3: Download Assets
97
+
98
+ CE.SDK requires engine assets (fonts, icons, UI elements) to function. These must be served as static files from your project's `public/` directory.
99
+
100
+ <TerminalTabs>
101
+ <TerminalTab label="Download">
102
+ curl -O https://cdn.img.ly/packages/imgly/cesdk-js/$UBQ\_VERSION$/imgly-assets.zip
103
+ unzip imgly-assets.zip -d public/
104
+ rm imgly-assets.zip
105
+ </TerminalTab>
106
+ </TerminalTabs>
107
+
108
+ > **Asset Configuration:** The starter kit is pre-configured to load assets from `/assets`. If you place assets in a different location, update the `baseURL` in `src/index.ts`.
109
+
110
+ ## Step 4: Configure Unsplash API (Optional)
111
+
112
+ The starter kit includes a demo proxy URL for development. For production, set up your own Unsplash API proxy:
113
+
114
+ 1. Create an Unsplash developer account: [unsplash.com/developers](https://unsplash.com/developers)
115
+ 2. Set up a proxy server to add your API key server-side
116
+ 3. Set the environment variable:
117
+
118
+ ```bash title=".env"
119
+ VITE_UNSPLASH_API_URL=https://your-proxy.example.com
120
+ ```
121
+
122
+ > **API Key Security:** Never expose your Unsplash API key in frontend code. Always use a proxy server to add the key server-side.
123
+
124
+ ## Step 5: Run the Development Server
125
+
126
+ <TerminalTabs syncKey="package-manager">
127
+ <TerminalTab label="npm">
128
+ npm run dev
129
+ </TerminalTab>
130
+
131
+ <TerminalTab label="pnpm">
132
+ pnpm run dev
133
+ </TerminalTab>
134
+
135
+ <TerminalTab label="yarn">
136
+ yarn dev
137
+ </TerminalTab>
138
+ </TerminalTabs>
139
+
140
+ Open `http://localhost:5173` in your browser.
141
+
142
+ </TabItem>
143
+
144
+ <TabItem label="Existing Project">
145
+ ## Get Started
146
+
147
+ Integrate the Unsplash Editor into an existing web application. This adds Unsplash image integration to your current project.
148
+
149
+ ## Step 1: Clone
150
+
151
+ <TerminalTabs>
152
+ <TerminalTab label="Navigate">
153
+ cd your-project
154
+ </TerminalTab>
155
+ </TerminalTabs>
156
+
157
+ Clone the starter kit and copy the editor configuration to your project:
158
+
159
+ <TerminalTabs>
160
+ <TerminalTab label="git">
161
+ git clone https://github.com/imgly/starterkit-unsplash-asset-source-ts-web.git
162
+ cp -r starterkit-unsplash-asset-source-ts-web/src/imgly ./src/imgly
163
+ rm -rf starterkit-unsplash-asset-source-ts-web
164
+ </TerminalTab>
165
+
166
+ <TerminalTab label="degit">
167
+ npx degit imgly/starterkit-unsplash-asset-source-ts-web/src/imgly ./src/imgly
168
+ </TerminalTab>
169
+ </TerminalTabs>
170
+
171
+ > **Adjust Path:** The default destination is `./src/imgly`. Adjust the path to match your project structure.
172
+
173
+ ## Step 2: Install Dependencies
174
+
175
+ Install the required packages for the editor:
176
+
177
+ ### Core Editor
178
+
179
+ Install the Creative Editor SDK:
180
+
181
+ <TerminalTabs syncKey="package-manager">
182
+ <TerminalTab label="npm">
183
+ npm install @cesdk/cesdk-js@$UBQ\_VERSION$
184
+ </TerminalTab>
185
+
186
+ <TerminalTab label="pnpm">
187
+ pnpm add @cesdk/cesdk-js@$UBQ\_VERSION$
188
+ </TerminalTab>
189
+
190
+ <TerminalTab label="yarn">
191
+ yarn add @cesdk/cesdk-js@$UBQ\_VERSION$
192
+ </TerminalTab>
193
+ </TerminalTabs>
194
+
195
+ ### Unsplash Client
196
+
197
+ Add the official Unsplash JavaScript client:
198
+
199
+ <TerminalTabs syncKey="package-manager">
200
+ <TerminalTab label="npm">
201
+ npm install unsplash-js
202
+ </TerminalTab>
203
+
204
+ <TerminalTab label="pnpm">
205
+ pnpm add unsplash-js
206
+ </TerminalTab>
207
+
208
+ <TerminalTab label="yarn">
209
+ yarn add unsplash-js
210
+ </TerminalTab>
211
+ </TerminalTabs>
212
+
213
+ ### Background Removal (Optional)
214
+
215
+ Add AI-powered background removal:
216
+
217
+ <TerminalTabs syncKey="package-manager">
218
+ <TerminalTab label="npm">
219
+ npm install @imgly/background-removal onnxruntime-web
220
+ </TerminalTab>
221
+
222
+ <TerminalTab label="pnpm">
223
+ pnpm add @imgly/background-removal onnxruntime-web
224
+ </TerminalTab>
225
+
226
+ <TerminalTab label="yarn">
227
+ yarn add @imgly/background-removal onnxruntime-web
228
+ </TerminalTab>
229
+ </TerminalTabs>
230
+
231
+ ## Step 3: Download Assets
232
+
233
+ CE.SDK requires engine assets (fonts, icons, UI elements) to function. These must be served as static files from your project's `public/` directory.
234
+
235
+ <TerminalTabs>
236
+ <TerminalTab label="Download">
237
+ curl -O https://cdn.img.ly/packages/imgly/cesdk-js/$UBQ\_VERSION$/imgly-assets.zip
238
+ unzip imgly-assets.zip -d public/
239
+ rm imgly-assets.zip
240
+ </TerminalTab>
241
+ </TerminalTabs>
242
+
243
+ ## Step 4: Add a Container Element
244
+
245
+ Add a container element to your HTML where the editor will be mounted:
246
+
247
+ ```html
248
+ <div id="cesdk_container" style="width: 100%; height: 100vh;"></div>
249
+ ```
250
+
251
+ ## Step 5: Initialize the Editor
252
+
253
+ Import and call the initialization function from your application's entry point:
254
+
255
+ ```typescript title="src/index.ts"
256
+ import CreativeEditorSDK from '@cesdk/cesdk-js';
257
+
258
+ import { initUnsplashEditor } from './imgly';
259
+
260
+ const config = {
261
+ userId: 'your-user-id',
262
+ baseURL: '/assets'
263
+ // license: 'YOUR_LICENSE_KEY',
264
+ };
265
+
266
+ CreativeEditorSDK.create('#cesdk_container', config)
267
+ .then(async (cesdk) => {
268
+ // Option 1: Using environment variables (recommended)
269
+ await initUnsplashEditor(cesdk, {
270
+ unsplashApiUrl: import.meta.env.VITE_UNSPLASH_API_URL
271
+ });
272
+
273
+ // Option 2: Direct configuration
274
+ // await initUnsplashEditor(cesdk, {
275
+ // unsplashApiUrl: 'https://your-proxy.example.com/unsplash'
276
+ // });
277
+
278
+ // Option 3: Use demo proxy (development only)
279
+ // await initUnsplashEditor(cesdk);
280
+ })
281
+ .catch((error) => {
282
+ console.error('Failed to initialize CE.SDK:', error);
283
+ });
284
+ ```
285
+
286
+ </TabItem>
287
+ </Tabs>
288
+
289
+ ## Set Up a Scene
290
+
291
+ CE.SDK offers multiple ways to load content into the editor. Choose the method that matches your use case:
292
+
293
+ ```typescript title="src/index.ts"
294
+ // Create a blank design canvas - starts with an empty design scene
295
+ await cesdk.actions.run('scene.create');
296
+
297
+ // Load from a template archive - restores a previously saved project
298
+ await cesdk.loadFromArchiveURL('https://example.com/template.zip');
299
+
300
+ // Load from an image URL - creates a new scene with the image
301
+ await cesdk.createFromImage('https://example.com/image.jpg');
302
+
303
+ // Load from a scene file - restores a scene from JSON
304
+ await cesdk.loadFromURL('https://example.com/scene.json');
305
+ ```
306
+
307
+ The `createDesignScene()` method is ideal for design workflows, as it creates a blank canvas ready for content.
308
+
309
+ > **More Loading Options:** See [Open the Editor](./open-the-editor.md) for all available loading methods.
310
+
311
+ ## Customize Assets
312
+
313
+ The Unsplash Editor uses asset source plugins to provide built-in libraries for templates, stickers, shapes, and fonts. The starter kit includes a curated selection—customize what's included based on your needs.
314
+
315
+ Asset sources are added via plugins in `src/imgly/index.ts`. Enable or disable individual sources:
316
+
317
+ ```typescript title="src/imgly/index.ts"
318
+ import {
319
+ FiltersAssetSource,
320
+ StickerAssetSource,
321
+ TextAssetSource,
322
+ VectorShapeAssetSource,
323
+ EffectsAssetSource
324
+ // ...
325
+ } from '@cesdk/cesdk-js/plugins';
326
+
327
+ // Add only the sources you need
328
+ await cesdk.addPlugin(new FiltersAssetSource());
329
+ await cesdk.addPlugin(new StickerAssetSource());
330
+ await cesdk.addPlugin(new TextAssetSource());
331
+ await cesdk.addPlugin(new VectorShapeAssetSource());
332
+ await cesdk.addPlugin(new EffectsAssetSource());
333
+ // ...
334
+ ```
335
+
336
+ > **Available Asset Sources:** See [Asset Source Plugins](./plugins/asset-sources.md) for the complete list of available sources.
337
+
338
+ For production deployments, self-hosting assets is required—the IMG.LY CDN is intended for development only. See [Serve Assets](./serve-assets.md) for downloading assets, configuring `baseURL`, and excluding unused sources to optimize load times.
339
+
340
+ ## Configure Actions
341
+
342
+ Actions are functions that handle user interactions like exporting designs, saving scenes, and importing files. CE.SDK provides built-in actions that you can run directly or override with custom implementations.
343
+
344
+ **Key built-in actions:**
345
+
346
+ - `exportDesign` – Export the current design to PNG, JPEG, PDF, or other formats
347
+ - `saveScene` – Save the scene as a JSON string for later editing
348
+ - `importScene` – Import a previously saved scene (supports `.scene` and `.cesdk` formats)
349
+ - `exportScene` – Export the scene as a JSON file or `.cesdk` archive with all assets
350
+ - `uploadFile` – Handle file uploads with progress tracking
351
+
352
+ Use `cesdk.actions.run()` to execute any action:
353
+
354
+ ```typescript
355
+ // Run a built-in action
356
+ await cesdk.actions.run('exportDesign', { mimeType: 'image/png' });
357
+ ```
358
+
359
+ #### Import from File Picker
360
+
361
+ ```typescript title="src/imgly/config/actions.ts"
362
+ // Let users open images from their device
363
+ cesdk.actions.register('importImage', async () => {
364
+ const blobURL = await cesdk.utils.loadFile({
365
+ accept: 'image/*',
366
+ returnType: 'objectURL'
367
+ });
368
+ await cesdk.createFromImage(blobURL);
369
+ });
370
+ ```
371
+
372
+ #### Export and Save
373
+
374
+ ```typescript title="src/imgly/config/actions.ts"
375
+ // Register export action that downloads the edited design
376
+ cesdk.actions.register('exportDesign', async (exportOptions) => {
377
+ const { blobs, options } = await cesdk.utils.export(exportOptions);
378
+ await cesdk.utils.downloadFile(blobs[0], options.mimeType);
379
+ });
380
+ ```
381
+
382
+ #### Upload to Your Backend
383
+
384
+ ```typescript title="src/imgly/config/actions.ts"
385
+ // Override the built-in exportDesign action to send to your server
386
+ cesdk.actions.register('exportDesign', async (exportOptions) => {
387
+ const { blobs } = await cesdk.utils.export(exportOptions);
388
+
389
+ const formData = new FormData();
390
+ formData.append('design', blobs[0], 'design.png');
391
+
392
+ const response = await fetch('/api/upload', {
393
+ method: 'POST',
394
+ body: formData
395
+ });
396
+
397
+ const { url } = await response.json();
398
+ console.log('Uploaded to:', url);
399
+ });
400
+ ```
401
+
402
+ > **Learn More:** See [Actions](./actions.md) for the full list of built-in actions, how to run them, and how to register custom actions.
403
+
404
+ ---
405
+
406
+ ## Unsplash Integration
407
+
408
+ The Unsplash Editor replaces the default image library with Unsplash's extensive collection of free photos.
409
+
410
+ ### How It Works
411
+
412
+ The integration uses the official `unsplash-js` client to fetch images from Unsplash. A custom asset source translates Unsplash API responses to CE.SDK's asset format.
413
+
414
+ ```typescript title="src/imgly/index.ts"
415
+ // Add Unsplash image library integration
416
+ // Requires: npm install unsplash-js
417
+ // Configure: Pass unsplashApiUrl option or set VITE_UNSPLASH_API_URL env var
418
+ await cesdk.addPlugin(
419
+ new UnsplashAssetSourcePlugin({
420
+ apiUrl: options.unsplashApiUrl
421
+ })
422
+ );
423
+ ```
424
+
425
+ ### Search and Browse
426
+
427
+ Users can search Unsplash's library or browse popular images:
428
+
429
+ - **Search**: Type keywords to find relevant photos
430
+ - **Popular**: Browse trending images when no search query is entered
431
+ - **Pagination**: Automatically loads more results as users scroll
432
+
433
+ ### Attribution
434
+
435
+ Unsplash requires photographer attribution for all images. The integration automatically includes:
436
+
437
+ - **Photographer name**: Displayed with each image
438
+ - **Profile link**: Links to the photographer's Unsplash profile
439
+ - **UTM tracking**: Proper referral tracking per Unsplash guidelines
440
+
441
+ ```typescript title="src/imgly/plugins/unsplash.ts"
442
+ export function createUnsplashAssetSource(apiUrl: string): AssetSource {
443
+ return {
444
+ id: 'unsplash',
445
+ findAssets: createFindUnsplashAssets(apiUrl),
446
+
447
+ // Service-level credits (shown in asset library footer)
448
+ credits: {
449
+ name: 'Unsplash',
450
+ url: 'https://unsplash.com/'
451
+ },
452
+
453
+ // License information
454
+ license: {
455
+ name: 'Unsplash license (free)',
456
+ url: 'https://unsplash.com/license'
457
+ }
458
+ };
459
+ }
460
+ ```
461
+
462
+ ---
463
+
464
+ ## Set Up Unsplash Proxy
465
+
466
+ For production use, you must proxy Unsplash API requests through your server. This keeps your API key secure and prevents exposure in client-side code.
467
+
468
+ ### Why a Proxy?
469
+
470
+ - **Security**: API keys should never be in frontend code
471
+ - **Rate limiting**: Control and monitor API usage
472
+ - **Compliance**: Required by Unsplash API guidelines
473
+
474
+ ### Proxy Implementation
475
+
476
+ Create a proxy endpoint that adds your API key. The starter kit includes a complete example at `api/unsplash-proxy-example.ts`:
477
+
478
+ ```typescript title="api/unsplash-proxy.ts"
479
+ // Example serverless function (Vercel, AWS Lambda, etc.)
480
+ export default async function handler(req, res) {
481
+ const apiKey = process.env.UNSPLASH_ACCESS_KEY;
482
+
483
+ const response = await fetch(`https://api.unsplash.com${req.url}`, {
484
+ headers: {
485
+ Authorization: `Client-ID ${apiKey}`
486
+ }
487
+ });
488
+
489
+ const data = await response.json();
490
+ res.json(data);
491
+ }
492
+ ```
493
+
494
+ > **Complete Proxy Example:** See `api/unsplash-proxy-example.ts` in the starter kit for a full implementation with CORS handling, error management, and rate limit header forwarding.
495
+
496
+ ### Configure the Proxy URL
497
+
498
+ You have two options for configuring the Unsplash API proxy URL:
499
+
500
+ **Option 1: Environment Variable (Recommended for new projects)**
501
+
502
+ Set the environment variable to point to your proxy:
503
+
504
+ ```bash title=".env"
505
+ VITE_UNSPLASH_API_URL=https://your-domain.com/api/unsplash
506
+ ```
507
+
508
+ Then pass it to the init function:
509
+
510
+ ```typescript title="src/index.ts"
511
+ await initUnsplashEditor(cesdk, {
512
+ unsplashApiUrl: import.meta.env.VITE_UNSPLASH_API_URL
513
+ });
514
+ ```
515
+
516
+ **Option 2: Direct Configuration (For existing projects)**
517
+
518
+ Pass the proxy URL directly in your code:
519
+
520
+ ```typescript title="src/index.ts"
521
+ await initUnsplashEditor(cesdk, {
522
+ unsplashApiUrl: 'https://your-domain.com/api/unsplash'
523
+ });
524
+ ```
525
+
526
+ **Option 3: Demo Proxy (Development only)**
527
+
528
+ If no URL is provided, the starter kit uses a demo proxy for development:
529
+
530
+ ```typescript title="src/index.ts"
531
+ // Uses demo proxy automatically
532
+ await initUnsplashEditor(cesdk);
533
+ ```
534
+
535
+ > **Demo Proxy Limitations:** The demo proxy is for development only and has rate limits. Set up your own proxy for production use.
536
+
537
+ ---
538
+
539
+ ## Customize (Optional)
540
+
541
+ ### Theming
542
+
543
+ CE.SDK supports light and dark themes out of the box, plus automatic system preference detection. Switch between themes programmatically:
544
+
545
+ ```typescript title="src/imgly/config/settings.ts"
546
+ // 'light' | 'dark' | 'system' | (() => 'light' | 'dark')
547
+ cesdk.ui.setTheme('dark');
548
+ ```
549
+
550
+ See [Theming](./user-interface/appearance/theming.md) for custom color schemes, CSS variables, and advanced styling options.
551
+
552
+ ### Localization
553
+
554
+ Customize UI labels and add support for multiple languages. The i18n system supports translation keys for all UI elements:
555
+
556
+ ```typescript title="src/imgly/config/i18n.ts"
557
+ // Override specific labels
558
+ cesdk.i18n.setTranslations({
559
+ en: {
560
+ 'libraries.unsplash.label': 'Unsplash',
561
+ 'actions.export.image': 'Download Design',
562
+ 'common.cancel': 'Cancel',
563
+ 'common.apply': 'Apply'
564
+ }
565
+ });
566
+
567
+ // Add a new language
568
+ cesdk.i18n.setTranslations({
569
+ de: {
570
+ 'libraries.unsplash.label': 'Unsplash Fotos',
571
+ 'actions.export.image': 'Design herunterladen'
572
+ }
573
+ });
574
+
575
+ // Set the active locale
576
+ cesdk.i18n.setLocale('de');
577
+ ```
578
+
579
+ See [Localization](./user-interface/localization.md) for supported languages, translation key reference, and right-to-left language support.
580
+
581
+ ### UI Layout
582
+
583
+ ![CE.SDK Editor UI Areas](https://img.ly/docs/cesdk/../_shared/assets/CESDK-UI.png)
584
+
585
+ Customize the editor interface by modifying the dock, inspector bar, navigation bar, and canvas menu. CE.SDK provides Order APIs to control which components appear and in what sequence.
586
+
587
+ ```typescript title="src/imgly/config/ui/navigationBar.ts"
588
+ // Get current navigation bar components
589
+ const navOrder = cesdk.ui.getNavigationBarOrder();
590
+
591
+ // Add a custom button to the navigation bar
592
+ cesdk.ui.insertNavigationBarOrderComponent(
593
+ 'ly.img.spacer',
594
+ { id: 'my-custom-action' },
595
+ 'after'
596
+ );
597
+
598
+ // Rearrange dock items
599
+ cesdk.ui.setDockOrder([
600
+ 'ly.img.assetLibrary.dock',
601
+ 'ly.img.separator',
602
+ 'my-custom-dock-item'
603
+ ]);
604
+
605
+ // Customize the inspector bar
606
+ cesdk.ui.setInspectorBarOrder([
607
+ 'ly.img.fill.inspectorBar',
608
+ 'ly.img.separator',
609
+ 'ly.img.filter.inspectorBar'
610
+ ]);
611
+ ```
612
+
613
+ The Order API methods follow a consistent pattern across all UI areas:
614
+
615
+ - `get*Order()` – Retrieve the current component order
616
+ - `set*Order()` – Replace the entire order
617
+ - `insert*OrderComponent()` – Add components relative to existing ones
618
+
619
+ See [Dock](./user-interface/customization/dock.md), [Inspector Bar](./user-interface/customization/inspector-bar.md), [Navigation Bar](./user-interface/customization/navigation-bar.md), [Canvas Menu](./user-interface/customization/canvas-menu.md), and [Canvas](./user-interface/customization/canvas.md) for detailed layout customization options.
620
+
621
+ ### Custom Components
622
+
623
+ Build custom UI components using the builder system and integrate them in the editor. Custom components receive reactive state updates and can interact with the engine API.
624
+
625
+ ```typescript title="src/imgly/config/ui/components.ts"
626
+ // Register a custom component
627
+ cesdk.ui.registerComponent('my-custom-button', ({ builder, engine }) => {
628
+ const selectedBlocks = engine.block.findAllSelected();
629
+
630
+ builder.Button('apply-effect', {
631
+ label: 'Apply Effect',
632
+ isDisabled: selectedBlocks.length === 0,
633
+ onClick: () => {
634
+ // Apply custom logic to selected blocks
635
+ }
636
+ });
637
+ });
638
+
639
+ // Add the component to the navigation bar
640
+ cesdk.ui.insertNavigationBarOrderComponent(
641
+ 'ly.img.spacer',
642
+ 'my-custom-button',
643
+ 'after'
644
+ );
645
+ ```
646
+
647
+ Custom components automatically re-render when the engine state they depend on changes—no manual subscription management required.
648
+
649
+ See [Register New Component](./user-interface/ui-extensions/register-new-component.md) for the complete builder API and component patterns.
650
+
651
+ ### Settings & Features
652
+
653
+ Fine-tune editor behavior through settings and features.
654
+
655
+ **Settings** configure core engine behavior—rendering, input handling, and history management:
656
+
657
+ ```typescript title="src/imgly/config/settings.ts"
658
+ cesdk.engine.editor.setSettingBool('page/dimOutOfPageAreas', true);
659
+ cesdk.engine.editor.setSettingBool('mouse/enableZoomControl', true);
660
+ cesdk.engine.editor.setSettingBool('features/undoHistory', true);
661
+ ```
662
+
663
+ **Features** toggle which editing tools and panels appear in the UI:
664
+
665
+ ```typescript title="src/imgly/config/features.ts"
666
+ // Toggle editor features
667
+ cesdk.feature.enable('ly.img.crop', true);
668
+ cesdk.feature.enable('ly.img.filter', true);
669
+ cesdk.feature.enable('ly.img.adjustment', true);
670
+ ```
671
+
672
+ See [Settings](./settings.md) and [Features](./user-interface/customization/disable-or-enable.md) for the complete reference.
673
+
674
+ ### Explore Plugins
675
+
676
+ CE.SDK has a rich plugin ecosystem that extends the editor with powerful capabilities. Plugins can add new features, integrate third-party services, or customize editor behavior.
677
+
678
+ #### Background Removal
679
+
680
+ Add AI-powered background removal that runs entirely client-side. The background removal plugin processes images directly in the browser without sending data to external servers.
681
+
682
+ ```typescript title="src/imgly/config/plugin.ts"
683
+ import BackgroundRemovalPlugin from '@imgly/plugin-background-removal';
684
+
685
+ // Add background removal capability
686
+ await cesdk.addPlugin(BackgroundRemovalPlugin());
687
+ ```
688
+
689
+ See [Background Removal](./edit-image/remove-bg.md) for setup instructions and configuration options.
690
+
691
+ #### Print Ready PDF
692
+
693
+ Export print-ready PDF/X-3 files with CMYK color profiles for professional printing workflows.
694
+
695
+ ```typescript title="src/imgly/config/plugin.ts"
696
+ import PrintReadyPDFPlugin from '@imgly/plugin-print-ready-pdf';
697
+
698
+ // Add print-ready PDF export capability
699
+ await cesdk.addPlugin(PrintReadyPDFPlugin());
700
+ ```
701
+
702
+ See [Print Ready PDF](./plugins/print-ready-pdf.md) for setup instructions and configuration options.
703
+
704
+ #### AI Integration
705
+
706
+ Extend the editor with generative AI capabilities for text-to-image generation, image enhancement, and intelligent editing features. CE.SDK integrates with various AI providers.
707
+
708
+ ```typescript title="src/imgly/config/plugin.ts"
709
+ import AIPlugin from '@imgly/plugin-ai-generation';
710
+
711
+ // Configure AI generation
712
+ await cesdk.addPlugin(
713
+ AIPlugin({
714
+ provider: 'your-ai-provider',
715
+ apiKey: 'your-api-key'
716
+ })
717
+ );
718
+ ```
719
+
720
+ See [AI Integration](./user-interface/ai-integration.md) for provider setup and supported AI features.
721
+
722
+ #### Discover More Plugins
723
+
724
+ Explore the full plugin ecosystem in the [IMG.LY plugins repository](https://github.com/imgly/plugins). Available plugins include:
725
+
726
+ - **Vectorizer** – Convert raster images to vectors
727
+ - **Design Presets** – Pre-built design templates
728
+ - **Social Media Templates** – Platform-specific sizing
729
+ - **And more** – Check the repository for the latest additions
730
+
731
+ ---
732
+
733
+ ## Key Capabilities
734
+
735
+ The Unsplash Editor combines professional design tools with free stock photography.
736
+
737
+ <CapabilityGrid
738
+ features={[
739
+ {
740
+ title: 'Unsplash Integration',
741
+ description:
742
+ 'Search and use millions of free high-quality photos with automatic attribution handling.',
743
+ imageId: 'asset-libraries',
744
+ },
745
+ {
746
+ title: 'Background Removal',
747
+ description:
748
+ 'AI-powered background removal that runs entirely in the browser.',
749
+ imageId: 'green-screen',
750
+ },
751
+ {
752
+ title: 'Professional Filters',
753
+ description:
754
+ 'Apply color grading with LUT filters, duotone effects, and image adjustments.',
755
+ imageId: 'filters',
756
+ },
757
+ {
758
+ title: 'Text & Typography',
759
+ description:
760
+ 'Add styled text with typography controls, fonts, and visual effects.',
761
+ imageId: 'text-editing',
762
+ },
763
+ {
764
+ title: 'Multi-Page Documents',
765
+ description:
766
+ 'Create presentations, brochures, and multi-page designs.',
767
+ imageId: 'transform',
768
+ },
769
+ {
770
+ title: 'Export Options',
771
+ description:
772
+ 'Export to PNG, JPEG, and PDF with quality and size controls.',
773
+ imageId: 'client-side',
774
+ },
775
+ ]}
776
+ />
777
+
778
+ <br />
779
+
780
+ > **Free Trial:** [Sign up for a free trial](https://img.ly/forms/free-trial) to get a license key and remove the watermark.
781
+
782
+ ---
783
+
784
+ ## Troubleshooting
785
+
786
+ ### Unsplash images don't load
787
+
788
+ - **Check proxy URL**: Verify you've configured the Unsplash API proxy URL correctly
789
+ - **Check console errors**: Look for network errors or CORS issues
790
+ - **Test proxy directly**: Ensure your proxy server is running and accessible
791
+
792
+ ### "Unsplash API URL not configured" warning
793
+
794
+ - **For new projects**: Set `VITE_UNSPLASH_API_URL` in your `.env` file
795
+ - **For existing projects**: Pass `unsplashApiUrl` to `initUnsplashEditor()`
796
+ - **For development**: The demo proxy is used automatically if no URL is provided
797
+
798
+ ### Rate limiting errors
799
+
800
+ - **Check Unsplash rate limits**: Free tier allows 50 requests per hour
801
+ - **Monitor `X-Ratelimit-Remaining` header**: Your proxy should forward these headers
802
+ - **Upgrade to production**: Apply for production access at [unsplash.com/developers](https://unsplash.com/developers) for higher limits
803
+ - **Implement caching**: Cache responses to reduce API calls
804
+
805
+ ### Authentication failures (401/403 errors)
806
+
807
+ - **Verify API key**: Ensure `UNSPLASH_ACCESS_KEY` is set in your proxy's environment
808
+ - **Check key format**: Use `Client-ID YOUR_ACCESS_KEY` in the Authorization header
809
+ - **Verify proxy deployment**: Ensure environment variables are properly configured in production
810
+ - **Test API key directly**: Try a curl request to verify your key works
811
+
812
+ ### Attribution not showing
813
+
814
+ - **Check asset source config**: Ensure `credits` object is defined in the asset source
815
+ - **Verify API response**: The Unsplash API returns photographer info in the `user` field
816
+
817
+ ### Editor doesn't load
818
+
819
+ - **Check container element**: Ensure your container element exists before calling `create()`
820
+ - **Verify baseURL**: Assets must be accessible from your configured location
821
+ - **Check console errors**: Look for CORS or network errors
822
+
823
+ ---
824
+
825
+ ## Next Steps
826
+
827
+ - [Custom Asset Sources](./import-media/from-remote-source/unsplash.md) – Learn how asset sources work
828
+ - [Theming](./user-interface/appearance/theming.md) – Customize colors and appearance
829
+ - [Localization](./user-interface/localization.md) – Add translations
830
+ - [Actions](./actions.md) – Build custom export workflows
831
+
832
+ ---
833
+
834
+ ## More Resources
835
+
836
+ - **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
837
+ - **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
838
+ - **[Web Documentation](./js.md)** - Interactive documentation with examples
839
+ - **[Support](mailto:support@img.ly)** - Contact IMG.LY support