@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,641 +1,489 @@
|
|
|
1
|
-
> This is one page of the CE.SDK
|
|
1
|
+
> This is one page of the CE.SDK Node.js documentation. For a complete overview, see the [Node.js Documentation Index](https://img.ly/docs/cesdk/node.md). For all docs in one file, see [llms-full.txt](./llms-full.txt.md).
|
|
2
2
|
|
|
3
3
|
**Navigation:** [Guides](./guides.md) > [Fills](./fills.md) > [Video](./fills/video.md)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
text with videos using CE.SDK's video fill system.
|
|
7
|
+
Video fills let you fill shapes and graphics with video content. Unlike video blocks which represent standalone video elements, video fills apply video as a visual property to existing blocks — similar to how you might fill a shape with an image or color.
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
> **Reading time:** 15 minutes
|
|
9
|
+
> **Reading time:** 10 minutes
|
|
13
10
|
>
|
|
14
11
|
> **Resources:**
|
|
15
12
|
>
|
|
16
13
|
> - [Download examples](https://github.com/imgly/cesdk-web-examples/archive/refs/tags/release-$UBQ_VERSION$.zip)
|
|
17
|
-
>
|
|
18
|
-
> - [
|
|
19
|
-
>
|
|
20
|
-
|
|
21
|
-
Understanding the distinction between **video fills** and **video blocks** is essential. Video fills are fill objects that can be applied to any block supporting fills—shapes, text, backgrounds—to paint them with video content. Video blocks, created with `addVideo()`, are dedicated time-based blocks with full editing capabilities like trimming and duration control. Video fills focus on applying video as a visual treatment, while video blocks provide complete video editing functionality.
|
|
22
|
-
|
|
23
|
-
```typescript file=@cesdk_web_examples/guides-fills-video-browser/browser.ts reference-only
|
|
24
|
-
import type {
|
|
25
|
-
CreativeEngine,
|
|
26
|
-
EditorPlugin,
|
|
27
|
-
EditorPluginContext
|
|
28
|
-
} from '@cesdk/cesdk-js';
|
|
29
|
-
import packageJson from './package.json';
|
|
30
|
-
|
|
31
|
-
import {
|
|
32
|
-
BlurAssetSource,
|
|
33
|
-
CaptionPresetsAssetSource,
|
|
34
|
-
ColorPaletteAssetSource,
|
|
35
|
-
CropPresetsAssetSource,
|
|
36
|
-
DemoAssetSources,
|
|
37
|
-
EffectsAssetSource,
|
|
38
|
-
FiltersAssetSource,
|
|
39
|
-
PagePresetsAssetSource,
|
|
40
|
-
StickerAssetSource,
|
|
41
|
-
TextAssetSource,
|
|
42
|
-
TextComponentAssetSource,
|
|
43
|
-
TypefaceAssetSource,
|
|
44
|
-
UploadAssetSources,
|
|
45
|
-
VectorShapeAssetSource
|
|
46
|
-
} from '@cesdk/cesdk-js/plugins';
|
|
47
|
-
import { VideoEditorConfig } from './video-editor/plugin';
|
|
48
|
-
import { calculateGridLayout } from './utils';
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* CE.SDK Plugin: Video Fills Guide
|
|
52
|
-
*
|
|
53
|
-
* Demonstrates video fills in CE.SDK:
|
|
54
|
-
* - Creating video fills
|
|
55
|
-
* - Setting video sources (single URI and source sets)
|
|
56
|
-
* - Applying video fills to blocks
|
|
57
|
-
* - Content fill modes (Cover, Contain)
|
|
58
|
-
* - Loading video resources
|
|
59
|
-
* - Getting video thumbnails
|
|
60
|
-
* - Different use cases (backgrounds, shapes, text)
|
|
61
|
-
*/
|
|
62
|
-
class Example implements EditorPlugin {
|
|
63
|
-
name = packageJson.name;
|
|
64
|
-
version = packageJson.version;
|
|
65
|
-
|
|
66
|
-
async initialize({ cesdk }: EditorPluginContext): Promise<void> {
|
|
67
|
-
if (!cesdk) {
|
|
68
|
-
throw new Error('CE.SDK instance is required for this plugin');
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
await cesdk.addPlugin(new VideoEditorConfig());
|
|
72
|
-
|
|
73
|
-
// Add asset source plugins
|
|
74
|
-
await cesdk.addPlugin(new BlurAssetSource());
|
|
75
|
-
await cesdk.addPlugin(new CaptionPresetsAssetSource());
|
|
76
|
-
await cesdk.addPlugin(new ColorPaletteAssetSource());
|
|
77
|
-
await cesdk.addPlugin(new CropPresetsAssetSource());
|
|
78
|
-
await cesdk.addPlugin(
|
|
79
|
-
new UploadAssetSources({
|
|
80
|
-
include: [
|
|
81
|
-
'ly.img.image.upload',
|
|
82
|
-
'ly.img.video.upload',
|
|
83
|
-
'ly.img.audio.upload'
|
|
84
|
-
]
|
|
85
|
-
})
|
|
86
|
-
);
|
|
87
|
-
await cesdk.addPlugin(
|
|
88
|
-
new DemoAssetSources({
|
|
89
|
-
include: [
|
|
90
|
-
'ly.img.templates.video.*',
|
|
91
|
-
'ly.img.image.*',
|
|
92
|
-
'ly.img.audio.*',
|
|
93
|
-
'ly.img.video.*'
|
|
94
|
-
]
|
|
95
|
-
})
|
|
96
|
-
);
|
|
97
|
-
await cesdk.addPlugin(new EffectsAssetSource());
|
|
98
|
-
await cesdk.addPlugin(new FiltersAssetSource());
|
|
99
|
-
await cesdk.addPlugin(
|
|
100
|
-
new PagePresetsAssetSource({
|
|
101
|
-
include: [
|
|
102
|
-
'ly.img.page.presets.instagram.*',
|
|
103
|
-
'ly.img.page.presets.facebook.*',
|
|
104
|
-
'ly.img.page.presets.x.*',
|
|
105
|
-
'ly.img.page.presets.linkedin.*',
|
|
106
|
-
'ly.img.page.presets.pinterest.*',
|
|
107
|
-
'ly.img.page.presets.tiktok.*',
|
|
108
|
-
'ly.img.page.presets.youtube.*',
|
|
109
|
-
'ly.img.page.presets.video.*'
|
|
110
|
-
]
|
|
111
|
-
})
|
|
112
|
-
);
|
|
113
|
-
await cesdk.addPlugin(new StickerAssetSource());
|
|
114
|
-
await cesdk.addPlugin(new TextAssetSource());
|
|
115
|
-
await cesdk.addPlugin(new TextComponentAssetSource());
|
|
116
|
-
await cesdk.addPlugin(new TypefaceAssetSource());
|
|
117
|
-
await cesdk.addPlugin(new VectorShapeAssetSource());
|
|
118
|
-
|
|
119
|
-
await cesdk.actions.run('scene.create', {
|
|
120
|
-
layout: 'DepthStack',
|
|
121
|
-
page: {
|
|
122
|
-
sourceId: 'ly.img.page.presets',
|
|
123
|
-
assetId: 'ly.img.page.presets.instagram.story',
|
|
124
|
-
color: { r: 0, g: 0, b: 0, a: 1 }
|
|
125
|
-
}
|
|
126
|
-
});
|
|
14
|
+
>
|
|
15
|
+
> - [View source on GitHub](https://github.com/imgly/cesdk-web-examples/tree/release-$UBQ_VERSION$/guides-fills-video-server-js)
|
|
16
|
+
>
|
|
17
|
+
> - [Open in StackBlitz](https://stackblitz.com/github/imgly/cesdk-web-examples/tree/v$UBQ_VERSION$/guides-fills-video-server-js)
|
|
127
18
|
|
|
128
|
-
|
|
129
|
-
const pages = engine.block.findByType('page');
|
|
130
|
-
const page = pages.length > 0 ? pages[0] : engine.scene.get();
|
|
19
|
+
## Context: Video Fills vs Video Blocks
|
|
131
20
|
|
|
132
|
-
|
|
133
|
-
const pageWidth = engine.block.getWidth(page);
|
|
134
|
-
const pageHeight = engine.block.getHeight(page);
|
|
135
|
-
const layout = calculateGridLayout(pageWidth, pageHeight, 8);
|
|
136
|
-
const { blockWidth, blockHeight, getPosition } = layout;
|
|
21
|
+
**Video fills** apply video as a fill property to graphic blocks. This is useful when you want to use video as a texture within shapes, mask video to specific areas, or create video-filled design elements. Video fills attach to graphic blocks via the fill API.
|
|
137
22
|
|
|
138
|
-
|
|
139
|
-
|
|
23
|
+
**Video blocks** are standalone elements that represent video content directly on the canvas. They're created with `engine.block.create('video')` and represent complete video clips.
|
|
24
|
+
|
|
25
|
+
## Reference Example
|
|
140
26
|
|
|
141
|
-
|
|
142
|
-
const sampleBlock = engine.block.create('graphic');
|
|
143
|
-
engine.block.setShape(sampleBlock, engine.block.createShape('rect'));
|
|
27
|
+
The following code demonstrates the complete video fills API. Below, each section is explained in detail.
|
|
144
28
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
console.log('Block supports fills:', supportsFills); // true for graphic blocks
|
|
29
|
+
```typescript file=@cesdk_web_examples/guides-fills-video-server-js/server-js.ts reference-only
|
|
30
|
+
import CreativeEngine from '@cesdk/node';
|
|
31
|
+
import { config } from 'dotenv';
|
|
149
32
|
|
|
150
|
-
|
|
151
|
-
|
|
33
|
+
config();
|
|
34
|
+
|
|
35
|
+
async function main() {
|
|
36
|
+
const engine = await CreativeEngine.init({
|
|
37
|
+
baseURL: process.env.IMGLY_LOCAL_ASSETS_URL
|
|
38
|
+
// license: process.env.CESDK_LICENSE,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
// Create a scene with a page
|
|
43
|
+
const scene = engine.scene.create('DepthStack');
|
|
44
|
+
const page = engine.block.create('page');
|
|
45
|
+
engine.block.setWidth(page, 800);
|
|
46
|
+
engine.block.setHeight(page, 600);
|
|
47
|
+
engine.block.appendChild(scene, page);
|
|
48
|
+
|
|
49
|
+
// Check if block supports fills before accessing fill APIs
|
|
50
|
+
const testBlock = engine.block.create('graphic');
|
|
51
|
+
const canHaveFill = engine.block.supportsFill(testBlock);
|
|
52
|
+
console.log('Block supports fills:', canHaveFill);
|
|
53
|
+
|
|
54
|
+
engine.block.destroy(testBlock);
|
|
55
|
+
|
|
56
|
+
const videoUri = 'https://img.ly/static/ubq_video_samples/bbb.mp4';
|
|
57
|
+
|
|
58
|
+
// ===== Section 1: Create Video Fill =====
|
|
59
|
+
// Create a graphic block with a video fill
|
|
152
60
|
const basicBlock = engine.block.create('graphic');
|
|
153
61
|
engine.block.setShape(basicBlock, engine.block.createShape('rect'));
|
|
154
|
-
engine.block.setWidth(basicBlock,
|
|
155
|
-
engine.block.setHeight(basicBlock,
|
|
156
|
-
engine.block.appendChild(page, basicBlock);
|
|
62
|
+
engine.block.setWidth(basicBlock, 200);
|
|
63
|
+
engine.block.setHeight(basicBlock, 150);
|
|
157
64
|
|
|
158
65
|
// Create a video fill
|
|
159
|
-
const
|
|
66
|
+
const videoFill = engine.block.createFill('video');
|
|
160
67
|
// or using full type name: engine.block.createFill('//ly.img.ubq/fill/video');
|
|
161
68
|
|
|
162
69
|
// Set the video source URI
|
|
163
|
-
engine.block.setString(
|
|
70
|
+
engine.block.setString(videoFill, 'fill/video/fileURI', videoUri);
|
|
164
71
|
|
|
165
72
|
// Apply the fill to the block
|
|
166
|
-
engine.block.setFill(basicBlock,
|
|
73
|
+
engine.block.setFill(basicBlock, videoFill);
|
|
74
|
+
engine.block.appendChild(page, basicBlock);
|
|
167
75
|
|
|
168
76
|
// Get and verify the current fill
|
|
169
77
|
const fillId = engine.block.getFill(basicBlock);
|
|
170
78
|
const fillType = engine.block.getType(fillId);
|
|
171
|
-
// eslint-disable-next-line no-console
|
|
172
79
|
console.log('Fill type:', fillType); // '//ly.img.ubq/fill/video'
|
|
173
80
|
|
|
174
|
-
//
|
|
175
|
-
// Cover mode
|
|
81
|
+
// ===== Section 2: Content Fill Modes =====
|
|
82
|
+
// Cover mode: Fill entire block, may crop video
|
|
176
83
|
const coverBlock = engine.block.create('graphic');
|
|
177
84
|
engine.block.setShape(coverBlock, engine.block.createShape('rect'));
|
|
178
|
-
engine.block.setWidth(coverBlock,
|
|
179
|
-
engine.block.setHeight(coverBlock,
|
|
180
|
-
engine.block.appendChild(page, coverBlock);
|
|
85
|
+
engine.block.setWidth(coverBlock, 200);
|
|
86
|
+
engine.block.setHeight(coverBlock, 150);
|
|
181
87
|
|
|
182
88
|
const coverVideoFill = engine.block.createFill('video');
|
|
183
89
|
engine.block.setString(coverVideoFill, 'fill/video/fileURI', videoUri);
|
|
184
90
|
engine.block.setFill(coverBlock, coverVideoFill);
|
|
91
|
+
engine.block.appendChild(page, coverBlock);
|
|
185
92
|
|
|
186
93
|
// Set content fill mode to Cover
|
|
187
94
|
engine.block.setEnum(coverBlock, 'contentFill/mode', 'Cover');
|
|
188
95
|
|
|
189
96
|
// Get current fill mode
|
|
190
97
|
const coverMode = engine.block.getEnum(coverBlock, 'contentFill/mode');
|
|
191
|
-
// eslint-disable-next-line no-console
|
|
192
98
|
console.log('Cover block fill mode:', coverMode); // 'Cover'
|
|
193
99
|
|
|
194
|
-
//
|
|
195
|
-
// Contain mode fits entire video, may leave empty space
|
|
100
|
+
// Contain mode: Fit entire video, may leave empty space
|
|
196
101
|
const containBlock = engine.block.create('graphic');
|
|
197
102
|
engine.block.setShape(containBlock, engine.block.createShape('rect'));
|
|
198
|
-
engine.block.setWidth(containBlock,
|
|
199
|
-
engine.block.setHeight(containBlock,
|
|
200
|
-
engine.block.appendChild(page, containBlock);
|
|
103
|
+
engine.block.setWidth(containBlock, 200);
|
|
104
|
+
engine.block.setHeight(containBlock, 150);
|
|
201
105
|
|
|
202
106
|
const containVideoFill = engine.block.createFill('video');
|
|
203
107
|
engine.block.setString(containVideoFill, 'fill/video/fileURI', videoUri);
|
|
204
108
|
engine.block.setFill(containBlock, containVideoFill);
|
|
109
|
+
engine.block.appendChild(page, containBlock);
|
|
205
110
|
|
|
206
111
|
// Set content fill mode to Contain
|
|
207
112
|
engine.block.setEnum(containBlock, 'contentFill/mode', 'Contain');
|
|
208
113
|
|
|
114
|
+
// Get current fill mode
|
|
115
|
+
const currentMode = engine.block.getEnum(containBlock, 'contentFill/mode');
|
|
116
|
+
console.log('Current fill mode:', currentMode);
|
|
117
|
+
|
|
118
|
+
// ===== Section 3: Force Load Video Resource =====
|
|
209
119
|
// Force load video resource to access metadata
|
|
210
|
-
const
|
|
211
|
-
engine.block.setShape(
|
|
212
|
-
engine.block.setWidth(
|
|
213
|
-
engine.block.setHeight(
|
|
214
|
-
engine.block.appendChild(page, resourceBlock);
|
|
120
|
+
const metadataBlock = engine.block.create('graphic');
|
|
121
|
+
engine.block.setShape(metadataBlock, engine.block.createShape('rect'));
|
|
122
|
+
engine.block.setWidth(metadataBlock, 200);
|
|
123
|
+
engine.block.setHeight(metadataBlock, 150);
|
|
215
124
|
|
|
216
|
-
const
|
|
217
|
-
engine.block.setString(
|
|
218
|
-
engine.block.setFill(
|
|
125
|
+
const metadataVideoFill = engine.block.createFill('video');
|
|
126
|
+
engine.block.setString(metadataVideoFill, 'fill/video/fileURI', videoUri);
|
|
127
|
+
engine.block.setFill(metadataBlock, metadataVideoFill);
|
|
128
|
+
engine.block.appendChild(page, metadataBlock);
|
|
219
129
|
|
|
220
130
|
// Force load the video resource before accessing metadata
|
|
221
|
-
await engine.block.forceLoadAVResource(
|
|
131
|
+
await engine.block.forceLoadAVResource(metadataVideoFill);
|
|
222
132
|
|
|
223
133
|
// Now we can access video metadata
|
|
224
134
|
const totalDuration = engine.block.getDouble(
|
|
225
|
-
|
|
135
|
+
metadataVideoFill,
|
|
226
136
|
'fill/video/totalDuration'
|
|
227
137
|
);
|
|
228
|
-
// eslint-disable-next-line no-console
|
|
229
138
|
console.log('Video total duration:', totalDuration, 'seconds');
|
|
230
139
|
|
|
231
|
-
//
|
|
140
|
+
// ===== Section 4: Video as Shape Fill =====
|
|
141
|
+
// Fill a shape with video content
|
|
232
142
|
const ellipseBlock = engine.block.create('graphic');
|
|
233
143
|
const ellipseShape = engine.block.createShape('//ly.img.ubq/shape/ellipse');
|
|
234
144
|
engine.block.setShape(ellipseBlock, ellipseShape);
|
|
235
|
-
engine.block.setWidth(ellipseBlock,
|
|
236
|
-
engine.block.setHeight(ellipseBlock,
|
|
237
|
-
engine.block.appendChild(page, ellipseBlock);
|
|
145
|
+
engine.block.setWidth(ellipseBlock, 200);
|
|
146
|
+
engine.block.setHeight(ellipseBlock, 150);
|
|
238
147
|
|
|
239
148
|
const ellipseVideoFill = engine.block.createFill('video');
|
|
240
149
|
engine.block.setString(ellipseVideoFill, 'fill/video/fileURI', videoUri);
|
|
241
150
|
engine.block.setFill(ellipseBlock, ellipseVideoFill);
|
|
151
|
+
engine.block.appendChild(page, ellipseBlock);
|
|
242
152
|
|
|
243
|
-
//
|
|
153
|
+
// ===== Section 5: Opacity =====
|
|
154
|
+
// Control opacity for transparency effects
|
|
244
155
|
const opacityBlock = engine.block.create('graphic');
|
|
245
156
|
engine.block.setShape(opacityBlock, engine.block.createShape('rect'));
|
|
246
|
-
engine.block.setWidth(opacityBlock,
|
|
247
|
-
engine.block.setHeight(opacityBlock,
|
|
248
|
-
engine.block.appendChild(page, opacityBlock);
|
|
157
|
+
engine.block.setWidth(opacityBlock, 200);
|
|
158
|
+
engine.block.setHeight(opacityBlock, 150);
|
|
249
159
|
|
|
250
160
|
const opacityVideoFill = engine.block.createFill('video');
|
|
251
161
|
engine.block.setString(opacityVideoFill, 'fill/video/fileURI', videoUri);
|
|
252
162
|
engine.block.setFill(opacityBlock, opacityVideoFill);
|
|
163
|
+
engine.block.appendChild(page, opacityBlock);
|
|
253
164
|
|
|
254
165
|
// Set block opacity to 70%
|
|
255
166
|
engine.block.setFloat(opacityBlock, 'opacity', 0.7);
|
|
256
167
|
|
|
257
|
-
//
|
|
168
|
+
// ===== Section 6: Shared Video Fill =====
|
|
169
|
+
// Share one video fill between multiple blocks for memory efficiency
|
|
258
170
|
const sharedFill = engine.block.createFill('video');
|
|
259
171
|
engine.block.setString(sharedFill, 'fill/video/fileURI', videoUri);
|
|
260
172
|
|
|
261
173
|
// First block using shared fill
|
|
262
174
|
const sharedBlock1 = engine.block.create('graphic');
|
|
263
175
|
engine.block.setShape(sharedBlock1, engine.block.createShape('rect'));
|
|
264
|
-
engine.block.setWidth(sharedBlock1,
|
|
265
|
-
engine.block.setHeight(sharedBlock1,
|
|
266
|
-
engine.block.appendChild(page, sharedBlock1);
|
|
176
|
+
engine.block.setWidth(sharedBlock1, 200);
|
|
177
|
+
engine.block.setHeight(sharedBlock1, 150);
|
|
267
178
|
engine.block.setFill(sharedBlock1, sharedFill);
|
|
179
|
+
engine.block.appendChild(page, sharedBlock1);
|
|
268
180
|
|
|
269
181
|
// Second block using the same shared fill
|
|
270
182
|
const sharedBlock2 = engine.block.create('graphic');
|
|
271
183
|
engine.block.setShape(sharedBlock2, engine.block.createShape('rect'));
|
|
272
|
-
engine.block.setWidth(sharedBlock2,
|
|
273
|
-
engine.block.setHeight(sharedBlock2,
|
|
274
|
-
engine.block.appendChild(page, sharedBlock2);
|
|
184
|
+
engine.block.setWidth(sharedBlock2, 160);
|
|
185
|
+
engine.block.setHeight(sharedBlock2, 120);
|
|
275
186
|
engine.block.setFill(sharedBlock2, sharedFill);
|
|
187
|
+
engine.block.appendChild(page, sharedBlock2);
|
|
276
188
|
|
|
277
|
-
|
|
278
|
-
console.log(
|
|
279
|
-
'Shared fill - Two blocks using the same video fill instance for memory efficiency'
|
|
280
|
-
);
|
|
189
|
+
console.log('Shared fill - Two blocks using the same video fill instance');
|
|
281
190
|
|
|
282
191
|
// ===== Position all blocks in grid layout =====
|
|
283
192
|
const blocks = [
|
|
284
193
|
basicBlock, // Position 0
|
|
285
194
|
coverBlock, // Position 1
|
|
286
195
|
containBlock, // Position 2
|
|
287
|
-
|
|
196
|
+
metadataBlock, // Position 3
|
|
288
197
|
ellipseBlock, // Position 4
|
|
289
198
|
opacityBlock, // Position 5
|
|
290
199
|
sharedBlock1, // Position 6
|
|
291
200
|
sharedBlock2 // Position 7
|
|
292
201
|
];
|
|
293
202
|
|
|
203
|
+
// Position blocks in a grid layout
|
|
204
|
+
const cols = 4;
|
|
205
|
+
const spacing = 10;
|
|
206
|
+
const margin = 50;
|
|
207
|
+
const blockWidth = 200;
|
|
208
|
+
const blockHeight = 150;
|
|
209
|
+
|
|
294
210
|
blocks.forEach((block, index) => {
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
engine.block.
|
|
211
|
+
const col = index % cols;
|
|
212
|
+
const row = Math.floor(index / cols);
|
|
213
|
+
engine.block.setPositionX(block, margin + col * (blockWidth + spacing));
|
|
214
|
+
engine.block.setPositionY(block, margin + row * (blockHeight + spacing));
|
|
298
215
|
});
|
|
299
216
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
engine.
|
|
305
|
-
|
|
306
|
-
// Start playback automatically
|
|
307
|
-
try {
|
|
308
|
-
engine.block.setPlaying(page, true);
|
|
309
|
-
// eslint-disable-next-line no-console
|
|
310
|
-
console.log(
|
|
311
|
-
'Video fills guide initialized. Playback started. Demonstrating various video fill techniques across the grid.'
|
|
312
|
-
);
|
|
313
|
-
} catch (error) {
|
|
314
|
-
// eslint-disable-next-line no-console
|
|
315
|
-
console.log(
|
|
316
|
-
'Video fills guide initialized. Click play to start video playback (browser autoplay restriction).'
|
|
317
|
-
);
|
|
318
|
-
}
|
|
217
|
+
console.log('Video fills demonstration complete.');
|
|
218
|
+
console.log('Created', blocks.length, 'blocks with video fills.');
|
|
219
|
+
|
|
220
|
+
} finally {
|
|
221
|
+
engine.dispose();
|
|
319
222
|
}
|
|
320
223
|
}
|
|
321
224
|
|
|
322
|
-
|
|
225
|
+
main().catch(console.error);
|
|
323
226
|
```
|
|
324
227
|
|
|
325
|
-
This guide covers how to create video fills, apply them to blocks, configure fill modes, and work with video resources programmatically.
|
|
326
|
-
|
|
327
228
|
## Understanding Video Fills
|
|
328
229
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
A video fill is a fill object that paints a design block with video content. Like color and image fills, video fills are part of CE.SDK's broader fill system.
|
|
332
|
-
|
|
333
|
-
Video fills are identified by the type `'//ly.img.ubq/fill/video'` or the short form `'video'`. They contain properties for the video source, positioning, scaling, and playback behavior.
|
|
334
|
-
|
|
335
|
-
### Video Fill vs Video Blocks
|
|
336
|
-
|
|
337
|
-
**Video fills** are fill objects created with `createFill('video')` and applied to blocks with `setFill()`. You can use them to fill shapes with video content, create video backgrounds, or add video textures to text.
|
|
338
|
-
|
|
339
|
-
**Video blocks** are created with the convenience method `addVideo()` and come pre-configured with time-based properties including trim support, duration, and playback time. Use video blocks when you need features like trimming, duration adjustment, and precise playback control.
|
|
230
|
+
Video fills work in any scene. Create a scene and add a page to get started.
|
|
340
231
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
232
|
+
```typescript highlight=highlight-create-scene
|
|
233
|
+
// Create a scene with a page
|
|
234
|
+
const scene = engine.scene.create('DepthStack');
|
|
235
|
+
const page = engine.block.create('page');
|
|
236
|
+
engine.block.setWidth(page, 800);
|
|
237
|
+
engine.block.setHeight(page, 600);
|
|
238
|
+
engine.block.appendChild(scene, page);
|
|
239
|
+
```
|
|
344
240
|
|
|
345
|
-
Before
|
|
241
|
+
Before working with fills, verify that the block supports fills.
|
|
346
242
|
|
|
347
|
-
```typescript highlight-check-fill-support
|
|
348
|
-
//
|
|
349
|
-
const
|
|
350
|
-
|
|
243
|
+
```typescript highlight=highlight-check-fill-support
|
|
244
|
+
// Check if block supports fills before accessing fill APIs
|
|
245
|
+
const testBlock = engine.block.create('graphic');
|
|
246
|
+
const canHaveFill = engine.block.supportsFill(testBlock);
|
|
247
|
+
console.log('Block supports fills:', canHaveFill);
|
|
351
248
|
|
|
352
|
-
|
|
353
|
-
const supportsFills = engine.block.supportsFill(sampleBlock);
|
|
354
|
-
// eslint-disable-next-line no-console
|
|
355
|
-
console.log('Block supports fills:', supportsFills); // true for graphic blocks
|
|
249
|
+
engine.block.destroy(testBlock);
|
|
356
250
|
```
|
|
357
251
|
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
## Creating Video Fills
|
|
361
|
-
|
|
362
|
-
### Creating Video Fills
|
|
252
|
+
## Creating a Video Fill
|
|
363
253
|
|
|
364
|
-
|
|
254
|
+
Create a video fill and apply it to a graphic block:
|
|
365
255
|
|
|
366
|
-
```typescript highlight-create-video-fill
|
|
367
|
-
//
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
engine.block.
|
|
371
|
-
engine.block.
|
|
372
|
-
engine.block.setHeight(basicBlock, blockHeight);
|
|
373
|
-
engine.block.appendChild(page, basicBlock);
|
|
256
|
+
```typescript highlight=highlight-create-video-fill
|
|
257
|
+
// Create a graphic block with a video fill
|
|
258
|
+
const basicBlock = engine.block.create('graphic');
|
|
259
|
+
engine.block.setShape(basicBlock, engine.block.createShape('rect'));
|
|
260
|
+
engine.block.setWidth(basicBlock, 200);
|
|
261
|
+
engine.block.setHeight(basicBlock, 150);
|
|
374
262
|
|
|
375
|
-
// Create a video fill
|
|
376
|
-
const
|
|
377
|
-
// or using full type name: engine.block.createFill('//ly.img.ubq/fill/video');
|
|
263
|
+
// Create a video fill
|
|
264
|
+
const videoFill = engine.block.createFill('video');
|
|
265
|
+
// or using full type name: engine.block.createFill('//ly.img.ubq/fill/video');
|
|
378
266
|
|
|
379
|
-
// Set the video source URI
|
|
380
|
-
engine.block.setString(
|
|
267
|
+
// Set the video source URI
|
|
268
|
+
engine.block.setString(videoFill, 'fill/video/fileURI', videoUri);
|
|
381
269
|
|
|
382
|
-
// Apply the fill to the block
|
|
383
|
-
engine.block.setFill(basicBlock,
|
|
270
|
+
// Apply the fill to the block
|
|
271
|
+
engine.block.setFill(basicBlock, videoFill);
|
|
272
|
+
engine.block.appendChild(page, basicBlock);
|
|
384
273
|
```
|
|
385
274
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
### Getting Current Fill Information
|
|
275
|
+
Retrieve the fill from a block and verify its type:
|
|
389
276
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
```typescript highlight-get-current-fill
|
|
277
|
+
```typescript highlight=highlight-get-current-fill
|
|
393
278
|
// Get and verify the current fill
|
|
394
279
|
const fillId = engine.block.getFill(basicBlock);
|
|
395
280
|
const fillType = engine.block.getType(fillId);
|
|
396
|
-
// eslint-disable-next-line no-console
|
|
397
281
|
console.log('Fill type:', fillType); // '//ly.img.ubq/fill/video'
|
|
398
282
|
```
|
|
399
283
|
|
|
400
|
-
This is useful when building UIs that need to adapt based on the current fill type or when implementing undo/redo functionality that tracks fill changes.
|
|
401
|
-
|
|
402
284
|
## Content Fill Modes
|
|
403
285
|
|
|
404
|
-
Content fill modes control how video
|
|
286
|
+
Content fill modes control how video content is positioned within the block bounds.
|
|
405
287
|
|
|
406
288
|
### Cover Mode
|
|
407
289
|
|
|
408
|
-
Cover mode
|
|
290
|
+
Cover mode scales the video to completely fill the block area. Parts of the video may be cropped if the aspect ratios differ.
|
|
409
291
|
|
|
410
|
-
```typescript highlight-fill-mode-cover
|
|
411
|
-
//
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
engine.block.
|
|
415
|
-
engine.block.
|
|
416
|
-
engine.block.setHeight(coverBlock, blockHeight);
|
|
417
|
-
engine.block.appendChild(page, coverBlock);
|
|
292
|
+
```typescript highlight=highlight-fill-mode-cover
|
|
293
|
+
// Cover mode: Fill entire block, may crop video
|
|
294
|
+
const coverBlock = engine.block.create('graphic');
|
|
295
|
+
engine.block.setShape(coverBlock, engine.block.createShape('rect'));
|
|
296
|
+
engine.block.setWidth(coverBlock, 200);
|
|
297
|
+
engine.block.setHeight(coverBlock, 150);
|
|
418
298
|
|
|
419
|
-
const coverVideoFill = engine.block.createFill('video');
|
|
420
|
-
engine.block.setString(coverVideoFill, 'fill/video/fileURI', videoUri);
|
|
421
|
-
engine.block.setFill(coverBlock, coverVideoFill);
|
|
299
|
+
const coverVideoFill = engine.block.createFill('video');
|
|
300
|
+
engine.block.setString(coverVideoFill, 'fill/video/fileURI', videoUri);
|
|
301
|
+
engine.block.setFill(coverBlock, coverVideoFill);
|
|
302
|
+
engine.block.appendChild(page, coverBlock);
|
|
422
303
|
|
|
423
|
-
// Set content fill mode to Cover
|
|
424
|
-
engine.block.setEnum(coverBlock, 'contentFill/mode', 'Cover');
|
|
304
|
+
// Set content fill mode to Cover
|
|
305
|
+
engine.block.setEnum(coverBlock, 'contentFill/mode', 'Cover');
|
|
425
306
|
|
|
426
|
-
// Get current fill mode
|
|
427
|
-
const coverMode = engine.block.getEnum(coverBlock, 'contentFill/mode');
|
|
428
|
-
//
|
|
429
|
-
console.log('Cover block fill mode:', coverMode); // 'Cover'
|
|
307
|
+
// Get current fill mode
|
|
308
|
+
const coverMode = engine.block.getEnum(coverBlock, 'contentFill/mode');
|
|
309
|
+
console.log('Cover block fill mode:', coverMode); // 'Cover'
|
|
430
310
|
```
|
|
431
311
|
|
|
432
|
-
Use Cover mode for background videos, full-frame video content, and situations where visual consistency matters more than showing the entire video. It guarantees no empty space but may crop content.
|
|
433
|
-
|
|
434
312
|
### Contain Mode
|
|
435
313
|
|
|
436
|
-
Contain mode
|
|
314
|
+
Contain mode scales the video to fit entirely within the block bounds. The complete video is visible, but empty space may appear if aspect ratios differ.
|
|
437
315
|
|
|
438
|
-
```typescript highlight-fill-mode-contain
|
|
439
|
-
//
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
engine.block.
|
|
443
|
-
engine.block.
|
|
444
|
-
engine.block.setHeight(containBlock, blockHeight);
|
|
445
|
-
engine.block.appendChild(page, containBlock);
|
|
316
|
+
```typescript highlight=highlight-fill-mode-contain
|
|
317
|
+
// Contain mode: Fit entire video, may leave empty space
|
|
318
|
+
const containBlock = engine.block.create('graphic');
|
|
319
|
+
engine.block.setShape(containBlock, engine.block.createShape('rect'));
|
|
320
|
+
engine.block.setWidth(containBlock, 200);
|
|
321
|
+
engine.block.setHeight(containBlock, 150);
|
|
446
322
|
|
|
447
|
-
const containVideoFill = engine.block.createFill('video');
|
|
448
|
-
engine.block.setString(containVideoFill, 'fill/video/fileURI', videoUri);
|
|
449
|
-
engine.block.setFill(containBlock, containVideoFill);
|
|
323
|
+
const containVideoFill = engine.block.createFill('video');
|
|
324
|
+
engine.block.setString(containVideoFill, 'fill/video/fileURI', videoUri);
|
|
325
|
+
engine.block.setFill(containBlock, containVideoFill);
|
|
326
|
+
engine.block.appendChild(page, containBlock);
|
|
450
327
|
|
|
451
|
-
// Set content fill mode to Contain
|
|
452
|
-
engine.block.setEnum(containBlock, 'contentFill/mode', 'Contain');
|
|
328
|
+
// Set content fill mode to Contain
|
|
329
|
+
engine.block.setEnum(containBlock, 'contentFill/mode', 'Contain');
|
|
453
330
|
```
|
|
454
331
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
## Loading Video Resources
|
|
332
|
+
### Getting the Current Mode
|
|
458
333
|
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
const resourceBlock = engine.block.create('graphic');
|
|
464
|
-
engine.block.setShape(resourceBlock, engine.block.createShape('rect'));
|
|
465
|
-
engine.block.setWidth(resourceBlock, blockWidth);
|
|
466
|
-
engine.block.setHeight(resourceBlock, blockHeight);
|
|
467
|
-
engine.block.appendChild(page, resourceBlock);
|
|
468
|
-
|
|
469
|
-
const resourceVideoFill = engine.block.createFill('video');
|
|
470
|
-
engine.block.setString(resourceVideoFill, 'fill/video/fileURI', videoUri);
|
|
471
|
-
engine.block.setFill(resourceBlock, resourceVideoFill);
|
|
472
|
-
|
|
473
|
-
// Force load the video resource before accessing metadata
|
|
474
|
-
await engine.block.forceLoadAVResource(resourceVideoFill);
|
|
475
|
-
|
|
476
|
-
// Now we can access video metadata
|
|
477
|
-
const totalDuration = engine.block.getDouble(
|
|
478
|
-
resourceVideoFill,
|
|
479
|
-
'fill/video/totalDuration'
|
|
480
|
-
);
|
|
481
|
-
// eslint-disable-next-line no-console
|
|
482
|
-
console.log('Video total duration:', totalDuration, 'seconds');
|
|
334
|
+
```typescript highlight=highlight-get-fill-mode
|
|
335
|
+
// Get current fill mode
|
|
336
|
+
const currentMode = engine.block.getEnum(containBlock, 'contentFill/mode');
|
|
337
|
+
console.log('Current fill mode:', currentMode);
|
|
483
338
|
```
|
|
484
339
|
|
|
485
|
-
|
|
340
|
+
The available modes are:
|
|
486
341
|
|
|
487
|
-
|
|
342
|
+
- `'Crop'` — Default mode, uses crop scale to position content
|
|
343
|
+
- `'Cover'` — Fill entire area, may crop content
|
|
344
|
+
- `'Contain'` — Show all content, may leave empty space
|
|
488
345
|
|
|
489
|
-
##
|
|
346
|
+
## Loading Video Resources
|
|
490
347
|
|
|
491
|
-
|
|
348
|
+
Video metadata like duration is only available after the resource loads. Use `forceLoadAVResource()` to ensure the video is loaded before accessing metadata.
|
|
492
349
|
|
|
493
|
-
|
|
350
|
+
```typescript highlight=highlight-force-load-resource
|
|
351
|
+
// Force load video resource to access metadata
|
|
352
|
+
const metadataBlock = engine.block.create('graphic');
|
|
353
|
+
engine.block.setShape(metadataBlock, engine.block.createShape('rect'));
|
|
354
|
+
engine.block.setWidth(metadataBlock, 200);
|
|
355
|
+
engine.block.setHeight(metadataBlock, 150);
|
|
494
356
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
engine.block.setShape(ellipseBlock, ellipseShape);
|
|
500
|
-
engine.block.setWidth(ellipseBlock, blockWidth);
|
|
501
|
-
engine.block.setHeight(ellipseBlock, blockHeight);
|
|
502
|
-
engine.block.appendChild(page, ellipseBlock);
|
|
357
|
+
const metadataVideoFill = engine.block.createFill('video');
|
|
358
|
+
engine.block.setString(metadataVideoFill, 'fill/video/fileURI', videoUri);
|
|
359
|
+
engine.block.setFill(metadataBlock, metadataVideoFill);
|
|
360
|
+
engine.block.appendChild(page, metadataBlock);
|
|
503
361
|
|
|
504
|
-
|
|
505
|
-
engine.block.
|
|
506
|
-
engine.block.setFill(ellipseBlock, ellipseVideoFill);
|
|
507
|
-
```
|
|
362
|
+
// Force load the video resource before accessing metadata
|
|
363
|
+
await engine.block.forceLoadAVResource(metadataVideoFill);
|
|
508
364
|
|
|
509
|
-
|
|
365
|
+
// Now we can access video metadata
|
|
366
|
+
const totalDuration = engine.block.getDouble(
|
|
367
|
+
metadataVideoFill,
|
|
368
|
+
'fill/video/totalDuration'
|
|
369
|
+
);
|
|
370
|
+
console.log('Video total duration:', totalDuration, 'seconds');
|
|
371
|
+
```
|
|
510
372
|
|
|
511
|
-
|
|
373
|
+
## Common Use Cases
|
|
512
374
|
|
|
513
|
-
|
|
375
|
+
### Video in Shapes
|
|
514
376
|
|
|
515
|
-
|
|
516
|
-
// Advanced: Video fill with opacity
|
|
517
|
-
const opacityBlock = engine.block.create('graphic');
|
|
518
|
-
engine.block.setShape(opacityBlock, engine.block.createShape('rect'));
|
|
519
|
-
engine.block.setWidth(opacityBlock, blockWidth);
|
|
520
|
-
engine.block.setHeight(opacityBlock, blockHeight);
|
|
521
|
-
engine.block.appendChild(page, opacityBlock);
|
|
377
|
+
Fill any shape with video content:
|
|
522
378
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
engine.block.
|
|
379
|
+
```typescript highlight=highlight-video-shape-fill
|
|
380
|
+
// Fill a shape with video content
|
|
381
|
+
const ellipseBlock = engine.block.create('graphic');
|
|
382
|
+
const ellipseShape = engine.block.createShape('//ly.img.ubq/shape/ellipse');
|
|
383
|
+
engine.block.setShape(ellipseBlock, ellipseShape);
|
|
384
|
+
engine.block.setWidth(ellipseBlock, 200);
|
|
385
|
+
engine.block.setHeight(ellipseBlock, 150);
|
|
526
386
|
|
|
527
|
-
|
|
528
|
-
engine.block.
|
|
387
|
+
const ellipseVideoFill = engine.block.createFill('video');
|
|
388
|
+
engine.block.setString(ellipseVideoFill, 'fill/video/fileURI', videoUri);
|
|
389
|
+
engine.block.setFill(ellipseBlock, ellipseVideoFill);
|
|
390
|
+
engine.block.appendChild(page, ellipseBlock);
|
|
529
391
|
```
|
|
530
392
|
|
|
531
|
-
Opacity
|
|
393
|
+
### Opacity Control
|
|
532
394
|
|
|
533
|
-
|
|
395
|
+
Adjust block opacity for transparency effects:
|
|
396
|
+
|
|
397
|
+
```typescript highlight=highlight-opacity
|
|
398
|
+
// Control opacity for transparency effects
|
|
399
|
+
const opacityBlock = engine.block.create('graphic');
|
|
400
|
+
engine.block.setShape(opacityBlock, engine.block.createShape('rect'));
|
|
401
|
+
engine.block.setWidth(opacityBlock, 200);
|
|
402
|
+
engine.block.setHeight(opacityBlock, 150);
|
|
403
|
+
|
|
404
|
+
const opacityVideoFill = engine.block.createFill('video');
|
|
405
|
+
engine.block.setString(opacityVideoFill, 'fill/video/fileURI', videoUri);
|
|
406
|
+
engine.block.setFill(opacityBlock, opacityVideoFill);
|
|
407
|
+
engine.block.appendChild(page, opacityBlock);
|
|
534
408
|
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
Memory efficiency improves when multiple blocks share a single video fill instance. Changes to the shared fill affect all blocks using it.
|
|
538
|
-
|
|
539
|
-
```typescript highlight-shared-fill
|
|
540
|
-
// Advanced: Share one video fill between multiple blocks
|
|
541
|
-
const sharedFill = engine.block.createFill('video');
|
|
542
|
-
engine.block.setString(sharedFill, 'fill/video/fileURI', videoUri);
|
|
543
|
-
|
|
544
|
-
// First block using shared fill
|
|
545
|
-
const sharedBlock1 = engine.block.create('graphic');
|
|
546
|
-
engine.block.setShape(sharedBlock1, engine.block.createShape('rect'));
|
|
547
|
-
engine.block.setWidth(sharedBlock1, blockWidth);
|
|
548
|
-
engine.block.setHeight(sharedBlock1, blockHeight);
|
|
549
|
-
engine.block.appendChild(page, sharedBlock1);
|
|
550
|
-
engine.block.setFill(sharedBlock1, sharedFill);
|
|
551
|
-
|
|
552
|
-
// Second block using the same shared fill
|
|
553
|
-
const sharedBlock2 = engine.block.create('graphic');
|
|
554
|
-
engine.block.setShape(sharedBlock2, engine.block.createShape('rect'));
|
|
555
|
-
engine.block.setWidth(sharedBlock2, blockWidth * 0.8); // Slightly smaller
|
|
556
|
-
engine.block.setHeight(sharedBlock2, blockHeight * 0.8);
|
|
557
|
-
engine.block.appendChild(page, sharedBlock2);
|
|
558
|
-
engine.block.setFill(sharedBlock2, sharedFill);
|
|
559
|
-
|
|
560
|
-
// eslint-disable-next-line no-console
|
|
561
|
-
console.log(
|
|
562
|
-
'Shared fill - Two blocks using the same video fill instance for memory efficiency'
|
|
563
|
-
);
|
|
409
|
+
// Set block opacity to 70%
|
|
410
|
+
engine.block.setFloat(opacityBlock, 'opacity', 0.7);
|
|
564
411
|
```
|
|
565
412
|
|
|
566
|
-
|
|
413
|
+
## Additional Techniques
|
|
567
414
|
|
|
568
|
-
Shared
|
|
415
|
+
### Shared Video Fills
|
|
569
416
|
|
|
570
|
-
|
|
417
|
+
Multiple blocks can share the same fill instance, which improves memory efficiency when displaying the same video in multiple locations.
|
|
571
418
|
|
|
572
|
-
|
|
419
|
+
```typescript highlight=highlight-shared-fill
|
|
420
|
+
// Share one video fill between multiple blocks for memory efficiency
|
|
421
|
+
const sharedFill = engine.block.createFill('video');
|
|
422
|
+
engine.block.setString(sharedFill, 'fill/video/fileURI', videoUri);
|
|
573
423
|
|
|
574
|
-
|
|
424
|
+
// First block using shared fill
|
|
425
|
+
const sharedBlock1 = engine.block.create('graphic');
|
|
426
|
+
engine.block.setShape(sharedBlock1, engine.block.createShape('rect'));
|
|
427
|
+
engine.block.setWidth(sharedBlock1, 200);
|
|
428
|
+
engine.block.setHeight(sharedBlock1, 150);
|
|
429
|
+
engine.block.setFill(sharedBlock1, sharedFill);
|
|
430
|
+
engine.block.appendChild(page, sharedBlock1);
|
|
575
431
|
|
|
576
|
-
|
|
432
|
+
// Second block using the same shared fill
|
|
433
|
+
const sharedBlock2 = engine.block.create('graphic');
|
|
434
|
+
engine.block.setShape(sharedBlock2, engine.block.createShape('rect'));
|
|
435
|
+
engine.block.setWidth(sharedBlock2, 160);
|
|
436
|
+
engine.block.setHeight(sharedBlock2, 120);
|
|
437
|
+
engine.block.setFill(sharedBlock2, sharedFill);
|
|
438
|
+
engine.block.appendChild(page, sharedBlock2);
|
|
577
439
|
|
|
578
|
-
|
|
440
|
+
console.log('Shared fill - Two blocks using the same video fill instance');
|
|
441
|
+
```
|
|
579
442
|
|
|
580
|
-
|
|
443
|
+
## Cleanup
|
|
581
444
|
|
|
582
|
-
|
|
445
|
+
Always dispose of the engine when finished to release resources.
|
|
583
446
|
|
|
584
|
-
|
|
447
|
+
```typescript highlight=highlight-cleanup
|
|
448
|
+
} finally {
|
|
449
|
+
engine.dispose();
|
|
450
|
+
}
|
|
451
|
+
```
|
|
585
452
|
|
|
586
|
-
|
|
453
|
+
## Troubleshooting
|
|
587
454
|
|
|
588
|
-
###
|
|
455
|
+
### Video Fill Not Displaying
|
|
589
456
|
|
|
590
|
-
|
|
457
|
+
If video fills don't appear:
|
|
591
458
|
|
|
592
|
-
|
|
459
|
+
1. Ensure the video URI is accessible and valid
|
|
460
|
+
2. Check that the block has a shape assigned before setting the fill
|
|
461
|
+
3. Confirm the block has been appended to the page
|
|
593
462
|
|
|
594
|
-
###
|
|
463
|
+
### Metadata Not Available
|
|
595
464
|
|
|
596
|
-
|
|
465
|
+
If `fill/video/totalDuration` returns unexpected values:
|
|
597
466
|
|
|
598
|
-
|
|
467
|
+
1. Call `engine.block.forceLoadAVResource()` before accessing metadata
|
|
468
|
+
2. Await the promise to ensure loading completes
|
|
469
|
+
3. Verify the video file exists and is accessible
|
|
599
470
|
|
|
600
471
|
## API Reference
|
|
601
472
|
|
|
602
|
-
|
|
|
603
|
-
|
|
|
604
|
-
| `
|
|
605
|
-
| `
|
|
606
|
-
| `
|
|
607
|
-
| `
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
| `getSourceSet(fill, property)` | Get current source set |
|
|
611
|
-
| `setEnum(block, property, value)` | Set content fill mode |
|
|
612
|
-
| `getEnum(block, property)` | Get current fill mode |
|
|
613
|
-
| `setFillEnabled(block, enabled)` | Enable or disable fill rendering |
|
|
614
|
-
| `isFillEnabled(block)` | Check if fill is enabled |
|
|
615
|
-
| `supportsFill(block)` | Check if block supports fills |
|
|
616
|
-
| `forceLoadAVResource(fill)` | Force load video metadata |
|
|
617
|
-
| `getVideoFillThumbnail(fill, height)` | Get single thumbnail frame |
|
|
618
|
-
| `adjustCropToFillFrame(block, fillIndex)` | Adjust crop to fill frame |
|
|
619
|
-
|
|
620
|
-
### Video Fill Properties
|
|
621
|
-
|
|
622
|
-
| Property | Type | Description |
|
|
623
|
-
| -------------------------- | ------------ | ------------------------------------------- |
|
|
624
|
-
| `fill/video/fileURI` | String | Single video URI (URL, data URI, file path) |
|
|
625
|
-
| `fill/video/sourceSet` | SourceSet\[] | Array of responsive video sources |
|
|
626
|
-
| `fill/video/totalDuration` | Double | Total duration of video in seconds |
|
|
627
|
-
|
|
628
|
-
### Content Fill Properties
|
|
629
|
-
|
|
630
|
-
| Property | Type | Values | Description |
|
|
631
|
-
| ------------------ | ---- | ------------------ | ----------------------------- |
|
|
632
|
-
| `contentFill/mode` | Enum | 'Cover', 'Contain' | How video scales within block |
|
|
473
|
+
| Property | Type | Description |
|
|
474
|
+
| -------------------------- | -------- | -------------------------------------- |
|
|
475
|
+
| `fill/video/fileURI` | `string` | URI of the video file |
|
|
476
|
+
| `fill/video/totalDuration` | `double` | Total duration of the video in seconds |
|
|
477
|
+
| `contentFill/mode` | `enum` | Fill mode: 'Crop', 'Cover', 'Contain' |
|
|
478
|
+
| `opacity` | `float` | Block opacity from 0.0 to 1.0 |
|
|
479
|
+
|
|
480
|
+
|
|
633
481
|
|
|
634
482
|
---
|
|
635
483
|
|
|
636
484
|
## More Resources
|
|
637
485
|
|
|
638
|
-
- **[
|
|
486
|
+
- **[Node.js Documentation Index](https://img.ly/docs/cesdk/node.md)** - Browse all Node.js documentation
|
|
639
487
|
- **[Complete Documentation](./llms-full.txt.md)** - Full documentation in one file (for LLMs)
|
|
640
|
-
- **[Web Documentation](./
|
|
641
|
-
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|
|
488
|
+
- **[Web Documentation](./node.md)** - Interactive documentation with examples
|
|
489
|
+
- **[Support](mailto:support@img.ly)** - Contact IMG.LY support
|