1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{612:function(e,t,r){Promise.resolve().then(r.bind(r,7287)),Promise.resolve().then(r.bind(r,6596)),Promise.resolve().then(r.t.bind(r,5878,23)),Promise.resolve().then(r.t.bind(r,2972,23))},7287:function(e,t,r){"use strict";r.d(t,{Pricing:function(){return P}});var a=r(7437),s=r(2869),n=r(6070),i=r(6595),o=r(401),l=r(2265),d=r(425),c=r(2489),m=r(4508);let u=d.fC;d.xz;let f=d.h_;d.x8;let p=l.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(d.aV,{ref:t,className:(0,m.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...s})});p.displayName=d.aV.displayName;let x=l.forwardRef((e,t)=>{let{className:r,children:s,...n}=e;return(0,a.jsxs)(f,{children:[(0,a.jsx)(p,{}),(0,a.jsxs)(d.VY,{ref:t,className:(0,m.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...n,children:[s,(0,a.jsxs)(d.x8,{className:"absolute right-4 top-4 roun
1ded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(c.Z,{className:"h-4 w-4"}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});x.displayName=d.VY.displayName;let h=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,m.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...r})};h.displayName="DialogHeader";let g=e=>{let{className:t,...r}=e;return(0,a.jsx)("div",{className:(0,m.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...r})};g.displayName="DialogFooter";let y=l.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(d.Dx,{ref:t,className:(0,m.cn)("text-lg font-semibold leading-none tracking-tight",r),...s})});y.displayName=d.Dx.displayName;let b=l.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(d.dk,{ref:t,className:(0,m.cn)("text-sm text-muted-foreground",r),...s})});b.displayName=d.dk.displayName;let N=l.forwardRef((e,t)=>{let{className:r,type:s,...n}=e;return(0,a.jsx)("input",{type:s,className:(0,m.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:t,...n})});N.displayName="Input";var v=r(6394);let j=(0,r(535).j)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),w=l.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(v.f,{ref:t,className:(0,m.cn)(j(),r),...s})});function k(e){let{open:t,onOpenChange:r,planName:n,onSubmit:i,loading:o=!1}=e,[d,c]=(0,l.useState)(""),[m,f]=(0,l.useState)(""),p=e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e);return(0,a.jsx)(u,{open:t,onOpenChange:r,children:(0,a.jsxs)(x,{className:"sm:max-w-md",children:[(0,a.jsxs)(h,{children:[(0,a.jsx)(y,{children:"Enter your email"}),(0,a.jsx)(b,{children:"We'll send your license key to this email after payment. Make sure it's correct!"})]}),(0,a.jsxs)("form",{onSubmit:e=>{if(e.preventDefault(),!d){f("Email is required");return}if(!p(d)){f("Please enter a valid email address");return}f(""),i(d)},children:[(0,a.jsxs)("div",{className:"space-y-4 py-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(w,{htmlFor:"email",children:"Email address"}),(0,a.jsx)(N,{id:"email",type:"email",placeholder:"[email protected]",value:d,onChange:e=>{c(e.target.value),f("")},disabled:o,autoFocus:!0}),m&&(0,a.jsx)("p",{className:"text-sm text-red-600",children:m})]}),(0,a.jsx)("div",{className:"rounded-lg bg-emerald-50 p-3",children:(0,a.jsxs)("p",{className:"text-sm text-gray-700",children:[(0,a.jsx)("strong",{children:"Selected plan:"})," ",n]})})]}),(0,a.jsxs)(g,{children:[(0,a.jsx)(s.z,{type:"button",variant:"outline",onClick:()=>r(!1),disabled:o,children:"Cancel"}),(0,a.jsx)(s.z,{type:"submit",disabled:o,className:"bg-gradient-to-r from-emerald-600 to-green-600 hover:from-emerald-700 hover:to-green-700",children:o?"Processing...":"Continue to Payment"})]})]})]})})}w.displayName=v.f.displayName;let C=[{id:"free",name:"Free",price:"$0",originalPrice:null,interval:"forever",description:"Perfect for trying out Focus Mode",features:["3 custom profiles","Basic focus timers","Basic statistics","Manual focus mode","Keyboard shortcuts","Community support"],cta:"Download Free",href:"https://chromewebstore.google.com/detail/focus-mode-pro/jonddomloljehafphimpflhdnaodhkbm",popular:!1},{id:"lifetime",name:"Pro Lifetime",price:"$4.99",originalPrice:"$9.99",interval:"one-time",description:"Best value! One payment, lifetime access",features:["Everything in Free, plus:","Unlimited profiles","Advanced analytics","Auto-schedule by time","Profile import/export","Priority support","Lifetime updates"],cta:"Get Lifetime Access",priceId:"lifetime",paymentLink:"https://buy.stripe.com/YOUR_LIFETIME_LINK",popular:!0}
1,{id:"monthly",name:"Pro Monthly",price:"$1.99",originalPrice:"$3.99",interval:"per month",description:"Full Pro features, billed annually",features:["Everything in Free, plus:","Unlimited profiles","Advanced analytics","Auto-schedule by time","Profile import/export","Priority support","Cancel anytime"],cta:"Start Monthly Plan",priceId:"monthly",paymentLink:"https://buy.stripe.com/YOUR_MONTHLY_LINK",popular:!1}];function P(){let[e,t]=(0,l.useState)(!1),[r,d]=(0,l.useState)(!1),[c,m]=(0,l.useState)(null),u=e=>{if(!e.priceId){window.open("https://chromewebstore.google.com/detail/focus-mode-pro/jonddomloljehafphimpflhdnaodhkbm","_blank");return}m(e),d(!0)},f=async e=>{if(c){t(!0);try{let t="".concat(window.location.protocol,"//").concat(window.location.host),r=await fetch("".concat("https://license-api.gejun-anderson-cloudflare.workers.dev","/api/create-checkout-session"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,planType:c.priceId,successUrl:"".concat(t,"/success?session_id={CHECKOUT_SESSION_ID}"),cancelUrl:"".concat(t,"/#pricing")})});if(!r.ok)throw Error("Failed to create checkout session");let a=await r.json();if(a.url)window.location.href=a.url;else throw Error("No checkout URL returned")}catch(e){console.error("Error:",e),alert("Something went wrong. Please try again."),t(!1)}}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("section",{id:"pricing",className:"bg-gradient-to-b from-white to-emerald-50 py-20 sm:py-32",children:(0,a.jsxs)("div",{className:"container mx-auto px-4",children:[(0,a.jsxs)("div",{className:"mx-auto max-w-2xl text-center",children:[(0,a.jsx)("h2",{className:"text-3xl font-bold tracking-tight text-gray-900 sm:text-4xl",children:"Simple, transparent pricing"}),(0,a.jsx)("p",{className:"mt-4 text-lg text-gray-600",children:"Choose the plan that works best for you. Upgrade or downgrade at any time."})]}),(0,a.jsx)("div",{className:"mx-auto mt-16 grid max-w-6xl grid-cols-1 gap-8 lg:grid-cols-3",children:C.map(t=>(0,a.jsxs)(n.Zb,{className:"relative flex flex-col ".concat(t.popular?"border-2 border-emerald-500 shadow-xl lg:scale-105":"border-gray-200"),children:[t.popular&&(0,a.jsx)("div",{className:"absolute -top-4 left-1/2 -translate-x-1/2",children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-gradient-to-r from-emerald-600 to-green-600 px-4 py-1 text-sm font-medium text-white",children:[(0,a.jsx)(i.Z,{className:"h-4 w-4 fill-current"}),"Most Popular"]})}),(0,a.jsxs)(n.Ol,{children:[(0,a.jsx)(n.ll,{className:"text-2xl",children:t.name}),(0,a.jsx)(n.SZ,{children:t.description}),(0,a.jsxs)("div",{className:"mt-4",children:[t.originalPrice&&(0,a.jsxs)("div",{className:"mb-2 flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-2xl font-medium text-gray-400 line-through",children:t.originalPrice}),(0,a.jsx)("span",{className:"rounded-full bg-red-100 px-2 py-0.5 text-sm font-semibold text-red-600",children:"50% OFF"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-4xl font-bold text-gray-900",children:t.price}),(0,a.jsxs)("span",{className:"text-gray-600",children:[" ",t.interval]})]})]})]}),(0,a.jsx)(n.aY,{className:"flex-1",children:(0,a.jsx)("ul",{className:"space-y-3",children:t.features.map((e,t)=>(0,a.jsxs)("li",{className:"flex items-start gap-3",children:[(0,a.jsx)(o.Z,{className:"h-5 w-5 shrink-0 text-emerald-600"}),(0,a.jsx)("span",{className:e.endsWith(":")?"font-semibold text-gray-900":"text-gray-600",children:e})]},t))})}),(0,a.jsx)(n.eW,{children:(0,a.jsx)(s.z,{onClick:()=>u(t),disabled:e,className:"w-full ".concat(t.popular?"bg-gradient-to-r from-emerald-600 to-green-600 hover:from-emerald-700 hover:to-green-700":""),variant:t.popular?"default":"outline",size:"lg",children:t.cta})})]},t.id))})]})}),(0,a.jsx)(k,{open:r,onOpenChange:d,planName:(null==c?void 0:c.name)||"",onSubmit:f,loading:e})]})}},6596:function(e,t,r){"use strict";r.d(t,{Accordion:function(){return l},AccordionContent:function(){return m},AccordionItem:function(){return d},AccordionTrigger:function(){return c}});var a=r(7437),s=r(2265),n=r(8401),i=r(875),o=r(4508);let l=n.fC,d=s.forwardRef((e,t)=>
1{let{className:r,...s}=e;return(0,a.jsx)(n.ck,{ref:t,className:(0,o.cn)("border-b",r),...s})});d.displayName="AccordionItem";let c=s.forwardRef((e,t)=>{let{className:r,children:s,...l}=e;return(0,a.jsx)(n.h4,{className:"flex",children:(0,a.jsxs)(n.xz,{ref:t,className:(0,o.cn)("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",r),...l,children:[s,(0,a.jsx)(i.Z,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"})]})})});c.displayName=n.xz.displayName;let m=s.forwardRef((e,t)=>{let{className:r,children:s,...i}=e;return(0,a.jsx)(n.VY,{ref:t,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...i,children:(0,a.jsx)("div",{className:(0,o.cn)("pb-4 pt-0",r),children:s})})});m.displayName=n.VY.displayName},2869:function(e,t,r){"use strict";r.d(t,{z:function(){return d}});var a=r(7437),s=r(2265),n=r(7495),i=r(535),o=r(4508);let l=(0,i.j)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:r,variant:s,size:i,asChild:d=!1,...c}=e,m=d?n.g7:"button";return(0,a.jsx)(m,{className:(0,o.cn)(l({variant:s,size:i,className:r})),ref:t,...c})});d.displayName="Button"},6070:function(e,t,r){"use strict";r.d(t,{Ol:function(){return o},SZ:function(){return d},Zb:function(){return i},aY:function(){return c},eW:function(){return m},ll:function(){return l}});var a=r(7437),s=r(2265),n=r(4508);let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...s})});i.displayName="Card";let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex flex-col space-y-1.5 p-6",r),...s})});o.displayName="CardHeader";let l=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("font-semibold leading-none tracking-tight",r),...s})});l.displayName="CardTitle";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("text-sm text-muted-foreground",r),...s})});d.displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let m=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,n.cn)("flex items-center p-6 pt-0",r),...s})});m.displayName="CardFooter"},4508:function(e,t,r){"use strict";r.d(t,{cn:function(){return n}});var a=r(1994),s=r(3335);function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.m6)((0,a.W)(t))}}},function(e){e.O(0,[972,878,203,616,971,117,744],function(){return e(e.s=612)}),_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.