@imgly/plugin-ai-text-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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.2.2] - 2025-07-16
6
+
7
+ - [ai-apps] Fix issue with undefined `cesdk` instance
8
+
5
9
  ## [0.2.1] - 2025-07-15
6
10
 
7
11
  - [ai-apps] Fix issue where AI apps panel displayed empty content when no provider app was available
package/dist/index.mjs CHANGED
@@ -139,7 +139,7 @@ Consider updating all AI plugins to the same version for optimal compatibility.`
139
139
  </symbol>
140
140
  </svg>
141
141
  `,Ga=Ba;function Ha(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 Gt(2e3),await qa(t,e,r)):i(t,r)}async function qa(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 Wa(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,a=e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"?e.prompt:"AI Generated Image",o=a.match(/(\d+)x(\d+)/);if(o!=null)i=parseInt(o[1],10),n=parseInt(o[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[s]=t.blockIds,u=await Zo(s,r),l=await ze(u,r);i=l.width,n=l.height}else i=512,n=512;return{kind:"image",url:`https://placehold.co/${i}x${n}/000000/FFF?text=${a.replace(" ","+").replace(`
142
- `,"+")}`}}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[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=W(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=W(n,o)}else"customPrompt"in e?a=W(n,"custom"):a=W(n,"improved");else a=W(n,"generated");return Ka(a,r.abortSignal)}async function*Ka(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 Gt(100)}return{kind:"text",text:e}}function W(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={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."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let u=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let c=u[l%u.length];if(s.length+c.length<=n)s+=c;else{s+=c.substring(0,n-s.length);break}l++}}return r+s}async function Wa(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,a=n*i,o=t*a,s=r*i,u=44+s,l=new ArrayBuffer(u),c=new DataView(l),d=(v,b)=>{for(let y=0;y<b.length;y++)c.setUint8(v+y,b.charCodeAt(y))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,o,!0),c.setUint16(32,a,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,s,!0);let p=44;for(let v=0;v<r;v++){let b=Math.max(-1,Math.min(1,e[v])),y=Math.round(b*32767);c.setInt16(p,y,!0),p+=2}let g=new Uint8Array(l),h="";for(let v=0;v<g.length;v++)h+=String.fromCharCode(g[v]);return`data:audio/wav;base64,${btoa(h)}`}async function Gt(e){return new Promise(t=>{setTimeout(t,e)})}var es=Ha,Ht="USER_CANCEL";function ts(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Ko([...e.provider.output.middleware??[],...r?.middlewares??[],Xo({enable:r?.debug}),es({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"}:ra(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ve(n)?{status:"aborted",message:n.message}:n===Ht?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var rs=ts;async function is(e,t,r,i){let n={...i,provider:t},a={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 o=Fa(a),s=Va(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let u=rs({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Ra(a,u);ia(r.cesdk,"@imgly/plugin-ai-generation",Ga);let c={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:u};return Tt.get().register(c),c}var $e=is;function ns(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 a=new Qr(n,r,i);return r.engine.asset.addSource(a),a.id}var os=ns;async function as(e,t,r,i){let n,a=[];if(Array.isArray(t)){let s=await Promise.all(t.map(u=>$e(e,u,r,i)));a.push(...s),n=ls({prefix:e,providerInitializationResults:a})}else{let s=await Promise.all(t.fromText.map(l=>$e(e,l,r,i)));a.push(...s);let u=await Promise.all(t.fromImage.map(l=>$e(e,l,r,i)));a.push(...u),n=ss({prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:u})}let o=os({kind:e,cesdk:r.cesdk,historAssetSourceIds:a.map(s=>s.history?.assetSourceId).filter(ye)});return{panel:{builderRenderFunction:n},history:{assetSourceId:o},providerInitializationResults:a}}function ss({prefix:e,initializedFromTextProviders:t,initializedFromImageProviders:r}){let i=t.length>0&&r.length>0;return n=>{let{builder:a,experimental:o}=n,s=o.global(`${e}.fromType`,i?"fromText":void 0),u=[];s.value==="fromText"?u.push(...t):s.value==="fromImage"?u.push(...r):u.push(...t,...r);let l=t.map(({provider:h,panel:v})=>({id:h.id,label:h.name??h.id,builderRenderFunction:v?.builderRenderFunction})),c=r.map(({provider:h,panel:v})=>({id:h.id,label:h.name??h.id,builderRenderFunction:v?.builderRenderFunction})),d=n.experimental.global(`${e}.selectedProvider.fromText`,l[0]),p=n.experimental.global(`${e}.selectedProvider.fromImage`,c[0]),g=s.value==="fromText"?d:s.value==="fromImage"?p:void 0;if((i||u.length>1)&&a.Section(`${e}.providerSelection.section`,{children:()=>{if(i&&a.ButtonGroup(`${e}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{a.Button(`${e}.fromType.buttonGroup.fromText`,{label:"Text",icon:s.value!=="fromText"&&bt(t,n)?"@imgly/LoadingSpinner":void 0,isActive:s.value==="fromText",onClick:()=>{s.setValue("fromText")}}),a.Button(`${e}.fromType.buttonGroup.fromImage`,{label:"Image",icon:s.value!=="fromImage"&&bt(r,n)?"@imgly/LoadingSpinner":void 0,isActive:s.value==="fromImage",onClick:()=>{s.setValue("fromImage")}})}}),u.length>1){let h=s.value==="fromText"?l:s.value==="fromImage"?c:[...l,...c];g!=null&&a.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:h,...g})}}}),u.length>1)g?.value.builderRenderFunction?.(n);else{let h=u[0];h&&h.panel?.builderRenderFunction?.(n)}}}function ls({prefix:e,providerInitializationResults:t}){return r=>{let{builder:i}=r;if(t.length===0)return;let n=t.map(({provider:o,panel:s})=>({id:o.id,label:o.name??o.id,builderRenderFunction:s?.builderRenderFunction})),a=r.state(`${e}.selectedProvider`,n[0]);t.length>1&&a!=null&&i.Section(`${e}.providerSelection.section`,{children:()=>{i.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:n,...a})}}),a.value.builderRenderFunction?.(r)}}function bt(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ge(r.id),!1).value)}var qt=as,ne="ly.img.ai.editMode",Qt="ly.img.ai.metadata";async function us(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:a,state:o,payload:s}=i;if(s==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let l=new wt(n,Qt),c=l.get(u[0]);if(c==null)return null;let d=()=>{u.forEach(p=>{l.clear(p)})};switch(c.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${c.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let h=s.applyCallbacks?.onBefore,v=s.applyCallbacks?.onAfter;h!=null&&v!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{h(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{v(),p.setValue("after")}})}});let b=s.applyCallbacks?.onApply;b!=null&&a.Button(`${t}.apply`,{icon:"@imgly/Checkmark",tooltip:`${t}.apply`,color:"accent",isDisabled:p.value!=="after",onClick:()=>{d(),cesdk?.engine.editor._update(),b()}});break}default:}};return Promise.resolve(r)}var cs=us;function ds(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 ps=ds;function gs(e){return`ly.img.ai.${e}.canvasMenu`}var fs=gs;function ms(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=fs(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var hs=ms;function ys(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 bs(e,t);case"image":return vs(e,t);case"video":return ws(e,t);case"audio":return ks(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function bs(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let c of e.output){if(n?.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",a[c])})};return{applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function vs(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[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??l),d=await ze(u?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),v=r.engine.block.getCropTranslationX(a),b=r.engine.block.getCropTranslationY(a),y=r.engine.block.getCropRotation(a),A=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,v),r.engine.block.setCropTranslationY(a,b),r.engine.block.setCropRotation(a,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 w=e.output.url,m=await r.engine.editor.getMimeType(w),f=await xs(r,w,m),k=await ze(f,t.cesdk.engine),C=k.width/k.height,Y=Math.abs(p-C)>.001,M=u?[{uri:f,width:k.width,height:k.height}]:void 0,Ee=f;M==null?r.engine.block.setString(o,"fill/image/imageFileURI",Ee):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",M)),await r.engine.block.forceLoadResources([o]),Y?r.engine.block.setContentFillMode(a,"Cover"):A();let Je=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);A()},et=()=>{if(M==null){if(Ee==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",Ee)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",M);Y?r.engine.block.setContentFillMode(a,"Cover"):A()};return{applyCallbacks:{onBefore:Je,onAfter:et,onCancel:()=>{Je()},onApply:()=>{et(),t.cesdk.engine.editor.addUndoStep()}}}}async function ws(e,t){throw new Error("Function not implemented.")}async function ks(e,t){throw new Error("Function not implemented.")}async function xs(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${Qo(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Is=ys;function Cs(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let u=t.block.findAllSelected();return r.some(l=>u.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var As=Cs,Ss=class Zt{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Zt),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},$=Ss;function Ms(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 a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:c=>c;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(ye)),u=new wt(e.cesdk.engine,Qt),l=e.lock??!0?As({engine:e.cesdk.engine,editModeToLockTo:ne,blockIdsToLock:i}):()=>{};i.forEach(c=>{$.get().register(c,{onCancelGeneration:()=>{o.abort(Ht),l(),e.cesdk.engine.block.isValid(c)&&(e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"}),u.clear(c))}})}),i?.forEach(c=>{u.set(c,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Pending",progress:0})});try{let c=await e.providerInitializationResult.generate(a(t),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=c.status;switch(d){case"success":{let{applyCallbacks:p}=await Is(c,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(h=>{u.set(h,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(h=>{$.get().register(h,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&u.clear(g)}),p.onApply(),l();return c}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),console.error(`[Generate]: ${c.message}`),c;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(c){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&u.clear(d)}),c}finally{i.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"})})}}}var vt=Ms;function Es(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()===ne)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let{payload:a}=i,o=hs({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(o.length===0)return;let s=Ls(o).filter(m=>{if(m==="ly.img.separator")return!0;let f=m.scopes;if(f!=null&&f.length>0&&!n.every(k=>f.every(C=>e.engine.block.isAllowedByScope(k,C))))return!1;if(m.enable!=null){if(typeof m.enable=="function")return m.enable({engine:e.engine});if(typeof m.enable=="boolean")return m.enable}return!0}),u=[],l=e.providerInitializationResults.reduce((m,f)=>{if(f.provider.kind!==e.kind)return m;let k=s.map(C=>{if(C==="ly.img.separator")return C;if(f.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let Y=Tt.get().getAll().filter(M=>M.provider.kind!==e.kind&&M.provider.id!==f.provider.id).find(M=>M.provider.input?.quickActions?.supported?.[C.id]!=null);if(Y!=null){let M={definition:C,providerInitializationResult:Y};return u.push(M),M}else return}}).filter(ye);return k=ps(k),k.length===0||k.every(C=>C==="ly.img.separator")||k.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||m.push({providerInitializationResult:f,quickActions:k}),m},[]);if(l.length===0)if(u.length>0){let m=new Map;u.forEach(k=>{let C=k.definition.id;m.has(C)||m.set(C,k)});let f=Array.from(m.values());l.push({providerInitializationResult:f[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:f})}else return;let c=l.map(({providerInitializationResult:m})=>({id:m.provider.id,label:m.provider.name??m.provider.id})),d=i.experimental.global(`${t}.currentProvider`,c[0]),p=l.find(({providerInitializationResult:{provider:{id:m}}})=>m===d.value?.id),g=n.every(m=>i.engine.block.getState(m).type==="Ready"),{builder:h,experimental:v,state:b}=i,y=b(`${t}.isGenerating`,!1),A=b(`${t}.toggleExpandedState`,void 0),w=async(m,f,k)=>{y.setValue(!0);try{return await k(m,f)}finally{y.setValue(!1)}};v.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!g,isLoading:y.value,trailingIcon:null,children:({close:m})=>{h.Section(`${t}.popover.section`,{children:()=>{if(A.value!==void 0){let f=p?.quickActions.find(k=>k!=="ly.img.separator"&&k.definition.id===A.value);return f!=null&&f.definition.render!=null?f.definition.render({...i,toggleExpand:()=>{A.setValue(void 0)},isExpanded:!0,generate:vt({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[w],confirmation:f.definition.defaults?.confirmation??!0,close:m,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:m,providerId:d.value.id}):void 0}A.value==null&&c.length>1&&(h.Select(`${t}.providerSelect.select`,{inputLabel:`${t}.quickActionMenu.providerSelect.label`,values:c,...d}),h.Separator(`${t}.providerSelect.separator`)),v.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(f=>{if(f==="ly.img.separator"){h.Separator(`${t}.separator.${Math.random().toString()}`);return}f.definition.render!=null&&f.definition.render({...i,toggleExpand:()=>{A.setValue(f.definition.id)},isExpanded:!1,generate:vt({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[w],confirmation:f.definition.defaults?.confirmation??!0,close:m,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:m,providerId:d.value.id})})}})}})}})};return Promise.resolve(r)}function Ls(e){return e.map(t=>t==="ly.img.separator"?t:Ue.get().getBy({id:t,type:"quick"})[0]).filter(ye)}var Ts=Es;async function js(e){let t=await Ts({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await cs({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===ne){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{$.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Yt=js;var _s=typeof global=="object"&&global&&global.Object===Object&&global,cr=_s,$s=typeof self=="object"&&self&&self.Object===Object&&self,Ns=cr||$s||Function("return this")(),L=Ns,Ds=L.Symbol,G=Ds,dr=Object.prototype,Ps=dr.hasOwnProperty,Os=dr.toString,oe=G?G.toStringTag:void 0;function Rs(e){var t=Ps.call(e,oe),r=e[oe];try{e[oe]=void 0;var i=!0}catch{}var n=Os.call(e);return i&&(t?e[oe]=r:delete e[oe]),n}var zs=Rs,Fs=Object.prototype,Us=Fs.toString;function Vs(e){return Us.call(e)}var Bs=Vs,Gs="[object Null]",Hs="[object Undefined]",Kt=G?G.toStringTag:void 0;function qs(e){return e==null?e===void 0?Hs:Gs:Kt&&Kt in Object(e)?zs(e):Bs(e)}var ue=qs;function Qs(e){return e!=null&&typeof e=="object"}var Xe=Qs,md=Array.isArray;function Zs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var pr=Zs,Ys="[object AsyncFunction]",Ks="[object Function]",Ws="[object GeneratorFunction]",Xs="[object Proxy]";function Js(e){if(!pr(e))return!1;var t=ue(e);return t==Ks||t==Ws||t==Ys||t==Xs}var el=Js,tl=L["__core-js_shared__"],He=tl,Wt=function(){var e=/[^.]+$/.exec(He&&He.keys&&He.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rl(e){return!!Wt&&Wt in e}var il=rl,nl=Function.prototype,ol=nl.toString;function al(e){if(e!=null){try{return ol.call(e)}catch{}try{return e+""}catch{}}return""}var D=al,sl=/[\\^$.*+?()[\]{}|]/g,ll=/^\[object .+?Constructor\]$/,ul=Function.prototype,cl=Object.prototype,dl=ul.toString,pl=cl.hasOwnProperty,gl=RegExp("^"+dl.call(pl).replace(sl,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fl(e){if(!pr(e)||il(e))return!1;var t=el(e)?gl:ll;return t.test(D(e))}var ml=fl;function hl(e,t){return e?.[t]}var yl=hl;function bl(e,t){var r=yl(e,t);return ml(r)?r:void 0}var H=bl,vl=H(L,"WeakMap"),Qe=vl;function wl(e,t){return e===t||e!==e&&t!==t}var kl=wl,xl=9007199254740991;function Il(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xl}var Cl=Il;var hd=Object.prototype;var Al="[object Arguments]";function Sl(e){return Xe(e)&&ue(e)==Al}var Xt=Sl,gr=Object.prototype,Ml=gr.hasOwnProperty,El=gr.propertyIsEnumerable,yd=Xt(function(){return arguments}())?Xt:function(e){return Xe(e)&&Ml.call(e,"callee")&&!El.call(e,"callee")};var fr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jt=fr&&typeof module=="object"&&module&&!module.nodeType&&module,Ll=Jt&&Jt.exports===fr,er=Ll?L.Buffer:void 0,bd=er?er.isBuffer:void 0;var Tl="[object Arguments]",jl="[object Array]",_l="[object Boolean]",$l="[object Date]",Nl="[object Error]",Dl="[object Function]",Pl="[object Map]",Ol="[object Number]",Rl="[object Object]",zl="[object RegExp]",Fl="[object Set]",Ul="[object String]",Vl="[object WeakMap]",Bl="[object ArrayBuffer]",Gl="[object DataView]",Hl="[object Float32Array]",ql="[object Float64Array]",Ql="[object Int8Array]",Zl="[object Int16Array]",Yl="[object Int32Array]",Kl="[object Uint8Array]",Wl="[object Uint8ClampedArray]",Xl="[object Uint16Array]",Jl="[object Uint32Array]",I={};I[Hl]=I[ql]=I[Ql]=I[Zl]=I[Yl]=I[Kl]=I[Wl]=I[Xl]=I[Jl]=!0;I[Tl]=I[jl]=I[Bl]=I[_l]=I[Gl]=I[$l]=I[Nl]=I[Dl]=I[Pl]=I[Ol]=I[Rl]=I[zl]=I[Fl]=I[Ul]=I[Vl]=!1;function eu(e){return Xe(e)&&Cl(e.length)&&!!I[ue(e)]}var tu=eu;function ru(e){return function(t){return e(t)}}var iu=ru,mr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ae=mr&&typeof module=="object"&&module&&!module.nodeType&&module,nu=ae&&ae.exports===mr,qe=nu&&cr.process,ou=function(){try{var e=ae&&ae.require&&ae.require("util").types;return e||qe&&qe.binding&&qe.binding("util")}catch{}}(),tr=ou,rr=tr&&tr.isTypedArray,vd=rr?iu(rr):tu;var au=Object.prototype,wd=au.hasOwnProperty;function su(e,t){return function(r){return e(t(r))}}var lu=su,kd=lu(Object.keys,Object);var uu=Object.prototype,xd=uu.hasOwnProperty;var cu=H(Object,"create"),se=cu;function du(){this.__data__=se?se(null):{},this.size=0}var pu=du;function gu(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fu=gu,mu="__lodash_hash_undefined__",hu=Object.prototype,yu=hu.hasOwnProperty;function bu(e){var t=this.__data__;if(se){var r=t[e];return r===mu?void 0:r}return yu.call(t,e)?t[e]:void 0}var vu=bu,wu=Object.prototype,ku=wu.hasOwnProperty;function xu(e){var t=this.__data__;return se?t[e]!==void 0:ku.call(t,e)}var Iu=xu,Cu="__lodash_hash_undefined__";function Au(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=se&&t===void 0?Cu:t,this}var Su=Au;function q(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])}}q.prototype.clear=pu;q.prototype.delete=fu;q.prototype.get=vu;q.prototype.has=Iu;q.prototype.set=Su;var ir=q;function Mu(){this.__data__=[],this.size=0}var Eu=Mu;function Lu(e,t){for(var r=e.length;r--;)if(kl(e[r][0],t))return r;return-1}var be=Lu,Tu=Array.prototype,ju=Tu.splice;function _u(e){var t=this.__data__,r=be(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ju.call(t,r,1),--this.size,!0}var $u=_u;function Nu(e){var t=this.__data__,r=be(t,e);return r<0?void 0:t[r][1]}var Du=Nu;function Pu(e){return be(this.__data__,e)>-1}var Ou=Pu;function Ru(e,t){var r=this.__data__,i=be(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zu=Ru;function Q(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])}}Q.prototype.clear=Eu;Q.prototype.delete=$u;Q.prototype.get=Du;Q.prototype.has=Ou;Q.prototype.set=zu;var ve=Q,Fu=H(L,"Map"),le=Fu;function Uu(){this.size=0,this.__data__={hash:new ir,map:new(le||ve),string:new ir}}var Vu=Uu;function Bu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Gu=Bu;function Hu(e,t){var r=e.__data__;return Gu(t)?r[typeof t=="string"?"string":"hash"]:r.map}var we=Hu;function qu(e){var t=we(this,e).delete(e);return this.size-=t?1:0,t}var Qu=qu;function Zu(e){return we(this,e).get(e)}var Yu=Zu;function Ku(e){return we(this,e).has(e)}var Wu=Ku;function Xu(e,t){var r=we(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Ju=Xu;function Z(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])}}Z.prototype.clear=Vu;Z.prototype.delete=Qu;Z.prototype.get=Yu;Z.prototype.has=Wu;Z.prototype.set=Ju;var hr=Z;function ec(){this.__data__=new ve,this.size=0}var tc=ec;function rc(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var ic=rc;function nc(e){return this.__data__.get(e)}var oc=nc;function ac(e){return this.__data__.has(e)}var sc=ac,lc=200;function uc(e,t){var r=this.__data__;if(r instanceof ve){var i=r.__data__;if(!le||i.length<lc-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new hr(i)}return r.set(e,t),this.size=r.size,this}var cc=uc;function ce(e){var t=this.__data__=new ve(e);this.size=t.size}ce.prototype.clear=tc;ce.prototype.delete=ic;ce.prototype.get=oc;ce.prototype.has=sc;ce.prototype.set=cc;var dc=Object.prototype,Id=dc.propertyIsEnumerable;var pc=H(L,"DataView"),Ze=pc,gc=H(L,"Promise"),Ye=gc,fc=H(L,"Set"),Ke=fc,nr="[object Map]",mc="[object Object]",or="[object Promise]",ar="[object Set]",sr="[object WeakMap]",lr="[object DataView]",hc=D(Ze),yc=D(le),bc=D(Ye),vc=D(Ke),wc=D(Qe),B=ue;(Ze&&B(new Ze(new ArrayBuffer(1)))!=lr||le&&B(new le)!=nr||Ye&&B(Ye.resolve())!=or||Ke&&B(new Ke)!=ar||Qe&&B(new Qe)!=sr)&&(B=function(e){var t=ue(e),r=t==mc?e.constructor:void 0,i=r?D(r):"";if(i)switch(i){case hc:return lr;case yc:return nr;case bc:return or;case vc:return ar;case wc:return sr}return t});var Cd=L.Uint8Array;var kc="__lodash_hash_undefined__";function xc(e){return this.__data__.set(e,kc),this}var Ic=xc;function Cc(e){return this.__data__.has(e)}var Ac=Cc;function We(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new hr;++t<r;)this.add(e[t])}We.prototype.add=We.prototype.push=Ic;We.prototype.has=Ac;var ur=G?G.prototype:void 0,Ad=ur?ur.valueOf:void 0;var Sc=Object.prototype,Sd=Sc.hasOwnProperty;var Mc=Object.prototype,Md=Mc.hasOwnProperty;var Ed=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ld=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Td=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Ec(e){return e==null?[]:Array.isArray(e)?e:[e]}var yr=Ec;function Lc(e){return`
142
+ `,"+")}`}}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[o]=t.blockIds;r.engine.block.isValid(o)&&(i=r.engine.block.getString(o,"text/text"))}if(!i&&e!=null&&typeof e=="object"&&"prompt"in e&&typeof e.prompt=="string"){let o=e.prompt,s=o.match(/text:\s*"([^"]+)"/i)||o.match(/content:\s*"([^"]+)"/i)||o.match(/"([^"]+)"/);s&&s[1]&&(i=s[1])}let n=i.length||50,a="";if(e!=null&&typeof e=="object")if("language"in e&&typeof e.language=="string")a=W(n,"translation");else if("type"in e&&typeof e.type=="string"){let o=e.type;a=W(n,o)}else"customPrompt"in e?a=W(n,"custom"):a=W(n,"improved");else a=W(n,"generated");return Ka(a,r.abortSignal)}async function*Ka(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 Gt(100)}return{kind:"text",text:e}}function W(e,t){let r="[DRY RUN - Dummy Text] ",i=r.length;if(e<=i)return r.substring(0,e);let n=e-i,a={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."},o=a[t]||a.generated,s="";if(n<=o.length)s=o.substring(0,n);else{s=o;let u=[" Additional content continues with similar phrasing."," Further elaboration maintains the established tone."," Extended content preserves the original style."," Continued text follows the same pattern."],l=0;for(;s.length<n;){let c=u[l%u.length];if(s.length+c.length<=n)s+=c;else{s+=c.substring(0,n-s.length);break}l++}}return r+s}async function Wa(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,a=n*i,o=t*a,s=r*i,u=44+s,l=new ArrayBuffer(u),c=new DataView(l),d=(v,b)=>{for(let y=0;y<b.length;y++)c.setUint8(v+y,b.charCodeAt(y))};d(0,"RIFF"),c.setUint32(4,u-8,!0),d(8,"WAVE"),d(12,"fmt "),c.setUint32(16,16,!0),c.setUint16(20,1,!0),c.setUint16(22,n,!0),c.setUint32(24,t,!0),c.setUint32(28,o,!0),c.setUint16(32,a,!0),c.setUint16(34,16,!0),d(36,"data"),c.setUint32(40,s,!0);let p=44;for(let v=0;v<r;v++){let b=Math.max(-1,Math.min(1,e[v])),y=Math.round(b*32767);c.setInt16(p,y,!0),p+=2}let g=new Uint8Array(l),h="";for(let v=0;v<g.length;v++)h+=String.fromCharCode(g[v]);return`data:audio/wav;base64,${btoa(h)}`}async function Gt(e){return new Promise(t=>{setTimeout(t,e)})}var es=Ha,Ht="USER_CANCEL";function ts(e){return async(t,r)=>{if(r?.abortSignal?.aborted)return{status:"aborted"};let i=Ko([...e.provider.output.middleware??[],...r?.middlewares??[],Xo({enable:r?.debug}),es({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"}:ra(n)?{status:"success",type:"async",output:n}:{status:"success",type:"sync",output:n}}catch(n){return Ve(n)?{status:"aborted",message:n.message}:n===Ht?{status:"aborted",message:n}:{status:"error",message:n instanceof Error?n.message:String(n)}}}}var rs=ts;async function is(e,t,r,i){let n={...i,provider:t},a={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 o=Fa(a),s=Va(a,o);a.options.historyAssetSourceId=o,a.options.historyAssetLibraryEntryId=s;let u=rs({provider:t,cesdk:r.cesdk,engine:r.cesdk.engine}),l=await Ra(a,u);ia(r.cesdk,"@imgly/plugin-ai-generation",Ga);let c={provider:t,panel:{builderRenderFunction:l},history:{assetSourceId:o,assetLibraryEntryId:s},generate:u};return Tt.get().register(c),c}var $e=is;function ns(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 a=new Qr(n,r,i);return r.engine.asset.addSource(a),a.id}var os=ns;async function as(e,t,r,i){let n,a=[];if(Array.isArray(t)){let s=await Promise.all(t.map(u=>$e(e,u,r,i)));a.push(...s),n=ls({prefix:e,providerInitializationResults:a})}else{let s=await Promise.all(t.fromText.map(l=>$e(e,l,r,i)));a.push(...s);let u=await Promise.all(t.fromImage.map(l=>$e(e,l,r,i)));a.push(...u),n=ss({prefix:`ly.img.ai.${e}-generation`,initializedFromTextProviders:s,initializedFromImageProviders:u})}let o=os({kind:e,cesdk:r.cesdk,historAssetSourceIds:a.map(s=>s.history?.assetSourceId).filter(ye)});return{panel:{builderRenderFunction:n},history:{assetSourceId:o},providerInitializationResults:a}}function ss({prefix:e,initializedFromTextProviders:t,initializedFromImageProviders:r}){let i=t.length>0&&r.length>0;return n=>{let{builder:a,experimental:o}=n,s=o.global(`${e}.fromType`,i?"fromText":void 0),u=[];s.value==="fromText"?u.push(...t):s.value==="fromImage"?u.push(...r):u.push(...t,...r);let l=t.map(({provider:h,panel:v})=>({id:h.id,label:h.name??h.id,builderRenderFunction:v?.builderRenderFunction})),c=r.map(({provider:h,panel:v})=>({id:h.id,label:h.name??h.id,builderRenderFunction:v?.builderRenderFunction})),d=n.experimental.global(`${e}.selectedProvider.fromText`,l[0]),p=n.experimental.global(`${e}.selectedProvider.fromImage`,c[0]),g=s.value==="fromText"?d:s.value==="fromImage"?p:void 0;if((i||u.length>1)&&a.Section(`${e}.providerSelection.section`,{children:()=>{if(i&&a.ButtonGroup(`${e}.fromType.buttonGroup`,{inputLabel:"Input",children:()=>{a.Button(`${e}.fromType.buttonGroup.fromText`,{label:"Text",icon:s.value!=="fromText"&&bt(t,n)?"@imgly/LoadingSpinner":void 0,isActive:s.value==="fromText",onClick:()=>{s.setValue("fromText")}}),a.Button(`${e}.fromType.buttonGroup.fromImage`,{label:"Image",icon:s.value!=="fromImage"&&bt(r,n)?"@imgly/LoadingSpinner":void 0,isActive:s.value==="fromImage",onClick:()=>{s.setValue("fromImage")}})}}),u.length>1){let h=s.value==="fromText"?l:s.value==="fromImage"?c:[...l,...c];g!=null&&a.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:h,...g})}}}),u.length>1)g?.value.builderRenderFunction?.(n);else{let h=u[0];h&&h.panel?.builderRenderFunction?.(n)}}}function ls({prefix:e,providerInitializationResults:t}){return r=>{let{builder:i}=r;if(t.length===0)return;let n=t.map(({provider:o,panel:s})=>({id:o.id,label:o.name??o.id,builderRenderFunction:s?.builderRenderFunction})),a=r.state(`${e}.selectedProvider`,n[0]);t.length>1&&a!=null&&i.Section(`${e}.providerSelection.section`,{children:()=>{i.Select(`${e}.providerSelect.select`,{inputLabel:"Provider",values:n,...a})}}),a.value.builderRenderFunction?.(r)}}function bt(e,t){return e.length===0?!1:e.some(({provider:r})=>r.id==null?!1:t.experimental.global(Ge(r.id),!1).value)}var qt=as,ne="ly.img.ai.editMode",Qt="ly.img.ai.metadata";async function us(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:a,state:o,payload:s}=i;if(s==null)return;let u=n.block.findAllSelected();if(u.length===0)return null;let l=new wt(n,Qt),c=l.get(u[0]);if(c==null)return null;let d=()=>{u.forEach(p=>{l.clear(p)})};switch(c.status){case"processing":{a.Button(`${t}.spinner`,{label:[`ly.img.ai.${c.quickActionId}.processing`,"ly.img.ai.processing"],isLoading:!0}),a.Separator(`${t}.separator`),a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{s.onCancelGeneration?.(),d()}});break}case"confirmation":{let p=o(`${t}.comparing`,"after"),g=s.applyCallbacks?.onCancel;g!=null&&a.Button(`${t}.cancel`,{icon:"@imgly/Cross",tooltip:`${t}.cancel`,onClick:()=>{g(),d()}});let h=s.applyCallbacks?.onBefore,v=s.applyCallbacks?.onAfter;h!=null&&v!=null&&a.ButtonGroup(`${t}.compare`,{children:()=>{a.Button(`${t}.compare.before`,{label:`${t}.before`,variant:"regular",isActive:p.value==="before",onClick:()=>{h(),p.setValue("before")}}),a.Button(`${t}.compare.after`,{label:`${t}.after`,variant:"regular",isActive:p.value==="after",onClick:()=>{v(),p.setValue("after")}})}});let b=s.applyCallbacks?.onApply;b!=null&&a.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(),b()}});break}default:}};return Promise.resolve(r)}var cs=us;function ds(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 ps=ds;function gs(e){return`ly.img.ai.${e}.canvasMenu`}var fs=gs;function ms(e){let{kind:t,cesdk:r,payload:i,defaultOrder:n}=e,a=fs(t);if(i==null||!Array.isArray(i.children)){let o=r.ui.getCanvasMenuOrder().find(({id:s})=>s===a);return o!=null&&Array.isArray(o.children)?o.children:n??[]}return i.children.filter(o=>typeof o=="string")}var hs=ms;function ys(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 bs(e,t);case"image":return vs(e,t);case"video":return ws(e,t);case"audio":return ks(e,t);default:throw new Error(`Unsupported output kind for quick actions: ${t.kind}`)}}async function bs(e,t){let{cesdk:r,blockIds:i,abortSignal:n}=t,a=i.map(l=>r.engine.block.getString(l,"text/text")),o;if(e.type==="async"){let l="";for await(let c of e.output){if(n?.aborted)break;typeof c=="string"?l=c:c.kind==="text"&&(l=c.text),i.forEach(d=>{r.engine.block.setString(d,"text/text",l)}),o={kind:"text",text:l}}}else o=e.output;if(o==null||o.kind!=="text")throw new Error("Output kind from generation is not text");e.type==="sync"&&i.forEach(l=>{r.engine.block.setString(l,"text/text",o.text)});let s=()=>{t.blockIds.forEach(l=>{t.cesdk.engine.block.setString(l,"text/text",o.text)})},u=()=>{t.blockIds.forEach((l,c)=>{t.cesdk.engine.block.setString(l,"text/text",a[c])})};return{applyCallbacks:{onBefore:u,onAfter:s,onCancel:u,onApply:()=>{s(),t.cesdk.engine.editor.addUndoStep()}}}}async function vs(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[a]=i,o=r.engine.block.getFill(a),s=r.engine.block.getSourceSet(o,"fill/image/sourceSet"),[u]=s,l;u==null&&(l=r.engine.block.getString(o,"fill/image/imageFileURI"));let c=await r.engine.editor.getMimeType(u?.uri??l),d=await ze(u?.uri??l,t.cesdk.engine),p=d.width/d.height;if(n?.throwIfAborted(),c==="image/svg+xml")throw new Error("SVG images are not supported");let g=r.engine.block.getCropScaleX(a),h=r.engine.block.getCropScaleY(a),v=r.engine.block.getCropTranslationX(a),b=r.engine.block.getCropTranslationY(a),y=r.engine.block.getCropRotation(a),A=()=>{r.engine.block.setCropScaleX(a,g),r.engine.block.setCropScaleY(a,h),r.engine.block.setCropTranslationX(a,v),r.engine.block.setCropTranslationY(a,b),r.engine.block.setCropRotation(a,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 w=e.output.url,m=await r.engine.editor.getMimeType(w),f=await xs(r,w,m),k=await ze(f,t.cesdk.engine),C=k.width/k.height,Y=Math.abs(p-C)>.001,M=u?[{uri:f,width:k.width,height:k.height}]:void 0,Ee=f;M==null?r.engine.block.setString(o,"fill/image/imageFileURI",Ee):(r.engine.block.setString(o,"fill/image/imageFileURI",""),r.engine.block.setSourceSet(o,"fill/image/sourceSet",M)),await r.engine.block.forceLoadResources([o]),Y?r.engine.block.setContentFillMode(a,"Cover"):A();let Je=()=>{if(s==null||s.length===0){if(l==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",l)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",s);A()},et=()=>{if(M==null){if(Ee==null)throw new Error("No image URI found");r.engine.block.setString(o,"fill/image/imageFileURI",Ee)}else r.engine.block.setSourceSet(o,"fill/image/sourceSet",M);Y?r.engine.block.setContentFillMode(a,"Cover"):A()};return{applyCallbacks:{onBefore:Je,onAfter:et,onCancel:()=>{Je()},onApply:()=>{et(),t.cesdk.engine.editor.addUndoStep()}}}}async function ws(e,t){throw new Error("Function not implemented.")}async function ks(e,t){throw new Error("Function not implemented.")}async function xs(e,t,r){let i=await(await fetch(t)).blob(),n=new File([i],`image.${Qo(r)}`,{type:r}),a=await e.unstable_upload(n,()=>{});return a?.meta?.uri??(console.warn("Failed to upload image:",a),t)}var Is=ys;function Cs(e){let{engine:t,blockIdsToLock:r,editModeToLockTo:i}=e;function n(){let u=t.block.findAllSelected();return r.some(l=>u.includes(l))}let a=t.editor.onStateChanged(()=>{t.editor.getEditMode()!==i&&n()&&t.editor.setEditMode(i)}),o=t.block.onSelectionChanged(()=>{n()?t.editor.setEditMode(i):t.editor.setEditMode("Transform")});n()&&t.editor.setEditMode(i);let s=!1;return()=>{s||(o(),a(),t.editor.setEditMode("Transform"),s=!0)}}var As=Cs,Ss=class Zt{constructor(){this.actions=new Map}static get(){let t="__imgly_callbacks_registry__",r=typeof window<"u"?window:globalThis;return r[t]||(r[t]=new Zt),r[t]}register(t,r){let i=this.actions.get(t)??{};this.actions.set(t,{...i,...r})}get(t){return this.actions.get(t)??{}}},$=Ss;function Ms(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 a=typeof n=="object"&&n!==null&&"mapInput"in n?n.mapInput:c=>c;e.close();let o=new AbortController,s=AbortSignal.any([e.abortSignal,o.signal].filter(ye)),u=new wt(e.cesdk.engine,Qt),l=e.lock??!0?As({engine:e.cesdk.engine,editModeToLockTo:ne,blockIdsToLock:i}):()=>{};i.forEach(c=>{$.get().register(c,{onCancelGeneration:()=>{o.abort(Ht),l(),e.cesdk.engine.block.isValid(c)&&(e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"}),u.clear(c))}})}),i?.forEach(c=>{u.set(c,{status:"processing",quickActionId:e.quickAction.id})}),i.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Pending",progress:0})});try{let c=await e.providerInitializationResult.generate(a(t),{middlewares:[...e.middlewares??[]],debug:e.debug,dryRun:e.dryRun,abortSignal:s}),d=c.status;switch(d){case"success":{let{applyCallbacks:p}=await Is(c,{kind:e.providerInitializationResult.provider.kind,blockIds:i,cesdk:e.cesdk,abortSignal:s});if(i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&e.cesdk.engine.block.setState(g,{type:"Ready"})}),e.confirmation){i.forEach(h=>{u.set(h,{status:"confirmation",quickActionId:e.quickAction.id})});let g={...p,onApply:async()=>{p.onApply(),l()},onCancel:()=>{p.onCancel(),l()}};i.forEach(h=>{$.get().register(h,{applyCallbacks:g})})}else i.forEach(g=>{e.cesdk.engine.block.isValid(g)&&u.clear(g)}),p.onApply(),l();return c}case"aborted":return e.debug&&console.log("Generation was aborted"),l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),c;case"error":return l(),i.forEach(p=>{e.cesdk.engine.block.isValid(p)&&u.clear(p)}),console.error(`[Generate]: ${c.message}`),c;default:throw new Error(`[Generate] Unknown result status ${d}.`)}}catch(c){throw e.cesdk.ui.showNotification({type:"error",message:"A technical issue has occurred."}),l(),i.forEach(d=>{e.cesdk.engine.block.isValid(d)&&u.clear(d)}),c}finally{i.forEach(c=>{e.cesdk.engine.block.isValid(c)&&e.cesdk.engine.block.setState(c,{type:"Ready"})})}}}var vt=Ms;function Es(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()===ne)return;let n=i.engine.block.findAllSelected();if(n.length===0)return;let{payload:a}=i,o=hs({kind:e.kind,cesdk:e.cesdk,payload:a,defaultOrder:e.defaultOrder})??[];if(o.length===0)return;let s=Ls(o).filter(m=>{if(m==="ly.img.separator")return!0;let f=m.scopes;if(f!=null&&f.length>0&&!n.every(k=>f.every(C=>e.engine.block.isAllowedByScope(k,C))))return!1;if(m.enable!=null){if(typeof m.enable=="function")return m.enable({engine:e.engine});if(typeof m.enable=="boolean")return m.enable}return!0}),u=[],l=e.providerInitializationResults.reduce((m,f)=>{if(f.provider.kind!==e.kind)return m;let k=s.map(C=>{if(C==="ly.img.separator")return C;if(f.provider.input?.quickActions?.supported?.[C.id]!=null)return{definition:C};{let Y=Tt.get().getAll().filter(M=>M.provider.kind!==e.kind&&M.provider.id!==f.provider.id).find(M=>M.provider.input?.quickActions?.supported?.[C.id]!=null);if(Y!=null){let M={definition:C,providerInitializationResult:Y};return u.push(M),M}else return}}).filter(ye);return k=ps(k),k.length===0||k.every(C=>C==="ly.img.separator")||k.every(C=>C==="ly.img.separator"||C.providerInitializationResult!=null)||m.push({providerInitializationResult:f,quickActions:k}),m},[]);if(l.length===0)if(u.length>0){let m=new Map;u.forEach(k=>{let C=k.definition.id;m.has(C)||m.set(C,k)});let f=Array.from(m.values());l.push({providerInitializationResult:f[0].providerInitializationResult??e.providerInitializationResults[0],quickActions:f})}else return;let c=l.map(({providerInitializationResult:m})=>({id:m.provider.id,label:m.provider.name??m.provider.id})),d=i.experimental.global(`${t}.currentProvider`,c[0]),p=l.find(({providerInitializationResult:{provider:{id:m}}})=>m===d.value?.id),g=n.every(m=>i.engine.block.getState(m).type==="Ready"),{builder:h,experimental:v,state:b}=i,y=b(`${t}.isGenerating`,!1),A=b(`${t}.toggleExpandedState`,void 0),w=async(m,f,k)=>{y.setValue(!0);try{return await k(m,f)}finally{y.setValue(!1)}};v.builder.Popover(`${t}.popover`,{icon:"@imgly/Sparkle",variant:"plain",isDisabled:!g,isLoading:y.value,trailingIcon:null,children:({close:m})=>{h.Section(`${t}.popover.section`,{children:()=>{if(A.value!==void 0){let f=p?.quickActions.find(k=>k!=="ly.img.separator"&&k.definition.id===A.value);return f!=null&&f.definition.render!=null?f.definition.render({...i,toggleExpand:()=>{A.setValue(void 0)},isExpanded:!0,generate:vt({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[w],confirmation:f.definition.defaults?.confirmation??!0,close:m,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:m,providerId:d.value.id}):void 0}A.value==null&&c.length>1&&(h.Select(`${t}.providerSelect.select`,{inputLabel:`${t}.quickActionMenu.providerSelect.label`,values:c,...d}),h.Separator(`${t}.providerSelect.separator`)),v.builder.Menu(`${t}.menu`,{children:()=>{p?.quickActions.forEach(f=>{if(f==="ly.img.separator"){h.Separator(`${t}.separator.${Math.random().toString()}`);return}f.definition.render!=null&&f.definition.render({...i,toggleExpand:()=>{A.setValue(f.definition.id)},isExpanded:!1,generate:vt({blockIds:n,providerInitializationResult:f.providerInitializationResult??p?.providerInitializationResult,quickAction:f.definition,middlewares:[w],confirmation:f.definition.defaults?.confirmation??!0,close:m,cesdk:e.cesdk,debug:e.debug,dryRun:e.dryRun}),close:m,providerId:d.value.id})})}})}})}})};return Promise.resolve(r)}function Ls(e){return e.map(t=>t==="ly.img.separator"?t:Ue.get().getBy({id:t,type:"quick"})[0]).filter(ye)}var Ts=Es;async function js(e){let t=await Ts({kind:e.kind,providerInitializationResults:e.providerInitializationResults,cesdk:e.cesdk,engine:e.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:e.defaultOrder}),r=await cs({kind:e.kind,cesdk:e.cesdk});return{renderFunction:i=>{let{engine:n}=i;if(n.editor.getEditMode()===ne){let a=i.engine.block.findAllSelected();r({...i,payload:{...i.payload??{},applyCallbacks:{onBefore:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onBefore?.()})},onAfter:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onAfter?.()})},onCancel:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onCancel?.()})},onApply:()=>{a.forEach(o=>{$.get().get(o).applyCallbacks?.onApply?.()})}},onCancelGeneration:()=>{a.forEach(o=>{$.get().get(o).onCancelGeneration?.()})}}});return}t(i)}}}var Yt=js;var _s=typeof global=="object"&&global&&global.Object===Object&&global,cr=_s,$s=typeof self=="object"&&self&&self.Object===Object&&self,Ns=cr||$s||Function("return this")(),L=Ns,Ds=L.Symbol,G=Ds,dr=Object.prototype,Ps=dr.hasOwnProperty,Os=dr.toString,oe=G?G.toStringTag:void 0;function Rs(e){var t=Ps.call(e,oe),r=e[oe];try{e[oe]=void 0;var i=!0}catch{}var n=Os.call(e);return i&&(t?e[oe]=r:delete e[oe]),n}var zs=Rs,Fs=Object.prototype,Us=Fs.toString;function Vs(e){return Us.call(e)}var Bs=Vs,Gs="[object Null]",Hs="[object Undefined]",Kt=G?G.toStringTag:void 0;function qs(e){return e==null?e===void 0?Hs:Gs:Kt&&Kt in Object(e)?zs(e):Bs(e)}var ue=qs;function Qs(e){return e!=null&&typeof e=="object"}var Xe=Qs,md=Array.isArray;function Zs(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var pr=Zs,Ys="[object AsyncFunction]",Ks="[object Function]",Ws="[object GeneratorFunction]",Xs="[object Proxy]";function Js(e){if(!pr(e))return!1;var t=ue(e);return t==Ks||t==Ws||t==Ys||t==Xs}var el=Js,tl=L["__core-js_shared__"],He=tl,Wt=function(){var e=/[^.]+$/.exec(He&&He.keys&&He.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function rl(e){return!!Wt&&Wt in e}var il=rl,nl=Function.prototype,ol=nl.toString;function al(e){if(e!=null){try{return ol.call(e)}catch{}try{return e+""}catch{}}return""}var D=al,sl=/[\\^$.*+?()[\]{}|]/g,ll=/^\[object .+?Constructor\]$/,ul=Function.prototype,cl=Object.prototype,dl=ul.toString,pl=cl.hasOwnProperty,gl=RegExp("^"+dl.call(pl).replace(sl,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function fl(e){if(!pr(e)||il(e))return!1;var t=el(e)?gl:ll;return t.test(D(e))}var ml=fl;function hl(e,t){return e?.[t]}var yl=hl;function bl(e,t){var r=yl(e,t);return ml(r)?r:void 0}var H=bl,vl=H(L,"WeakMap"),Qe=vl;function wl(e,t){return e===t||e!==e&&t!==t}var kl=wl,xl=9007199254740991;function Il(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=xl}var Cl=Il;var hd=Object.prototype;var Al="[object Arguments]";function Sl(e){return Xe(e)&&ue(e)==Al}var Xt=Sl,gr=Object.prototype,Ml=gr.hasOwnProperty,El=gr.propertyIsEnumerable,yd=Xt(function(){return arguments}())?Xt:function(e){return Xe(e)&&Ml.call(e,"callee")&&!El.call(e,"callee")};var fr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Jt=fr&&typeof module=="object"&&module&&!module.nodeType&&module,Ll=Jt&&Jt.exports===fr,er=Ll?L.Buffer:void 0,bd=er?er.isBuffer:void 0;var Tl="[object Arguments]",jl="[object Array]",_l="[object Boolean]",$l="[object Date]",Nl="[object Error]",Dl="[object Function]",Pl="[object Map]",Ol="[object Number]",Rl="[object Object]",zl="[object RegExp]",Fl="[object Set]",Ul="[object String]",Vl="[object WeakMap]",Bl="[object ArrayBuffer]",Gl="[object DataView]",Hl="[object Float32Array]",ql="[object Float64Array]",Ql="[object Int8Array]",Zl="[object Int16Array]",Yl="[object Int32Array]",Kl="[object Uint8Array]",Wl="[object Uint8ClampedArray]",Xl="[object Uint16Array]",Jl="[object Uint32Array]",I={};I[Hl]=I[ql]=I[Ql]=I[Zl]=I[Yl]=I[Kl]=I[Wl]=I[Xl]=I[Jl]=!0;I[Tl]=I[jl]=I[Bl]=I[_l]=I[Gl]=I[$l]=I[Nl]=I[Dl]=I[Pl]=I[Ol]=I[Rl]=I[zl]=I[Fl]=I[Ul]=I[Vl]=!1;function eu(e){return Xe(e)&&Cl(e.length)&&!!I[ue(e)]}var tu=eu;function ru(e){return function(t){return e(t)}}var iu=ru,mr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ae=mr&&typeof module=="object"&&module&&!module.nodeType&&module,nu=ae&&ae.exports===mr,qe=nu&&cr.process,ou=function(){try{var e=ae&&ae.require&&ae.require("util").types;return e||qe&&qe.binding&&qe.binding("util")}catch{}}(),tr=ou,rr=tr&&tr.isTypedArray,vd=rr?iu(rr):tu;var au=Object.prototype,wd=au.hasOwnProperty;function su(e,t){return function(r){return e(t(r))}}var lu=su,kd=lu(Object.keys,Object);var uu=Object.prototype,xd=uu.hasOwnProperty;var cu=H(Object,"create"),se=cu;function du(){this.__data__=se?se(null):{},this.size=0}var pu=du;function gu(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var fu=gu,mu="__lodash_hash_undefined__",hu=Object.prototype,yu=hu.hasOwnProperty;function bu(e){var t=this.__data__;if(se){var r=t[e];return r===mu?void 0:r}return yu.call(t,e)?t[e]:void 0}var vu=bu,wu=Object.prototype,ku=wu.hasOwnProperty;function xu(e){var t=this.__data__;return se?t[e]!==void 0:ku.call(t,e)}var Iu=xu,Cu="__lodash_hash_undefined__";function Au(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=se&&t===void 0?Cu:t,this}var Su=Au;function q(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])}}q.prototype.clear=pu;q.prototype.delete=fu;q.prototype.get=vu;q.prototype.has=Iu;q.prototype.set=Su;var ir=q;function Mu(){this.__data__=[],this.size=0}var Eu=Mu;function Lu(e,t){for(var r=e.length;r--;)if(kl(e[r][0],t))return r;return-1}var be=Lu,Tu=Array.prototype,ju=Tu.splice;function _u(e){var t=this.__data__,r=be(t,e);if(r<0)return!1;var i=t.length-1;return r==i?t.pop():ju.call(t,r,1),--this.size,!0}var $u=_u;function Nu(e){var t=this.__data__,r=be(t,e);return r<0?void 0:t[r][1]}var Du=Nu;function Pu(e){return be(this.__data__,e)>-1}var Ou=Pu;function Ru(e,t){var r=this.__data__,i=be(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}var zu=Ru;function Q(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])}}Q.prototype.clear=Eu;Q.prototype.delete=$u;Q.prototype.get=Du;Q.prototype.has=Ou;Q.prototype.set=zu;var ve=Q,Fu=H(L,"Map"),le=Fu;function Uu(){this.size=0,this.__data__={hash:new ir,map:new(le||ve),string:new ir}}var Vu=Uu;function Bu(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Gu=Bu;function Hu(e,t){var r=e.__data__;return Gu(t)?r[typeof t=="string"?"string":"hash"]:r.map}var we=Hu;function qu(e){var t=we(this,e).delete(e);return this.size-=t?1:0,t}var Qu=qu;function Zu(e){return we(this,e).get(e)}var Yu=Zu;function Ku(e){return we(this,e).has(e)}var Wu=Ku;function Xu(e,t){var r=we(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}var Ju=Xu;function Z(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])}}Z.prototype.clear=Vu;Z.prototype.delete=Qu;Z.prototype.get=Yu;Z.prototype.has=Wu;Z.prototype.set=Ju;var hr=Z;function ec(){this.__data__=new ve,this.size=0}var tc=ec;function rc(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var ic=rc;function nc(e){return this.__data__.get(e)}var oc=nc;function ac(e){return this.__data__.has(e)}var sc=ac,lc=200;function uc(e,t){var r=this.__data__;if(r instanceof ve){var i=r.__data__;if(!le||i.length<lc-1)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new hr(i)}return r.set(e,t),this.size=r.size,this}var cc=uc;function ce(e){var t=this.__data__=new ve(e);this.size=t.size}ce.prototype.clear=tc;ce.prototype.delete=ic;ce.prototype.get=oc;ce.prototype.has=sc;ce.prototype.set=cc;var dc=Object.prototype,Id=dc.propertyIsEnumerable;var pc=H(L,"DataView"),Ze=pc,gc=H(L,"Promise"),Ye=gc,fc=H(L,"Set"),Ke=fc,nr="[object Map]",mc="[object Object]",or="[object Promise]",ar="[object Set]",sr="[object WeakMap]",lr="[object DataView]",hc=D(Ze),yc=D(le),bc=D(Ye),vc=D(Ke),wc=D(Qe),B=ue;(Ze&&B(new Ze(new ArrayBuffer(1)))!=lr||le&&B(new le)!=nr||Ye&&B(Ye.resolve())!=or||Ke&&B(new Ke)!=ar||Qe&&B(new Qe)!=sr)&&(B=function(e){var t=ue(e),r=t==mc?e.constructor:void 0,i=r?D(r):"";if(i)switch(i){case hc:return lr;case yc:return nr;case bc:return or;case vc:return ar;case wc:return sr}return t});var Cd=L.Uint8Array;var kc="__lodash_hash_undefined__";function xc(e){return this.__data__.set(e,kc),this}var Ic=xc;function Cc(e){return this.__data__.has(e)}var Ac=Cc;function We(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new hr;++t<r;)this.add(e[t])}We.prototype.add=We.prototype.push=Ic;We.prototype.has=Ac;var ur=G?G.prototype:void 0,Ad=ur?ur.valueOf:void 0;var Sc=Object.prototype,Sd=Sc.hasOwnProperty;var Mc=Object.prototype,Md=Mc.hasOwnProperty;var Ed=new RegExp(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,"i"),Ld=new RegExp(/[A-Fa-f0-9]{1}/,"g"),Td=new RegExp(/[A-Fa-f0-9]{2}/,"g");function Ec(e){return e==null?[]:Array.isArray(e)?e:[e]}var yr=Ec;function Lc(e){return`
143
143
  You are an AI writing assistant tasked with improving a given text based on a specific type of improvement requested. Your goal is to enhance the text while maintaining its original meaning and intent.
144
144
 
145
145
  Here is the original text you will be working with:
@@ -310,7 +310,7 @@ ${t}
310
310
  </change_text_to>
311
311
 
312
312
  Please modify the original text according to the "Change Text to..." prompt. Only return the new, modified text without any additional commentary or explanation. Your entire response should be the modified text itself, with no other content.
313
- `}var Ur=Bc;var Vr="changeTextTo",j=`ly.img.${Vr}`,_=`ly.img.ai.quickAction.text.${Vr}`,Gc=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${_}.label`]:"Change Text to...",[`${_}.prompt.label`]:"Change Text to...",[`${_}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:j,type:"quick",kind:"text",scopes:["text/edit"],label:`${_}.label`,description:`${_}.label`,enable:({engine:r})=>{let i=r.block.findAllSelected();if(i==null||i.length!==1)return!1;let[n]=i;return r.block.getType(n)==="//ly.img.ubq/text"},render:({builder:r,experimental:i,isExpanded:n,toggleExpand:a,generate:o,engine:s,state:u,close:l})=>{if(n){let c=u(`${j}.prompt`,"");r.TextArea(`${j}.prompt`,{inputLabel:`${_}.prompt.label`,placeholder:`${_}.prompt.placeholder`,...c}),r.Separator(`${j}.separator`),i.builder.ButtonRow(`${j}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${j}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),r.Button(`${j}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:c.value.length===0,onClick:async()=>{try{let d=c.value;if(!d)return;let[p]=s.block.findAllSelected(),g=s.block.getString(p,"text/text");await o({prompt:Ur(g,d),customPrompt:d}),a(),l()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else r.Button(`${j}.button`,{label:`${_}.label`,icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:a})}}),Br=Gc;var ge="@imgly/plugin-ai-text-generation-web",Me=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function Hc(e){return{async initialize({cesdk:t}){if(t==null)return;Nt(t,ge,"0.2.1"),t.ui.addIconSet(tt,rt),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),qc(e);let r=Ue.get();r.register(kr({cesdk:t})),r.register(Ar({cesdk:t})),r.register(Lr({cesdk:t})),r.register($r({cesdk:t})),r.register(Pr({cesdk:t})),r.register(Fr({cesdk:t})),r.register(Br({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(yr(i).map(u=>u({cesdk:t})));if(!(n.length>0))return;let o=await qt("text",{fromText:n,fromImage:[]},{cesdk:t},e),s=await Yt({kind:"text",providerInitializationResults:o.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Me});s.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",s.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:ne}))}}}function qc(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var Gr=Hc;var Qc=e=>({name:ge,version:"0.2.1",...Gr(e)}),m1=Qc;export{Me as DEFAULT_TEXT_QUICK_ACTION_ORDER,m1 as default};
313
+ `}var Ur=Bc;var Vr="changeTextTo",j=`ly.img.${Vr}`,_=`ly.img.ai.quickAction.text.${Vr}`,Gc=({cesdk:e})=>(e.i18n.setTranslations({en:{[`${_}.label`]:"Change Text to...",[`${_}.prompt.label`]:"Change Text to...",[`${_}.prompt.placeholder`]:'e.g. "a list of bullet points", "a formal announcement"'}}),{id:j,type:"quick",kind:"text",scopes:["text/edit"],label:`${_}.label`,description:`${_}.label`,enable:({engine:r})=>{let i=r.block.findAllSelected();if(i==null||i.length!==1)return!1;let[n]=i;return r.block.getType(n)==="//ly.img.ubq/text"},render:({builder:r,experimental:i,isExpanded:n,toggleExpand:a,generate:o,engine:s,state:u,close:l})=>{if(n){let c=u(`${j}.prompt`,"");r.TextArea(`${j}.prompt`,{inputLabel:`${_}.prompt.label`,placeholder:`${_}.prompt.placeholder`,...c}),r.Separator(`${j}.separator`),i.builder.ButtonRow(`${j}.footer`,{justifyContent:"space-between",children:()=>{r.Button(`${j}.footer.cancel`,{label:"common.back",icon:"@imgly/ChevronLeft",onClick:a}),r.Button(`${j}.footer.apply`,{label:"common.apply",icon:"@imgly/MagicWand",color:"accent",isDisabled:c.value.length===0,onClick:async()=>{try{let d=c.value;if(!d)return;let[p]=s.block.findAllSelected(),g=s.block.getString(p,"text/text");await o({prompt:Ur(g,d),customPrompt:d}),a(),l()}catch(d){console.error("Generation error:",d),e.ui.showNotification({type:"error",message:d.message||"Failed to change text. Please try again.",duration:"medium"})}}})}})}else r.Button(`${j}.button`,{label:`${_}.label`,icon:"@imgly/MagicWand",labelAlignment:"left",variant:"plain",onClick:a})}}),Br=Gc;var ge="@imgly/plugin-ai-text-generation-web",Me=["ly.img.improve","ly.img.fix","ly.img.shorter","ly.img.longer","ly.img.separator","ly.img.changeTone","ly.img.translate","ly.img.separator","ly.img.changeTextTo"];function Hc(e){return{async initialize({cesdk:t}){if(t==null)return;Nt(t,ge,"0.2.2"),t.ui.addIconSet(tt,rt),t.i18n.setTranslations({en:{"common.apply":"Apply","common.back":"Back"}}),qc(e);let r=Ue.get();r.register(kr({cesdk:t})),r.register(Ar({cesdk:t})),r.register(Lr({cesdk:t})),r.register($r({cesdk:t})),r.register(Pr({cesdk:t})),r.register(Fr({cesdk:t})),r.register(Br({cesdk:t}));let i=e.providers?.text2text??e.provider,n=await Promise.all(yr(i).map(u=>u({cesdk:t})));if(!(n.length>0))return;let o=await qt("text",{fromText:n,fromImage:[]},{cesdk:t},e),s=await Yt({kind:"text",providerInitializationResults:o.providerInitializationResults,cesdk:t,engine:t.engine,debug:e.debug,dryRun:e.dryRun,defaultOrder:Me});s.renderFunction!=null&&(t.ui.registerComponent("ly.img.ai.text.canvasMenu",s.renderFunction),t.ui.setCanvasMenuOrder(["ly.img.ai.text.canvasMenu"],{editMode:ne}))}}}function qc(e){e.debug&&e.providers?.text2text!=null&&e.provider!=null&&console.warn("[TextGeneration]: Both `providers.text2text` and `provider` configuration is provided. Since `provider` is deprecated, only `providers.text2text` will be used.")}var Gr=Hc;var Qc=e=>({name:ge,version:"0.2.2",...Gr(e)}),m1=Qc;export{Me as DEFAULT_TEXT_QUICK_ACTION_ORDER,m1 as default};
314
314
  /*! Bundled license information:
315
315
 
316
316
  @imgly/plugin-ai-generation-web/dist/index.mjs: