// calc-gate-upsell.jsx — the lightweight signup gate (the only friction, exists so
// the upsell can recognise a returning buyer), the Stripe checkout note (VAT added
// here), and the signature post-purchase upsell comparison.
function SignupGate({ sel, onClose, onSignup, margin }) {
const q = window.quotePrice(sel, margin);
return (
e.stopPropagation()}>
Create a free account to make it
Quick and free — it's the only step. We just need to know it's you so your video lands in your account.
{window.fmt(q.total)}+ VAT · charged at checkout
Why an account? So we can save your videos and, if you come back, show you when subscribing would cost you less than buying one-by-one.
No subscription is created. By continuing you agree to the Terms and Privacy Policy.
You've made {count} videos for {window.fmt(spend)}. There's a better deal.
At the rate you're buying, a subscription would give you far more video for about what you're already spending.
What you've spent — one-off
{window.fmt(spend)} so far
{count} videos, bought one at a time.
That's ≈{window.fmt(Math.round(oneOffRate))} per video.
Pay again for every new video
No monthly images or voiceover allowance
Best value
{plan.name} subscription
{window.fmt(plan.price)} / month
{plan.blurb} — {moreVideos > 0 ? moreVideos + ' more' : 'more'} than you've made so far.
Just ≈{window.fmt(Math.round(planRate))} per video.
{plan.blurb}
{plan.extras.map((x, i) =>
{x}
)}
For about the same monthly spend, {plan.name} gives you {plan.videos} videos a month instead of {count}{saving > 0 ? — roughly {window.fmt(saving)} of value over buying them one-off : null}.