PageSourceSearch

https://getvsble.com/assets/LtdPage-DNFz_DyJ.js

js getvsble.com collected 2026-10-09 04:55:24 UTC 15,521 bytes, 1 lines download raw bytes

1import{b2 as ie,ax as oe,b as ce,u as de,r as u,q as ue,s as w,j as e,L as Q,h as me,a9 as xe,B as te,w as he,t as M,a1 as fe,c as H,Q as pe,aY as ge,aZ as je,a_ as W,a$ as O,b0 as be,b1 as B,a3 as ae,a4 as re,a5 as ne,a6 as le,C as ye}from"./index-ByYYWl6V.js";import{L as ve}from"./label-Dast61oh.js";import{l as Ne}from"./landing-snapshot-CYE73VN1.js";import{C as we}from"./circle-check-DOzaU1SH.js";import{C as ke}from"./circle-check-big-Dep-aQzF.js";import{C as Se}from"./circle-x-BI9LabY8.js";const X=["file_share_collaboration","invoicing","calendar","brand_ai_monitor"],R={file_share_collaboration:{label:"File Sharing & Collaboration",price:199},calendar:{label:"Calendar & Booking",price:99},invoicing:{label:"Invoice Maker",price:299},brand_ai_monitor:{label:"Brand Monitoring (AI)",price:149}},Ce={Starter:8,Creator:19,Studio:29},_e=["Starter","Creator","Studio"],U=n=>`ltd_unlock_${n}`;function Z(n){return n==="true"?!0:n==="false"?!1:n}function Fe(){const{plan:n}=ie(),[m]=oe(),h=ce(),{user:f}=de(),l=m.get("k")||"",p=n==="Starter"||n==="Creator"||n==="Studio"?n:null,[s,i]=u.useState("loading"),[c,d]=u.useState("single"),[$,_]=u.useState(null),[x,T]=u.useState(null),[y,F]=u.useState([]),[v,J]=u.useState(""),[N,V]=u.useState(!1),[k,S]=u.useState(null),[L,D]=u.useState(!1),P=ue(),r=he(P),g=u.useMemo(()=>{if(!l)return null;try{return sessionStorage.getItem(U(l))}catch{return null}},[l]);u.useEffect(()=>{const a=document.createElement("meta");a.name="robots",a.content="noindex, nofollow";const t=document.createElement("meta");return t.name="googlebot",t.content="noindex, nofollow",document.head.appendChild(a),document.head.appendChild(t),()=>{document.head.removeChild(a),document.head.removeChild(t)}},[]),u.useEffect(()=>{let a=!1;return(async()=>{if(!l){i("invalid");return}try{const[{data:t},{data:b},{data:E}]=await Promise.all([w.from("app_settings").select("value").eq("key","lifetime_deal").maybeSingle(),w.functions.invoke("ltd-link-info",{body:{linkId:l}}),w.from("plan_features").select("*").order("sort_order")]);if(a)return;t!=null&&t.value&&T(t.value),Array.isArray(E)&&F(E.filter(K=>!K.hide_from_pricing));const o=b;if(!(o!=null&&o.exists)){i("invalid");return}if(o.expired){i("expired");return}if(d(o.scope??"single"),_(o.plan??p??null),o.password_required===!1&&!g){const{data:K}=await w.functions.invoke("ltd-link-verify",{body:{linkId:l}}),A=K;if(A!=null&&A.ok&&A.unlockToken){try{sessionStorage.setItem(U(l),A.unlockToken)}catch{}i("ready");return}}i(g?"ready":"locked")}catch{i("invalid")}})(),()=>{a=!0}},[l,p,g]),u.useEffect(()=>{f&&(async()=>{const{data:a}=await w.from("profiles").select("lifetime_deal_plan").eq("id",f.id).maybeSingle();a!=null&&a.lifetime_deal_plan&&D(!0)})()},[f]);const j=async()=>{if(v.trim()){V(!0);try{const{data:a}=await w.functions.invoke("ltd-link-verify",{body:{linkId:l,password:v}}),t=a;if(!(t!=null&&t.ok)||!t.unlockToken){(t==null?void 0:t.error)==="expired"?i("expired"):M({title:"Wrong password",variant:"destructive"});return}try{sessionStorage.setItem(U(l),t.unlockToken)}catch{}t.scope&&d(t.scope),t.plan&&_(t.plan),i("ready")}catch{M({title:"Verification failed",variant:"destructive"})}finally{V(!1)}}},C=async a=>{if(!f){const t=c==="all"?`/ltd?k=${encodeURIComponent(l)}`:`/ltd/${a}?k=${encodeURIComponent(l)}`;h(`/auth?redirect=${encodeURIComponent(t)}`);return}S(a);try{const t=sessionStorage.getItem(U(l)),{data:b,error:E}=await w.functions.invoke("create-ltd-checkout",{body:{plan:a,linkId:l,unlockToken:t}});if(E)throw E;const o=b;if(o!=null&&o.error||!(o!=null&&o.url)){M({title:(o==null?void 0:o.error)||"Could not start checkout",variant:"destructive"});return}window.location.href=o.url}catch(t){M({title:(t==null?void 0:t.message)||"Checkout failed",variant:"destructive"})}finally{S(null)}};if(s==="loading")return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-background",children:e.jsx(Q,{className:"h-6 w-6 animate-spin text-muted-foreground"})});if(s==="invalid"||s==="expired")return e.jsx(z,{narrow:!0,children:e.jsxs("div",{className:"text-center space-y-3",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"This offer link is no longer valid"}),e.jsx("p",{className:"text-muted-foreground",children:"The link has expired or is no longer active. Please contact us if you believe this is a mistake."})]})});if(s==="locked")return e.jsx(z,{narrow:!0,children:e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"text-center space-y-2",children:[e.jsx("div",{className:"inline-flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:e.jsx(me,{className:"h-5 w-5"})}),e.jsx("h1",{className:"text-2xl font-semibold",children:"Enter password to view this offer"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"This Lifetime Deal page is private. Use the password from your invitation email."})]}),e.jsxs("form",{onSubmit:a=>{a.preventDefault(),j()},className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx(ve,{className:"text-xs",children:"Password"}
1),e.jsx(xe,{autoFocus:!0,type:"password",value:v,onChange:a=>J(a.target.value),placeholder:"Enter password"})]}),e.jsx(te,{type:"submit",className:"w-full",disabled:N||!v.trim(),children:N?e.jsx(Q,{className:"h-4 w-4 animate-spin"}):"Unlock offer"})]})]})});const Y=_e.filter(a=>{var t,b;return(b=(t=x==null?void 0:x.plans)==null?void 0:t[a])==null?void 0:b.enabled}),q=c==="all",I=$??p??"Creator",ee=a=>{var b;const t=(b=x==null?void 0:x.plans)==null?void 0:b[a];if(t)return P==="usd"?t.price_usd??t.price_eur:t.price_eur};return e.jsx(z,{children:e.jsxs("div",{className:"space-y-12",children:[e.jsxs("header",{className:"text-center space-y-4 max-w-3xl mx-auto",children:[e.jsx("h1",{className:"text-4xl md:text-5xl font-semibold leading-[1.1] tracking-tight",children:q?"Get the vsble Suite for a one-time payment — forever":`Get vsble ${I} for a one-time payment — forever`}),e.jsx("p",{className:"text-lg text-muted-foreground",children:"No monthly billing for your plan, ever. Build your portfolio, share files with clients, take bookings, and get found by AI — all included with one single payment."})]}),e.jsx(Te,{}),L&&e.jsxs("div",{className:"rounded-lg border bg-muted/40 p-4 flex items-center gap-3 max-w-xl mx-auto",children:[e.jsx(we,{className:"h-5 w-5 text-primary"}),e.jsx("div",{className:"text-sm",children:"You already own a lifetime deal on this account."})]}),q?e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:Y.map(a=>e.jsx(se,{plan:a,price:ee(a),symbol:r,features:y,highlighted:a==="Creator",loading:k===a,disabled:L||k!==null,onBuy:()=>C(a),userLoggedIn:!!f},a))}):e.jsx("div",{className:"max-w-xl mx-auto w-full",children:e.jsx(se,{plan:I,price:ee(I),symbol:r,features:y,highlighted:!0,loading:k===I,disabled:L||k!==null,onBuy:()=>C(I),userLoggedIn:!!f,expanded:!0})}),q&&e.jsx(Le,{features:y,symbol:r}),(x==null?void 0:x.disclaimer)&&e.jsx("p",{className:"text-xs text-muted-foreground text-center max-w-2xl mx-auto",children:x.disclaimer})]})})}function z({children:n,narrow:m}){return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("div",{className:"border-b border-border/60 px-4 py-4 flex items-center justify-center",children:e.jsx("img",{src:fe,alt:"vsble",className:"h-7 w-auto"})}),e.jsx("div",{className:"px-4 py-12 md:py-20",children:e.jsx("div",{className:H("w-full mx-auto",m?"max-w-lg":"max-w-6xl"),children:n})})]})}const G=[{title:"AI Websites",paragraph:"Generate stunning pages in seconds with AI-powered design."},{title:"Canvas",paragraph:"Design freely with an intuitive drag-and-drop editor."},{title:"Proofing & File Transfer",paragraph:"Share, review, and deliver files with clients seamlessly."},{title:"Booking",paragraph:"Let clients book sessions directly on your site."},{title:"Invoice Maker",paragraph:"Create and send professional invoices in seconds."},{title:"Blog",paragraph:"Publish articles and stories with a built-in blog."},{title:"Brand Monitoring",paragraph:"Track your brand visibility across AI search engines."}];function Te(){const{locale:n}=pe(),[m,h]=u.useState([]);u.useEffect(()=>{let s=!1;return Ne("header-solutions").then(i=>{if(s)return;const c=i.map(d=>d.content).filter(d=>d&&!d.hidden&&d.title);h(c.length>0?c:G)}).catch(()=>{s||h(G)}),()=>{s=!0}},[]);const f=m.length>0?m:G,l=(s,i)=>{var c,d;return n!=="en"&&((d=(c=s.translations)==null?void 0:c[n])!=null&&d[i])?s.translations[n][i]:s[i]||""},p={en:"Everything included",de:"Alles inklusive",fr:"Tout inclus",es:"Todo incluido",it:"Tutto incluso",pt:"Tudo incluído"}[n]||"Everything included";return e.jsxs("div",{className:"space-y-5",children:[e.jsx("h2",{className:"text-center text-sm font-semibold uppercase tracking-wider text-muted-foreground",children:p}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-7 gap-3",children:f.map((s,i)=>e.jsxs("div",{className:"flex flex-col gap-2 rounded-lg p-2",children:[e.jsx("div",{className:"aspect-[4/3] rounded-md overflow-hidden bg-muted border border-border/50",children:s.image_url?e.jsx("img",{src:s.image_url,alt:s.title,className:"w-full h-full object-cover",loading:"lazy"}):e.jsx("div",{className:"w-full h-full flex items-center justify-center text-muted-foreground
1/40",children:e.jsx("svg",{className:"w-7 h-7",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})})})}),e.jsx("h4",{className:"text-xs font-semibold text-foreground leading-tight",children:l(s,"title")}),e.jsx("p",{className:"text-[11px] text-muted-foreground leading-snug line-clamp-3",children:l(s,"paragraph")})]},i))})]})}function se({plan:n,price:m,symbol:h,features:f,highlighted:l,loading:p,disabled:s,onBuy:i,userLoggedIn:c,expanded:d}){const $=n.toLowerCase(),_=f.filter(r=>{const g=r[$],j=Z(g);return typeof j=="boolean"?j:j&&j!=="—"&&j!==""}),x=r=>X.includes(r.feature_key||""),T=_.filter(r=>!x(r)),y=_.filter(x),F=d?T:T.slice(0,7),v=T.length-F.length,N=Ce[n]*36,k=Math.max(0,N-(m??0)),S=y.map(r=>r.feature_key||"").filter(r=>R[r]),L=S.reduce((r,g)=>r+R[g].price,0),D=N+L,P=(r,g)=>{const j=r[$],C=Z(j),Y=typeof C=="boolean"?r.name:`${r.name}: ${r.is_currency?`${h}${C}`:C}`;return e.jsxs("li",{className:"flex items-start gap-2 text-sm",children:[e.jsx(ye,{className:"h-4 w-4 text-primary mt-0.5 shrink-0"}),e.jsxs("span",{className:H("flex-1 flex items-center gap-1",g&&"font-semibold"),children:[Y,r.tooltip&&e.jsxs(ae,{children:[e.jsx(re,{asChild:!0,children:e.jsx(ne,{className:"h-3.5 w-3.5 text-muted-foreground/50 cursor-help shrink-0"})}),e.jsx(le,{side:"top",className:"max-w-[220px] text-xs",children:r.tooltip})]})]})]},r.id)};return e.jsxs("div",{className:H("rounded-2xl border p-6 flex flex-col gap-4 bg-card",l&&"border-primary shadow-lg ring-1 ring-primary/20"),children:[l&&e.jsx("div",{className:"text-[10px] uppercase tracking-wider font-semibold text-primary -mb-2",children:"Most popular"}),e.jsxs("div",{children:[e.jsxs("div",{className:"text-lg font-semibold",children:[n," plan"]}),e.jsxs("div",{className:"mt-2 flex items-baseline gap-2",children:[e.jsxs("span",{className:"text-4xl font-bold",children:[h,m??"—"]}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"one-time"})]}),m!==void 0&&e.jsxs("div",{className:"mt-1 text-xs text-muted-foreground",children:["vs ",e.jsxs("s",{children:[h,N.toLocaleString()]})," over 36 months ·"," ",e.jsxs("span",{className:"text-green-600 font-medium",children:["save ",h,k.toLocaleString()]})]})]}),e.jsx(te,{className:"w-full",size:"lg",variant:l?"default":"outline",onClick:i,disabled:s,children:p?e.jsx(Q,{className:"h-4 w-4 animate-spin"}):c?`Choose ${n}`:"Sign in to claim"}),(S.length>0||m!==void 0)&&e.jsxs("div",{className:"rounded-lg border border-dashed border-border bg-muted/30 p-3 space-y-1.5 text-xs",children:[e.jsx("div",{className:"font-semibold text-foreground mb-1",children:"What you're getting"}),e.jsxs("div",{className:"flex justify-between",children:[e.jsxs("span",{className:"text-muted-foreground",children:["36 months of ",n]}),e.jsxs("span",{children:[e.jsxs("s",{className:"text-muted-foreground",children:["€",N.toLocaleString()]})," ",e.jsx("span",{className:"text-green-600 font-medium",children:"included"})]})]}),S.map(r=>e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:R[r].label}),e.jsxs("span",{children:[e.jsxs("s",{className:"text-muted-foreground",children:["€",R[r].price]})," ",e.jsx("span",{className:"text-green-600 font-medium",children:"included"})]})]},r)),e.jsxs("div",{className:"flex justify-between pt-1.5 border-t border-border/60 font-semibold",children:[e.jsx("span",{children:"Total value"}),e.jsx("span",{children:e.jsxs("s",{className:"text-muted-foreground",children:["€",D.toLocaleString()]})})]})]}),e.jsxs("ul",{className:"space-y-2 mt-2",children:[F.map(r=>P(r,!1)),!d&&v>0&&e.jsxs("li",{className:"text-xs text-muted-foreground pl-6",children:["+ ",v," more features"]}),y.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("li",{className:"pt-3 mt-1 border-t border-border/60",children:e.jsx("div",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Tools included"})}),y.map(r=>P(r,!0))]})]})]})}function Le({features:n,symbol:m}){var p;const h=n.filter(s=>!s.hide_from_pricing),f=(p=h.find(s=>X.includes(s.feature_key||"")))==null?void 0:p.feature_key,l=(s,i)=>{const c=Z(s);if(typeof c=="string"){const d=i?`${m}${c}`:c;return e.jsx("span",{className:"text-xs font-medium text-foreground",children:d})}return c?e.jsx(ke,{className:"h-4 w-4 text-green-500 mx-auto"}
1):e.jsx(Se,{className:"h-4 w-4 text-muted-foreground/30 mx-auto"})};return e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-semibold text-center",children:"Compare plans"}),e.jsx("div",{className:"rounded-xl border border-border overflow-hidden",children:e.jsxs(ge,{children:[e.jsx(je,{children:e.jsxs(W,{children:[e.jsx(O,{className:"w-[40%]",children:"Feature"}),e.jsx(O,{className:"text-center",children:"Starter"}),e.jsx(O,{className:"text-center bg-primary/5",children:"Creator"}),e.jsx(O,{className:"text-center",children:"Studio"})]})}),e.jsx(be,{children:h.map(s=>{const i=X.includes(s.feature_key||""),c=s.feature_key===f;return e.jsxs(u.Fragment,{children:[c&&e.jsx(W,{className:"bg-muted/40 hover:bg-muted/40",children:e.jsx(B,{colSpan:4,className:"py-2",children:e.jsx("span",{className:"text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Tools"})})}),e.jsxs(W,{children:[e.jsx(B,{className:H("text-sm py-2.5",i&&"font-semibold"),children:e.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.name,s.tooltip&&e.jsxs(ae,{children:[e.jsx(re,{asChild:!0,children:e.jsx(ne,{className:"h-3.5 w-3.5 text-muted-foreground/50 cursor-help shrink-0"})}),e.jsx(le,{side:"top",className:"max-w-[220px] text-xs",children:s.tooltip})]})]})}),e.jsx(B,{className:"text-center py-2.5",children:l(s.starter,s.is_currency)}),e.jsx(B,{className:"text-center py-2.5 bg-primary/5",children:l(s.creator,s.is_currency)}),e.jsx(B,{className:"text-center py-2.5",children:l(s.studio,s.is_currency)})]})]},s.id)})})]})})]})}export{Fe as default};

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.