1import{c as R,r as k,u as A,j as e,s as w}from"./index-BDKb9oEr.js";import{u as P,a as S,F as q,b as n,c as a,d as o,e as i,C as I,f as t,I as d,S as L,o as M,g as C,s as l,i as v,h as O,l as Y,j as U}from"./sms-consent-fields-eYmv2hdP.js";import{T as u,t as _}from"./textarea-D0f59uS6.js";import{B as D,L as $}from"./button-OoP9rNeH.js";const B=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],W=R("upload",B),z=["application/pdf","application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],H=10*1024*1024,J=["Infant Teacher","Toddler Teacher","Preschool Teacher","Pre-K Teacher"],K=M({appliedFor:U(l()).min(1,"Required"),firstName:l().trim().min(1,"Required").max(80),lastName:l().trim().min(1,"Required").max(80),email:l().trim().email("Invalid email").max(255),phone:l().trim().max(30).optional().or(Y("")),address:l().trim().min(1,"Required").max(255),jobTitle:l().trim().min(1,"Required").max(120),passionateRole:l().trim().min(1,"Required").max(120),yearsExperience:l().trim().min(1,"Required").max(20),highestEducation:l().trim().min(1,"Required").max(120),certifications:l().trim().min(1,"Required").max(1e3),whyAPlayer:l().trim().min(1,"Required").max(2e3),willingToTrain:O(["Yes","No"],{errorMap:()=>({message:"Please select Yes or No"})}),resume:v(File,{message:"Resume is required"}).refine(m=>z.includes(m.type)||/\.(pdf|docx?)$/i.test(m.name),"Only PDF or Word documents allowed").refine(m=>m.size<=H,"Max file size is 10MB"),extraNotes:l().trim().max(1e3).optional(),smsTransactionalConsent:C(),smsMarketingConsent:C()});function Q({defaultRole:m,onSubmitted:y}){const[f,g]=k.useState(!1),N=A(),r=P({resolver:S(K),defaultValues:{appliedFor:m?[m]:[],firstName:"",lastName:"",email:"",phone:"",address:"",jobTitle:"",passionateRole:"",yearsExperience:"",highestEducation:"",certifications:"",whyAPlayer:"",willingToTrain:void 0,extraNotes:"",smsTransactionalConsent:!1,smsMarketingConsent:!1}}),T=r.watch("resume"),F=async s=>{g(!0);try{const c=s.resume.name.replace(/[^\w.\-]+/g,"_"),x=`${Date.now()}-${crypto.randomUUID()}-${c}`,{error:p}=await w.storage.from("resumes").upload(x,s.resume,{contentType:s.resume.type,upsert:!1});if(p){console.error("[CareerApply] resume upload failed:",p),_.error("Could not upload your resume. Please try again.");return}const{data:h}=w.storage.from("resumes").getPublicUrl(x),j=h.publicUrl,E={form:"careers",source:"careers",data:{appliedFor:s.appliedFor?.[0]||void 0,firstName:s.firstName,lastName:s.lastName,email:s.email,phone:s.phone||"",address:s.address,jobTitle:s.jobTitle,passionateRole:s.passionateRole,yearsExperience:s.yearsExperience,highestEducation:s.highestEducation,certifications:s.certifications,whyAPlayer:s.whyAPlayer,willingToTrain:s.willingToTrain,resumeUrl:j,extraNotes:s.extraNotes||""}},b=await fetch("/api/wix-sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)});b.ok||console.warn("[CareerApply] sync non-200:",b.status),r.reset(),y?.(),N({to:"/thank-you/career-application"})}catch(c){console.error("[CareerApply] submit error:",c),r.reset(),y?.(),N({to:"/thank-you/career-application"})}finally{g(!1)}};return e.jsx(q,{...r,children:e.jsxs("form",{onSubmit:r.handleSubmit(F),className:"space-y-4",children:[e.jsx(n,{control:r.control,name:"appliedFor",render:()=>e.jsxs(a,{children:[e.jsx(o,{children:"Applying For (Select All That Apply) *"}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:J.map(s=>e.jsx(n,{control:r.control,name:"appliedFor",render:({field:c})=>{const x=c.value??[],p=x.includes(s);return e.jsxs(a,{className:"flex flex-row items-center space-x-2 space-y-0",children:[e.jsx(i,{children:e.jsx(I,{checked:p,onCheckedChange:h=>{h?c.onChange([...x,s]):c.onChange(x.filter(j=>j!==s))}})}),e.jsx(o,{className:"font-normal cursor-pointer",children:s})]})}},s))}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"firstName",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"First name *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"lastName",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Last name *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"email",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Email *"}),e.jsx(i,{children:e.jsx(d,{type:"email",...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"phone",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Phone"}),e.jsx(i,{children:e.jsx(d,{type:"tel",...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"address",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Address *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"jobTitle",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Current Job Title *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"passionateRole",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Share the role you're passionate about at ELI *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"yearsExperience",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Years of Teaching Experience *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"highestEducation",render:({field:s})=>
1e.jsxs(a,{children:[e.jsx(o,{children:"Highest Level of Education Completed *"}),e.jsx(i,{children:e.jsx(d,{...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"certifications",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Relevant Certifications (Teaching license, Early Childhood credentials, CPR, etc.) *"}),e.jsx(i,{children:e.jsx(u,{rows:3,...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"whyAPlayer",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:'What makes you an "A-Player" educator? *'}),e.jsx(i,{children:e.jsx(u,{rows:4,...s})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"willingToTrain",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Are you willing to attend professional development or training before February 2026? *"}),e.jsx(i,{children:e.jsxs("div",{className:"flex gap-6",children:[e.jsxs("label",{className:"inline-flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",value:"Yes",checked:s.value==="Yes",onChange:()=>s.onChange("Yes")}),e.jsx("span",{children:"Yes"})]}),e.jsxs("label",{className:"inline-flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",value:"No",checked:s.value==="No",onChange:()=>s.onChange("No")}),e.jsx("span",{children:"No"})]})]})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"resume",render:({field:{onChange:s}})=>e.jsxs(a,{children:[e.jsx(o,{children:"Upload Resume *"}),e.jsx(i,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("label",{className:"inline-flex items-center gap-2 cursor-pointer rounded-md border border-input bg-background px-4 py-2 text-sm hover:bg-accent transition-colors",children:[e.jsx(W,{className:"h-4 w-4"}),e.jsx("span",{children:"Choose file"}),e.jsx("input",{type:"file",className:"sr-only",accept:".pdf,.doc,.docx,application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document",onChange:c=>s(c.target.files?.[0])})]}),e.jsx("span",{className:"text-sm text-muted-foreground truncate max-w-[220px]",children:T instanceof File?T.name:"No file selected"})]})}),e.jsx(t,{})]})}),e.jsx(n,{control:r.control,name:"extraNotes",render:({field:s})=>e.jsxs(a,{children:[e.jsx(o,{children:"Anything else you'd like us to know?"}),e.jsx(i,{children:e.jsx(u,{rows:3,...s})}),e.jsx(t,{})]})}),e.jsx(L,{control:r.control}),e.jsxs(D,{type:"submit",disabled:f,className:"w-full bg-black text-white hover:bg-black/90",children:[f&&e.jsx($,{className:"mr-2 h-4 w-4 animate-spin"}),"Submit"]})]})})}export{Q as C};
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.