PageSourceSearch

https://nanobnana.com/_nuxt/ap0BppyD.js

js nanobnana.com collected 2026-10-09 22:56:50 UTC 13,978 bytes, 1 lines download raw bytes

1import{d as K,p as V,T as B,C as I,a8 as N,a0 as T,u as t,o as y,a as x,J as $,j as E,b as e,h as b,w as m,e as _,L as q,t as c,n as L,_ as Y,v as w,bx as O,f as h,l as F}from"./BnyHmBjY.js";import{u as D}from"./D5w_mdHX.js";const U=["onKeydown"],Z={class:"mb-3 flex items-start justify-between gap-3"},J={class:"flex items-center gap-3"},W={class:"text-[11px] font-semibold uppercase tracking-wide text-amber-600 dark:text-amber-400"},H=["aria-label"],Q={key:0,class:"mb-4 text-xs text-muted-foreground/90"},X={class:"flex flex-col-reverse gap-2 sm:flex-row sm:items-center sm:justify-end"},G="guest-upgrade-guard-title",C=K({__name:"GuestUpgradeGuard",props:{checkout:{type:Boolean,default:!1},open:{type:Boolean,default:!1}},emits:["update:open"],setup(d,{emit:s}){const i=d,p=s,a=h(()=>i.checkout?"checkoutGuard":"guestGuard"),{t:n}=V(),u=B(),P=I(),A=N(),g=T(),{switchToAccount:M}=D(),f=F(!1),k=h(()=>{var o;const r=((o=u.user)==null?void 0:o.email)||"";return!!r&&r.endsWith(".guest")}),j=h(()=>{var r;return i.checkout?i.open&&(!((r=u.user)!=null&&r.email)||k.value)&&!u.authModelOpen:k.value&&!u.authModelOpen&&!f.value});function l(){if(i.checkout){p("update:open",!1);return}if(f.value=!0,window.history.length>1){A.back();return}q(P("/dashboard/home"))}async function R(){p("update:open",!1),await M(i.checkout?{redirect:g.fullPath}:{redirect:g.fullPath,preferModal:!0})}return(r,o)=>{const v=Y;return t(j)?(y(),x("div",{key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center p-4",onKeydown:$(E(l,["stop","prevent"]),["esc"])},[e("div",{class:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:l}),b(t(O),{"as-child":"",loop:"",trapped:""},{default:m(()=>[e("div",{class:"relative z-10 w-full max-w-[460px] rounded-2xl border border-border bg-card p-5 shadow-xl text-foreground",role:"dialog","aria-modal":"true","aria-labelledby":G},[e("div",Z,[e("div",J,[o[0]||(o[0]=e("span",{class:"flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-amber-500/15 text-amber-600 dark:text-amber-400"},[e("svg",{class:"h-5 w-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","aria-hidden":"true"},[e("path",{d:"M12 9v4m0 4h.01"}),e("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"})])],-1)),e("div",null,[e("p",W,c(t(n)(`${t(a)}.badge`)),1),e("h3",{id:G,class:"text-base font-semibold"},c(t(n)(`${t(a)}.title`)),1)])]),e("button",{type:"button",class:"rounded-lg p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","aria-label":t(n)(`${t(a)}.dismiss`),onClick:l},[...o[1]||(o[1]=[e("svg",{class:"h-4 w-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","aria-hidden":"true"},[e("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])],8,H)]),e("p",{class:L(["text-sm text-muted-foreground",i.checkout?"mb-4":"mb-2"])},c(t(n)(`${t(a)}.desc`)),3),i.checkout?_("",!0):(y(),x("p",Q,c(t(n)(`${t(a)}.hint`)),1)),e("div",X,[b(v,{variant:"secondary",onClick:l},{default:m(()=>[w(c(t(n)(`${t(a)}.dismiss`)),1)]),_:1}),b(v,{variant:"default",onClick:R},{default:m(()=>[w(c(t(n)(`${t(a)}.cta`)),1)]),_:1})])])]),_:1})],40,U)):_("",!0)}}});function z(d){const s=d;s.__i18n=s.__i18n||[],s.__i18n.push({locale:"",resource:{en:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Checkout"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sign in to continue?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Sign in or create an account before checkout so your purchase and credits are linked to you."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"You can keep browsing pricing without signing in."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Sign in / Register"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Not now"}}}},zh:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"结账"}},title:{t:0,b:{t:2,i:[{t:3}],s:"登录后继续?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"结账前请登录或注册账户,以便将订单和积分绑定到你的账户。"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"暂不登录也可以继续浏览套餐。"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"登录 / 注册"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"暂不登录"}}}},ru:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Оплата"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Войти, чтобы продолжить?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Войдите или создайте аккаунт перед оплатой, чтобы покупки и кредиты были привязаны к вам."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Просматривать тарифы можно без входа."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Войти / Зарегистрироваться"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Не сейчас"}}}},de:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Zahlung"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Anmelden und fortfahren?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Melden Sie sich vor der Zahlung an oder erstellen Sie ein Konto, damit Käufe und Credits Ihnen zugeordnet werden."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Sie können die Preise ohne Anmeldung weiter ansehen."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Anmelden / Registrieren"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Nicht jetzt"}}}},fr:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Paiement"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter pour continuer ?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous ou créez un compte avant de payer pour y associer vos achats et crédits."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Vous pouvez consulter les tarifs sans vous connecter."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter / S'inscrire"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Pas maintenant"}}}},ja:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"お支払い"}},title:{t:0,b:{t:2,i:[{t:3}],s:"ログインして続けますか?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"購入とクレジットをアカウントに紐づけるため、お支払い前にログインまたは登録してください。"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"ログインせずに料金プランを閲覧できます。"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"ログイン / 登録"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"今はしない"}}}},ko:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"결제"}},title:{t:0,b:{t:2,i:[{t:3}],s:"로그인하고 계속할까요?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"구매와 크레딧을 계정에 연결하려면 결제 전에 로그인하거나 가입해 주세요."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"로그인하지 않고도 요금제를 둘러볼 수 있습니다."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"로그인 / 회원가입"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"나중에"}}}},pt:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Pagamento"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Entrar para continuar?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Entre ou crie uma conta antes de pagar para vincular suas compras e créditos a você."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Você pode continuar vendo os planos sem entrar."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Entrar / Registrar-se"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Agora não"}}}},tr:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Ödeme"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Devam etmek için giriş yapılsın mı?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Satın alımların ve kredilerin size bağlanması için ödeme öncesinde giriş yapın veya hesap oluşturun."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Giriş yapmadan fiyatları incelemeye devam edebilirsiniz."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Giriş Yap / Kayıt Ol"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Şimdi değil"}}}},es:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Pago"}},title:{t:0,b:{t:2,i:[{t:3}],s:"¿Iniciar sesión para continuar?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Inicia sesión o crea una cuenta antes de pagar para vincular tus compras y créditos a tu cuenta."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Puedes seguir consultando los planes sin iniciar sesión."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Iniciar sesión / Registrarse"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Ahora no"}}}},th:{checkoutGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"ชำระเงิน"}},title:{t:0,b:{t:2,i:[{t:3}],s:"เข้าสู่ระบบเพื่อดำเนินการต่อไหม?"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"เข้าสู่ระบบหรือสร้างบัญชีก่อนชำระเงิน เพื่อเชื่อมโยงคำสั่งซื้อและเครดิตกับบัญชีของคุณ"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"คุณสามารถดูแพ็กเกจต่อได้โดยไม่ต้องเข้าสู่ระบบ"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"เข้าสู่ระบบ / ลงทะเบียน"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"ไว้ก่อน"}}}}}})}function S(d){const s=d;s.__i18n=s.__i18n||[],s.__i18n.push({locale:"",resource:{en:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Guest mode"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Sign in for a full account"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"You're browsing as a guest. Pricing and checkout work best with a full account so purchases and history stay linked to you."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"You can leave this page anytime — signing in is recommended, not required to keep exploring."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Sign in / Register"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Not now"}}}},zh:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"访客模式"}},title:{t:0,b:{t:2,i:[{t:3}],s:"登录正式账户更稳妥"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"你当前是访客。定价与结账建议使用正式账户,订单与历史会绑定到你本人。"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"可随时离开本页继续浏览;登录是推荐,不是强制。"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"登录 / 注册"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"暂不登录"}}}},ru:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Гостевой режим"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Войдите в полный аккаунт"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Вы в гостевом режиме. Оплата и история лучше работают с полноценным аккаунтом."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Можно закрыть это окно и продолжить — вход рекомендуется, но не обязателен для просмотра."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Войти / Зарегистрироваться"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Не сейчас"}}}},de:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Gastmodus"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Für ein volles Konto anmelden"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Sie nutzen den Gastmodus. Preise und Checkout funktionieren am besten mit einem vollständigen Konto."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Sie können jederzeit weiterstöbern — Anmelden ist empfohlen, nicht erzwungen."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Anmelden / Registrieren"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Nicht jetzt"}}}},ja:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"ゲストモード"}},title:{t:0,b:{t:2,i:[{t:3}],s:"正式アカウントでログイン"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"現在はゲストです。料金・決済は正式アカウントの方が注文と履歴が紐づきます。"}},hint:{t:0,b:{t:2,i:[{t:3}],s:"いつでも閉じられます。ログインはおすすめであり、強制ではありません。"}},cta:{t:0,b:{t:2,i:[{t:3}],s:"ログイン / 登録"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"今はしない"}}}},fr:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}
1],s:"Mode invité"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Connectez-vous pour un compte complet"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Vous naviguez en invité. Tarifs et paiement sont plus fiables avec un compte complet."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Vous pouvez quitter à tout moment — la connexion est conseillée, pas obligatoire pour explorer."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Se connecter / S'inscrire"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Pas maintenant"}}}},ko:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"게스트 모드"}},title:{t:0,b:{t:2,i:[{t:3}],s:"정식 계정으로 로그인"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"현재 게스트입니다. 가격·결제는 정식 계정에서 주문과 기록이 더 안전하게 연결됩니다."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"언제든 닫고 둘러볼 수 있습니다. 로그인은 권장이며 강제하지 않습니다."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"로그인 / 회원가입"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"나중에"}}}},pt:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Modo convidado"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Entre com uma conta completa"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Você está como convidado. Preços e checkout funcionam melhor com uma conta completa."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Pode sair a qualquer momento — entrar é recomendado, não obrigatório para explorar."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Entrar / Registrar-se"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Agora não"}}}},tr:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Misafir modu"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Tam hesap için giriş yapın"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Misafir olarak geziyorsunuz. Fiyat ve ödeme, tam hesapta sipariş ve geçmişe bağlanır."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"İstediğiniz zaman kapatabilirsiniz — giriş önerilir, zorunlu değildir."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Giriş Yap / Kayıt Ol"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Şimdi değil"}}}},es:{guestGuard:{badge:{t:0,b:{t:2,i:[{t:3}],s:"Modo invitado"}},title:{t:0,b:{t:2,i:[{t:3}],s:"Inicia sesión con una cuenta completa"}},desc:{t:0,b:{t:2,i:[{t:3}],s:"Estás como invitado. Precios y pago funcionan mejor con una cuenta completa."}},hint:{t:0,b:{t:2,i:[{t:3}],s:"Puedes salir cuando quieras — iniciar sesión se recomienda, no se obliga a explorar."}},cta:{t:0,b:{t:2,i:[{t:3}],s:"Iniciar sesión / Registrarse"}},dismiss:{t:0,b:{t:2,i:[{t:3}],s:"Ahora no"}}}}}})}typeof z=="function"&&z(C);typeof S=="function"&&S(C);export{C as _};

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.