1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[864],{2809:(e,t,s)=>{Promise.resolve().then(s.bind(s,2767)),Promise.resolve().then(s.bind(s,2735)),Promise.resolve().then(s.bind(s,2672)),Promise.resolve().then(s.bind(s,7355)),Promise.resolve().then(s.bind(s,9152)),Promise.resolve().then(s.bind(s,2528)),Promise.resolve().then(s.bind(s,5707)),Promise.resolve().then(s.t.bind(s,2619,23))},2969:(e,t,s)=>{"use strict";s.d(t,{L:()=>r});var a=s(5155),l=s(6651),n=s(5229);function r(e){let{value:t,onChange:s,placeholder:r,label:i}=e;return(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(l.A,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-slate-400"}),(0,a.jsx)("input",{type:"search",value:t,onChange:e=>s(e.target.value),placeholder:r,"aria-label":i,className:"w-full rounded-lg border border-slate-300 bg-white py-2 pl-9 pr-9 text-sm focus:border-brand-500 focus:outline-none focus:ring-1 focus:ring-brand-500"}),t?(0,a.jsx)("button",{type:"button",onClick:()=>s(""),"aria-label":"Clear search",className:"absolute right-2 top-1/2 -translate-y-1/2 rounded p-1 text-slate-400 hover:bg-slate-100 hover:text-slate-600",children:(0,a.jsx)(n.A,{className:"h-4 w-4"})}):null]})}},6651:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(1847).A)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},7355:(e,t,s)=>{"use strict";s.d(t,{NewsletterSignup:()=>c});var a=s(5155),l=s(2115),n=s(2619),r=s.n(n),i=s(63),o=s(7443);function c(e){let{heading:t="Get the next one by email"}=e,s=(0,i.usePathname)()||"/",[n,c]=(0,l.useState)(""),[d,u]=(0,l.useState)(""),[h,m]=(0,l.useState)("idle"),[x,p]=(0,l.useState)(null);async function g(e){e.preventDefault(),m("busy"),p(null);try{let e=await fetch("/api/newsletter",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:n,website:d,source:s})}),t=await e.json().catch(()=>({}));if(!e.ok){p("string"==typeof t.error?t.error:"Could not sign you up. Please try again."),m("idle");return}m("done")}catch(e){p("Could not sign you up. Please try again."),m("idle")}}return(0,a.jsxs)("div",{className:"rounded-2xl bg-slate-50 p-6 ring-1 ring-slate-200 sm:p-8",children:[(0,a.jsx)("h2",{className:"text-lg font-semibold tracking-tight text-slate-900",children:t}),"done"===h?(0,a.jsx)("p",{className:"mt-2 text-sm text-slate-600",role:"status",children:"You are on the list. Thanks for reading."}):(0,a.jsxs)("form",{onSubmit:g,className:"mt-3",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,a.jsx)("label",{htmlFor:"newsletter-email",className:"sr-only",children:"Email address"}),(0,a.jsx)("input",{id:"newsletter-email",type:"email",required:!0,autoComplete:"email",value:n,onChange:e=>c(e.target.value),placeholder:"[email protected]",className:"min-w-0 flex-1 rounded-lg border border-slate-300 bg-white px-3 py-2 text-sm text-slate-900 placeholder:text-slate-400 focus:border-brand-500 focus:outline-none focus:ring-2 focus:ring-brand-200"}),(0,a.jsx)("input",{type:"text",tabIndex:-1,autoComplete:"off","aria-hidden":"true",value:d,onChange:e=>u(e.target.value),className:"hidden"}),(0,a.jsx)("button",{type:"submit",disabled:"busy"===h,className:"rounded-lg bg-slate-900 px-4 py-2 text-sm font-semibold text-white hover:bg-slate-700 disabled:opacity-60",children:"busy"===h?"Signing upâ¦":"Sign me up"})]}),x?(0,a.jsx)("p",{className:"mt-2 text-sm text-red-600",role:"alert",children:x}):null,(0,a.jsxs)("p",{className:"mt-3 text-xs leading-relaxed text-slate-500",children:[o.NEWSLETTER_CONSENT_TEXT," See our"," ",(0,a.jsx)(r(),{href:"/privacy",className:"underline underline-offset-2 hover:text-slate-700",children:"Privacy Policy"}),"."]})]})]})}},9152:(e,t,s)=>{"use strict";s.d(t,{BlogSearch:()=>d});var a=s(5155),l=s(2115),n=s(2619),r=s.n(n),i=s(2987),o=s(7443),c=s(2969);function d(e){let{posts:t,basePath:s="/blog"}=e,[n,d]=(0,l.useState)(""),u=(0,l.useMemo)(()=>(0,o.filterBySearch)(t,n,o.blogSearchText),[t,n]),h=n.trim().length>0;return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(c.L,{value:n,onChange:d,label:"Search the blog",placeholder:"Search ".concat(t.length," articles by title or full text")}),h?(0,a.jsx)("p",{className:"text-sm text-slate-500",children:0===u.length?"Nothing matched â".concat(n,"â."):"".concat(u.length," of ").concat(t.length," articles.")}):null,(0,a.jsx)("div",{className:"divide-y divide-slate-200 border-t border-slate-200",children:u.map(e=>(0,a.jsxs)("article",{className:"py-8",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 font-mono text-[11px] uppercase tracking-widest text-slate-400",children:[(0,a.jsx)("time",{dateTime:e.datePublished,children:new Date(e.datePublished).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})}),(0,a.jsx)("span",{"aria-hidden":"true",children:"\xb7"}),(0,a.jsxs)("span",{children:[e.readingMinutes," min read"]})]}),(0,a.jsx)("h2",{className:"mt-2 text-2xl font-semibold tracking-tight text-slate-900",children:(0,a.jsx)(r(),{href:"".concat(s,"/").concat(e.slug),className:"hover:text-brand-700",children:e.title})}),(0,a.jsx)("p",{className:"mt-2 leading-relaxed text-slate-600",children:e.excerpt}),(0,a.jsxs)(r(),{href:"".concat(s,"/").concat(e.slug),className:"mt-3 inline-flex items-center gap-1 text-sm font-medium text-brand-600 hover:text-brand-700",children:["Read ",(0,a.jsx)(i.A,{className:"h-3.5 w-3.5"})]})]},e.slug))})]})}}},e=>{e.O(0,[2619,7443,4440,8441,1255,4977],()=>e(e.s=2809)),_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.