PageSourceSearch

https://surviveaccounting.com/assets/send-D7v1yoPX.js

js surviveaccounting.com collected 2026-10-09 03:04:16 UTC 4,876 bytes, 21 lines download raw bytes

1import{r,j as e,N as j,br as g,Y as w,c3 as N,c4 as k}from"./index-B-VekllG.js";const o=5;function S(t){return new Promise((d,i)=>{const l=new FileReader;l.onload=()=>d(String(l.result)),l.onerror=()=>i(new Error(`Could not read "${t.name}".`)),l.readAsDataURL(t)})}const z=`
2.nl-send { max-width: 640px; margin: clamp(36px, 6vw, 72px) auto 0; }
3.nl-send .nl-h1 { font-size: clamp(38px, 6vw, 64px); }
4.nl-send-form { display: grid; gap: 16px; margin-top: 28px; }
5.nl-drop { display: flex; align-items: center; gap: 12px; min-height: 76px; padding: 14px 16px; border-radius: 12px; border: 1.5px dashed var(--ink); background: var(--hi-2); color: var(--ink); font: 550 15px/1.35 var(--sans); cursor: pointer; text-align: left; }
6.nl-drop:hover { background: var(--hi); }
7.nl-drop[data-has] { border-style: solid; background: var(--sheet); }
8.nl-drop svg { flex: none; }
9.nl-drop small { display: block; font: 400 13px/1.3 var(--sans); color: var(--muted); margin-top: 2px; }
10.nl-field { display: grid; gap: 6px; font: 500 12px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
11.nl-input { width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 8px; border: 1.5px solid var(--ink); background: var(--sheet); color: var(--ink); font: 400 16px/1.4 var(--sans); }
12.nl-input::placeholder { color: #8C897B; }
13.nl-input:focus { outline: none; box-shadow: 0 0 0 3px var(--hi); }
14textarea.nl-input { min-height: 84px; resize: vertical; }
15.nl-send .nl-btn { width: 100%; }
16.nl-send .nl-btn.hi:disabled { opacity: .55; transform: none; box-shadow: 3px 3px 0 var(--ink); }
17.nl-send-note { font: 400 13px/1.5 var(--sans); color: var(--muted); }
18.nl-done { display: grid; gap: 8px; margin-top: 28px; }
19.nl-done .nl-hand { font-size: 34px; }
20.nl-err { color: var(--pen-ink); font-size: 14px; }
21`;function A(){const[t,d]=r.useState(""),[i,l]=r.useState(""),[a,y]=r.useState([]),[h,u]=r.useState(!1),[f,v]=r.useState(!1),[m,c]=r.useState(null),x=/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(t.trim())&&a.length>0&&!h,b=async n=>{if(n.preventDefault(),!!x){u(!0),c(null);try{const s=await Promise.all(a.slice(0,o).map(async p=>({name:p.name,type:p.type,dataUrl:await S(p)})));await k({data:{email:t.trim(),note:i.trim()||null,files:s}}),v(!0)}catch(s){c(s instanceof Error?s.message:"Something went wrong. Try again, or email it to [email protected].")}finally{u(!1)}}};return e.jsxs(j,{children:[e.jsx("style",{children:z}),e.jsxs("section",{className:"nl-send",children:[e.jsx("p",{className:"nl-kicker",children:"Any accounting class, any campus"}),e.jsx("h1",{className:"nl-h1",style:{marginTop:10},children:"Send me your syllabus."}),e.jsx("p",{className:"nl-lede",style:{marginTop:14},children:"Your syllabus, study guides, or a screenshot of the exam schedule. I build the cram videos from what your professor actually tests."}),f?e.jsxs("div",{className:"nl-card nl-done",children:[e.jsx("span",{className:"nl-hand",children:"Got it ✓"}),e.jsx("p",{style:{color:"var(--ink-2)"},children:"I read every one. If your class isn't on the site yet, this is how it gets there. Watch your inbox."}),e.jsx("div",{children:e.jsxs("a",{className:"nl-btn hi",href:"/",style:{width:"auto"},children:["Back to the homepage",e.jsx(g,{size:18,"aria-hidden":!0})]})})]}):e.jsxs("form",{className:"nl-card nl-send-form",onSubmit:b,children:[e.jsx("input",{id:"send-files",type:"file",multiple:!0,accept:".pdf,image/*,.doc,.docx",style:{display:"none"},onChange:n=>{const s=Array.from(n.target.files??[]);c(s.length>o?`Up to ${o} files at a time.`:null),y(s.slice(0,o))}}),e.jsxs("label",{htmlFor:"send-files",className:"nl-drop","data-has":a.length?"":void 0,children:[a.length?e.jsx(w,{size:20,"aria-hidden":!0}):e.jsx(N,{size:20,"aria-hidden":!0}),e.jsxs("span",{children:[a.length?a.map(n=>n.name).join(", "):"Tap to add your files",e.jsx("small",{children:a.length?`${a.length} of ${o} · tap to change`:`PDF, photo or screenshot · up to ${o} files`})]})]}),e.jsxs("label",{className:"nl-field",children:["Your email",e.jsx("input",{className:"nl-input",type:"email",inputMode:"email",autoComplete:"email",value:t,onChange:n=>d(n.target.value),placeholder:"[email protected]"})]}),e.jsxs("label",{className:"nl-field",children:["Anything I should know ",e.jsx("span",{style:{textTransform:"none",letterSpacing:0},children:"(optional)"}),e.jsx("textarea",{className:"nl-input",value:i,onChange:n=>l(n.target.value),placeholder:"Your school, the course code, which exam is next…"})]}),m&&e.jsx("p",{className:"nl-err",role:"alert",children:m}),e.jsxs("button",{type:"submit",className:"nl-btn hi big",disabled:!x,children:[h?"Sending…":"Send it to Lee",e.jsx(g,{size:18,"aria-hidden":!0})]}),e.jsx("p",{className:"nl-send-note",children:"Your files go to Lee and nobody else. Nothing here signs you up for anything."})]})]})]})}export{A as component};

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.