1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{30098:(e,t,s)=>{"use strict";s.d(t,{f:()=>l,n:()=>n});var r=s(95155),a=s(12115);let i=(0,a.createContext)({onlineUserIds:new Set,isOnline:()=>!1});function n(){return(0,a.useContext)(i)}function l({children:e,isAuthenticated:t}){let[s,n]=(0,a.useState)(new Set),c=(0,a.useCallback)(async()=>{if(t)try{await fetch("/api/users/online",{method:"POST"})}catch(e){console.error("Failed to send heartbeat:",e)}},[t]),o=(0,a.useCallback)(async()=>{if(t)try{let e=await fetch("/api/users/online");if(e.ok){let t=await e.json();n(new Set(t.onlineUserIds))}}catch(e){console.error("Failed to fetch online users:",e)}},[t]);(0,a.useEffect)(()=>{if(!t)return;c(),o();let e=setInterval(c,3e5),s=setInterval(o,3e5),r=()=>{"visible"===document.visibilityState&&(c(),o())};return document.addEventListener("visibilitychange",r),()=>{clearInterval(e),clearInterval(s),document.removeEventListener("visibilitychange",r)}},[t,c,o]);let d=(0,a.useCallback)(e=>s.has(e),[s]);return(0,r.jsx)(i.Provider,{value:{onlineUserIds:s,isOnline:d},children:e})}},32396:(e,t,s)=>{"use strict";s.d(t,{default:()=>I});var r=s(95155),a=s(73321),i=s(5772),n=s(98500),l=s.n(n),c=s(65824),o=s(21947);function d(){let{countryName:e,shortName:t,merchEnabled:s}=(0,o.BI)(),a=(0,c.KN)(),n=(0,c.Z8)();return(0,r.jsx)("footer",{className:"py-16 px-6 bg-[#1C1917] border-t border-white/[0.06]",children:(0,r.jsxs)("div",{className:"max-w-[1200px] mx-auto",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-10",children:[(0,r.jsxs)("div",{className:"col-span-2 md:col-span-3 lg:col-span-1",children:[(0,r.jsxs)(l(),{href:"/",prefetch:!1,className:"flex items-center gap-3 mb-4",children:[(0,r.jsx)(i.default,{src:"/icons/favicon.png",alt:"",width:32,height:32,className:"w-8 h-8 rounded"}),(0,r.jsx)("span",{className:"font-semibold text-[#FAF9F6]",children:t})]}),(0,r.jsx)("p",{className:"text-[#A8A29E] text-[0.9375rem]",children:`${e}'s Claude Code community. Meetups, courses, and a network of AI-powered developers.`})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[0.875rem] uppercase tracking-wider text-[#78716C] mb-4",children:"Community"}),(0,r.jsxs)("ul",{className:"space-y-3",children:[(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/events",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Events & Meetups"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/professionals",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Professionals"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/vibe-coders",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Vibe Coders"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/speak",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Become a Speaker"})}),s&&(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/merch",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Merch Store"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/login",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Join Community"})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[0.875rem] uppercase tracking-wider text-[#78716C] mb-4",children:"Capital Cities"}),(0,r.jsx)("ul",{className:"space-y-3",children:a.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:`/cities/${e.slug}`,prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:e.name})},e.slug))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[0.875rem] uppercase tracking-wider text-[#78716C] mb-4",children:"Regional"}),(0,r.jsx)("ul",{className:"space-y-3",children:n.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:`/cities/${e.slug}`,prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:e.name})},e.slug))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[0.875rem] uppercase tracking-wider text-[#78716C] mb-4",children:"Industries"}),(0,r.jsxs)("ul",{className:"space-y-3",children:[(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/for/ecommerce",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"E-Commerce"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/for/marketing",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Marketing"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/for/saas",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"SaaS"})}),(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:"/for/real-estate",prefetch:!1,className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Real Estate"})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"text-[0.875rem] uppercase tracking-wider text-[#78716C] mb-4",children:"Resources"}),(0,r.jsxs)("ul",{className:"space-y-3",children:[(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:"https://claude.ai/claude-code",target:"_blank",rel:"noopener noreferrer",className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Claude Code"})}),(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:"https://docs.anthropic.com",target:"_blank",rel:"noopener noreferrer",className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Documentation"})}),(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:"https://anthropic.com",target:"_blank",rel:"noopener noreferrer",className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Anthropic"})}),(0,r.jsx)("li",{children:(0,r.jsx)("a",{href:(0,o.FU)(),target:"_blank",rel:"noopener noreferrer",className:"text-[#A8A29E] hover:text-[#FAF9F6] transition-colors",children:"Community Chat"})})]})]})]}),(0,r.jsx)("div",{className:"mt-12 pt-6 border-t border-white/[0.06] text-center text-[#78716C] text-[0.875rem]",children:(0,r.jsx)("p",{children:"A community initiative. Not affiliated with Anthropic."})})]})})}var x=s(13855),h=s(33210),m=s(58491),u=s(12115);let f="celebration-1000-members-seen",j=["#D4836A","#E7E5E4","#F4A582","#FFFFFF","#A8A29E"];function p(){let{countryName:e}=(0,o.BI)(),[t,s]=(0,u.useState)(!1);(0,u.useEffect)(()=>
1{if("au"!==o.Zg||localStorage.getItem(f))return;let e=setTimeout(()=>{let e,t;s(!0),e=Date.now()+4e3,t=()=>{(0,x.A)({particleCount:4,angle:60,spread:70,origin:{x:0,y:.7},colors:j,zIndex:70}),(0,x.A)({particleCount:4,angle:120,spread:70,origin:{x:1,y:.7},colors:j,zIndex:70}),Date.now()<e&&requestAnimationFrame(t)},(0,x.A)({particleCount:120,spread:100,startVelocity:45,origin:{x:.5,y:.6},colors:j,zIndex:70}),t()},800);return()=>clearTimeout(e)},[]),(0,u.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&a()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let a=()=>{localStorage.setItem(f,new Date().toISOString()),s(!1)};return t?(0,r.jsxs)("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[(0,r.jsx)("button",{type:"button","aria-label":"Close",className:"absolute inset-0 bg-black/60 backdrop-blur-sm",onClick:a}),(0,r.jsxs)("div",{className:"relative w-full max-w-md bg-[#2D2926] rounded-2xl border border-white/[0.08] shadow-2xl overflow-hidden",children:[(0,r.jsx)("button",{type:"button",onClick:a,"aria-label":"Close",className:"absolute top-4 right-4 p-1.5 text-[#A8A29E] hover:text-white hover:bg-white/[0.06] rounded-lg transition-colors",children:(0,r.jsx)(h.A,{className:"w-4 h-4"})}),(0,r.jsxs)("div",{className:"px-8 pt-10 pb-8 text-center",children:[(0,r.jsx)("div",{className:"mx-auto w-16 h-16 rounded-full bg-gradient-to-br from-[#D4836A] to-[#F4A582] flex items-center justify-center mb-5 shadow-lg shadow-[#D4836A]/20",children:(0,r.jsx)(m.A,{className:"w-8 h-8 text-white"})}),(0,r.jsx)("p",{className:"text-sm uppercase tracking-[0.2em] text-[#D4836A] font-semibold mb-3",children:"Milestone unlocked"}),(0,r.jsx)("h2",{className:"text-4xl font-bold text-white mb-3",children:"1,000 members!"}),(0,r.jsx)("p",{className:"text-[#A8A29E] leading-relaxed mb-6",children:`We just hit a thousand Claude Code builders across ${e}. Thank you for being part of this community â for sharing wins, asking questions, and showing up at meetups. Here's to the next thousand.`}),(0,r.jsx)("button",{type:"button",onClick:a,className:"w-full px-6 py-3 bg-[#D4836A] hover:bg-[#C4735A] text-white rounded-lg font-medium transition-colors",children:"Let's keep building"})]})]})]}):null}var b=s(76559),v=s(96035),g=s(439),N=s(29857),A=s(95896);function w(){let{countryName:e,merchEnabled:t}=(0,o.BI)(),s=(0,a.usePathname)(),{isSignedIn:n,user:c}=(0,b.Jd)(),{signOut:d}=(0,b.ho)(),[x,m]=(0,u.useState)(!1),[f,j]=(0,u.useState)(!1);(0,u.useEffect)(()=>{n&&fetch("/api/me").then(e=>e.json()).then(e=>{e.user?.role!=="member"&&j(!0)}).catch(()=>{})},[n]);let p=e=>{let t=s===e;return`text-[0.9375rem] whitespace-nowrap transition-all duration-300 relative ${t?"text-[#FAF9F6]":"text-[#A8A29E] hover:text-[#FAF9F6]"}`};return(0,r.jsxs)("nav",{className:"fixed top-0 left-0 right-0 z-50 bg-[#1C1917]/95 backdrop-blur-xl border-b border-white/[0.08]",children:[(0,r.jsxs)("div",{className:"max-w-[1200px] mx-auto px-6 flex items-center justify-between h-[72px]",children:[(0,r.jsxs)(l(),{href:"/",className:"flex shrink-0 items-center gap-3 font-semibold text-lg text-[#FAF9F6] hover:text-[#D4836A] transition-all duration-300",children:[(0,r.jsx)(i.default,{src:"/icons/favicon.png",alt:"",width:32,height:32,className:"w-8 h-8 rounded"}),(0,r.jsx)("span",{className:"whitespace-nowrap",children:`Claude Code Meetups ${e}`})]}),(0,r.jsxs)("div",{className:"hidden lg:flex items-center gap-5",children:[(0,r.jsxs)(l(),{href:"/",className:p("/"),children:["Home","/"===s&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),(0,r.jsxs)(l(),{href:"/events",className:p("/events"),children:["Find an Event","/events"===s&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),(0,r.jsxs)(l(),{href:"/resources",className:p("/resources"),children:["Resources","/resources"===s&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),(0,r.jsxs)(l(),{href:"/speak",className:p("/speak"),children:["Speak","/speak"===s&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),t&&(0,r.jsxs)(l(),{href:"/merch",className:p("/merch"),children:["Merch","/merch"===s&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),n?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(l(),{href:"/community",className:s.startsWith("/community")?"text-[0.9375rem] whitespace-nowrap text-[#FAF9F6] relative":"text-[0.9375rem] whitespace-nowrap text-[#A8A29E] hover:text-[#FAF9F6] relative",children:["Community",s.startsWith("/community")&&(0,r.jsx)("span",{className:"absolute -bottom-2 left-0 right-0 h-0.5 bg-[#D4836A] rounded"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-1 ml-2",children:[(0,r.jsx)("a",{href:(0,o.FU)(),target:"_blank",rel:"noopener noreferrer",className:"p-2 rounded-lg text-[#A8A29E] hover:text-white hover:bg-white/[0.08] transition-all",title:"Join our Discord",children:(0,r.jsx)(v.A,{className:"w-5 h-5"})}),(0,r.jsx)(A.A,{})]}),f&&(0,r.jsx)(l(),{href:"/admin",className:"p-2 rounded-lg text-[#D4836A] hover:bg-[#D4836A]/10 transition-all",title:"Admin Dashboard",children:(0,r.jsx)(g.A,{className:"w-5 h-5"})}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(l(),{href:"/community/profile",className:"relative group",children:c?.imageUrl?(0,r.jsx)(i.default,{src:c.imageUrl,alt:c.firstName||"Profile",width:36,height:36,className:"w-9 h-9 rounded-full object-cover border-2 border-transparent group-hover:border-[#D4836A] transition-all"}):(0,r.jsx)("div",{className:"w-9 h-9 rounded-full bg-[#D4836A] flex items-center justify-center text-white font-medium",children:c?.firstName?.[0]||"?"})}),(0,r.jsx)("button",{type:"button",onClick:()=>d({redirectUrl:"/"}),className:"bg-[#D4836A] text-[#1C1917] px-5 py-2.5 rounded-xl font-semibold hover:bg-[#
1E09880] hover:-translate-y-0.5 transition-all duration-300",children:"Sign Out"})]})]}):(0,r.jsx)(l(),{href:"/login",className:"bg-[#D4836A] text-[#1C1917] px-5 py-2.5 rounded-xl font-semibold hover:bg-[#E09880] hover:-translate-y-0.5 transition-all duration-300",children:"Community Login"})]}),(0,r.jsx)("button",{type:"button",className:"lg:hidden flex flex-col gap-[5px] p-2",onClick:()=>m(!x),children:x?(0,r.jsx)(h.A,{className:"w-6 h-6 text-[#FAF9F6]"}):(0,r.jsx)(N.A,{className:"w-6 h-6 text-[#FAF9F6]"})})]}),x&&(0,r.jsxs)("div",{className:"lg:hidden absolute top-[72px] left-0 right-0 bg-[#1C1917] border-b border-white/[0.08] p-6 flex flex-col gap-4",children:[(0,r.jsx)(l(),{href:"/",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Home"}),(0,r.jsx)(l(),{href:"/events",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Find an Event"}),(0,r.jsx)(l(),{href:"/resources",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Resources"}),(0,r.jsx)(l(),{href:"/speak",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Speak"}),t&&(0,r.jsx)(l(),{href:"/merch",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Merch"}),n?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l(),{href:"/community",className:"text-[#A8A29E] hover:text-[#FAF9F6]",onClick:()=>m(!1),children:"Community"}),(0,r.jsxs)("div",{className:"flex items-center gap-3 pt-2 border-t border-white/[0.08]",children:[(0,r.jsx)(l(),{href:"/community/profile",onClick:()=>m(!1),children:c?.imageUrl?(0,r.jsx)(i.default,{src:c.imageUrl,alt:c.firstName||"Profile",width:40,height:40,className:"w-10 h-10 rounded-full object-cover"}):(0,r.jsx)("div",{className:"w-10 h-10 rounded-full bg-[#D4836A] flex items-center justify-center text-white font-medium",children:c?.firstName?.[0]||"?"})}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsxs)("p",{className:"text-white font-medium",children:[c?.firstName," ",c?.lastName]}),(0,r.jsx)("button",{type:"button",onClick:()=>d({redirectUrl:"/"}),className:"text-[#A8A29E] text-sm hover:text-[#D4836A]",children:"Sign Out"})]})]})]}):(0,r.jsx)(l(),{href:"/login",className:"bg-[#D4836A] text-[#1C1917] px-5 py-2.5 rounded-xl font-semibold text-center",onClick:()=>m(!1),children:"Community Login"})]})]})}function F({children:e}){let t=(0,a.usePathname)(),[s,i]=(0,u.useState)(!1),[n,l]=(0,u.useState)(e),c=(0,u.useRef)(t);return(0,u.useEffect)(()=>{if(c.current!==t){i(!0);let s=setTimeout(()=>{l(e),i(!1)},150);return c.current=t,()=>clearTimeout(s)}l(e)},[t,e]),(0,r.jsx)("div",{className:`transition-opacity duration-200 ease-out ${s?"opacity-0":"opacity-100"}`,children:n})}var y=s(39092),k=s.n(y),E=s(25237),C=s(6962);function D(){let[e,t]=(0,u.useState)(null),[s,a]=(0,u.useState)(!1),[i,n]=(0,u.useState)(!1),[l,c]=(0,u.useState)(!1),[o,d]=(0,u.useState)(!1);(0,u.useEffect)(()=>{if(window.matchMedia("(display-mode: standalone)").matches)return void n(!0);let e=/iPad|iPhone|iPod/.test(navigator.userAgent);c(e);let s=e=>{e.preventDefault(),t(e),localStorage.getItem("pwa-banner-dismissed")||setTimeout(()=>a(!0),3e3)},r=()=>{n(!0),a(!1),t(null)};return window.addEventListener("beforeinstallprompt",s),window.addEventListener("appinstalled",r),e&&(localStorage.getItem("pwa-banner-dismissed")||setTimeout(()=>a(!0),3e3)),()=>{window.removeEventListener("beforeinstallprompt",s),window.removeEventListener("appinstalled",r)}},[]);let x=async()=>{if(l)return void d(!0);if(!e)return;e.prompt();let{outcome:s}=await e.userChoice;"accepted"===s&&a(!1),t(null)},m=()=>{a(!1),localStorage.setItem("pwa-banner-dismissed","true")};return i||!s?null:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"jsx-70ce26a9abc762e7 fixed bottom-4 left-4 right-4 md:left-auto md:right-4 md:w-96 z-50 animate-slide-up",children:(0,r.jsx)("div",{className:"jsx-70ce26a9abc762e7 bg-[#2D2926] rounded-2xl border border-white/[0.06] shadow-xl p-4",children:(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex items-start gap-4",children:[(0,r.jsx)("div",{className:"jsx-70ce26a9abc762e7 w-12 h-12 rounded-xl bg-[#D4836A]/20 flex items-center justify-center shrink-0",children:(0,r.jsx)(E.A,{className:"w-6 h-6 text-[#D4836A]"})}),(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex-1 min-w-0",children:[(0,r.jsx)("h3",{className:"jsx-70ce26a9abc762e7 font-semibold text-white mb-1",children:"Install Claude Code Community"}),(0,r.jsx)("p",{className:"jsx-70ce26a9abc762e7 text-sm text-[#A8A29E] mb-3",children:"Get quick access with our app. Works offline too!"}),(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex items-center gap-2",children:[(0,r.jsxs)("button",{type:"button",onClick:x,className:"jsx-70ce26a9abc762e7 inline-flex items-center gap-2 px-4 py-2 bg-[#D4836A] text-white rounded-lg text-sm font-medium hover:bg-[#c4775f] transition-colors",children:[(0,r.jsx)(C.A,{className:"w-4 h-4"}),"Install"]}),(0,r.jsx)("button",{type:"button",onClick:m,className:"jsx-70ce26a9abc762e7 px-4 py-2 text-[#A8A29E] hover:text-white text-sm transition-colors",children:"Not now"})]})]}),(0,r.jsx)("button",{type:"button",onClick:m,className:"jsx-70ce26a9abc762e7 p-1 text-[#78716C] hover:text-white transition-colors",children:(0,r.jsx)(h.A,{className:"w-5 h-5"})})]})})}),o&&(0,r.jsx)("div",{className:"jsx-70ce26a9abc762e7 fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/70",children:(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 bg-[#2D2926] rounded-2xl border border-white/[0.06] p-6 max-w-sm w-full",children:[(0,r.jsx)("h3",{className:"jsx-70ce26a9abc762e7 text-lg font-semibold text-white mb-4",children:"Install on iOS"}),(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 space-y-4 mb-6",children:[(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex items-start gap-3",children:[(0,r.jsx)("span",{className:"jsx-70ce26a9abc762e7 w-6 h-6 rounded-full bg-[#D4836A] text-white text-sm font-medium flex items-center justify-center shrink-0",children:"1"}),(0,r.jsxs)("p",{className:"jsx-70ce26a9abc762e7 text-[#E7E5E4]",children:["Tap the ",(0,r.jsx)("strong",{className:"jsx-70ce26a9abc762e7",children:"Share"})," button in Safari"]})]}),(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex items-start gap-3",children:[(0,r.jsx)("span",{className:"jsx-70ce26a9abc762e7 w-6 h-6 rounded-full bg-[#D4836A] text-white text-sm font-medium flex items-center justify-center shrink-0",children:"2"}),(0,r.jsxs)("p",{className:"jsx-70ce26a9abc762e7 text-[#E7E5E4]",children:["Scroll down and tap ",(0,r.jsx)("strong",{className:"jsx-70ce26a9abc762e7",children:'"Add to Home Screen"'})]})]}),(0,r.jsxs)("div",{className:"jsx-70ce26a9abc762e7 flex items-start gap-3",children:[(0,r.jsx)("span",{className:"jsx-70ce26a9abc762e7 w-6 h-6 rounded-full bg-[#D4836A] text-white text-sm font-medium flex items-center justify-center shrink-0",children:"3"}),(0,r.jsxs)("p",{className:"jsx-70ce26a9abc762e7 text-[#E7E5E4]",children:["Tap ",(0,r.jsx)("strong",{className:"jsx-70ce26a9abc762e7",children:'"Add"'})," to install"]})]})]}),(0,r.jsx)("button",{type:"button",onClick:()=>{d(!1),m()},className:"jsx-70ce26a9abc762e7 w-full py-3 bg-white/[0.1] text-white rounded-xl font-medium hover:bg-white/[0.15] transition-colors",children:"Got it"})]})}),(0,r.jsx)(k(),{id:"70ce26a9abc762e7",children:"@keyframes slide-up{from{opacity:0;transform:translatey(20px)}to{opacity:1;transform:translatey(0)}}.animate-slide-up.jsx-70ce26a9abc762e7{animation:slide-up.3s ease-out}"})]})}function S(){return(0,u.useEffect)(()=>
1{if("serviceWorker"in navigator){navigator.serviceWorker.register("/sw.js").then(e=>{setInterval(()=>{e.update()},36e5),e.addEventListener("updatefound",()=>{let t=e.installing;t&&t.addEventListener("statechange",()=>{"installed"===t.state&&navigator.serviceWorker.controller})})}).catch(e=>{console.error("Service Worker registration failed:",e)});let e=!1;navigator.serviceWorker.addEventListener("controllerchange",()=>{e||(e=!0,window.location.reload())})}},[]),null}function I({children:e}){let t=(0,a.usePathname)(),s=t?.startsWith("/community"),i=t?.startsWith("/admin"),n=t?.startsWith("/impact-lab");return t?.startsWith("/internal")?(0,r.jsx)(r.Fragment,{children:e}):n?(0,r.jsxs)(r.Fragment,{children:[e,(0,r.jsx)(D,{}),(0,r.jsx)(S,{}),(0,r.jsx)(p,{})]}):s||i?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(F,{children:e}),(0,r.jsx)(D,{}),(0,r.jsx)(S,{}),(0,r.jsx)(p,{})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(w,{}),(0,r.jsx)(F,{children:(0,r.jsx)("main",{children:e})}),(0,r.jsx)(d,{}),(0,r.jsx)(D,{}),(0,r.jsx)(S,{}),(0,r.jsx)(p,{})]})}},39732:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,42593,23)),Promise.resolve().then(s.t.bind(s,7086,23)),Promise.resolve().then(s.t.bind(s,84438,23)),Promise.resolve().then(s.t.bind(s,51743,23)),Promise.resolve().then(s.bind(s,32396)),Promise.resolve().then(s.bind(s,62868))},51743:()=>{},62868:(e,t,s)=>{"use strict";s.d(t,{default:()=>o});var r=s(95155),a=s(40862),i=s(3107),n=s(30098),l=s(65504);function c({children:e}){let{isSignedIn:t}=(0,a.d)();return(0,r.jsx)(n.f,{isAuthenticated:t??!1,children:e})}function o({children:e}){return(0,r.jsx)(i.lJ,{children:(0,r.jsx)(l.t,{children:(0,r.jsx)(c,{children:e})})})}},62970:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var r=s(9339);let a=(0,r.createServerReference)("0076cafe00b63d9900e79dcc1f2450a1a6e19e64c3",r.callServer,void 0,r.findSourceMapURL,"detectKeylessEnvDriftAction")},65504:(e,t,s)=>{"use strict";s.d(t,{d:()=>h,t:()=>d});var r=s(95155),a=s(13545),i=s(12651),n=s(68822),l=s(33210),c=s(12115);let o=(0,c.createContext)(null);function d({children:e}){let[t,s]=(0,c.useState)([]),a=(0,c.useRef)(1),i=(0,c.useCallback)(e=>{s(t=>t.filter(t=>t.id!==e))},[]),n=(0,c.useCallback)(e=>{let t=a.current++;s(s=>[...s,{id:t,...e}]),setTimeout(()=>i(t),4500)},[i]),l=(0,c.useMemo)(()=>({show:n,error:(e,t)=>n({kind:"error",message:e,detail:t}),success:(e,t)=>n({kind:"success",message:e,detail:t}),info:(e,t)=>n({kind:"info",message:e,detail:t})}),[n]);return(0,r.jsxs)(o.Provider,{value:l,children:[e,(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[100] flex flex-col gap-2 pointer-events-none",children:t.map(e=>(0,r.jsx)(x,{toast:e,onDismiss:()=>i(e.id)},e.id))})]})}function x({toast:e,onDismiss:t}){let[s,o]=(0,c.useState)(!1);(0,c.useEffect)(()=>{let e=setTimeout(()=>o(!0),10);return()=>clearTimeout(e)},[]);let d="error"===e.kind?"border-red-500/40 bg-red-950/60 text-red-50":"success"===e.kind?"border-emerald-500/40 bg-emerald-950/60 text-emerald-50":"border-[#444] bg-[#1f1f1f] text-gray-100",h="error"===e.kind?a.A:"success"===e.kind?i.A:n.A,m="error"===e.kind?"text-red-300":"success"===e.kind?"text-emerald-300":"text-[#E07A5F]";return(0,r.jsx)("div",{role:"status","aria-live":"error"===e.kind?"assertive":"polite",className:`pointer-events-auto min-w-[280px] max-w-md rounded-xl border shadow-xl backdrop-blur transform transition-all duration-200 ${d} ${s?"translate-x-0 opacity-100":"translate-x-4 opacity-0"}`,children:(0,r.jsxs)("div",{className:"p-3 flex items-start gap-2.5",children:[(0,r.jsx)(h,{className:`w-4 h-4 mt-0.5 flex-shrink-0 ${m}`}),(0,r.jsxs)("div",{className:"flex-1 min-w-0 text-sm",children:[(0,r.jsx)("div",{className:"font-medium leading-snug",children:e.message}),e.detail&&(0,r.jsx)("div",{className:"text-xs opacity-80 mt-0.5 whitespace-pre-wrap",children:e.detail})]}),(0,r.jsx)("button",{type:"button",onClick:t,className:"text-current opacity-60 hover:opacity-100","aria-label":"Dismiss",children:(0,r.jsx)(l.A,{className:"w-3.5 h-3.5"})})]})})}function h(){let e=(0,c.useContext)(o);if(!e)throw Error("useToast must be used inside a <ToastProvider>");return e}},94897:(e,t,s)=>{"use strict";s.d(t,{y:()=>a});var r=s(9339);let a=(0,r.createServerReference)("0093b6a6095f11de461126707a793ac4c830950266",r.callServer,void 0,r.findSourceMapURL,"invalidateCacheAction")},95896:(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var r=s(95155),a=s(99815),i=s(96035),n=s(7686),l=s(11951),c=s(92289),o=s(61767),d=s(94514),x=s(89363),h=s(98500),m=s.n(h),u=s(12115);function f(){let[e,t]=(0,u.useState)([]),[s,h]=(0,u.useState)(0),[f,j]=(0,u.useState)(!1),[p,b]=(0,u.useState)(!1),v=(0,u.useRef)(null);(0,u.useEffect)(()=>{g();let e=setInterval(N,12e4);return()=>clearInterval(e)},[]),(0,u.useEffect)(()=>
1{if(!f)return;let e=e=>{v.current&&!v.current.contains(e.target)&&j(!1)},t=setTimeout(()=>{document.addEventListener("click",e)},0);return()=>{clearTimeout(t),document.removeEventListener("click",e)}},[f]),(0,u.useEffect)(()=>{if(!f)return;let e=e=>{"Escape"===e.key&&j(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[f]);let g=async()=>{b(!0);try{let e=await fetch("/api/notifications?limit=10");if(e.ok){let s=await e.json();t(s.notifications||[]),h(s.unreadCount||0)}}catch(e){console.error("Failed to fetch notifications:",e)}finally{b(!1)}},N=async()=>{try{let e=await fetch("/api/notifications?limit=1&unread=true");if(e.ok){let t=await e.json();h(t.unreadCount||0)}}catch(e){console.error("Failed to fetch unread count:",e)}},A=async()=>{try{(await fetch("/api/notifications",{method:"PATCH"})).ok&&(t(e.map(e=>({...e,isRead:!0}))),h(0))}catch(e){console.error("Failed to mark as read:",e)}};return(0,r.jsxs)("div",{className:"relative",ref:v,children:[(0,r.jsxs)("button",{type:"button",onClick:()=>{let e=!f;j(e),e&&(g(),s>0&&A())},className:"relative p-2 rounded-lg text-[#A8A29E] hover:text-white hover:bg-white/[0.05] transition-colors",children:[(0,r.jsx)(o.A,{className:"w-5 h-5"}),s>0&&(0,r.jsx)("span",{className:"absolute -top-0.5 -right-0.5 w-5 h-5 bg-[#D4836A] text-white text-xs font-bold rounded-full flex items-center justify-center",children:s>9?"9+":s})]}),f&&(0,r.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-80 bg-[#2D2926] rounded-xl border border-white/[0.1] shadow-xl z-50 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-white/[0.06]",children:[(0,r.jsx)("h3",{className:"font-semibold text-white",children:"Notifications"}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[s>0&&(0,r.jsxs)("button",{type:"button",onClick:A,className:"flex items-center gap-1 text-xs text-[#D4836A] hover:underline",children:[(0,r.jsx)(d.A,{className:"w-3 h-3"}),"Mark all read"]}),(0,r.jsx)(m(),{href:"/community/settings/notifications",onClick:()=>j(!1),title:"Notification settings","aria-label":"Notification settings",className:"text-[#A8A29E] hover:text-white transition-colors",children:(0,r.jsx)(x.A,{className:"w-4 h-4"})})]})]}),(0,r.jsx)("div",{className:"max-h-96 overflow-y-auto",children:p?(0,r.jsx)("div",{className:"py-8 text-center",children:(0,r.jsx)("div",{className:"w-6 h-6 border-2 border-[#D4836A] border-t-transparent rounded-full animate-spin mx-auto"})}):0===e.length?(0,r.jsxs)("div",{className:"py-8 text-center",children:[(0,r.jsx)(o.A,{className:"w-8 h-8 text-[#78716C] mx-auto mb-2"}),(0,r.jsx)("p",{className:"text-[#78716C] text-sm",children:"No notifications yet"})]}):e.map(e=>{let t,s;return(0,r.jsx)(m(),{href:e.link||"#",onClick:()=>j(!1),className:`block px-4 py-3 hover:bg-white/[0.03] transition-colors border-b border-white/[0.03] last:border-0 ${!e.isRead?"bg-white/[0.02]":""}`,children:(0,r.jsxs)("div",{className:"flex gap-3",children:[(0,r.jsx)("div",{className:"w-8 h-8 rounded-full bg-white/[0.05] flex items-center justify-center shrink-0",children:(e=>{switch(e){case"mention":return(0,r.jsx)(a.A,{className:"w-4 h-4 text-[#D4836A]"});case"reply":case"comment":return(0,r.jsx)(i.A,{className:"w-4 h-4 text-[#8B5CF6]"});case"like":return(0,r.jsx)(n.A,{className:"w-4 h-4 text-pink-500"});case"badge":return(0,r.jsx)(l.A,{className:"w-4 h-4 text-[#F59E0B]"});case"message":return(0,r.jsx)(c.A,{className:"w-4 h-4 text-[#10B981]"});default:return(0,r.jsx)(o.A,{className:"w-4 h-4 text-[#A8A29E]"})}})(e.type)}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("p",{className:"text-sm text-white font-medium truncate",children:e.title}),!e.isRead&&(0,r.jsx)("span",{className:"w-2 h-2 rounded-full bg-[#D4836A] shrink-0"})]}),(0,r.jsx)("p",{className:"text-xs text-[#78716C] line-clamp-1 mt-0.5",children:e.message}),(0,r.jsx)("p",{className:"text-xs text-[#57534E] mt-1",children:(t=new Date(e.createdAt),(s=Math.floor((new Date().getTime()-t.getTime())/1e3))<60?"just now":s<3600?`${Math.floor(s/60)}m ago`:s<86400?`${Math.floor(s/3600)}h ago`:s<604800?`${Math.floor(s/86400)}d ago`:t.toLocaleDateString())})]})]})},e.id)})}),e.length>0&&(0,r.jsx)("div",{className:"px-4 py-3 border-t border-white/[0.06]",children:(0,r.jsx)(m(),{href:"/community/notifications",onClick:()=>j(!1),className:"block text-center text-sm text-[#D4836A] hover:underline",children:"View all notifications"})})]})]})}}},e=>{e.O(0,[1817,3334,8500,8437,6559,7313,772,5824,8441,3794,7358],()=>e(e.s=39732)),_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.