@imgly/plugin-ai-image-generation-web 0.2.1 → 0.2.2
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/CHANGELOG.md +4 -0
- package/dist/fal-ai/index.mjs.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +3 -3
- package/dist/open-ai/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -63,7 +63,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
63
63
|
</symbol>
|
|
64
64
|
</svg>
|
|
65
65
|
`,Ga=Va;function qa(e){return async(t,r,i)=>e.enable?(console.log(`[DRY RUN]: Requesting dummy AI generation for kind '${e.kind}' with inputs: `,JSON.stringify(t,void 0,2)),await Kt(2e3),await Ha(t,e,r)):i(t,r)}async function Ha(e,t,r){switch(t.kind){case"image":return Qa(e,t,r);case"video":return Za(e,t,r);case"text":return Ya(e,t,r);case"audio":return Ka(e,t,r);default:throw new Error(`Unsupported output kind for creating dry run output: ${t.kind}`)}}async function Qa(e,t,{engine:r}){let i,n,o=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",a=o.match(/(\d+)x(\d+)/);if(a!=null)i=parseInt(a[1],10),n=parseInt(a[2],10);else if(t.blockInputs!=null&&(i=t.blockInputs.image.width,n=t.blockInputs.image.height),t.blockIds!=null&&Array.isArray(t.blockIds)&&t.blockIds.length>0){let[l]=t.blockIds,c=await Ho(l,r),s=await qe(c,r);i=s.width,n=s.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${o.replace(" ","+").replace(`
|
|
66
|
-
`,"+")}`}}async function Za(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Ya(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[a]=t.blockIds;r.engine.block.isValid(a)&&(i=r.engine.block.getString(a,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let a=e.prompt,l=a.match(/text:\s*"([^"]+)"/i)||a.match(/content:\s*"([^"]+)"/i)||a.match(/"([^"]+)"/);l&&l[1]&&(i=l[1])}let n=i.length||50,o="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")o=se(n,"translation");else if("type"in e&&typeof e.type=="string"){let a=e.type;o=se(n,a)}else"customPrompt"in e?o=se(n,"custom"):o=se(n,"improved");else o=se(n,"generated");return Wa(o,r.abortSignal)}async function*Wa(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Kt(100)}return{kind:"text",text:e}}function se(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,o={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},a=o[t]||o.generated,l="";if(n<=a.length)l=a.substring(0,n);else{l=a;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],s=0;for(;l.length<n;){let u=c[s%c.length];if(l.length+u.length<=n)l+=u;else{l+=u.substring(0,n-l.length);break}s++}}return r+l}async function Ka(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:Xa(220,i),duration:i,thumbnailUrl:void 0}}function Xa(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return Ja(i,44100)}function Ja(e,t){let r=e.length,i=2,n=1,o=n*i,a=t*o,l=r*i,c=44+l,s=new ArrayBuffer(c),u=new DataView(s),d=(h,v)=>{for(let y=0;y<v.length;y++)u.setUint8(h+y,v.charCodeAt(y))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,a,!0),u.setUint16(32,o,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,l,!0);let p=44;for(let h=0;h<r;h++){let v=Math.max(-1,Math.min(1,e[h])),y=Math.round(v*32767);u.setInt16(p,y,!0),p+=2}let g=new Uint8Array(s),m="";for(let h=0;h<g.length;h++)m+=String.fromCharCode(g[h]);return`data:audio/wav;base64,${btoa(m)}`}async function Kt(e){return new Promise(t=>{setTimeout(t,e)})}var el=qa,Xt="USER_CANCEL";function tl(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Zo([...e.provider.output.middleware??[],...r?.middlewares??[],Wo({enable:r?.debug}),el({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:ea(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ze(n)?{status:"aborted",message:n.message}:n===Xt?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var rl=tl;async function il(e,t,r,i){let n={...i,provider:t},o={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n};await t.initialize?.({...r,engine:r.cesdk.engine});let a=za(o),l=Ua(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let c=rl({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),s=await Ra(o,c);ta(r.cesdk,"@imgly/plugin-ai-generation",Ga);let u={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:c};return Lt.get().register(u),u}var Fe=il;function nl(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let o=new qr(n,r,i);return r.engine.asset.addSource(o),o.id}var ol=nl;async function al(e,t,r,i){let n,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(c=>Fe(e,c,r,i)));o.push(...l),n=sl({prefix:e,providerInitializationResults:o})}else{let l=await Promise.all(t.fromText.map(s=>Fe(e,s,r,i)));o.push(...l);let c=await Promise.all(t.fromImage.map(s=>Fe(e,s,r,i)));o.push(...c),n=ll({prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:c})}let a=ol({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter($e)});return{panel:{builderRenderFunction:n},history:{assetSourceId:a},providerInitializationResults:o}}function ll({prefix:e,initializedFromTextProviders:t,initializedFromImageProviders:r}){let i=t.length>0&&r.length>0;return n=>{let{builder:o,experimental:a}=n,l=a.global(`${e}.fromType`,i?"fromText":void 0),c=[];l.value==="fromText"?c.push(...t):l.value==="fromImage"?c.push(...r):c.push(...t,...r);let s=t.map(({provider:m,panel:h})=>({id:m.id,label:m.name??m.id,builderRenderFunction:h?.builderRenderFunction})),u=r.map(({provider:m,panel:h})=>({id:m.id,label:m.name??m.id,builderRenderFunction:h?.builderRenderFunction})),d=n.experimental.global(`${e}.selectedProvider.fromText`,s[0]),p=n.experimental.global(`${e}.selectedProvider.fromImage`,u[0]),g=l.value==="fromText"?d:l.value==="fromImage"?p:void 0;if((i||c.length>1)&&o.Section(`${e}.providerSelection.section`,{children:()=>{if(i&&o.ButtonGroup(`${e}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{o.Button(`${e}.fromType.buttonGroup.fromText`,{label:"Text",icon:l.value!=="fromText"&&Ct(t,n)?"@imgly/LoadingSpinner":void 0,isActive:l.value==="fromText",onClick:()=>{l.setValue("fromText")}}),o.Button(`${e}.fromType.buttonGroup.fromImage`,{label:"Image",icon:l.value!=="fromImage"&&Ct(r,n)?"@imgly/LoadingSpinner":void 0,isActive:l.value==="fromImage",onClick:()=>{l.setValue("fromImage")}})}}),c.length>1){let m=l.value==="fromText"?s:l.value==="fromImage"?u:[...s,...u];g!=null&&o.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:m,...g})}}}),c.length>1)g?.value.builderRenderFunction?.(n);else{let m=c[0];m&&m.panel?.builderRenderFunction?.(n)}}}function sl({prefix:e,providerInitializationResults:t}){return r=>{let{builder:i}=r;if(t.length===0)return;let n=t.map(({provider:a,panel:l})=>({id:a.id,label:a.name??a.id,builderRenderFunction:l?.builderRenderFunction})),o=r.state(`${e}.selectedProvider`,n[0]);t.length>1&&o!=null&&i.Section(`${e}.providerSelection.section`,{children:()=>{i.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:n,...o})}}),o.value.builderRenderFunction?.(r)}}function Ct(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(We(r.id),!1).value)}var Jt=al,fe="ly.img.ai.editMode",er="ly.img.ai.metadata";async function cl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:o,state:a,payload:l}=i;if(l==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let s=new xt(n,er),u=s.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{s.clear(p)})};switch(u.status){case"processing":{o.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),o.Separator(`${t}.separator`),o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{l.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=a(`${t}.comparing`,"after"),g=l.applyCallbacks?.onCancel;g!=null&&o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=l.applyCallbacks?.onBefore,h=l.applyCallbacks?.onAfter;m!=null&&h!=null&&o.ButtonGroup(`${t}.compare`,{children:()=>{o.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),o.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{h(),p.setValue("after")}})}});let v=l.applyCallbacks?.onApply;v!=null&&o.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d(),cesdk?.engine.editor._update(),v()}});break}default:}};return Promise.resolve(r)}var ul=cl;function dl(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var pl=dl;function gl(e){return`ly.img.ai.${e}.canvasMenu`}var ml=gl;function fl(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,o=ml(t);if(i==null||!Array.isArray(i.children)){let a=r.ui.getCanvasMenuOrder().find(({id:l})=>l===o);return a!=null&&Array.isArray(a.children)?a.children:n??[]}return i.children.filter(a=>typeof a=="string")}var hl=fl;function bl(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return yl(e,t);case"image":return vl(e,t);case"video":return kl(e,t);case"audio":return wl(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function yl(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,o=i.map(s=>r.engine.block.getString(s,"text/text")),a;if(e.type==="async"){let s="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?s=u:u.kind==="text"&&(s=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),a={kind:"text",text:s}}}else a=e.output;if(a==null||a.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(s=>{r.engine.block.setString(s,"text/text",a.text)});let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",a.text)})},c=()=>{t.blockIds.forEach((s,u)=>{t.cesdk.engine.block.setString(s,"text/text",o[u])})};return{applyCallbacks:{onBefore:c,onAfter:l,onCancel:c,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function vl(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[o]=i,a=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(a,"fill/image/sourceSet"),[c]=l,s;c==null&&(s=r.engine.block.getString(a,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??s),d=await qe(c?.uri??s,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(o),m=r.engine.block.getCropScaleY(o),h=r.engine.block.getCropTranslationX(o),v=r.engine.block.getCropTranslationY(o),y=r.engine.block.getCropRotation(o),S=()=>{r.engine.block.setCropScaleX(o,g),r.engine.block.setCropScaleY(o,m),r.engine.block.setCropTranslationX(o,h),r.engine.block.setCropTranslationY(o,v),r.engine.block.setCropRotation(o,y)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,b=await r.engine.editor.getMimeType(k),f=await Il(r,k,b),w=await qe(f,t.cesdk.engine),I=w.width/w.height,ae=Math.abs(p-I)>.001,x=c?[{uri:f,width:w.width,height:w.height}]:void 0,De=f;x==null?r.engine.block.setString(a,"fill/image/imageFileURI",De):(r.engine.block.setString(a,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(a,"fill/image/sourceSet",x)),await r.engine.block.forceLoadResources([a]),ae?r.engine.block.setContentFillMode(o,"Cover"):S();let lt=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(a,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(a,"fill/image/sourceSet",l);S()},st=()=>{if(x==null){if(De==null)throw new Error("No image URI found");r.engine.block.setString(a,"fill/image/imageFileURI",De)}else r.engine.block.setSourceSet(a,"fill/image/sourceSet",x);ae?r.engine.block.setContentFillMode(o,"Cover"):S()};return{applyCallbacks:{onBefore:lt,onAfter:st,onCancel:()=>{lt()},onApply:()=>{st(),t.cesdk.engine.editor.addUndoStep()}}}}async function kl(e,t){throw new Error("Function not implemented.")}async function wl(e,t){throw new Error("Function not implemented.")}async function Il(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${qo(r)}`,{type:r}),o=await e.unstable_upload(n,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Al=bl;function Cl(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(s=>c.includes(s))}let o=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),a=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let l=!1;return()=>{l||(a(),o(),t.editor.setEditMode("Transform"),l=!0)}}var Sl=Cl,xl=class tr{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new tr),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},V=xl;function El(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let o=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let a=new AbortController,l=AbortSignal.any([e.abortSignal,a.signal].filter($e)),c=new xt(e.cesdk.engine,er),s=e.lock??!0?Sl({engine:e.cesdk.engine,editModeToLockTo:fe,blockIdsToLock:i}):()=>{};i.forEach(u=>{V.get().register(u,{onCancelGeneration:()=>{a.abort(Xt),s(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(o(t),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:l}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await Al(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:l});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};i.forEach(m=>{V.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),s();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),s(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return s(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),s(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var St=El;function Ml(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{[`${t}.quickActionMenu.providerSelect.label`]:"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===fe)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let{payload:o}=i,a=hl({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(a.length===0)return;let l=$l(a).filter(b=>{if(b==="ly.img.separator")return!0;let f=b.scopes;if(f!=null&&f.length>0&&!n.every(w=>f.every(I=>e.engine.block.isAllowedByScope(w,I))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),c=[],s=e.providerInitializationResults.reduce((b,f)=>{if(f.provider.kind!==e.kind)return b;let w=l.map(I=>{if(I==="ly.img.separator")return I;if(f.provider.input?.quickActions?.supported?.[I.id]!=null)return{definition:I};{let ae=Lt.get().getAll().filter(x=>x.provider.kind!==e.kind&&x.provider.id!==f.provider.id).find(x=>x.provider.input?.quickActions?.supported?.[I.id]!=null);if(ae!=null){let x={definition:I,providerInitializationResult:ae};return c.push(x),x}else return}}).filter($e);return w=pl(w),w.length===0||w.every(I=>I==="ly.img.separator")||w.every(I=>I==="ly.img.separator"||I.providerInitializationResult!=null)||b.push({providerInitializationResult:f,quickActions:w}),b},[]);if(s.length===0)if(c.length>0){let b=new Map;c.forEach(w=>{let I=w.definition.id;b.has(I)||b.set(I,w)});let f=Array.from(b.values());s.push({providerInitializationResult:f[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:f})}else return;let u=s.map(({providerInitializationResult:b})=>({id:b.provider.id,label:b.provider.name??b.provider.id})),d=i.experimental.global(`${t}.currentProvider`,u[0]),p=s.find(({providerInitializationResult:{provider:{id:b}}})=>b===d.value?.id),g=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:m,experimental:h,state:v}=i,y=v(`${t}.isGenerating`,!1),S=v(`${t}.toggleExpandedState`,void 0),k=async(b,f,w)=>{y.setValue(!0);try{return await w(b,f)}finally{y.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!g,isLoading:y.value,trailingIcon:null,children:({close:b})=>{m.Section(`${t}.popover.section`,{children:()=>{if(S.value!==void 0){let f=p?.quickActions.find(w=>w!=="ly.img.separator"&&w.definition.id===S.value);return f!=null&&f.definition.render!=null?f.definition.render({...i,toggleExpand:()=>{S.setValue(void 0)},isExpanded:!0,generate:St({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[k],confirmation:f.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:d.value.id}):void 0}S.value==null&&u.length>1&&(m.Select(`${t}.providerSelect.select`,{inputLabel:`${t}.quickActionMenu.providerSelect.label`,values:u,...d}),m.Separator(`${t}.providerSelect.separator`)),h.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(f=>{if(f==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}f.definition.render!=null&&f.definition.render({...i,toggleExpand:()=>{S.setValue(f.definition.id)},isExpanded:!1,generate:St({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[k],confirmation:f.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:d.value.id})})}})}})}})};return Promise.resolve(r)}function $l(e){return e.map(t=>t==="ly.img.separator"?t:Qe.get().getBy({id:t,type:"quick"})[0]).filter($e)}var jl=Ml;async function Pl(e){let t=await jl({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await ul({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===fe){let o=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onBefore?.()})},onAfter:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onAfter?.()})},onCancel:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onCancel?.()})},onApply:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{o.forEach(a=>{V.get().get(a).onCancelGeneration?.()})}}});return}t(i)}}}var rr=Pl;var ir="@imgly/plugin-ai-image-generation",Tl=`
|
|
66
|
+
`,"+")}`}}async function Za(e,t,r){return Promise.resolve({kind:"video",url:"https://storage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4"})}async function Ya(e,t,r){let i="";if(t.blockIds&&t.blockIds.length>0){let[a]=t.blockIds;r.engine.block.isValid(a)&&(i=r.engine.block.getString(a,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let a=e.prompt,l=a.match(/text:\s*"([^"]+)"/i)||a.match(/content:\s*"([^"]+)"/i)||a.match(/"([^"]+)"/);l&&l[1]&&(i=l[1])}let n=i.length||50,o="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")o=se(n,"translation");else if("type"in e&&typeof e.type=="string"){let a=e.type;o=se(n,a)}else"customPrompt"in e?o=se(n,"custom"):o=se(n,"improved");else o=se(n,"generated");return Wa(o,r.abortSignal)}async function*Wa(e,t){let r=Math.max(1,Math.ceil(e.length/20)),i=0;for(;i<e.length;){if(t?.aborted)return;let n=Math.min(i+r,e.length);yield{kind:"text",text:e.substring(0,n)},i=n,i<e.length&&await Kt(100)}return{kind:"text",text:e}}function se(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,o={translation:"Ceci est un texte fictif traduit qui maintient la longueur approximative.",professional:"Enhanced professional content with improved clarity and structure.",casual:"Relaxed, friendly text that keeps things simple and approachable.",formal:"Refined formal documentation that preserves original structure.",humorous:"Amusing content that brings lighthearted fun to the text.",improved:"Enhanced text that demonstrates better clarity and readability.",custom:"Customized content reflecting the requested modifications.",generated:"AI-generated content maintaining original length and structure."},a=o[t]||o.generated,l="";if(n<=a.length)l=a.substring(0,n);else{l=a;let c=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],s=0;for(;l.length<n;){let u=c[s%c.length];if(l.length+u.length<=n)l+=u;else{l+=u.substring(0,n-l.length);break}s++}}return r+l}async function Ka(e,t,r){let i=3;if(e!=null&&typeof e=="object"){if("duration"in e&&typeof e.duration=="number")i=e.duration;else if("prompt"in e&&typeof e.prompt=="string"){let n=e.prompt.match(/(\d+)\s*(?:seconds?|secs?|s)\b/i);n&&(i=parseInt(n[1],10))}}return t.blockInputs?.audio?.duration&&(i=t.blockInputs.audio.duration),{kind:"audio",url:Xa(220,i),duration:i,thumbnailUrl:void 0}}function Xa(e,t){let r=Math.floor(44100*t),i=new Float32Array(r);for(let n=0;n<r;n++)i[n]=Math.sin(2*Math.PI*e*n/44100);return Ja(i,44100)}function Ja(e,t){let r=e.length,i=2,n=1,o=n*i,a=t*o,l=r*i,c=44+l,s=new ArrayBuffer(c),u=new DataView(s),d=(h,v)=>{for(let y=0;y<v.length;y++)u.setUint8(h+y,v.charCodeAt(y))};d(0,"RIFF"),u.setUint32(4,c-8,!0),d(8,"WAVE"),d(12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,n,!0),u.setUint32(24,t,!0),u.setUint32(28,a,!0),u.setUint16(32,o,!0),u.setUint16(34,16,!0),d(36,"data"),u.setUint32(40,l,!0);let p=44;for(let h=0;h<r;h++){let v=Math.max(-1,Math.min(1,e[h])),y=Math.round(v*32767);u.setInt16(p,y,!0),p+=2}let g=new Uint8Array(s),m="";for(let h=0;h<g.length;h++)m+=String.fromCharCode(g[h]);return`data:audio/wav;base64,${btoa(m)}`}async function Kt(e){return new Promise(t=>{setTimeout(t,e)})}var el=qa,Xt="USER_CANCEL";function tl(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Zo([...e.provider.output.middleware??[],...r?.middlewares??[],Wo({enable:r?.debug}),el({enable:r?.dryRun,kind:e.provider.kind})]);try{let{result:n}=await i(e.provider.output.generate)(t,{abortSignal:r?.abortSignal,engine:e.engine,cesdk:e.cesdk});return r?.abortSignal?.aborted?{status:"aborted"}:n instanceof Error?{status:"error",message:n.message}:n==null?{status:"error",message:"No output generated"}:ea(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ze(n)?{status:"aborted",message:n.message}:n===Xt?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var rl=tl;async function il(e,t,r,i){let n={...i,provider:t},o={provider:t,panelInput:t.input?.panel,options:{cesdk:r.cesdk,engine:r.cesdk.engine},config:n};await t.initialize?.({...r,engine:r.cesdk.engine});let a=za(o),l=Ua(o,a);o.options.historyAssetSourceId=a,o.options.historyAssetLibraryEntryId=l;let c=rl({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),s=await Ra(o,c);ta(r.cesdk,"@imgly/plugin-ai-generation",Ga);let u={provider:t,panel:{builderRenderFunction:s},history:{assetSourceId:a,assetLibraryEntryId:l},generate:c};return Lt.get().register(u),u}var Fe=il;function nl(e){let{kind:t,cesdk:r,historAssetSourceIds:i}=e,n=`ly.img.ai.${t}-generation.history`;if(r.engine.asset.findAllSources().includes(n))return n;let o=new qr(n,r,i);return r.engine.asset.addSource(o),o.id}var ol=nl;async function al(e,t,r,i){let n,o=[];if(Array.isArray(t)){let l=await Promise.all(t.map(c=>Fe(e,c,r,i)));o.push(...l),n=sl({prefix:e,providerInitializationResults:o})}else{let l=await Promise.all(t.fromText.map(s=>Fe(e,s,r,i)));o.push(...l);let c=await Promise.all(t.fromImage.map(s=>Fe(e,s,r,i)));o.push(...c),n=ll({prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:l,initializedFromImageProviders:c})}let a=ol({kind:e,cesdk:r.cesdk,historAssetSourceIds:o.map(l=>l.history?.assetSourceId).filter($e)});return{panel:{builderRenderFunction:n},history:{assetSourceId:a},providerInitializationResults:o}}function ll({prefix:e,initializedFromTextProviders:t,initializedFromImageProviders:r}){let i=t.length>0&&r.length>0;return n=>{let{builder:o,experimental:a}=n,l=a.global(`${e}.fromType`,i?"fromText":void 0),c=[];l.value==="fromText"?c.push(...t):l.value==="fromImage"?c.push(...r):c.push(...t,...r);let s=t.map(({provider:m,panel:h})=>({id:m.id,label:m.name??m.id,builderRenderFunction:h?.builderRenderFunction})),u=r.map(({provider:m,panel:h})=>({id:m.id,label:m.name??m.id,builderRenderFunction:h?.builderRenderFunction})),d=n.experimental.global(`${e}.selectedProvider.fromText`,s[0]),p=n.experimental.global(`${e}.selectedProvider.fromImage`,u[0]),g=l.value==="fromText"?d:l.value==="fromImage"?p:void 0;if((i||c.length>1)&&o.Section(`${e}.providerSelection.section`,{children:()=>{if(i&&o.ButtonGroup(`${e}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{o.Button(`${e}.fromType.buttonGroup.fromText`,{label:"Text",icon:l.value!=="fromText"&&Ct(t,n)?"@imgly/LoadingSpinner":void 0,isActive:l.value==="fromText",onClick:()=>{l.setValue("fromText")}}),o.Button(`${e}.fromType.buttonGroup.fromImage`,{label:"Image",icon:l.value!=="fromImage"&&Ct(r,n)?"@imgly/LoadingSpinner":void 0,isActive:l.value==="fromImage",onClick:()=>{l.setValue("fromImage")}})}}),c.length>1){let m=l.value==="fromText"?s:l.value==="fromImage"?u:[...s,...u];g!=null&&o.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:m,...g})}}}),c.length>1)g?.value.builderRenderFunction?.(n);else{let m=c[0];m&&m.panel?.builderRenderFunction?.(n)}}}function sl({prefix:e,providerInitializationResults:t}){return r=>{let{builder:i}=r;if(t.length===0)return;let n=t.map(({provider:a,panel:l})=>({id:a.id,label:a.name??a.id,builderRenderFunction:l?.builderRenderFunction})),o=r.state(`${e}.selectedProvider`,n[0]);t.length>1&&o!=null&&i.Section(`${e}.providerSelection.section`,{children:()=>{i.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:n,...o})}}),o.value.builderRenderFunction?.(r)}}function Ct(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(We(r.id),!1).value)}var Jt=al,fe="ly.img.ai.editMode",er="ly.img.ai.metadata";async function cl(e){let t=`ly.img.ai.${e.kind}.confirmation`;e.cesdk?.i18n.setTranslations({en:{"ly.img.ai.processing":"Generating...",[`${t}.cancel`]:"Cancel Generation",[`${t}.apply`]:"Apply Generation",[`${t}.before`]:"Before",[`${t}.after`]:"After"}});let r=i=>{let{engine:n,builder:o,state:a,payload:l}=i;if(l==null)return;let c=n.block.findAllSelected();if(c.length===0)return null;let s=new xt(n,er),u=s.get(c[0]);if(u==null)return null;let d=()=>{c.forEach(p=>{s.clear(p)})};switch(u.status){case"processing":{o.Button(`${t}.spinner`,{label:[`ly.img.ai.${u.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),o.Separator(`${t}.separator`),o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{l.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=a(`${t}.comparing`,"after"),g=l.applyCallbacks?.onCancel;g!=null&&o.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let m=l.applyCallbacks?.onBefore,h=l.applyCallbacks?.onAfter;m!=null&&h!=null&&o.ButtonGroup(`${t}.compare`,{children:()=>{o.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{m(),p.setValue("before")}}),o.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{h(),p.setValue("after")}})}});let v=l.applyCallbacks?.onApply;v!=null&&o.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d();let y=e.cesdk.engine.editor;typeof y._update=="function"&&y._update(),v()}});break}default:}};return Promise.resolve(r)}var ul=cl;function dl(e){if(e.length===0)return[];let t=[...e];for(;t.length>0&&t[0]==="ly.img.separator";)t.shift();for(;t.length>0&&t[t.length-1]==="ly.img.separator";)t.pop();return t.reduce((r,i)=>(i==="ly.img.separator"&&r.length>0&&r[r.length-1]==="ly.img.separator"||r.push(i),r),[])}var pl=dl;function gl(e){return`ly.img.ai.${e}.canvasMenu`}var ml=gl;function fl(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,o=ml(t);if(i==null||!Array.isArray(i.children)){let a=r.ui.getCanvasMenuOrder().find(({id:l})=>l===o);return a!=null&&Array.isArray(a.children)?a.children:n??[]}return i.children.filter(a=>typeof a=="string")}var hl=fl;function bl(e,t){if(t.blockIds.some(r=>!t.cesdk.engine.block.isValid(r)))return Promise.resolve({applyCallbacks:{onBefore:()=>{},onAfter:()=>{},onCancel:()=>{},onApply:()=>{}}});switch(t.kind){case"text":return yl(e,t);case"image":return vl(e,t);case"video":return kl(e,t);case"audio":return wl(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function yl(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,o=i.map(s=>r.engine.block.getString(s,"text/text")),a;if(e.type==="async"){let s="";for await(let u of e.output){if(n?.aborted)break;typeof u=="string"?s=u:u.kind==="text"&&(s=u.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",s)}),a={kind:"text",text:s}}}else a=e.output;if(a==null||a.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(s=>{r.engine.block.setString(s,"text/text",a.text)});let l=()=>{t.blockIds.forEach(s=>{t.cesdk.engine.block.setString(s,"text/text",a.text)})},c=()=>{t.blockIds.forEach((s,u)=>{t.cesdk.engine.block.setString(s,"text/text",o[u])})};return{applyCallbacks:{onBefore:c,onAfter:l,onCancel:c,onApply:()=>{l(),t.cesdk.engine.editor.addUndoStep()}}}}async function vl(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t;if(i.length!==1)throw new Error("Only one block is supported for image generation");let[o]=i,a=r.engine.block.getFill(o),l=r.engine.block.getSourceSet(a,"fill/image/sourceSet"),[c]=l,s;c==null&&(s=r.engine.block.getString(a,"fill/image/imageFileURI"));let u=await r.engine.editor.getMimeType(c?.uri??s),d=await qe(c?.uri??s,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),u==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(o),m=r.engine.block.getCropScaleY(o),h=r.engine.block.getCropTranslationX(o),v=r.engine.block.getCropTranslationY(o),y=r.engine.block.getCropRotation(o),S=()=>{r.engine.block.setCropScaleX(o,g),r.engine.block.setCropScaleY(o,m),r.engine.block.setCropTranslationX(o,h),r.engine.block.setCropTranslationY(o,v),r.engine.block.setCropRotation(o,y)};if(e.type==="async")throw new Error("Streaming generation is not supported yet from a panel");if(e.output.kind!=="image"||typeof e.output.url!="string")throw new Error("Output kind from generation is not an image");let k=e.output.url,b=await r.engine.editor.getMimeType(k),f=await Il(r,k,b),w=await qe(f,t.cesdk.engine),I=w.width/w.height,ae=Math.abs(p-I)>.001,x=c?[{uri:f,width:w.width,height:w.height}]:void 0,De=f;x==null?r.engine.block.setString(a,"fill/image/imageFileURI",De):(r.engine.block.setString(a,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(a,"fill/image/sourceSet",x)),await r.engine.block.forceLoadResources([a]),ae?r.engine.block.setContentFillMode(o,"Cover"):S();let lt=()=>{if(l==null||l.length===0){if(s==null)throw new Error("No image URI found");r.engine.block.setString(a,"fill/image/imageFileURI",s)}else r.engine.block.setSourceSet(a,"fill/image/sourceSet",l);S()},st=()=>{if(x==null){if(De==null)throw new Error("No image URI found");r.engine.block.setString(a,"fill/image/imageFileURI",De)}else r.engine.block.setSourceSet(a,"fill/image/sourceSet",x);ae?r.engine.block.setContentFillMode(o,"Cover"):S()};return{applyCallbacks:{onBefore:lt,onAfter:st,onCancel:()=>{lt()},onApply:()=>{st(),t.cesdk.engine.editor.addUndoStep()}}}}async function kl(e,t){throw new Error("Function not implemented.")}async function wl(e,t){throw new Error("Function not implemented.")}async function Il(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${qo(r)}`,{type:r}),o=await e.unstable_upload(n,()=>{});return o?.meta?.uri??(console.warn("Failed to upload image:",o),t)}var Al=bl;function Cl(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let c=t.block.findAllSelected();return r.some(s=>c.includes(s))}let o=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),a=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let l=!1;return()=>{l||(a(),o(),t.editor.setEditMode("Transform"),l=!0)}}var Sl=Cl,xl=class tr{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new tr),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},V=xl;function El(e){return async(t,r)=>{let i=r?.blockIds??e.blockIds;if(e.providerInitializationResult==null)return e.debug&&console.warn("[Generate] No provider initialization result found for quick action. Returning abortion status."),{status:"aborted"};let n=e.providerInitializationResult?.provider.input?.quickActions?.supported?.[e.quickAction.id];if(n==null)throw new Error("[Generate] Quick action input mapping failed. Ensure the provider supports this quick action.");let o=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:u=>u;e.close();let a=new AbortController,l=AbortSignal.any([e.abortSignal,a.signal].filter($e)),c=new xt(e.cesdk.engine,er),s=e.lock??!0?Sl({engine:e.cesdk.engine,editModeToLockTo:fe,blockIdsToLock:i}):()=>{};i.forEach(u=>{V.get().register(u,{onCancelGeneration:()=>{a.abort(Xt),s(),e.cesdk.engine.block.isValid(u)&&(e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"}),c.clear(u))}})}),i?.forEach(u=>{c.set(u,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Pending",progress:0})});try{let u=await e.providerInitializationResult.generate(o(t),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:l}),d=u.status;switch(d){case"success":{let{applyCallbacks:p}=await Al(u,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:l});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(m=>{c.set(m,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),s()},onCancel:()=>{p.onCancel(),s()}};i.forEach(m=>{V.get().register(m,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&c.clear(g)}),p.onApply(),s();return u}case"aborted":return e.debug&&console.log("Generation was aborted"),s(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),u;case"error":return s(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&c.clear(p)}),console.error(`[Generate]: ${u.message}`),u;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(u){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),s(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&c.clear(d)}),u}finally{i.forEach(u=>{e.cesdk.engine.block.isValid(u)&&e.cesdk.engine.block.setState(u,{type:"Ready"})})}}}var St=El;function Ml(e){let t=`ly.img.ai.${e.kind}}`;e.cesdk.i18n.setTranslations({en:{[`${t}.quickActionMenu.providerSelect.label`]:"Provider"}});let r=i=>{if(i.engine.editor.getEditMode()===fe)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let{payload:o}=i,a=hl({kind:e.kind,cesdk:e.cesdk,payload:o,defaultOrder:e.defaultOrder})??[];if(a.length===0)return;let l=$l(a).filter(b=>{if(b==="ly.img.separator")return!0;let f=b.scopes;if(f!=null&&f.length>0&&!n.every(w=>f.every(I=>e.engine.block.isAllowedByScope(w,I))))return!1;if(b.enable!=null){if(typeof b.enable=="function")return b.enable({engine:e.engine});if(typeof b.enable=="boolean")return b.enable}return!0}),c=[],s=e.providerInitializationResults.reduce((b,f)=>{if(f.provider.kind!==e.kind)return b;let w=l.map(I=>{if(I==="ly.img.separator")return I;if(f.provider.input?.quickActions?.supported?.[I.id]!=null)return{definition:I};{let ae=Lt.get().getAll().filter(x=>x.provider.kind!==e.kind&&x.provider.id!==f.provider.id).find(x=>x.provider.input?.quickActions?.supported?.[I.id]!=null);if(ae!=null){let x={definition:I,providerInitializationResult:ae};return c.push(x),x}else return}}).filter($e);return w=pl(w),w.length===0||w.every(I=>I==="ly.img.separator")||w.every(I=>I==="ly.img.separator"||I.providerInitializationResult!=null)||b.push({providerInitializationResult:f,quickActions:w}),b},[]);if(s.length===0)if(c.length>0){let b=new Map;c.forEach(w=>{let I=w.definition.id;b.has(I)||b.set(I,w)});let f=Array.from(b.values());s.push({providerInitializationResult:f[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:f})}else return;let u=s.map(({providerInitializationResult:b})=>({id:b.provider.id,label:b.provider.name??b.provider.id})),d=i.experimental.global(`${t}.currentProvider`,u[0]),p=s.find(({providerInitializationResult:{provider:{id:b}}})=>b===d.value?.id),g=n.every(b=>i.engine.block.getState(b).type==="Ready"),{builder:m,experimental:h,state:v}=i,y=v(`${t}.isGenerating`,!1),S=v(`${t}.toggleExpandedState`,void 0),k=async(b,f,w)=>{y.setValue(!0);try{return await w(b,f)}finally{y.setValue(!1)}};h.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!g,isLoading:y.value,trailingIcon:null,children:({close:b})=>{m.Section(`${t}.popover.section`,{children:()=>{if(S.value!==void 0){let f=p?.quickActions.find(w=>w!=="ly.img.separator"&&w.definition.id===S.value);return f!=null&&f.definition.render!=null?f.definition.render({...i,toggleExpand:()=>{S.setValue(void 0)},isExpanded:!0,generate:St({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[k],confirmation:f.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:d.value.id}):void 0}S.value==null&&u.length>1&&(m.Select(`${t}.providerSelect.select`,{inputLabel:`${t}.quickActionMenu.providerSelect.label`,values:u,...d}),m.Separator(`${t}.providerSelect.separator`)),h.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(f=>{if(f==="ly.img.separator"){m.Separator(`${t}.separator.${Math.random().toString()}`);return}f.definition.render!=null&&f.definition.render({...i,toggleExpand:()=>{S.setValue(f.definition.id)},isExpanded:!1,generate:St({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[k],confirmation:f.definition.defaults?.confirmation??!0,close:b,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:b,providerId:d.value.id})})}})}})}})};return Promise.resolve(r)}function $l(e){return e.map(t=>t==="ly.img.separator"?t:Qe.get().getBy({id:t,type:"quick"})[0]).filter($e)}var jl=Ml;async function Pl(e){let t=await jl({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await ul({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===fe){let o=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onBefore?.()})},onAfter:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onAfter?.()})},onCancel:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onCancel?.()})},onApply:()=>{o.forEach(a=>{V.get().get(a).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{o.forEach(a=>{V.get().get(a).onCancelGeneration?.()})}}});return}t(i)}}}var rr=Pl;var ir="@imgly/plugin-ai-image-generation",Tl=`
|
|
67
67
|
<svg>
|
|
68
68
|
<symbol
|
|
69
69
|
fill="none"
|
|
@@ -77,7 +77,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
|
|
|
77
77
|
|
|
78
78
|
</symbol>
|
|
79
79
|
</svg>
|
|
80
|
-
`,nr=Tl;var _l=typeof global=="object"&&global&&global.Object===Object&&global,vr=_l,Dl=typeof self=="object"&&self&&self.Object===Object&&self,Nl=vr||Dl||Function("return this")(),_=Nl,Ll=_.Symbol,te=Ll,kr=Object.prototype,Ol=kr.hasOwnProperty,Rl=kr.toString,he=te?te.toStringTag:void 0;function Fl(e){var t=Ol.call(e,he),r=e[he];try{e[he]=void 0;var i=!0}catch{}var n=Rl.call(e);return i&&(t?e[he]=r:delete e[he]),n}var zl=Fl,Bl=Object.prototype,Ul=Bl.toString;function Vl(e){return Ul.call(e)}var Gl=Vl,ql="[object Null]",Hl="[object Undefined]",or=te?te.toStringTag:void 0;function Ql(e){return e==null?e===void 0?Hl:ql:or&&or in Object(e)?zl(e):Gl(e)}var ke=Ql;function Zl(e){return e!=null&&typeof e=="object"}var nt=Zl,dd=Array.isArray;function Yl(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wr=Yl,Wl="[object AsyncFunction]",Kl="[object Function]",Xl="[object GeneratorFunction]",Jl="[object Proxy]";function es(e){if(!wr(e))return!1;var t=ke(e);return t==Kl||t==Xl||t==Wl||t==Jl}var ts=es,rs=_["__core-js_shared__"],Ke=rs,ar=function(){var e=/[^.]+$/.exec(Ke&&Ke.keys&&Ke.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function is(e){return!!ar&&ar in e}var ns=is,os=Function.prototype,as=os.toString;function ls(e){if(e!=null){try{return as.call(e)}catch{}try{return e+""}catch{}}return""}var q=ls,ss=/[\\^$.*+?()[\]{}|]/g,cs=/^\[object .+?Constructor\]$/,us=Function.prototype,ds=Object.prototype,ps=us.toString,gs=ds.hasOwnProperty,ms=RegExp("^"+ps.call(gs).replace(ss,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fs(e){if(!wr(e)||ns(e))return!1;var t=ts(e)?ms:cs;return t.test(q(e))}var hs=fs;function bs(e,t){return e?.[t]}var ys=bs;function vs(e,t){var r=ys(e,t);return hs(r)?r:void 0}var re=vs,ks=re(_,"WeakMap"),Je=ks;function ws(e,t){return e===t||e!==e&&t!==t}var Is=ws,As=9007199254740991;function Cs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=As}var Ss=Cs;var pd=Object.prototype;var xs="[object Arguments]";function Es(e){return nt(e)&&ke(e)==xs}var lr=Es,Ir=Object.prototype,Ms=Ir.hasOwnProperty,$s=Ir.propertyIsEnumerable,gd=lr(function(){return arguments}())?lr:function(e){return nt(e)&&Ms.call(e,"callee")&&!$s.call(e,"callee")};var Ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sr=Ar&&typeof module=="object"&&module&&!module.nodeType&&module,js=sr&&sr.exports===Ar,cr=js?_.Buffer:void 0,md=cr?cr.isBuffer:void 0;var Ps="[object Arguments]",Ts="[object Array]",_s="[object Boolean]",Ds="[object Date]",Ns="[object Error]",Ls="[object Function]",Os="[object Map]",Rs="[object Number]",Fs="[object Object]",zs="[object RegExp]",Bs="[object Set]",Us="[object String]",Vs="[object WeakMap]",Gs="[object ArrayBuffer]",qs="[object DataView]",Hs="[object Float32Array]",Qs="[object Float64Array]",Zs="[object Int8Array]",Ys="[object Int16Array]",Ws="[object Int32Array]",Ks="[object Uint8Array]",Xs="[object Uint8ClampedArray]",Js="[object Uint16Array]",ec="[object Uint32Array]",C={};C[Hs]=C[Qs]=C[Zs]=C[Ys]=C[Ws]=C[Ks]=C[Xs]=C[Js]=C[ec]=!0;C[Ps]=C[Ts]=C[Gs]=C[_s]=C[qs]=C[Ds]=C[Ns]=C[Ls]=C[Os]=C[Rs]=C[Fs]=C[zs]=C[Bs]=C[Us]=C[Vs]=!1;function tc(e){return nt(e)&&Ss(e.length)&&!!C[ke(e)]}var rc=tc;function ic(e){return function(t){return e(t)}}var nc=ic,Cr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,be=Cr&&typeof module=="object"&&module&&!module.nodeType&&module,oc=be&&be.exports===Cr,Xe=oc&&vr.process,ac=function(){try{var e=be&&be.require&&be.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch{}}(),ur=ac,dr=ur&&ur.isTypedArray,fd=dr?nc(dr):rc;var lc=Object.prototype,hd=lc.hasOwnProperty;function sc(e,t){return function(r){return e(t(r))}}var cc=sc,bd=cc(Object.keys,Object);var uc=Object.prototype,yd=uc.hasOwnProperty;var dc=re(Object,"create"),ye=dc;function pc(){this.__data__=ye?ye(null):{},this.size=0}var gc=pc;function mc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fc=mc,hc="__lodash_hash_undefined__",bc=Object.prototype,yc=bc.hasOwnProperty;function vc(e){var t=this.__data__;if(ye){var r=t[e];return r===hc?void 0:r}return yc.call(t,e)?t[e]:void 0}var kc=vc,wc=Object.prototype,Ic=wc.hasOwnProperty;function Ac(e){var t=this.__data__;return ye?t[e]!==void 0:Ic.call(t,e)}var Cc=Ac,Sc="__lodash_hash_undefined__";function xc(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ye&&t===void 0?Sc:t,this}var Ec=xc;function ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ie.prototype.clear=gc;ie.prototype.delete=fc;ie.prototype.get=kc;ie.prototype.has=Cc;ie.prototype.set=Ec;var pr=ie;function Mc(){this.__data__=[],this.size=0}var $c=Mc;function jc(e,t){for(var r=e.length;r--;)if(Is(e[r][0],t))return r;return-1}var je=jc,Pc=Array.prototype,Tc=Pc.splice;function _c(e){var t=this.__data__,r=je(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Tc.call(t,r,1),--this.size,!0}var Dc=_c;function Nc(e){var t=this.__data__,r=je(t,e);return r<0?void 0:t[r][1]}var Lc=Nc;function Oc(e){return je(this.__data__,e)>-1}var Rc=Oc;function Fc(e,t){var r=this.__data__,i=je(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zc=Fc;function ne(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ne.prototype.clear=$c;ne.prototype.delete=Dc;ne.prototype.get=Lc;ne.prototype.has=Rc;ne.prototype.set=zc;var Pe=ne,Bc=re(_,"Map"),ve=Bc;function Uc(){this.size=0,this.__data__={hash:new pr,map:new(ve||Pe),string:new pr}}var Vc=Uc;function Gc(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qc=Gc;function Hc(e,t){var r=e.__data__;return qc(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Te=Hc;function Qc(e){var t=Te(this,e).delete(e);return this.size-=t?1:0,t}var Zc=Qc;function Yc(e){return Te(this,e).get(e)}var Wc=Yc;function Kc(e){return Te(this,e).has(e)}var Xc=Kc;function Jc(e,t){var r=Te(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var eu=Jc;function oe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}oe.prototype.clear=Vc;oe.prototype.delete=Zc;oe.prototype.get=Wc;oe.prototype.has=Xc;oe.prototype.set=eu;var Sr=oe;function tu(){this.__data__=new Pe,this.size=0}var ru=tu;function iu(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var nu=iu;function ou(e){return this.__data__.get(e)}var au=ou;function lu(e){return this.__data__.has(e)}var su=lu,cu=200;function uu(e,t){var r=this.__data__;if(r instanceof Pe){var i=r.__data__;if(!ve||i.length<cu-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sr(i)}return r.set(e,t),this.size=r.size,this}var du=uu;function we(e){var t=this.__data__=new Pe(e);this.size=t.size}we.prototype.clear=ru;we.prototype.delete=nu;we.prototype.get=au;we.prototype.has=su;we.prototype.set=du;var pu=Object.prototype,vd=pu.propertyIsEnumerable;var gu=re(_,"DataView"),et=gu,mu=re(_,"Promise"),tt=mu,fu=re(_,"Set"),rt=fu,gr="[object Map]",hu="[object Object]",mr="[object Promise]",fr="[object Set]",hr="[object WeakMap]",br="[object DataView]",bu=q(et),yu=q(ve),vu=q(tt),ku=q(rt),wu=q(Je),ee=ke;(et&&ee(new et(new ArrayBuffer(1)))!=br||ve&&ee(new ve)!=gr||tt&&ee(tt.resolve())!=mr||rt&&ee(new rt)!=fr||Je&&ee(new Je)!=hr)&&(ee=function(e){var t=ke(e),r=t==hu?e.constructor:void 0,i=r?q(r):"";if(i)switch(i){case bu:return br;case yu:return gr;case vu:return mr;case ku:return fr;case wu:return hr}return t});var kd=_.Uint8Array;var Iu="__lodash_hash_undefined__";function Au(e){return this.__data__.set(e,Iu),this}var Cu=Au;function Su(e){return this.__data__.has(e)}var xu=Su;function it(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sr;++t<r;)this.add(e[t])}it.prototype.add=it.prototype.push=Cu;it.prototype.has=xu;var yr=te?te.prototype:void 0,wd=yr?yr.valueOf:void 0;var Eu=Object.prototype,Id=Eu.hasOwnProperty;var Mu=Object.prototype,Ad=Mu.hasOwnProperty;var Cd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Sd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xd=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $u(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),o=new Blob([n],{type:r});return URL.createObjectURL(o)}else return e}async function E(e,t,r){let i,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=a.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return $u(i,t)}function ju(e){return e==null?[]:Array.isArray(e)?e:[e]}var ot=ju;var H="@imgly/plugin-ai-image-generation-web",_e=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"];var xr="editImage",O=`ly.img.${xr}`,M=`ly.img.ai.quickAction.image.${xr}`,Pu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${M}.label`]:"Edit Image...",[`${M}.description`]:"Change image based on description",[`${M}.prompt.label`]:"Edit Image...",[`${M}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${M}.apply`]:"Change"}}),{id:O,type:"quick",kind:"image",label:`${M}.label`,description:`${M}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${O}.prompt`,"");r.TextArea(`${O}.prompt`,{inputLabel:`${M}.prompt.label`,placeholder:`${M}.prompt.placeholder`,...u}),r.Separator(`${O}.separator`),i.builder.ButtonRow(`${O}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${O}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${O}.footer.apply`,{label:`${M}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await E(p,l,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else r.Button(`${O}.button`,{label:`${M}.label`,icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Er=Pu;var Mr="swapBackground",R=`ly.img.${Mr}`,$=`ly.img.ai.quickAction.image.${Mr}`,Tu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${$}.label`]:"Swap Background...",[`${$}.description`]:"Change the background of the image",[`${$}.prompt.label`]:"Swap Background...",[`${$}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${$}.apply`]:"Change"}}),{id:R,type:"quick",kind:"image",label:`${$}.label`,description:`${$}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${R}.prompt`,"");r.TextArea(`${R}.prompt`,{inputLabel:`${$}.prompt.label`,placeholder:`${$}.prompt.placeholder`,...u}),r.Separator(`${R}.separator`),i.builder.ButtonRow(`${R}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${R}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${R}.footer.apply`,{label:`${$}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await E(p,l,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else r.Button(`${R}.button`,{label:`${$}.label`,icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),$r=Tu;var jr="styleTransfer",Ie=`ly.img.${jr}`,Ae=`ly.img.ai.quickAction.image.${jr}`,_u=[{id:"water",label:"Watercolor Painting",prompt:"Convert to watercolor painting."},{id:"oil",label:"Oil Painting",prompt:"Render in oil painting style."},{id:"charcoal",label:"Charcoal Sketch",prompt:"Transform into a charcoal sketch."},{id:"pencil",label:"Pencil Drawing",prompt:"Apply pencil drawing effect."},{id:"pastel",label:"Pastel Artwork",prompt:"Make it look like a pastel artwork."},{id:"ink",label:"Ink Wash",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",label:"Stained Glass Window",prompt:"Stylize as a stained glass window."},{id:"japanese",label:"Japanese Woodblock Print",prompt:"Repaint as a traditional Japanese woodblock print."}],Du=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${Ae}.label`]:"Change Art Style",[`${Ae}.description`]:"Transform image into different art styles"}}),{id:Ie,type:"quick",kind:"image",label:`${Ae}.label`,description:`${Ae}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,generate:n,engine:o,close:a})=>{i.builder.Popover(`${Ie}.popover`,{label:`${Ae}.label`,icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{r.Section(`${Ie}.popover.section`,{children:()=>{i.builder.Menu(`${Ie}.popover.menu`,{children:()=>{_u.forEach(l=>{r.Button(`${Ie}.popover.menu.${l.id}`,{label:l.label,labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=o.block.findAllSelected(),s=await E(c,o,{throwErrorIfSvg:!0});await n({style:l.prompt,uri:s}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),Pr=Du;var Tr="artistTransfer",Ce=`ly.img.${Tr}`,Se=`ly.img.ai.quickAction.image.${Tr}`,Nu=[{id:"van-gogh",label:"Van Gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",label:"Monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",label:"Picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",label:"Dal\xED",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",label:"Matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",label:"Warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",label:"Michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",label:"Da Vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",label:"Rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",label:"Mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",label:"Frida Kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",label:"Hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],Lu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${Se}.label`]:"Painted By",[`${Se}.description`]:"Transform image in the style of famous artists"}}),{id:Ce,type:"quick",kind:"image",label:`${Se}.label`,description:`${Se}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,generate:n,engine:o,close:a})=>{i.builder.Popover(`${Ce}.popover`,{label:`${Se}.label`,icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{r.Section(`${Ce}.popover.section`,{children:()=>{i.builder.Menu(`${Ce}.popover.menu`,{children:()=>{Nu.forEach(l=>{r.Button(`${Ce}.popover.menu.${l.id}`,{label:l.label,labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=o.block.findAllSelected(),s=await E(c,o,{throwErrorIfSvg:!0});await n({artist:l.prompt,uri:s}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),_r=Lu;var Dr="createVariant",F=`ly.img.${Dr}`,j=`ly.img.ai.quickAction.image.${Dr}`,Ou=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${j}.label`]:"Create Variant...",[`${j}.description`]:"Create a variation of the image",[`${j}.prompt.label`]:"Create Variant...",[`${j}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${j}.apply`]:"Create"}}),{id:F,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${j}.label`,description:`${j}.description`,enable:r=>{if(!P()(r))return!1;let[i]=r.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:r.engine})||!r.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${F}.prompt`,"");r.TextArea(`${F}.prompt`,{inputLabel:`${j}.prompt.label`,placeholder:`${j}.prompt.placeholder`,...u}),r.Separator(`${F}.separator`),i.builder.ButtonRow(`${F}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${F}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${F}.footer.apply`,{label:`${j}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=l.block.getType(p),m=l.block.duplicate(p);g==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(S=>{l.block.destroy(S)}),l.block.setSelected(p,!1),l.block.setSelected(m,!0);let h=l.block.getParent(m);if(h==null)throw new Error("Parent not found");if(!(h!=null&&l.block.getType(h)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(h))&&g!=="//ly.img.ubq/page"){let k=l.block.getWidth(h),b=l.block.getHeight(h),f=.02*Math.min(k,b)*1;l.block.setPositionX(m,l.block.getPositionX(m)+f),l.block.setPositionY(m,l.block.getPositionY(m)+f)}let y=await E(m,l,{throwErrorIfSvg:!0});await a({prompt:d,uri:y},{blockIds:[m]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else r.Button(`${F}.button`,{label:`${j}.label`,icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),Nr=Ou;var Lr="combineImages",z=`ly.img.${Lr}`,D=`ly.img.ai.quickAction.${Lr}`,Ru=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${D}.apply`]:"Combine",[`${D}`]:"Combine Images...",[`${D}.prompt.inputLabel`]:"Image Combination Instructions",[`${D}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:z,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${D}`,description:"Combine multiple images with instructions",enable:r=>{let i=r.engine.block.findAllSelected();return i==null||i.length<2?!1:i.every(n=>{if(r.engine.block.getType(n)!=="//ly.img.ubq/graphic"&&!r.engine.block.supportsFill(n))return!1;let o=r.engine.block.getFill(n);if(r.engine.block.getType(o)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:r.engine})||!r.engine.block.isAllowedByScope(n,"lifecycle/duplicate"))return!1;let a=r.engine.block.getParent(n);return!(a!=null&&r.engine.block.getType(a)==="//ly.img.ubq/track"&&r.engine.block.isPageDurationSource(a)||r.engine.block.getType(n)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${z}.prompt`,"");r.TextArea(`${z}.prompt`,{inputLabel:`${D}.prompt.inputLabel`,placeholder:`${D}.prompt.placeholder`,...u}),r.Separator(`${z}.separator`),i.builder.ButtonRow(`${z}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${z}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${z}.footer.apply`,{label:`${D}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=l.block.findAllSelected(),g=l.block.duplicate(p[0]);p.forEach(b=>{l.block.setSelected(b,!1)}),l.block.setSelected(g,!0);let m=l.block.getParent(g);if(m==null)throw new Error("Parent not found");let h=1,v=l.block.getWidth(m),y=l.block.getHeight(m),S=.02*Math.min(v,y)*h;l.block.setPositionX(g,l.block.getPositionX(g)+S),l.block.setPositionY(g,l.block.getPositionY(g)+S);let k=await Promise.all(p.map(b=>E(b,l,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else r.Button(`${z}.button`,{label:`${D}`,icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),Or=Ru;var Fr="remixPage",Rr=`ly.img.${Fr}`,at=`ly.img.ai.quickAction.${Fr}`,Fu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${at}`]:"Turn Page into Image"}}),{id:Rr,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${at}`,description:"Convert the page into a single image",enable:({engine:r})=>{let i=r.block.findAllSelected();if(i.length!==1)return!1;let n=i[0];return r.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:r,generate:i,engine:n,close:o})=>{r.Button(`${Rr}.button`,{label:`${at}`,icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=n.block.findAllSelected(),l=await n.block.export(a),c=URL.createObjectURL(l),s=n.block.duplicate(a);n.block.getChildren(s).forEach(y=>{n.block.destroy(y)}),n.block.setSelected(a,!1);let u=n.block.getFrameWidth(a),d=n.block.getFrameHeight(a),p=n.block.getPositionX(a),g=n.block.getPositionY(a),m=n.block.createShape("rect"),h=n.block.create("graphic");n.block.setShape(h,m),n.block.appendChild(s,h),n.block.setWidth(h,u),n.block.setHeight(h,d),n.block.setPositionX(h,p),n.block.setPositionY(h,g);let v=n.block.createFill("image");n.block.setFill(h,v),n.block.setString(v,"fill/image/imageFileURI",c),n.block.setSelected(h,!0),n.scene.zoomToBlock(h),await i({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[h]}),o()}catch(a){console.error("Generation error:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),zr=Fu;var Br="remixPageWithPrompt",B=`ly.img.${Br}`,N=`ly.img.ai.quickAction.${Br}`,zu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${N}`]:"Remix Page...",[`${N}.prompt.inputLabel`]:"Remix Page Prompt",[`${N}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${N}.apply`]:"Remix"}}),{id:B,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${N}`,description:"Remix the page with custom instructions",enable:({engine:r})=>{let i=r.block.findAllSelected();if(i.length!==1)return!1;let n=i[0];return r.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${B}.prompt`,"");r.TextArea(`${B}.prompt`,{inputLabel:`${N}.prompt.inputLabel`,placeholder:`${N}.prompt.placeholder`,...u}),r.Separator(`${B}.separator`),i.builder.ButtonRow(`${B}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${B}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${B}.footer.apply`,{label:`${N}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await l.block.export(p),m=URL.createObjectURL(g),h=l.block.duplicate(p);l.block.getChildren(h).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(p,!1);let v=l.block.getFrameWidth(p),y=l.block.getFrameHeight(p),S=l.block.getPositionX(p),k=l.block.getPositionY(p),b=l.block.createShape("rect"),f=l.block.create("graphic");l.block.setShape(f,b),l.block.appendChild(h,f),l.block.setWidth(f,v),l.block.setHeight(f,y),l.block.setPositionX(f,S),l.block.setPositionY(f,k);let w=l.block.createFill("image");l.block.setFill(f,w),l.block.setString(w,"fill/image/imageFileURI",m),l.block.setSelected(f,!0),l.scene.zoomToBlock(f),await a({prompt:d,uri:m},{blockIds:[f]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else r.Button(`${B}.button`,{label:`${N}`,icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),Ur=zu;var U="ly.img.ai.image-generation";function Bu(e){return{async initialize({cesdk:t}){if(t==null)return;zt(t,H,"0.2.1");let r=Qe.get(),i=r.register({type:"plugin",sceneMode:"Design",id:H,pluginId:H,label:"Generate Image",meta:{panelId:U},execute:()=>{t.ui.isPanelOpen(U)?t.ui.closePanel(U):t.ui.openPanel(U)}});t.ui.addIconSet(ir,nr),t.i18n.setTranslations({en:{[`panel.${U}`]:"Image Generation",[`${U}.dock.label`]:"AI Image"}}),Uu(e),r.register(Er({cesdk:t})),r.register($r({cesdk:t})),r.register(Pr({cesdk:t})),r.register(_r({cesdk:t})),r.register(Nr({cesdk:t})),r.register(Or({cesdk:t})),r.register(zr({cesdk:t})),r.register(Ur({cesdk:t}));let n=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,a=await Promise.all(ot(n).map(d=>d({cesdk:t}))),l=await Promise.all(ot(o).map(d=>d({cesdk:t})));if(!(a.length>0||l.length>0)){i();return}let s=await Jt("image",{fromText:a,fromImage:l},{cesdk:t},e),u=await rr({kind:"image",providerInitializationResults:s.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:_e});s.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:fe})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(U,s.panel.builderRenderFunction),Bt({cesdk:t,panelId:U})):i()}}}function Uu(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var Vr=Bu;var Vu=e=>({name:H,version:"0.2.1",...Vr(e)}),fp=Vu;export{_e as DEFAULT_IMAGE_QUICK_ACTION_ORDER,fp as default};
|
|
80
|
+
`,nr=Tl;var _l=typeof global=="object"&&global&&global.Object===Object&&global,vr=_l,Dl=typeof self=="object"&&self&&self.Object===Object&&self,Nl=vr||Dl||Function("return this")(),_=Nl,Ll=_.Symbol,te=Ll,kr=Object.prototype,Ol=kr.hasOwnProperty,Rl=kr.toString,he=te?te.toStringTag:void 0;function Fl(e){var t=Ol.call(e,he),r=e[he];try{e[he]=void 0;var i=!0}catch{}var n=Rl.call(e);return i&&(t?e[he]=r:delete e[he]),n}var zl=Fl,Bl=Object.prototype,Ul=Bl.toString;function Vl(e){return Ul.call(e)}var Gl=Vl,ql="[object Null]",Hl="[object Undefined]",or=te?te.toStringTag:void 0;function Ql(e){return e==null?e===void 0?Hl:ql:or&&or in Object(e)?zl(e):Gl(e)}var ke=Ql;function Zl(e){return e!=null&&typeof e=="object"}var nt=Zl,dd=Array.isArray;function Yl(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var wr=Yl,Wl="[object AsyncFunction]",Kl="[object Function]",Xl="[object GeneratorFunction]",Jl="[object Proxy]";function es(e){if(!wr(e))return!1;var t=ke(e);return t==Kl||t==Xl||t==Wl||t==Jl}var ts=es,rs=_["__core-js_shared__"],Ke=rs,ar=function(){var e=/[^.]+$/.exec(Ke&&Ke.keys&&Ke.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function is(e){return!!ar&&ar in e}var ns=is,os=Function.prototype,as=os.toString;function ls(e){if(e!=null){try{return as.call(e)}catch{}try{return e+""}catch{}}return""}var q=ls,ss=/[\\^$.*+?()[\]{}|]/g,cs=/^\[object .+?Constructor\]$/,us=Function.prototype,ds=Object.prototype,ps=us.toString,gs=ds.hasOwnProperty,ms=RegExp("^"+ps.call(gs).replace(ss,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fs(e){if(!wr(e)||ns(e))return!1;var t=ts(e)?ms:cs;return t.test(q(e))}var hs=fs;function bs(e,t){return e?.[t]}var ys=bs;function vs(e,t){var r=ys(e,t);return hs(r)?r:void 0}var re=vs,ks=re(_,"WeakMap"),Je=ks;function ws(e,t){return e===t||e!==e&&t!==t}var Is=ws,As=9007199254740991;function Cs(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=As}var Ss=Cs;var pd=Object.prototype;var xs="[object Arguments]";function Es(e){return nt(e)&&ke(e)==xs}var lr=Es,Ir=Object.prototype,Ms=Ir.hasOwnProperty,$s=Ir.propertyIsEnumerable,gd=lr(function(){return arguments}())?lr:function(e){return nt(e)&&Ms.call(e,"callee")&&!$s.call(e,"callee")};var Ar=typeof exports=="object"&&exports&&!exports.nodeType&&exports,sr=Ar&&typeof module=="object"&&module&&!module.nodeType&&module,js=sr&&sr.exports===Ar,cr=js?_.Buffer:void 0,md=cr?cr.isBuffer:void 0;var Ps="[object Arguments]",Ts="[object Array]",_s="[object Boolean]",Ds="[object Date]",Ns="[object Error]",Ls="[object Function]",Os="[object Map]",Rs="[object Number]",Fs="[object Object]",zs="[object RegExp]",Bs="[object Set]",Us="[object String]",Vs="[object WeakMap]",Gs="[object ArrayBuffer]",qs="[object DataView]",Hs="[object Float32Array]",Qs="[object Float64Array]",Zs="[object Int8Array]",Ys="[object Int16Array]",Ws="[object Int32Array]",Ks="[object Uint8Array]",Xs="[object Uint8ClampedArray]",Js="[object Uint16Array]",ec="[object Uint32Array]",C={};C[Hs]=C[Qs]=C[Zs]=C[Ys]=C[Ws]=C[Ks]=C[Xs]=C[Js]=C[ec]=!0;C[Ps]=C[Ts]=C[Gs]=C[_s]=C[qs]=C[Ds]=C[Ns]=C[Ls]=C[Os]=C[Rs]=C[Fs]=C[zs]=C[Bs]=C[Us]=C[Vs]=!1;function tc(e){return nt(e)&&Ss(e.length)&&!!C[ke(e)]}var rc=tc;function ic(e){return function(t){return e(t)}}var nc=ic,Cr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,be=Cr&&typeof module=="object"&&module&&!module.nodeType&&module,oc=be&&be.exports===Cr,Xe=oc&&vr.process,ac=function(){try{var e=be&&be.require&&be.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch{}}(),ur=ac,dr=ur&&ur.isTypedArray,fd=dr?nc(dr):rc;var lc=Object.prototype,hd=lc.hasOwnProperty;function sc(e,t){return function(r){return e(t(r))}}var cc=sc,bd=cc(Object.keys,Object);var uc=Object.prototype,yd=uc.hasOwnProperty;var dc=re(Object,"create"),ye=dc;function pc(){this.__data__=ye?ye(null):{},this.size=0}var gc=pc;function mc(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fc=mc,hc="__lodash_hash_undefined__",bc=Object.prototype,yc=bc.hasOwnProperty;function vc(e){var t=this.__data__;if(ye){var r=t[e];return r===hc?void 0:r}return yc.call(t,e)?t[e]:void 0}var kc=vc,wc=Object.prototype,Ic=wc.hasOwnProperty;function Ac(e){var t=this.__data__;return ye?t[e]!==void 0:Ic.call(t,e)}var Cc=Ac,Sc="__lodash_hash_undefined__";function xc(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ye&&t===void 0?Sc:t,this}var Ec=xc;function ie(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ie.prototype.clear=gc;ie.prototype.delete=fc;ie.prototype.get=kc;ie.prototype.has=Cc;ie.prototype.set=Ec;var pr=ie;function Mc(){this.__data__=[],this.size=0}var $c=Mc;function jc(e,t){for(var r=e.length;r--;)if(Is(e[r][0],t))return r;return-1}var je=jc,Pc=Array.prototype,Tc=Pc.splice;function _c(e){var t=this.__data__,r=je(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():Tc.call(t,r,1),--this.size,!0}var Dc=_c;function Nc(e){var t=this.__data__,r=je(t,e);return r<0?void 0:t[r][1]}var Lc=Nc;function Oc(e){return je(this.__data__,e)>-1}var Rc=Oc;function Fc(e,t){var r=this.__data__,i=je(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zc=Fc;function ne(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}ne.prototype.clear=$c;ne.prototype.delete=Dc;ne.prototype.get=Lc;ne.prototype.has=Rc;ne.prototype.set=zc;var Pe=ne,Bc=re(_,"Map"),ve=Bc;function Uc(){this.size=0,this.__data__={hash:new pr,map:new(ve||Pe),string:new pr}}var Vc=Uc;function Gc(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var qc=Gc;function Hc(e,t){var r=e.__data__;return qc(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Te=Hc;function Qc(e){var t=Te(this,e).delete(e);return this.size-=t?1:0,t}var Zc=Qc;function Yc(e){return Te(this,e).get(e)}var Wc=Yc;function Kc(e){return Te(this,e).has(e)}var Xc=Kc;function Jc(e,t){var r=Te(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var eu=Jc;function oe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}oe.prototype.clear=Vc;oe.prototype.delete=Zc;oe.prototype.get=Wc;oe.prototype.has=Xc;oe.prototype.set=eu;var Sr=oe;function tu(){this.__data__=new Pe,this.size=0}var ru=tu;function iu(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var nu=iu;function ou(e){return this.__data__.get(e)}var au=ou;function lu(e){return this.__data__.has(e)}var su=lu,cu=200;function uu(e,t){var r=this.__data__;if(r instanceof Pe){var i=r.__data__;if(!ve||i.length<cu-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new Sr(i)}return r.set(e,t),this.size=r.size,this}var du=uu;function we(e){var t=this.__data__=new Pe(e);this.size=t.size}we.prototype.clear=ru;we.prototype.delete=nu;we.prototype.get=au;we.prototype.has=su;we.prototype.set=du;var pu=Object.prototype,vd=pu.propertyIsEnumerable;var gu=re(_,"DataView"),et=gu,mu=re(_,"Promise"),tt=mu,fu=re(_,"Set"),rt=fu,gr="[object Map]",hu="[object Object]",mr="[object Promise]",fr="[object Set]",hr="[object WeakMap]",br="[object DataView]",bu=q(et),yu=q(ve),vu=q(tt),ku=q(rt),wu=q(Je),ee=ke;(et&&ee(new et(new ArrayBuffer(1)))!=br||ve&&ee(new ve)!=gr||tt&&ee(tt.resolve())!=mr||rt&&ee(new rt)!=fr||Je&&ee(new Je)!=hr)&&(ee=function(e){var t=ke(e),r=t==hu?e.constructor:void 0,i=r?q(r):"";if(i)switch(i){case bu:return br;case yu:return gr;case vu:return mr;case ku:return fr;case wu:return hr}return t});var kd=_.Uint8Array;var Iu="__lodash_hash_undefined__";function Au(e){return this.__data__.set(e,Iu),this}var Cu=Au;function Su(e){return this.__data__.has(e)}var xu=Su;function it(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new Sr;++t<r;)this.add(e[t])}it.prototype.add=it.prototype.push=Cu;it.prototype.has=xu;var yr=te?te.prototype:void 0,wd=yr?yr.valueOf:void 0;var Eu=Object.prototype,Id=Eu.hasOwnProperty;var Mu=Object.prototype,Ad=Mu.hasOwnProperty;var Cd=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Sd=new RegExp(/[A-Fa-f0-9]{1}/,"g"),xd=new RegExp(/[A-Fa-f0-9]{2}/,"g");async function $u(e,t){if(e.startsWith("buffer:")){let r=await t.editor.getMimeType(e),i=t.editor.getBufferLength(e),n=t.editor.getBufferData(e,0,i),o=new Blob([n],{type:r});return URL.createObjectURL(o)}else return e}async function E(e,t,r){let i,n=t.block.getFill(e),o=t.block.getSourceSet(n,"fill/image/sourceSet"),[a]=o;if(a==null){if(i=t.block.getString(n,"fill/image/imageFileURI"),i==null)throw new Error("No image source/uri found")}else i=a.uri;if(r?.throwErrorIfSvg&&await t.editor.getMimeType(i)==="image/svg+xml")throw new Error("SVG images are not supported");return $u(i,t)}function ju(e){return e==null?[]:Array.isArray(e)?e:[e]}var ot=ju;var H="@imgly/plugin-ai-image-generation-web",_e=["ly.img.gpt-image-1.changeStyleLibrary","ly.img.styleTransfer","ly.img.artistTransfer","ly.img.separator","ly.img.editImage","ly.img.swapBackground","ly.img.createVariant","ly.img.combineImages","ly.img.separator","ly.img.remixPage","ly.img.separator","ly.img.createVideo"];var xr="editImage",O=`ly.img.${xr}`,M=`ly.img.ai.quickAction.image.${xr}`,Pu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${M}.label`]:"Edit Image...",[`${M}.description`]:"Change image based on description",[`${M}.prompt.label`]:"Edit Image...",[`${M}.prompt.placeholder`]:'e.g. "Add a sunset"',[`${M}.apply`]:"Change"}}),{id:O,type:"quick",kind:"image",label:`${M}.label`,description:`${M}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${O}.prompt`,"");r.TextArea(`${O}.prompt`,{inputLabel:`${M}.prompt.label`,placeholder:`${M}.prompt.placeholder`,...u}),r.Separator(`${O}.separator`),i.builder.ButtonRow(`${O}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${O}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${O}.footer.apply`,{label:`${M}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await E(p,l,{throwErrorIfSvg:!0});await a({prompt:d,uri:g}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to edit image. Please try again.",duration:"medium"})}}})}})}else r.Button(`${O}.button`,{label:`${M}.label`,icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),Er=Pu;var Mr="swapBackground",R=`ly.img.${Mr}`,$=`ly.img.ai.quickAction.image.${Mr}`,Tu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${$}.label`]:"Swap Background...",[`${$}.description`]:"Change the background of the image",[`${$}.prompt.label`]:"Swap Background...",[`${$}.prompt.placeholder`]:'e.g. "A sunset over mountains"',[`${$}.apply`]:"Change"}}),{id:R,type:"quick",kind:"image",label:`${$}.label`,description:`${$}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${R}.prompt`,"");r.TextArea(`${R}.prompt`,{inputLabel:`${$}.prompt.label`,placeholder:`${$}.prompt.placeholder`,...u}),r.Separator(`${R}.separator`),i.builder.ButtonRow(`${R}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${R}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${R}.footer.apply`,{label:`${$}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await E(p,l,{throwErrorIfSvg:!0});await a({prompt:`Swap the background to ${d}`,uri:g}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to swap background. Please try again.",duration:"medium"})}}})}})}else r.Button(`${R}.button`,{label:`${$}.label`,icon:"@imgly/plugin-ai-generation/image",labelAlignment:"left",variant:"plain",onClick:o})}}),$r=Tu;var jr="styleTransfer",Ie=`ly.img.${jr}`,Ae=`ly.img.ai.quickAction.image.${jr}`,_u=[{id:"water",label:"Watercolor Painting",prompt:"Convert to watercolor painting."},{id:"oil",label:"Oil Painting",prompt:"Render in oil painting style."},{id:"charcoal",label:"Charcoal Sketch",prompt:"Transform into a charcoal sketch."},{id:"pencil",label:"Pencil Drawing",prompt:"Apply pencil drawing effect."},{id:"pastel",label:"Pastel Artwork",prompt:"Make it look like a pastel artwork."},{id:"ink",label:"Ink Wash",prompt:"Turn into a classic ink wash painting."},{id:"stained-glass",label:"Stained Glass Window",prompt:"Stylize as a stained glass window."},{id:"japanese",label:"Japanese Woodblock Print",prompt:"Repaint as a traditional Japanese woodblock print."}],Du=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${Ae}.label`]:"Change Art Style",[`${Ae}.description`]:"Transform image into different art styles"}}),{id:Ie,type:"quick",kind:"image",label:`${Ae}.label`,description:`${Ae}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,generate:n,engine:o,close:a})=>{i.builder.Popover(`${Ie}.popover`,{label:`${Ae}.label`,icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{r.Section(`${Ie}.popover.section`,{children:()=>{i.builder.Menu(`${Ie}.popover.menu`,{children:()=>{_u.forEach(l=>{r.Button(`${Ie}.popover.menu.${l.id}`,{label:l.label,labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=o.block.findAllSelected(),s=await E(c,o,{throwErrorIfSvg:!0});await n({style:l.prompt,uri:s}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply style transfer. Please try again.",duration:"medium"})}}})})}})}})}})}}),Pr=Du;var Tr="artistTransfer",Ce=`ly.img.${Tr}`,Se=`ly.img.ai.quickAction.image.${Tr}`,Nu=[{id:"van-gogh",label:"Van Gogh",prompt:"Render this image in the style of Vincent van Gogh, using expressive brushstrokes and swirling motion."},{id:"monet",label:"Monet",prompt:"Transform this image into the soft, impressionistic style of Claude Monet with natural light and delicate color blending."},{id:"picasso",label:"Picasso",prompt:"Apply a Pablo Picasso cubist style with abstract geometry and fragmented shapes."},{id:"dali",label:"Dal\xED",prompt:"Make this image resemble Salvador Dal\xED's surrealist style, with dreamlike distortion and soft shadows."},{id:"matisse",label:"Matisse",prompt:"Stylize the image using Henri Matisse's bold colors and simplified, flowing shapes."},{id:"warhol",label:"Warhol",prompt:"Convert this image into Andy Warhol's pop art style with flat colors, repetition, and bold outlines."},{id:"michelangelo",label:"Michelangelo",prompt:"Render the image in the classical Renaissance style of Michelangelo, with dramatic anatomy and fresco-like detail."},{id:"da-vinci",label:"Da Vinci",prompt:"Make this image look like a Leonardo da Vinci painting, using soft transitions, balanced composition, and natural tones."},{id:"rembrandt",label:"Rembrandt",prompt:"Apply Rembrandt's style with rich contrast, warm tones, and dramatic use of light and shadow."},{id:"mondrian",label:"Mondrian",prompt:"Transform the image into Piet Mondrian's abstract geometric style with grids and primary colors."},{id:"kahlo",label:"Frida Kahlo",prompt:"Stylize this image in the expressive, symbolic style of Frida Kahlo with vivid colors and surreal framing."},{id:"hokusai",label:"Hokusai",prompt:"Render the image in the style of Hokusai, using bold outlines, flat color, and traditional Japanese woodblock aesthetics."}],Lu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${Se}.label`]:"Painted By",[`${Se}.description`]:"Transform image in the style of famous artists"}}),{id:Ce,type:"quick",kind:"image",label:`${Se}.label`,description:`${Se}.description`,enable:P(),scopes:["fill/change"],render:({builder:r,experimental:i,generate:n,engine:o,close:a})=>{i.builder.Popover(`${Ce}.popover`,{label:`${Se}.label`,icon:"@imgly/Appearance",labelAlignment:"left",variant:"plain",trailingIcon:"@imgly/ChevronRight",placement:"right",children:()=>{r.Section(`${Ce}.popover.section`,{children:()=>{i.builder.Menu(`${Ce}.popover.menu`,{children:()=>{Nu.forEach(l=>{r.Button(`${Ce}.popover.menu.${l.id}`,{label:l.label,labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[c]=o.block.findAllSelected(),s=await E(c,o,{throwErrorIfSvg:!0});await n({artist:l.prompt,uri:s}),a()}catch(c){console.error("Generation error:",c),e.ui.showNotification({type:"error",message:c.message||"Failed to apply artist style. Please try again.",duration:"medium"})}}})})}})}})}})}}),_r=Lu;var Dr="createVariant",F=`ly.img.${Dr}`,j=`ly.img.ai.quickAction.image.${Dr}`,Ou=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${j}.label`]:"Create Variant...",[`${j}.description`]:"Create a variation of the image",[`${j}.prompt.label`]:"Create Variant...",[`${j}.prompt.placeholder`]:'e.g. "Make it more colorful"',[`${j}.apply`]:"Create"}}),{id:F,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${j}.label`,description:`${j}.description`,enable:r=>{if(!P()(r))return!1;let[i]=r.engine.block.findAllSelected();return!(!e.feature.isEnabled("ly.img.duplicate",{engine:r.engine})||!r.engine.block.isAllowedByScope(i,"lifecycle/duplicate"))},scopes:["fill/change","lifecycle/duplicate"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${F}.prompt`,"");r.TextArea(`${F}.prompt`,{inputLabel:`${j}.prompt.label`,placeholder:`${j}.prompt.placeholder`,...u}),r.Separator(`${F}.separator`),i.builder.ButtonRow(`${F}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${F}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${F}.footer.apply`,{label:`${j}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=l.block.getType(p),m=l.block.duplicate(p);g==="//ly.img.ubq/page"&&l.block.getChildren(m).forEach(S=>{l.block.destroy(S)}),l.block.setSelected(p,!1),l.block.setSelected(m,!0);let h=l.block.getParent(m);if(h==null)throw new Error("Parent not found");if(!(h!=null&&l.block.getType(h)==="//ly.img.ubq/track"&&l.block.isPageDurationSource(h))&&g!=="//ly.img.ubq/page"){let k=l.block.getWidth(h),b=l.block.getHeight(h),f=.02*Math.min(k,b)*1;l.block.setPositionX(m,l.block.getPositionX(m)+f),l.block.setPositionY(m,l.block.getPositionY(m)+f)}let y=await E(m,l,{throwErrorIfSvg:!0});await a({prompt:d,uri:y},{blockIds:[m]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to create variant. Please try again.",duration:"medium"})}}})}})}else r.Button(`${F}.button`,{label:`${j}.label`,icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),Nr=Ou;var Lr="combineImages",z=`ly.img.${Lr}`,D=`ly.img.ai.quickAction.${Lr}`,Ru=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${D}.apply`]:"Combine",[`${D}`]:"Combine Images...",[`${D}.prompt.inputLabel`]:"Image Combination Instructions",[`${D}.prompt.placeholder`]:"e.g., add character to the left of the mountain scene"}}),{id:z,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${D}`,description:"Combine multiple images with instructions",enable:r=>{let i=r.engine.block.findAllSelected();return i==null||i.length<2?!1:i.every(n=>{if(r.engine.block.getType(n)!=="//ly.img.ubq/graphic"&&!r.engine.block.supportsFill(n))return!1;let o=r.engine.block.getFill(n);if(r.engine.block.getType(o)!=="//ly.img.ubq/fill/image"||!e.feature.isEnabled("ly.img.duplicate",{engine:r.engine})||!r.engine.block.isAllowedByScope(n,"lifecycle/duplicate"))return!1;let a=r.engine.block.getParent(n);return!(a!=null&&r.engine.block.getType(a)==="//ly.img.ubq/track"&&r.engine.block.isPageDurationSource(a)||r.engine.block.getType(n)==="//ly.img.ubq/page")})},scopes:["lifecycle/duplicate","fill/change"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${z}.prompt`,"");r.TextArea(`${z}.prompt`,{inputLabel:`${D}.prompt.inputLabel`,placeholder:`${D}.prompt.placeholder`,...u}),r.Separator(`${z}.separator`),i.builder.ButtonRow(`${z}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${z}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${z}.footer.apply`,{label:`${D}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let p=l.block.findAllSelected(),g=l.block.duplicate(p[0]);p.forEach(b=>{l.block.setSelected(b,!1)}),l.block.setSelected(g,!0);let m=l.block.getParent(g);if(m==null)throw new Error("Parent not found");let h=1,v=l.block.getWidth(m),y=l.block.getHeight(m),S=.02*Math.min(v,y)*h;l.block.setPositionX(g,l.block.getPositionX(g)+S),l.block.setPositionY(g,l.block.getPositionY(g)+S);let k=await Promise.all(p.map(b=>E(b,l,{throwErrorIfSvg:!0})));await a({prompt:d,uris:k,exportFromBlockIds:p},{blockIds:[g]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to combine images. Please try again.",duration:"medium"})}}})}})}else r.Button(`${z}.button`,{label:`${D}`,icon:"@imgly/ImageVariation",labelAlignment:"left",variant:"plain",onClick:o})}}),Or=Ru;var Fr="remixPage",Rr=`ly.img.${Fr}`,at=`ly.img.ai.quickAction.${Fr}`,Fu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${at}`]:"Turn Page into Image"}}),{id:Rr,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${at}`,description:"Convert the page into a single image",enable:({engine:r})=>{let i=r.block.findAllSelected();if(i.length!==1)return!1;let n=i[0];return r.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:r,generate:i,engine:n,close:o})=>{r.Button(`${Rr}.button`,{label:`${at}`,icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:async()=>{try{let[a]=n.block.findAllSelected(),l=await n.block.export(a),c=URL.createObjectURL(l),s=n.block.duplicate(a);n.block.getChildren(s).forEach(y=>{n.block.destroy(y)}),n.block.setSelected(a,!1);let u=n.block.getFrameWidth(a),d=n.block.getFrameHeight(a),p=n.block.getPositionX(a),g=n.block.getPositionY(a),m=n.block.createShape("rect"),h=n.block.create("graphic");n.block.setShape(h,m),n.block.appendChild(s,h),n.block.setWidth(h,u),n.block.setHeight(h,d),n.block.setPositionX(h,p),n.block.setPositionY(h,g);let v=n.block.createFill("image");n.block.setFill(h,v),n.block.setString(v,"fill/image/imageFileURI",c),n.block.setSelected(h,!0),n.scene.zoomToBlock(h),await i({prompt:"Follow instructions but don't add the instructions for the image",uri:c},{blockIds:[h]}),o()}catch(a){console.error("Generation error:",a),e.ui.showNotification({type:"error",message:a.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}}),zr=Fu;var Br="remixPageWithPrompt",B=`ly.img.${Br}`,N=`ly.img.ai.quickAction.${Br}`,zu=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${N}`]:"Remix Page...",[`${N}.prompt.inputLabel`]:"Remix Page Prompt",[`${N}.prompt.placeholder`]:"e.g. rearrange the layout to...",[`${N}.apply`]:"Remix"}}),{id:B,type:"quick",kind:"image",defaults:{confirmation:!1,lock:!1},label:`${N}`,description:"Remix the page with custom instructions",enable:({engine:r})=>{let i=r.block.findAllSelected();if(i.length!==1)return!1;let n=i[0];return r.block.getType(n)==="//ly.img.ubq/page"},scopes:["lifecycle/duplicate"],render:({builder:r,experimental:i,isExpanded:n,toggleExpand:o,generate:a,engine:l,state:c,close:s})=>{if(n){let u=c(`${B}.prompt`,"");r.TextArea(`${B}.prompt`,{inputLabel:`${N}.prompt.inputLabel`,placeholder:`${N}.prompt.placeholder`,...u}),r.Separator(`${B}.separator`),i.builder.ButtonRow(`${B}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${B}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:o}),r.Button(`${B}.footer.apply`,{label:`${N}.apply`,icon:"@imgly/MagicWand",color:"accent",isDisabled:u.value.length===0,onClick:async()=>{try{let d=u.value;if(!d)return;let[p]=l.block.findAllSelected(),g=await l.block.export(p),m=URL.createObjectURL(g),h=l.block.duplicate(p);l.block.getChildren(h).forEach(I=>{l.block.destroy(I)}),l.block.setSelected(p,!1);let v=l.block.getFrameWidth(p),y=l.block.getFrameHeight(p),S=l.block.getPositionX(p),k=l.block.getPositionY(p),b=l.block.createShape("rect"),f=l.block.create("graphic");l.block.setShape(f,b),l.block.appendChild(h,f),l.block.setWidth(f,v),l.block.setHeight(f,y),l.block.setPositionX(f,S),l.block.setPositionY(f,k);let w=l.block.createFill("image");l.block.setFill(f,w),l.block.setString(w,"fill/image/imageFileURI",m),l.block.setSelected(f,!0),l.scene.zoomToBlock(f),await a({prompt:d,uri:m},{blockIds:[f]}),o(),s()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to remix page. Please try again.",duration:"medium"})}}})}})}else r.Button(`${B}.button`,{label:`${N}`,icon:"@imgly/Sparkle",labelAlignment:"left",variant:"plain",onClick:o})}}),Ur=zu;var U="ly.img.ai.image-generation";function Bu(e){return{async initialize({cesdk:t}){if(t==null)return;zt(t,H,"0.2.2");let r=Qe.get(),i=r.register({type:"plugin",sceneMode:"Design",id:H,pluginId:H,label:"Generate Image",meta:{panelId:U},execute:()=>{t.ui.isPanelOpen(U)?t.ui.closePanel(U):t.ui.openPanel(U)}});t.ui.addIconSet(ir,nr),t.i18n.setTranslations({en:{[`panel.${U}`]:"Image Generation",[`${U}.dock.label`]:"AI Image"}}),Uu(e),r.register(Er({cesdk:t})),r.register($r({cesdk:t})),r.register(Pr({cesdk:t})),r.register(_r({cesdk:t})),r.register(Nr({cesdk:t})),r.register(Or({cesdk:t})),r.register(zr({cesdk:t})),r.register(Ur({cesdk:t}));let n=e.providers?.text2image??e.text2image,o=e.providers?.image2image??e.image2image,a=await Promise.all(ot(n).map(d=>d({cesdk:t}))),l=await Promise.all(ot(o).map(d=>d({cesdk:t})));if(!(a.length>0||l.length>0)){i();return}let s=await Jt("image",{fromText:a,fromImage:l},{cesdk:t},e),u=await rr({kind:"image",providerInitializationResults:s.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:_e});s.history?.assetSourceId!=null,u.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.image.canvasMenu",u.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.image.canvasMenu"],{editMode:fe})),s.panel.builderRenderFunction!=null?(t.ui.registerPanel(U,s.panel.builderRenderFunction),Bt({cesdk:t,panelId:U})):i()}}}function Uu(e){e.debug&&(e.providers?.text2image!=null&&e.text2image!=null&&console.warn("[ImageGeneration]: Both `providers.text2image` and `text2image` configuration is provided. Since `text2image` is deprecated, only `providers.text2image` will be used."),e.providers?.image2image!=null&&e.image2image!=null&&console.warn("[ImageGeneration]: Both `providers.image2image` and `image2image` configuration is provided. Since `image2image` is deprecated, only `providers.image2image` will be used."))}var Vr=Bu;var Vu=e=>({name:H,version:"0.2.2",...Vr(e)}),fp=Vu;export{_e as DEFAULT_IMAGE_QUICK_ACTION_ORDER,fp as default};
|
|
81
81
|
/*! Bundled license information:
|
|
82
82
|
|
|
83
83
|
@imgly/plugin-ai-generation-web/dist/index.mjs:
|