1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[76600],{36782:(e,t,r)=>{"use strict";r.d(t,{s7:()=>i,w8:()=>o});var a=r(95155),s=r(60699),n=r(41633);let i="prose prose-xl max-w-none dark:prose-invert tiptap-renderer";function o({seoHtml:e,clientContent:t,className:r="prose prose-lg max-w-none tiptap-renderer"}){return(null!=e?String(e).trim():"")||""!==(0,n.iP)(t,1e6).trim()?(0,a.jsx)(s.L,{seoHtml:e,clientContent:t,className:r}):null}},48767:(e,t,r)=>{"use strict";r.d(t,{default:()=>b});var a=r(95155),s=r(12115),n=r(73321),i=r(50910),o=r(34341);r(53559);var l=r(36782),d=r(45534),c=r(11409),m=r(37882),h=r(6176),u=r(9226),g=r(63798),x=r(52494),f=r(61640);let p=e=>{if(!e)return!1;try{return new URL(e),!0}catch{return e.startsWith("/")}};function b({slug:e,isPreview:t=!1,initialData:r,initialLocale:b,tipTapSeo:v,initialEngagement:y=null}){let k=(0,i.c)("landing"),w=(0,g.C)(b),j=(0,n.useSearchParams)(),N=t??j?.get("preview")==="true",[S,P]=(0,s.useState)(r??null),[C,L]=(0,s.useState)(!r),[T,E]=(0,s.useState)(null),{data:I}=(0,m.useSession)(),[A,_]=(0,s.useState)(()=>y?.bookmarkCount??0),[R,M]=(0,s.useState)(()=>
1y?.userHasBookmarked??!1),[B,H]=(0,s.useState)(!1),[z,O]=(0,s.useState)(()=>y?.ratingAvg??0),[W,$]=(0,s.useState)(()=>y?.ratingCount??0),[F,G]=(0,s.useState)(()=>y?.userRating??null),[V,J]=(0,s.useState)(!1),[U,q]=(0,s.useState)(null),D=(0,s.useRef)(!!y),[Z,K]=(0,s.useState)(!1),Q=b&&(0,x.P3)(b)?b:null,X=(0,d.s)(v?.content,S?.content,!!r?.id,Q,w);(0,s.useEffect)(()=>{r&&Q===w||Y({background:!!r})},[e,N,r,w,Q]),(0,s.useEffect)(()=>{if(S?.id){if(D.current){D.current=!1;return}ee()}},[S?.id,I?.user?.id]),(0,s.useEffect)(()=>{if(r||!S?.coverImage||!p(S.coverImage))return;let e="string"==typeof S.coverImage&&(0,c.SN)(S.coverImage)?(0,c.VG)(S.coverImage,800,{format:"webp",quality:80}):S.coverImage,t=document.createElement("link");return t.rel="preload",t.as="image",t.href=e,document.head.appendChild(t),()=>t.remove()},[r,S?.coverImage]);let Y=async t=>{let r=t?.background??!1;try{r||L(!0),E(null);let t=new URLSearchParams;N&&t.set("preview","true"),w&&t.set("locale",w);let a=t.toString(),s=await fetch(`/api/static-pages/slug/${e}${a?`?${a}`:""}`);if(!s.ok)throw 404===s.status&&(0,n.notFound)(),Error(k("failedToFetchPage"));let i=await s.json();P(i)}catch(e){E(e instanceof Error?e.message:k("genericError")),P(null)}finally{r||L(!1)}},ee=async(e=!1)=>{if(S?.id)try{let[t]=await (0,u.sx)([{entityType:"STATIC_PAGE",entityId:S.id,entitySlug:S.slug}],{force:e});t&&(_(t.bookmarks.bookmarkCount||0),M(t.bookmarks.userHasBookmarked||!1),O(t.ratings.ratingAvg||0),$(t.ratings.ratingCount||0),G(t.ratings.userRating||null))}catch(e){console.error("Error fetching engagement data:",e)}},et=async()=>{if(!S?.id||!I)return void(0,h.Mi)(window.location.href);if(!B)try{H(!0),R?(await fetch(`/api/bookmarks?entityType=STATIC_PAGE&entityId=${S.id}`,{method:"DELETE"})).ok&&await ee(!0):(await fetch("/api/bookmarks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({entityType:"STATIC_PAGE",entityId:S.id})})).ok&&await ee(!0)}catch(e){console.error("Error toggling bookmark:",e)}finally{H(!1)}},er=async e=>{if(S?.id&&!V&&null===F)try{J(!0),(await fetch("/api/ratings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({entityType:"STATIC_PAGE",entityId:S.id,stars:e})})).ok&&await ee(!0)}catch(e){console.error("Error rating page:",e)}finally{J(!1)}};return C?(0,a.jsx)("main",{className:"min-h-screen",children:(0,a.jsx)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-12",children:(0,a.jsx)("div",{className:"flex items-center justify-center min-h-[600px]",children:(0,a.jsxs)("div",{className:"text-center",children:[(0,a.jsx)("div",{className:"inline-block animate-spin rounded-full h-12 w-12 border-b-2 border-brand-500"}),(0,a.jsx)("p",{className:"mt-4 text-gray-600",children:k("loadingPage")})]})})})}):((T||!S)&&(0,n.notFound)(),(0,a.jsx)("main",{className:"min-h-screen",children:(0,a.jsxs)("div",{className:"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-8 md:py-12",children:[(0,a.jsxs)("article",{className:"bg-white dark:bg-gray-900 rounded-2xl shadow-sm overflow-hidden",children:[S.coverImage&&p(S.coverImage)?(0,a.jsx)("div",{className:"relative h-64 md:h-96 bg-gray-200 dark:bg-gray-800",children:(0,a.jsx)(o.default,{src:S.coverImage,alt:S.title,fill:!0,sizes:"(max-width: 768px) 100vw, 1152px",className:"object-cover object-center",priority:!0,fetchPriority:"high",preferredWidth:1280})}):null,(0,a.jsxs)("div",{className:"p-8 lg:p-16",children:[(0,a.jsx)("div",{className:"flex flex-wrap items-center justify-end gap-3 mb-4",children:(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("button",{onClick:()=>{navigator.share?navigator.share({title:S.title,url:window.location.href}):navigator.clipboard.writeText(window.location.href)},className:"w-10 h-10 flex items-center justify-center rounded-full bg-white border border-gray-300 transition-colors shadow-md hover:shadow-lg dark:bg-gray-800 dark:border-gray-700",title:k("sharePage"),children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"#9ca3af",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.3
116m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z"})})}),(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("button",{onClick:async()=>{try{await navigator.clipboard.writeText(window.location.href),K(!0),setTimeout(()=>K(!1),2e3)}catch(e){console.error("Failed to copy link:",e)}},className:"w-10 h-10 flex items-center justify-center rounded-full bg-white border border-gray-300 transition-colors shadow-md hover:shadow-lg dark:bg-gray-800 dark:border-gray-700",title:k("copyLink"),children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"#9ca3af",viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}),Z&&(0,a.jsxs)("div",{className:"absolute top-12 left-1/2 transform -translate-x-1/2 z-50 bg-gray-900 text-white text-sm px-3 py-2 rounded-lg shadow-lg whitespace-nowrap",children:[k("linkCopiedToClipboard"),(0,a.jsx)("div",{className:"absolute -top-1 left-1/2 transform -translate-x-1/2 w-2 h-2 bg-gray-900 rotate-45"})]})]}),(0,a.jsx)("button",{onClick:et,disabled:B,className:`w-10 h-10 flex items-center justify-center rounded-full bg-white border border-gray-300 transition-colors shadow-md hover:shadow-lg dark:bg-gray-800 dark:border-gray-700 ${B?"opacity-50 cursor-not-allowed":""}`,title:R?k("removeBookmark"):k("bookmarkPage"),children:(0,a.jsx)("svg",{className:"w-5 h-5",fill:R?"#fbbf24":"white",stroke:R?"#fbbf24":"#9ca3af",strokeWidth:1.5*!R,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"})})}),A>0&&(0,a.jsx)("span",{className:"text-sm text-gray-600 dark:text-gray-400 font-medium",children:A})]})}),(0,a.jsx)("h1",{className:"text-4xl sm:text-5xl md:text-6xl font-bold text-gray-900 dark:text-white mb-4",children:S.title}),(0,a.jsx)("div",{className:"flex items-center gap-4 mb-8 pb-6 border-b border-gray-200 dark:border-gray-700",children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:k("rateThisPage")}),(0,a.jsx)("div",{className:"flex items-center gap-1",onMouseLeave:()=>q(null),children:[1,2,3,4,5].map(e=>{let t=null!==F?F:Math.round(z),r=e<=(null!==U?U:t),s=V||null!==F;return(0,a.jsx)("button",{onClick:()=>er(e),disabled:s,className:`transition-all ${s?"cursor-not-allowed":"hover:scale-110"}`,title:s?k("alreadyRated"):k("rateStarCount",{count:e}),onMouseEnter:()=>!s&&q(e),children:(0,a.jsx)("svg",{className:"w-6 h-6 transition-colors",fill:r?"#fbbf24":"none",stroke:r?"#fbbf24":"#d1d5db",strokeWidth:2*!r,viewBox:"0 0 24 24",children:(0,a.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"miter",d:"M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z"})})},e)})}),W>0&&(0,a.jsxs)("div",{className:"ml-2 text-sm text-gray-600 dark:text-gray-400",children:[(0,a.jsx)("span",{className:"font-medium",children:z.toFixed(1)}),(0,a.jsxs)("span",{className:"text-gray-500 dark:text-gray-500",children:[" ","(",W," ",1===W?k("ratingSingular"):k("ratingPlural"),")"]})]})]})}),(0,a.jsx)(l.w8,{seoHtml:X.seoHtml,clientContent:X.clientContent,className:l.s7})]})]}),(0,a.jsx)("div",{className:"mt-8",children:(0,a.jsx)(f.A,{userRating:F,ratingAvg:z,ratingCount:W,hoveredStar:U,isRating:V,onSetHoveredStar:q,onRate:er})})]})}))}},94752:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,98500,23)),Promise.resolve().then(r.t.bind(r,38437,23)),Promise.resolve().then(r.bind(r,41112)),Promise.resolve().then(r.bind(r,21957)),Promise.resolve().then(r.bind(r,48767)),Promise.resolve().then(r.bind(r,34341)),Promise.resolve().then(r.bind(r,108)),Promise.resolve().then(r.bind(r,39672)),Promise.resolve().then(r.bind(r,92801)),Promise.resolve().then(r.bind(r,58409)),Promise.resolve().then(r.bind(r,89929))}},e=>{e.O(0,[70238,98500,38437,2614,37882,92045,63397,11172,1038,29297,61939,28441,93794,77358],()=>e(e.s=94752)),_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.