1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,208981,e=>{"use strict";var t=e.i(604720),r=e.i(917268),s=e.i(176506),a=e.i(10668),i=e.i(623099),o=e.i(193151),n=e.i(747026),l=e.i(71131),d=e.i(697743),c=e.i(780961),u=e.i(462297),m=e.i(421696),m=m,p=e.i(880763),p=p,g=e.i(874372),h=e.i(795551),x=e.i(745422),f=e.i(754853),b=e.i(506039),v=e.i(465230),w=e.i(153585),y=e.i(779342),j=e.i(619),N=e.i(199978),k=e.i(709600),C=e.i(654150),T=e.i(956333),S=e.i(12944),_=e.i(151028),I=e.i(394673),M=e.i(576076),D=e.i(553638),E=e.i(636680),R=e.i(400969),A=e.i(526683);e.i(741820);var O=e.i(331597),L=e.i(23122),P=e.i(829740),$=e.i(960568),F=e.i(534417),U=e.i(800928),z=e.i(122913),G=e.i(511398),q=e.i(248647);let B=[".svg",".png",".jpg",".jpeg",".webp",".gif"],V={image:new Set(["turbo","turbo-edit"]),video:new Set(["turbo-ttv","turbo-itov"])},W={image:["nano-banana","nano-banana-edit"],video:["veo3.1"]},H=q.default,Y=(e,t)=>{if(e.length<=t)return e;let r=[...e];for(let e=r.length-1;e>0;e-=1){let t=Math.floor(Math.random()*(e+1));[r[e],r[t]]=[r[t],r[e]]}return r.slice(0,t)};function J(e){return e?.published!==!1}function K(e,t){return V[t].has(e)}function Q(e,t){for(let r of W[t]){let t=e.find(e=>e.id===r);if(t&&J(t))return t.id}return e.find(e=>J(e))?.id??e[0]?.id??""}function X(e,t){return e?K(e.id,t)?"other":e.vendor?.id??"other":""}let Z=[{value:"image",label:"generator.generation_type.image",icon:c.Image},{value:"video",label:"generator.generation_type.video",icon:v.Video}];function ee({className:e,mode:r,imageModels:i,videoModels:d,defaultModelId:m,applyPayload:p,onGenerate:g,redirectToPlayground:h=!1,compact:x=!1,showPromptPresets:f=!0}){let b=(0,o.useTranslations)("ai.image"),w=(0,o.useTranslations)("ai.video"),q=(0,N.usePathname)(),V=(0,o.useTranslations)("ai.ai-media-prompt-titles"),W=(0,N.useRouter)(),ee=(0,k.useSearchParams)(),{data:et}=(0,R.useSession)(),{user:er,setIsShowSignModal:es}=(0,$.useAppContext)(),[ea,ei]=(0,s.useState)(""),eo=ea.trim(),en=m&&d.some(e=>e.id===m)?"video":m&&i.some(e=>e.id===m)?"image":r.includes("video")?"video":"image",[el,ed]=(0,s.useState)(en),ec=(0,s.useMemo)(()=>H.filter(e=>e.type===el),[el]),[eu,em]=(0,s.useState)(()=>H.filter(e=>e.type===en).slice(0,3)),ep="video"===el?d:i,eg=b("generator.common.coming_soon"),eh=b("generator.messages.model_coming_soon"),[ex,ef]=(0,s.useState)(()=>{if(m){let e=ep.find(e=>e.id===m);if(e&&J(e))return m}return Q(ep,el)});(0,s.useEffect)(()=>{let e="video"===el?d:i;if(0!==e.length&&!e.some(e=>e.id===ex)){let t=(()=>{if(m){let t=e.find(e=>e.id===m);if(t&&J(t))return m}return Q(e,el)})();t&&t!==ex&&ef(t)}},[m,el,i,ex,d]);let eb=(0,s.useMemo)(()=>ep.find(e=>e.id===ex)??ep[0],[ex,ep]),ev=eb?.inputSpec?.requirePrompt!==!1,ew=(0,s.useMemo)(()=>{let e=(eb?.inputSpec?.requiredOptions??[]).some(e=>e.includes("image")),t=eb?.inputSpec?.fileCount,r=t?.min??0,s=t?.exact??0;return e||r>0||s>0},[eb]),ey=(0,s.useMemo)(()=>{let e=new Map;ep.forEach(t=>{let r=K(t.id,el),s=r?"other":t.vendor?.id??"other",a=r?"generator.vendor.other":t.vendor?.name??"generator.vendor.other",i=r?void 0:t.vendor?.icon,o=r?void 0:t.vendor?.tags;e.has(s)||e.set(s,{vendorId:s,vendorName:a,vendorIcon:i,vendorTags:o,models:[]}),e.get(s).models.push(t)});let t=Array.from(e.values()).map(e=>({...e,models:[...e.models].sort((e,t)=>{let r=K(e.id,el);return r===K(t.id,el)?0:r?1:-1})})),r=["ai","google","openai","xai","alibaba","bytedance","blackforest"];return t.sort((e,t)=>{if("other"===e.vendorId&&"other"!==t.vendorId)return 1;if("other"===t.vendorId&&"other"!==e.vendorId)return -1;let s=r.indexOf(e.vendorId),a=r.indexOf(t.vendorId);return -1!==s&&-1!==a?s-a:-1!==s?-1:-1!==a?1:e.vendorName.localeCompare(t.vendorName)}),t},[el,ep]),[ej,eN]=(0,s.useState)(()=>X(eb,el)||ey[0]?.vendorId||""),ek=(0,s.useMemo)(()=>ey.find(e=>e.vendorId===ej)?.models??[],[ey,ej]),[eC,eT]=(0,s.useState)(!1),eS=eb?.aspectRatios??[],e_=eb?.defaults?.aspectRatio??eS[0]?.value??"1:1",[eI,eM]=(0,s.useState)(e_),eD=eb?.imageResolutions??[],eE=eb?.defaults?.imageResolution??eD[0]?.value,[eR,eA]=(0,s.use
1State)(eE),eO=eb?.videoDurations??[],eL=eb?.defaultDurationSeconds??eO[0],[eP,e$]=(0,s.useState)(eL),eF=eb?.outputCounts??[1,2,3,4],eU=eb?.defaults?.numOutputs??eF[0]??1,[ez,eG]=(0,s.useState)(eU),[eq,eB]=(0,s.useState)([]),[eV,eW]=(0,s.useState)(null),[eH,eY]=(0,s.useState)(!1),[eJ,eK]=(0,s.useState)(null),eQ=(0,s.useRef)(null),eX=eq[eq.length-1],[eZ,e0]=(0,s.useState)(!1),e1=(0,s.useRef)(m),[e2,e4]=(0,s.useState)(!1),e5=(0,s.useRef)(null),e3=(0,s.useMemo)(()=>!!er&&(!!(er.isAdmin||er.roles?.some(e=>"admin"===e.name))||["active","trialing","pending_cancel"].includes(er.subscriptionStatus||er.currentSubscription?.status)),[er]),[e6,e8]=(0,s.useState)(!1),[e7,e9]=(0,s.useState)("batch"),te=b.raw("generator.subscription_multi_bullets"),tt=(0,s.useMemo)(()=>eq.filter(e=>"done"===e.status).map(e=>e.url),[eq]);(0,s.useEffect)(()=>{e4(!0)},[]),(0,s.useEffect)(()=>{em(Y(ec,3))},[e2,ec]);let tr=(0,s.useCallback)(()=>{e2&&em(Y(ec,3))},[e2,ec]);(0,s.useEffect)(()=>{let e=ee.get("prompt");e&&ei(e)},[ee]);let ts=(0,s.useCallback)(e=>{ei(e.prompt),e.imageUrl&&(eW(null),eB([{id:Math.random().toString(36).substring(7),url:e.imageUrl,status:"done",rotation:0}]))},[]),ta=(!ev||eo.length>0)&&(!ew||tt.length>0),ti=(0,s.useRef)(!1);(0,s.useEffect)(()=>{if(!m||m===e1.current)return;e1.current=m;let e=d.some(e=>e.id===m),t=i.some(e=>e.id===m),r=e?"video":t?"image":null;if(!r)return;el!==r&&ed(r);let s="video"===r?d:i,a=(()=>{if(m){let e=s.find(e=>e.id===m);if(e&&J(e))return m}return Q(s,r)})();a&&ex!==a&&ef(a)},[m,el,i,ex,d]),(0,s.useEffect)(()=>{let e=X(eb,el);e?eN(e):ey.length>0&&eN(ey[0].vendorId)},[eb,el,ey]),(0,s.useEffect)(()=>{if(ti.current){ti.current=!1;return}if(eb){let e=eb.defaults?.aspectRatio??eb.aspectRatios?.[0]?.value??"1:1",t=eb.defaults?.imageResolution??eb.imageResolutions?.[0]?.value??"",r=eb.defaultDurationSeconds??eb.videoDurations?.[0],s=eb.defaults?.numOutputs??eb.outputCounts?.[0]??1;eM(e),eA(t),e$(r),eG(s)}},[eb]),(0,s.useEffect)(()=>{if(et?.user){let e=localStorage.getItem("ai_media_pending_state");if(e)try{let t=JSON.parse(e);ti.current=!0,t.prompt&&ei(t.prompt),t.modelId&&ef(t.modelId),t.aspectRatio&&eM(t.aspectRatio),t.imageResolution&&eA(t.imageResolution),t.outputCount&&eG(t.outputCount),t.videoDuration&&e$(t.videoDuration),t.generationType&&ed(t.generationType),t.uploadedImages&&Array.isArray(t.uploadedImages)&&eB(t.uploadedImages),localStorage.removeItem("ai_media_pending_state")}catch(e){}}},[et]),(0,s.useEffect)(()=>{p&&p.id!==e5.current&&(e5.current=p.id,ti.current=!0,p.generationType&&ed(p.generationType),p.modelId&&ef(p.modelId),"string"==typeof p.prompt&&ei(p.prompt),p.aspectRatio&&eM(p.aspectRatio),"string"==typeof p.imageResolution&&eA(p.imageResolution),"number"==typeof p.numOutputs&&eG(Math.max(1,Math.trunc(p.numOutputs))),"number"==typeof p.durationSeconds&&e$(Math.max(1,Math.trunc(p.durationSeconds))),Array.isArray(p.referenceImageUrls)&&(eW(null),eB(p.referenceImageUrls.filter(e=>"string"==typeof e&&e).map(e=>({id:Math.random().toString(36).substring(7),url:e,status:"done",rotation:0})))))},[p]);let to=(0,s.useMemo)(()=>{if(eb)return(0,P.calculateCreditsFromModelConfig)({model:eb,mediaType:"video"===el?j.AIMediaType.VIDEO:j.AIMediaType.IMAGE,outputs:ez,imageResolution:eR,durationSeconds:eP})},[eb,el,ez,eR,eP]),tn=(0,s.useCallback)(async()=>{if(eb?.published===!1)return void(0,y.toast)(eh);if(ev&&!eo)return void y.toast.error(b("generator.errors.prompt_required"));if(ew&&0===tt.length)return void y.toast.error(b("generator.errors.image_required"));if(!et?.user){let e={prompt:ea,modelId:ex,aspectRatio:eI,imageResolution:eR,outputCount:ez,videoDuration:eP,generationType:el,uploadedImages:eq.filter(e=>"done"===e.status).map(e=>({...e,file:void 0}))};localStorage.setItem("ai_media_pending_state",JSON.stringify(e)),es(!0);return}let e={prompt:eo,modelId:ex,aspectRatio:eI,imageResolution:eR,numOutputs:"image"===el?ez:void 0,referenceImageUrls:tt,generationType:el,durationSeconds:"video"===el?eP:void 0};if(h&&!g){e0(!0);try{localStorage.setItem(L.PLAYGROUND_GENERATE_STORAGE_KEY,JSON.stringify(e))}catch(e){}W.push("/app/playground");return}if(g){e0(!0);try{await g(e),ei("")}finally{e0(!1)}return}e0(!0);let t="/app/text-to-image",r=ex;"video"===el?(t=tt.length>
10?"/app/image-to-video":"/app/text-to-video",tt.length>0&&(r=ex.includes("image-to-video")?ex:ex.includes("text-to-video")?ex.replace("text-to-video","image-to-video"):ex)):tt.length>0&&(t="/app/image-to-image",r=ex.endsWith("-edit")||ex.endsWith("-image-to-image")?ex:ex.includes("text-to-image")?ex.replace("text-to-image","image-to-image"):`${ex}-edit`);let s=new URLSearchParams;eo&&s.set("prompt",eo),r&&s.set("model",r),eI&&s.set("aspectRatio",eI),eR&&s.set("resolution",eR),"image"===el&&ez>1&&s.set("outputs",String(ez)),eP&&s.set("duration",String(eP)),tt.length>0&&s.set("images",tt.join(","));let a=s.toString(),i=a?`${t}?${a}`:t;ei(""),W.push(i)},[eI,el,h,eR,ew,ev,ex,g,ez,W,b,eo,tt,eq,eP]),tl=(0,s.useCallback)(async e=>{let t=e.target.files;if(!t||0===t.length)return;let r=Array.from(t).map(e=>({id:Math.random().toString(36).substring(7),url:URL.createObjectURL(e),file:e,status:"uploading",rotation:12*Math.random()-6}));for(let e of(eB(e=>[...e,...r]),eQ.current&&(eQ.current.value=""),r))try{let t=new FormData;t.append("files",e.file);let r=await fetch("/api/storage/upload-image",{method:"POST",body:t});if(!r.ok)throw Error("Upload failed");let s=await r.json();if(0!==s.code||!s.data?.urls?.[0])throw Error(s.message||"generator.messages.upload_failed");eB(t=>t.map(t=>t.id===e.id?{...t,url:s.data.urls[0],status:"done"}:t))}catch(t){eB(t=>t.map(t=>t.id===e.id?{...t,status:"error"}:t))}},[]),td=(0,s.useCallback)((e,t)=>{t.stopPropagation(),eB(t=>t.filter(t=>t.id!==e))},[]),tc=(0,s.useCallback)((e,t)=>{t.stopPropagation(),eW(e)},[]),tu=(0,s.useMemo)(()=>{let e=eS.find(e=>e.value===eI);return e?.value??eI},[eI,eS]),tm=(0,s.useMemo)(()=>{let e=eD.find(e=>e.value===eR);return e?.label??eR??""},[eR,eD]),tp=(0,s.useMemo)(()=>0===eO.length?"":eP?`${eP}s`:"",[eP,eO.length]),tg=(0,s.useCallback)(e=>{let t=e.toLowerCase();return!!(t.startsWith("data:image")||t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/"))||B.some(e=>t.endsWith(e))},[]),th=(0,s.useCallback)(e=>{let r=e?.icon??e?.logo;return r?tg(r)?(0,t.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-lg bg-muted dark:bg-gray-100 flex-shrink-0",children:(0,t.jsx)("img",{src:r,alt:`${e?.label??""} icon`,width:16,height:16,className:"block h-4 w-4 object-contain",loading:"eager"})}):(0,t.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-lg bg-muted dark:bg-gray-100",children:(0,t.jsx)(O.SmartIcon,{name:r,size:16,className:"text-primary dark:text-black"})}):(0,t.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-lg bg-muted dark:bg-gray-100","aria-hidden":"true"})},[tg]),tx=(0,s.useCallback)(e=>{if(!e)return"";let t=(e=>{if(e.startsWith("models.")&&e.endsWith(".description")){let t=e.slice(7,-12);return`generator.models.${t}.description`}return e.startsWith("generator.")?e:e.startsWith("ai.image.")||e.startsWith("ai.video.")?e.slice(9):null})(e);if(!t)return e;let r="video"===el?w:b,s="video"===el?b:w;return r.has(t)?r(t):s.has(t)?s(t):e},[el,b,w]),tf="video"===el?w("generator.generate"):b("generator.generate"),tb=(0,t.jsxs)("button",{type:"button",onClick:tn,className:(0,A.cn)("flex items-center justify-center gap-2","h-10 px-4 rounded-xl","transition-colors",ta?"bg-primary hover:bg-primary/90 text-primary-foreground":"bg-gray-200 dark:bg-muted text-muted-foreground","disabled:opacity-50 disabled:cursor-not-allowed"),disabled:eZ||!ta,children:[eZ?(0,t.jsx)(u.Loader2,{className:"h-5 w-5 animate-spin"}):(0,t.jsx)(S.ArrowUp,{className:"h-5 w-5"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:tf})]});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,A.cn)("w-full rounded-3xl border border-border/40 bg-card shadow-sm",x?"shadow-none":"",e),children:[(0,t.jsx)("input",{type:"file",ref:eQ,className:"hidden",accept:"image/*",multiple:!0,onChange:tl}),(0,t.jsxs)("div",{className:(0,A.cn)("flex gap-4 p-4 pb-3",x?"items-center p-3 pb-3":""),children:[x?(0,t.jsxs)("button",{type:"button",onClick:()=>eQ.current?.click(),className:(0,A.cn)("relative flex h-20 w-12 flex-shrink-0 items-center justify-center","rounded-xl bg-gray-100 dark:bg-muted/40","transition-all duration-300 ease-out","border-2 border-dashed border-gray-200 dark:border-border/60","cursor-pointer hover:border-primary/40 hover:bg-gray-50 dark:hover:bg-muted/60","overflow-hidden"),children:[eX?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("img",{src:eX.url,alt:b("generator.common.reference"),className:"h-full w-full object-cover"}),"uploading"===eX.status&&(0,t.jsx)("span",{className:"absolute inset-0 flex items-center justify-center bg-black/30",children:(0,t.jsx)("span",{className:"h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"})}),"error"===eX.status&&(0,t.jsx)("span",{className:"absolute inset-0 flex items-center justify-center bg-destructive/30 text-[10px] font-medium text-white",children:b("generator.common.error")})]}):(0,t.jsx)(T.Plus,{className:"h-5 w-5 text-gray-400 dark:text-muted-foreground"}),(0,t.jsx)("span",{className:"sr-only",children:b("generator.common.add_image")})]}):(0,t.jsx)("div",{className:(0,A.cn)("relative flex-shrink-0 z-20 w-16 h-32",x?"w-12 h-24":""),onMouseEnter:()=>eY(!0),onMouseLeave:()=>eY(!1),children:(0,t.jsxs)("div",{className:(0,A.cn)("absolute top-0 left-0 flex items-center transition-all duration-300 ease-out pr-4 rounded-2xl",(eq.length,""),eq.length>0&&!eH?"w-16 overflow-visible":"w-auto max-w-[500px] overflow-x-visible"),children:[eq.map((e,r)=>{let s=eq.length>0&&!eH,a=r===eq.length-1,i=0===r?0:s?-60:5;s&&e.rotation;let o=1.5*e.rotation,n=eJ===e.id;return(0,t.jsxs)("div",{onMouseEnter:()=>eK(e.id),onMouseLeave:()=>eK(null),className:(0,A.cn)("group relative flex h-24 w-16 flex-shrink-0 items-center justify-center","transition-all duration-300 ease-out"),style:{marginLeft:`${i}px`,transform:`rotate(${s?e.rotation:o}deg) translateY(0px) scale(${n?1.1:1})`,zIndex:n?100:r},children:[(0,t.jsxs)("div",{className:(0,A.cn)("relative h-full w-full overflow-hidden rounded-xl border border-border/60 bg-muted/30 shadow-sm bg-card"),children:[(0,t.jsx)("img",{src:e.url,alt:"Reference",className:(0,A.cn)("h-full w-full object-cover transition-transform duration-300",s?"":"group-hover:scale-105","uploading"===e.status&&"opacity-50")}),"uploading"===e.status&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,t.jsx)("div",{className:"h-5 w-5 animate-spin rounded-full border-2 border-primary border-t-transparent"})}),"error"===e.status&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-destructive/20",children:(0,t.jsx)("span",{className:"text-xs text-destructive font-medium",children:b("generator.common.error")})}),"done"===e.status&&eH&&(0,t.jsx)("div",{className:"absolute inset-0 flex flex-col items-center justify-center bg-black/10 o
1pacity-0 transition-opacity duration-200 group-hover:opacity-100",children:(0,t.jsx)("button",{type:"button",onClick:t=>tc(e,t),className:"p-2 text-white hover:text-white/80 transition-colors drop-shadow-md",children:(0,t.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,t.jsx)("path",{d:"m21 21-4.3-4.3"}),(0,t.jsx)("path",{d:"M11 8v6"}),(0,t.jsx)("path",{d:"M8 11h6"})]})})})]}),"done"===e.status&&eH&&(0,t.jsx)("button",{type:"button",onClick:t=>td(e.id,t),className:(0,A.cn)("absolute -top-2 -right-2 z-50","flex h-6 w-6 items-center justify-center rounded-full","bg-gray-900 text-white shadow-lg ring-1 ring-white","opacity-0 transition-all duration-200 group-hover:opacity-100 hover:scale-110 hover:bg-black"),children:(0,t.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M18 6L6 18"}),(0,t.jsx)("path",{d:"M6 6l12 12"})]})}),"done"===e.status&&!eH&&a&&(0,t.jsx)("div",{className:"absolute inset-0 rounded-xl bg-black/10 pointer-events-none",children:(0,t.jsx)("div",{className:(0,A.cn)("absolute -bottom-2 -right-2 z-50","flex h-6 w-6 items-center justify-center rounded-full","bg-gray-900 text-white shadow-lg ring-1 ring-white"),children:(0,t.jsx)(T.Plus,{className:"h-4 w-4"})})})]},e.id)}),(0,t.jsxs)("div",{onClick:()=>eQ.current?.click(),className:(0,A.cn)("relative flex h-24 w-16 flex-shrink-0 items-center justify-center","rounded-xl bg-gray-100 dark:bg-muted/40","transition-all duration-300 ease-out","border-2 border-dashed border-gray-200 dark:border-border/60","cursor-pointer hover:border-primary/40 hover:bg-gray-50 dark:hover:bg-muted/60",x?"h-16 w-12":"",eq.length>0&&!eH?"w-0 overflow-hidden opacity-0 scale-75 ml-0 border-0":"w-16 opacity-100 scale-100 ml-2",0===eq.length&&"-rotate-6 hover:rotate-0"),children:[(0,t.jsx)(T.Plus,{className:"h-6 w-6 text-gray-400 dark:text-muted-foreground"}),(0,t.jsx)("span",{className:"sr-only",children:b("generator.common.add_image")})]})]})}),(0,t.jsx)("div",{className:"flex-1 min-w-0",children:(0,t.jsx)("div",{className:(0,A.cn)("rounded-2xl bg-white",x?"px-3 py-2":"px-4 py-3"),children:(0,t.jsx)("textarea",{value:ea,onChange:e=>ei(e.target.value),placeholder:b("generator.form.prompt_placeholder"),className:(0,A.cn)("w-full resize-none","text-base leading-relaxed text-foreground","!bg-transparent border-none outline-none","placeholder:text-muted-foreground/60","focus:ring-0 focus:outline-none",x?"min-h-[56px]":"min-h-[80px]"),rows:x?2:3})})}),x?(0,t.jsx)("div",{className:"flex items-center",children:tb}):null]}),!x&&(0,t.jsxs)("div",{className:"flex flex-col gap-3 px-4 pb-4 pt-1 sm:flex-row sm:items-center sm:justify-between",children:[(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-2 sm:flex sm:flex-wrap",children:[(0,t.jsxs)(F.DropdownMenu,{children:[(0,t.jsx)(F.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",className:(0,A.cn)("inline-flex w-full items-center justify-between gap-1.5 px-3 h-9 whitespace-nowrap sm:w-auto sm:justify-start","rounded-lg text-sm font-medium","bg-transparent hover:bg-primary/5 dark:hover:bg-primary/10","text-primary transition-colors","border border-primary/20 dark:border-primary/30"),children:["video"===el?(0,t.jsx)(v.Video,{className:"h-4 w-4"}):(0,t.jsxs)("svg",{className:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,t.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,t.jsx)("circle",{cx:"8.5",cy:"8.5",r:"1.5"}),(0,t.jsx)("path",{d:"M21 15l-5-5L5 21"})]}),(0,t.jsx)("span",{children:b("video"===el?"generator.generation_type.video":"generator.generation_type.image")}),(0,t.jsx)(C.ChevronDown,{className:"h-3.5 w-3.5"})]})}),(0,t.jsx)(F.DropdownMenuContent,{align:"start",className:"min-w-[140px]",children:Z.map(e=>(0,t.jsxs)(F.DropdownMenuItem,{onClick:()=>ed(e.value),className:(0,A.cn)("flex items-center gap-2",el===e.value&&"bg-accent"),children:[(0,t.jsx)(e.icon,{className:"h-4 w-4"}),(0,t.jsx)("span",{children:b(e.label)})]},e.value))})]}),(0,t.jsxs)(F.DropdownMenu,{open:eC,onOpenChange:eT,children:[(0,t.jsx)(F.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",className:(0,A.cn)("inline-flex w-full items-center justify-between gap-1.5 px-3 h-9 whitespace-nowrap sm:w-auto
1sm:justify-start","rounded-lg text-sm font-medium","bg-transparent hover:bg-gray-100 dark:hover:bg-muted/60","text-foreground/80 transition-colors","border border-border"),children:[th(eb),(0,t.jsx)("span",{children:eb?.label??b("generator.form.select_model")}),(0,t.jsx)(C.ChevronDown,{className:"h-3.5 w-3.5"})]})}),(0,t.jsx)(F.DropdownMenuContent,{align:"start",className:"w-[92vw] max-w-[620px] p-0 overflow-hidden",sideOffset:8,children:(0,t.jsxs)("div",{className:"flex max-h-[85vh] flex-col sm:h-auto sm:max-h-[600px] sm:flex-row",children:[(0,t.jsxs)("div",{className:"w-full border-b border-border bg-muted/30 py-1 overflow-x-auto sm:w-[200px] sm:overflow-y-auto sm:border-b-0 sm:border-r",children:[(0,t.jsx)("div",{className:"hidden px-2 pt-2 pb-0 text-xs font-medium text-muted-foreground uppercase tracking-wide sm:block",children:b("generator.vendor.models")}),(0,t.jsx)("div",{className:"flex items-center gap-2 px-2 pb-2 sm:block sm:px-0 sm:pb-0",children:ey.map(e=>(0,t.jsxs)("button",{type:"button",onMouseEnter:()=>eN(e.vendorId),className:(0,A.cn)("flex items-center rounded-lg transition-all duration-150","h-10 w-10 justify-center p-0 sm:h-auto sm:w-auto sm:justify-start sm:gap-2 sm:px-3 sm:py-2.5 sm:mx-1.5 sm:my-0.5",ej===e.vendorId?"bg-accent border border-border":"hover:bg-muted/60"),style:{width:"calc(100% - 12px)"},children:[e.vendorIcon&&(tg(e.vendorIcon)?(0,t.jsx)("span",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-lg bg-muted dark:bg-gray-100",children:(0,t.jsx)("img",{src:e.vendorIcon,alt:e.vendorName,width:16,height:16,className:"block h-4 w-4 object-contain"})}):(0,t.jsx)("span",{className:"flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-lg bg-muted dark:bg-gray-100",children:(0,t.jsx)(O.SmartIcon,{name:e.vendorIcon,size:16,className:"dark:text-black"})})),(0,t.jsx)("span",{className:"hidden text-sm font-medium truncate sm:inline",children:e.vendorName.includes("generator.")?b(e.vend
1orName):e.vendorName}),e.vendorTags?.map(e=>(0,t.jsx)("span",{className:"ml-auto hidden px-1.5 py-0.5 text-[10px] font-medium rounded bg-muted text-muted-foreground sm:inline-flex",children:e},e))]},e.vendorId))})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto p-2",children:ek.map(e=>{let r=e.requiresSubscription&&!e3;return(0,t.jsxs)("button",{type:"button",onClick:()=>{if(!1===e.published)return void(0,y.toast)(eh);if(r){e9("model"),e8(!0);return}ef(e.id),eT(!1)},className:(0,A.cn)("w-full flex items-start gap-3 p-3 rounded-lg text-left transition-all duration-150 mb-1","animate-in fade-in-50 slide-in-from-left-2",ex===e.id?"bg-accent border border-border":"hover:bg-muted/60"),children:[th(e),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-semibold",children:e.label}),r&&(0,t.jsx)("span",{className:"rounded-full bg-muted p-0.5 shadow-sm inline-flex items-center",children:(0,t.jsx)(D.Crown,{className:"h-3 w-3 text-amber-600"})}),!1===e.published&&(0,t.jsxs)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium rounded bg-amber-500/20 text-amber-700 dark:text-amber-300 inline-flex items-center gap-1",children:[(0,t.jsx)(l.Clock,{className:"h-3 w-3"}),eg]}),e.tag&&(0,t.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium rounded bg-green-500/20 text-green-600 dark:text-green-400",children:e.tag}),e.hasAudio&&(0,t.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium rounded bg-muted text-muted-foreground",children:b("generator.common.audio")})]}),e.description&&(0,t.jsx)(U.TooltipProvider,{children:(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 text-left",children:tx(e.description)})}),(0,t.jsx)(U.TooltipContent,{side:"right",children:(0,t.jsx)("p",{className:"max-w-[200px] text-xs",children:tx(e.description)})})]})}),(0,t.jsxs)("div",{className:"flex items-center gap-3 mt-1.5 text-xs text-muted-foreground",children:[e.defaultDurationSeconds&&(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(l.Clock,{className:"h-3 w-3"}),e.defaultDurationSeconds,"s"]}),e.cost&&(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)(I.Coins,{className:"h-3 w-3"}),e.cost.image?.perOutput??e.cost.video?.perRequest??e.cost.video?.perSecond??"?","+ ",b("generator.common.credits")]})]})]}),ex===e.id&&(0,t.jsx)(n.CheckCircle2,{className:"h-5 w-5 text-green-500 flex-shrink-0 mt-0.5"})]},e.id)})})]})})]}),(0,t.jsxs)(F.DropdownMenu,{children:[(0,t.jsx)(F.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsxs)("button",{type:"button",className:(0,A.cn)("inline-flex w-full items-center justify-between gap-1.5 px-3 h-9 whitespace-nowrap sm:w-auto sm:justify-start","col-span-2 sm:col-auto","rounded-lg text-sm font-medium","bg-transparent hover:bg-gray-100 dark:hover:bg-muted/60","text-foreground/80 transition-colors","border border-border"),children:[(0,t.jsx)(_.Square,{className:"h-4 w-4"}),(0,t.jsx)("span",{children:tu}),"image"===el&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground mx-0.5",children:"|"}),(0,t.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,t.jsx)(c.Image,{className:"h-3.5 w-3.5"}),ez]})]}),tm&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground mx-0.5",children:"|"}),(0,t.jsx)("span",{children:tm})]}),tp&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-muted-foreground mx-0.5",children:"|"}),(0,t.jsx)("span",{children:tp})]})]})}),(0,t.jsxs)(F.DropdownMenuContent,{align:"start",className:"w-[440px] p-4 bg-card rounded-xl shadow-lg border border-border",children:[eS.length>0&&(0,t.jsxs)("div",{className:"mb-5",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:b("generator.form.aspect_ratio")}),(0,t.jsx)("div",{className:"flex flex-wrap bg-muted/50 dark:bg-zinc-800/80 rounded-xl p-1 gap-1",children:eS.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>eM(e.value),className:(0,A.cn)("flex flex-col items-center justify-center flex-shrink-0 min-w-[48px] py-2.5 px-3 rounded-lg transition-all duration-150","text-xs font-medium gap-1.5",eI===e.value?"bg-accent border border-border text-foreground":"hover:bg-gray-200 dark:hover:bg-muted/60 text-muted-foreground"),children:[(0,t.jsx)("div",{className:"flex items-center justify-center h-5 w-5",children:(0,t.jsx)("div",{className:"border-2 border-current",style:{width:Math.min(18,18*(e.width/e.height)),height:Math.min(18,18*(e.height/e.width))}})}),(0,t.jsx)("span",{children:e.value})]},e.value))})]}),"image"===el&&eF.length>0&&(0,t.jsxs)("div",{className:"mb-5",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:b("generator.form.num_outputs")}),(0,t.jsx)("div",{className:"flex bg-muted/50 dark:bg-zinc-800/80 rounded-xl p-1",children:eF.map(e=>{let r=e>1,s=r&&!e3;return(0,t.jsxs)("button",{type:"button",onClick:()=>
1{if(s){e9("batch"),e8(!0);return}eG(e)},"aria-disabled":s,className:(0,A.cn)("relative flex-1 py-2 px-4 rounded-lg text-sm font-medium transition-all duration-150",ez===e?"bg-accent border border-border text-foreground":"hover:bg-gray-200 dark:hover:bg-muted/60 text-muted-foreground",s&&"cursor-pointer"),children:[r&&(0,t.jsx)("span",{className:"absolute -right-1.5 -top-1.5 rounded-full bg-muted p-0.5 shadow-sm",children:(0,t.jsx)(D.Crown,{className:(0,A.cn)("h-3.5 w-3.5",s?"text-amber-600":"text-primary")})}),e]},e)})})]}),eD.length>0&&(0,t.jsxs)("div",{className:"mb-5",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:b("generator.form.image_resolution")}),(0,t.jsx)("div",{className:"flex bg-muted/50 dark:bg-zinc-800/80 rounded-xl p-1",children:eD.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{if("High"===e.label&&!e3){e9("high_quality"),e8(!0);return}eA(e.value)},className:(0,A.cn)("relative flex-1 py-2 px-4 rounded-lg text-sm font-medium transition-all duration-150",eR===e.value?"bg-accent border border-border text-foreground":"hover:bg-gray-200 dark:hover:bg-muted/60 text-muted-foreground"),children:[e.label,"High"===e.label&&!e3&&(0,t.jsx)("span",{className:"absolute -right-1.5 -top-1.5 rounded-full bg-muted p-0.5 shadow-sm",children:(0,t.jsx)(D.Crown,{className:"h-3.5 w-3.5 text-amber-600"})})]},e.value))})]}),eO.length>0&&(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground mb-2",children:b("generator.form.duration")}),(0,t.jsx)("div",{className:"flex bg-muted/50 dark:bg-zinc-800/80 rounded-xl p-1",children:eO.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>e$(e),className:(0,A.cn)("flex-1 py-2 px-4 rounded-lg text-sm font-medium transition-all duration-150",eP===e?"bg-accent border border-border text-foreground":"hover:bg-gray-200 dark:hover:bg-muted/60 text-muted-foreground"),children:[e,"s"]},e))})]})]})]})]}),(0,t.jsxs)("div",{className:"flex w-full items-center justify-between gap-3 sm:w-auto sm:justify-end",children:[void 0!==to&&(0,t.jsxs)("span",{className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground whitespace-nowrap",children:[(0,t.jsx)(I.Coins,{className:"w-4 h-4 text-yellow-500"}),(0,t.jsxs)("span",{children:[to," ",b("generator.common.credits")]})]}),tb]})]}),eV&&e2&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4",onClick:()=>eW(null),children:(0,t.jsxs)("div",{className:"relative max-h-full max-w-full overflow-hidden rounded-xl bg-transparent shadow-2xl",children:[(0,t.jsx)("button",{type:"button",onClick:()=>eW(null),className:"absolute right-4 top-4 z-10 rounded-full bg-black/50 p-2 text-white transition-colors hover:bg-black/70","aria-label":b("generator.common.preview"),children:(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})}),(0,t.jsx)("img",{src:eV.url,alt:b("generator.common.preview"),className:"max-h-[90vh] max-w-[90vw] object-contain",onClick:e=>e.stopPropagation()})]})}),document.body)]}),!x&&f&&eu.length>0&&(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,t.jsx)("button",{type:"button",onClick:tr,className:(0,A.cn)("inline-flex h-8 w-8 items-center justify-center rounded-full","border border-border text-muted-foreground","hover:bg-muted/50 hover:text-foreground transition-colors"),"aria-label":"Refresh prompts",children:(0,t.jsx)(M.RefreshCw,{className:"h-4 w-4"})}),eu.map(e=>{let r=V(e.id);return(0,t.jsx)("button",{type:"button",onClick:()=>ts(e),className:(0,A.cn)("inline-flex items-center rounded-full px-3 py-1 text-xs font-medium","border border-border/60 bg-muted/40 text-foreground/80","hover:border-primary/40 hover:bg-primary/5 hover:text-foreground","transition-colors"),title:r,children:r},e.id)})]}),(0,t.jsx)(z.Dialog,{open:e6,onOpenChange:e8,children:(0,t.jsxs)(z.DialogContent,{className:"max-w-lg overflow-hidden",children:[(0,t.jsxs)(z.DialogHeader,{children:[(0,t.jsx)(z.DialogTitle,{children:"model"===e7?b("generator.subscription_model_title"):"batch"===e7?b("generator.subscription_multi_title"):b("generator.subscription_high_title")}),(0,t.jsx)(z.DialogDescription,{children:"model"===e7?b("generator.subscription_model_description"):"batch"===e7?b("generator.subscription_multi_description"):b("generator.subscription_high_description")})]}),(0,t.jsx)("ul",{className:"space-y-2 text-sm text-muted-foreground",children:(("model"===e7?b.raw("generator.subscription_model_bullets"):"batch"===e7?te:b.raw("generator.subscription_high_bullets"))||[]).map(e=>(0,t.jsxs)("li",{className:"flex items-start gap-2",children:[(0,t.jsx)(E.Check,{className:"mt-0.5 h-4 w-4 shrink-0 text-primary"}),(0,t.jsx)("span",{children:e})]},e))}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"model"===e7?b("generator.subscription_model_price"):"batch"===e7?b("generator.subscription_multi_price"):b("generator.subscription_high_price")}),(0,t.jsxs)("div",{className:"flex flex-col gap-2 pt-2",children:[(0,t.jsx)(G.Button,{asChild:!0,className:"w-full",onClick:()=>e8(!1),children:(0,t.jsxs)(N.Link,{href:"/pricing",children:[(0,t.jsx)(D.Crown,{className:"mr-2 h-4 w-4"}),"model"===e7?b("generator.subscription_model_primary"):"batch"===e7?b("generator.subscription_multi_primary"):b("generator.subscription_high_primary")]})}),(0,t.jsx)(G.Button,{variant:"outline",className:"w-full",asChild:!0,children:(0,t.jsx)(N.Link,{href:q?.startsWith("/app")?"/app/pricing":"/pricing",children:b("generator.subscription_multi_secondary")})})]})]})})]})}var et=e.i(24963),er=e.i(550549),es=e.i(547399);function ea(e){if(!e)return"";let t=new Date(e);if(Number.isNaN(t.getTime()))return"";let r=t.getFullYear(),s=`${t.getMonth()+1}`.padStart(2,"0"),a=`${t.getDate()}`.padStart(2,"0");return`${r}-${s}-${a}`}function ei(e,t){return e===j.AITaskStatus.FAILED?t("failed"):e===j.AITaskStatus.PROCESSING?t("processing"):e===j.AITaskStatus.PENDING?t("generating"):""}function eo(e){if(!e)return[];let t=[];
1return L.IMAGE_INPUT_KEYS.forEach(r=>{let s=e[r];Array.isArray(s)?s.forEach(e=>{"string"==typeof e&&e&&t.push(e)}):"string"==typeof s&&s&&t.push(s)}),Array.from(new Set(t))}function en(e){let a,i,o,n,l,d,c,m,g,f,b,w,N,k,C,T=(0,r.c)(85),{task:S,tGenerator:_,tImage:I,tVideo:M,tCommon:D,onImagePreview:E,onImageContinueEdit:R,onImageToVideo:A,onImageDownload:O,previewLabel:L}=e,P=S.status===j.AITaskStatus.PENDING||S.status===j.AITaskStatus.PROCESSING;T[0]!==P||T[1]!==S.mediaType?(a={isActive:P,mediaType:S.mediaType,durationTo90Ms:1e4,inactiveBehavior:"complete"},T[0]=P,T[1]=S.mediaType,T[2]=a):a=T[2];let $=(0,es.useSyntheticProgress)(a),[z,G]=(0,s.useState)(null),q=(0,s.useRef)(null),B=S.urls.length>0,V=S.mediaType===j.AIMediaType.VIDEO,W=V?1:Math.max(S.outputs||1,1);T[3]!==_||T[4]!==S.status?(i=ei(S.status,_),T[3]=_,T[4]=S.status,T[5]=i):i=T[5];let H=i;T[6]!==D||T[7]!==I?(o=D.has("pages.aiMedia.actions.download")?D("pages.aiMedia.actions.download"):I.has("download")?I("download"):"Download",T[6]=D,T[7]=I,T[8]=o):o=T[8];let Y=o;T[9]!==D||T[10]!==I?(n=I.has("continue_edit")?I("continue_edit"):D("pages.aiMedia.actions.edit"),T[9]=D,T[10]=I,T[11]=n):n=T[11];let J=n;T[12]!==M?(l=M("generator.tabs.image-to-video"),T[12]=M,T[13]=l):l=T[13];let K=l;T[14]!==D?(d=D("pages.aiMedia.actions.more"),T[14]=D,T[15]=d):d=T[15];let Q=d;T[16]!==I?(c=I.has("enhance_quality")?I("enhance_quality"):"Enhance",T[16]=I,T[17]=c):c=T[17];let X=c;T[18]!==I?(m=I.has("remove_background")?I("remove_background"):"Remove background",T[18]=I,T[19]=m):m=T[19];let Z=m;T[20]!==I?(g=I.has("outpaint")?I("outpaint"):"Outpaint",T[20]=I,T[21]=g):g=T[21];let ee=g;T[22]!==D?(f=D.has("pages.aiMedia.actions.comingSoon")?D("pages.aiMedia.actions.comingSoon"):"Coming soon",T[22]=D,T[23]=f):f=T[23];let er=f,ea=S.options?.aspect_ratio;T[24]!==ea?(b=function(e){if(!e)return;let t=e.match(/^(\d+(?:\.\d+)?):(\d+(?:\.\d+)?)$/);if(!t)return;let r=Number(t[1]),s=Number(t[2]);if(r&&s)return`${r} / ${s}`}(ea),T[24]=ea,T[25]=b):b=T[25];let eo=b;if(T[26]===Symbol.for("react.memo_cache_sentinel")?(w=()=>()=>{q.current&&window.clearTimeout(q.current)},N=[],T[26]=w,T[27]=N):(w=T[26],N=T[27]),(0,s.useEffect)(w,N),!B&&S.status===j.AITaskStatus.FAILED){let e,r;return T[28]!==H||T[29]!==_?(e=H||_("failed"),T[28]=H,T[29]=_,T[30]=e):e=T[30],T[31]!==e?(r=(0,t.jsx)("div",{className:"rounded-xl border border-border/40 bg-muted/10 p-4 text-sm text-muted-foreground",children:e}),T[31]=e,T[32]=r):r=T[32],r}if(!B){let e,r,s,a,i,o,n,l;T[33]!==H||T[34]!==_?(e=H||_("generating"),T[33]=H,T[34]=_,T[35]=e):e=T[35],T[36]!==e?(r=(0,t.jsx)("span",{children:e}),T[36]=e,T[37]=r):r=T[37],T[38]!==$||T[39]!==P?(s=P&&(0,t.jsxs)("span",{children:[$,"%"]}),T[38]=$,T[39]=P,T[40]=s):s=T[40],T[41]!==r||T[42]!==s?(a=(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs text-muted-foreground",children:[r,s]}),T[41]=r,T[42]=s,T[43]=a):a=T[43];let d=`${$}%`;return T[44]!==d?(i=(0,t.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-muted/40",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-primary transition-all duration-300",style:{width:d}})}),T[44]=d,T[45]=i):i=T[45],T[46]!==W?(o=Array.from({length:W}),T[46]=W,T[47]=o):o=T[47],T[48]!==eo||T[49]!==o||T[50]!==S.id?(n=(0,t.jsx)("div",{className:"grid gap-2 grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 justify-items-start",children:o.map((e,r)=>(0,t.jsx)("div",{className:"w-full max-w-[260px] overflow-hidden rounded-xl bg-muted/60",style:eo?{aspectRatio:eo}:{aspectRatio:"4 / 3"}},`placeholder-${S.id}-${r}`))}),T[48]=eo,T[49]=o,T[50]=S.id,T[51]=n):n=T[51],T[52]!==a||T[53]!==i||T[54]!==n?(l=(0,t.jsxs)("div",{className:"space-y-3 rounded-xl border border-border/40 bg-muted/10 p-4",children:[a,i,n]}),T[52]=a,T[53]=i,T[54]=n,T[55]=l):l=T[55],l}if(V){let e,r;if(T[56]!==eo||T[57]!==S.id||T[58]!==S.urls){let r;T[60]!==eo||T[61]!==S.id?(r=(e,r)=>(0,t.jsx)("div",{className:"w-full max-w-[260px] overflow-hidden rounded-xl",style:eo?{aspectRatio:eo}:{aspectRatio:"4 / 3"},children:(0,t.jsx)("video",{controls:!0,className:"h-full w-full rounded-xl bg-black object-contain",src:e})},`${S.id}-${r}`),T[60]=eo,T[61]=S.id,T[62]=r):r=T[62],e=S.urls.map(r),T[56]=eo,T[57]=S.id,T[58]=S.urls,T[59]=e}else e=T[59];return T[63]!==e?(r=(0,t.jsx)("div",{className:"grid gap-2 grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 justify-items-start",children:e}),T[63]=e,T[64]=r):r=T[64],r}return T[65]!==er||T[66]!==J||T[67]!==Y||T[68]!==z||T[69]!==X||T[70]!==K||T[71]!==Q||T[72]!==R||T[73]!==O||T[74]!==E||T[75]!==A||T[76]!==ee||T[77]!==L||T[78]!==eo||T[79]!==Z||T[80]!==S.id||T[81]!==S.urls?(k=S.urls.map((e,r)=>(0,t.jsxs)("div",{className:"w-full max-w-[260px] overflow-hidden rounded-xl group relative cursor-zoom-in bg-muted/20",style:eo?{aspectRatio:eo}:{aspectRatio:"4 / 3"},children:[(0,t.jsx)("button",{type:"button",onClick:()=>E?.(e),className:"block h-full w-full cursor-zoom-in","aria-label":L,children:(0,t.jsx)(et.LazyImage,{src:e,alt:`ai-result-${S.id}-${r}`,className:"block h-full w-full cursor-zoom-in object-contain",wrapperClassName:"h-full w-full cursor-zoom-in"})}),(0,t.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex flex-col justify-between rounded-xl opacity-0 transition group-hover:opacity-100",children:[(0,t.jsx)("div",{className:"flex items-start justify-end p-2",children:(0,t.jsx)("div",{className:"pointer-events-auto flex items-center gap-1 rounded-2xl bg-black/55 px-2 py-1.5 shadow-sm backdrop-blur",children:(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),z!==e&&(G(e),O?.(e,S.id),q.current&&window.clearTimeout(q.current),q.current=window.setTimeout(()=>{G(t=>t===e?null:t)},1200))},className:"inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg text-white/90 transition hover:bg-white/15 disabled:cursor-not-allowed disabled:opacity-70","aria-label":Y,"aria-busy":z===e,disabled:z===e,children:z===e?(0,t.jsx)(u.Loader2,{className:"h-4 w-4 animate-spin"}):(0,t.jsx)(p.default,{className:"h-4 w-4"})})}),(0,t.jsx)(U.TooltipContent,{side:"left",children:Y})]})})}),(0,t.jsx)("div",{className:"flex items-center justify-end gap-2 p-2",children:(0,t.jsxs)("div",{className:"pointer-events-auto flex items-center gap-1 rounded-2xl bg-black/55 px-2 py-1.5 shadow-sm backdrop-blur",children:[(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),R?.(e)},className:"inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg text-white/90 transition hover:bg-white/15","aria-label":J,children:(0,t.jsx)(x.Pencil,{className:"h-4 w-4"})})}),(0,t.jsx)(U.TooltipContent,{side:"top",children:J})]}),(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:t=>{t.preventDefault(),t.stopPropagation(),A?.(e)},className:"inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg text-white/90 transition hover:bg-white/15","aria-label":K,children:(0,t.jsx)(v.Video,{className:"h-4 w-4"})})}),(0,t.jsx)(U.TooltipContent,{side:"top",children:K})]}),(0,t.jsxs)(F.DropdownMenu,{children:[(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(F.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:el,className:"inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-lg text-white/90 transition hover:bg-white/15","aria-label":Q,children:(0,t.jsx)(h.MoreHorizontal,{className:"h-4 w-4"})})})}),(0,t.jsx)(U.TooltipContent,{side:"top",children:Q})]}),(0,t.jsxs)(F.DropdownMenuContent,{align:"end",className:"min-w-[160px]",children:[(0,t.jsx)(F.DropdownMenuItem,{onSelect:e=>{e.preventDefault(),y.toast.info(er)},children:X}),(0,t.jsx)(F.DropdownMenuItem,{onSelect:e=>{e.preventDefault(),y.toast.info(er)},children:Z}),(0,t.jsx)(F.DropdownMenuItem,{onSelect:e=>{e.preventDefault(),y.toast.info(er)},children:ee})]})]})]})})]})]},`${S.id}-${r}`)),T[65]=er,T[66]=J,T[67]=Y,T[68]=z,T[69]=X,T[70]=K,T[71]=Q,T[72]=R,T[73]=O,T[74]=E,T[75]=A,T[76]=ee,T[77]=L,T[78]=eo,T[79]=Z,T[80]=S.id,T[81]=S.urls,T[82]=k):k=T[82],T[83]!==k?(C=(0,t.jsx)("div",{className:"grid gap-2 grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 justify-items-start",children:k}),T[83]=k,T[84]=C):C=T[84],C}function el(e){e.preventDefault(),e.stopPropagation()}function ed({task:e,tHistory:r,tCommon:a,onDeleteTask:i,isDeletingDisabled:o}
1){let[n,l]=(0,s.useState)(!1),[d,c]=(0,s.useState)(!1),[m,p]=(0,s.useState)(null),g=async()=>{if(!d&&!o){c(!0),p(null);try{await i(e.id,r),l(!1)}catch(e){p(e?.message||r("generator.history.deleteError"))}finally{c(!1)}}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(F.DropdownMenu,{children:[(0,t.jsx)(F.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button","aria-label":a("pages.aiMedia.actions.more"),title:a("pages.aiMedia.actions.more"),className:"inline-flex h-8 w-8 items-center justify-center rounded-lg border border-border/60 text-muted-foreground transition hover:text-foreground",children:(0,t.jsx)(h.MoreHorizontal,{className:"h-4 w-4"})})}),(0,t.jsx)(F.DropdownMenuContent,{align:"end",className:"min-w-[140px]",children:(0,t.jsxs)(F.DropdownMenuItem,{onSelect:e=>{e.preventDefault(),l(!0)},disabled:o,className:"text-red-500 focus:text-red-500",children:[(0,t.jsx)(b.Trash2,{className:"mr-2 h-4 w-4"}),r("generator.history.deleteTooltip")]})})]}),(0,t.jsx)(z.Dialog,{open:n,onOpenChange:e=>{d||(p(null),l(e))},children:(0,t.jsxs)(z.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(z.DialogHeader,{children:[(0,t.jsx)(z.DialogTitle,{children:r("generator.history.deleteTitle")}),(0,t.jsx)(z.DialogDescription,{children:r("generator.history.deleteDescription")})]}),m?(0,t.jsx)("p",{className:"text-sm text-destructive",children:m}):null,(0,t.jsxs)(z.DialogFooter,{children:[(0,t.jsx)(G.Button,{type:"button",variant:"outline",onClick:()=>l(!1),disabled:d,children:r("generator.history.deleteCancel")}),(0,t.jsx)(G.Button,{type:"button",variant:"destructive",onClick:g,disabled:d,className:"bg-red-600 hover:bg-red-700",children:d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Loader2,{className:"h-4 w-4 animate-spin"}),r("generator.history.deleteDeleting")]}):r("generator.history.deleteConfirm")})]})]})})]})}function ec(e){let s,a,i,o,d,m,p,h,b,N,k,C,T,S,_,I,M,D,E,R,O,L=(0,r.c)(127),{task:$,modelLabelMap:F,locale:z,tGenerator:G,tImage:q,tVideo:B,tCommon:V,onImagePreview:W,onImageContinueEdit:H,onImageToVideo:Y,onImageDownload:J,onApplyTask:K,onRegenerateTask:Q,onDeleteTask:X,isCreating:Z,isHydrated:ee}=e,er=$.mediaType===j.AIMediaType.VIDEO,es=er?B:q;L[0]!==er||L[1]!==q?(s=er?q("generator.generation_type.video"):q("generator.generation_type.image"),L[0]=er,L[1]=q,L[2]=s):s=L[2];let ea=s;L[3]!==F||L[4]!==$.effectLabel||L[5]!==$.model||L[6]!==$.modelLabel?(a=$.effectLabel||$.modelLabel||F.get($.model)||$.model,L[3]=F,L[4]=$.effectLabel,L[5]=$.model,L[6]=$.modelLabel,L[7]=a):a=L[7];let el=a;L[8]!==G||L[9]!==$.status?(i=ei($.status,G),L[8]=G,L[9]=$.status,L[10]=i):i=L[10];let ec=i,eu=$.options?.aspect_ratio,em=$.options?.image_resolution||$.options?.video_resolution;if(L[11]!==ee||L[12]!==er||L[13]!==z||L[14]!==ea||L[15]!==el||L[16]!==W||L[17]!==eu||L[18]!==em||L[19]!==ec||L[20]!==es||L[21]!==q||L[22]!==$.createdAt||L[23]!==$.effectId||L[24]!==$.effectLabel||L[25]!==$.id||L[26]!==$.options||L[27]!==$.outputs||L[28]!==$.prompt||L[29]!==$.status){let e,r,s,a,i,x,f,b,N,k,C,T,S,_=eo($.options??{}),I=_.length>0,M=$.effectId||$.effectLabel?"":$.prompt;L[35]!==er||L[36]!==q||L[37]!==$.outputs?(e=!er&&$.outputs>1?q("generator.history.outputCount",{count:$.outputs}):"",L[35]=er,L[36]=q,L[37]=$.outputs,L[38]=e):e=L[38];let D=e;L[39]!==D||L[40]!==eu||L[41]!==em?(r=[D,eu,em].filter(Boolean),L[39]=D,L[40]=eu,L[41]=em,L[42]=r):r=L[42];let E=r;L[43]!==ee||L[44]!==z||L[45]!==$.createdAt?(s=ee?(0,P.formatTaskTime)($.createdAt,z):"",L[43]=ee,L[44]=z,L[45]=$.createdAt,L[46]=s):s=L[46];let R=s;L[47]!==M||L[48]!==es?(a=async()=>{if(M)try{await navigator.clipboard.writeText(M),y.toast.success(es("generator.messages.prompt_copied"))}catch(e){y.toast.error(es("generator.messages.prompt_copy_failed"))}},L[47]=M,L[48]=es,L[49]=a):a=L[49];let O=a;o="relative overflow-hidden rounded-2xl border border-border/40 bg-card/70 p-4 shadow-sm",L[50]===Symbol.for("react.memo_cache_sentinel")?(d={contentVisibility:"auto",containIntrinsicSize:"420px"},m=(0,t.jsx)("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent"}),L[50]=d,L[51]=m):(d=L[50],m=L[51]),L[52]!==er?(i=er?(0,t.jsx)(v.Video,{className:"h-3 w-3"}):(0,t.jsx)(c.Image,{className:"h-3 w-3"}),L[52]=er,L[53]=i):i=L[53],L[54]!==ea||L[55]!==i?(x=(0,t.jsxs)("span",{className:"flex items-center gap-1 rounded-full bg-muted/40 px-2 py-1 text-[11px] uppercase",children:[i,ea]}),L[54]=ea,L[55]=i,L[56]=x):x=L[56],L[57]!==el?(f=(0,t.jsx)("span",{className:"max-w-[220px] truncate text-foreground
1/80",children:el}),L[57]=el,L[58]=f):f=L[58],L[59]!==E?(b=E.length>0&&(0,t.jsxs)("span",{className:"hidden sm:inline",children:["· ",E.join(" · ")]}),L[59]=E,L[60]=b):b=L[60],L[61]!==x||L[62]!==f||L[63]!==b?(N=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[x,f,b]}),L[61]=x,L[62]=f,L[63]=b,L[64]=N):N=L[64],L[65]!==ec||L[66]!==$.status?(k=ec&&(0,t.jsxs)("span",{className:(0,A.cn)("inline-flex items-center gap-1 rounded-full px-2 py-1 text-[11px]",$.status===j.AITaskStatus.FAILED?"bg-red-500/15 text-red-400":$.status===j.AITaskStatus.SUCCESS?"bg-emerald-500/15 text-emerald-400":"bg-amber-500/15 text-amber-400"),children:[$.status===j.AITaskStatus.FAILED?(0,t.jsx)(w.XCircle,{className:"h-3 w-3"}):$.status===j.AITaskStatus.SUCCESS?(0,t.jsx)(n.CheckCircle2,{className:"h-3 w-3"}):(0,t.jsx)(u.Loader2,{className:"h-3 w-3 animate-spin"}),ec]}),L[65]=ec,L[66]=$.status,L[67]=k):k=L[67],L[68]===Symbol.for("react.memo_cache_sentinel")?(C=(0,t.jsx)(l.Clock,{className:"h-3 w-3"}),L[68]=C):C=L[68];let F=R||"--";L[69]!==F?(T=(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[C,F]}),L[69]=F,L[70]=T):T=L[70],L[71]!==k||L[72]!==T?(S=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[k,T]}),L[71]=k,L[72]=T,L[73]=S):S=L[73],L[74]!==N||L[75]!==S?(p=(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 text-xs text-muted-foreground",children:[N,S]}),L[74]=N,L[75]=S,L[76]=p):p=L[76],h=(M||I)&&(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-start gap-3",children:[I&&(0,t.jsx)("div",{className:"flex items-center pr-1",children:(0,t.jsx)("div",{className:"flex items-center gap-2",children:_.map((e,r)=>{let s=[-8,-4,2,6,-6,4,8],a=s[r%s.length];return(0,t.jsx)("button",{type:"button",onClick:()=>W?.(e),className:(0,A.cn)("group relative h-24 w-16 flex-shrink-0 overflow-hidden rounded-xl border border-border/60 bg-card shadow-sm transition-transform duration-200 hover:scale-105","transform"),style:{"--tw-rotate":`${a}deg`},"aria-label":q("generator.common.preview"),children:(0,t.jsx)(et.LazyImage,{src:e,alt:`task-${$.id}-reference-${r}`,className:"h-full w-full object-cover",wrapperClassName:"h-full w-full"})},`${$.id}-ref-${r}`)})})}),M&&(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2",children:[(0,t.jsx)("p",{className:"min-w-0 flex-1 text-sm text-foreground/90 line-clamp-2",children:M}),(0,t.jsxs)(U.Tooltip,{children:[(0,t.jsx)(U.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",onClick:O,className:"flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-md border border-border/60 text-muted-foreground transition hover:bg-muted/40 hover:text-foreground","aria-label":es("generator.detail.copy_prompt"),children:(0,t.jsx)(g.Copy,{className:"h-3.5 w-3.5"})})}),(0,t.jsx)(U.TooltipContent,{side:"top",children:es("generator.detail.copy_prompt")})]})]})]}),L[11]=ee,L[12]=er,L[13]=z,L[14]=ea,L[15]=el,L[16]=W,L[17]=eu,L[18]=em,L[19]=ec,L[20]=es,L[21]=q,L[22]=$.createdAt,L[23]=$.effectId,L[24]=$.effectLabel,L[25]=$.id,L[26]=$.options,L[27]=$.outputs,L[28]=$.prompt,L[29]=$.status,L[30]=o,L[31]=d,L[32]=m,L[33]=p,L[34]=h}else o=L[30],d=L[31],m=L[32],p=L[33],h=L[34];return L[77]!==q?(b=q("generator.common.preview"),L[77]=q,L[78]=b):b=L[78],L[79]!==H||L[80]!==J||L[81]!==W||L[82]!==Y||L[83]!==b||L[84]!==V||L[85]!==G||L[86]!==q||L[87]!==B||L[88]!==$?(N=(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(en,{task:$,tGenerator:G,tImage:q,tVideo:B,tCommon:V,onImagePreview:W,onImageContinueEdit:H,onImageToVideo:Y,onImageDownload:J,previewLabel:b})}),L[79]=H,L[80]=J,L[81]=W,L[82]=Y,L[83]=b,L[84]=V,L[85]=G,L[86]=q,L[87]=B,L[88]=$,L[89]=N):N=L[89],L[90]!==K||L[91]!==$?(k=()=>K?.($),L[90]=K,L[91]=$,L[92]=k):k=L[92],L[93]===Symbol.for("react.memo_cache_sentinel")?(C=(0,t.jsx)(x.Pencil,{className:"h-3.5 w-3.5"}),L[93]=C):C=L[93],L[94]!==V?(T=V("pages.aiMedia.actions.edit"),L[94]=V,L[95]=T):T=L[95],L[96]!==k||L[97]!==T?(S=(0,t.jsxs)("button",{type:"button",onClick:k,className:"inline-flex items-center gap-1.5 rounded-lg border border-border/60 px-3 py-1.5 text-xs text-muted-foreground transition hover:text-foreground",children:[C,T]}),L[96]=k,L[97]=T,L[98]=S):S=L[98],L[99]!==Q||L[100]!==$?(_=()=>Q?.($),L[99]=Q,L[100]=$,L[101]=_):_=L[101],L[102]===Symbol.for("react.memo_cache_sentinel")?(I=(0,t.jsx)(f.RotateCcw,{className:"h-3.5 w-3.5"}),L[102]=I):I=L[102],L[103]!==V?(M=V("pages.aiMedia.actions.regenerate"),L[103]=V,L[104]=M):M=L[104],L[105]!==Z||L[106]!==_||L[107]!==M?(D=(0,t.jsxs)("button",{type:"button",onClick:_,className:"inline-flex items-center gap-1.5 rounded-lg border border-border/60 px-3 py-1.5 text-xs text-muted-foreground transition hover:text-foreground disabled:cursor-not-allowed disabled:opacity-60",disabled:Z,children:[I,M]}),L[105]=Z,L[106]=_,L[107]=M,L[108]=D):D=L[108],L[109]!==Z||L[110]!==X||L[111]!==V||L[112]!==es||L[113]!==$?(E=X&&(0,t.jsx)(ed,{task:$,tHistory:es,tCommon:V,onDeleteTask:X,isDeletingDisabled:Z}
1),L[109]=Z,L[110]=X,L[111]=V,L[112]=es,L[113]=$,L[114]=E):E=L[114],L[115]!==S||L[116]!==D||L[117]!==E?(R=(0,t.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[S,D,E]}),L[115]=S,L[116]=D,L[117]=E,L[118]=R):R=L[118],L[119]!==N||L[120]!==R||L[121]!==o||L[122]!==d||L[123]!==m||L[124]!==p||L[125]!==h?(O=(0,t.jsxs)("div",{className:o,style:d,children:[m,p,h,N,R]}),L[119]=N,L[120]=R,L[121]=o,L[122]=d,L[123]=m,L[124]=p,L[125]=h,L[126]=O):O=L[126],O}function eu({locale:e,imageModels:r,videoModels:n,imageToImageModels:l,imageToVideoModels:c}){let p=(0,o.useTranslations)("app.common"),g=(0,o.useTranslations)("ai.image.generator"),h=(0,o.useTranslations)("ai.image"),x=(0,o.useTranslations)("ai.video"),f=(0,i.useLocale)(),{user:b,isCheckSign:v,setIsShowSignModal:w,fetchUserCredits:k}=(0,$.useAppContext)(),C=(0,er.useTaskManagement)({t:g}),[T,S]=(0,s.useState)([]),[_,I]=(0,s.useState)(1),[M,D]=(0,s.useState)(0),[E,R]=(0,s.useState)(!1),O=(0,s.useRef)(!1),F=(0,s.useRef)(null),U=(0,s.useRef)(null),q=(0,s.useRef)(null),B=E&&0===T.length&&0===C.tasks.length,V=(0,s.useRef)(null),W=(0,s.useRef)(null),[H,Y]=(0,s.useState)({left:0,width:0}
1),J=(0,s.useRef)(240),[K,Q]=(0,s.useState)(()=>J.current),[X,Z]=(0,s.useState)(!1),et=(0,s.useRef)(!1),es=(0,s.useRef)(0),ei=(0,s.useRef)(!1),[en,el]=(0,s.useState)(null),[ed,eu]=(0,s.useState)(null),em=(0,s.useRef)(0),ep=(0,s.useRef)(!1),[eg,eh]=(0,s.useState)(!1),[ex,ef]=(0,s.useState)(!1),[eb,ev]=(0,s.useState)({costCredits:0,remainingCredits:0,mediaType:j.AIMediaType.IMAGE}),ew=(0,s.useCallback)((e="smooth")=>{let t=()=>{let e=document.documentElement,t=document.body;return Math.max(Math.max(e?.scrollHeight||0,t?.scrollHeight||0)-window.innerHeight,0)},r=e=>{let r=window.scrollY||0,s=t();if(e<=0||4>Math.abs(s-r))return void window.scrollTo({top:s,behavior:"auto"});let a=performance.now(),i=t=>{let o=Math.min((t-a)/e,1),n=r+(s-r)*(1-Math.pow(1-o,3));window.scrollTo({top:n,behavior:"auto"}),o<1&&requestAnimationFrame(i)};requestAnimationFrame(i)};requestAnimationFrame(()=>{"auto"===e?window.scrollTo({top:t(),behavior:"auto"}):(r(220),window.setTimeout(()=>r(140),140))})},[]),ey=(0,s.useCallback)(e=>{e!==et.current&&(et.current=e,Z(e))},[]),ej=(0,s.useCallback)((e,t,r)=>{ev({mediaType:e,costCredits:t,remainingCredits:r}),ef(!0)},[]);(0,s.useEffect)(()=>{et.current=X},[X]),(0,s.useEffect)(()=>{eh(!0)},[]),(0,s.useEffect)(()=>{if(!V.current)return;let e=V.current.closest('[data-slot="sidebar-inset"]');if(!e)return;let t=()=>{let t=e.getBoundingClientRect();Y({left:t.left,width:t.width})};t();let r=new ResizeObserver(t);return r.observe(e),window.addEventListener("resize",t),()=>{r.disconnect(),window.removeEventListener("resize",t)}},[]),(0,s.useEffect)(()=>{if(!W.current)return;let e=()=>{if(!W.current)return;let e=W.current.getBoundingClientRect().height;U.current&&cancelAnimationFrame(U.current),U.current=requestAnimationFrame(()=>{(e=>{let t=Math.max(200,Math.ceil(e+24));if(!(8>Math.abs(t-J.current))){if(J.current=t,O.current){F.current=t;return}Q(t)}})(e)})};e();let t=new ResizeObserver(e);return t.observe(W.current),window.addEventListener("resize",e),()=>{t.disconnect(),window.removeEventListener("resize",e),U.current&&cancelAnimationFrame(U.current)}},[]),(0,s.useEffect)(()=>{let e=!1,t=()=>{O.current=!0,q.current&&window.clearTimeout(q.current),q.current=window.setTimeout(()=>{O.current=!1,null!==F.current&&(Q(F.current),F.current=null)},180),e||(e=!0,requestAnimationFrame(()=>{if(e=!1,Date.now()<es.current)return;let t=window.scrollY||0,r=document.documentElement.scrollHeight-(window.innerHeight+t);if(et.current){r<=120&&ey(!1);return}r>=200&&ey(!0)}))};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t),q.current&&window.clearTimeout(q.current)}},[ey]);let eN=(0,s.useMemo)(()=>[...r,...n,...l,...c],[r,n,l,c]),ek=(0,s.useMemo)(()=>{let e=new Map;return eN.forEach(t=>{e.set(t.id,t),t.idForProvider&&e.set(t.idForProvider,t)}),e},[eN]),eC=(0,s.useMemo)(()=>{let e=new Map;return eN.forEach(t=>{e.set(t.id,t.label),t.idForProvider&&e.set(t.idForProvider,t.label)}),e},[eN]),eT=(0,s.useMemo)(()=>({"text-to-image":r,"image-to-image":l,"text-to-video":n,"image-to-video":c}),[r,l,c,n]),eS=(0,s.useMemo)(()=>{let e=new Map;return T.forEach(t=>e.set(t.id,t)),C.tasks.forEach(t=>e.set(t.id,t)),Array.from(e.values()).sort((e,t)=>new Date(e.createdAt).getTime()-new Date(t.createdAt).getTime())},[T,C.tasks]),e_=(0,s.useMemo)(()=>{let e=new Map;eS.forEach(t=>{let r=ea(t.createdAt);r&&(e.has(r)||e.set(r,[]),e.get(r).push(t))});let t=eg?ea(new Date().toISOString()):"",r=eg?new Date:null;r&&r.setDate(r.getDate()-1);let s=r?ea(r.toISOString()):"";return Array.from(e.entries()).map(([e,r])=>{let a=e;if(t&&e===t)a=p("pages.aiMedia.date.today");else if(s&&e===s)a=p("pages.aiMedia.date.yesterday");else if(eg){let t=function(e){let[t,r,s]=e.split("-").map(e=>Number(e));return t&&r&&s?new Date(t,r-1,s):null}(e);a=t?new Intl.DateTimeFormat(f,{month:"long",day:"numeric"}).format(t):e}return{key:e,label:a,tasks:r}}).sort((e,t)=>e.key.localeCompare(t.key))},[f,eg,eS,p]);(0,s.useEffect)(()=>{ei.current||v||B||!b?.id||0!==e_.length&&(ei.current=!0,requestAnimationFrame(()=>{window.scrollTo({top:document.documentElement.scrollHeight,behavior:"smooth"})}))},[e_.length,v,B,b?.id]);let eI=(0,s.useCallback)(async(t,r)=>{if(b?.id){R(!0);try{let s=await fetch("/api/ai/history",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({page:t,limit:10,locale:e})});if(!s.ok)throw Error(`request failed with status: ${s.status}`);let{code:a,message:i,data:o}=await s.json();if(0!==a)throw Error(i||"Query history failed");let n=Array.isArray(o?.list)?o.list:[],l="number"==typeof o?.total?o.total:0,d=n.map(P.mapBackendTaskToCard);S(e=>{if(!r)return d;let t=new Map(e.map(e=>[e.id,e]));
1return d.forEach(e=>t.set(e.id,e)),Array.from(t.values())}),D(l),I(t)}catch(e){y.toast.error(g("errors.query_history_failed",{message:e.message}))}finally{R(!1)}}},[e,g,b?.id]);(0,s.useEffect)(()=>{if(!b?.id){S([]),D(0),I(1);return}eI(1,!1)},[eI,b?.id]);let eM=(0,s.useCallback)((e,t)=>{if(!e)return"";let r=e;if("image-to-image"===t&&(r=e.endsWith("-edit")||e.endsWith("-image-to-image")?e:e.includes("text-to-image")?e.replace("text-to-image","image-to-image"):`${e}-edit`),"image-to-video"===t&&(e.includes("image-to-video")?r=e:e.includes("text-to-video")&&(r=e.replace("text-to-video","image-to-video"))),ek.has(r))return r;let s=eT[t]||[];return s[0]?.id||e},[ek,eT]),eD=(0,s.useCallback)(async({model:e,resolvedModelId:t,scene:r,prompt:s,mediaType:a,requestOptions:i,outputs:o,durationSeconds:n,imageResolution:l})=>{let d=(0,P.calculateCreditsFromModelConfig)({model:e,mediaType:a,outputs:o,scene:r,durationSeconds:n,imageResolution:l,options:i})??0;C.setIsCreating(!0),C.setShowHistorySkeleton(!1);let c="undefined"!=typeof crypto&&"randomUUID"in crypto?`optimistic-${crypto.randomUUID()}`:`optimistic-${Date.now()}-${Math.random().toString(16).slice(2)}`,u=new Date().toISOString(),m={id:c,status:j.AITaskStatus.PENDING,mediaType:a,model:t,modelLabel:e.label,prompt:s,userPrompt:s,costCredits:d,outputs:a===j.AIMediaType.VIDEO?1:o??1,createdAt:u,urls:[],options:i,clientId:c,isOptimistic:!0};C.addTask(m);try{let e=await fetch("/api/ai/ai-generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mediaType:a,scene:r,model:t,prompt:s,options:i})});if(!e.ok)throw Error(`request failed with status: ${e.status}`);let{code:o,message:n,data:l}=await e.json();if(0!==o)throw Error(n||"Failed to create a task");let d=l?.id;if(!d)throw Error("Task id missing in response");C.setTasks(e=>e.map(e=>e.id!==c?e:{...e,id:d,status:l?.status||j.AITaskStatus.PENDING,isOptimistic:void 0}));try{await k()}catch(e){}}catch(t){let e=t?.message||"";if("string"==typeof e&&e.toLowerCase().includes("insufficient credits")){ej(a,d,b?.credits?.remainingCredits??0),C.setTasks(e=>e.filter(e=>e.id!==c));return}y.toast.error(g("errors.generation_failed",{message:t.message})),C.setTasks(e=>e.filter(e=>e.id!==c))}finally{C.setIsCreating(!1)}},[k,ej,g,C,b?.credits?.remainingCredits]),eE=(0,s.useCallback)(async e=>{if(!b?.id)return void w(!0);if(C.isCreating)return;ew("smooth");let t=(e.referenceImageUrls||[]).length>0,r="video"===e.generationType?t?"image-to-video":"text-to-video":t?"image-to-image":"text-to-image",s=eM(e.modelId,r),a=ek.get(s);if(!a)return void y.toast.error(g("errors.model_not_configured"));let i={...a.inputSpec?.optionDefaults||{}};e.aspectRatio&&(i.aspect_ratio=e.aspectRatio),"image"===e.generationType&&e.numOutputs&&(i.num_outputs=e.numOutputs),"image"===e.generationType&&e.imageResolution&&(i.image_resolution=e.imageResolution),"video"===e.generationType&&"number"==typeof e.durationSeconds&&(i.duration_seconds=e.durationSeconds),t&&(i.image_input=e.referenceImageUrls,(a.inputSpec?.requiredOptions||[]).forEach(t=>{L.IMAGE_INPUT_KEYS.includes(t)&&(i[t]=e.referenceImageUrls)}));let o="video"===e.generationType?j.AIMediaType.VIDEO:j.AIMediaType.IMAGE,n=(0,P.calculateCreditsFromModelConfig)({model:a,mediaType:o,outputs:"image"===e.generationType?e.numOutputs:void 0,scene:r,durationSeconds:e.durationSeconds,imageResolution:e.imageResolution,options:i})??0,l=b?.credits?.remainingCredits??0;l<n?ej(o,n,l):await eD({model:a,resolvedModelId:s,scene:r,prompt:e.prompt,mediaType:o,requestOptions:i,outputs:"image"===e.generationType?e.numOutputs:void 0,durationSeconds:e.durationSeconds,imageResolution:e.imageResolution})},[ek,ej,eM,w,b?.credits?.remainingCredits,g,eD,C,b?.id,ew]);(0,s.useEffect)(()=>{if(!eg||v||!b?.id||ep.current)return;let e=localStorage.getItem(L.PLAYGROUND_GENERATE_STORAGE_KEY);if(e){ep.current=!0,localStorage.removeItem(L.PLAYGROUND_GENERATE_STORAGE_KEY);try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return;let r={id:em.current+=1,prompt:t.prompt,modelId:t.modelId,aspectRatio:t.aspectRatio,imageResolution:t.imageResolution,numOutputs:t.numOutputs,generationType:t.generationType,durationSeconds:t.durationSeconds,referenceImageUrls:t.referenceImageUrls};eu(r),eE(t)}catch(e){}}},[eE,v,eg,b?.id]);let eR=(0,s.useCallback)(e=>{if(!e)return;let t=ek.get(e.model);
1if(!t)return void y.toast.error(g("errors.model_not_configured"));let s=e.options??{},a=eo(s),i=t.id,o=i;e.mediaType===j.AIMediaType.IMAGE&&(o.includes("image-to-image")?o=o.replace("image-to-image","text-to-image"):o.endsWith("-edit")&&(o=o.replace(/-edit$/,""))),e.mediaType===j.AIMediaType.VIDEO&&o.includes("image-to-video")&&(o=o.replace("image-to-video","text-to-video"));let l=e.mediaType===j.AIMediaType.VIDEO?n:r;l.some(e=>e.id===o)||(o=l[0]?.id??i);let d=ek.get(o)??t,c=d.defaults?.aspectRatio??d.aspectRatios?.[0]?.value??"",u=d.defaults?.imageResolution??d.imageResolutions?.[0]?.value,m=d.defaults?.numOutputs??d.outputCounts?.[0]??1,p=d.defaultDurationSeconds??d.videoDurations?.[0],h={id:em.current+=1,prompt:e.userPrompt??e.prompt??"",modelId:o,aspectRatio:"string"==typeof s.aspect_ratio?s.aspect_ratio:c,imageResolution:"string"==typeof s.image_resolution?s.image_resolution:u,numOutputs:"number"==typeof s.num_outputs?s.num_outputs:e.outputs||m,generationType:e.mediaType===j.AIMediaType.VIDEO?"video":"image",durationSeconds:"number"==typeof s.duration_seconds?s.duration_seconds:"number"==typeof s.duration?s.duration:p,referenceImageUrls:a};eu(h),es.current=Date.now()+1600,ey(!1),ew("smooth")},[r,ek,ew,ey,g,n]),eA=(0,s.useCallback)((e,t)=>{let s,a;if(!e)return;let i="video"===t?"image-to-video":"image-to-image",o=eT[i]??[],l="video"===t?n:r,d=o[0]??l[0];if(!d)return void y.toast.error(g("errors.model_not_configured"));let c=eM(d.id,i),u=ek.get(c)??d;if(!u)return void y.toast.error(g("errors.model_not_configured"));let m=(s=u.defaults?.aspectRatio??u.aspectRatios?.[0]?.value??"",a=u.defaults?.imageResolution??u.imageResolutions?.[0]?.value,{aspectRatio:s,imageResolution:a,numOutputs:u.defaults?.numOutputs??u.outputCounts?.[0]??1,durationSeconds:u.defaultDurationSeconds??u.videoDurations?.[0]}),p={id:em.current+=1,modelId:u.id,generationType:t,aspectRatio:m.aspectRatio,referenceImageUrls:[e]};"image"===t?(p.imageResolution=m.imageResolution,p.numOutputs=m.numOutputs):p.durationSeconds=m.durationSeconds,eu(p),es.current=Date.now()+1600,ey(!1),ew("smooth")},[r,ek,eM,eT,ew,ey,g,n]),eO=(0,s.useCallback)((e,t)=>{if(!e||!t)return;let r=`task-${t}`;try{let s=new URL(e).pathname.split("/").pop()||"";if(s.includes(".")){let e=s.split(".").pop();e&&(r=`task-${t}.${e}`)}}catch{}let s=new URLSearchParams({url:e,taskId:t}).toString(),a=document.createElement("a");a.href=`/api/proxy/file?${s}`,a.download=r,a.rel="noopener",document.body.appendChild(a),a.click(),a.remove()},[]),eL=(0,s.useCallback)(async e=>{if(!b?.id)return void w(!0);if(C.isCreating)return;let t=ek.get(e.model);if(!t)return void y.toast.error(g("errors.model_not_configured"));let r=e.options??{},s=eo(r).length>0,a=e.mediaType===j.AIMediaType.VIDEO?s?"image-to-video":"text-to-video":s?"image-to-image":"text-to-image",i={...t.inputSpec?.optionDefaults||{},...r};e.mediaType===j.AIMediaType.VIDEO&&delete i.num_outputs,e.mediaType!==j.AIMediaType.VIDEO&&"number"!=typeof i.num_outputs&&e.outputs&&(i.num_outputs=e.outputs);let o=e.mediaType===j.AIMediaType.VIDEO?void 0:"number"==typeof i.num_outputs?i.num_outputs:e.outputs,n="number"==typeof i.duration_seconds?i.duration_seconds:void 0,l="string"==typeof i.image_resolution?i.image_resolution:void 0,d=(0,P.calculateCreditsFromModelConfig)({model:t,mediaType:e.mediaType,outputs:o,scene:a,durationSeconds:n,imageResolution:l,options:i})??("number"==typeof e.costCredits?e.costCredits:0),c=b?.credits?.remainingCredits??0;if(c<d)return void ej(e.mediaType,d,c);let u=e.userPrompt??e.prompt??"";ew("smooth"),await eD({model:t,resolvedModelId:t.id,scene:a,prompt:u,mediaType:e.mediaType,requestOptions:i,outputs:o,durationSeconds:n,imageResolution:l})},[ek,ej,ew,w,eD,C.isCreating,g,b?.credits?.remainingCredits,b?.id]),eP=(0,s.useCallback)(async(e,t)=>{let r=await fetch("/api/ai/history/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({taskId:e})}),s=await r.json().catch(()=>null);if(!r.ok||s?.code!==0)throw Error(s?.message||t("generator.history.deleteError"));S(t=>{let r=t.filter(t=>t.id!==e);return r.length!==t.length&&D(e=>Math.max(0,e-1)),r}),C.setTasks(t=>t.filter(t=>t.id!==e)),y.toast.success(t("generator.history.deleteSuccess"))},[C]),e$=eb.mediaType===j.AIMediaType.VIDEO?x:h,eF=(e,t)=>e$(`generator.${e}`,t),eU=eF((0,s.useMemo)(()=>["active","trialing","pending_cancel"].includes(b?.subscriptionStatus||b?.currentSubscription?.status),[b])?"buy_credits":"upgrade_now");return(0,t.jsxs)("div",{ref:V,className:"relative mx-auto flex w-full max-w-6xl flex-1 flex-col",style:{paddingBottom:K},children:[!eg||v?(0,t.jsxs)("div",{className:"flex items-center gap-2 rounded-xl border border-border/40 bg-card/50 p-6 text-sm text-muted-foreground",children:[(0,t.jsx)(u.Loader2,{className:"h-4 w-4 animate-spin"}),p("pages.aiMedia.loading")]}):b?.id?(0,t.jsxs)("div",{className:"space-y-6",children:[10*_<M&&(0,t.jsx)("div",{className:"flex items-center justify-between",children:(0,t.jsx)("button",{type:"button",disabled:E,onClick:()=>{E||eI(_+1,!0)},className:"rounded-full border border-border/60 px-4 py-2 text-xs text-muted-foreground transition hover:bg-muted/40 disabled:opacity-50",children:E?p("pages.aiMedia.loading"):p("pages.aiMedia.loadMore")})}),B?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"h-5 w-24 rounded-full bg-muted/50"}),(0,t.jsx)("div",{className:"h-64 w-full animate-pulse rounded-2xl border border-border/40 bg-muted/30"})]}):0!==e_.length||C.showHistorySkeleton?(0,t.jsxs)("div",{className:"space-y-10",children:[e_.map(e=>(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"text-lg font-semibold text-foreground
1/80",children:e.label}),(0,t.jsx)("div",{className:"space-y-4",children:e.tasks.map(e=>(0,t.jsx)(ec,{task:e,modelLabelMap:eC,locale:f,tGenerator:g,tImage:h,tVideo:x,tCommon:p,onImagePreview:e=>el(e),onImageContinueEdit:e=>eA(e,"image"),onImageToVideo:e=>eA(e,"video"),onImageDownload:eO,onApplyTask:eR,onRegenerateTask:eL,onDeleteTask:eP,isCreating:C.isCreating,isHydrated:eg},e.clientId??e.id))})]},e.key)),C.showHistorySkeleton&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)("div",{className:"h-5 w-20 rounded-full bg-muted/50"}),(0,t.jsx)("div",{className:"h-64 w-full animate-pulse rounded-2xl border border-border/40 bg-muted/30"})]})]}):(0,t.jsxs)("div",{className:"rounded-xl border border-dashed border-border/50 bg-card/40 p-10 text-center text-sm text-muted-foreground",children:[(0,t.jsx)("img",{src:"https://cdn.seedance2pro.org/empty.svg",alt:p("pages.aiMedia.empty"),className:"mx-auto mb-4 h-36 w-36 opacity-80"}),p("pages.aiMedia.empty")]})]}):(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center rounded-xl border border-dashed border-border/50 bg-card/40 p-10 text-center",children:[(0,t.jsx)("img",{src:"https://cdn.seedance2pro.org/empty.svg",alt:p("pages.aiMedia.empty"),className:"mb-4 h-64 w-64"}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:g("history.signInDescription")}),(0,t.jsx)("button",{type:"button",className:"mt-4 rounded-lg bg-primary px-4 py-2 text-sm font-semibold text-primary-foreground",onClick:()=>w(!0),children:g("history.signInButton")})]}),en&&eg&&(0,a.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-4",onClick:()=>el(null),children:(0,t.jsxs)("div",{className:"relative max-h-full max-w-full overflow-hidden rounded-xl bg-transparent shadow-2xl",children:[(0,t.jsx)("button",{type:"button",onClick:()=>
1el(null),className:"absolute right-4 top-4 rounded-full bg-black/50 p-2 text-white transition-colors hover:bg-black/70","aria-label":h("generator.common.preview"),children:(0,t.jsx)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M18 6L6 18M6 6l12 12"})})}),(0,t.jsx)("img",{src:en,alt:h("generator.common.preview"),className:"max-h-[90vh] max-w-[90vw] object-contain",onClick:e=>e.stopPropagation()})]})}),document.body),(0,t.jsx)(z.Dialog,{open:ex,onOpenChange:ef,children:(0,t.jsxs)(z.DialogContent,{className:"max-w-md",children:[(0,t.jsxs)(z.DialogHeader,{children:[(0,t.jsx)(z.DialogTitle,{children:eF("insufficient_credits.title")}),(0,t.jsx)(z.DialogDescription,{children:eF("insufficient_credits.description",{cost:eb.costCredits,remaining:eb.remainingCredits})})]}),(0,t.jsx)("div",{className:"flex items-center gap-2 rounded-lg border border-dashed border-amber-300/80 bg-primary/5 px-4 py-3 text-sm font-semibold text-primary",children:(0,t.jsx)("span",{children:eF("insufficient_credits.offer")})}),(0,t.jsx)("div",{className:"rounded-lg border bg-muted/60 px-4 py-3 text-sm",children:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"font-medium",children:eF("credits_cost",{credits:eb.costCredits})}),(0,t.jsx)("span",{className:"text-muted-foreground",children:eF("credits_remaining",{credits:eb.remainingCredits})})]})}),(0,t.jsxs)(z.DialogFooter,{className:"flex-col gap-3 sm:flex-row",children:[(0,t.jsx)(G.Button,{variant:"outline",className:"w-full sm:flex-1",onClick:()=>{ef(!1)},children:eF("decline_offer")}),(0,t.jsx)(N.Link,{href:"/app/pricing",className:"w-full sm:flex-1",children:(0,t.jsxs)(G.Button,{className:"w-full",onClick:()=>{ef(!1)},children:[(0,t.jsx)(d.CreditCard,{className:"mr-2 h-4 w-4"}),eU]})})]})]})}),(0,t.jsx)("div",{className:"fixed bottom-4 z-30 px-4",style:{left:H.left||0,width:H.width||"100%"},ref:W,children:(0,t.jsxs)("div",{className:(0,A.cn)("relative mx-auto w-full transition-[max-width] duration-300 ease-out",X?"max-w-3xl":"max-w-6xl"),children:[X&&(0,t.jsxs)("button",{type:"button",onClick:()=>ew("smooth"),className:"absolute -top-11 right-2 inline-flex items-center gap-2 rounded-lg border border-border/60 bg-background/80 px-3 py-1.5 text-xs text-muted-foreground shadow-sm backdrop-blur transition hover:text-foreground","aria-label":p("pages.aiMedia.backToBottom"),children:[p("pages.aiMedia.backToBottom"),(0,t.jsx)(m.default,{className:"h-3.5 w-3.5"})]}),(0,t.jsx)("div",{className:(0,A.cn)("rounded-3xl border border-border/50 bg-background/80 p-1 shadow-lg backdrop-blur",X?"cursor-pointer shadow-md":""),onClick:()=>{X&&(es.current=Date.now()+1600,ey(!1))},children:(0,t.jsx)(ee,{className:"border-transparent bg-transparent shadow-none",mode:"text-to-image",imageModels:r,videoModels:n,applyPayload:ed,onGenerate:eE,compact:X,showPromptPresets:!1})})]})})]})}e.s(["AiMediaClient",()=>eu],208981)}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.