1import{j as e}from"./vendor-ui-Dew8CZxq.js";import{bv as c,ca as d}from"./index-BotW_F4D.js";import{a as p,A as x}from"./AiLabShell-DmO-RPIl.js";import{u as h}from"./i18n-BY0_pnCO.js";import{C as u}from"./circle-check-DMPsCzyi.js";import"./vendor-supabase-BOCL3uOH.js";import"./vendor-charts-Da-j9H4-.js";import"./vendor-editor-Ct-iNwJc.js";import"./vendor-query-Cjd1QUxP.js";import"./vendor-router-DljXtjbj.js";import"./SidebarLayout-BtOnFKiL.js";import"./ServicePageHeader-Bl-7_it-.js";import"./AuthModal-DsoMdKU1.js";import"./auth-register-image-BYlSNC_c.js";import"./checkbox-BimeJKfR.js";import"./mail-BwD7b2Q4.js";import"./layout-dashboard-iAK4YOlq.js";import"./code-xml-DTTxzq6k.js";import"./chart-column-BehVVQJR.js";const M=()=>{const{content:r,t}=h(),{progress:l}=p(),m=new Map(l.map(s=>[s.lesson_id,s])),n=l.filter(s=>s.completed).length,a=r.lessons.length?Math.round(n/r.lessons.length*100):0;return e.jsx(x,{title:t("progressTitle"),subtitle:`${n} ${t("ofLessons")} ${r.lessons.length} ${t("lessonsDone")}`,children:e.jsxs("div",{className:"max-w-3xl space-y-8",children:[e.jsxs("div",{className:"rounded-xl border border-border bg-card p-6",children:[e.jsxs("p",{className:"text-3xl font-bold mb-3",children:[a,"%"]}),e.jsx(c,{value:a})]}),r.weeks.map(s=>e.jsxs("section",{children:[e.jsxs("h2",{className:"font-serif font-bold mb-3",children:[t("week")," ",s.week," â ",s.title]}),e.jsx("ul",{className:"space-y-2",children:r.lessons.filter(o=>o.week===s.week).map(o=>{const i=m.get(o.id);return e.jsxs("li",{className:"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-3 text-sm",children:[i?.completed?e.jsx(u,{className:"w-4 h-4 text-primary shrink-0"}):e.jsx(d,{className:"w-4 h-4 text-muted-foreground shrink-0"}),e.jsx("span",{className:"flex-1",children:o.title}),e.jsx("span",{className:"text-xs text-muted-foreground",children:i?.quiz_total?`${t("quizScore")} ${i.quiz_score}/${i.quiz_total}`:i?.completed?t("completed"):t("notStarted")})]},o.id)})})]},s.week)),l.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:t("progressEmpty")})]})})};export{M 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.