@imgly/codesign-mcp 0.1.5 → 0.1.6
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.
- package/README.md +51 -1
- package/assets/docs/guide/SKILL.md +45 -53
- package/assets/docs/guide/animation/create/base.md +234 -243
- package/assets/docs/guide/animation/create/text.md +250 -231
- package/assets/docs/guide/animation/create.md +197 -231
- package/assets/docs/guide/animation/edit.md +196 -271
- package/assets/docs/guide/animation/types.md +182 -185
- package/assets/docs/guide/animation.md +9 -6
- package/assets/docs/guide/api/AssetAPI.md +7 -53
- package/assets/docs/guide/api/BlockAPI.md +725 -648
- package/assets/docs/guide/api/CreativeEngine.md +7 -16
- package/assets/docs/guide/api/EditorAPI.md +32 -93
- package/assets/docs/guide/api/EventAPI.md +1 -2
- package/assets/docs/guide/api/SceneAPI.md +47 -98
- package/assets/docs/guide/api/VariableAPI.md +1 -4
- package/assets/docs/guide/api/node/classes/assetapi.md +1090 -0
- package/assets/docs/guide/api/node/classes/blockapi.md +12965 -0
- package/assets/docs/guide/api/node/classes/creativeengine.md +319 -0
- package/assets/docs/guide/api/node/classes/editorapi.md +3417 -0
- package/assets/docs/guide/api/node/classes/engineactions.md +319 -0
- package/assets/docs/guide/api/node/classes/eventapi.md +56 -0
- package/assets/docs/guide/api/node/classes/sceneapi.md +1370 -0
- package/assets/docs/guide/api/node/classes/variableapi.md +143 -0
- package/assets/docs/guide/api/node/enumerations/compressionformat.md +23 -0
- package/assets/docs/guide/api/node/enumerations/compressionlevel.md +24 -0
- package/assets/docs/guide/api/node/functions/iscmykcolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isrgbacolor.md +30 -0
- package/assets/docs/guide/api/node/functions/isspotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/addvideooptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/applyassetoptions.md +31 -0
- package/assets/docs/guide/api/node/interfaces/asset.md +30 -0
- package/assets/docs/guide/api/node/interfaces/assetbooleanproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcmykcolor.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetcolorproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetcontentaspectratio.md +23 -0
- package/assets/docs/guide/api/node/interfaces/assetdefinition.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetenumproperty.md +26 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedaspectratio.md +24 -0
- package/assets/docs/guide/api/node/interfaces/assetfixedsize.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetfreeaspectratio.md +22 -0
- package/assets/docs/guide/api/node/interfaces/assetnumberproperty.md +28 -0
- package/assets/docs/guide/api/node/interfaces/assetpayload.md +27 -0
- package/assets/docs/guide/api/node/interfaces/assetquerydata.md +32 -0
- package/assets/docs/guide/api/node/interfaces/assetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/assetrgbcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsource.md +111 -0
- package/assets/docs/guide/api/node/interfaces/assetspotcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetsqueryresult.md +31 -0
- package/assets/docs/guide/api/node/interfaces/assetstringproperty.md +25 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepreset.md +39 -0
- package/assets/docs/guide/api/node/interfaces/assetstylepresetanimation.md +23 -0
- package/assets/docs/guide/api/node/interfaces/audiotrackinfo.md +32 -0
- package/assets/docs/guide/api/node/interfaces/blockevent.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateerror.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstatepending.md +26 -0
- package/assets/docs/guide/api/node/interfaces/blockstateready.md +25 -0
- package/assets/docs/guide/api/node/interfaces/buffer.md +26 -0
- package/assets/docs/guide/api/node/interfaces/characterinkbox.md +29 -0
- package/assets/docs/guide/api/node/interfaces/cmykcolor.md +34 -0
- package/assets/docs/guide/api/node/interfaces/completeassetresult.md +46 -0
- package/assets/docs/guide/api/node/interfaces/configuration.md +38 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolor.md +25 -0
- package/assets/docs/guide/api/node/interfaces/dominantcolorsoptions.md +23 -0
- package/assets/docs/guide/api/node/interfaces/engineactioninfo.md +24 -0
- package/assets/docs/guide/api/node/interfaces/engineactionsregistry.md +18 -0
- package/assets/docs/guide/api/node/interfaces/engineplugin.md +30 -0
- package/assets/docs/guide/api/node/interfaces/font.md +27 -0
- package/assets/docs/guide/api/node/interfaces/fontmetrics.md +32 -0
- package/assets/docs/guide/api/node/interfaces/gradientcolorstop.md +28 -0
- package/assets/docs/guide/api/node/interfaces/logger.md +39 -0
- package/assets/docs/guide/api/node/interfaces/pageduration.md +23 -0
- package/assets/docs/guide/api/node/interfaces/range.md +23 -0
- package/assets/docs/guide/api/node/interfaces/rgbacolor.md +32 -0
- package/assets/docs/guide/api/node/interfaces/rgbcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/settings.md +126 -0
- package/assets/docs/guide/api/node/interfaces/size2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/source.md +24 -0
- package/assets/docs/guide/api/node/interfaces/spotcolor.md +30 -0
- package/assets/docs/guide/api/node/interfaces/textdecorationconfig.md +31 -0
- package/assets/docs/guide/api/node/interfaces/textfontsizeoptions.md +24 -0
- package/assets/docs/guide/api/node/interfaces/textruninfo.md +33 -0
- package/assets/docs/guide/api/node/interfaces/transientresource.md +26 -0
- package/assets/docs/guide/api/node/interfaces/typeface.md +23 -0
- package/assets/docs/guide/api/node/interfaces/vec2.md +21 -0
- package/assets/docs/guide/api/node/interfaces/vec3.md +22 -0
- package/assets/docs/guide/api/node/type-aliases/addimageoptions.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/animationbaselinedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationblockswipetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationeasing.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationentry.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationgrowdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationjumploopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationkenburnsdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationmergetextdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/animationspindirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationspinloopdirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationtypewritertextwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/animationwipedirection.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/applicationmimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/assetcolor.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/assetfilter.md +47 -0
- package/assets/docs/guide/api/node/type-aliases/assetgroups.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetmetadata.md +42 -0
- package/assets/docs/guide/api/node/type-aliases/assetproperty.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertyfilter.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/assetpropertypath.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetanimationproperties.md +34 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetproperties.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetpropertyvalue.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/assetstylepresetscalableproperty.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/assettransformpreset.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/asyncuriresolver.md +36 -0
- package/assets/docs/guide/api/node/type-aliases/audioexportoptions.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/audiofromvideooptions.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/audiomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/blendmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/blockenumtype.md +63 -0
- package/assets/docs/guide/api/node/type-aliases/blockstate.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/blurtype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/blurtypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/booleanoperation.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/boolpropertyname.md +79 -0
- package/assets/docs/guide/api/node/type-aliases/cameraclampingovershootmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionhorizontalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/captionverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/cmyk.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/color.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/colorpickercolormode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/colorpropertyname.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/colorspace.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/contentfillmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmomovehandlevisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoresizehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmorotatehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/controlgizmoscalehandlesvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/createsceneoptions.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/cutoutoperation.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/cutouttype.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/defaultassetsourceid.md +37 -0
- package/assets/docs/guide/api/node/type-aliases/demoassetsourceid.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/designblockid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/designblocktypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/designunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doubleclickselectionmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/doublepropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/dropshadowoptions.md +32 -0
- package/assets/docs/guide/api/node/type-aliases/editmode.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/effecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/effecttypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/engineactionid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/enginecustomactionfunction.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/engineplugincontext.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/enumpropertyname.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/enumvalues.md +59 -0
- package/assets/docs/guide/api/node/type-aliases/exportoptions.md +57 -0
- package/assets/docs/guide/api/node/type-aliases/fillpixelstreamorientation.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/filltype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/filltypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/filltypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/floatpropertyname.md +184 -0
- package/assets/docs/guide/api/node/type-aliases/fontsizeunit.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/fontstyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/fontweight.md +30 -0
- package/assets/docs/guide/api/node/type-aliases/gradientstoprgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/heightmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/hexcolorstring.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyid.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/historyupdate.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/horizontaltextalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/imagemimetype.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/intpropertyname.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/liststyle.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/locale.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/loglevel.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/mimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/objecttype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypelonghand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/objecttypeshorthand.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/optionalprefix.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/pageguidessource.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/palettecolor.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/positionmode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/positionxmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/positionymode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/propertytype.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/rgba.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/rolestring.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/scenefontsizeunit.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenelayout.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scenemode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/scope.md +50 -0
- package/assets/docs/guide/api/node/type-aliases/settingboolpropertyname.md +62 -0
- package/assets/docs/guide/api/node/type-aliases/settingcolorpropertyname.md +38 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumpropertyname.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumtype.md +33 -0
- package/assets/docs/guide/api/node/type-aliases/settingenumvalues.md +29 -0
- package/assets/docs/guide/api/node/type-aliases/settingfloatpropertyname.md +25 -0
- package/assets/docs/guide/api/node/type-aliases/settingintpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingkey.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingsbool.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolor.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingscolorrgba.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/settingsenum.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsfloat.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsint.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingsstring.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/settingstringpropertyname.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/settingtype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/settingvaluetype.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/shapetype.md +24 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypelonghand.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/shapetypeshorthand.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/shapevectorpathfillrule.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/sizemode.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/sortingorder.md +21 -0
- package/assets/docs/guide/api/node/type-aliases/sourcesetpropertyname.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/splitoptions.md +28 -0
- package/assets/docs/guide/api/node/type-aliases/stringpropertyname.md +43 -0
- package/assets/docs/guide/api/node/type-aliases/strokecap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokecornergeometry.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokedashstartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeendcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokeposition.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestartcap.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/strokestyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/syncuriresolver.md +31 -0
- package/assets/docs/guide/api/node/type-aliases/textanimationwritingstyle.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/textcase.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationline.md +27 -0
- package/assets/docs/guide/api/node/type-aliases/textdecorationstyle.md +26 -0
- package/assets/docs/guide/api/node/type-aliases/textverticalalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/timelinetrackvisibility.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchpinchaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/touchrotateaction.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/typefacedefinition.md +41 -0
- package/assets/docs/guide/api/node/type-aliases/verticalblockalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/verticalcontentfillalignment.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/videoexportoptions.md +54 -0
- package/assets/docs/guide/api/node/type-aliases/videomimetype.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/widthmode.md +18 -0
- package/assets/docs/guide/api/node/type-aliases/xywh.md +23 -0
- package/assets/docs/guide/api/node/type-aliases/zoomautofitaxis.md +20 -0
- package/assets/docs/guide/api/node/type-aliases/zoomoptions.md +27 -0
- package/assets/docs/guide/api/node/variables/animation_types.md +21 -0
- package/assets/docs/guide/api/node/variables/animationbaselinedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationblockswipetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationeasingvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationgrowdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationjumploopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationkenburnsdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationmergetextdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspindirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationspinloopdirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationtypewritertextwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/animationwipedirectionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blendmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/blur_types.md +21 -0
- package/assets/docs/guide/api/node/variables/cameraclampingovershootmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionhorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/captionverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/colorpickercolormodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/contentfillmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmomovehandlevisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoresizehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmorotatehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/controlgizmoscalehandlesvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/cutouttypevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/design_block_types.md +21 -0
- package/assets/docs/guide/api/node/variables/doubleclickselectionmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/effect_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fill_types.md +21 -0
- package/assets/docs/guide/api/node/variables/fillpixelstreamorientationvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/heightmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/horizontalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/loglevel.md +37 -0
- package/assets/docs/guide/api/node/variables/mimetype.md +41 -0
- package/assets/docs/guide/api/node/variables/pageguidessourcevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionxmodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/positionymodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenedesignunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenefontsizeunitvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenelayoutvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/scenemodevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/shape_types.md +21 -0
- package/assets/docs/guide/api/node/variables/shapevectorpathfillrulevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokecornergeometryvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokedashstartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokeendcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokepositionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestartcapvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/strokestylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textanimationwritingstylevalues.md +18 -0
- package/assets/docs/guide/api/node/variables/texthorizontalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/textverticalalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/timelinetrackvisibilityvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchpinchactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/touchrotateactionvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/verticalcontentfillalignmentvalues.md +18 -0
- package/assets/docs/guide/api/node/variables/widthmodevalues.md +18 -0
- package/assets/docs/guide/api/types.md +5 -9
- package/assets/docs/guide/api-reference/overview.md +7 -7
- package/assets/docs/guide/automation/auto-resize.md +263 -300
- package/assets/docs/guide/automation/data-merge.md +246 -275
- package/assets/docs/guide/automation/design-generation.md +102 -31
- package/assets/docs/guide/automation/multi-image-generation.md +758 -0
- package/assets/docs/guide/automation/overview.md +21 -4
- package/assets/docs/guide/automation.md +10 -5
- package/assets/docs/guide/capabilities.md +6 -4
- package/assets/docs/guide/colors/adjust.md +247 -249
- package/assets/docs/guide/colors/apply.md +127 -138
- package/assets/docs/guide/colors/basics.md +126 -150
- package/assets/docs/guide/colors/conversion.md +171 -177
- package/assets/docs/guide/colors/create-color-palette.md +244 -245
- package/assets/docs/guide/colors/extract-colors.md +144 -0
- package/assets/docs/guide/colors/for-print/cmyk.md +292 -352
- package/assets/docs/guide/colors/for-print/spot.md +521 -578
- package/assets/docs/guide/colors/for-print.md +9 -4
- package/assets/docs/guide/colors/for-screen/p3.md +12 -10
- package/assets/docs/guide/colors/for-screen/srgb.md +107 -133
- package/assets/docs/guide/colors/for-screen.md +9 -4
- package/assets/docs/guide/colors/overview.md +6 -4
- package/assets/docs/guide/colors/replace.md +381 -419
- package/assets/docs/guide/colors.md +9 -4
- package/assets/docs/guide/compatibility.md +7 -5
- package/assets/docs/guide/concepts/architecture.md +17 -15
- package/assets/docs/guide/concepts/assets.md +152 -140
- package/assets/docs/guide/concepts/blocks.md +227 -323
- package/assets/docs/guide/concepts/buffers.md +147 -276
- package/assets/docs/guide/concepts/design-units.md +95 -145
- package/assets/docs/guide/concepts/editing-workflow.md +69 -183
- package/assets/docs/guide/concepts/events.md +80 -122
- package/assets/docs/guide/concepts/headless-mode.md +237 -0
- package/assets/docs/guide/concepts/pages.md +137 -127
- package/assets/docs/guide/concepts/resources.md +156 -217
- package/assets/docs/guide/concepts/scenes.md +191 -210
- package/assets/docs/guide/concepts/templating.md +118 -74
- package/assets/docs/guide/concepts/terminology.md +49 -47
- package/assets/docs/guide/concepts/undo-and-history.md +229 -303
- package/assets/docs/guide/concepts.md +9 -7
- package/assets/docs/guide/configuration.md +252 -380
- package/assets/docs/guide/conversion/overview.md +33 -4
- package/assets/docs/guide/conversion/to-base64.md +127 -167
- package/assets/docs/guide/conversion/to-pdf.md +24 -474
- package/assets/docs/guide/conversion/to-png.md +168 -211
- package/assets/docs/guide/conversion.md +9 -4
- package/assets/docs/guide/create-audio/audio/add-music.md +301 -327
- package/assets/docs/guide/create-audio/audio/add-sound-effects.md +475 -359
- package/assets/docs/guide/create-audio/audio/loop.md +232 -272
- package/assets/docs/guide/create-composition/add-background.md +237 -239
- package/assets/docs/guide/create-composition/blend-modes.md +118 -209
- package/assets/docs/guide/create-composition/collage.md +538 -320
- package/assets/docs/guide/create-composition/group-and-ungroup.md +216 -261
- package/assets/docs/guide/create-composition/layer-management.md +219 -257
- package/assets/docs/guide/create-composition/layout.md +513 -315
- package/assets/docs/guide/create-composition/lock-design.md +90 -109
- package/assets/docs/guide/create-composition/multi-page.md +133 -113
- package/assets/docs/guide/create-composition/overview.md +16 -4
- package/assets/docs/guide/create-composition/programmatic.md +288 -344
- package/assets/docs/guide/create-composition.md +10 -5
- package/assets/docs/guide/create-templates/add-dynamic-content/placeholders.md +443 -569
- package/assets/docs/guide/create-templates/add-dynamic-content/set-editing-constraints.md +567 -470
- package/assets/docs/guide/create-templates/add-dynamic-content/text-variables.md +179 -516
- package/assets/docs/guide/create-templates/add-dynamic-content.md +226 -224
- package/assets/docs/guide/create-templates/add-to-template-library.md +183 -193
- package/assets/docs/guide/create-templates/edit-or-remove.md +297 -303
- package/assets/docs/guide/create-templates/from-scratch.md +207 -268
- package/assets/docs/guide/create-templates/import/from-scene-file.md +158 -236
- package/assets/docs/guide/create-templates/import.md +145 -161
- package/assets/docs/guide/create-templates/lock.md +42 -295
- package/assets/docs/guide/create-templates/overview.md +33 -4
- package/assets/docs/guide/create-templates.md +9 -5
- package/assets/docs/guide/create-video/audio/adjust-speed.md +157 -207
- package/assets/docs/guide/create-video/audio/adjust-volume.md +116 -227
- package/assets/docs/guide/create-video/control.md +352 -193
- package/assets/docs/guide/create-video/limitations.md +175 -280
- package/assets/docs/guide/create-video.md +11 -10
- package/assets/docs/guide/edit-image/add-watermark.md +283 -330
- package/assets/docs/guide/edit-image/overview.md +29 -4
- package/assets/docs/guide/edit-image/remove-bg.md +283 -337
- package/assets/docs/guide/edit-image/replace-colors.md +424 -502
- package/assets/docs/guide/edit-image/transform/crop.md +463 -402
- package/assets/docs/guide/edit-image/transform/flip.md +353 -0
- package/assets/docs/guide/edit-image/transform/move.md +143 -100
- package/assets/docs/guide/edit-image/transform/resize.md +118 -88
- package/assets/docs/guide/edit-image/transform/rotate.md +132 -165
- package/assets/docs/guide/edit-image/transform/scale.md +230 -228
- package/assets/docs/guide/edit-image/transform.md +10 -5
- package/assets/docs/guide/edit-image.md +11 -7
- package/assets/docs/guide/edit-video/add-captions.md +344 -421
- package/assets/docs/guide/edit-video/add-watermark.md +312 -258
- package/assets/docs/guide/edit-video/join-and-arrange.md +237 -371
- package/assets/docs/guide/edit-video/redaction.md +419 -385
- package/assets/docs/guide/edit-video/split.md +243 -493
- package/assets/docs/guide/edit-video/transform/crop.md +21 -352
- package/assets/docs/guide/edit-video/transform/flip.md +102 -76
- package/assets/docs/guide/edit-video/transform/move.md +258 -310
- package/assets/docs/guide/edit-video/transform/resize.md +264 -428
- package/assets/docs/guide/edit-video/transform/rotate.md +265 -228
- package/assets/docs/guide/edit-video/transform/scale.md +320 -417
- package/assets/docs/guide/edit-video/transform.md +10 -6
- package/assets/docs/guide/edit-video/trim.md +448 -494
- package/assets/docs/guide/engine-interface.md +51 -62
- package/assets/docs/guide/export-save-publish/create-thumbnail.md +148 -184
- package/assets/docs/guide/export-save-publish/export/compress.md +161 -559
- package/assets/docs/guide/export-save-publish/export/overview.md +224 -373
- package/assets/docs/guide/export-save-publish/export/partial-export.md +386 -577
- package/assets/docs/guide/export-save-publish/export/size-limits.md +215 -310
- package/assets/docs/guide/export-save-publish/export/to-jpeg.md +132 -213
- package/assets/docs/guide/export-save-publish/export/to-pdf.md +139 -267
- package/assets/docs/guide/export-save-publish/export/to-png.md +121 -165
- package/assets/docs/guide/export-save-publish/export/to-raw-data.md +187 -234
- package/assets/docs/guide/export-save-publish/export/to-webp.md +160 -190
- package/assets/docs/guide/export-save-publish/export/with-color-mask.md +359 -203
- package/assets/docs/guide/export-save-publish/export.md +14 -11
- package/assets/docs/guide/export-save-publish/for-printing.md +141 -237
- package/assets/docs/guide/export-save-publish/for-social-media.md +124 -261
- package/assets/docs/guide/export-save-publish/pre-export-validation.md +436 -522
- package/assets/docs/guide/export-save-publish/save.md +167 -226
- package/assets/docs/guide/export-save-publish/store-custom-metadata.md +97 -162
- package/assets/docs/guide/file-format-support.md +9 -9
- package/assets/docs/guide/fills/color.md +370 -347
- package/assets/docs/guide/fills/image.md +167 -196
- package/assets/docs/guide/fills/overview.md +6 -4
- package/assets/docs/guide/fills/video.md +286 -438
- package/assets/docs/guide/fills.md +12 -8
- package/assets/docs/guide/filters-and-effects/apply.md +598 -664
- package/assets/docs/guide/filters-and-effects/blur.md +261 -159
- package/assets/docs/guide/filters-and-effects/chroma-key-green-screen.md +194 -293
- package/assets/docs/guide/filters-and-effects/create-custom-filters.md +548 -466
- package/assets/docs/guide/filters-and-effects/create-custom-lut-filter.md +176 -244
- package/assets/docs/guide/filters-and-effects/distortion.md +317 -384
- package/assets/docs/guide/filters-and-effects/duotone.md +221 -217
- package/assets/docs/guide/filters-and-effects/gradients.md +670 -813
- package/assets/docs/guide/filters-and-effects/overview.md +7 -7
- package/assets/docs/guide/filters-and-effects/support.md +97 -132
- package/assets/docs/guide/filters-and-effects.md +11 -6
- package/assets/docs/guide/get-started/agent-skills.md +20 -18
- package/assets/docs/guide/get-started/build-with-ai.md +7 -4
- package/assets/docs/guide/get-started/bun.md +219 -0
- package/assets/docs/guide/get-started/deno.md +161 -0
- package/assets/docs/guide/get-started/mcp-server.md +6 -4
- package/assets/docs/guide/get-started/overview.md +11 -6
- package/assets/docs/guide/get-started/vanilla-aws-lambda.md +506 -0
- package/assets/docs/guide/get-started/vanilla-clone-github-project.md +124 -0
- package/assets/docs/guide/get-started/vanilla.md +235 -0
- package/assets/docs/guide/guides/export-save-publish/export/audio.md +80 -66
- package/assets/docs/guide/guides.md +10 -9
- package/assets/docs/guide/import-media/asset-panel/refresh-assets.md +259 -288
- package/assets/docs/guide/import-media/concepts.md +20 -38
- package/assets/docs/guide/import-media/content-json-schema.md +145 -125
- package/assets/docs/guide/import-media/default-assets.md +113 -161
- package/assets/docs/guide/import-media/edit-or-remove-assets.md +391 -395
- package/assets/docs/guide/import-media/file-format-support.md +78 -61
- package/assets/docs/guide/import-media/from-remote-source/asset-versioning.md +273 -244
- package/assets/docs/guide/import-media/from-remote-source/remote-asset.md +152 -222
- package/assets/docs/guide/import-media/from-remote-source.md +9 -11
- package/assets/docs/guide/import-media/overview.md +5 -5
- package/assets/docs/guide/import-media/retrieve-mimetype.md +216 -108
- package/assets/docs/guide/import-media/size-limits.md +6 -4
- package/assets/docs/guide/import-media/source-sets.md +190 -251
- package/assets/docs/guide/import-media.md +10 -8
- package/assets/docs/guide/insert-media/audio.md +202 -195
- package/assets/docs/guide/insert-media/images.md +190 -188
- package/assets/docs/guide/insert-media/position-and-align.md +284 -551
- package/assets/docs/guide/insert-media/shapes-or-stickers.md +402 -418
- package/assets/docs/guide/insert-media/videos.md +236 -203
- package/assets/docs/guide/insert-media.md +10 -5
- package/assets/docs/guide/key-capabilities.md +36 -4
- package/assets/docs/guide/key-concepts.md +6 -4
- package/assets/docs/guide/licensing.md +6 -4
- package/assets/docs/guide/llms-txt.md +11 -7
- package/assets/docs/guide/open-the-editor/blank-canvas.md +102 -63
- package/assets/docs/guide/open-the-editor/from-image.md +157 -127
- package/assets/docs/guide/open-the-editor/from-template.md +131 -92
- package/assets/docs/guide/open-the-editor/from-video.md +204 -212
- package/assets/docs/guide/open-the-editor/import-design/from-archive.md +310 -360
- package/assets/docs/guide/open-the-editor/import-design/from-indesign.md +716 -513
- package/assets/docs/guide/open-the-editor/import-design/from-photoshop.md +667 -695
- package/assets/docs/guide/open-the-editor/import-design.md +228 -266
- package/assets/docs/guide/open-the-editor/load-scene.md +72 -68
- package/assets/docs/guide/open-the-editor/overview.md +6 -4
- package/assets/docs/guide/open-the-editor/uri-resolver.md +160 -251
- package/assets/docs/guide/open-the-editor.md +11 -9
- package/assets/docs/guide/outlines/overview.md +12 -4
- package/assets/docs/guide/outlines/shadows-and-glows.md +105 -410
- package/assets/docs/guide/outlines/strokes.md +218 -166
- package/assets/docs/guide/outlines.md +9 -4
- package/assets/docs/guide/overview.md +14 -6
- package/assets/docs/guide/performance.md +220 -113
- package/assets/docs/guide/plugins/print-ready-pdf.md +273 -368
- package/assets/docs/guide/plugins.md +10 -16
- package/assets/docs/guide/rules/asset-handling.md +7 -18
- package/assets/docs/guide/rules/common-pitfalls.md +25 -42
- package/assets/docs/guide/rules/content-fill-mode.md +4 -4
- package/assets/docs/guide/rules/enforce-brand-guidelines.md +398 -567
- package/assets/docs/guide/rules/lock-content.md +188 -231
- package/assets/docs/guide/rules/moderate-content.md +580 -571
- package/assets/docs/guide/rules/overview.md +345 -380
- package/assets/docs/guide/rules/silent-init-errors.md +4 -1
- package/assets/docs/guide/rules/verify-properties-before-use.md +2 -11
- package/assets/docs/guide/rules.md +10 -5
- package/assets/docs/guide/security.md +7 -5
- package/assets/docs/guide/serve-assets.md +57 -284
- package/assets/docs/guide/settings.md +96 -74
- package/assets/docs/guide/shapes.md +10 -5
- package/assets/docs/guide/stickers-and-shapes/combine.md +397 -583
- package/assets/docs/guide/stickers-and-shapes/create-cutout.md +181 -268
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-shapes.md +418 -431
- package/assets/docs/guide/stickers-and-shapes/create-edit/create-stickers.md +147 -226
- package/assets/docs/guide/stickers-and-shapes/create-edit/edit-shapes.md +138 -123
- package/assets/docs/guide/stickers-and-shapes/insert-qr-code.md +151 -149
- package/assets/docs/guide/stickers.md +9 -4
- package/assets/docs/guide/text/add.md +470 -482
- package/assets/docs/guide/text/adjust-spacing.md +179 -214
- package/assets/docs/guide/text/auto-size.md +210 -271
- package/assets/docs/guide/text/edit.md +294 -309
- package/assets/docs/guide/text/effects.md +154 -190
- package/assets/docs/guide/text/emojis.md +199 -232
- package/assets/docs/guide/text/language-support.md +369 -382
- package/assets/docs/guide/text/overview.md +41 -4
- package/assets/docs/guide/text/styling.md +239 -273
- package/assets/docs/guide/text/text-designs.md +405 -544
- package/assets/docs/guide/text.md +10 -9
- package/assets/docs/guide/to-v1-19.md +12 -10
- package/assets/docs/guide/upgrade.md +8 -9
- package/assets/docs/guide/use-templates/apply-template.md +174 -163
- package/assets/docs/guide/use-templates/generate.md +171 -152
- package/assets/docs/guide/use-templates/overview.md +32 -4
- package/assets/docs/guide/use-templates/programmatic.md +266 -301
- package/assets/docs/guide/use-templates/replace-content.md +181 -171
- package/assets/docs/guide/what-is-cesdk.md +71 -282
- package/assets/docs/handbook/SKILL.md +24 -0
- package/dist/assets/inline.generated.d.ts.map +1 -1
- package/dist/assets/inline.generated.js +544 -406
- package/dist/assets/inline.generated.js.map +1 -1
- package/dist/assets/load-browser.d.ts +1 -1
- package/dist/assets/load-browser.js +1 -1
- package/dist/assets/load-browser.js.map +1 -1
- package/dist/assets/load-node.d.ts +1 -1
- package/dist/assets/load-node.js +1 -1
- package/dist/assets/load-node.js.map +1 -1
- package/dist/cli/http.d.ts.map +1 -1
- package/dist/cli/http.js +4 -28
- package/dist/cli/http.js.map +1 -1
- package/dist/cli/redirect-console.d.ts +1 -1
- package/dist/cli/redirect-console.d.ts.map +1 -1
- package/dist/cli/redirect-console.js +12 -3
- package/dist/cli/redirect-console.js.map +1 -1
- package/dist/cli/resolve-license.d.ts.map +1 -1
- package/dist/cli/resolve-license.js +8 -6
- package/dist/cli/resolve-license.js.map +1 -1
- package/dist/cli/stdio.d.ts +9 -0
- package/dist/cli/stdio.d.ts.map +1 -1
- package/dist/cli/stdio.js +48 -4
- package/dist/cli/stdio.js.map +1 -1
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +11 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -1
- package/dist/config.js.map +1 -1
- package/dist/diagnostics/bundle.d.ts +10 -0
- package/dist/diagnostics/bundle.d.ts.map +1 -0
- package/dist/diagnostics/bundle.js +148 -0
- package/dist/diagnostics/bundle.js.map +1 -0
- package/dist/diagnostics/compose.d.ts +3 -0
- package/dist/diagnostics/compose.d.ts.map +1 -0
- package/dist/diagnostics/compose.js +15 -0
- package/dist/diagnostics/compose.js.map +1 -0
- package/dist/diagnostics/events.d.ts +34 -0
- package/dist/diagnostics/events.d.ts.map +1 -0
- package/dist/diagnostics/events.js +3 -0
- package/dist/diagnostics/events.js.map +1 -0
- package/dist/diagnostics/file-sink.d.ts +38 -0
- package/dist/diagnostics/file-sink.d.ts.map +1 -0
- package/dist/diagnostics/file-sink.js +157 -0
- package/dist/diagnostics/file-sink.js.map +1 -0
- package/dist/diagnostics/redact.d.ts +7 -0
- package/dist/diagnostics/redact.d.ts.map +1 -0
- package/dist/diagnostics/redact.js +43 -0
- package/dist/diagnostics/redact.js.map +1 -0
- package/dist/diagnostics/tool-call-adapter.d.ts +4 -0
- package/dist/diagnostics/tool-call-adapter.d.ts.map +1 -0
- package/dist/diagnostics/tool-call-adapter.js +21 -0
- package/dist/diagnostics/tool-call-adapter.js.map +1 -0
- package/dist/engine/cesdk-adapter.d.ts +5 -1
- package/dist/engine/cesdk-adapter.d.ts.map +1 -1
- package/dist/engine/cesdk-adapter.js +9 -2
- package/dist/engine/cesdk-adapter.js.map +1 -1
- package/dist/engine/index.d.ts +1 -0
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +4 -0
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/scene-resource-schemes.d.ts +2 -0
- package/dist/engine/scene-resource-schemes.d.ts.map +1 -0
- package/dist/engine/scene-resource-schemes.js +20 -0
- package/dist/engine/scene-resource-schemes.js.map +1 -0
- package/dist/http/server.d.ts +0 -6
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +1 -2
- package/dist/http/server.js.map +1 -1
- package/dist/server.d.ts +0 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +4 -60
- package/dist/server.js.map +1 -1
- package/dist/test/scripts/changelog-add.d.ts +8 -0
- package/dist/test/scripts/changelog-add.d.ts.map +1 -0
- package/dist/test/scripts/changelog-add.js +50 -0
- package/dist/test/scripts/changelog-add.js.map +1 -0
- package/dist/test/scripts/changelog-collate.d.ts +38 -0
- package/dist/test/scripts/changelog-collate.d.ts.map +1 -0
- package/dist/test/scripts/changelog-collate.js +171 -0
- package/dist/test/scripts/changelog-collate.js.map +1 -0
- package/dist/test/test/changelog.test.d.ts +2 -0
- package/dist/test/test/changelog.test.d.ts.map +1 -0
- package/dist/test/test/changelog.test.js +293 -0
- package/dist/test/test/changelog.test.js.map +1 -0
- package/dist/test/test/cli/dispatcher.test.js +10 -3
- package/dist/test/test/cli/dispatcher.test.js.map +1 -1
- package/dist/test/test/cli/redirect-console.test.js +31 -0
- package/dist/test/test/cli/redirect-console.test.js.map +1 -1
- package/dist/test/test/cli/resolve-license.test.js +10 -1
- package/dist/test/test/cli/resolve-license.test.js.map +1 -1
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts +2 -0
- package/dist/test/test/cli/stdio-diagnostics.test.d.ts.map +1 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js +31 -0
- package/dist/test/test/cli/stdio-diagnostics.test.js.map +1 -0
- package/dist/test/test/config.test.js +17 -13
- package/dist/test/test/config.test.js.map +1 -1
- package/dist/test/test/diagnostics/bundle.test.d.ts +2 -0
- package/dist/test/test/diagnostics/bundle.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/bundle.test.js +53 -0
- package/dist/test/test/diagnostics/bundle.test.js.map +1 -0
- package/dist/test/test/diagnostics/compose.test.d.ts +2 -0
- package/dist/test/test/diagnostics/compose.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/compose.test.js +31 -0
- package/dist/test/test/diagnostics/compose.test.js.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts +2 -0
- package/dist/test/test/diagnostics/file-sink.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/file-sink.test.js +113 -0
- package/dist/test/test/diagnostics/file-sink.test.js.map +1 -0
- package/dist/test/test/diagnostics/redact.test.d.ts +2 -0
- package/dist/test/test/diagnostics/redact.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/redact.test.js +59 -0
- package/dist/test/test/diagnostics/redact.test.js.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts +2 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.d.ts.map +1 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js +34 -0
- package/dist/test/test/diagnostics/tool-call-adapter.test.js.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts +2 -0
- package/dist/test/test/engine/cesdk-adapter.test.d.ts.map +1 -0
- package/dist/test/test/engine/cesdk-adapter.test.js +32 -0
- package/dist/test/test/engine/cesdk-adapter.test.js.map +1 -0
- package/dist/test/test/handbook-contract.test.js +6 -2
- package/dist/test/test/handbook-contract.test.js.map +1 -1
- package/dist/test/test/http/server.test.js +0 -36
- package/dist/test/test/http/server.test.js.map +1 -1
- package/dist/test/test/http/workspace-auth.test.js +0 -1
- package/dist/test/test/http/workspace-auth.test.js.map +1 -1
- package/dist/test/test/server.test.js +0 -40
- package/dist/test/test/server.test.js.map +1 -1
- package/dist/test/test/tools/edit-harness.d.ts +14 -0
- package/dist/test/test/tools/edit-harness.d.ts.map +1 -0
- package/dist/test/test/tools/edit-harness.js +30 -0
- package/dist/test/test/tools/edit-harness.js.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/edit.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/edit.telemetry.test.js +46 -0
- package/dist/test/test/tools/edit.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/export-harness.d.ts +13 -0
- package/dist/test/test/tools/export-harness.d.ts.map +1 -0
- package/dist/test/test/tools/export-harness.js +27 -0
- package/dist/test/test/tools/export-harness.js.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/export.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/export.telemetry.test.js +65 -0
- package/dist/test/test/tools/export.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/import.test.d.ts +2 -0
- package/dist/test/test/tools/import.test.d.ts.map +1 -0
- package/dist/test/test/tools/import.test.js +122 -0
- package/dist/test/test/tools/import.test.js.map +1 -0
- package/dist/test/test/tools/index.test.js +78 -16
- package/dist/test/test/tools/index.test.js.map +1 -1
- package/dist/test/test/tools/load.integration.test.d.ts +2 -0
- package/dist/test/test/tools/load.integration.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.integration.test.js +165 -0
- package/dist/test/test/tools/load.integration.test.js.map +1 -0
- package/dist/test/test/tools/load.test.d.ts +2 -0
- package/dist/test/test/tools/load.test.d.ts.map +1 -0
- package/dist/test/test/tools/load.test.js +387 -0
- package/dist/test/test/tools/load.test.js.map +1 -0
- package/dist/test/test/tools/preview-harness.d.ts +9 -0
- package/dist/test/test/tools/preview-harness.d.ts.map +1 -0
- package/dist/test/test/tools/preview-harness.js +23 -0
- package/dist/test/test/tools/preview-harness.js.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts +2 -0
- package/dist/test/test/tools/preview.telemetry.test.d.ts.map +1 -0
- package/dist/test/test/tools/preview.telemetry.test.js +36 -0
- package/dist/test/test/tools/preview.telemetry.test.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.d.ts +13 -0
- package/dist/test/test/tools/schema-best-practices.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.js +169 -0
- package/dist/test/test/tools/schema-best-practices.js.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts +3 -0
- package/dist/test/test/tools/schema-best-practices.test.d.ts.map +1 -0
- package/dist/test/test/tools/schema-best-practices.test.js +194 -0
- package/dist/test/test/tools/schema-best-practices.test.js.map +1 -0
- package/dist/test/test/tools/spans.test.d.ts +2 -0
- package/dist/test/test/tools/spans.test.d.ts.map +1 -0
- package/dist/test/test/tools/spans.test.js +84 -0
- package/dist/test/test/tools/spans.test.js.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts +2 -0
- package/dist/test/test/viewer/cesdk-cdn.test.d.ts.map +1 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js +19 -0
- package/dist/test/test/viewer/cesdk-cdn.test.js.map +1 -0
- package/dist/test/test/viewer/config-route.test.d.ts +2 -0
- package/dist/test/test/viewer/config-route.test.d.ts.map +1 -0
- package/dist/test/test/viewer/config-route.test.js +28 -0
- package/dist/test/test/viewer/config-route.test.js.map +1 -0
- package/dist/test/test/viewer/spa-version.test.d.ts +2 -0
- package/dist/test/test/viewer/spa-version.test.d.ts.map +1 -0
- package/dist/test/test/viewer/spa-version.test.js +14 -0
- package/dist/test/test/viewer/spa-version.test.js.map +1 -0
- package/dist/test/test/workspace/content-hash.test.d.ts +2 -0
- package/dist/test/test/workspace/content-hash.test.d.ts.map +1 -0
- package/dist/test/test/workspace/content-hash.test.js +17 -0
- package/dist/test/test/workspace/content-hash.test.js.map +1 -0
- package/dist/test/tsconfig.test.tsbuildinfo +1 -1
- package/dist/test/vitest.config.js +1 -1
- package/dist/test/vitest.config.js.map +1 -1
- package/dist/tools/asset-generate.d.ts.map +1 -1
- package/dist/tools/asset-generate.js +1 -8
- package/dist/tools/asset-generate.js.map +1 -1
- package/dist/tools/edit.d.ts +3 -0
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +145 -96
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/export.d.ts +3 -0
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +146 -108
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/import.d.ts +12 -0
- package/dist/tools/import.d.ts.map +1 -0
- package/dist/tools/import.js +144 -0
- package/dist/tools/import.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -4
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/load.d.ts +26 -0
- package/dist/tools/load.d.ts.map +1 -0
- package/dist/tools/load.js +400 -0
- package/dist/tools/load.js.map +1 -0
- package/dist/tools/preview.d.ts +3 -0
- package/dist/tools/preview.d.ts.map +1 -1
- package/dist/tools/preview.js +79 -44
- package/dist/tools/preview.js.map +1 -1
- package/dist/tools/result.d.ts +1 -1
- package/dist/tools/result.js +2 -2
- package/dist/tools/result.js.map +1 -1
- package/dist/tools/spans.d.ts +45 -0
- package/dist/tools/spans.d.ts.map +1 -0
- package/dist/tools/spans.js +77 -0
- package/dist/tools/spans.js.map +1 -0
- package/dist/tools/telemetry-wrapper.d.ts +4 -0
- package/dist/tools/telemetry-wrapper.d.ts.map +1 -0
- package/dist/tools/telemetry-wrapper.js +43 -0
- package/dist/tools/telemetry-wrapper.js.map +1 -0
- package/dist/viewer/cesdk-cdn.d.ts +16 -0
- package/dist/viewer/cesdk-cdn.d.ts.map +1 -0
- package/dist/viewer/cesdk-cdn.js +30 -0
- package/dist/viewer/cesdk-cdn.js.map +1 -0
- package/dist/viewer/router.d.ts +6 -0
- package/dist/viewer/router.d.ts.map +1 -1
- package/dist/viewer/router.js +4 -1
- package/dist/viewer/router.js.map +1 -1
- package/dist/viewer/spa-assets.generated.d.ts.map +1 -1
- package/dist/viewer/spa-assets.generated.js +2 -3
- package/dist/viewer/spa-assets.generated.js.map +1 -1
- package/dist/workspace/content-hash.d.ts +2 -0
- package/dist/workspace/content-hash.d.ts.map +1 -0
- package/dist/workspace/content-hash.js +15 -0
- package/dist/workspace/content-hash.js.map +1 -0
- package/package.json +18 -9
- package/assets/docs/guide/actions.md +0 -1038
- package/assets/docs/guide/animation/overview.md +0 -22
- package/assets/docs/guide/automation/batch-processing.md +0 -474
- package/assets/docs/guide/browser-support.md +0 -38
- package/assets/docs/guide/concepts/edit-modes.md +0 -431
- package/assets/docs/guide/concepts/headless-mode/browser.md +0 -291
- package/assets/docs/guide/create-audio/audio.md +0 -336
- package/assets/docs/guide/create-video/overview.md +0 -224
- package/assets/docs/guide/create-video/timeline-editor.md +0 -622
- package/assets/docs/guide/create-video/update-caption-presets.md +0 -676
- package/assets/docs/guide/edit-image/vectorize.md +0 -204
- package/assets/docs/guide/export-save-publish/export/to-html5.md +0 -474
- package/assets/docs/guide/export-save-publish/export/to-mp4.md +0 -364
- package/assets/docs/guide/get-started/vanilla-js/quickstart.md +0 -175
- package/assets/docs/guide/grid-and-rulers.md +0 -222
- package/assets/docs/guide/guides/text/rendering-internals.md +0 -796
- package/assets/docs/guide/import-media/asset-library.md +0 -23
- package/assets/docs/guide/import-media/asset-panel/basics.md +0 -324
- package/assets/docs/guide/import-media/asset-panel/customize.md +0 -478
- package/assets/docs/guide/import-media/asset-panel/thumbnails.md +0 -633
- package/assets/docs/guide/import-media/capture-from-camera/record-video.md +0 -137
- package/assets/docs/guide/import-media/capture-from-camera.md +0 -20
- package/assets/docs/guide/import-media/from-local-source/user-upload.md +0 -438
- package/assets/docs/guide/import-media/from-local-source.md +0 -20
- package/assets/docs/guide/import-media/from-remote-source/getty-images.md +0 -627
- package/assets/docs/guide/import-media/from-remote-source/imgly-premium-assets.md +0 -625
- package/assets/docs/guide/import-media/from-remote-source/pexels.md +0 -692
- package/assets/docs/guide/import-media/from-remote-source/soundstripe.md +0 -497
- package/assets/docs/guide/import-media/from-remote-source/third-party.md +0 -51
- package/assets/docs/guide/import-media/from-remote-source/unsplash.md +0 -914
- package/assets/docs/guide/import-media/from-remote-source/your-server.md +0 -764
- package/assets/docs/guide/open-the-editor/from-htmlcanvas.md +0 -228
- package/assets/docs/guide/open-the-editor/set-zoom-level.md +0 -303
- package/assets/docs/guide/plugins/asset-sources.md +0 -553
- package/assets/docs/guide/starterkits/3d-mockup-editor.md +0 -748
- package/assets/docs/guide/starterkits/advanced-editor.md +0 -698
- package/assets/docs/guide/starterkits/advanced-video-editor.md +0 -696
- package/assets/docs/guide/starterkits/ai-editor.md +0 -749
- package/assets/docs/guide/starterkits/airtable-image-editor.md +0 -672
- package/assets/docs/guide/starterkits/apparel-ui.md +0 -188
- package/assets/docs/guide/starterkits/assets.md +0 -27
- package/assets/docs/guide/starterkits/auto-resize.md +0 -586
- package/assets/docs/guide/starterkits/automated-video-generation.md +0 -692
- package/assets/docs/guide/starterkits/background-removal-editor.md +0 -480
- package/assets/docs/guide/starterkits/content-moderation.md +0 -863
- package/assets/docs/guide/starterkits/creative-automation.md +0 -28
- package/assets/docs/guide/starterkits/custom-built-uis.md +0 -26
- package/assets/docs/guide/starterkits/customization.md +0 -29
- package/assets/docs/guide/starterkits/cutout-lines-editor.md +0 -470
- package/assets/docs/guide/starterkits/data-merge.md +0 -850
- package/assets/docs/guide/starterkits/design-editor.md +0 -698
- package/assets/docs/guide/starterkits/design-generation.md +0 -719
- package/assets/docs/guide/starterkits/design-validation.md +0 -808
- package/assets/docs/guide/starterkits/editor-ui-configurations.md +0 -14
- package/assets/docs/guide/starterkits/export-options.md +0 -724
- package/assets/docs/guide/starterkits/export-using-renderer.md +0 -708
- package/assets/docs/guide/starterkits/extensibility.md +0 -28
- package/assets/docs/guide/starterkits/force-crop-editor.md +0 -675
- package/assets/docs/guide/starterkits/form-based-template-adoption.md +0 -522
- package/assets/docs/guide/starterkits/getty-images-editor.md +0 -700
- package/assets/docs/guide/starterkits/html5-ads-exporter.md +0 -719
- package/assets/docs/guide/starterkits/indesign-template-import.md +0 -580
- package/assets/docs/guide/starterkits/layouts-editor.md +0 -724
- package/assets/docs/guide/starterkits/mobile-ui.md +0 -185
- package/assets/docs/guide/starterkits/mockup-editor.md +0 -745
- package/assets/docs/guide/starterkits/multi-image-generation.md +0 -542
- package/assets/docs/guide/starterkits/page-sizes-editor.md +0 -657
- package/assets/docs/guide/starterkits/pexels-image-editor.md +0 -665
- package/assets/docs/guide/starterkits/photo-editor.md +0 -755
- package/assets/docs/guide/starterkits/photo-ui.md +0 -186
- package/assets/docs/guide/starterkits/photobook-ui.md +0 -188
- package/assets/docs/guide/starterkits/placeholders.md +0 -678
- package/assets/docs/guide/starterkits/player.md +0 -405
- package/assets/docs/guide/starterkits/plugins.md +0 -25
- package/assets/docs/guide/starterkits/postcard-editor.md +0 -202
- package/assets/docs/guide/starterkits/pptx-template-import.md +0 -581
- package/assets/docs/guide/starterkits/print-ready-pdf-editor.md +0 -746
- package/assets/docs/guide/starterkits/product-editor.md +0 -773
- package/assets/docs/guide/starterkits/psd-template-import.md +0 -580
- package/assets/docs/guide/starterkits/qr-code-editor.md +0 -470
- package/assets/docs/guide/starterkits/single-page-editor.md +0 -661
- package/assets/docs/guide/starterkits/start-with-image.md +0 -684
- package/assets/docs/guide/starterkits/start-with-video.md +0 -651
- package/assets/docs/guide/starterkits/t-shirt-designer.md +0 -742
- package/assets/docs/guide/starterkits/templating.md +0 -23
- package/assets/docs/guide/starterkits/theming.md +0 -662
- package/assets/docs/guide/starterkits/translation-internationalization.md +0 -662
- package/assets/docs/guide/starterkits/unsplash-editor.md +0 -839
- package/assets/docs/guide/starterkits/vectorizer-editor.md +0 -466
- package/assets/docs/guide/starterkits/version-history.md +0 -745
- package/assets/docs/guide/starterkits/video-animations.md +0 -853
- package/assets/docs/guide/starterkits/video-captions.md +0 -884
- package/assets/docs/guide/starterkits/video-editing.md +0 -25
- package/assets/docs/guide/starterkits/video-editor.md +0 -696
- package/assets/docs/guide/starterkits/video-export-options.md +0 -676
- package/assets/docs/guide/starterkits/viewer.md +0 -400
- package/assets/docs/guide/starterkits.md +0 -41
- package/assets/docs/guide/stickers-and-shapes/create-edit/vector-edit.md +0 -362
- package/assets/docs/guide/text/custom-fonts.md +0 -401
- package/assets/docs/guide/text/decorations.md +0 -330
- package/assets/docs/guide/text/enumerations.md +0 -258
- package/assets/docs/guide/to-v1-10.md +0 -131
- package/assets/docs/guide/to-v1-13.md +0 -165
- package/assets/docs/guide/to-v1-32.md +0 -110
- package/assets/docs/guide/to-v1-69.md +0 -468
- package/assets/docs/guide/to-v1-72.md +0 -193
- package/assets/docs/guide/use-templates/library.md +0 -450
- package/assets/docs/guide/user-interface/ai-integration/audio-generation.md +0 -428
- package/assets/docs/guide/user-interface/ai-integration/auto-captions.md +0 -337
- package/assets/docs/guide/user-interface/ai-integration/custom-provider.md +0 -853
- package/assets/docs/guide/user-interface/ai-integration/gateway-provider.md +0 -1045
- package/assets/docs/guide/user-interface/ai-integration/image-generation.md +0 -641
- package/assets/docs/guide/user-interface/ai-integration/integrate.md +0 -966
- package/assets/docs/guide/user-interface/ai-integration/proxy-server.md +0 -99
- package/assets/docs/guide/user-interface/ai-integration/text-generation.md +0 -498
- package/assets/docs/guide/user-interface/ai-integration/video-generation.md +0 -493
- package/assets/docs/guide/user-interface/ai-integration.md +0 -30
- package/assets/docs/guide/user-interface/appearance/change-ui-font.md +0 -316
- package/assets/docs/guide/user-interface/appearance/custom-labels.md +0 -509
- package/assets/docs/guide/user-interface/appearance/icons.md +0 -373
- package/assets/docs/guide/user-interface/appearance/theming.md +0 -665
- package/assets/docs/guide/user-interface/appearance.md +0 -23
- package/assets/docs/guide/user-interface/build-your-own-ui.md +0 -620
- package/assets/docs/guide/user-interface/customization/canvas-menu.md +0 -412
- package/assets/docs/guide/user-interface/customization/canvas.md +0 -281
- package/assets/docs/guide/user-interface/customization/color-palette.md +0 -413
- package/assets/docs/guide/user-interface/customization/crop-presets.md +0 -384
- package/assets/docs/guide/user-interface/customization/disable-or-enable.md +0 -676
- package/assets/docs/guide/user-interface/customization/dock.md +0 -399
- package/assets/docs/guide/user-interface/customization/force-crop.md +0 -289
- package/assets/docs/guide/user-interface/customization/inspector-bar.md +0 -371
- package/assets/docs/guide/user-interface/customization/navigation-bar.md +0 -516
- package/assets/docs/guide/user-interface/customization/page-format.md +0 -436
- package/assets/docs/guide/user-interface/customization/panel.md +0 -605
- package/assets/docs/guide/user-interface/customization/quick-start/add-action-buttons.md +0 -531
- package/assets/docs/guide/user-interface/customization/quick-start/add-dock-buttons.md +0 -358
- package/assets/docs/guide/user-interface/customization/quick-start/create-custom-components.md +0 -374
- package/assets/docs/guide/user-interface/customization/quick-start/reorder-components.md +0 -323
- package/assets/docs/guide/user-interface/customization/quick-start/show-hide-components.md +0 -294
- package/assets/docs/guide/user-interface/customization/quick-start.md +0 -12
- package/assets/docs/guide/user-interface/customization/reference/component-order-api.md +0 -519
- package/assets/docs/guide/user-interface/customization/reference/component-reference.md +0 -333
- package/assets/docs/guide/user-interface/customization/reference.md +0 -12
- package/assets/docs/guide/user-interface/customization.md +0 -39
- package/assets/docs/guide/user-interface/localization.md +0 -633
- package/assets/docs/guide/user-interface/overview.md +0 -167
- package/assets/docs/guide/user-interface/ui-extensions/add-custom-feature.md +0 -411
- package/assets/docs/guide/user-interface/ui-extensions/asset-library.md +0 -721
- package/assets/docs/guide/user-interface/ui-extensions/create-custom-panel.md +0 -331
- package/assets/docs/guide/user-interface/ui-extensions/customize-behaviour.md +0 -553
- package/assets/docs/guide/user-interface/ui-extensions/notifications-and-dialogs.md +0 -672
- package/assets/docs/guide/user-interface/ui-extensions/quick-actions.md +0 -415
- package/assets/docs/guide/user-interface/ui-extensions/register-new-component.md +0 -521
- package/assets/docs/guide/user-interface/ui-extensions.md +0 -26
- package/assets/docs/guide/user-interface.md +0 -25
- package/assets/prompts/evals-assetGenerate.md +0 -12
- package/assets/prompts/evals-brutalistCore.md +0 -34
- package/assets/prompts/evals-danskCatalogue.md +0 -31
- package/assets/prompts/evals-exportRoundTrip.md +0 -12
- package/assets/prompts/evals-inspectPriorCode.md +0 -16
- package/assets/prompts/evals-listProjectFiles.md +0 -6
- package/assets/prompts/evals-readAndExplainScript.md +0 -6
- package/assets/prompts/evals-resumeAcrossRestart.md +0 -15
- package/assets/prompts/evals-rewindRecovery.md +0 -10
- package/assets/prompts/evals-searchAcrossFiles.md +0 -6
- package/assets/prompts/evals-weddingCard.md +0 -20
- package/assets/prompts/explain.md +0 -6
- package/assets/prompts/review.md +0 -6
- package/dist/frontmatter.d.ts +0 -15
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -46
- package/dist/frontmatter.js.map +0 -1
- package/dist/test/test/frontmatter.test.d.ts +0 -2
- package/dist/test/test/frontmatter.test.d.ts.map +0 -1
- package/dist/test/test/frontmatter.test.js +0 -55
- package/dist/test/test/frontmatter.test.js.map +0 -1
|
@@ -1,721 +0,0 @@
|
|
|
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) > [User Interface](./user-interface.md) > [UI Extensions](./user-interface/ui-extensions.md) > [Asset Library](./user-interface/ui-extensions/asset-library.md)
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Extend the asset library by adding custom asset sources, enabling user uploads, and organizing content with groups and categories.
|
|
8
|
-
|
|
9
|
-

