1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7995],{2340:(e,r,t)=>{"use strict";t.d(r,{Footer:()=>l});var s=t(5155),a=t(5239),n=t(8955),o=t(4663);function l(){let e=(0,n.c)("footer"),r=new Date().getFullYear(),t=[{title:e("about"),links:[{label:e("features_link"),href:"/#features"},{label:e("pricing"),href:"/pricing"},{label:e("pro_prompts"),href:"/nano-banana-pro-prompts"},{label:e("blog"),href:"/blog"}]},{title:e("tools"),links:[{label:e("text_to_image"),href:"/image-generator"},{label:e("image_to_image"),href:"/image-generator?scene=image-to-image"},{label:e("pro_prompts"),href:"/nano-banana-pro-prompts"}]},{title:e("legal"),links:[{label:e("privacy"),href:"/privacy"},{label:e("terms"),href:"/terms"}]}];return(0,s.jsx)("footer",{className:"border-t border-border bg-card",children:(0,s.jsxs)("div",{className:"container py-12",children:[(0,s.jsxs)("div",{className:"grid gap-10 md:grid-cols-4",children:[(0,s.jsxs)("div",{className:"md:col-span-1",children:[(0,s.jsxs)(o.N_,{href:"/",className:"mb-3 flex items-center gap-2",children:[(0,s.jsx)(a.default,{src:"/logo.webp",alt:"Nano Banana 2",width:28,height:28,className:"size-7 rounded-md object-contain"}),(0,s.jsxs)("span",{className:"font-bold text-primary",children:["Nano Banana ",(0,s.jsx)("span",{children:"2"})]})]}),(0,s.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:e("tagline")})]}),t.map(e=>(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"mb-4 text-sm font-semibold",children:e.title}),(0,s.jsx)("ul",{className:"space-y-2.5",children:e.links.map(e=>(0,s.jsx)("li",{children:(0,s.jsx)(o.N_,{href:e.href,className:"text-sm text-muted-foreground hover:text-foreground transition-colors",children:e.label})},e.href))})]},e.title))]}),(0,s.jsxs)("div",{className:"mt-10 border-t border-border pt-6",children:[(0,s.jsx)("p",{className:"mb-2 text-xs font-semibold text-muted-foreground",children:e("friends")}),(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-2",children:[(0,s.jsx)("a",{title:"All The Best AI Tools",href:"https://allinai.tools",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"All in AI Tools"}),(0,s.jsx)("a",{title:"AIå
¥å£",href:"https://www.airukou.cn/",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"AIå
¥å£"}),(0,s.jsx)("a",{href:"https://www.startupinspire.com",target:"_blank",rel:"noopener noreferrer",children:(0,s.jsx)("img",{src:"https://www.startupinspire.com/images/badge_1.svg",alt:"Featured on Startup Inspire",className:"h-6 w-auto"})}),(0,s.jsx)("a",{href:"https://aiagentsdirectory.com/agent/nano-banana-2",target:"_blank",rel:"noopener noreferrer",title:"Discover Nano Banana 2 on AI Agents Directory",children:(0,s.jsx)("img",{src:"https://aiagentsdirectory.com/featured-badge.svg?v=2024",alt:"Nano Banana 2 - Featured on AI Agents Directory",width:200,height:50,className:"h-6 w-auto"})})]})]}),(0,s.jsxs)("div",{className:"mt-6 flex flex-col items-center justify-between gap-3 border-t border-border pt-6 sm:flex-row",children:[(0,s.jsxs)("p",{className:"text-xs text-muted-foreground",children:["\xa9 ",r," Nano Banana 2. ",e("rights")]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsx)(o.N_,{href:"/privacy",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:e("privacy")}),(0,s.jsx)(o.N_,{href:"/terms",className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:e("terms")})]})]})]})})}},3809:(e,r,t)=>{"use strict";t.d(r,{default:()=>n});var s=t(6809),a=t(5155);function n(e){let{locale:r,...t}=e;if(!r)throw Error(void 0);return(0,a.jsx)(s.Dk,{locale:r,...t})}},3990:(e,r,t)=>{"use strict";t.d(r,{Header:()=>h});var s=t(5155),a=t(7909),n=t(5239),o=t(2115),l=t(8955),i=t(4100),c=t(4663),d=t(6166),m=t(3998),x=t(4269);let u=(0,a.default)(()=>t.e(2013).then(t.bind(t,2013)).then(e=>e.LocaleSwitcher),{loadableGenerated:{webpack:()=>[2013]}});function h(){let e=(0,l.c)("nav"),r=(0,l.c)("common"),{user:t,isPending:a,signOut:h}=(0,d.J)(),p=(0,c.rd)(),f=(0,c.a8)(),[g,b]=(0,o.useState)(!1),[j,v]=(0,o.useState)(!1),[N,y]=(0,o.useState)(!1),[w,k]=(0,o.useState)(!1),[_,z]=(0,o.useState)(!1);(0,o.useEffect)(()=>{let e=()=>b(window.scrollY>10);return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]),(0,o.useEffect)(()=>{v(!1)},[f]);let C=[{href:"/pricing",label:e("pricing")},{href:"/nano-banana-pro-prompts",label:e("prompts")}
1],I=[{href:"/image-generator",label:e("nano_banana_2"),icon:i.hf,highlight:!1},{href:"/gpt-image-2",label:e("gpt_image_2"),icon:i.$B,highlight:!1}],E=[{href:"/background-remover",label:e("background_remover"),icon:i.tH},{href:"/uncrop",label:e("uncrop"),icon:i.Ij},{href:"/photo-restore",label:e("photo_restore"),icon:i.Zj},{href:"/ai-headshot-generator",label:e("ai_headshot"),icon:i.PE}],A=async()=>{await h(),y(!1),p.refresh()};return(0,s.jsxs)("header",{className:(0,x.cn)("sticky top-0 z-50 w-full transition-all duration-300",g?"border-b border-border/50 bg-background/90 backdrop-blur-md shadow-sm":"bg-background/90"),children:[(0,s.jsxs)("div",{className:"container flex h-16 items-center justify-between gap-4",children:[(0,s.jsxs)(c.N_,{href:"/",className:"flex shrink-0 items-center gap-2 hover:opacity-90 transition-opacity",children:[(0,s.jsx)(n.default,{src:"/logo.webp",alt:"Nano Banana 2",width:32,height:32,className:"size-8 rounded-md object-contain",priority:!0}),(0,s.jsxs)("span",{className:"hidden text-lg font-bold sm:block text-primary",children:["Nano Banana ",(0,s.jsx)("span",{children:"2"})]})]}),(0,s.jsxs)("nav",{className:"hidden items-center gap-1 md:flex",children:[(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsxs)("button",{onClick:()=>{k(!w),z(!1)},className:(0,x.cn)("flex items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors",I.some(e=>f===e.href)?"text-foreground bg-accent":"text-muted-foreground hover:text-foreground hover:bg-accent/60"),children:[(0,s.jsx)(i.LB,{className:"size-3.5"}),e("ai_models"),(0,s.jsx)(i.rI,{className:(0,x.cn)("size-3.5 opacity-60 transition-transform",w&&"rotate-180")})]}),w&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>k(!1)}),(0,s.jsx)("div",{className:"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-xl border border-border bg-card p-1 shadow-xl",children:I.map(e=>{let{href:r,label:t,icon:a,highlight:n}=e;return(0,s.jsxs)(c.N_,{href:r,onClick:()=>k(!1),className:(0,x.cn)("flex items-center gap-2.5 rounded-lg px-3 py-2 text-sm transition-colors hover:bg-accent",f===r?"text-primary":"text-foreground"),children:[(0,s.jsx)(a,{className:(0,x.cn)("size-4",n?"text-primary":"text-muted-foreground")}),t]},r)})})]})]}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsxs)("button",{onClick:()=>{z(!_),k(!1)},className:(0,x.cn)("flex items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors",E.some(e=>f===e.href)?"text-foreground bg-accent":"text-muted-foreground hover:text-foreground hover:bg-accent/60"),children:[(0,s.jsx)(i.zt,{className:"size-3.5"}),e("ai_tools"),(0,s.jsx)(i.rI,{className:(0,x.cn)("size-3.5 opacity-60 transition-transform",_&&"rotate-180")})]}),_&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>z(!1)}),(0,s.jsx)("div",{className:"absolute left-0 top-full z-50 mt-1 min-w-48 rounded-xl border border-border bg-card p-1 shadow-xl",children:E.map(e=>{let{href:r,label:t,icon:a}=e;return(0,s.jsxs)(c.N_,{href:r,onClick:()=>z(!1),className:(0,x.cn)("flex items-center gap-2.5 rounded-lg px-3 py-2 text-sm transition-colors hover:bg-accent",f===r?"text-primary":"text-foreground"),children:[(0,s.jsx)(a,{className:"size-4 text-muted-foreground"}),t]},r)})})]})]}),C.map(e=>{let r=f===e.href;return(0,s.jsx)(c.N_,{href:e.href,className:(0,x.cn)("flex items-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium transition-colors",r?"text-foreground bg-accent":"text-muted-foreground hover:text-foreground hover:bg-accent/60"),children:e.label},e.href)})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(u,{}),a?(0,s.jsx)(i.x3,{className:"size-4 animate-spin text-muted-foreground"}):t?(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsxs)("button",{onClick:()=>y(!N),className:"flex items-center gap-1.5 rounded-full border border-border/60 bg-card px-2 py-1.5 hover:border-border transition-colors",children:[t.avatar_url?(0,s.jsx)("img",{src:t.avatar_url,alt:t.name||"",className:"size-6 rounded-full object-cover"}):(0,s.jsx)("div",{className:"flex size-6 items-center justify-center rounded-full bg-primary text-xs font-bold text-primary-foreground",children:(t.name||t.email||"U").charAt(0).toUpperCase()}),(0,s.jsx)(i.rI,{className:(0,x.cn)("size-3 text-muted-foreground transition-transform",N&&"rotate-180")}
1)]}),N&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>y(!1)}),(0,s.jsxs)("div",{className:"absolute right-0 top-11 z-50 min-w-52 rounded-xl border border-border bg-card p-1 shadow-xl",children:[(0,s.jsxs)("div",{className:"border-b border-border px-3 py-2.5",children:[(0,s.jsx)("p",{className:"text-sm font-semibold",children:t.name||"User"}),(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:t.email}),t.is_pro&&(0,s.jsxs)("span",{className:"mt-1 inline-flex items-center gap-1 rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-bold text-primary",children:[(0,s.jsx)(i.hf,{className:"size-2.5"})," PRO"]})]}),(0,s.jsxs)("div",{className:"p-1",children:[(0,s.jsxs)(c.N_,{href:"/settings/billing",className:"flex items-center gap-2 rounded-lg px-3 py-2 text-sm hover:bg-accent transition-colors",onClick:()=>y(!1),children:[(0,s.jsx)(i.Ni,{className:"size-4 text-muted-foreground"}),(0,s.jsx)("span",{children:"Settings & Billing"})]}),(0,s.jsxs)("button",{onClick:A,className:"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm hover:bg-accent transition-colors text-primary/60 hover:text-primary",children:[(0,s.jsx)(i.Oh,{className:"size-4"}),(0,s.jsx)("span",{children:r("sign_out")})]})]})]})]})]}):(0,s.jsx)("div",{className:"flex items-center gap-2",children:(0,s.jsx)(m.$,{variant:"ghost",size:"sm",className:"hidden sm:flex",onClick:()=>{var e,r;return null==(e=(r=window).__triggerGoogleSignIn)?void 0:e.call(r)},children:r("sign_in")})}),(0,s.jsx)("button",{className:"rounded-lg p-2 hover:bg-accent transition-colors md:hidden",onClick:()=>v(!j),"aria-label":"Toggle menu",children:j?(0,s.jsx)(i.MR,{className:"size-5"}):(0,s.jsx)(i.dd,{className:"size-5"})})]})]}),j&&(0,s.jsx)("div",{className:"border-t border-border bg-background/95 backdrop-blur-md md:hidden",children:(0,s.jsxs)("nav",{className:"container flex flex-col gap-1 py-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"flex items-center gap-2 px-4 py-2 text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,s.jsx)(i.LB,{className:"size-3"}),e("ai_models")]}),I.map(e=>{let{href:r,label:t,icon:a,highlight:n}=e;return(0,s.jsxs)(c.N_,{href:r,className:"flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-medium hover:bg-accent transition-colors pl-8",children:[(0,s.jsx)(a,{className:(0,x.cn)("size-4",n?"text-primary":"text-muted-foreground")}),t]},r)})]}),(0,s.jsxs)("div",{className:"border-t border-border/50 pt-1",children:[(0,s.jsxs)("p",{className:"px-4 py-2 text-xs font-semibold text-muted-foreground uppercase tracking-wider",children:[(0,s.jsx)(i.zt,{className:"size-3"}),e("ai_tools")]}),E.map(e=>{let{href:r,label:t,icon:a}=e;return(0,s.jsxs)(c.N_,{href:r,className:"flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-medium hover:bg-accent transition-colors pl-8",children:[(0,s.jsx)(a,{className:"size-4 text-muted-foreground"}),t]},r)})]}),(0,s.jsx)("div",{className:"border-t border-border/50 pt-1",children:C.map(e=>(0,s.jsx)(c.N_,{href:e.href,className:"flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-medium hover:bg-accent transition-colors",children:e.label},e.href))}),!t&&(0,s.jsx)("button",{type:"button",className:"mt-2 rounded-xl border border-border px-4 py-3 text-center text-sm font-medium hover:bg-accent transition-colors w-full",onClick:()=>{var e,r;v(!1),null==(e=(r=window).__triggerGoogleSignIn)||e.call(r)},children:r("sign_in")})]})})]})}},3998:(e,r,t)=>{"use strict";t.d(r,{$:()=>i});var s=t(5155),a=t(2115),n=t(4269);let o={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-border bg-transparent hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},l={default:"h-10 px-4 py-2 text-sm",sm:"h-8 px-3 text-xs",lg:"h-11 px-8 text-base",icon:"h-10 w-10"},i=a.forwardRef((e,r)=>{let{className:t,variant:i="default",size:c="default",asChild:d,children:m,...x}=e,u=(0,n.cn)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50",o[i],l[c],t);
1if(d&&a.isValidElement(m)){var h;return a.cloneElement(m,{className:(0,n.cn)(u,null==(h=m.props)?void 0:h.className),ref:r,...x})}return(0,s.jsx)("button",{className:u,ref:r,...x,children:m})});i.displayName="Button"},4663:(e,r,t)=>{"use strict";t.d(r,{N_:()=>n,a8:()=>l,rd:()=>i});var s=t(5251),a=t(6541);let{Link:n,redirect:o,usePathname:l,useRouter:i,getPathname:c}=(0,s.A)(a.DT)},6166:(e,r,t)=>{"use strict";t.d(r,{J:()=>l,UserProvider:()=>o});var s=t(5155),a=t(2115);let n=(0,a.createContext)({user:null,isPending:!0,signOut:async()=>{},refreshUser:async()=>{}});function o(e){let{children:r}=e,[t,o]=(0,a.useState)(null),[l,i]=(0,a.useState)(!0),c=(0,a.useCallback)(async e=>{try{let r=await fetch("/api/auth/me",{signal:e,priority:"low"}),{user:t}=await r.json();o(null!=t?t:null)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;o(null)}finally{i(!1)}},[]);(0,a.useEffect)(()=>{let e,r,t=new AbortController,s=()=>{c(t.signal)};return"requestIdleCallback"in window?e=window.requestIdleCallback(s,{timeout:2e3}):r=setTimeout(s,0),()=>{t.abort(),void 0!==e&&window.cancelIdleCallback(e),void 0!==r&&clearTimeout(r)}},[c]);let d=async()=>{await fetch("/api/auth/logout",{method:"POST"}),o(null)};return(0,s.jsx)(n.Provider,{value:{user:t,isPending:l,signOut:d,refreshUser:()=>c()},children:r})}let l=()=>(0,a.useContext)(n)},6541:(e,r,t)=>{"use strict";t.d(r,{DT:()=>o,IB:()=>a,L$:()=>n});var s=t(4497);let a=["en","zh","ja","ko","de","es","fr","it","pt","ru","vi","kk"],n={en:"English",zh:"䏿",ja:"æ¥æ¬èª",ko:"íêµì´",de:"Deutsch",es:"Espa\xf1ol",fr:"Fran\xe7ais",it:"Italiano",pt:"Portugu\xeas",ru:"Ð ÑÑÑкий",vi:"Tiếng Viá»t",kk:"ÒазаÒÑа"},o=(0,s.A)({locales:a,defaultLocale:"en",localePrefix:"as-needed"})},9004:(e,r,t)=>{Promise.resolve().then(t.bind(t,3809)),Promise.resolve().then(t.bind(t,2340)),Promise.resolve().then(t.bind(t,399
10))}},e=>{e.O(0,[4909,6809,176,7119,4100,8441,1255,7358],()=>e(e.s=9004)),_N_E=e.O()}]);
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.