PageSourceSearch

https://nano-banana-generator-psi.vercel.app/_next/static/chunks/05p_9aet~5u8g.js

js nano-banana-generator-psi.vercel.app collected 2026-10-03 07:22:01 UTC 5,555 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,47426,e=>{"use strict";var t=e.i(43476),r=e.i(17255),s=e.i(71645),a=e.i(18566),i=e.i(11152),l=e.i(5766);function n(){let{data:e,status:n}=(0,r.useSession)(),o=(0,a.useRouter)(),d=(0,a.useSearchParams)(),c=d.get("callbackUrl")||d.get("next")||"/",[x,u]=(0,s.useState)("google"),[p,m]=(0,s.useState)(""),[h,g]=(0,s.useState)(!1);(0,s.useEffect)(()=>{"authenticated"===n&&o.push(c)},[n,o,c]);let y=async e=>{e.preventDefault();let t=p.trim();if(!t)return void l.default.error("Please enter a valid MuAPI key");if(t.length<5)return void l.default.error("API Key appears too short");g(!0);try{let e=await (0,r.signIn)("credentials",{apiKey:t,redirect:!1,callbackUrl:c});e?.error?l.default.error(e.error||"Failed to sign in with API key"):(l.default.success("Signed in with API Key successfully!"),o.push(c))}catch(e){console.error(e),l.default.error("An error occurred during API key authentication")}finally{g(!1)}};return(0,t.jsxs)("div",{className:"min-h-dvh flex items-center justify-center bg-bg-page px-6 text-primary-text select-none",children:[(0,t.jsx)(l.Toaster,{position:"top-right"}),(0,t.jsxs)("div",{className:"relative bg-bg-card border border-divider w-full max-w-md rounded-xl p-8 space-y-6 shadow-2xl animate-scale-up",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center text-center space-y-3",children:[(0,t.jsx)("div",{className:"w-14 h-14 rounded-full bg-primary/10 flex items-center justify-center text-2xl text-primary font-black shadow-md shadow-primary/15",children:"🍌"}),(0,t.jsx)("h2",{className:"text-2xl font-black uppercase tracking-tight",children:"Sign In to Nano Banana"}),(0,t.jsx)("p",{className:"text-xs font-semibold text-secondary-text leading-relaxed px-2",children:"Choose your preferred sign-in method: Google Account or custom MuAPI Key."})]}),(0,t.jsxs)("div",{className:"flex bg-bg-page p-1 rounded-lg border border-divider/60",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>u("google"),className:`flex-1 py-2 rounded-md text-xs font-bold transition-all flex items-center justify-center gap-2 ${"google"===x?"bg-bg-card text-white shadow-sm border border-divider/40":"text-secondary-text hover:text-white"}`,children:[(0,t.jsx)(i.FaGoogle,{className:"text-red-400"}),(0,t.jsx)("span",{children:"Google Account"})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>u("apikey"),className:`flex-1 py-2 rounded-md text-xs font-bold transition-all flex items-center justify-center gap-2 ${"apikey"===x?"bg-bg-card text-white shadow-sm border border-divider/40":"text-secondary-text hover:text-white"}`,children:[(0,t.jsx)(i.FaKey,{className:"text-amber-400"}),(0,t.jsx)("span",{children:"Use API Key"})]})]}),"google"===x?(0,t.jsxs)("div",{className:"space-y-4 pt-2",children:[(0,t.jsxs)("button",{onClick:()=>(0,r.signIn)("google",{callbackUrl:c}),className:"w-full py-3.5 bg-white text-neutral-900 rounded-full text-xs font-bold flex items-center justify-center gap-3 hover:opacity-90 transition-all shadow-md active:scale-[0.98] cursor-pointer",children:[(0,t.jsx)(i.FaGoogle,{className:"text-sm text-red-500"}),(0,t.jsx)("span",{children:"Continue with Google"})]}),(0,t.jsx)("p",{className:"text-[11px] text-center text-secondary-text",children:"Uses system credit balance. Ideal for credit pack purchases."})]}):(0,t.jsxs)("form",{onSubmit:y,className:"space-y-4 pt-2",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("label",{className:"block text-[11px] uppercase font-bold text-secondary-text tracking-wider",children:"MuAPI Key"}),(0,t.jsx)("div",{className:"relative",children:(0,t.jsx)("input",{type:"password",value:p,onChange:e=>m(e.target.value),placeholder:"Enter your mu_... key",className:"w-full bg-bg-page border border-divider rounded-lg px-3.5 py-2.5 text-xs text-white placeholder-secondary-text/50 focus:outline-none focus:border-primary transition-colors"})}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsx)("a",{href:"https://muapi.ai",target:"_blank",rel:"noopener noreferrer",className:"text-[10px] text-primary hover:underline font-semibold",children:"Get API Key from MuAPI →"})})]}),(0,t.jsxs)("button",{type:"submit",disabled:h||!p.trim(),className:"w-full py-3 bg-primary hover:bg-primary/90 text-white rounded-full text-xs font-bold flex items-center justify-center gap-2 transition-all shadow-md active:scale-[0.98] disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",children:[(0,t.jsx)("span",{children:h?"Authenticating...":"Sign In with API Key"}),(0,t.jsx)(i.FaArrowRight,{className:"text-xs"})]}),(0,t.jsx)("p",{className:"text-[11px] text-center text-amber-400/90 font-medium",children:"⚡ Generate & edit image assets using your API key. 0 website credits required!"})]}),(0,t.jsxs)("div",{className:"flex items-start gap-2.5 bg-primary/5 border border-primary/10 p-3.5 rounded text-[11px] leading-relaxed text-secondary-text",children:[(0,t.jsx)(i.FaInfoCircle,{className:"text-primary text-xs shrink-0 mt-0.5"}
1),(0,t.jsx)("span",{children:"By signing in, you agree to our Terms of Service. API keys are kept secure and encrypted for generation calls."})]})]})]})}e.s(["default",0,function(){return(0,t.jsx)(s.Suspense,{fallback:(0,t.jsx)("div",{className:"min-h-dvh flex items-center justify-center bg-bg-page text-primary-text",children:(0,t.jsx)("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin"})}),children:(0,t.jsx)(n,{})})}])}]);

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.