PageSourceSearch

https://www.beerandbrewing.com/_next/static/chunks/app/course/%5Bs…?dpl=dpl_9ycAzsRSkms4kVsmDasGjkBxuSNx

js beerandbrewing.com collected 2026-09-24 18:02:17 UTC 35,450 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6333],{67027:function(e,t,s){Promise.resolve().then(s.t.bind(s,65878,23)),Promise.resolve().then(s.t.bind(s,72972,23)),Promise.resolve().then(s.t.bind(s,88003,23)),Promise.resolve().then(s.bind(s,67085)),Promise.resolve().then(s.bind(s,24526)),Promise.resolve().then(s.bind(s,88618)),Promise.resolve().then(s.bind(s,6344)),Promise.resolve().then(s.bind(s,54860))},67085:function(e,t,s){"use strict";s.d(t,{default:function(){return d}});var a=s(57437),r=s(2265),l=s(27648),n=s(33145);function i(e){let{isOpen:t,onClose:s,embedUrl:l,courseName:n}=e;return((0,r.useEffect)(()=>{let e=e=>{"Escape"===e.key&&s()};return t&&(document.addEventListener("keydown",e),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",e),document.body.style.overflow="unset"}},[t,s]),t)?(0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/80",onClick:s}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-4xl px-4",children:[(0,a.jsx)("button",{onClick:s,className:"absolute -top-12 right-4 text-white hover:text-gray-300 transition","aria-label":"Close modal",children:(0,a.jsx)("svg",{className:"w-8 h-8",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),(0,a.jsx)("div",{className:"relative bg-black rounded-lg overflow-hidden",children:(0,a.jsx)("div",{className:"relative",style:{paddingBottom:"56.25%"},children:(0,a.jsx)("iframe",{src:l,className:"absolute inset-0 w-full h-full",frameBorder:"0",scrolling:"auto",title:n,allowFullScreen:!0})})})]})]}):null}var o=s(55927),c=s(58378);function d(e){var t,s,d,m,u;let{course:h,access:x,user:g,isDeepDive:p,eventDates:v,trailerEmbedUrl:b,trailerBackgroundUrl:f}=e,[w,j]=(0,r.useState)({}),[y,N]=(0,r.useState)(null),[k,S]=(0,r.useState)(!1);(0,r.useEffect)(()=>{(null==g?void 0:g.id)&&C()},[g,h.slug]),(0,r.useEffect)(()=>{(async()=>{if(!h.id)return;let e=localStorage.getItem("recombeeSessionId");e||(e=crypto.randomUUID(),localStorage.setItem("recombeeSessionId",e));let t=(null==g?void 0:g.id)||"anon-".concat(e),s=h.id;try{await fetch("/api/track/recombee",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventType:"detailView",userId:t,itemId:s,itemType:"course",sessionId:e,timestamp:new Date})}),console.log("Recombee: DetailView tracked for course ".concat(s," by user ").concat(t))}catch(e){console.error("Recombee: Failed to track DetailView:",e)}})()},[h.id,null==g?void 0:g.id]);let C=async()=>{try{let e=await fetch("/api/course/progress?courseSlug=".concat(h.slug));if(e.ok){let t=await e.json();j(t.progress||{})}let t=await fetch("/api/course/progress?courseSlug=".concat(h.slug,"&latest=true"));if(t.ok){let e=await t.json();e.latestProgress&&N({user:(null==g?void 0:g.email)||"",course:h.slug,lesson:e.latestProgress.lesson_slug,position:parseFloat(e.latestProgress.position),duration:parseFloat(e.latestProgress.duration),completion:e.latestProgress.completion})}}catch(t){console.error("Failed to fetch progress from database:",t);let e=localStorage.getItem("course-progress-".concat(h.slug));if(e){let t=JSON.parse(e);j(t.lessons||{}),N(t.latest||null)}}},L=h.lessons.find(e=>!e.isComingSoon),T=(null==y?void 0:y.lesson)||(null==L?void 0:L.slug),D=()=>{S(!0)},E=(()=>{if(!p||!v)return!1;let e=v.end||v.start;if(!e)return!1;let t=new Date(e);return t.setUTCHours(23,59,59,999),new Date>t})();return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"min-h-screen",children:[(0,a.jsx)("div",{className:"relative w-screen left-1/2 right-1/2 -ml-[50vw] -mr-[50vw] bg-black",children:(0,a.jsxs)("div",{className:"relative min-h-[85vh] md:min-h-0 md:aspect-[16/9] md:max-h-[80vh] overflow-hidden",children:[f?(0,a.jsx)("video",{autoPlay:!0,muted:!0,loop:!0,playsInline:!0,poster:"".concat((null===(t=h.wideImage)||void 0===t?void 0:t.url)||h.image.url,"?w=1920"),className:"absolute inset-0 w-full h-full object-cover",children:(0,a.jsx)("source",{src:f,type:"video/mp4"})}):(0,a.jsx)("div",{className:"absolute inset-0 bg-cover bg-center",style:{backgroundImage:"url(".concat((null===(s=h.wideImage)||void 0===s?void 0:s.url)||h.image.url,"?w=1920)")}}),(0,a.jsx)("div",{className:"absolute inset-0 bg-gradient-to-r from-black via-black/70 via-40% to-black/20 to-80%"}),(0,a.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/50 via-trans
1parent to-transparent"}),(0,a.jsx)("div",{className:"absolute inset-0 flex items-start md:items-center",children:(0,a.jsx)("div",{className:"max-w-7xl mx-auto px-6 md:px-12 w-full pt-6 pb-8 md:py-0",children:(0,a.jsx)("div",{className:"max-w-xl",children:p?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:"text-amber-400 text-sm font-semibold uppercase tracking-wider mb-3",children:"Deep Dive Series"}),(0,a.jsx)("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-4 leading-tight",children:h.name}),v&&(0,a.jsxs)("div",{className:"inline-flex items-center gap-3 mb-5 px-4 py-2 backdrop-blur-sm rounded-full border ".concat(E?"bg-white/5 border-white/10":"bg-white/10 border-white/20"),children:[!E&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"relative flex h-2.5 w-2.5",children:[(0,a.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-red-500 opacity-75"}),(0,a.jsx)("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-red-500"})]}),(0,a.jsx)("span",{className:"text-white font-medium",children:"Live Online"}),(0,a.jsx)("span",{className:"text-white/40",children:"|"})]}),(0,a.jsx)("span",{className:"text-white font-semibold",children:(()=>{let e=new Date(v.start||""),t=v.end?new Date(v.end):null;return t&&e.toDateString()!==t.toDateString()?"".concat(e.toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:"UTC"})," – ").concat(t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:"UTC"})):e.toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric",timeZone:"UTC"})})()})]}),(0,a.jsx)("p",{className:"text-white text-lg mb-6 leading-relaxed",children:h.shortLede}),E?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"max-w-sm pt-6 border-t border-white/20 mb-4",children:[(0,a.jsx)("p",{className:"text-white text-lg font-semibold mb-1",children:"This event has concluded."}),(0,a.jsx)("p",{className:"text-white/70",children:"Thank you to all who attended and participated!"})]}),(0,a.jsx)("div",{className:"flex items-center gap-4 text-sm",children:b&&h.allow_watch_trailer&&(0,a.jsxs)("button",{onClick:D,className:"text-white/70 hover:text-white transition flex items-center gap-1.5",children:[(0,a.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8 5v14l11-7z"})}),"Watch Trailer"]})})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"max-w-sm pt-6 border-t border-white/20 mb-4",children:(0,a.jsx)(c.Z,{courseSlug:h.slug,eventName:h.name,startDate:null==v?void 0:v.start,endDate:null==v?void 0:v.end,userEmail:null==g?void 0:g.email,compact:!0,sessions:h.lessons.map(e=>({title:e.title||e.name||"",time:e.releaseDateTime||void 0,teaser:e.shortLede})),sponsors:h.sponsors})}),(0,a.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[b&&h.allow_watch_trailer&&(0,a.jsxs)("button",{onClick:D,className:"text-white/70 hover:text-white transition flex items-center gap-1.5",children:[(0,a.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8 5v14l11-7z"})}),"Watch Trailer"]}),(0,a.jsxs)("span",{className:"text-green-400 flex items-center gap-1.5",children:[(0,a.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),"Free Event"]})]})]})]}):(0,a.jsxs)(a.Fragment,{children:[h.authors.length>0&&(0,a.jsx)("p",{className:"text-white/70 text-xs md:text-sm tracking-[0.2em] uppercase mb-2",children:h.authors.map(e=>e.name).join(" & ")}),(0,a.jsx)("h1",{className:"text-3xl md:text-5xl lg:text-6xl font-bold text-white mb-3 leading-[1.1] tracking-tight",children:h.name}),(0,a.jsx)("div",{className:"w-10 h-0.5 bg-white/50 mb-4"}),(0,a.jsx)("h2",{className:"text-lg md:text-xl text-white/90 font-medium mb-4",children:h.subTitle}),(0,a.jsx)("p",{className:"text-sm md:text-base text-white/70 mb-6 leading-relaxed max-w-xl",children:h.shortLede}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[T&&x.canView&&
1(0,a.jsxs)(l.default,{href:"/course/".concat(h.slug,"/chapter/").concat(T),className:"inline-flex items-center gap-2 px-4 py-2 bg-white text-black font-medium rounded-lg hover:bg-white/90 transition",children:[(0,a.jsx)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"currentColor",children:(0,a.jsx)("path",{d:"M8 5v14l11-7z"})}),y?"Resume":"Start Class"]}),!x.canView&&(0,a.jsx)(l.default,{href:"/subscription",className:"inline-flex items-center gap-2 px-4 py-2 bg-amber-500 text-black font-medium rounded-lg hover:bg-amber-400 transition",children:"Subscribe"}),b&&(0,a.jsx)("button",{onClick:D,className:"inline-flex items-center gap-2 px-4 py-2 bg-white/10 text-white font-medium rounded-lg border border-white/30 hover:bg-white/20 transition backdrop-blur-sm",children:"Watch Trailer"}),(0,a.jsx)(o.default,{contentType:"course",contentSlug:h.slug,contentTitle:h.name,contentImage:null===(d=h.image)||void 0===d?void 0:d.url,variant:"button",className:"!bg-white/10 !text-white !border-white/30 hover:!bg-white/20"})]}),h.accessLevel&&(0,a.jsx)("div",{className:"inline-flex items-center gap-2 mt-6 text-sm ".concat(x.canView?"text-green-400":"text-white/60"),children:x.canView?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"})}),"All Access"===h.accessLevel?"Included with your All Access subscription":"Subscriber"===h.accessLevel?"Included with your subscription":"Free with your account"]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z"})}),"All Access"===h.accessLevel?"All Access subscription required":"Subscriber"===h.accessLevel?"Subscription required":"Free account required"]})})]})})})})]})}),(0,a.jsx)("div",{className:"bg-white py-12",children:(0,a.jsx)("div",{className:"max-w-6xl mx-auto px-4",children:(0,a.jsxs)("div",{className:"grid lg:grid-cols-3 gap-8",children:[(0,a.jsxs)("div",{className:"lg:col-span-2",children:[h.body&&(0,a.jsx)("div",{className:"prose prose-lg max-w-none",dangerouslySetInnerHTML:{__html:h.body}}),p&&(0,a.jsx)("div",{className:"mt-10 p-6 bg-gray-50 rounded-xl border border-gray-200",children:E?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-xl font-bold text-gray-900 mb-1",children:"This Event Has Concluded"}),(0,a.jsx)("p",{className:"text-gray-600",children:"Thank you to all who attended and participated in this Deep Dive Series!"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("h2",{className:"text-xl font-bold text-gray-900 mb-1",children:"Register for This Deep Dive Series"}),(null==v?void 0:v.start)&&(0,a.jsx)("p",{className:"text-gray-600 mb-4",children:(()=>{let e=new Date(v.start),t=v.end?new Date(v.end):null;return t&&e.toDateString()!==t.toDateString()?"".concat(e.toLocaleDateString("en-US",{month:"short",day:"numeric",timeZone:"UTC"})," – ").concat(t.toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",timeZone:"UTC"})):e.toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric",timeZone:"UTC"})})()}),(0,a.jsx)(c.Z,{courseSlug:h.slug,eventName:h.name,startDate:null==v?void 0:v.start,endDate:null==v?void 0:v.end,userEmail:null==g?void 0:g.email,sessions:h.lessons.map(e=>({title:e.title||e.name||"",time:e.releaseDateTime||void 0,teaser:e.shortLede})),sponsors:h.sponsors})]})}),p&&(0,a.jsxs)("div",{className:"mt-10",children:[(0,a.jsx)("h2",{className:"text-3xl font-bold mb-2",children:"Sessions"}),(0,a.jsx)("div",{className:"space-y-4",children:h.lessons.map((e,t)=>{var s,r,i,o,c,d;let m=(0,a.jsx)("div",{className:"p-4 md:p-5",children:(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 sm:gap-5 md:gap-6",children:[(0,a.jsx)("div",{className:"relative flex-shrink-0 w-full sm:w-[120px] md:w-[150px]",children:(0,a.jsx)("div",{className:"relative aspect-square rounded-lg overflow-hidden bg-black",children:((null===(s=e.image)||void 0===s?void 0:s.url)||(null===(i=e.images)||void 0===i?void 0:null===(r=i[0])||void 0===r?void 0:r.url))&&(0,a.jsx)(n.default,{src:"".concat((null===(o=e.image)||void 0===o?void 0:o.url)||(null===(d=e.images)||void 0===d?void 0:null===(c=d[0])||void 0===c?void 0:c.url),"?w=300&h=300&fit=crop"),alt:e.title||e.name||"",fill:!0,className:"object-cover"})})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 py-1",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2 mb-2",children:[e.isComingSoon&&e.releaseDateTime&&(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 bg-amber-200 rounded-lg",children:[(0,a.jsx)("svg",{className:"w-4 h-4 text-gray-700",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-semibold text-gray-800",children:new Date(e.releaseDateTime).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric",timeZone:"America/Ne
1w_York"})}),(0,a.jsx)("span",{className:"text-xs text-gray-600 sm:before:content-['•'] sm:before:mr-2",children:new Date(e.releaseDateTime).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0,timeZone:"America/New_York"})+" ET"})]})]}),e.isComingSoon&&!e.releaseDateTime&&(0,a.jsx)("span",{className:"inline-block px-2 py-0.5 bg-gray-100 text-gray-600 text-xs font-semibold rounded",children:"Coming Soon"})]}),(0,a.jsxs)("h3",{className:"text-lg md:text-xl font-bold text-gray-900 mb-2 ".concat("group-hover:text-amber-600 transition"),children:[t+1,". ",e.title||e.name]}),(0,a.jsx)("p",{className:"text-gray-600 text-sm md:text-base line-clamp-3",children:e.shortLede}),Array.isArray(e.author)&&e.author.length>0&&(0,a.jsxs)("div",{className:"mt-4 pt-3",children:[(0,a.jsx)("h4",{className:"text-xs font-semibold uppercase text-gray-500 mb-2",children:"Featuring:"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-4",children:e.author.map((e,t)=>{var s;return(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(null===(s=e.headshot)||void 0===s?void 0:s.url)?(0,a.jsx)(n.default,{src:"".concat(e.headshot.url,"?w=80&h=80&fit=crop"),alt:e.name,width:40,height:40,className:"rounded-full object-cover"}):(0,a.jsx)("div",{className:"w-10 h-10 rounded-full bg-gray-200 flex items-center justify-center",children:(0,a.jsx)("span",{className:"text-gray-500 text-sm font-semibold",children:e.name.charAt(0)})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-semibold text-gray-900",children:e.name}),e.title&&(0,a.jsx)("p",{className:"text-sm text-gray-600",children:e.title})]})]},t)})})]}),e.sponsors&&e.sponsors.length>0&&(0,a.jsx)("div",{className:"mt-3 pt-3 border-t",onClick:e=>e.stopPropagation(),children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-xs font-semibold uppercase text-gray-400",children:"Sponsored by"}),e.sponsors.map((e,t)=>(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,a.jsx)(n.default,{src:"".concat(e.logo.url,"?w=80"),alt:e.name,width:80,height:40,className:"max-h-8 w-auto opacity-70 hover:opacity-100 transition"})},t))]})})]})]})});return(0,a.jsx)(l.default,{href:"/course/".concat(h.slug,"/chapter/").concat(e.slug),className:"block bg-white rounded-xl border border-gray-200 transition-all hover:shadow-lg group cursor-pointer",children:m},e.id)})})]})]}),(0,a.jsxs)("div",{children:[h.authors.length>0&&(0,a.jsxs)("div",{className:"mb-8",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold uppercase text-gray-600 mb-4",children:"Featuring:"}),(0,a.jsx)("div",{className:"space-y-4",children:h.authors.map(e=>{var t;return(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(null===(t=e.headshot)||void 0===t?void 0:t.url)?(0,a.jsx)(n.default,{src:"".concat(e.headshot.url,"?w=100&h=100&fit=crop"),alt:e.name,width:56,height:56,className:"rounded-full object-cover"}):(0,a.jsx)("div",{className:"w-14 h-14 rounded-full bg-gray-200 flex items-center justify-center",children:(0,a.jsx)("span",{className:"text-gray-500 text-lg font-semibold",children:e.name.charAt(0)})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-semibold text-gray-900",children:e.name}),e.title&&(0,a.jsx)("p",{className:"text-sm text-gray-600",children:e.title})]})]},e.id)})})]}),(null===(m=h.sponsors)||void 0===m?void 0:m.length)>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-semibold uppercase text-gray-600 mb-4",children:"Sponsors:"}),null===(u=h.sponsors)||void 0===u?void 0:u.map((e,t)=>(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"block mb-3",children:(0,a.jsx)(n.default,{src:"".concat(e.logo.url,"?w=200"),alt:e.name,width:200,height:100,className:"max-w-full h-auto"})}),(0,a.jsx)("h4",{className:"font-semibold mb-2",children:e.name}),(0,a.jsx)("div",{className:"text-sm text-gray-600",dangerouslySetInnerHTML:{__html:e.body}})]},t))]})]})]})})}),!p&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("hr",{className:"my-8"}),(0,a.jsx)("div",{className:"py-12",children:(0,a.jsxs)("div",{className:"max-w-6xl mx-auto px-4",children:[(0,a.jsx)("h2",{className:"text-3xl font-bold mb-2",children:"Lessons"}),g&&Object.keys(w).length>0&&(0,a.jsxs)("div",{className:"mb-6 text-sm text-gray-600 flex items-center gap-3",children:[(0,a.jsx)("div",{className:"flex-1 h-2 rounded-full bg-gray-200 overflow-hidden",children:(0,a.jsx)("div",{className:"h-full bg-amber-500",style:{width:"".concat(Math.round(Object.values(w).filter(e=>e.completion>=90).length/h.lessons.filter(e=>!e.isComingSoon).length*100),"%")}})}),(0,a.jsxs)("span",{children:[Object.values(w).filter(e=>e.completion>=90).length,"/",h.lessons.filter(e=>!e.isComingSoon).length," completed"]})]}),(0,a.jsx)("div",{className:"space-y-4",children:h.lessons.map((e,t)=>{var s,r,i,o,c,d,m,u,p,v;let b=g&&(null===(s=w[e.slug])||void 0===s?void 0:s.completion)>=90,f=g&&(null===(r=w[e.slug])||void 0===r?void 0:r.completion)>0&&(null===(i=w[e.slug])||void 0===i?void 0:i.completion)<90,j=x.canView&&!e.isComingSoon,y=(0,a.jsx)("div",{className:"p-4 md:p-5",children:(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 sm:gap-5 md:gap-6",children:[(0,a.jsx)("div",{className:"relative flex-shrink-0 w-full sm:w-[200px] md:w-[280px]",children:(0,a.jsxs)("div",{className:"relative aspect-video rounded-lg overflow-hidden bg-black",children:[((null===(o=e.image)||void 0===o?void 0:o.url)||(null===(d=e.images)||void 0===d?void 0:null===(c=d[0])||void 0===c?void 0:c.url))&&(0,a.jsx)(n.default,{src:"".concat((null===(m=e.image)||void 0===m?void 0:m.url)||(null===(p=e.images)||void 0===p?void 0:null===(u=p[0])||void 0===u?void 0:u.url),"?w=560&h=315&fit=crop"),alt:e.title||e.name||"",fill:!0,className:"object-cover"}),b&&(0,a.jsx)("div",{className:"absolute top-2 left-2 w-7 h-7 rounded-full bg-green-500 flex items-center justify-center shadow-lg",children:(0,a.jsx)("svg",{className:"w-4 h-4 text-white",f
1ill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})})}),(null===(v=e.tagsList)||void 0===v?void 0:v.find(e=>e.includes("min")))&&(0,a.jsx)("div",{className:"absolute bottom-2 right-2 px-2 py-0.5 bg-black/80 text-white text-xs font-medium rounded",children:e.tagsList.find(e=>e.includes("min"))}),f&&(0,a.jsx)("div",{className:"absolute bottom-0 left-0 right-0 h-1 bg-black/50",children:(0,a.jsx)("div",{className:"h-full bg-amber-500",style:{width:"".concat(w[e.slug].completion,"%")}})})]})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 py-1",children:[(0,a.jsxs)("div",{className:"flex items-start gap-2 mb-2",children:[e.isComingSoon&&e.releaseDateTime&&(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 bg-amber-200 rounded-lg",children:[(0,a.jsx)("svg",{className:"w-4 h-4 text-gray-700",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-semibold text-gray-800",children:new Date(e.releaseDateTime).toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric",timeZone:"America/New_York"})}),(0,a.jsx)("span",{className:"text-xs text-gray-600 sm:before:content-['•'] sm:before:mr-2",children:new Date(e.releaseDateTime).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",hour12:!0,timeZone:"America/New_York"})+" ET"})]})]}),e.isComingSoon&&!e.releaseDateTime&&(0,a.jsx)("span",{className:"inline-block px-2 py-0.5 bg-gray-100 text-gray-600 text-xs font-semibold rounded",children:"Coming Soon"}),b&&(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-green-100 text-green-700 text-xs font-semibold rounded",children:[(0,a.jsx)("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:3,children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),"Completed"]}),f&&(0,a.jsx)("span",{className:"inline-block px-2 py-0.5 bg-amber-100 text-amber-700 text-xs font-semibold rounded",children:"In Progress"})]}),(0,a.jsxs)("h3",{className:"text-lg md:text-xl font-bold text-gray-900 mb-2 ".concat(j?"group-hover:text-amber-600 transition":""),children:[t+1,". ",e.title||e.name]}),(0,a.jsx)("p",{className:"text-gray-600 text-sm md:text-base line-clamp-3",children:e.shortLede}),e.sponsors&&e.sponsors.length>0&&(0,a.jsx)("div",{className:"mt-3 pt-3 border-t",onClick:e=>e.stopPropagation(),children:(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("span",{className:"text-xs font-semibold uppercase text-gray-400",children:"Sponsored by"}),e.sponsors.map((e,t)=>(0,a.jsx)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",onClick:e=>e.stopPropagation(),children:(0,a.jsx)(n.default,{src:"".concat(e.logo.url,"?w=80"),alt:e.name,width:80,height:40,className:"max-h-8 w-auto opacity-70 hover:opacity-100 transition"})},t))]})})]})]})});return j?(0,a.jsx)(l.default,{href:"/course/".concat(h.slug,"/chapter/").concat(e.slug),className:"block bg-white rounded-xl border transition-all hover:shadow-lg group cursor-pointer ".concat(b?"border-green-200 bg-green-50/30":"border-gray-200"),children:y},e.id):(0,a.jsx)("div",{className:"bg-white rounded-xl border transition-all ".concat(b?"border-green-200 bg-green-50/30":"border-gray-200"),children:y},e.id)})})]})})]})]}),b&&(0,a.jsx)(i,{isOpen:k,onClose:()=>S(!1),embedUrl:b,courseName:h.name})]})}},54860:function(e,t,s){"use strict";s.d(t,{default:function(){return o}});var a=s(57437),r=s(2265),l=s(87233);let n=r.forwardRef(function(e,t){let{title:s,titleId:a,...l}=e;return r.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":a},l),s?r.createElement("title",{id:a},s):null,r.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0 0 15 2.25h-1.5a2.251 2.251 0 0 0-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9Z"}))});async function i(e){try{await navigator.clipboard.writeText(e)}catch(s){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),t.remove()}}function o(e){let{type:t,slug:s}=e,[o,c]=(0,r.useState)("idle");async function d(){c("working");try{let e=await fetch("/api/preview/share",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:t,slug:s})}),a=await e.json();if(!e.ok||!a.url)throw Error("Unable to create review link");await i(a.url),c("copied"),window.setTimeout(()=>c("idle"),3e3)}catch(e){c("error")}}return(0,a.jsxs)("aside",{className:"fixed bottom-4 right-4 z-[100] flex items-center gap-2 rounded-xl border border-amber-300 bg-slate-950 px-3 py-2 text-sm text-white shadow-2xl",children:[(0,a.jsx)("span",{className:"hidden font-semibold sm:inline",children:"Editor preview"}),(0,a.jsxs)("button",{type:"button",onClick:d,disabled:"working"===o,className:"inline-flex items-center gap-1.5 rounded-lg bg-amber-400 px-3 py-2 font-semibold text-slate-950 transition hover:bg-amber-300 disabled:cursor-wait disabled:opacity-70",children:["copied"===o?(0,a.jsx)(l.Z,{className:"h-4 w-4","aria-hidden":"true"}):(0,a.jsx)(n,{className:"h-4 w-4","aria-hidden":"true"}),"working"===o?"Creating…":"copied"===o?"Link copied":"error"===o?"Try again":"Copy client review link"]}),(0,a.jsx)("a",{href:"/api/preview/stop",className:"px-2 py-1 text-slate-300 hover:text-white",children:"Exit"})]})}},55927:function(e,t,s){"use strict";s.d(t,{default:function(){return n}});var a=s(57437),r=s(2265),l=s(27526);function n(e){var t;let{contentType:s,contentSlug:n,contentTitle:i,contentImage:o,className:c="",variant:d="button",accentHex:m,showLabel:u=!0,initialSaved:h}=e,{data:x,status:g}=(0,l.kP)(),[p,v]=(0,r.useState)(null!=h&&h),[b,f]=(0,r.useState)(!1),[w,j]=(0,r.useState)(void 0!==h);(0,r.useEffect)(()=>{var e;(null==x?void 0:null===(e=x.user)||void 0===e?void 0:e.id)&&!w&&y()},[null==x?void 0:null===(t=x.user)||void 0===t?void 0:t.id,w]);let y=async()=>
1{try{let e=await fetch("/api/saved-content?contentType=".concat(s,"&contentSlug=").concat(encodeURIComponent(n)));if(e.ok){let t=await e.json();v(t.isSaved)}}catch(e){console.error("Error checking saved status:",e)}finally{j(!0)}},N=async()=>{var e;if(!(null==x?void 0:null===(e=x.user)||void 0===e?void 0:e.id)){window.location.href="/sign-in?redirect_url=".concat(encodeURIComponent(window.location.pathname));return}f(!0);try{p?(await fetch("/api/saved-content?contentType=".concat(s,"&contentSlug=").concat(encodeURIComponent(n)),{method:"DELETE"})).ok&&v(!1):(await fetch("/api/saved-content",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contentType:s,contentSlug:n,contentTitle:i,contentImage:o})})).ok&&v(!0)}catch(e){console.error("Error toggling save:",e)}finally{f(!1)}};if("loading"===g)return null;let k=e=>{let{filled:t}=e;return(0,a.jsx)("svg",{className:"w-5 h-5",fill:t?"currentColor":"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"})})};return"icon"===d?(0,a.jsx)("button",{onClick:N,disabled:b,className:"p-2 rounded-full transition-all ".concat(p?"text-amber-600 bg-amber-50 hover:bg-amber-100":"text-slate-400 hover:text-slate-600 hover:bg-slate-100"," ").concat(b?"opacity-50 cursor-not-allowed":""," ").concat(c),style:p&&m?{color:m,backgroundColor:"".concat(m,"15")}:void 0,title:p?"Remove from saved":"Save for later","aria-label":p?"Remove from saved":"Save for later",children:(0,a.jsx)(k,{filled:p})}):"text"===d?(0,a.jsxs)("button",{onClick:N,disabled:b,className:"flex items-center gap-1.5 text-sm transition-colors ".concat(p?"text-amber-600 hover:text-amber-700":"text-slate-500 hover:text-slate-700"," ").concat(b?"opacity-50 cursor-not-allowed":""," ").concat(c),style:p&&m?{color:m}:void 0,children:[(0,a.jsx)(k,{filled:p}),u&&(0,a.jsx)("span",{children:p?"Saved":"Save"})]}):(0,a.jsxs)("button",{onClick:N,disabled:b,className:"flex items-center gap-2 px-4 py-2 rounded-lg font-medium transition-all ".concat(p?"bg-amber-50 text-amber-600 border border-amber-200 hover:bg-amber-100":"bg-white text-slate-600 border border-slate-200 hover:bg-slate-50 hover:text-slate-800"," ").concat(b?"opacity-50 cursor-not-allowed":""," ").concat(c),style:p&&m?{color:m,backgroundColor:"".concat(m,"10"),borderColor:"".concat(m,"40")}:void 0,children:[(0,a.jsx)(k,{filled:p}),u&&(0,a.jsx)("span",{children:b?"Saving...":p?"Saved":"Save for Later"})]})}},24526:function(e,t,s){"use strict";s.d(t,{default:function(){return n}});var a=s(57437),r=s(2265),l=s(99376);function n(e){let{slug:t,price:s,className:n}=e,i=(0,l.useRouter)(),[o,c]=(0,r.useState)(!1),[d,m]=(0,r.useState)(null);async function u(){c(!0),m(null);try{let e=await fetch("/api/course/checkout",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({slug:t})});if(401===e.status){i.push("/sign-in?redirect_url=".concat(encodeURIComponent("/course/".concat(t))));return}let s=await e.json().catch(()=>({}));if(409===e.status&&s.alreadyOwned){i.refresh();return}if(!e.ok||!s.url){m(s.error||"Could not start checkout. Please try again."),c(!1);return}window.location.href=s.url}catch(e){m("Could not start checkout. Please try again."),c(!1)}}return(0,a.jsxs)("span",{className:"inline-flex flex-col items-start gap-1",children:[(0,a.jsx)("button",{type:"button",onClick:u,disabled:o,className:n||"inline-flex items-center gap-2 rounded-lg border border-white/30 bg-white/10 px-6 py-3 font-medium text-white backdrop-blur-sm transition hover:bg-white/20 disabled:opacity-60",children:o?"Starting checkout…":"Buy this course \xb7 ".concat(s)}),d?(0,a.jsx)("span",{className:"text-xs text-red-300",children:d}):null]})}},88618:function(e,t,s){"use strict";s.d(t,{default:function(){return l}});var a=s(57437),r=s(2265);function l(e){let{src:t}=e,s=(0,r.useRef)(null),[l,n]=(0,r.useState)(!1),[i,o]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let e=navigator.connection;null!=e&&e.saveData||n(!0)},[]),(0,r.useEffect)(()=>
1{if(!l)return;let e=s.current;e&&e.play().catch(()=>{})},[l]),l)?(0,a.jsx)("video",{ref:s,src:t,muted:!0,loop:!0,playsInline:!0,preload:"metadata",disablePictureInPicture:!0,"aria-hidden":"true",tabIndex:-1,onPlaying:()=>o(!0),className:"pointer-events-none absolute inset-0 h-full w-full object-cover transition-opacity duration-1000 ".concat(i?"opacity-100":"opacity-0")}):null}},6344:function(e,t,s){"use strict";s.d(t,{default:function(){return o}});var a=s(57437),r=s(2265),l=s(94619),n=s(77165),i=s(96569);function o(e){let{playlistUrl:t,playerLibraryUrl:s,courseTitle:o,lessonTitle:c,label:d="Watch a free preview",className:m}=e,[u,h]=(0,r.useState)(!1),x=(0,r.useCallback)(()=>h(!1),[]);return(0,r.useEffect)(()=>{if(!u)return;let e=e=>{"Escape"===e.key&&x()};document.addEventListener("keydown",e);let t=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.removeEventListener("keydown",e),document.body.style.overflow=t}},[u,x]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("button",{type:"button",onClick:()=>h(!0),className:m||"inline-flex items-center gap-2 rounded-lg border border-white/30 bg-white/10 px-6 py-3 font-medium text-white backdrop-blur-sm transition hover:bg-white/20",children:[(0,a.jsx)(l.Z,{className:"h-5 w-5","aria-hidden":"true"}),d]}),u?(0,a.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",role:"dialog","aria-modal":"true","aria-label":"Preview of ".concat(o),children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-black/85",onClick:x}),(0,a.jsxs)("div",{className:"relative z-10 w-full max-w-4xl px-4",children:[(0,a.jsxs)("div",{className:"mb-3 flex items-end justify-between gap-4",children:[(0,a.jsxs)("div",{className:"min-w-0",children:[(0,a.jsx)("p",{className:"text-xs uppercase tracking-[0.2em] text-white/60",children:d}),(0,a.jsx)("p",{className:"truncate text-lg font-semibold text-white",children:c})]}),(0,a.jsx)("button",{type:"button",onClick:x,className:"shrink-0 text-white/80 transition hover:text-white","aria-label":"Close preview",children:(0,a.jsx)(n.Z,{className:"h-7 w-7"})})]}),(0,a.jsx)("div",{className:"overflow-hidden rounded-xl bg-black",children:(0,a.jsx)(i.Z,{playlistUrl:t,playerLibraryUrl:s,courseName:o,lessonName:c})})]})]}):null]})}},87233:function(e,t,s){"use strict";var a=s(2265);let r=a.forwardRef(function(e,t){let{title:s,titleId:r,...l}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":r},l),s?a.createElement("title",{id:r},s):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))});t.Z=r},94619:function(e,t,s){"use strict";var a=s(2265);let r=a.forwardRef(function(e,t){let{title:s,titleId:r,...l}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":r},l),s?a.createElement("title",{id:r},s):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"}))});t.Z=r},77165:function(e,t,s){"use strict";var a=s(2265);let r=a.forwardRef(function(e,t){let{title:s,titleId:r,...l}=e;return a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:t,"aria-labelledby":r},l),s?a.createElement("title",{id:r},s):null,a.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))});t.Z=r}},function(e){e.O(0,[2972,8003,5878,7526,97,2971,2117,1744],function(){return e(e.s=67027)}),_N_E=e.O()}]);

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.