PageSourceSearch

https://studio.twotap.art/_next/static/chunks/11308-ee57231204e75203.js?dpl=dpl_DoBXWJQdnHC8odnkBCV6euF63iDq

js twotap.art collected 2026-10-08 19:42:29 UTC 23,623 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11308],{36998:(e,t,r)=>{r.d(t,{J:()=>o});var a=r(70849);r(72613);var i=r(18847),s=r(67491);function o({className:e,...t}){return(0,a.jsx)(i.b,{"data-slot":"label",className:(0,s.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}},37363:(e,t,r)=>{r.d(t,{y:()=>o});var a=r(70849),i=r(17551),s=r(67491);function o({className:e,...t}){return(0,a.jsx)(i.A,{role:"status","aria-label":"Loading",className:(0,s.cn)("size-4 animate-spin",e),...t})}},67491:(e,t,r)=>{r.d(t,{cn:()=>s});var a=r(66558);let i=(0,r(55468).zu)({extend:{classGroups:{"font-size":[{text:["micro","meta","caption"]}]}}});function s(...e){return i((0,a.$)(e))}},72185:(e,t,r)=>{r.r(t),r.d(t,{StudioSpaceProvider:()=>n,useStudioSpace:()=>l});var a=r(70849),i=r(72613),s=r(70276);let o=(0,i.createContext)({spaceId:"freya",voice:(0,s.Vp)("freya")});function n({spaceId:e,children:t}){return(0,a.jsx)(o.Provider,{value:{spaceId:e,voice:(0,s.Vp)(e)},children:t})}function l(){return(0,i.useContext)(o)}},74033:(e,t,r)=>{r.d(t,{KV:()=>s,Pr:()=>o,wL:()=>n});let a="aria-invalid:bg-destructive/[0.07] aria-invalid:ring-2 aria-invalid:ring-destructive/40 aria-invalid:focus-visible:ring-destructive/40",i="disabled:cursor-not-allowed disabled:opacity-50",s=["rounded-md bg-surface-subtle text-foreground shadow-none outline-none placeholder:text-muted-foreground transition-[color,background-color,box-shadow] focus-visible:bg-card focus-visible:ring-[3px] focus-visible:ring-primary/25",a,i].join(" "),o=["rounded-md bg-neutral-800 text-neutral-100 shadow-none outline-none placeholder:text-neutral-400 transition-[color,background-color,box-shadow] focus-visible:bg-neutral-700 focus-visible:ring-[3px] focus-visible:ring-white/25",i].join(" "),n=["rounded-control bg-card text-foreground shadow-card outline-none placeholder:text-muted-foreground transition-[color,background-color,box-shadow] focus-visible:ring-[3px] focus-visible:ring-primary/25",a,i].join(" ")},75796:(e,t,r)=>{r.d(t,{$:()=>l,r:()=>n});var a=r(70849);r(72613);var i=r(99784),s=r(99952),o=r(67491);let n=(0,s.F)("joy-tap inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-soft",lavender:"bg-brand-lavender text-brand-emerald font-semibold shadow-[0_6px_24px_rgba(220,190,254,0.45)] hover:brightness-[1.03] hover:shadow-[0_8px_32px_rgba(220,190,254,0.65)]",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20",outline:"bg-secondary text-secondary-foreground hover:bg-muted",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-muted/70 hover:text-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3 pointer-coarse:min-h-11",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4 pointer-coarse:min-h-11",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function l({className:e,variant:t,size:r,asChild:s=!1,...d}){let c=s?i.DX:"button";return(0,a.jsx)(c,{"data-slot":"button",className:(0,o.cn)(n({variant:t,size:r,className:e})),...d})}},80659:(e,t,r)=>{r.d(t,{Rv:()=>n,XW:()=>o,KK:()=>i,hx:()=>u,tX:()=>c,zx:()=>d,Yv:()=>l,t4:()=>m});var a=r(86343);let i={id:"twotap",identity:{name:"Twotap",wordmark:"/brand/twotap/twotap-wordmark.png",wordmarkWhite:"/brand/twotap/twotap-wordmark-white.png",mark:"/brand/twotap/twotap-app-icon-rounded.png"},modules:[{id:"summit",label:"Summit",href:"/summit",icon:"summit",active:!1,position:"top"}]},s={freya:{id:"freya",identity:{name:"Freya",wordmark:"/brand/freya-logo.jpeg",wordmarkWhite:"/brand/freya-logo.jpeg",mark:"/brand/freya-logo.jpeg"},modules:[]},twotap:i},o={freya:{id:"freya",platformId:"freya",name:"Freya's Academy",shortName:"Freya",logo:"/brand/freya-logo.jpeg",homeHref:"/dashboard",commerceSource:"woo_freya",domains:["studio.freya.courses"],entitlementTier:"free",status:"active"},twotap_access:{id:"twotap_access",platformId:"twotap",name:"Twotap Access",shortName:"Twotap",logo:i.identity.mark,homeHref:"/dashboard",commerceSource:"woo_twotap_access",domains:["studio.tw
1otap.art","access.twotap.com"],entitlementTier:"free",status:"active"}},n={woo_freya:{id:"woo_freya",label:"Freya WooCommerce",provider:"woocommerce",platformId:"freya",spaceId:"freya",entitlementTier:"free",active:!0,envPrefix:"WC"},woo_twotap_access:{id:"woo_twotap_access",label:"Twotap Access WooCommerce",provider:"woocommerce",platformId:"twotap",spaceId:"twotap_access",entitlementTier:"free",active:!0,envPrefix:"TWOTAP_WC"},direct_freya:{id:"direct_freya",label:"Freya direct signup",provider:"direct",platformId:"freya",spaceId:"freya",entitlementTier:"free",active:!0},direct_twotap:{id:"direct_twotap",label:"Twotap direct signup",provider:"direct",platformId:"twotap",spaceId:"twotap_access",entitlementTier:"free",active:!0}};function l(e){return"freya"===e||"twotap_access"===e}function d(e){return l(e)?o[e]:null}function c(e){return"woo_freya"===e||"woo_twotap_access"===e||"direct_freya"===e||"direct_twotap"===e?n[e]:null}function u(e,t=i,r){return t.modules.filter(t=>{var i;return("summit"===t.id?t.active||(i=r?.summitNavEligible,"true"===a.env.NEXT_PUBLIC_ENABLE_SUMMIT||"true"===a.env.ENABLE_SUMMIT||!!i):t.active)&&(!e||t.position===e)})}function m(e){return s[o[e].platformId]}},85735:(e,t,r)=>{r.d(t,{MigrationWizard:()=>M});var a=r(70849),i=r(39348),s=r.n(i),o=r(72613),n=r(65928),l=r(19878),d=r(59735),c=r(75796),u=r(55688),m=r(36998),p=r(37363),h=r(20761),g=r(16969),f=r(15127),x=r
1(67491);function y({title:e,steps:t,activeIndex:r,doneMessage:i}){let s=!!i;return(0,a.jsx)("div",{className:"studio-form-well p-4",role:"status","aria-live":"polite","aria-busy":!s,children:(0,a.jsxs)("div",{className:"flex items-start gap-3",children:[s?null:(0,a.jsx)(p.y,{className:"mt-0.5 size-5 shrink-0 text-primary"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 space-y-3",children:[(0,a.jsx)("p",{className:"text-sm font-medium text-foreground",children:s?i:e}),(0,a.jsx)("ol",{className:"space-y-2.5",children:t.map((e,t)=>{let i=s||t<r,o=!s&&t===r;return(0,a.jsxs)("li",{className:"flex gap-2.5 text-sm",children:[(0,a.jsx)("span",{className:"mt-0.5 shrink-0","aria-hidden":!0,children:i?(0,a.jsx)(g.A,{className:"size-4 text-primary",strokeWidth:2.25}):o?(0,a.jsx)(p.y,{className:"size-4 text-primary"}):(0,a.jsx)(f.A,{className:"size-4 text-muted-foreground/40",strokeWidth:1.5})}),(0,a.jsxs)("span",{className:"min-w-0",children:[(0,a.jsx)("span",{className:(0,x.cn)("block leading-snug",i?"text-foreground":o?"font-medium text-foreground":"text-muted-foreground"),children:e.label}),e.detail&&(o||i)?(0,a.jsx)("span",{className:"mt-0.5 block text-xs leading-relaxed text-muted-foreground",children:e.detail}):null]})]},e.label)})}),s?null:(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:"Keep this page open. No access until the steps above finish. Mini tour below for the next 20 seconds or so."})]})]})})}function b({slides:e,playing:t,successSlide:r,intervalMs:i=5500,className:s}){let[n,l]=(0,o.useState)(0),[d,c]=(0,o.useState)(!0),u=r?[r]:e,m=u[n]??u[0],p=!!r;return((0,o.useEffect)(()=>{r&&(l(0),c(!0))},[r]),(0,o.useEffect)(()=>{let e;if(!t||p||u.length<=1)return;let r=setInterval(()=>{c(!1),e=setTimeout(()=>{l(e=>(e+1)%u.length),c(!0)},280)},i);return()=>{clearInterval(r),e&&clearTimeout(e)}},[t,p,u.length,i]),m)?(0,a.jsxs)("div",{className:(0,x.cn)("space-y-3",s),"aria-roledescription":"carousel","aria-label":p?"Welcome":"What you get in The Studio",children:[(0,a.jsxs)("div",{className:(0,x.cn)("relative overflow-hidden rounded-card p-5 transition-all duration-slow",p?"bg-primary/10":"bg-gradient-to-br from-primary/[0.07] via-background to-muted/30"),children:[(0,a.jsxs)("div",{className:(0,x.cn)("space-y-2 transition-all duration-slow ease-out-std",d?"translate-y-0 opacity-100":"translate-y-1 opacity-0"),children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("p",{className:"text-micro font-medium uppercase tracking-[0.14em] text-primary",children:m.kicker}),p?(0,a.jsx)("span",{className:"flex size-8 shrink-0 items-center justify-center rounded-full bg-primary/15","aria-hidden":!0,children:(0,a.jsx)(g.A,{className:"size-4 text-primary",strokeWidth:2.25})}):(0,a.jsx)("span",{className:"shrink-0 font-serif text-3xl leading-none text-primary/20","aria-hidden":!0,children:String(n+1).padStart(2,"0")})]}),(0,a.jsx)("h3",{className:"font-serif text-[1.35rem] leading-snug tracking-tight text-foreground text-balance",children:m.title}),(0,a.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground text-pretty",children:m.body}),m.contrast&&!p?(0,a.jsx)("p",{className:"border-t border-border/50 pt-3 text-xs leading-relaxed text-muted-foreground/90",children:m.contrast}):null]}),p?null:(0,a.jsx)("div",{className:"pointer-events-none absolute -right-6 -top-8 size-32 rounded-full bg-primary/[0.06] blur-2xl","aria-hidden":!0})]}),!p&&u.length>1?(0,a.jsxs)("div",{className:"flex items-center justify-between gap-3 px-0.5",children:[(0,a.jsxs)("p",{className:"text-micro text-muted-foreground",children:["Mini tour while I work \xb7 ",n+1," of ",u.length]}),(0,a.jsx)("div",{className:"flex gap-1.5",role:"tablist","aria-label":"Slide",children:u.map((e,t)=>(0,a.jsx)("button",{type:"button",role:"tab","aria-selected":t===n,"aria-label":`Slide ${t+1}: ${e.title}`,className:(0,x.cn)("h-1.5 rounded-full transition-all",t===n?"w-5 bg-primary":"w-1.5 bg-muted-foreground/30 hover:bg-muted-foreground/50"),onClick:()=>{c(!1),setTimeout(()=>{l(t),c(!0)},200)}},e.title))})]}):null]}):null}let v=[{kicker:"While I look you up",title:"More than watching videos",body:"If your old home was mostly a video library, The Studio is different. You practice here, share work, and see your progress add up.",contrast:"Videos are still here. So are habits, community, and tools that help you finish pieces."}
1,{kicker:"Monthly push",title:"Challenges when you want one",body:"Themed competitions and community energy when you need a reason to finish something you are proud of.",contrast:'No more "I will paint someday" without a clear next step waiting for you.'},{kicker:"The Gallery",title:"Your art in the open",body:"Post work, react to others, and get feedback from artists who show up. It is a wall in a shared studio, not a silent comments box."},{kicker:"Progress you can see",title:"Journey Map and rewards",body:"Streaks, milestones, and rewards when you log in, finish lessons, and share art. You feel forward motion, not a forgotten tab."},{kicker:"Push yourself",title:"Monthly challenges",body:"Themed competitions, community energy, and room to stretch. A reason to finish something you are proud of."},{kicker:"Inside your membership",title:"Brushes, palettes, and references",body:"Downloads live in Resources. Less hunting through old emails for files that should already be yours."},{kicker:"Deep learning",title:"17+ courses, one home",body:"Drawing, characters, environments, and more. Taught with warmth and real examples, not a cold catalog."},{kicker:"Personalized start",title:"A note from me after you are in",body:"Short onboarding picks your track and level. I leave you a Freya note with where to begin, not a blank dashboard."},{kicker:"Live energy",title:"Events and deep dives",body:"Summits, replays, and moments that feel live. The Studio is a place you return to, not a folder of MP4s."},{kicker:"Almost there",title:"Access only if your purchases match",body:"I am checking your email against real orders right now. About 20 seconds. No fake unlocks. If this matches, your courses carry over."}],w=[{kicker:"Welcome back",title:"The Studio is your practice home",body:"Courses, challenges, gallery, and progress in one place. Built for artists who want to show up, not just collect tabs."},{kicker:"Today",title:"Press Play on your next lesson",body:"Pick up where you left off with a clear next step. Small, focused, and meant to get your hand moving before perfection talks you out of it."},{kicker:"Community",title:"Share work in the Gallery",body:"Post pieces, appreciate others, and stay in rhythm with people who understand the messy middle of learning."},{kicker:"Momentum",title:"Streaks, rewards, and your Journey Map",body:"Log in, finish lessons, upload art, and watch your path fill in. Progress you can point to on a hard day."},{kicker:"Pick up where you left off",title:"Your courses and notebooks are here",body:"Jump back into lessons, resources, and whatever you were working on. I kept your place warm."}],k=[{kicker:"In your inbox",title:"A 6-digit code is on the way",body:"It expires in 10 minutes. Enter it on the next screen. I never share your email."},{kicker:"Heads up",title:"The Studio is more than videos",body:"Courses, gallery, challenges, and progress tools live here. A quick peek while your code arrives."}];function j(e,t){return"sending"===t?k:"migration_claim"===e?v:w}let N={kicker:"You are in",title:"Access confirmed",body:"Taking you to the next step now. Your creative home is ready."},S=[{label:"Checking your code",detail:"Making sure it matches what I emailed you."},{label:"Signing you in",detail:"Creating your Studio session."},{label:"Opening Studio",detail:"Taking you to your creative home."}],_=[{label:"Checking your code",detail:"Making sure it matches what I emailed you."},{label:"Looking up your past purchases",detail:"Searching WooCommerce for orders on this email. Usually about 20 seconds."},{label:"Matching courses to your account",detail:"Linking what you bought to your new Studio access."},{label:"Preparing password setup",detail:"Almost done. You will set a password on the next screen."}],T={auth:[0,900,1800],migration_claim:[0,3500,1e4,18e3]};function I({purpose:e,source:t,emailLabel:r,emailPlaceholder:i,sendLabel:s,sendPendingLabel:n,codeLabel:l,verifyLabel:d,verifyPendingLabel:g,sentHint:f,verifyProgressSteps:x,verifyProgressTitle:v,successRedirectMessage:w,onUseDifferentEmail:k}){let C=(0,h.useRouter)(),[z,A]=(0,o.useState)(""),[P,M]=(0,o.useState)(""),[L,W]=(0,o.useState)("email"),[E,F]=(0,o.useState)(null),[O,$]=(0,o.useState)("idle"),[U,Y]=(0,o.useState)(0),[D,J]=(0,o.useState)(null),R=(0,o.useRef)([]),V="idle"!==O,q=x??("migration_claim"===e?_:[...S]),B=v??("migration_claim"===e?"Claiming your access (stay on this page)":"Signing you in (stay on this page)"),H=w??("migration_claim"===e?"Access confirmed. Opening password setup…":"You are signed in. Opening The Studio…");function K(){for(let e of R.current)clearTimeout(e);R.current=[]}async function X(r){r.preventDefault(),F(null),$("sending");try{let r=await fetch("/api/auth/send-otp",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:z,purpose:e,source:t})}),a=await r.json();if(!r.ok){if(a.redirectTo)return void window.location.assign(a.redirectTo);F(a.error??"Could not send code.");return}W("code")}catch{F("Could not send code. Check your connection and try again.")}finally{$("idle")}}async function G(r){r.preventDefault(),F(null),$("verifying"),K(),Y(0),J(null);let a=T[e];for(let e=1;e<a.length&&e<q.length;e++){let t=setTimeout(()=>{Y(t=>Math.max(t,e))},a[e]);R.current.push(t)}try{let r=await fetch("/api/auth/verify-otp",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:z,otp:P.trim(),purpose:e,source:t})}),a=await r.json();if(!r.ok){if(a.redirectTo)return void window.location.assign(a.redirectTo);F(a.error??"Could not verify code."),Y(0),J(null),$("idle");return}K(),Y(q.length-1),J(a.successMessage??H),$("redirecting"),C.push(a.redirectTo??"/dashboard"),C.refresh()}catch{F("Could not verify code. Check your connection and try again."),Y(0),J(null),$("idle")}}(0,o.useEffect)(()=>()=>K(),[]);let Q=j(e,"sending"===O?"sending":"verifying"),Z="migration_claim"===e?5e3:4500;return"code"===L&&("verifying"===O||"redirecting"===O)?(0,a.jsxs)("div",{className:"space-y-5",children:[(0,a.jsx)(y,{title:B,steps:q,activeIndex:U,doneMessage:D}),(0,a.jsx)(b,{slides:Q,playing:"verifying"===O,successSlide:D?N:null,intervalMs:Z}),E?(0,a.jsx)("p",{className:"text-sm text-destructive",children:E}):null]}):"code"===L?(0,a.jsxs)("form",{onSubmit:G,className:"space-y-4",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:f(z)}),(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(m.J,{htmlFor:`otp-${e}`,className:"text-sm text-foreground",children:l}),(0,a.jsx)(u.p,{id:`otp-${e}
1`,name:"otp",inputMode:"numeric",autoComplete:"one-time-code",pattern:"\\d{6}",maxLength:6,required:!0,value:P,onChange:e=>M(e.target.value.replace(/\D/g,"").slice(0,6)),className:"tracking-[0.3em] text-center text-lg",disabled:V})]}),E?(0,a.jsx)("p",{className:"text-sm text-destructive",children:E}):null,(0,a.jsxs)(c.$,{type:"submit",className:"w-full gap-2",disabled:V||6!==P.length,"aria-busy":V,children:[V?(0,a.jsx)(p.y,{className:"size-4 shrink-0"}):null,V?g:d]}),k?(0,a.jsx)("button",{type:"button",className:"w-full text-sm text-muted-foreground underline underline-offset-2 hover:text-foreground",disabled:V,onClick:()=>{W("email"),M(""),F(null),k()},children:"Use a different email"}):null]}):(0,a.jsxs)("form",{onSubmit:X,className:"space-y-4",children:[(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(m.J,{htmlFor:`email-${e}`,className:"text-sm text-foreground",children:r}),(0,a.jsx)(u.p,{id:`email-${e}`,name:"email",type:"email",autoComplete:"email",placeholder:i,required:!0,value:z,onChange:e=>A(e.target.value),disabled:V})]}),"sending"===O?(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-md bg-muted/25 px-3 py-2 text-sm text-muted-foreground",role:"status","aria-live":"polite",children:[(0,a.jsx)(p.y,{className:"size-4 shrink-0 text-primary"}),(0,a.jsxs)("span",{children:[n," Check your inbox in a moment."]})]}),(0,a.jsx)(b,{slides:j(e,"sending"),playing:!0,intervalMs:4e3})]}):null,E?(0,a.jsx)("p",{className:"text-sm text-destructive",children:E}):null,(0,a.jsx)(c.$,{type:"submit",className:"w-full",disabled:V,"aria-busy":V,children:V?n:s})]})}var C=r(70443);let z=(0,C.createServerReference)("60027fceb786f15643b29168804a27b76d42621ccf",C.callServer,void 0,C.findSourceMapURL,"requestMigrationLinkAction");var A=r(72185);let P={};function M({useInAppOtp:e,source:t,embedded:r=!1}){return r?(0,a.jsx)(L,{useInAppOtp:e,source:t,embedded:!0}):(0,a.jsxs)("section",{id:"migration",className:"relative mt-10 scroll-mt-6","aria-labelledby":"migration-heading",children:[(0,a.jsx)("div",{className:"absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-border to-transparent","aria-hidden":!0}),(0,a.jsx)("div",{className:"pt-8",children:(0,a.jsx)(L,{useInAppOtp:e,source:t})})]})}function L({useInAppOtp:e,source:t,embedded:r=!1}){let{voice:i}=(0,A.useStudioSpace)();return(0,a.jsxs)("div",{className:"overflow-hidden rounded-card bg-gradient-to-br from-primary/[0.14] via-primary/[0.06] to-background shadow-[0_8px_30px_-12px_rgba(0,0,0,0.12)]",children:[(0,a.jsx)("div",{className:"border-b border-primary/20 bg-primary/[0.08] px-5 py-3",children:(0,a.jsx)("p",{className:"text-micro font-semibold uppercase tracking-[0.16em] text-primary",children:r?"Start here":"Returning student"})}),(0,a.jsxs)("div",{className:"space-y-4 px-5 py-5 sm:px-6 sm:py-6",children:[(0,a.jsxs)("div",{className:"flex gap-3.5",children:[(0,a.jsx)("div",{className:"flex size-11 shrink-0 items-center justify-center rounded-xl bg-primary/15 text-primary","aria-hidden":!0,children:(0,a.jsx)(l.A,{className:"size-5",strokeWidth:1.75})}),(0,a.jsxs)("div",{className:"min-w-0 space-y-1",children:[(0,a.jsx)("h2",{id:"migration-heading",className:"text-[1.25rem] font-bold leading-tight tracking-[-0.02em] text-foreground text-balance",children:i.migrateWizardTitle}),(0,a.jsx)("p",{className:"text-sm leading-relaxed text-muted-foreground text-pretty",children:i.migrateWizardIntro})]})]}),e?(0,a.jsx)(W,{source:t}):(0,a.jsx)(E,{source:t})]})]})}function W({source:e}){let[t,r]=(0,o.useState)(0);return(0,a.jsxs)("div",{className:"rounded-card bg-background/80 p-4 backdrop-blur-sm",children:[(0,a.jsx)(I,{purpose:"migration_claim",source:e,emailLabel:"Email from your old purchase",emailPlaceholder:"[email protected]",sendLabel:"Send my migration code",sendPendingLabel:"Sending code…",codeLabel:"6-digit code",verifyLabel:"Verify and claim my courses",verifyPendingLabel:"Starting verification…",verifyProgressTitle:"Looking up your purchases (about 20 seconds)",successRedirectMessage:"Purchases matched. Opening password setup…",sentHint:e=>(0,a.jsxs)(a.Fragment,{children:["Code sent to ",(0,a.jsx)("span",{className:"font-medium text-foreground",children:e}),". Expires in 10 minutes."]}),onUseDifferentEmail:()=>r(e=>e+1)},t),(0,a.jsxs)("p",{className:"mt-4 border-t border-border/50 pt-3 text-xs leading-relaxed text-muted-foreground",children:["Already signed in before? Use"," ",(0,a.jsx)("span",{className:"font-medium text-foreground",children:"Email link"})," or Password above."]})]})}function E({source:e}){let[t,r]=(0,o.useActionState)(z,P);return(0,a.jsx)("div",{className:"rounded-card bg-background/80 p-4 backdrop-blur-sm",children:(0,a.jsxs)("form",{action:r,className:"space-y-3",children:[e?(0,a.jsx)("input",{type:"hidden",name:"source",value:e}):null,(0,a.jsxs)("div",{className:"space-y-1.5",children:[(0,a.jsx)(m.J,{htmlFor:"migration-email",className:"text-sm text-foreground",children:"Email from your old purchase"}),(0,a.jsx)(u.p,{id:"migration-email",type:"email",name:"email",placeholder:"[email protected]",autoComplete:"email",required:!0})]}),t.error?(0,a.jsx)("p",{role:"alert",className:"text-sm text-destructive",children:t.error}):null,t.sent?(0,a.jsxs)("div",{role:"status",className:"studio-form-well space-y-2 p-3 text-sm text-foreground",children:[(0,a.jsxs)("p",{children:["Your migration link is on its way",t.sentTo?(0,a.jsxs)(a.Fragment,{children:[" ","to ",(0,a.jsx)("span",{className:"font-medium",children:t.sentTo})]}):null,". It works for 24 hours."]}),(0,a.jsx)("p",{className:"text-muted-foreground",children:"Not the right address? Edit it above and send again. If nothing arrives, check spam or promotions."}),t.previewUrl?(0,a.jsxs)("span",{className:"block text-xs text-muted-foreground",children:["Dev preview:"," ",(0,a.jsx)(s(),{href:t.previewUrl,className:"underline underline-offset-2",children:"open link"})]}):null]}):null,(0,a.jsx)(F,{sent:!!t.sent})]})})}function F({sent:e=!1}){let{pending:t}=(0,n.useFormStatus)();return(0,a.jsxs)(c.$,{type:"submit",variant:e?"outline":"default",className:"w-full gap-2",disabled:t,"aria-busy":t,children:[t?(0,a.jsx)(p.y,{className:"size-4 shrink-0"}):null,t?"Sending migration link…":e?"Send another link":"Send migration link",t?null:(0,a.jsx)(d.A,{className:"size-4","aria-hidden":!0})]})}}}]);

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.