PageSourceSearch

https://flightqueue.com/js/SuccessPage-DIj-X-UL.js

js flightqueue.com collected 2026-10-04 21:08:17 UTC 31,163 bytes, 115 lines download raw bytes

1import{r as t,j as e}from"./react-vendor-BRrUKPtI.js";import{o as R,u as q,b as W,f as D,z as M,s as $,p as I}from"./shared-contexts-BuVV7eiS.js";import{s as U,u as L,S as _,O as N}from"./SuccessSetupWizard-C3W-jjyn.js";import{S as V}from"./ShareSheet-CKKKFJ0f.js";const E=`
2	.success-page {
3		--color-bg: #080c14;
4		--color-surface: #0d1220;
5		--color-surface-elevated: #141c2e;
6		--color-border: rgba(0, 212, 255, 0.15);
7		--color-border-strong: rgba(0, 212, 255, 0.3);
8		--color-cyan: #00d4ff;
9		--color-cyan-glow: rgba(0, 212, 255, 0.4);
10		--color-gold: #ffd700;
11		--color-gold-soft: #ffed8a;
12		--color-text: #e8edf5;
13		--color-text-muted: #8b98b0;
14		--color-success: #22c55e;
15		--color-error: #ef4444;
16		font-family: 'Outfit', sans-serif;
17		background: var(--color-bg);
18		min-height: 100vh;
19		color: var(--color-text);
20		position: relative;
21		overflow-x: hidden;
22	}
23	.success-page::before {
24		content: '';
25		position: fixed;
26		inset: 0;
27		background:
28			radial-gradient(ellipse 80% 50% at 50% -20%, rgba(0, 212, 255, 0.08), transparent),
29			radial-gradient(ellipse 60% 40% at 80% 100%, rgba(255, 215, 0, 0.05), transparent);
30		pointer-events: none;
31	}
32	.runway-grid {
33		position: fixed;
34		inset: 0;
35		background-image:
36			linear-gradient(rgba(0, 212, 255, 0.03) 1px, transparent 1px),
37			linear-gradient(90deg, rgba(0, 212, 255, 0.03) 1px, transparent 1px);
38		background-size: 60px 60px;
39		mask-image: radial-gradient(ellipse 100% 70% at 50% 30%, black, transparent);
40		pointer-events: none;
41	}
42	.radar-container { position: relative; width: 160px; height: 160px; margin: 0 auto 2rem; }
43	.radar-ring { position: absolute; inset: 0; border: 2px solid var(--color-border); border-radius: 50%; }
44	.radar-ring:nth-child(2) { inset: 20px; }
45	.radar-ring:nth-child(3) { inset: 40px; }
46	.radar-sweep {
47		position: absolute; inset: 0; border-radius: 50%;
48		background: conic-gradient(from 0deg, transparent 0deg, var(--color-cyan-glow) 30deg, transparent 60deg);
49		animation: radar-spin 2s linear infinite;
50	}
51	@keyframes radar-spin { to { transform: rotate(360deg); } }
52	.radar-center {
53		position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
54		width: 12px; height: 12px; background: var(--color-cyan); border-radius: 50%;
55		box-shadow: 0 0 20px var(--color-cyan), 0 0 40px var(--color-cyan-glow);
56		animation: pulse-glow 1.5s ease-in-out infinite;
57	}
58	@keyframes pulse-glow {
59		0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
60		50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.2); }
61	}
62	.success-icon { position: relative; width: 120px; height: 120px; margin: 0 auto 2rem; animation: icon-reveal 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards; }
63	@keyframes icon-reveal { 0% { transform: scale(0); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
64	.success-icon-ring { position: absolute; inset: 0; border: 3px solid var(--color-success); border-radius: 50%; box-shadow: 0 0 30px rgba(34, 197, 94, 0.3), inset 0 0 30px rgba(34, 197, 94, 0.1); }
65	.success-icon-check {
66		position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
67		width: 50px; height: 50px; stroke: var(--color-success); stroke-width: 4;
68		stroke-linecap: round; stroke-linejoin: round; fill: none;
69		stroke-dasharray: 100; stroke-dashoffset: 100; animation: draw-check 0.5s 0.3s ease forwards;
70	}
71	@keyframes draw-check { to { stroke-dashoffset: 0; } }
72	@keyframes card-reveal { from { opacity: 0; transform: translateY(30px); } }
73	.boarding-pass { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; overflow: hidden; position: relative; animation: card-reveal 0.5s 0.2s ease backwards; }
74	.boarding-pass::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--color-cyan), var(--color-gold), var(--color-cyan)); }
75	.boarding-pass-header { padding: 1.5rem 2rem; border-bottom: 1px dashed var(--color-border); display: flex; justify-content: space-between; align-items: center; position: relative; }
76	.boarding-pass-header::before, .boarding-pass-header::after { content: ''; position: absolute; bottom: -10px;
76 width: 20px; height: 20px; background: var(--color-bg); border-radius: 50%; }
77	.boarding-pass-header::before { left: -10px; }
78	.boarding-pass-header::after { right: -10px; }
79	.boarding-pass-logo { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em; display: flex; align-items: center; gap: 0.5rem; }
80	.boarding-pass-logo span { color: var(--color-cyan); }
81	.boarding-pass-badge { font-family: 'JetBrains Mono', monospace; font-size: 0.65rem; font-weight: 500; letter-spacing: 0.1em; padding: 0.35rem 0.75rem; background: linear-gradient(135deg, var(--color-gold), #ffb700); color: #1a1a1a; border-radius: 4px; text-transform: uppercase; }
82	.boarding-pass-body { padding: 2rem; }
83	.boarding-pass-title { font-size: 2rem; font-weight: 700; margin-bottom: 0.5rem; background: linear-gradient(135deg, var(--color-text), var(--color-gold-soft)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
84	.boarding-pass-subtitle { color: var(--color-text-muted); font-size: 1rem; margin-bottom: 2rem; }
85	.boarding-pass-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-bottom: 2rem; }
86	.boarding-pass-field { text-align: center; }
87	.boarding-pass-label { font-family: 'JetBrains Mono', monospace; font-size: 0.65rem; color: var(--color-text-muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 0.5rem; }
88	.boarding-pass-value { font-size: 1.25rem; font-weight: 600; color: var(--color-text); }
89	.boarding-pass-value.highlight { color: var(--color-cyan); }
90	.boarding-pass-divider { height: 1px; background: linear-gradient(90deg, transparent, var(--color-border), transparent); margin: 1.5rem 0; }
91	.boarding-pass-barcode { display: flex; justify-content: center; gap: 2px; padding: 1rem 0; opacity: 0.5; }
92	.boarding-pass-barcode span { width: 3px; background: var(--color-text-muted); border-radius: 1px; }
93	.features-section { animation: card-reveal 0.5s 0.4s ease backwards; }
94	.features-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
95	@media (max-width: 640px) { .features-grid { grid-template-columns: 1fr; } }
96	.feature-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 12px; padding: 1.25rem; transition: all 0.3s ease; }
97	.feature-card:hover { border-color: var(--color-border-strong); transform: translateY(-2px); }
98	.feature-icon { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: var(--color-surface-elevated); border-radius: 10px; margin-bottom: 0.75rem; font-size: 1.25rem; }
99	.feature-title { font-weight: 600; font-size: 0.95rem; margin-bottom: 0.25rem; }
100	.feature-desc { font-size: 0.8rem; color: var(--color-text-muted); line-height: 1.4; }
101	.cta-section { animation: card-reveal 0.5s 0.5s ease backwards; }
102	.cta-primary { display: flex; align-items: center; justify-content: center; gap: 0.75rem; width: 100%; padding: 1rem 1.5rem; background: linear-gradient(135deg, var(--color-cyan), #0099cc); color: var(--color-bg); font-weight: 600; font-size: 1rem; border: none; border-radius: 12px; cursor: pointer; transition: all 0.3s ease; text-decoration: none; margin-bottom: 0.75rem; }
103	.cta-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 40px rgba(0, 212, 255, 0.3); }
104	.cta-secondary { display: flex; align-items: center; justify-content: center; gap: 0.5rem; width: 100%; padding: 0.875rem 1.5rem; background: var(--color-surface); color: var(--color-text); font-weight: 500; font-size: 0.9rem; border: 1px solid var(--color-border); border-radius: 10px; cursor: pointer; transition: all 0.3s ease; text-decoration: none; }
105	.cta-secondary:hover { border-color: var(--color-border-strong); background: var(--color-surface-elevated); }
106	.error-card { background: var(--color-surface); border: 1px solid rgba(239, 68, 68, 0.3); border-radius: 16px; padding: 3rem 2rem; text-align: center; }
107	.error-icon { width: 80px; height: 80px; margin: 0 auto 1.5rem; background: rgba(239, 68, 68, 0.1); border: 2px solid var(--color-error); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
108	.error-title { font-size: 1.5rem; font-weight: 700; margin-bottom: 0.5rem; }
109	.error-message { color: var(--color-text-muted); margin-bottom: 2rem; }
110	.loading-text { text-align: center; }
111	.loading-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.5rem; }
112	.loading-subtitle { color: var(--color-text-muted); }
113	.text-mono { font-family: 'JetBrains Mono', monospace; }
114	${U}
115`;function F(){const s=t.useMemo(()=>{const r=["#00d4ff","#ffd700","#22c55e","#ff6b6b","#a855f7","#f97316"],a=["circle","square","triangle"];return Array.from({length:50},(c,i)=>({id:i,color:r[Math.floor(Math.random()*r.length)],shape:a[Math.floor(Math.random()*a.length)],left:Math.random()*100,delay:Math.random()*.5,duration:2+Math.random()*2}))},[]);return e.jsx("div",{className:"confetti-container",children:s.map(r=>e.jsx("div",{className:`confetti ${r.shape}`,style:{left:`${r.left}%`,backgroundColor:r.shape!=="triangle"?r.color:void 0,color:r.shape==="triangle"?r.color:void 0,animationDelay:`${r.delay}s`,animationDuration:`${r.duration}s`}},r.id))})}function J({userData:s,planDetails:r,t:a}){return e.jsxs("div",{className:"boarding-pass mb-6",children:[e.jsxs("div",{className:"boarding-pass-header",children:[e.jsxs("div",{className:"boarding-pass-logo",children:["Flight",e.jsx("span",{children:"Queue"})]}),e.jsx("div",{className:"boarding-pass-badge",children:r.badge})]}),e.jsxs("div",{className:"boarding-pass-body",children:[e.jsx("h1",{className:"boarding-pass-title",children:a("success.boardingPass.title")}),e.jsx("p",{className:"boarding-pass-subtitle",children:a("success.boardingPass.subtitle")}),e.jsxs("div",{className:"boarding-pass-grid",children:[e.jsxs("div",{className:"boarding-pass-field",children:[e.jsx("div",{className:"boarding-pass-label",children:a("success.boardingPass.plan")}),e.jsx("div",{className:"boarding-pass-value",children:r.name.split(" ")[1]})]}),e.jsxs("div",{className:"boarding-pass-field",children:[e.jsx("div",{className:"boarding-pass-label",children:a("success.boardingPass.status")}),e.jsx("div",{className:"boarding-pass-value highlight",children:a("success.boardingPass.statusActive")}
115)]}),e.jsxs("div",{className:"boarding-pass-field",children:[e.jsx("div",{className:"boarding-pass-label",children:a("success.boardingPass.price")}),e.jsx("div",{className:"boarding-pass-value",children:r.price})]})]}),e.jsx("div",{className:"boarding-pass-divider"}),e.jsxs("div",{className:"boarding-pass-grid",children:[e.jsxs("div",{className:"boarding-pass-field",style:{gridColumn:"span 2"},children:[e.jsx("div",{className:"boarding-pass-label",children:a("success.boardingPass.passenger")}),e.jsx("div",{className:"boarding-pass-value text-mono",style:{fontSize:"0.9rem"},children:s.email})]}),e.jsxs("div",{className:"boarding-pass-field",children:[e.jsx("div",{className:"boarding-pass-label",children:s.subscriptionType==="single"?a("success.boardingPass.expires"):a("success.boardingPass.renews")}),e.jsx("div",{className:"boarding-pass-value",style:{fontSize:"0.9rem"},children:r.nextBilling})]})]}),e.jsx("div",{className:"boarding-pass-barcode",children:Array.from({length:40},(c,i)=>e.jsx("span",{style:{height:`${i*7%20+15}px`}},i))})]})]})}function O({referrerInfo:s,t:r}){return e.jsxs("div",{className:"features-section mb-6",children:[e.jsx("div",{style:{fontFamily:"'JetBrains Mono', monospace",fontSize:"0.65rem",color:"var(--color-text-muted)",letterSpacing:"0.1em",textTransform:"uppercase",marginBottom:"1rem"},children:r("success.unlocked.title")}),e.jsxs("div",{style:{background:"var(--color-surface)",border:"1px solid var(--color-border)",borderRadius:"12px",overflow:"hidden",marginBottom:"1rem"},children:[e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",borderBottom:"1px solid var(--color-border)"},children:[e.jsx("div",{style:{padding:"0.75rem 1rem",background:"rgba(107, 114, 128, 0.1)",borderRight:"1px solid var(--color-border)",textAlign:"center"},children:e.jsx("span",{style:{fontSize:"0.7rem",color:"var(--color-text-muted)",textTransform:"uppercase",letterSpacing:"0.05em"},children:r("success.unlocked.free")})}),e.jsx("div",{style:{padding:"0.75rem 1rem",background:"rgba(0, 212, 255, 0.1)",textAlign:"center"},children:e.jsx("span",{style:{fontSize:"0.7rem",color:"var(--color-cyan)",textTransform:"uppercase",letterSpacing:"0.05em",fontWeight:600},children:r("success.unlocked.premium")})})]}),e.jsx(S,{label:r("success.unlocked.dataRefresh"),freeValue:r("success.unlocked.dataRefreshFree"),premiumValue:r("success.unlocked.dataRefreshPremium"),premiumBadge:r("success.unlocked.fasterLabel"),hasBorder:!0}),e.jsx(S,{label:r("success.unlocked.securityWaitTimes"),freeValue:r("success.unlocked.estimatesOnly"),premiumValue:r("success.unlocked.exactMinutes"),hasBorder:!0}),e.jsx(S,{label:r("success.unlocked.historicalData"),freeValue:r("success.unlocked.none"),premiumValue:r("success.unlocked.ninetyDays")})]}),e.jsxs("div",{style:{background:"linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(255, 215, 0, 0.05))",border:"1px solid var(--color-border-strong)",borderRadius:"12px",padding:"1.25rem"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"1rem"},children:[e.jsx("span",{style:{width:"8px",height:"8px",background:"var(--color-success)",borderRadius:"50%",animation:"pulse-glow 2s ease-in-out infinite"}}),e.jsx("span",{style:{fontSize:"0.75rem",color:"var(--color-success)",fontWeight:500},children:r("success.live.badge")}),e.jsx("span",{style:{fontSize:"0.75rem",color:"var(--color-text-muted)"},children:r("success.live.premiumActive")})]}),e.jsx("div",{style:{fontSize:"0.9rem",color:"var(--color-text)",marginBottom:"0.75rem"},children:s.isAirport?r("success.live.dataReady"):r("success.live.tryNow")}),e.jsxs("a",{href:s.isAirport?s.path:"/airports/jfk-john-f-kennedy-international-airport",style:{display:"inline-flex",alignItems:"center",gap:"0.5rem",fontSize:"0.8rem",color:"var(--color-cyan)",textDecoration:"none",fontWeight:500},children:[s.isAirport?s.label:r("success.live.seeJfkData"),e.jsx("span",{children:"→"})]})]})]})}function S({label:s,freeValue:r,premiumValue:a,premiumBadge:c,hasBorder:i}){return e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",...i?{borderBottom:"1px solid var(--color-border)"}:{}},children:[e.jsxs("div",{style:{padding:"1rem",borderRight:"1px solid var(--color-border)",opacity:.6},children:[e.jsx("div",{style:{fontSize:"0.7rem",color:"var(--color-text-muted)",marginBottom:"0.25rem"},children:s}),e.jsx("div",{style:{fontSize:"0.85rem",color:"var(--color-text)"},children:r})]}),e.jsxs("div",{style:{padding:"1rem",background:"rgba(0, 212, 255, 0.05)"},children:[e.jsx("div",{style:{fontSize:"0.7rem",color:"var(--color-text-muted)",marginBottom:"0.25rem"},children:s}),e.jsx("div",{style:{fontSize:"0.85rem",color:"var(--color-cyan)",fontWeight:600},children:a}),c&&e.jsx("div",{style:{fontSize:"0.65rem",color:"var(--color-success)",marginTop:"0.25rem"},children:c})]})]})}function Y({isPremium:s}){const[r,a]=t.useState(null),[c,i]=t.useState(!1),[n,p]=t.useState(!1);if(t.useEffect(()=>{if(typeof window>"u"||!s)return;let d=!1;return(async()=>{try{try{const m=await fetch("/api/referral/applied",{credentials:"include"});if(m.ok){const v=await m.json();!d&&v.applied&&i(!0)}}catch{}const x=await fetch("/api/referral",{credentials:"include"});if(!x.ok){d||p(!0);return}const u=await x.json();if(d)return;if(u.hasCode&&u.referralLink){a(u.referralLink);return}const b=await fetch("/api/referral/generate",{method:"POST",credentials:"include"});if(!b.ok){d||p(!0);return}const f=await b.json();if(d)return;f.referralLink?a(f.referralLink):f.referralCode?a(`https://flightqueue.com/?ref=${f.referralCode}`):p(!0)}catch{d||p(!0)}})(),()=>{d=!0}},[s]),!s||n&&!r)return null;
115const k=c?"🎉 Welcome — your first month is free!":"Get a free month — give one too",h=c?"Now refer a friend so they can skip security too. When they subscribe, you each get a free month.":"Share your link with a friend. When they subscribe, you each get a free month.";return e.jsxs("div",{className:"mb-6 p-5 sm:p-6 rounded-2xl",style:{background:"var(--color-surface, rgba(255,255,255,0.04))",border:"1px solid var(--color-border-strong, rgba(255,255,255,0.12))"},children:[e.jsxs("div",{className:"flex items-start gap-3 mb-3",children:[e.jsx("div",{className:"flex-shrink-0 inline-flex items-center justify-center w-10 h-10 rounded-full",style:{background:"rgba(245, 200, 66, 0.2)"},"aria-hidden":"true",children:e.jsx("span",{style:{fontSize:"1.25rem",lineHeight:1},children:"🎁"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"text-base sm:text-lg font-bold leading-snug",style:{color:"var(--color-text, #fff)"},children:k}),e.jsx("p",{className:"text-xs sm:text-sm mt-1",style:{color:"var(--color-text-muted, rgba(255,255,255,0.7))"},children:h})]})]}),e.jsx(V,{link:r,variant:"card"})]})}function H(){if(typeof window>"u")return{path:"/",label:"Check Airport Wait Times",isAirport:!1};const s=localStorage.getItem("flightqueue_checkout_referrer")||"/",r=s.match(/\/airports?\/([a-z]{3})-([a-z-]+)/i);if(r){const a=r[1].toUpperCase();return{path:s,label:`Check ${a} Wait Times`,isAirport:!0}}if(s.includes("/security-wait-times")){const a=s.match(/\/airports?\/([a-z]{3})/i);if(a){const c=a[1].toUpperCase();return{path:s,label:`Check ${c} Security Times`,isAirport:!0}}}return{path:"/",label:"Check Airport Wait Times",isAirport:!1}}function ee(){const s=R(),{t:r}=q(),{setAuthUser:a}=W(),[c,i]=t.useState("loading"),[n,p]=t.useState(null),[k,h]=t.useState(""),[d,x]=t.useState(!1),[u,b]=t.useState({path:"/",label:r("success.cta.checkAirportWaitTimes"),isAirport:!1}),[f,m]=t.useState("untested"),v=t.useRef(!1),{completedItems:w,markComplete:z}=L(),B=t.useCallback(async()=>{m("testing");try{const o=D();if(!o){m("failed");return}const g=await fetch("/api/dashboard/stats",{headers:{Authorization:`Bearer ${o}`}});if(g.ok){const l=await g.json();l&&!l.error?(m("verified"),M.success(r("success.toast.accessVerified"))):m("failed")}else m("failed")}catch{m("failed")}},[r]),y=t.useCallback(()=>typeof window>"u"?null:new URLSearchParams(window.location.search).get("session_id"),[]),j=t.useCallback(async o=>{try{const l=await(await fetch(`/api/verify-session?session_id=${o}`,{credentials:"include"})).json();if(l.success){if($(l.authToken||"",l.user?.email||""),typeof window<"u"&&(localStorage.setItem("flightqueue_new_user","true"),localStorage.setItem("flightqueue_signup_date",new Date().toISOString())),l.user?.email){const A=l.user.email.split("@")[0],P=A.length>0?A.substring(0,2).toUpperCase():"U";a({email:l.user.email,initials:P,tier:"premium"})}p(l.user||null),i("success"),l.user?.subscriptionType&&I({transactionId:o,subscriptionType:l.user.subscriptionType}),b(H()),x(!0),typeof window<"u"&&localStorage.removeItem("flightqueue_checkout_referrer")}else h(l.error||"Payment verification failed."),i("error")}catch{h("Unable to verify payment. Please refresh or contact support."),i("error")}},[a]),T=t.useCallback(()=>{const o=y();o&&(i("loading"),h(""),j(o))},[y,j]),C=t.useMemo(()=>{if(!n)return null;const o=new Date(n.accessExpiresAt);switch(n.subscriptionType){case"monthly":return{name:"Premium Monthly",price:`${s.monthly.formatted}/mo`,badge:r("success.boardingPass.badges.recurring"),nextBilling:o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})};case"yearly":return{name:"Premium Yearly",price:`${s.yearly.formatted}/yr`,badge:r("success.boardingPass.badges.bestValue"),nextBilling:o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})};case"trip_pass":return{name:"7-Day Trip Pass",price:s.tripPass.formatted,badge:"7 DAY PASS",nextBilling:o.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})};default:return{name:"Single Access",price:"$1.00",badge:r("success.boardingPass.badges.oneTime"),nextBilling:o.toLocaleStr
115ing("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}}},[n,r]);return t.useEffect(()=>{if(v.current)return;v.current=!0;const o=y();o?j(o):(h("No session ID provided."),i("error"))},[y,j]),e.jsxs("div",{className:"success-page",children:[e.jsx("style",{children:E}),e.jsx("div",{className:"runway-grid"}),d&&e.jsx(F,{}),e.jsx("div",{className:"container mx-auto px-4 py-8 md:py-12 relative z-10",children:e.jsxs("div",{className:"max-w-xl mx-auto",children:[c==="loading"&&e.jsxs("div",{className:"text-center py-20",children:[e.jsxs("div",{className:"radar-container",children:[e.jsx("div",{className:"radar-ring"}),e.jsx("div",{className:"radar-ring"}),e.jsx("div",{className:"radar-ring"}),e.jsx("div",{className:"radar-sweep"}),e.jsx("div",{className:"radar-center"})]}),e.jsxs("div",{className:"loading-text",children:[e.jsx("h2",{className:"loading-title",children:r("success.loading.title")}),e.jsx("p",{className:"loading-subtitle",children:r("success.loading.subtitle")})]})]}),c==="success"&&n&&C&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"onboarding-progress",children:[e.jsxs("div",{className:"onboarding-progress-step",children:[e.jsx("div",{className:"onboarding-progress-dot completed",children:e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})}),e.jsx("div",{className:"onboarding-progress-label active",children:"Account Created"})]}),e.jsx("div",{className:"onboarding-progress-connector completed"}),e.jsxs("div",{className:"onboarding-progress-step",children:[e.jsx("div",{className:"onboarding-progress-dot active",children:"2"}),e.jsx("div",{className:"onboarding-progress-label active",children:"Set Up"})]}),e.jsx("div",{className:"onboarding-progress-connector"}),e.jsxs("div",{className:"onboarding-progress-step",children:[e.jsx("div",{className:"onboarding-progress-dot upcoming",children:"3"}),e.jsx("div",{className:"onboarding-progress-label",children:"Explore"})]})]}),e.jsxs("div",{className:"success-icon",children:[e.jsx("div",{className:"success-icon-ring"}),e.jsx("svg",{className:"success-icon-check",viewBox:"0 0 50 50",children:e.jsx("polyline",{points:"12,26 22,36 38,16"})})]}),e.jsxs("div",{style:{textAlign:"center",marginBottom:"1.5rem",animation:"card-reveal 0.5s 0.15s ease backwards"},children:[e.jsx("h1",{style:{fontSize:"clamp(1.5rem, 4vw, 2rem)",fontWeight:700,marginBottom:"0.5rem",background:"linear-gradient(135deg, var(--color-text), var(--color-gold-soft))",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"},children:"Welcome aboard!"}),e.jsx("p",{style:{color:"var(--color-text-muted)",fontSize:"1rem",lineHeight:1.5},children:"Your premium access is active. You now have the tools to travel smarter."})]}),e.jsxs("div",{style:{background:"var(--color-surface)",border:"1px solid var(--color-border-strong)",borderRadius:"16px",padding:"1.5rem",marginBottom:"1.5rem",animation:"card-reveal 0.5s 0.25s ease backwards"},children:[e.jsx("div",{style:{fontFamily:"'JetBrains Mono', monospace",fontSize:"0.65rem",color:"var(--color-cyan)",letterSpacing:"0.1em",textTransform:"uppercase",marginBottom:"1rem"},children:"Try these right now"}),e.jsxs("a",{href:"/airports?focus=home",className:"quick-win-card",children:[e.jsx("div",{className:"quick-win-icon",style:{background:"rgba(0, 212, 255, 0.15)"},children:"✈"}),e.jsxs("div",{className:"quick-win-content",children:[e.jsx("div",{className:"quick-win-title",children:"Search your home airport"}),e.jsx("div",{className:"quick-win-desc",children:"Find your airport, open its page, pin it as home"})]}),e.jsx("span",{className:"quick-win-arrow",children:"→"})]}),e.jsxs("a",{href:"/features/airport-alerts",className:"quick-win-card",children:[e.jsx("div",{className:"quick-win-icon",style:{background:"rgba(255, 215, 0, 0.15)"},children:"🔔"}),e.jsxs("div",{className:"quick-win-content",children:[e.jsx("div",{className:"quick-win-title",children:"Set up a trip alert"}),e.jsx("div",{className:"quick-win-desc",children:"Get notified when wait times spike"})]}),e.jsx("span",{className:"quick-win-arrow",children:"→"})]}),e.jsxs("a",{href:"/delays",className:"quick-win-card",children:[e.jsx("div",{className:"quick-win-icon",style:{background:"rgba(34, 197, 94, 0.15)"},children:"⚡"}),e.jsxs("div",{className:"quick-win-content",children:[e.jsx("div",{className:"quick-win-title",children:"Check live delays"}),e.jsx("div",{className:"quick-win-desc",children:"Real-time FAA delay status across the US"})]}),e.jsx("span",{className:"quick-win-arrow",children:"→"})]})]}),e.jsxs("div",{className:"social-proof",children:[e.jsxs("div",{className:"social-proof-avatars",children:[e.jsx("div",{className:"social-proof-avatar",style:{background:"#22d3ee"},children:"JK"}),e.jsx("div",{className:"social-proof-avatar",style:{background:"#f59e0b"},children:"AS"}),e.jsx("div",{className:"social-proof-avatar",style:{background:"#22c55e"},children:"ML"}),e.jsx("div",{className:"social-proof-avatar",style:{background:"#a855f7"},children:"TR"})]}),e.jsxs("span",{className:"social-proof-text",children:["Join ",e.jsx("strong",{children:"2,000+"})," travelers who check FlightQueue before every trip"]})]}),e.jsxs("div",{className:"email-notice",children:[e.jsx("span",{className:"email-notice-icon",children:"✉"}),e.jsx("span",{children:r("success.confirmation.emailSent",{email:n.email})})]}),e.jsx(_,{markComplete:z}),e.jsx(G,{accessStatus:f,onTest:B,t:r}),e.jsx(J,{userData:n,planDetails:C,t:r}),e.jsx(O,{referrerInfo:u,t:r}),(n.subscriptionType==="monthly"||n.subscriptionType==="yearly")&&e.jsx(Y,{isPremium:!0}),e.jsxs("div",{className:"activation-checklist mb-6",children:[e.jsxs("div",{className:"activation-checklist-header",children:[e.jsx("span",{style:{fontSize:"1.25rem"},children:"🚀"}),e.jsx("span",{className:"activation-checklist-title",children:r("success.getStarted.title")}),e.jsxs("span",{className:"activation-checklist-progress",children:[w.length,"/",N.length]})]}),e.jsxs("div",{className:"activation-checklist-body",children:[N.map(o=>{const g=w.includes(o.id);return e.jsxs("a",{href:o.href,className:`checklist-item ${g?"completed":""}`,onClick:()=>z(o.id),children:[e.jsx("div",{className:`checklist-checkbox ${g?"checked":""}`,children:g&&e.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"20 6 9 17 4 12"})})}),e.jsx("span",{className:"checklist-icon",children:o.icon}),e.jsxs("div",{className:"checklist-content",children:[e.jsx("div",{className:"checklist-label",children:r(`success.onboarding.items.${o.translationKey}.label`)}),e.jsx("div",{className:"checklist-description",children:r(`success.onboarding.items.${o.translationKey}.description`)})]}),e.jsx("span",{className:"checklist-arrow",children:"→"})]},o.id)}),e.jsx("div",{className:"progress-bar-bg",children:e.jsx("div",{className:"progress-bar-fill",style:{width:`${w.length/N.length*100}%`}})})]})]}),e.jsxs("div",{className:"cta-section",children:[e.jsxs("a",{href:u.path,className:"cta-primary",children:[e.jsx("span",{children:u.label}),e.jsx("span",{children:"→"})]}),e.jsx("a",{href:"/dashboard",className:"cta-secondary",children:r("success.cta.openD
115ashboard")}),(n.subscriptionType==="monthly"||n.subscriptionType==="yearly")&&e.jsxs("p",{style:{marginTop:"1.5rem",fontSize:"0.8rem",color:"var(--color-text-muted)",textAlign:"center"},children:[n.trialEndsAt&&e.jsxs(e.Fragment,{children:[r("success.cta.trialReminder",{date:new Date(n.trialEndsAt).toLocaleDateString(void 0,{month:"short",day:"numeric"})}),e.jsx("br",{})]}),r("success.cta.moneyBack")," ",e.jsx("a",{href:"/refund",style:{color:"var(--color-cyan)",textDecoration:"underline"},children:r("success.cta.moneyBackLink")})]})]})]}),c==="error"&&e.jsxs("div",{className:"error-card",children:[e.jsx("div",{className:"error-icon",children:"✕"}),e.jsx("h1",{className:"error-title",children:r("success.error.title")}),e.jsx("p",{className:"error-message",children:k}),e.jsx("button",{onClick:T,className:"cta-primary",style:{marginBottom:"0.75rem"},children:r("success.error.retry")}),e.jsx("a",{href:"/",className:"cta-secondary",children:r("success.error.returnHome")}),e.jsxs("div",{style:{marginTop:"2rem",padding:"1.25rem",background:"rgba(0, 212, 255, 0.05)",border:"1px solid var(--color-border)",borderRadius:"12px",textAlign:"left"},children:[e.jsx("div",{style:{fontSize:"0.9rem",fontWeight:600,marginBottom:"0.75rem"},children:r("success.error.support.title")}),e.jsx("p",{style:{fontSize:"0.8rem",color:"var(--color-text-muted)",marginBottom:"1rem",lineHeight:1.5},children:r("success.error.support.message")}),e.jsx("div",{style:{display:"flex",gap:"0.75rem",flexWrap:"wrap"},children:e.jsxs("a",{href:"mailto:[email protected]?subject=Payment%20Verification%20Issue",style:{display:"inline-flex",alignItems:"center",gap:"0.5rem",padding:"0.5rem 1rem",background:"var(--color-cyan)",color:"var(--color-bg)",borderRadius:"8px",fontSize:"0.8rem",fontWeight:600,textDecoration:"none"},children:["📧 ",r("success.error.support.emailSupport")]})})]})]})]})})]})}function G({accessStatus:s,onTest:r,t:a}){const i={verified:{icon:"✓",color:"var(--color-success)",bg:"rgba(34, 197, 94, 0.1)",border:"rgba(34, 197, 94, 0.3)"},failed:{icon:"⚠",color:"var(--color-error)",bg:"rgba(239, 68, 68, 0.1)",border:"rgba(239, 68, 68, 0.3)"},untested:{icon:"🔐",color:"var(--color-text-muted)",bg:"var(--color-surface)",border:"var(--color-border)"},testing:{icon:"⋯",color:"var(--color-cyan)",bg:"var(--color-surface)",border:"var(--color-border)"}}[s];return e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.75rem 1rem",background:i.bg,border:`1px solid ${i.border}`,borderRadius:"8px",marginBottom:"1.5rem",fontSize:"0.85rem"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[e.jsx("span",{style:{color:i.color,...s==="testing"?{animation:"pulse-glow 1.5s ease-in-out infinite"}:{}},children:i.icon}),e.jsx("span",{style:{color:i.color},children:a(`success.accessStatus.${s}`)})]}),s==="untested"&&e.jsx("button",{onClick:r,style:{background:"var(--color-surface-elevated)",border:"1px solid var(--color-border)",borderRadius:"6px",padding:"0.375rem 0.75rem",fontSize:"0.75rem",color:"var(--color-cyan)",cursor:"pointer"},children:a("success.accessStatus.testNow")}),s==="failed"&&e.jsx("a",{href:"mailto:[email protected]?subject=Premium%20Access%20Issue",style:{background:"rgba(239, 68, 68, 0.2)",border:"1px solid rgba(239, 68, 68, 0.3)",borderRadius:"6px",padding:"0.375rem 0.75rem",fontSize:"0.75rem",color:"var(--color-error)",textDecoration:"none"},children:a("success.accessStatus.contactSupport")})]})}export{ee as SuccessPage};

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.