(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[77848],{98830:(e,t,r)=>{Promise.resolve().then(r.bind(r,75271)),Promise.resolve().then(r.bind(r,31007)),Promise.resolve().then(r.bind(r,69308)),Promise.resolve().then(r.t.bind(r,64406,23))},75271:(e,t,r)=>{"use strict";r.d(t,{SignInRedirect:()=>a});var n=r(19002),s=r(52114);function a(e){let{signInPath:t}=e;return(0,s.useEffect)(()=>{window.location.replace(t)},[t]),(0,n.jsx)("main",{className:"flex min-h-[calc(100dvh-76px)] items-center justify-center px-6 text-center",children:(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsx)("h1",{className:"text-xl font-semibold",children:"Redirecting to sign in..."}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"You need to sign in before opening this private course."}),(0,n.jsx)("a",{href:t,className:"inline-flex text-sm font-medium text-primary underline-offset-4 hover:underline",children:"Continue to sign in"})]})})}},31007:(e,t,r)=>{"use strict";r.d(t,{CapstoneCertificateGateModal:()=>l});var n=r(19002),s=r(52114),a=r(40315),o=r(31055),i=r(1459);function l(e){let{certificateTitle:t,learningPathTitle:r,learningPathPath:l,cancelPath:c}=e,d=(0,a.useRouter)(),[u,f]=(0,s.useState)(!0),p=()=>{f(!1),d.push(c)};return(0,n.jsx)(i.lG,{open:u,onOpenChange:e=>!e&&p(),children:(0,n.jsxs)(i.Cf,{className:"max-w-md",onClose:p,children:[(0,n.jsxs)(i.c7,{children:[(0,n.jsx)(i.L3,{children:"Finish the learning path first"}),(0,n.jsx)(i.rr,{children:'"'.concat(t,'" is the capstone certificate for "').concat(r,'". Complete the learning path courses first, then come back to earn the certificate.')})]}),(0,n.jsxs)(i.Es,{className:"gap-2 sm:gap-0",children:[(0,n.jsx)(o.$,{type:"button",variant:"outline",onClick:p,children:"Not now"}),(0,n.jsx)(o.$,{type:"button",onClick:()=>{f(!1),d.push(l)},children:"Go to learning path"})]})]})})}},69308:(e,t,r)=>{"use strict";r.d(t,{ModuleEnrollmentGateModal:()=>d});var n=r(19002),s=r(52114),a=r(40315),o=r(31055),i=r(1459),l=r(95836),c=r(13646);function d(e){let{courseId:t,courseTitle:r,lessonPath:d,cancelPath:u,signInPath:f,isAuthenticated:p}=e,m=(0,a.useRouter)(),[g,h]=(0,s.useState)(!0),[x,v]=(0,s.useTransition)(),y=()=>{h(!1),m.push(u)};return(0,n.jsx)(i.lG,{open:g,onOpenChange:e=>!e&&y(),children:(0,n.jsxs)(i.Cf,{className:"max-w-md",onClose:y,children:[(0,n.jsxs)(i.c7,{children:[(0,n.jsx)(i.L3,{children:"Do you want to start this course?"}),(0,n.jsx)(i.rr,{children:p?'Starting "'.concat(r,'" will enroll you and unlock lesson content.'):'Sign in to start "'.concat(r,'" and unlock lesson content.')})]}),(0,n.jsxs)(i.Es,{className:"gap-2 sm:gap-0",children:[(0,n.jsx)(o.$,{type:"button",variant:"outline",onClick:y,children:"Not now"}),p?(0,n.jsx)(o.$,{type:"button",onClick:()=>{p&&!x&&v(async()=>{let e=await (0,c.f)(t);if(!e.success){l.o.error(e.error||"Could not start this course.");return}h(!1),m.push(d)})},loading:x,disabled:x,children:"Start course"}):(0,n.jsx)(o.$,{type:"button",asChild:!0,children:(0,n.jsx)("a",{href:f,children:"Sign in to start"})})]})]})})}},46675:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(85979).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},40315:(e,t,r)=>{"use strict";var n=r(79651);r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},12569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{callServer:function(){return n.callServer},createServerReference:function(){return a},findSourceMapURL:function(){return s.findSourceMapURL}});let n=r(92146),s=r(27934),a=r(76774).createServerReference},31055:(e,t,r)=>{"use strict";r.d(t,{$:()=>d,r:()=>c});var n=r(19002),s=r(52114),a=r(4302),o=r(42030),i=r(40399),l=r(56130);let c=(0,o.F)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:r,variant:s,size:o,asChild:d=!1,loading:u=!1,children:f,...p}=e,m=d?a.DX:"button";return(0,n.jsx)(m,{className:(0,i.cn)(c({variant:s,size:o,className:r}),u&&"relative"),ref:t,...p,children:u?(0,n.jsxs)("span",{children:[(0,n.jsx)("span",{className:(0,i.cn)({"opacity-0":u}),children:f}),(0,n.jsx)("span",{className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",children:(0,n.jsx)(l.y,{className:"text-current size-4"})})]}):f})});d.displayName="Button"},1459:(e,t,r)=>{"use strict";r.d(t,{Cf:()=>p,Es:()=>g,HM:()=>u,L3:()=>h,c7:()=>m,lG:()=>l,rr:()=>x,zM:()=>c});var n=r(19002),s=r(52114),a=r(76050),o=r(46675),i=r(40399);let l=a.bL,c=a.l9,d=a.ZL,u=a.bm,f=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)(a.hJ,{ref:t,className:(0,i.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...s})});f.displayName=a.hJ.displayName;let p=s.forwardRef((e,t)=>{let{onClose:r,className:s,children:l,...c}=e,u=()=>{null==r||r()};return(0,n.jsxs)(d,{children:[(0,n.jsx)(f,{}),(0,n.jsxs)(a.UC,{ref:t,className:(0,i.cn)("fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg md:w-full",s),onEscapeKeyDown:u,onPointerDownOutside:u,...c,children:[l,(0,n.jsxs)(a.bm,{type:"button",className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",onClick:u,children:[(0,n.jsx)(o.A,{className:"size-4 shrink-0"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});p.displayName=a.UC.displayName;let m=e=>{let{className:t,...r}=e;return(0,n.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-2 text-center sm:text-left",t),...r})};m.displayName="DialogHeader";let g=e=>{let{className:t,...r}=e;return(0,n.jsx)("div",{className:(0,i.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...r})};g.displayName="DialogFooter";let h=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)(a.hE,{ref:t,className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",r),...s})});h.displayName=a.hE.displayName;let x=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,n.jsx)(a.VY,{ref:t,className:(0,i.cn)("text-sm text-muted-foreground",r),...s})});x.displayName=a.VY.displayName},95836:(e,t,r)=>{"use strict";r.d(t,{Toaster:()=>o,o:()=>s.oR});var n=r(19002);r(52114);var s=r(26912),a=r(7828);function o(e){let{theme:t="system"}=(0,a.D)();return(0,n.jsx)(s.l$,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})}o.displayName="Toaster"},56130:(e,t,r)=>{"use strict";r.d(t,{Y:()=>d,y:()=>c});var n=r(19002);r(52114);var s=r(42030),a=r(2005),o=r(40399);let i=(0,s.F)("flex-col items-center justify-center",{variants:{show:{true:"flex",false:"hidden"}},defaultVariants:{show:!0}}),l=(0,s.F)("animate-spin text-primary",{variants:{size:{small:"size-6 shrink-0",medium:"size-8 shrink-0",large:"size-12 shrink-0"}},defaultVariants:{size:"medium"}});function c(e){let{size:t,show:r,children:s,className:c}=e;return(0,n.jsxs)("span",{className:i({show:r}),children:[(0,n.jsx)(a.A,{className:(0,o.cn)(l({size:t}),c)}),s]})}function d(e){let{containerClassName:t,...r}=e;return(0,n.jsx)("div",{className:(0,o.cn)("pointer-events-none absolute inset-0 flex select-none items-center justify-center opacity-65",t),children:(0,n.jsx)(c,{...r})})}d.displayName="CenteredSpinner"},7828:(e,t,r)=>{"use strict";r.d(t,{D:()=>n.D,N:()=>n.N});var n=r(92335)},40399:(e,t,r)=>{"use strict";r.d(t,{cn:()=>a});var n=r(60236),s=r(40111);function a(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";r.d(t,{f:()=>s});var n=r(12569);let s=(0,n.createServerReference)("40dd5c482c89497b04b4d28e719e198f2e62501128",n.callServer,void 0,n.findSourceMapURL,"enrollInCourseAction")},76050:(e,t,r)=>{"use strict";r.d(t,{G$:()=>H,Hs:()=>j,UC:()=>et,VY:()=>en,ZL:()=>Q,bL:()=>X,bm:()=>es,hE:()=>er,hJ:()=>ee,l9:()=>K});var n=r(52114),s=r(13483),a=r(74768),o=r(21762),i=r(2441),l=r(32617),c=r(93025),d=r(72840),u=r(12821),f=r(64033),p=r(63324),m=r(4160),g=r(89377),h=r(48735),x=r(4302),v=r(19002),y="Dialog",[b,j]=(0,o.A)(y),[N,w]=b(y),C=e=>{let{__scopeDialog:t,children:r,open:s,defaultOpen:a,onOpenChange:o,modal:c=!0}=e,d=n.useRef(null),u=n.useRef(null),[f=!1,p]=(0,l.i)({prop:s,defaultProp:a,onChange:o});return(0,v.jsx)(N,{scope:t,triggerRef:d,contentRef:u,contentId:(0,i.B)(),titleId:(0,i.B)(),descriptionId:(0,i.B)(),open:f,onOpenChange:p,onOpenToggle:n.useCallback(()=>p(e=>!e),[p]),modal:c,children:r})};C.displayName=y;var R="DialogTrigger",D=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,o=w(R,r),i=(0,a.s)(t,o.triggerRef);return(0,v.jsx)(p.sG.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":Y(o.open),...n,ref:i,onClick:(0,s.m)(e.onClick,o.onOpenToggle)})});D.displayName=R;var k="DialogPortal",[P,E]=b(k,{forceMount:void 0}),O=e=>{let{__scopeDialog:t,forceMount:r,children:s,container:a}=e,o=w(k,t);return(0,v.jsx)(P,{scope:t,forceMount:r,children:n.Children.map(s,e=>(0,v.jsx)(f.C,{present:r||o.open,children:(0,v.jsx)(u.Z,{asChild:!0,container:a,children:e})}))})};O.displayName=k;var S="DialogOverlay",I=n.forwardRef((e,t)=>{let r=E(S,e.__scopeDialog),{forceMount:n=r.forceMount,...s}=e,a=w(S,e.__scopeDialog);return a.modal?(0,v.jsx)(f.C,{present:n||a.open,children:(0,v.jsx)(_,{...s,ref:t})}):null});I.displayName=S;var _=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,s=w(S,r);return(0,v.jsx)(g.A,{as:x.DX,allowPinchZoom:!0,shards:[s.contentRef],children:(0,v.jsx)(p.sG.div,{"data-state":Y(s.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),F="DialogContent",z=n.forwardRef((e,t)=>{let r=E(F,e.__scopeDialog),{forceMount:n=r.forceMount,...s}=e,a=w(F,e.__scopeDialog);return(0,v.jsx)(f.C,{present:n||a.open,children:a.modal?(0,v.jsx)(A,{...s,ref:t}):(0,v.jsx)(M,{...s,ref:t})})});z.displayName=F;var A=n.forwardRef((e,t)=>{let r=w(F,e.__scopeDialog),o=n.useRef(null),i=(0,a.s)(t,r.contentRef,o);return n.useEffect(()=>{let e=o.current;if(e)return(0,h.Eq)(e)},[]),(0,v.jsx)(G,{...e,ref:i,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,s.m)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=r.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:(0,s.m)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;(2===t.button||r)&&e.preventDefault()}),onFocusOutside:(0,s.m)(e.onFocusOutside,e=>e.preventDefault())})}),M=n.forwardRef((e,t)=>{let r=w(F,e.__scopeDialog),s=n.useRef(!1),a=n.useRef(!1);return(0,v.jsx)(G,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var n,o;null===(n=e.onCloseAutoFocus)||void 0===n||n.call(e,t),t.defaultPrevented||(s.current||null===(o=r.triggerRef.current)||void 0===o||o.focus(),t.preventDefault()),s.current=!1,a.current=!1},onInteractOutside:t=>{var n,o;null===(n=e.onInteractOutside)||void 0===n||n.call(e,t),t.defaultPrevented||(s.current=!0,"pointerdown"!==t.detail.originalEvent.type||(a.current=!0));let i=t.target;(null===(o=r.triggerRef.current)||void 0===o?void 0:o.contains(i))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),G=n.forwardRef((e,t)=>{let{__scopeDialog:r,trapFocus:s,onOpenAutoFocus:o,onCloseAutoFocus:i,...l}=e,u=w(F,r),f=n.useRef(null),p=(0,a.s)(t,f);return(0,m.Oh)(),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(d.n,{asChild:!0,loop:!0,trapped:s,onMountAutoFocus:o,onUnmountAutoFocus:i,children:(0,v.jsx)(c.qW,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":Y(u.open),...l,ref:p,onDismiss:()=>u.onOpenChange(!1)})}),(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(Z,{titleId:u.titleId}),(0,v.jsx)(J,{contentRef:f,descriptionId:u.descriptionId})]})]})}),L="DialogTitle",$=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,s=w(L,r);return(0,v.jsx)(p.sG.h2,{id:s.titleId,...n,ref:t})});$.displayName=L;var B="DialogDescription",T=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,s=w(B,r);return(0,v.jsx)(p.sG.p,{id:s.descriptionId,...n,ref:t})});T.displayName=B;var U="DialogClose",V=n.forwardRef((e,t)=>{let{__scopeDialog:r,...n}=e,a=w(U,r);return(0,v.jsx)(p.sG.button,{type:"button",...n,ref:t,onClick:(0,s.m)(e.onClick,()=>a.onOpenChange(!1))})});function Y(e){return e?"open":"closed"}V.displayName=U;var q="DialogTitleWarning",[H,W]=(0,o.q)(q,{contentName:F,titleName:L,docsSlug:"dialog"}),Z=e=>{let{titleId:t}=e,r=W(q),s="`".concat(r.contentName,"` requires a `").concat(r.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(r.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(r.docsSlug);return n.useEffect(()=>{t&&!document.getElementById(t)&&console.error(s)},[s,t]),null},J=e=>{let{contentRef:t,descriptionId:r}=e,s=W("DialogDescriptionWarning"),a="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(s.contentName,"}.");return n.useEffect(()=>{var e;let n=null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby");r&&n&&!document.getElementById(r)&&console.warn(a)},[a,t,r]),null},X=C,K=D,Q=O,ee=I,et=z,er=$,en=T,es=V}},e=>{var t=t=>e(e.s=t);e.O(0,[17094,64406,55861,63791,44791,39586,85030,5779,77358],()=>t(98830)),_N_E=e.O()}]);