(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[55295],{87779:(e,t,r)=>{Promise.resolve().then(r.bind(r,40818)),Promise.resolve().then(r.bind(r,64077))},40818:(e,t,r)=>{"use strict";r.d(t,{CoursesClient:()=>I});var s=r(19002),a=r(64406),l=r.n(a),n=r(52114),o=r(8639),i=r(61154),c=r(1100),d=r(2005),u=r(33648),m=r(41181),p=r(37088),x=r(89528),h=r(74426);function f(e){let{name:t,imageUrl:r}=e;return t?(0,s.jsxs)(u.E,{className:"gap-1.5 rounded-none py-0.5 pl-1 pr-2",variant:"outline",children:[(0,s.jsxs)(x.Avatar,{className:"h-5 w-5 rounded-full",children:[r?(0,s.jsx)(x.AvatarImage,{src:r,alt:""}):null,(0,s.jsx)(x.AvatarFallback,{className:"rounded-full text-[10px]",children:(0,h.IM)(t)})]}),(0,s.jsx)("span",{children:t})]}):null}var g=r(2729),b=r(40315),v=r(88775),j=r(10797),N=r(47659),w=r(54995);function y(e){var t,r;let s=null!==(t=e.modules)&&void 0!==t?t:[];if(1===s.length){let[t]=s,a=null==t?void 0:null===(r=t.lessons)||void 0===r?void 0:r.find(e=>!!e.slug);if((null==t?void 0:t.slug)&&(null==a?void 0:a.slug))return"/courses/".concat(e.slug,"/modules/").concat(t.slug,"/").concat(a.slug);if(null==t?void 0:t.slug)return"/courses/".concat(e.slug,"/modules/").concat(t.slug)}return"/courses/".concat(e.slug)}function k(e){let{courses:t,learningPaths:r=[],expandAllRef:a,collapseAllRef:i,onExpandedStateChange:c}=e,p=(0,b.usePathname)(),x=(0,b.useRouter)(),[h,f]=(0,n.useState)(new Set),[g,k]=(0,n.useState)(null),E=(0,n.useRef)(new Set),C=e=>{f(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},A=(0,n.useMemo)(()=>{let e=new Map(t.map(e=>[e.id,e])),s=t.map(e=>{let t={id:"course-".concat(e.slug),title:e.title,type:"course",entityId:e.id,children:[],href:y(e),courseSlug:e.slug};return e.modules&&(t.children=e.modules.filter(e=>e.lessons&&e.lessons.length>0).map(t=>{let r={id:"module-".concat(e.slug,"-").concat(t.slug),title:t.title,type:"module",entityId:t.id,children:[],href:"/courses/".concat(e.slug,"/modules/").concat(t.slug),courseSlug:e.slug,moduleSlug:t.slug};return t.lessons&&(r.children=t.lessons.map(r=>({id:r.id,title:r.title,type:"lesson",entityId:r.id,children:[],href:r.slug?"/courses/".concat(e.slug,"/modules/").concat(t.slug,"/").concat(r.slug):void 0,courseSlug:e.slug,moduleSlug:t.slug,lessonSlug:r.slug}))),r})),t});return[...r.map(t=>{var r;return{id:"learning-path-".concat(t.slug),title:t.title,type:"learningPath",entityId:t.id,children:(null!==(r=t.courses)&&void 0!==r?r:[]).map(r=>{var s;return{id:"learning-path-course-".concat(t.slug,"-").concat(r.course.slug),title:r.course.title,type:"course",entityId:r.course.id,children:[],href:y(null!==(s=e.get(r.course.id))&&void 0!==s?s:{slug:r.course.slug,modules:[]})}}),href:"/learning-paths/".concat(t.slug)}}),...s]},[t,r]),T=(0,n.useCallback)((e,t)=>0===t&&("course"===e.type||"learningPath"===e.type),[]),S=(0,n.useMemo)(()=>e=>{let t=new Set;return e.forEach(e=>{e.children.length>0&&(t.add(e.id),S(e.children).forEach(e=>t.add(e)))}),t},[]);(0,n.useEffect)(()=>{if(c){let e=S(A);c(e.size>0&&Array.from(e).every(e=>h.has(e)))}},[h,A,S,c]),(0,n.useEffect)(()=>{a&&(a.current=()=>{f(new Set(A.map(e=>e.id)))})},[A,a]),(0,n.useEffect)(()=>{i&&(i.current=()=>{f(new Set)})},[i]),(0,n.useEffect)(()=>{k(null)},[p]);let P=(0,n.useCallback)(e=>{!e||E.current.has(e)||(E.current.add(e),x.prefetch(e))},[x]),R=(0,n.useCallback)((e,t)=>{t&&(e.preventDefault(),k(t),x.push(t))},[x]),I=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],n=h.has(e.id),i=e.children.length>0,c=T(e,t),d=(()=>{switch(e.type){case"learningPath":case"module":return v.A;case"course":return o.A;case"lesson":return j.A}})();if(!i){let n=(0,s.jsxs)("div",{className:"flex items-center group",children:[(0,s.jsxs)("div",{className:"flex-shrink-0 relative",style:{width:"".concat((t+1)*24,"px")},children:[a.map((e,t)=>(0,s.jsx)("div",{className:"absolute top-0 bottom-0 w-px bg-border",style:{left:"".concat(24*t,"px"),display:e?"block":"none"}},t)),t>0&&(0,s.jsx)("div",{className:"absolute top-0 w-px h-3 bg-border",style:{left:"".concat((t-1)*24,"px")}}),t>0&&(0,s.jsx)("div",{className:"absolute top-3 w-3 h-px bg-border",style:{left:"".concat((t-1)*24,"px")}}),!r&&t>0&&(0,s.jsx)("div",{className:"absolute top-3 bottom-0 w-px bg-border",style:{left:"".concat((t-1)*24,"px")}})]}),e.href&&c?(0,s.jsxs)(l(),{href:e.href,prefetch:!1,onMouseEnter:()=>P(e.href),onFocus:()=>P(e.href),onClick:t=>R(t,e.href),className:"flex-1 flex items-center gap-2 text-left hover:bg-muted/50 rounded-md p-2 transition-colors group",children:[(0,s.jsx)(d,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground flex-shrink-0"}),(0,s.jsx)("span",{className:"font-medium text-sm group-hover:text-foreground",children:e.title})]}):(0,s.jsxs)("div",{className:"flex-1 flex items-center gap-2 text-left rounded-md p-2",children:[(0,s.jsx)(d,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),(0,s.jsx)("span",{className:"font-medium text-sm text-muted-foreground",children:e.title})]})]});return(0,s.jsx)("div",{className:"space-y-0",children:n},e.id)}return(0,s.jsxs)("div",{className:"space-y-0",children:[(0,s.jsxs)("div",{className:"flex",children:[(0,s.jsxs)("div",{className:"flex-shrink-0 relative",style:{width:"".concat((t+1)*24,"px")},children:[a.map((e,t)=>(0,s.jsx)("div",{className:"absolute top-0 bottom-0 w-px bg-border",style:{left:"".concat(24*t,"px"),display:e?"block":"none"}},t)),t>0&&(0,s.jsx)("div",{className:"absolute top-0 w-px h-3 bg-border",style:{left:"".concat((t-1)*24,"px")}}),t>0&&(0,s.jsx)("div",{className:"absolute top-3 w-3 h-px bg-border",style:{left:"".concat((t-1)*24,"px")}}),i&&n&&(0,s.jsx)("div",{className:"absolute top-3 bottom-0 w-px bg-border",style:{left:"".concat(24*t,"px")}}),!i&&t>0&&!r&&(0,s.jsx)("div",{className:"absolute top-3 bottom-0 w-px bg-border",style:{left:"".concat((t-1)*24,"px")}})]}),(0,s.jsx)("div",{className:"flex-1 flex items-center group",children:e.href&&c?(0,s.jsxs)(s.Fragment,{children:[i?(0,s.jsx)("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),C(e.id)},className:"flex-shrink-0 rounded-md p-1 hover:bg-muted/50","aria-label":n?"Collapse section":"Expand section",children:n?(0,s.jsx)(N.A,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground"}):(0,s.jsx)(w.A,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground"})}):(0,s.jsx)("div",{className:"w-6 h-6 flex-shrink-0"}),(0,s.jsxs)(l(),{href:e.href,prefetch:!1,onMouseEnter:()=>P(e.href),onFocus:()=>P(e.href),onClick:t=>R(t,e.href),className:"flex-1 flex items-center gap-2 text-left hover:bg-muted/50 rounded-md p-2 transition-colors group",children:[(0,s.jsx)(d,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground flex-shrink-0"}),(0,s.jsx)("span",{className:"font-medium text-sm group-hover:text-foreground",children:e.title}),i&&(0,s.jsx)(u.E,{variant:"secondary",className:"text-xs ml-auto",children:e.children.length})]})]}):(0,s.jsxs)("button",{onClick:()=>C(e.id),className:"flex-1 flex items-center gap-2 text-left hover:bg-muted/50 rounded-md p-2 transition-colors group",children:[i&&(0,s.jsx)("div",{className:"flex-shrink-0",children:n?(0,s.jsx)(N.A,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground"}):(0,s.jsx)(w.A,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground"})}),!i&&(0,s.jsx)("div",{className:"w-4 h-4"}),(0,s.jsx)(d,{className:"h-4 w-4 text-muted-foreground group-hover:text-foreground flex-shrink-0"}),(0,s.jsx)("span",{className:"font-medium text-sm group-hover:text-foreground",children:e.title}),i&&(0,s.jsx)(u.E,{variant:"secondary",className:"text-xs ml-auto",children:e.children.length})]})})]}),i&&n&&(0,s.jsx)("div",{className:"space-y-0",children:e.children.map((l,n)=>{let o=n===e.children.length-1,i=[...a,!r];return(0,s.jsx)("div",{children:I(l,t+1,o,i)},l.id)})})]},e.id)};return 0===A.length?(0,s.jsx)(m.Zp,{children:(0,s.jsx)(m.Wu,{className:"py-12 text-center",children:(0,s.jsx)("p",{className:"text-muted-foreground",children:"No courses available at this time."})})}):(0,s.jsxs)("div",{className:"relative space-y-0",children:[g?(0,s.jsxs)("div",{className:"sticky top-0 z-10 mb-3 flex items-center gap-2 rounded-md border bg-background/95 px-3 py-2 text-sm text-muted-foreground backdrop-blur",children:[(0,s.jsx)(d.A,{className:"h-4 w-4 animate-spin"}),(0,s.jsx)("span",{children:"Opening selection..."})]}):null,A.map((e,t)=>{let r=t===A.length-1;return(0,s.jsx)("div",{children:I(e,0,r,[])},e.id)})]})}var E=r(18868),C=r(79526),A=r(28946);let T=["Beginner","Intermediate","Advanced"];function S(e){return e.trim().toLowerCase()}function P(e){return"course"===e.kind?new Date(e.course.updatedAt).getTime():new Date(e.learningPath.updatedAt).getTime()}function R(e){return"learning-path"===e.kind?0:e.course.courseType===C.T3.CERTIFICATE?2:1}function I(e){let{courses:t,learningPaths:r,categories:a,isTestingTier:x,initialSelectedType:h="all"}=e,[b,v]=(0,n.useState)(""),[j,N]=(0,n.useState)(2),[w,I]=(0,n.useState)("list"),[L,M]=(0,n.useState)(!0),[D,F]=(0,n.useState)({}),[O,z]=(0,n.useState)(null),_=(0,n.useRef)(null),U=(0,n.useRef)(null),[G,q]=(0,n.useState)(h),Z=(0,n.useDeferredValue)(G);(0,n.useEffect)(()=>{q(h)},[h]);let B=(0,n.useCallback)((e,t)=>{t.defaultPrevented||0!==t.button||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||z(e)},[]),K=(0,n.useMemo)(()=>{let e=new Map;for(let a of t){var r,s;let t=new Set,l=new Set,n=new Map;for(let e of null!==(r=a.courseCategoryLabels)&&void 0!==r?r:[]){let r=S(e.categoryName);"level"===r&&t.add(e.label),"library"===r&&l.add(e.label),n.has(r)||n.set(r,new Set),null===(s=n.get(r))||void 0===s||s.add(e.label)}e.set(a.id,{levels:Array.from(t),libraries:Array.from(l),categories:Object.fromEntries(Array.from(n.entries()).map(e=>{let[t,r]=e;return[t,Array.from(r)]}))})}return e},[t]),H=(0,n.useMemo)(()=>[...t.filter(e=>e.courseType!==C.T3.EXAMPLE).map(e=>{var t;let r=null!==(t=K.get(e.id))&&void 0!==t?t:{levels:[],libraries:[],categories:{}};return{kind:"course",course:e,levels:r.levels,libraries:r.libraries,categoryLabels:r.categories}}),...r.map(e=>{var t,r,s;let a=new Set,l=new Set,n=new Map;for(let s of null!==(t=e.courses)&&void 0!==t?t:[]){let e=K.get(s.course.id);if(e){for(let t of e.levels)a.add(t);for(let t of e.libraries)l.add(t);for(let[t,s]of Object.entries(e.categories))for(let e of(n.has(t)||n.set(t,new Set),s))null===(r=n.get(t))||void 0===r||r.add(e)}}if(0===a.size)for(let t of null!==(s=e.tags)&&void 0!==s?s:[]){let e=S(t);T.map(e=>S(e)).includes(e)&&a.add(t)}return{kind:"learning-path",learningPath:e,levels:Array.from(a),libraries:Array.from(l),categoryLabels:Object.fromEntries(Array.from(n.entries()).map(e=>{let[t,r]=e;return[t,Array.from(r)]}))}})].sort((e,t)=>P(t)-P(e)),[K,t,r]),W=(0,n.useCallback)(e=>{q(e);let t=new URLSearchParams(window.location.search);"all"===e?t.delete("type"):t.set("type",e);let r=t.toString(),s=r?"".concat(window.location.pathname,"?").concat(r):window.location.pathname;window.history.replaceState(window.history.state,"",s)},[]);(0,n.useEffect)(()=>{let e=()=>{q(function(e,t){let r=new URLSearchParams(e).get("type");return"all"===r||"learning-paths"===r||"courses"===r||"certificates"===r?r:t}(window.location.search,h))};return window.addEventListener("popstate",e),()=>{window.removeEventListener("popstate",e)}},[h]);let X=(0,n.useMemo)(()=>a.map(e=>{var t,r;let s=S(e.name),a=(null!==(t=e.labels)&&void 0!==t?t:[]).map(e=>e.trim()).filter(Boolean),l=new Set(a.map(e=>S(e))),n=new Set;if("level"===s&&0===a.length)for(let e of T)n.add(e);for(let e of H)for(let t of null!==(r=e.categoryLabels[s])&&void 0!==r?r:[]){let e=t.trim();e&&(l.has(S(e))||n.add(e))}let o=Array.from(n).sort((e,t)=>e.localeCompare(t));return{id:e.id,name:e.name,key:s,options:[...a,...o]}}),[a,H]),V=(0,n.useMemo)(()=>{let e=S(b),t=Object.fromEntries(Object.entries(D).map(e=>{let[t,r]=e;return[t,new Set(r.map(e=>S(e)))]})),r=H.filter(r=>{if("courses"===Z&&"course"!==r.kind||"learning-paths"===Z&&"learning-path"!==r.kind)return!1;if("certificates"===Z)return"course"===r.kind&&r.course.courseType===C.T3.CERTIFICATE;if("courses"===Z&&"course"===r.kind&&r.course.courseType===C.T3.CERTIFICATE)return!1;for(let[e,a]of Object.entries(t)){var s;if(0!==a.size&&!(null!==(s=r.categoryLabels[e])&&void 0!==s?s:[]).map(e=>S(e)).some(e=>a.has(e)))return!1}return!e||("course"===r.kind?[r.course.title,r.course.slug,r.course.description].join(" ").toLowerCase().includes(e):[r.learningPath.title,r.learningPath.slug,r.learningPath.description].join(" ").toLowerCase().includes(e))});return"all"===Z?[...r].sort((e,t)=>{let r=R(e)-R(t);return 0!==r?r:P(t)-P(e)}):r},[H,Z,b,D]),Q=(0,n.useMemo)(()=>V.filter(e=>"course"===e.kind).map(e=>e.course),[V]),J=(0,n.useMemo)(()=>V.filter(e=>"learning-path"===e.kind).map(e=>e.learningPath),[V]);return(0,s.jsxs)("div",{className:"mx-auto max-w-[1088px] space-y-6",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-4 xl:flex-row xl:items-center xl:justify-between",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)(o.A,{className:"h-8 w-8 text-primary"}),(0,s.jsx)("h1",{className:"text-4xl font-semibold tracking-tight text-foreground",children:"Courses"})]}),(0,s.jsx)(g.s,{selectedType:G,onTypeChange:W,searchQuery:b,onSearchChange:v,columnCount:j,onColumnCountChange:N,viewMode:w,onViewModeChange:I})]}),(0,s.jsxs)("div",{className:"grid gap-5 lg:grid-cols-[250px_minmax(0,1fr)] xl:grid-cols-[260px_minmax(0,1fr)]",children:[(0,s.jsx)("aside",{className:"lg:sticky lg:top-24 h-fit",children:(0,s.jsx)(m.Zp,{className:"rounded-none border-border/70 bg-card shadow-sm",children:(0,s.jsx)(m.Wu,{className:"space-y-5 p-4",children:X.map(e=>{var t;let r=null!==(t=D[e.key])&&void 0!==t?t:[];return(0,s.jsxs)("div",{className:"space-y-3 border-t border-border/70 pt-4 first:border-t-0 first:pt-0",children:[(0,s.jsx)("h3",{className:"text-xs font-semibold uppercase tracking-[0.14em] text-foreground",children:e.name}),e.options.length>0?e.options.map(t=>(0,s.jsxs)("label",{className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground cursor-pointer",children:[(0,s.jsx)(p.S,{checked:r.includes(t),onCheckedChange:()=>F(r=>{var s,a;return{...r,[e.key]:(a=null!==(s=r[e.key])&&void 0!==s?s:[]).includes(t)?a.filter(e=>e!==t):[...a,t]}})}),(0,s.jsx)("span",{children:t})]},"".concat(e.id,"-").concat(t))):(0,s.jsx)("p",{className:"text-xs text-muted-foreground",children:"No labels configured yet."})]},e.id)})})})}),(0,s.jsx)("section",{children:"tree"===w?(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("button",{type:"button",onClick:()=>{var e,t;L?(null===(e=U.current)||void 0===e||e.call(U),M(!1)):(null===(t=_.current)||void 0===t||t.call(_),M(!0))},className:"flex items-center gap-2 bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90",children:L?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.A,{className:"h-4 w-4"}),"Collapse All"]}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(c.A,{className:"h-4 w-4"}),"Expand All"]})}),(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:"Tree mode displays courses, certificates, and learning paths."})]}),(0,s.jsx)(k,{courses:Q,learningPaths:J,expandAllRef:_,collapseAllRef:U,onExpandedStateChange:M})]}):V.length>0?(0,s.jsx)("div",{className:"grid grid-cols-1 gap-6 ".concat(2===j?"lg:grid-cols-2":3===j?"lg:grid-cols-3":"lg:grid-cols-4"),children:V.map(e=>{var t,r,a;if("learning-path"===e.kind){let t=null!==(a=null===(r=e.learningPath.courses)||void 0===r?void 0:r.length)&&void 0!==a?a:0,n="/learning-paths/".concat(e.learningPath.slug),o=O===n;return(0,s.jsx)(l(),{href:n,className:"group block","aria-busy":o,onClick:e=>B(n,e),children:(0,s.jsxs)(m.Zp,{className:"relative overflow-hidden rounded-none border border-border/70 shadow-sm transition-colors duration-200 lg:hover:border-primary/60",children:[(0,s.jsx)("div",{className:"relative aspect-video",children:(0,s.jsx)(E.c,{src:e.learningPath.thumbnailResolvedUrl,presetKey:e.learningPath.thumbnailPreset,title:e.learningPath.thumbnailTitle||e.learningPath.title,subtitle:e.learningPath.thumbnailSubtitle,alt:"".concat(e.learningPath.title," thumbnail")})}),(0,s.jsxs)(m.Wu,{className:"p-4 space-y-3",children:[e.learningPath.description&&(0,s.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-2",children:e.learningPath.description}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,s.jsx)(u.E,{className:"rounded-none",variant:"secondary",children:"Learning Path"}),e.levels.slice(0,1).map(e=>(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:e},e)),e.libraries.slice(0,1).map(e=>(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:e},e))]}),(0,s.jsxs)("div",{className:"text-xs text-muted-foreground",children:[t," ",1===t?"course":"courses"]})]}),o?(0,s.jsx)("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-background/70 backdrop-blur-[1px]",children:(0,s.jsx)(d.A,{className:"h-6 w-6 animate-spin text-primary"})}):null]})},"learning-path-".concat(e.learningPath.id))}let n=e.course,o=new Date,i=n.publicationDate&&new Date(n.publicationDate)>o,c=n.publicationDate?new Date(n.publicationDate).toISOString().split("T")[0]:null,p=n.publicationDate?new Date(n.publicationDate).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}):null,h=(null===(t=n.modules)||void 0===t?void 0:t.some(e=>e.isFree))||!1,g=n.courseType===C.T3.CERTIFICATE,b=n.courseType===C.T3.EXAMPLE,v=y(n),j=O===v,N=(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:"relative aspect-video",children:(0,s.jsx)(E.c,{src:n.thumbnailResolvedUrl,presetKey:n.thumbnailPreset,title:n.thumbnailTitle||n.title,subtitle:n.thumbnailSubtitle,alt:"".concat(n.title," thumbnail"),badgeSrc:g?A.ic:null,badgeAlt:g?"Certification":""})}),(0,s.jsxs)(m.Wu,{className:"p-4",children:[(n.author||p)&&(0,s.jsxs)("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(f,{name:n.author,imageUrl:n.authorImageUrl}),n.author&&p?(0,s.jsx)("span",{"aria-hidden":"true",children:"•"}):null,p?(0,s.jsx)("span",{children:p}):null]}),(0,s.jsxs)("div",{className:"flex flex-wrap gap-2 mb-3",children:[(0,s.jsx)(u.E,{className:"rounded-none",variant:"secondary",children:g?"Certificate":b?"Example":"Course"}),i&&c&&(0,s.jsxs)(u.E,{className:"rounded-none",variant:"outline",children:["Coming soon (",c,")"]}),h&&(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:"Free content"}),n.courseDuration&&(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:n.courseDuration}),e.levels.slice(0,1).map(e=>(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:e},e)),e.libraries.slice(0,1).map(e=>(0,s.jsx)(u.E,{className:"rounded-none",variant:"outline",children:e},e))]}),n.description&&(0,s.jsx)("p",{className:"text-muted-foreground text-sm line-clamp-2 mb-3",children:n.description})]})]});return i&&!x?(0,s.jsx)("div",{className:"cursor-not-allowed opacity-60",children:(0,s.jsx)(m.Zp,{className:"overflow-hidden rounded-none border border-border/70 shadow-sm",children:N})},"course-".concat(n.id)):(0,s.jsx)(l(),{href:v,className:"group block","aria-busy":j,onClick:e=>B(v,e),children:(0,s.jsxs)(m.Zp,{className:"relative overflow-hidden rounded-none border border-border/70 shadow-sm transition-colors duration-200 lg:hover:z-10 lg:hover:border-primary/60",children:[N,j?(0,s.jsx)("div",{className:"absolute inset-0 z-20 flex items-center justify-center bg-background/70 backdrop-blur-[1px]",children:(0,s.jsx)(d.A,{className:"h-6 w-6 animate-spin text-primary"})}):null]})},"course-".concat(n.id))})}):(0,s.jsx)(m.Zp,{className:"rounded-none border-border/70",children:(0,s.jsx)(m.Wu,{className:"py-12 text-center",children:(0,s.jsx)("p",{className:"text-muted-foreground text-lg",children:"No courses or learning paths found matching your criteria."})})})})]})]})}},18868:(e,t,r)=>{"use strict";r.d(t,{c:()=>o});var s=r(19002),a=r(40570),l=r(40399),n=r(28946);function o(e){let{src:t,presetKey:r,title:o,subtitle:i,alt:c,sizes:d="(max-width: 1024px) 100vw, 33vw",imageClassName:u,overlayClassName:m,overlaySize:p="default",badgeSrc:x,badgeAlt:h="",priority:f=!1}=e,g=(0,n.AC)(r),b=!!g,v=(null==g?void 0:g.textTone)==="dark",j=x?(0,s.jsx)("div",{className:(0,l.cn)("relative shrink-0 overflow-visible","compact"===p?"h-[clamp(3rem,42cqw,5rem)] w-[clamp(3rem,42cqw,5rem)]":"h-[clamp(6.75rem,35cqw,12rem)] w-[clamp(6.75rem,35cqw,12rem)]"),children:(0,s.jsx)(a.default,{src:x,alt:h,fill:!0,className:"object-contain",sizes:"compact"===p?"80px":"216px"})}):null;return t?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.default,{src:t,alt:c,fill:!0,className:(0,l.cn)("object-cover",u),sizes:d,priority:f}),b?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("div",{className:(0,l.cn)("absolute inset-0",v?"bg-gradient-to-r from-white/78 via-white/38 to-transparent":"bg-gradient-to-r from-black/74 via-black/28 to-transparent")}),(0,s.jsxs)("div",{className:(0,l.cn)("absolute inset-y-0 left-0 flex w-[78%] max-w-[760px] flex-col justify-center px-[7%] py-[6%] [container-type:inline-size]","compact"===p?"w-[94%] px-[8%] py-[8%]":"w-[94%]",v?"text-neutral-950":"text-white",m),children:["compact"===p?(0,s.jsx)("div",{className:"mb-2",children:j}):null,(0,s.jsx)("div",{className:(0,l.cn)("mb-3 h-1 w-12 bg-[#2165ff]","compact"===p&&"mb-2 h-0.5 w-10")}),(0,s.jsxs)("div",{className:(0,l.cn)("flex min-w-0","compact"===p?"flex-col items-start gap-0":"items-center justify-between gap-[8cqw]"),children:[(0,s.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,s.jsx)("h3",{className:(0,l.cn)("line-clamp-3 break-words text-[clamp(0.95rem,8.5cqw,2.7rem)] font-semibold leading-[0.98] tracking-normal [overflow-wrap:anywhere]","compact"===p&&"line-clamp-4 text-[clamp(0.78rem,13cqw,1.45rem)] leading-[1.04]"),children:o}),i?(0,s.jsx)("p",{className:(0,l.cn)("mt-3 line-clamp-2 max-w-[34rem] break-words text-[clamp(0.62rem,3.2cqw,1.02rem)] leading-snug [overflow-wrap:anywhere]","compact"===p&&"mt-2 line-clamp-2 text-[clamp(0.56rem,5.2cqw,0.78rem)] leading-tight",v?"text-neutral-700":"text-white/82"),children:i}):null]}),"default"===p?j:null]})]})]}):null]}):(0,s.jsx)("div",{className:"flex h-full w-full items-center justify-center bg-muted text-sm text-muted-foreground",children:"No thumbnail"})}},74426:(e,t,r)=>{"use strict";function s(e){return e?1===e.length?e.charAt(0).toUpperCase():e.charAt(0).toUpperCase()+e.slice(1):e}function a(e){return e?e.replace(/\s+/," ").split(" ").slice(0,2).map(e=>e&&e[0].toUpperCase()).join(""):""}r.d(t,{IM:()=>a,ZH:()=>s})},79526:(e,t,r)=>{"use strict";r.d(t,{T3:()=>s,X4:()=>a,Xn:()=>l,nj:()=>n});let s={REGULAR:"REGULAR",FLAGSHIP:"FLAGSHIP",INTRO:"INTRO",EXAMPLE:"EXAMPLE",CERTIFICATE:"CERTIFICATE"},a={SUGGESTION:"SUGGESTION",PROBLEM:"PROBLEM",QUESTION:"QUESTION"},l={NOT_STARTED:"NOT_STARTED",IN_PROGRESS:"IN_PROGRESS",COMPLETED:"COMPLETED"},n={ADMIN:"ADMIN",MARKETING:"MARKETING"}},28946:(e,t,r)=>{"use strict";r.d(t,{AC:()=>l,Cu:()=>s,ic:()=>a});let s=[{key:"course-dark",label:"Course Dark",description:"High-contrast course background",src:"/assets/courses/course_dark-optimized.webp",textTone:"light"},{key:"course-light",label:"Course Light",description:"Bright course background",src:"/assets/courses/course_light-optimized.webp",textTone:"dark"},{key:"examples-1",label:"Examples 1",description:"Workload example background",src:"/assets/courses/examples_1-optimized.webp",textTone:"light"},{key:"examples-2",label:"Examples 2",description:"Light workload example background",src:"/assets/courses/examples_2-optimized.webp",textTone:"dark"},{key:"foundations-dark",label:"Foundations Dark",description:"Dark grid foundation background",src:"/assets/courses/foundations_dark-optimized.webp",textTone:"light"},{key:"foundations-green",label:"Foundations Green",description:"Teal grid foundation background",src:"/assets/courses/foundations_green-optimized.webp",textTone:"light"},{key:"learning-path",label:"Learning Path",description:"Learning path contour background",src:"/assets/courses/learning_path-optimized.webp",textTone:"light"}],a="/assets/certificate-badge.png";function l(e){var t;return e&&null!==(t=s.find(t=>t.key===e))&&void 0!==t?t:null}},89528:(e,t,r)=>{"use strict";r.d(t,{Avatar:()=>o,AvatarFallback:()=>c,AvatarImage:()=>i});var s=r(19002),a=r(52114),l=r(32917),n=r(40399);let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.bL,{ref:t,className:(0,n.cn)("relative flex size-10 shrink-0 overflow-hidden rounded-full",r),...a})});o.displayName=l.bL.displayName;let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l._V,{ref:t,className:(0,n.cn)("aspect-square size-full",r),...a})});i.displayName=l._V.displayName;let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.H4,{ref:t,className:(0,n.cn)("flex size-full items-center justify-center rounded-full bg-muted",r),...a})});c.displayName=l.H4.displayName},33648:(e,t,r)=>{"use strict";r.d(t,{E:()=>o});var s=r(19002);r(52114);var a=r(42030),l=r(40399);let n=(0,a.F)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:r,...a}=e;return(0,s.jsx)("div",{className:(0,l.cn)(n({variant:r}),t),...a})}o.displayName="Badge"},41181:(e,t,r)=>{"use strict";r.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>i,Zp:()=>n,aR:()=>o,wL:()=>u});var s=r(19002),a=r(52114),l=r(40399);let n=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("rounded-xl border bg-card text-card-foreground shadow",r),...a})});n.displayName="Card";let o=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",r),...a})});o.displayName="CardHeader";let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("h3",{ref:t,className:(0,l.cn)("text-xl font-semibold leading-none tracking-tight",r),...a})});i.displayName="CardTitle";let c=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",r),...a})});c.displayName="CardDescription";let d=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",r),...a})});d.displayName="CardContent";let u=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",r),...a})});u.displayName="CardFooter"},37088:(e,t,r)=>{"use strict";r.d(t,{S:()=>i});var s=r(19002),a=r(52114),l=r(60),n=r(45359),o=r(40399);let i=a.forwardRef((e,t)=>{let{className:r,...a}=e;return(0,s.jsx)(l.bL,{ref:t,className:(0,o.cn)("peer size-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:(0,s.jsx)(l.C1,{className:(0,o.cn)("flex items-center justify-center text-current"),children:(0,s.jsx)(n.A,{className:"size-4 shrink-0"})})})});i.displayName=l.bL.displayName}},e=>{var t=t=>e(e.s=t);e.O(0,[17094,64406,62875,2854,64077,85030,5779,77358],()=>t(87779)),_N_E=e.O()}]);