1import{u as b,t as l,g as p,j as a,d as P,r as h}from"./index-Byu3f-1A.js";import{u as T}from"./useAuth-6J6aMxxw.js";import{S as x}from"./SiteLayout-0TfqWyT_.js";import{L as d}from"./loader-circle-B00dT77o.js";import{L as f}from"./lock-keyhole-DBWwOeQr.js";import{A as j}from"./arrow-right-CYyasji_.js";import{C as N}from"./circle-check-AQ5MXwit.js";import{C as y}from"./calendar-days-Brmro7Lf.js";import{C as v}from"./clock-3-B_5rdX3H.js";import{B as k}from"./book-open-check-CpjWwKoS.js";import{A as u}from"./award-Duy57tZ_.js";import{D as w}from"./download-CIGXt26P.js";import{S}from"./shield-check-C-eq2D7G.js";import"./x-C62ZOr-o.js";function C(s){return s==="basic"?"Basic Halal Sensitivity":s==="advanced"?"Halal Systems Implementation":s==="professional"?"Professional":"Training"}function z(s){return s==="in_person"?"In-person consultation and training":s==="remote"?"Live online / remote":s==="video"?"Self-paced video":"Delivery pending"}function A({learnerId:s,initialName:c,initialOrganization:g,onSaved:m}){const[o,n]=h.useState(c),[i,r]=h.useState(g),e=l.training.confirmIdentity.useMutation({onSuccess:()=>{p.success("Certificate identity confirmed"),m()},onError:t=>p.error(t.message)});return a.jsxs("form",{"data-loc":"client/src/pages/TrainingPortal.tsx:57",className:"mt-6 grid gap-4 border border-emerald/18 bg-emerald/[0.045] p-5 sm:grid-cols-2",onSubmit:t=>{t.preventDefault(),e.mutate({learnerId:s,displayName:o,organization:i})},children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:64",className:"sm:col-span-2",children:[a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:65",className:"font-serif text-2xl text-ink",children:"Confirm certificate identity"}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:66",className:"mt-2 text-sm leading-6 text-ink/58",children:"Enter the exact name and organization that should appear on your issued certificate. These fields lock when an assessment begins."})]}),a.jsxs("label",{"data-loc":"client/src/pages/TrainingPortal.tsx:70",className:"grid gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-ink/62",children:["Participant name",a.jsx("input",{"data-loc":"client/src/pages/TrainingPortal.tsx:72",value:o,onChange:t=>n(t.target.value),className:"min-h-12 border border-ink/15 bg-white px-4 text-sm normal-case tracking-normal text-ink outline-none transition focus:border-emerald focus:ring-2 focus:ring-emerald/20",minLength:2,maxLength:160,required:!0})]}),a.jsxs("label",{"data-loc":"client/src/pages/TrainingPortal.tsx:81",className:"grid gap-2 text-xs font-semibold uppercase tracking-[0.12em] text-ink/62",children:["Organization",a.jsx("input",{"data-loc":"client/src/pages/TrainingPortal.tsx:83",value:i,onChange:t=>r(t.target.value),className:"min-h-12 border border-ink/15 bg-white px-4 text-sm normal-case tracking-normal text-ink outline-none transition focus:border-emerald focus:ring-2 focus:ring-emerald/20",minLength:2,maxLength:255,required:!0})]}),a.jsxs("button",{"data-loc":"client/src/pages/TrainingPortal.tsx:92",type:"submit",className:"button-primary w-fit sm:col-span-2",disabled:e.isPending,children:[e.isPending?a.jsx(d,{"data-loc":"client/src/pages/TrainingPortal.tsx:93",className:"size-4 animate-spin"}):a.jsx(S,{"data-loc":"client/src/pages/TrainingPortal.tsx:93",className:"size-4"}),"Confirm identity"]})]})}function R(){const{user:s,isAuthenticated:c,loading:g}=T(),[,m]=b(),o=l.useUtils(),n=l.training.publicStatus.useQuery(),i=l.training.myTraining.useQuery(void 0,{enabled:c}),r=l.training.startAssessment.useMutation({onSuccess:e=>m(`/training/exam/${e.attemptId}`),onError:e=>p.error(e.message)});return g?a.jsx(x,{"data-loc":"client/src/pages/TrainingPortal.tsx:113",children:a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:114",className:"container grid min-h-[60vh] place-items-center py-24",children:a.jsx(d,{"data-loc":"client/src/pages/TrainingPortal.tsx:115",className:"size-7 animate-spin text-emerald"})})}):c?a.jsxs(x,{"data-loc":"client/src/pages/TrainingPortal.tsx:144",children:[a.jsx("section",{"data-loc":"client/src/pages/TrainingPortal.t
1sx:145",className:"border-b border-ink/10 bg-ink text-white",children:a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:146",className:"container py-16 sm:py-20",children:[a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:147",className:"eyebrow text-brass-light",children:"Participant portal"}),a.jsx("h1",{"data-loc":"client/src/pages/TrainingPortal.tsx:148",className:"mt-5 font-serif text-5xl leading-none sm:text-6xl",children:"Training, assessment, and credentials."}),a.jsxs("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:149",className:"mt-5 text-sm text-white/60",children:["Signed in as ",s?.email??s?.name??"your USDHS account","."]})]})}),a.jsx("section",{"data-loc":"client/src/pages/TrainingPortal.tsx:153",className:"bg-parchment py-14 sm:py-20",children:a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:154",className:"container",children:[!n.data?.publicLearnerAccess&&a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:156",className:"mb-8 border border-brass/35 bg-[#fff8e8] p-5 text-sm leading-6 text-ink/68",children:[a.jsx("strong",{"data-loc":"client/src/pages/TrainingPortal.tsx:157",className:"text-ink",children:"Private review mode."})," The assessment system is not publicly active. Authorized administrators can exercise the workflow with synthetic learner records while policies and certificate wording are reviewed."]}),i.isLoading?a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:162",className:"grid min-h-64 place-items-center",children:a.jsx(d,{"data-loc":"client/src/pages/TrainingPortal.tsx:162",className:"size-7 animate-spin text-emerald"})}):i.error?a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:164",className:"border border-red-200 bg-red-50 p-6 text-sm text-red-800",children:i.error.message}):i.data?.length?a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:166",className:"grid gap-7",children:i.data.map(e=>a.jsxs("article",{"data-loc":"client/src/pages/TrainingPortal.tsx:168",className:"border border-ink/12 bg-white shadow-[0_18px_60px_rgba(10,34,57,0.07)]",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:169",className:"grid gap-6 border-b border-ink/10 bg-gradient-to-r from-emerald/[0.07] to-transparent p-7 lg:grid-cols-[1fr_auto] lg:items-center",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:170",children:[a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:171",className:"eyebrow text-emerald",children:z(e.delivery)}),a.jsx("h2",{"data-loc":"client/src/pages/TrainingPortal.tsx:172",className:"mt-3 font-serif text-4xl leading-tight",children:C(e.program)}),a.jsxs("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:173",className:"mt-3 text-sm text-ink/58",children:[e.displayName," · ",e.organization]})]}),a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:175",className:"grid grid-cols-3 gap-2 text-center text-[11px] font-semibold uppercase tracking-[0.1em]",children:[a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:176",className:`border p-3 ${e.trainingCompletedAt?"border-emerald/25 bg-emerald/[0.07] text-emerald":"border-ink/10 text-ink/42"}`,children:"Training"}),a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:177",className:`border p-3 ${e.attempts.some(t=>t.result==="passed")?"border-emerald/25 bg-emerald/[0.07] text-emerald":"border-ink/10 text-ink/42"}`,children:"Assessment"}),a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:178",className:`border p-3 ${e.certificates.some(t=>t.status==="valid")?"border-emerald/25 bg-emerald/[0.07] text-emerald":"border-ink/10 text-ink/42"}`,children:"Certificate"})]})]}),a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:182",className:"p-7",children:[e.identityConfirmedAt?a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:191",className:"flex items-start gap-3 border border-emerald/18 bg-emerald/[0.045] p-5",children:[a.jsx(N,{"data-loc":"client/src/pages/TrainingPortal.tsx:192",className:"mt-0.5 size-5 shrink-0 text-emerald"}
1),a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:193",children:[a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:194",className:"font-semibold text-ink",children:"Certificate identity confirmed"}),a.jsxs("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:195",className:"mt-1 text-sm text-ink/55",children:[e.displayName," · ",e.organization]})]})]}):a.jsx(A,{"data-loc":"client/src/pages/TrainingPortal.tsx:184",learnerId:e.id,initialName:e.displayName,initialOrganization:e.organization,onSaved:()=>o.training.myTraining.invalidate()}),a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:200",className:"mt-6 grid gap-4 md:grid-cols-2",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:201",className:"border border-ink/10 p-5",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:202",className:"flex items-center gap-2 text-emerald",children:[a.jsx(y,{"data-loc":"client/src/pages/TrainingPortal.tsx:202",className:"size-4"}),a.jsx("span",{"data-loc":"client/src/pages/TrainingPortal.tsx:202",className:"eyebrow",children:"Completion"})]}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:203",className:"mt-3 text-sm leading-6 text-ink/62",children:e.trainingCompletedAt?`Recorded ${new Date(e.trainingCompletedAt).toLocaleDateString()}.`:"USDHS staff must record completion before the assessment becomes available."})]}),a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:209",className:"border border-ink/10 p-5",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:210",className:"flex items-center gap-2 text-emerald",children:[a.jsx(v,{"data-loc":"client/src/pages/TrainingPortal.tsx:210",className:"size-4"}),a.jsx("span",{"data-loc":"client/src/pages/TrainingPortal.tsx:210",className:"eyebrow",children:"Assessment"})]}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:211",className:"mt-3 text-sm leading-6 text-ink/62",children:e.assessmentKey?`${n.data?.programs[e.program==="basic"?"basic":"advanced"].rule.deliveredQuestionCount??"â"} questions · ${n.data?.programs[e.program==="basic"?"basic":"advanced"].rule.timeLimitMinutes??"â"} minutes · ${n.data?.programs[e.program==="basic"?"basic":"advanced"].rule.passPercent??"â"}% to pass.`:"A Professional assessment has not yet been approved."})]})]}),e.attempts.length>0&&a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:220",className:"mt-6 overflow-x-auto border border-ink/10",children:a.jsxs("table",{"data-loc":"client/src/pages/TrainingPortal.tsx:221",className:"w-full min-w-[620px] text-left text-sm",children:[a.jsx("thead",{"data-loc":"client/src/pages/TrainingPortal.tsx:222",className:"bg-ink text-white",children:a.jsxs("tr",{"data-loc":"client/src/pages/TrainingPortal.tsx:223",children:[a.jsx("th",{"data-loc":"client/src/pages/TrainingPortal.tsx:223",className:"px-4 py-3",children:"Attempt"}),a.jsx("th",{"data-loc":"client/src/pages/TrainingPortal.tsx:223",className:"px-4 py-3",children:"Status"}),a.jsx("th",{"data-loc":"client/src/pages/TrainingPortal.tsx:223",className:"px-4 py-3",children:"Score"}),a.jsx("th",{"data-loc":"client/src/pages/TrainingPortal.tsx:223",className:"px-4 py-3",children:"Started"})]})}),a.jsx("tbody",{"data-loc":"client/src/pages/TrainingPortal.tsx:225",children:e.attempts.map(t=>a.jsxs("tr",{"data-loc":"client/src/pages/TrainingPortal.tsx:227",className:"border-t border-ink/8",children:[a.jsxs("td",{"data-loc":"client/src/pages/TrainingPortal.tsx:228",className:"px-4 py-3",children:["#",t.attemptNumber]}),a.jsx("td",{"data-loc":"client/src/pages/TrainingPortal.tsx:229",className:"px-4 py-3 capitalize",children:t.result==="pending"?t.status.replace("_"," "):t.result}),a.jsx("td",{"data-loc":"client/src/pages/TrainingPortal.tsx:230",className:"px-4 py-3",children:t.scorePercent==null?"â":`${t.scorePercent}%`}),a.jsx("td",{"data-loc":"client/src/pages/TrainingPortal.tsx:231",className:"px-4 py-3",children:new Date(t.startedAt).toLocaleString()})]},t.id))})]})}
1),a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:239",className:"mt-6 flex flex-wrap gap-3",children:e.assessmentKey&&e.identityConfirmedAt&&e.trainingCompletedAt&&!e.certificates.some(t=>t.status==="valid")&&a.jsxs("button",{"data-loc":"client/src/pages/TrainingPortal.tsx:241",type:"button",className:"button-primary",disabled:r.isPending,onClick:()=>r.mutate({learnerId:e.id}),children:[r.isPending?a.jsx(d,{"data-loc":"client/src/pages/TrainingPortal.tsx:247",className:"size-4 animate-spin"}):a.jsx(k,{"data-loc":"client/src/pages/TrainingPortal.tsx:247",className:"size-4"}),e.attempts.some(t=>t.status==="in_progress")?"Continue assessment":"Start assessment"]})}),e.certificates.length>0&&a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:254",className:"mt-7 grid gap-4 md:grid-cols-2",children:e.certificates.map(t=>a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:256",className:"border border-brass/30 bg-[#fffaf0] p-5",children:[a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:257",className:"flex items-center gap-2 text-brass-dark",children:[a.jsx(u,{"data-loc":"client/src/pages/TrainingPortal.tsx:257",className:"size-5"}),a.jsx("span",{"data-loc":"client/src/pages/TrainingPortal.tsx:257",className:"eyebrow",children:"Issued credential"})]}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:258",className:"mt-3 font-mono text-xs font-semibold text-ink",children:t.credentialId}),a.jsxs("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:259",className:"mt-2 text-sm capitalize text-ink/58",children:["Status: ",t.status]}),a.jsxs("a",{"data-loc":"client/src/pages/TrainingPortal.tsx:260",href:`/api/training-certificates/${t.id}/download`,download:!0,className:"button-secondary mt-5 w-full justify-center",children:[a.jsx(w,{"data-loc":"client/src/pages/TrainingPortal.tsx:265",className:"size-4"})," Download certificate"]})]},t.id))})]})]},e.id))}):a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:276",className:"border border-ink/12 bg-white p-9 text-center shadow-[0_18px_60px_rgba(10,34,57,0.07)] sm:p-12",children:[a.jsx(u,{"data-loc":"client/src/pages/TrainingPortal.tsx:277",className:"mx-auto size-9 text-emerald",strokeWidth:1.5}),a.jsx("h2",{"data-loc":"client/src/pages/TrainingPortal.tsx:278",className:"mt-5 font-serif text-4xl",children:"No training record is linked yet."}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:279",className:"mx-auto mt-4 max-w-xl text-sm leading-7 text-ink/58",children:"A USDHS training coordinator will provide a secure participant claim link after your individual record is added to an enrollment."})]})]})})]}):a.jsx(x,{"data-loc":"client/src/pages/TrainingPortal.tsx:123",children:a.jsx("section",{"data-loc":"client/src/pages/TrainingPortal.tsx:124",className:"container py-24 sm:py-32",children:a.jsxs("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:125",className:"mx-auto max-w-2xl border border-ink/12 bg-white p-9 text-center shadow-[0_24px_75px_rgba(10,34,57,0.09)] sm:p-12",children:[a.jsx("div",{"data-loc":"client/src/pages/TrainingPortal.tsx:126",className:"mx-auto grid size-14 place-items-center rounded-full bg-emerald/10 text-emerald",children:a.jsx(f,{"data-loc":"client/src/pages/TrainingPortal.tsx:127",className:"size-6",strokeWidth:1.6})}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:129",className:"eyebrow mt-8 text-emerald",children:"Participant access"}),a.jsx("h1",{"data-loc":"client/src/pages/TrainingPortal.tsx:130",className:"mt-4 font-serif text-5xl leading-none",children:"Sign in to your training record."}),a.jsx("p",{"data-loc":"client/src/pages/TrainingPortal.tsx:131",className:"mx-auto mt-6 max-w-lg text-sm leading-7 text-ink/60",children:"Your secure account connects your individual training completion, assessment attempts, score, and issued certificate."}),a.jsxs("button",{"data-loc":"client/src/pages/TrainingPortal.tsx:134",type:"button",onClick:()=>P(),className:"button-primary mt-8",children:["Sign in securely ",a.jsx(j,{"data-loc":"client/src/pages/TrainingPortal.t
1sx:135",className:"size-4"})]})]})})})}export{R 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.