|
|
10
|
-
|
|
11
|
-
> **Reading time:** 15 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-user-interface-ui-extensions-asset-library-browser)
|
|
17
|
-
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-user-interface-ui-extensions-asset-library-browser)
|
|
18
|
-
> - [Live demo](https://img.ly/docs/cesdk/examples/guides-user-interface-ui-extensions-asset-library-browser/)
|
|
19
|
-
|
|
20
|
-
CE.SDK's asset library lets users browse and add media to designs. You can extend this system by registering custom asset sources that fetch content from your own APIs, DAM systems, or third-party services like Unsplash.
|
|
21
|
-
|
|
22
|
-
```typescript file=@cesdk_web_examples/guides-user-interface-ui-extensions-asset-library-browser/browser.ts reference-only
|
|
23
|
-
import type {
|
|
24
|
-
EditorPlugin,
|
|
25
|
-
EditorPluginContext,
|
|
26
|
-
AssetQueryData,
|
|
27
|
-
AssetsQueryResult,
|
|
28
|
-
AssetResult
|
|
29
|
-
} from '@cesdk/cesdk-js';
|
|
30
|
-
import { createApi, OrderBy } from 'unsplash-js';
|
|
31
|
-
import {
|
|
32
|
-
BlurAssetSource,
|
|
33
|
-
ColorPaletteAssetSource,
|
|
34
|
-
CropPresetsAssetSource,
|
|
35
|
-
DemoAssetSources,
|
|
36
|
-
EffectsAssetSource,
|
|
37
|
-
FiltersAssetSource,
|
|
38
|
-
PagePresetsAssetSource,
|
|
39
|
-
StickerAssetSource,
|
|
40
|
-
TextAssetSource,
|
|
41
|
-
TextComponentAssetSource,
|
|
42
|
-
TypefaceAssetSource,
|
|
43
|
-
UploadAssetSources,
|
|
44
|
-
VectorShapeAssetSource
|
|
45
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
46
|
-
import { DesignEditorConfig } from './design-editor/plugin';
|
|
47
|
-
import packageJson from './package.json';
|
|
48
|
-
|
|
49
|
-
// Create Unsplash API client with proxy URL
|
|
50
|
-
// For production, use your own Unsplash proxy with your API key
|
|
51
|
-
const unsplashApi = createApi({
|
|
52
|
-
apiUrl: 'https://api.img.ly/unsplashProxy'
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
// Transform Unsplash photo to CE.SDK AssetResult format
|
|
56
|
-
function transformToAssetResult(photo: {
|
|
57
|
-
id: string;
|
|
58
|
-
description: string | null;
|
|
59
|
-
alt_description: string | null;
|
|
60
|
-
width: number;
|
|
61
|
-
height: number;
|
|
62
|
-
urls: { regular: string; small: string };
|
|
63
|
-
user: { name: string; links: { html: string } };
|
|
64
|
-
}): AssetResult {
|
|
65
|
-
return {
|
|
66
|
-
id: photo.id,
|
|
67
|
-
label: photo.alt_description || photo.description || 'Unsplash Photo',
|
|
68
|
-
tags: photo.alt_description?.split(' ').slice(0, 5),
|
|
69
|
-
meta: {
|
|
70
|
-
uri: photo.urls.regular,
|
|
71
|
-
thumbUri: photo.urls.small,
|
|
72
|
-
blockType: '//ly.img.ubq/graphic',
|
|
73
|
-
fillType: '//ly.img.ubq/fill/image',
|
|
74
|
-
shapeType: '//ly.img.ubq/shape/rect',
|
|
75
|
-
kind: 'image',
|
|
76
|
-
width: photo.width,
|
|
77
|
-
height: photo.height
|
|
78
|
-
},
|
|
79
|
-
credits: {
|
|
80
|
-
name: photo.user.name,
|
|
81
|
-
url: photo.user.links.html
|
|
82
|
-
},
|
|
83
|
-
utm: {
|
|
84
|
-
source: 'CE.SDK Demo',
|
|
85
|
-
medium: 'referral'
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Fetch photos from Unsplash API
|
|
91
|
-
async function fetchUnsplashPhotos(
|
|
92
|
-
queryData: AssetQueryData
|
|
93
|
-
): Promise<{ photos: AssetResult[]; total: number }> {
|
|
94
|
-
// Unsplash uses 1-indexed pages, CE.SDK uses 0-indexed
|
|
95
|
-
const page = queryData.page + 1;
|
|
96
|
-
|
|
97
|
-
if (queryData.query) {
|
|
98
|
-
// Search endpoint for query-based searches
|
|
99
|
-
const response = await unsplashApi.search.getPhotos({
|
|
100
|
-
query: queryData.query,
|
|
101
|
-
page,
|
|
102
|
-
perPage: queryData.perPage
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
if (response.type === 'error') {
|
|
106
|
-
throw new Error('Failed to search Unsplash photos');
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const results = response.response.results;
|
|
110
|
-
return {
|
|
111
|
-
photos: results.map(transformToAssetResult),
|
|
112
|
-
total: response.response.total
|
|
113
|
-
};
|
|
114
|
-
} else {
|
|
115
|
-
// List endpoint for browsing popular photos
|
|
116
|
-
const response = await unsplashApi.photos.list({
|
|
117
|
-
orderBy: OrderBy.POPULAR,
|
|
118
|
-
page,
|
|
119
|
-
perPage: queryData.perPage
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
if (response.type === 'error') {
|
|
123
|
-
throw new Error('Failed to list Unsplash photos');
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const results = response.response.results;
|
|
127
|
-
return {
|
|
128
|
-
photos: results.map(transformToAssetResult),
|
|
129
|
-
// For list endpoint, estimate total as large number since it's paginated
|
|
130
|
-
total: 10000
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
class Example implements EditorPlugin {
|
|
136
|
-
name = packageJson.name;
|
|
137
|
-
version = packageJson.version;
|
|
138
|
-
|
|
139
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
140
|
-
if (!cesdk) {
|
|
141
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
await cesdk.addPlugin(new DesignEditorConfig());
|
|
145
|
-
// Add asset source plugins
|
|
146
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
147
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
148
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
149
|
-
await cesdk.addPlugin(
|
|
150
|
-
new UploadAssetSources({ include: ['ly.img.image.upload'] })
|
|
151
|
-
);
|
|
152
|
-
await cesdk.addPlugin(
|
|
153
|
-
new DemoAssetSources({
|
|
154
|
-
include: [
|
|
155
|
-
'ly.img.templates.blank.*',
|
|
156
|
-
'ly.img.templates.presentation.*',
|
|
157
|
-
'ly.img.templates.print.*',
|
|
158
|
-
'ly.img.templates.social.*',
|
|
159
|
-
'ly.img.image.*'
|
|
160
|
-
]
|
|
161
|
-
})
|
|
162
|
-
);
|
|
163
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
164
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
165
|
-
await cesdk.addPlugin(new PagePresetsAssetSource());
|
|
166
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
167
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
168
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
169
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
170
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
171
|
-
|
|
172
|
-
const engine = cesdk.engine;
|
|
173
|
-
|
|
174
|
-
// Create a design scene to work with
|
|
175
|
-
await cesdk.actions.run('scene.create', {
|
|
176
|
-
page: {
|
|
177
|
-
sourceId: 'ly.img.page.presets',
|
|
178
|
-
assetId: 'ly.img.page.presets.print.iso.a6.landscape'
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
// Create an Unsplash asset source with remote API fetching
|
|
183
|
-
engine.asset.addSource({
|
|
184
|
-
id: 'unsplash-images',
|
|
185
|
-
async findAssets(queryData: AssetQueryData): Promise<AssetsQueryResult> {
|
|
186
|
-
try {
|
|
187
|
-
const { photos, total } = await fetchUnsplashPhotos(queryData);
|
|
188
|
-
|
|
189
|
-
// Calculate if there are more pages
|
|
190
|
-
const startIndex = queryData.page * queryData.perPage;
|
|
191
|
-
const hasNextPage = startIndex + photos.length < total;
|
|
192
|
-
|
|
193
|
-
return {
|
|
194
|
-
assets: photos,
|
|
195
|
-
currentPage: queryData.page,
|
|
196
|
-
nextPage: hasNextPage ? queryData.page + 1 : undefined,
|
|
197
|
-
total
|
|
198
|
-
};
|
|
199
|
-
} catch (error) {
|
|
200
|
-
console.error('Failed to fetch Unsplash photos:', error);
|
|
201
|
-
return {
|
|
202
|
-
assets: [],
|
|
203
|
-
currentPage: queryData.page,
|
|
204
|
-
nextPage: undefined,
|
|
205
|
-
total: 0
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
// Provide available groups for filtering
|
|
210
|
-
async getGroups(): Promise<string[]> {
|
|
211
|
-
return ['nature', 'architecture', 'people', 'animals'];
|
|
212
|
-
},
|
|
213
|
-
// Unsplash credits and license
|
|
214
|
-
credits: {
|
|
215
|
-
name: 'Unsplash',
|
|
216
|
-
url: 'https://unsplash.com'
|
|
217
|
-
},
|
|
218
|
-
license: {
|
|
219
|
-
name: 'Unsplash License',
|
|
220
|
-
url: 'https://unsplash.com/license'
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
|
|
224
|
-
// Create a local asset source for user uploads
|
|
225
|
-
engine.asset.addLocalSource('user-uploads', [
|
|
226
|
-
'image/jpeg',
|
|
227
|
-
'image/png',
|
|
228
|
-
'image/webp'
|
|
229
|
-
]);
|
|
230
|
-
|
|
231
|
-
// Add a custom asset library panel to display Unsplash images
|
|
232
|
-
cesdk.ui.addAssetLibraryEntry({
|
|
233
|
-
id: 'unsplash-panel',
|
|
234
|
-
sourceIds: ['unsplash-images'],
|
|
235
|
-
title: 'Unsplash Images',
|
|
236
|
-
icon: 'ly.img.image',
|
|
237
|
-
gridColumns: 3,
|
|
238
|
-
gridItemHeight: 'square',
|
|
239
|
-
cardLabel: (asset: AssetResult) => asset.label || '',
|
|
240
|
-
cardStyle: (asset: AssetResult) => ({
|
|
241
|
-
backgroundImage: `url(${asset.meta?.thumbUri})`,
|
|
242
|
-
backgroundSize: 'cover',
|
|
243
|
-
backgroundPosition: 'center'
|
|
244
|
-
})
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
// Add an asset library panel for user uploads
|
|
248
|
-
cesdk.ui.addAssetLibraryEntry({
|
|
249
|
-
id: 'uploads-panel',
|
|
250
|
-
sourceIds: ['user-uploads'],
|
|
251
|
-
title: 'My Uploads',
|
|
252
|
-
icon: 'ly.img.upload',
|
|
253
|
-
gridColumns: 3,
|
|
254
|
-
gridItemHeight: 'square',
|
|
255
|
-
canAdd: true,
|
|
256
|
-
cardLabel: (asset: AssetResult) => asset.label || '',
|
|
257
|
-
cardStyle: (asset: AssetResult) => ({
|
|
258
|
-
backgroundImage: `url(${asset.meta?.thumbUri})`,
|
|
259
|
-
backgroundSize: 'cover',
|
|
260
|
-
backgroundPosition: 'center'
|
|
261
|
-
})
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
// Set dock to show both Unsplash and Uploads panels
|
|
265
|
-
cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
|
|
266
|
-
{
|
|
267
|
-
id: 'ly.img.assetLibrary.dock',
|
|
268
|
-
key: 'unsplash-images',
|
|
269
|
-
icon: '@imgly/Image',
|
|
270
|
-
label: 'Unsplash',
|
|
271
|
-
entries: ['unsplash-panel']
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
id: 'ly.img.assetLibrary.dock',
|
|
275
|
-
key: 'user-uploads',
|
|
276
|
-
icon: '@imgly/Upload',
|
|
277
|
-
label: 'Uploads',
|
|
278
|
-
entries: ['uploads-panel']
|
|
279
|
-
}
|
|
280
|
-
]);
|
|
281
|
-
|
|
282
|
-
// Register middleware to handle asset application
|
|
283
|
-
engine.asset.registerApplyMiddleware(
|
|
284
|
-
async (sourceId, assetResult, apply, _context) => {
|
|
285
|
-
// Log asset application for debugging
|
|
286
|
-
console.log(`Applying asset from source: ${sourceId}`);
|
|
287
|
-
console.log('Asset:', assetResult.label);
|
|
288
|
-
|
|
289
|
-
// For Unsplash, you would typically track the download here
|
|
290
|
-
// using the download_location URL to comply with Unsplash guidelines
|
|
291
|
-
|
|
292
|
-
// Call the original apply function to create the block
|
|
293
|
-
const blockId = await apply(sourceId, assetResult);
|
|
294
|
-
|
|
295
|
-
return blockId;
|
|
296
|
-
}
|
|
297
|
-
);
|
|
298
|
-
|
|
299
|
-
// Query available asset sources
|
|
300
|
-
const allSources = engine.asset.findAllSources();
|
|
301
|
-
console.log('All asset sources:', allSources);
|
|
302
|
-
|
|
303
|
-
// Get metadata from the Unsplash source
|
|
304
|
-
const credits = engine.asset.getCredits('unsplash-images');
|
|
305
|
-
console.log('Source credits:', credits);
|
|
306
|
-
|
|
307
|
-
const license = engine.asset.getLicense('unsplash-images');
|
|
308
|
-
console.log('Source license:', license);
|
|
309
|
-
|
|
310
|
-
// Query and manage asset library entries
|
|
311
|
-
const allEntries = cesdk.ui.findAllAssetLibraryEntries();
|
|
312
|
-
console.log('All asset library entries:', allEntries);
|
|
313
|
-
|
|
314
|
-
// Get the Unsplash panel entry
|
|
315
|
-
const unsplashEntry = cesdk.ui.getAssetLibraryEntry('unsplash-panel');
|
|
316
|
-
console.log('Unsplash entry:', unsplashEntry);
|
|
317
|
-
|
|
318
|
-
// Update the panel configuration
|
|
319
|
-
cesdk.ui.updateAssetLibraryEntry('unsplash-panel', {
|
|
320
|
-
gridColumns: 4
|
|
321
|
-
});
|
|
322
|
-
|
|
323
|
-
// Open the Unsplash asset library panel on startup
|
|
324
|
-
cesdk.ui.openPanel('//ly.img.panel/assetLibrary', {
|
|
325
|
-
payload: {
|
|
326
|
-
entries: ['unsplash-panel'],
|
|
327
|
-
title: 'Unsplash'
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
export default Example;
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
This guide covers creating custom asset sources, enabling user uploads, organizing assets with groups, and displaying content in the asset library UI.
|
|
337
|
-
|
|
338
|
-
## Creating Custom Asset Sources
|
|
339
|
-
|
|
340
|
-
We register a source with `engine.asset.addSource()`, providing a unique ID and a `findAssets` function. This function receives query parameters and returns paginated asset results with metadata.
|
|
341
|
-
|
|
342
|
-
```typescript highlight-unsplash-asset-source
|
|
343
|
-
// Create an Unsplash asset source with remote API fetching
|
|
344
|
-
engine.asset.addSource({
|
|
345
|
-
id: 'unsplash-images',
|
|
346
|
-
async findAssets(queryData: AssetQueryData): Promise<AssetsQueryResult> {
|
|
347
|
-
try {
|
|
348
|
-
const { photos, total } = await fetchUnsplashPhotos(queryData);
|
|
349
|
-
|
|
350
|
-
// Calculate if there are more pages
|
|
351
|
-
const startIndex = queryData.page * queryData.perPage;
|
|
352
|
-
const hasNextPage = startIndex + photos.length < total;
|
|
353
|
-
|
|
354
|
-
return {
|
|
355
|
-
assets: photos,
|
|
356
|
-
currentPage: queryData.page,
|
|
357
|
-
nextPage: hasNextPage ? queryData.page + 1 : undefined,
|
|
358
|
-
total
|
|
359
|
-
};
|
|
360
|
-
} catch (error) {
|
|
361
|
-
console.error('Failed to fetch Unsplash photos:', error);
|
|
362
|
-
return {
|
|
363
|
-
assets: [],
|
|
364
|
-
currentPage: queryData.page,
|
|
365
|
-
nextPage: undefined,
|
|
366
|
-
total: 0
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
// Provide available groups for filtering
|
|
371
|
-
async getGroups(): Promise<string[]> {
|
|
372
|
-
return ['nature', 'architecture', 'people', 'animals'];
|
|
373
|
-
},
|
|
374
|
-
// Unsplash credits and license
|
|
375
|
-
credits: {
|
|
376
|
-
name: 'Unsplash',
|
|
377
|
-
url: 'https://unsplash.com'
|
|
378
|
-
},
|
|
379
|
-
license: {
|
|
380
|
-
name: 'Unsplash License',
|
|
381
|
-
url: 'https://unsplash.com/license'
|
|
382
|
-
}
|
|
383
|
-
});
|
|
384
|
-
```
|
|
385
|
-
|
|
386
|
-
The source configuration includes:
|
|
387
|
-
|
|
388
|
-
- A unique `id` to identify the source
|
|
389
|
-
- The `findAssets` function that returns assets matching the query
|
|
390
|
-
- Optional `getGroups` function to provide filtering categories
|
|
391
|
-
- Credits and license information for attribution
|
|
392
|
-
|
|
393
|
-
The `findAssets` function receives query parameters including search text, groups, tags, pagination, and locale. Return matching results with proper pagination metadata.
|
|
394
|
-
|
|
395
|
-
## Enabling User Uploads
|
|
396
|
-
|
|
397
|
-
Local sources support dynamic asset management at runtime. Create them with `engine.asset.addLocalSource()` and add or remove individual assets programmatically.
|
|
398
|
-
|
|
399
|
-
```typescript highlight-local-uploads
|
|
400
|
-
// Create a local asset source for user uploads
|
|
401
|
-
engine.asset.addLocalSource('user-uploads', [
|
|
402
|
-
'image/jpeg',
|
|
403
|
-
'image/png',
|
|
404
|
-
'image/webp'
|
|
405
|
-
]);
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
When creating the source, specify supported MIME types to restrict which file types can be added. This is useful for user uploads or runtime-generated content.
|
|
409
|
-
|
|
410
|
-
The `addAssetToSource` method adds new assets that become immediately available in query results. Each asset needs an ID, optional localized labels and tags, and metadata with URIs and block types.
|
|
411
|
-
|
|
412
|
-
## Organizing Assets with Groups
|
|
413
|
-
|
|
414
|
-
Groups help users find assets through filtering. Return group arrays in asset results to organize content into categories.
|
|
415
|
-
|
|
416
|
-
```typescript highlight-groups
|
|
417
|
-
// Provide available groups for filtering
|
|
418
|
-
async getGroups(): Promise<string[]> {
|
|
419
|
-
return ['nature', 'architecture', 'people', 'animals'];
|
|
420
|
-
},
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
Implement `getGroups()` to provide the complete list of available categories. This populates filter options in the asset library panel. Users can then filter results by selecting specific groups.
|
|
424
|
-
|
|
425
|
-
## Adding Asset Library Panels
|
|
426
|
-
|
|
427
|
-
Asset library entries define how a panel looks and what it displays. Each entry connects one or more asset sources to a visual presentation with grid layouts, card styling, and interaction behaviors.
|
|
428
|
-
|
|
429
|
-
```typescript highlight-asset-library-panel
|
|
430
|
-
// Add a custom asset library panel to display Unsplash images
|
|
431
|
-
cesdk.ui.addAssetLibraryEntry({
|
|
432
|
-
id: 'unsplash-panel',
|
|
433
|
-
sourceIds: ['unsplash-images'],
|
|
434
|
-
title: 'Unsplash Images',
|
|
435
|
-
icon: 'ly.img.image',
|
|
436
|
-
gridColumns: 3,
|
|
437
|
-
gridItemHeight: 'square',
|
|
438
|
-
cardLabel: (asset: AssetResult) => asset.label || '',
|
|
439
|
-
cardStyle: (asset: AssetResult) => ({
|
|
440
|
-
backgroundImage: `url(${asset.meta?.thumbUri})`,
|
|
441
|
-
backgroundSize: 'cover',
|
|
442
|
-
backgroundPosition: 'center'
|
|
443
|
-
})
|
|
444
|
-
});
|
|
445
|
-
|
|
446
|
-
// Add an asset library panel for user uploads
|
|
447
|
-
cesdk.ui.addAssetLibraryEntry({
|
|
448
|
-
id: 'uploads-panel',
|
|
449
|
-
sourceIds: ['user-uploads'],
|
|
450
|
-
title: 'My Uploads',
|
|
451
|
-
icon: 'ly.img.upload',
|
|
452
|
-
gridColumns: 3,
|
|
453
|
-
gridItemHeight: 'square',
|
|
454
|
-
canAdd: true,
|
|
455
|
-
cardLabel: (asset: AssetResult) => asset.label || '',
|
|
456
|
-
cardStyle: (asset: AssetResult) => ({
|
|
457
|
-
backgroundImage: `url(${asset.meta?.thumbUri})`,
|
|
458
|
-
backgroundSize: 'cover',
|
|
459
|
-
backgroundPosition: 'center'
|
|
460
|
-
})
|
|
461
|
-
});
|
|
462
|
-
|
|
463
|
-
// Set dock to show both Unsplash and Uploads panels
|
|
464
|
-
cesdk.ui.setComponentOrder({ in: 'ly.img.dock' }, [
|
|
465
|
-
{
|
|
466
|
-
id: 'ly.img.assetLibrary.dock',
|
|
467
|
-
key: 'unsplash-images',
|
|
468
|
-
icon: '@imgly/Image',
|
|
469
|
-
label: 'Unsplash',
|
|
470
|
-
entries: ['unsplash-panel']
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
id: 'ly.img.assetLibrary.dock',
|
|
474
|
-
key: 'user-uploads',
|
|
475
|
-
icon: '@imgly/Upload',
|
|
476
|
-
label: 'Uploads',
|
|
477
|
-
entries: ['uploads-panel']
|
|
478
|
-
}
|
|
479
|
-
]);
|
|
480
|
-
```
|
|
481
|
-
|
|
482
|
-
The panel configuration includes:
|
|
483
|
-
|
|
484
|
-
- `sourceIds` linking to your asset sources
|
|
485
|
-
- Visual settings like grid columns and item height
|
|
486
|
-
- `cardStyle` function to display thumbnails as background images
|
|
487
|
-
- `cardLabel` function to show asset descriptions
|
|
488
|
-
- `canAdd` to enable the upload button for local sources
|
|
489
|
-
|
|
490
|
-
## Creating an Uploads Panel
|
|
491
|
-
|
|
492
|
-
For user uploads, create a dedicated panel that references the local source and enables the add functionality.
|
|
493
|
-
|
|
494
|
-
```typescript highlight-uploads-panel
|
|
495
|
-
// Add an asset library panel for user uploads
|
|
496
|
-
cesdk.ui.addAssetLibraryEntry({
|
|
497
|
-
id: 'uploads-panel',
|
|
498
|
-
sourceIds: ['user-uploads'],
|
|
499
|
-
title: 'My Uploads',
|
|
500
|
-
icon: 'ly.img.upload',
|
|
501
|
-
gridColumns: 3,
|
|
502
|
-
gridItemHeight: 'square',
|
|
503
|
-
canAdd: true,
|
|
504
|
-
cardLabel: (asset: AssetResult) => asset.label || '',
|
|
505
|
-
cardStyle: (asset: AssetResult) => ({
|
|
506
|
-
backgroundImage: `url(${asset.meta?.thumbUri})`,
|
|
507
|
-
backgroundSize: 'cover',
|
|
508
|
-
backgroundPosition: 'center'
|
|
509
|
-
})
|
|
510
|
-
});
|
|
511
|
-
```
|
|
512
|
-
|
|
513
|
-
Setting `canAdd: true` displays an upload button in the panel. When users click it, they can add new assets to the local source.
|
|
514
|
-
|
|
515
|
-
Use `setComponentOrder` to control which panels appear in the dock and their order.
|
|
516
|
-
|
|
517
|
-
## Using Apply Middleware
|
|
518
|
-
|
|
519
|
-
Register middleware with `engine.asset.registerApplyMiddleware()` to intercept all asset applications regardless of source. Middleware can modify data, track usage, or implement custom placement logic.
|
|
520
|
-
|
|
521
|
-
```typescript highlight-apply-middleware
|
|
522
|
-
// Register middleware to handle asset application
|
|
523
|
-
engine.asset.registerApplyMiddleware(
|
|
524
|
-
async (sourceId, assetResult, apply, _context) => {
|
|
525
|
-
// Log asset application for debugging
|
|
526
|
-
console.log(`Applying asset from source: ${sourceId}`);
|
|
527
|
-
console.log('Asset:', assetResult.label);
|
|
528
|
-
|
|
529
|
-
// For Unsplash, you would typically track the download here
|
|
530
|
-
// using the download_location URL to comply with Unsplash guidelines
|
|
531
|
-
|
|
532
|
-
// Call the original apply function to create the block
|
|
533
|
-
const blockId = await apply(sourceId, assetResult);
|
|
534
|
-
|
|
535
|
-
return blockId;
|
|
536
|
-
}
|
|
537
|
-
);
|
|
538
|
-
```
|
|
539
|
-
|
|
540
|
-
The middleware receives the source ID, asset result, original apply function, and application context. Call the original apply function and optionally modify the created block afterward.
|
|
541
|
-
|
|
542
|
-
## Querying Asset Sources
|
|
543
|
-
|
|
544
|
-
Inspect registered sources and retrieve their metadata for debugging or displaying attribution.
|
|
545
|
-
|
|
546
|
-
```typescript highlight-query-sources
|
|
547
|
-
// Query available asset sources
|
|
548
|
-
const allSources = engine.asset.findAllSources();
|
|
549
|
-
console.log('All asset sources:', allSources);
|
|
550
|
-
|
|
551
|
-
// Get metadata from the Unsplash source
|
|
552
|
-
const credits = engine.asset.getCredits('unsplash-images');
|
|
553
|
-
console.log('Source credits:', credits);
|
|
554
|
-
|
|
555
|
-
const license = engine.asset.getLicense('unsplash-images');
|
|
556
|
-
console.log('Source license:', license);
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
The `getCredits` and `getLicense` methods return the attribution information provided when registering the source.
|
|
560
|
-
|
|
561
|
-
## Managing Asset Library Entries
|
|
562
|
-
|
|
563
|
-
List, retrieve, and update asset library entries to adjust the UI dynamically.
|
|
564
|
-
|
|
565
|
-
```typescript highlight-manage-library-entries
|
|
566
|
-
// Query and manage asset library entries
|
|
567
|
-
const allEntries = cesdk.ui.findAllAssetLibraryEntries();
|
|
568
|
-
console.log('All asset library entries:', allEntries);
|
|
569
|
-
|
|
570
|
-
// Get the Unsplash panel entry
|
|
571
|
-
const unsplashEntry = cesdk.ui.getAssetLibraryEntry('unsplash-panel');
|
|
572
|
-
console.log('Unsplash entry:', unsplashEntry);
|
|
573
|
-
|
|
574
|
-
// Update the panel configuration
|
|
575
|
-
cesdk.ui.updateAssetLibraryEntry('unsplash-panel', {
|
|
576
|
-
gridColumns: 4
|
|
577
|
-
});
|
|
578
|
-
```
|
|
579
|
-
|
|
580
|
-
These methods let you modify panel configuration at runtime, such as changing the grid layout based on screen size or user preferences.
|
|
581
|
-
|
|
582
|
-
## Remote API Integration Example
|
|
583
|
-
|
|
584
|
-
This example demonstrates fetching images from Unsplash using the `unsplash-js` library. The same pattern applies to any remote API or DAM system.
|
|
585
|
-
|
|
586
|
-
### Setting Up the API Client
|
|
587
|
-
|
|
588
|
-
```typescript highlight-unsplash-api
|
|
589
|
-
// Create Unsplash API client with proxy URL
|
|
590
|
-
// For production, use your own Unsplash proxy with your API key
|
|
591
|
-
const unsplashApi = createApi({
|
|
592
|
-
apiUrl: 'https://api.img.ly/unsplashProxy'
|
|
593
|
-
});
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
The `createApi` function accepts an `apiUrl` parameter pointing to a proxy server. The proxy handles authentication and avoids CORS issues.
|
|
597
|
-
|
|
598
|
-
### Transforming API Responses
|
|
599
|
-
|
|
600
|
-
Transform external API responses into the `AssetResult` structure that CE.SDK expects.
|
|
601
|
-
|
|
602
|
-
```typescript highlight-transform-photo
|
|
603
|
-
// Transform Unsplash photo to CE.SDK AssetResult format
|
|
604
|
-
function transformToAssetResult(photo: {
|
|
605
|
-
id: string;
|
|
606
|
-
description: string | null;
|
|
607
|
-
alt_description: string | null;
|
|
608
|
-
width: number;
|
|
609
|
-
height: number;
|
|
610
|
-
urls: { regular: string; small: string };
|
|
611
|
-
user: { name: string; links: { html: string } };
|
|
612
|
-
}): AssetResult {
|
|
613
|
-
return {
|
|
614
|
-
id: photo.id,
|
|
615
|
-
label: photo.alt_description || photo.description || 'Unsplash Photo',
|
|
616
|
-
tags: photo.alt_description?.split(' ').slice(0, 5),
|
|
617
|
-
meta: {
|
|
618
|
-
uri: photo.urls.regular,
|
|
619
|
-
thumbUri: photo.urls.small,
|
|
620
|
-
blockType: '//ly.img.ubq/graphic',
|
|
621
|
-
fillType: '//ly.img.ubq/fill/image',
|
|
622
|
-
shapeType: '//ly.img.ubq/shape/rect',
|
|
623
|
-
kind: 'image',
|
|
624
|
-
width: photo.width,
|
|
625
|
-
height: photo.height
|
|
626
|
-
},
|
|
627
|
-
credits: {
|
|
628
|
-
name: photo.user.name,
|
|
629
|
-
url: photo.user.links.html
|
|
630
|
-
},
|
|
631
|
-
utm: {
|
|
632
|
-
source: 'CE.SDK Demo',
|
|
633
|
-
medium: 'referral'
|
|
634
|
-
}
|
|
635
|
-
};
|
|
636
|
-
}
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
Map the external fields to CE.SDK properties:
|
|
640
|
-
|
|
641
|
-
- Image URLs for `uri` and `thumbUri`
|
|
642
|
-
- Descriptions for labels and search tags
|
|
643
|
-
- Author information for attribution credits
|
|
644
|
-
|
|
645
|
-
### Fetching from the Remote API
|
|
646
|
-
|
|
647
|
-
```typescript highlight-fetch-unsplash
|
|
648
|
-
// Fetch photos from Unsplash API
|
|
649
|
-
async function fetchUnsplashPhotos(
|
|
650
|
-
queryData: AssetQueryData
|
|
651
|
-
): Promise<{ photos: AssetResult[]; total: number }> {
|
|
652
|
-
// Unsplash uses 1-indexed pages, CE.SDK uses 0-indexed
|
|
653
|
-
const page = queryData.page + 1;
|
|
654
|
-
|
|
655
|
-
if (queryData.query) {
|
|
656
|
-
// Search endpoint for query-based searches
|
|
657
|
-
const response = await unsplashApi.search.getPhotos({
|
|
658
|
-
query: queryData.query,
|
|
659
|
-
page,
|
|
660
|
-
perPage: queryData.perPage
|
|
661
|
-
});
|
|
662
|
-
|
|
663
|
-
if (response.type === 'error') {
|
|
664
|
-
throw new Error('Failed to search Unsplash photos');
|
|
665
|
-
}
|
|
666
|
-
|
|
667
|
-
const results = response.response.results;
|
|
668
|
-
return {
|
|
669
|
-
photos: results.map(transformToAssetResult),
|
|
670
|
-
total: response.response.total
|
|
671
|
-
};
|
|
672
|
-
} else {
|
|
673
|
-
// List endpoint for browsing popular photos
|
|
674
|
-
const response = await unsplashApi.photos.list({
|
|
675
|
-
orderBy: OrderBy.POPULAR,
|
|
676
|
-
page,
|
|
677
|
-
perPage: queryData.perPage
|
|
678
|
-
});
|
|
679
|
-
|
|
680
|
-
if (response.type === 'error') {
|
|
681
|
-
throw new Error('Failed to list Unsplash photos');
|
|
682
|
-
}
|
|
683
|
-
|
|
684
|
-
const results = response.response.results;
|
|
685
|
-
return {
|
|
686
|
-
photos: results.map(transformToAssetResult),
|
|
687
|
-
// For list endpoint, estimate total as large number since it's paginated
|
|
688
|
-
total: 10000
|
|
689
|
-
};
|
|
690
|
-
}
|
|
691
|
-
}
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
Handle pagination differences between your API and CE.SDK. Unsplash uses 1-indexed pages while CE.SDK uses 0-indexed.
|
|
695
|
-
|
|
696
|
-
## Troubleshooting
|
|
697
|
-
|
|
698
|
-
### Assets Not Appearing in UI
|
|
699
|
-
|
|
700
|
-
Verify the source ID appears in an asset library entry's `sourceIds` array. Check that `findAssets` returns the correct structure with all required fields. Ensure the asset library entry is added to the dock order.
|
|
701
|
-
|
|
702
|
-
### Search Not Working
|
|
703
|
-
|
|
704
|
-
Confirm your `findAssets` function handles the `query` parameter and filters results. Check that asset labels and tags are properly set for the requested locale.
|
|
705
|
-
|
|
706
|
-
### Upload Errors
|
|
707
|
-
|
|
708
|
-
Validate MIME types against `getSupportedMimeTypes()` before attempting to add assets. Ensure local sources are created with `addLocalSource()` before calling `addAssetToSource()`.
|
|
709
|
-
|
|
710
|
-
### Remote API Issues
|
|
711
|
-
|
|
712
|
-
Verify the proxy URL is correct and accessible. Check browser console for CORS errors or API response issues. Ensure proper error handling in the `findAssets` function.
|
|
713
|
-
|
|
714
|
-
---
|
|
715
|
-
|
|
716
|
-
## More Resources
|
|
717
|
-
|
|
718
|
-
- **[Vanilla JS/TS Documentation Index](https://img.ly/docs/cesdk/js.md)** - Browse all Vanilla JS/TS documentation
|
|
719
|
-
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
720
|
-
- **[Web Documentation](./js.md)** - Interactive documentation with examples
|
|
721
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|