1import{r as a,j as e}from"./vendor-query-B2dSGavZ.js";import{T as h,M as u}from"./MuteToggle-BtmjqPYK.js";import{u as x,T as b}from"./Typewriter-Cj9X6xd5.js";import{B as g}from"./SmartBoard-ChH-QYy3.js";import{g as j}from"./demoGrading-DqnWlcgX.js";import"./index-B0ANN8B5.js";import"./vendor-clerk-BaOOjAM4.js";import"./vendor-radix-CQPp34X3.js";import"./vendor-motion-yyTq-gv_.js";import"./generateCategoricalChart-DY3hNjII.js";import"./index-C7yKKq-w.js";import"./external-link-B0cIZP48.js";import"./music-Cw3otJbZ.js";import"./textarea-BM48HA9p.js";import"./input-xldlw5qx.js";import"./lightbulb-Dft9H-Is.js";import"./clipboard-check-BQ5eTQVj.js";import"./circle-check-BZQSDVOl.js";import"./clock-BpMwq8gU.js";import"./StepsBlock-DV0jH19H.js";import"./arrow-right-uc6OIgP8.js";import"./square-CoShrbEp.js";import"./play-DJZED2a9.js";import"./pause-BwF_IN_U.js";import"./pencil-DbqO75kQ.js";import"./timer-xVO-sK2-.js";import"./hand-ClGRNs86.js";import"./minus-DMv6kjk7.js";import"./chart-line-9wU86p4r.js";import"./image-plus-BADIa3lV.js";import"./image-Clem0Sbu.js";import"./code-xml-DUDN9tDK.js";import"./flag-CoXzbF21.js";import"./copy-B-c0029z.js";import"./extends-CF3RwP-h.js";function y(){return{id:"demo-score-projection-q1",kind:"practice",body:JSON.stringify({prompt:"Mia's projection is 1380 and her target is 1400. The plan says she'll cross 1400 with 18 days to spare. What does this mean she should do right now?",kind:"multiple_choice",choices:["Switch programs â she's 20 points short so the current approach isn't working","Stay the course â she's ahead of pace and the model predicts she'll reach 1400","Cram every day to close the 20-point gap as fast as possible","Lower her target to 1380 to match the current projection"],correctAnswer:"B",hints:["The projection is based on her current pace. At that pace, does she reach 1400?",'"Cross 1400 with 18 days to spare" means she hits the target BEFORE the test date.'],status:"open",feedback:"Stay the course. The projection already shows her crossing 1400 before test day â the 1380 today is a snapshot, not the ceiling. Switching programs or cramming would disrupt a pace that's already working. The plan adapts automatically as the projection moves."}),createdAt:new Date(0).toISOString()}}function re(){const r=x(),[i,s]=a.useState(r?12:0),[n,m]=a.useState(y);a.useEffect(()=>{document.title="Score projection · COSMIQ";let t=document.querySelector('meta[name="robots"]');t||(t=document.createElement("meta"),t.setAttribute("name","robots"),document.head.appendChild(t)),t.setAttribute("content","noindex, nofollow")},[]),a.useEffect(()=>{if(r)return;const t=window.setInterval(()=>s(o=>o>=12?0:o+1),380);return()=>window.clearInterval(t)},[r]);async function p(t,o){t===n.id&&j(n,o,m)}const d=1180,c=d+Math.round((1380-d)*(i/12));return e.jsxs(h,{title:"Score projection",children:[e.jsx(u,{}),e.jsxs("div",{"data-testid":"demo-score-projection",className:"max-w-4xl mx-auto px-5 sm:px-8 py-8",children:[e.jsx(b,{text:"Target SAT score: 1400 by August. Here's where mastery data says you'll actually land.",className:"block text-sm opacity-80 mb-6"}),e.jsxs("div",{className:"rounded-xl p-5 border border-cyan-500/40 bg-cyan-500/5 mb-5",children:[e.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest opacity-60",children:"Projected on test day"}),e.jsx("div",{className:"text-5xl font-bold font-mono text-cyan-300 tabular-nums",children:c})]}),e.jsxs("div",{className:"text-right text-xs opacity-70",children:[e.jsxs("div",{children:["Target: ",e.jsx("span",{className:"font-mono text-amber-300",children:"1400"})]}),e.jsx("div",{children:"Test date: Aug 23"})]})]}),e.jsxs("div",{className:"h-3 rounded-full bg-white/10 overflow-hidden relative",children:[e.jsx("div",{className:"absolute inset-y-0 left-0 transition-all duration-300",style:{width:`${(c-800)/8}%`,background:"linear-gradient(90deg, #fb7185, #fbbf24, #34d399)"}}),e.jsx("div",{className:"absolute inset-y-0 w-0.5 bg-amber-300",style:{left:`${600/8}%`}})]}),e.jsxs("div",{className:"flex justify-between text-[10px] opacity-50 mt-1",children:[e.jsx("span",{children:"800"}),e.jsx("span",{children:"1200"}),e.jsx("span",{children:"1400 target"}),e.jsx("span",{children:"1600"})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 mb-6",children:[e.jsx(l,{label:"Math",cur:690,delta:45}),e.jsx(l,{label:"Reading & Writing",cur:c-690,delta:30})]}),e.jsx("div",{className:"rounded-lg p-3 text-sm border mb-8",style:{background:"rgba(52,211,153,0.10)",borderColor:"rgba(52,211,153,0.40)"},children:"ð At your current pace, you'll cross 1400 with 18 days to spare. Plan adapts as the projection moves."}),e.jsxs("section",{"data-testid":"demo-score-projection-question",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-widest opacity-60 mb-3",children:"Your turn â read the projection"}),e.jsx("div",{className:"rounded-xl bg-[hsl(var(--card))] border border-[hsl(var(--border))] p-3",children:e.jsx("div",{className:"rounded-lg bg-[hsl(var(--background))] p-4",children:e.jsx(g,{block:n,onSubmitAnswer:p})})})]}),e.jsxs("section",{className:"mt-8 rounded-xl p-6 text-center",style:{background:"linear-gradient(135deg, rgba(107,76,23
10,0.15), rgba(0,212,255,0.10))",border:"1px solid rgba(107,76,230,0.30)"},children:[e.jsx("div",{className:"text-lg font-bold mb-3",children:"Your live projection updates after every practice session."}),e.jsx("a",{href:"/sign-up",className:"inline-block px-5 py-2.5 rounded-md font-semibold text-sm",style:{background:"linear-gradient(90deg, #6B4CE6, #00D4FF)",color:"#0A0E27"},"data-testid":"demo-cta-signup",children:"Start your first lesson free â"})]})]})]})}function l({label:r,cur:i,delta:s}){return e.jsxs("div",{className:"rounded-lg p-3 bg-white/5 border border-white/10",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-widest opacity-60",children:r}),e.jsx("div",{className:"text-2xl font-bold font-mono",children:i}),e.jsxs("div",{className:"text-[11px] text-green-300",children:[s>=0?"+":"",s," since last mock"]})]})}export{re 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.