1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[364],{19016:(e,t,n)=>{n.d(t,{A:()=>c,AuthProvider:()=>d});var a=n(95155),r=n(12115),o=n(81386),l=n(26625);let i=(0,r.createContext)({ready:!1,session:null,agent:null,did:null,handle:null,signIn:async()=>{},signInEmail:async()=>{},signOut:async()=>{}});function c(){return(0,r.useContext)(i)}async function s(e){try{var t;let n=await fetch("https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor=".concat(encodeURIComponent(e)));if(!n.ok)return null;return null!=(t=(await n.json()).handle)?t:null}catch(e){return null}}function d(e){let{children:t}=e,[n,c]=(0,r.useState)(!1),[d,u]=(0,r.useState)(null),[p,h]=(0,r.useState)(null);(0,r.useEffect)(()=>{let e=!1;return(0,l.Ig)().then(t=>{let{session:n}=t;e||(u(n),c(!0))}),()=>{e=!0}},[]),(0,r.useEffect)(()=>{let e=!1;return d?(s(d.did).then(t=>{e||h(t)}),()=>{e=!0}):void h(null)},[d]);let m=(0,r.useMemo)(()=>d?new o.g6n(d):null,[d]),x=(0,r.useCallback)(async()=>{if(d){try{await d.signOut()}catch(e){}u(null)}},[d]),f=(0,r.useMemo)(()=>{var e;return{ready:n,session:d,agent:m,did:null!=(e=null==d?void 0:d.did)?e:null,handle:p,signIn:l.Hm,signInEmail:l.Ru,signOut:x}},[n,d,m,p,x]);return(0,a.jsx)(i.Provider,{value:f,children:t})}},21364:(e,t,n)=>{n.d(t,{MenuBar:()=>h});var a=n(95155),r=n(52619),o=n.n(r),l=n(12115),i=n(39026),c=n(26497);function s(){let[e,t]=(0,l.useState)(()=>"undefined"==typeof document?"light":document.documentElement.dataset.theme||"light");(0,l.useEffect)(()=>{t(document.documentElement.dataset.theme||"light")},[]);let n="dark"===e;return(0,a.jsxs)(i.P.button,{type:"button",whileTap:{scale:.92},transition:{type:"spring",stiffness:400,damping:25},onClick:function(n){let a="light"===e?"dark":"light";!function(e,t){var n,a;let r=document;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||!r.startViewTransition)return t();let{originX:o,originY:l}=e,{radius:i}=(n=o,a=l,{radius:Math.ceil(Math.hypot(Math.max(n,window.innerWidth-n),Math.max(a,window.innerHeight-a)))});document.documentElement.style.setProperty("--theme-ripple-x","".concat(o,"px")),document.documentElement.style.setProperty("--theme-ripple-y","".concat(l,"px")),r.startViewTransition(t).ready.then(()=>{document.documentElement.animate({clipPath:["circle(0px at ".concat(o,"px ").concat(l,"px)"),"circle(0px at ".concat(o,"px ").concat(l,"px)"),"circle(".concat(i,"px at ").concat(o,"px ").concat(l,"px)")],offset:[0,.06,1]},{duration:1200,easing:"cubic-bezier(0.22, 1, 0.36, 1)",fill:"forwards",pseudoElement:"::view-transition-new(root)"})})}(function(e){if(e.detail>0)return{originX:e.clientX,originY:e.clientY};let t=e.currentTarget.getBoundingClientRect();return{originX:t.left+t.width/2,originY:t.top+t.height/2}}(n),()=>(function(e){let n=document.documentElement;n.setAttribute("data-theme",e),n.style.colorScheme=e;try{localStorage.setItem("rr.theme",e)}catch(e){}t(e)})(a))},"aria-label":n?"Switch to light mode":"Switch to dark mode","aria-pressed":n,className:"inline-flex items-center justify-center gap-1.5 rounded-full border border-[color:var(--foil)]/60 bg-[color:var(--cloth-2)] px-3 py-1 font-mono text-[11px] uppercase tracking-[0.18em] text-[color:var(--ink-on-cloth)]/80 transition-colors hover:text-[color:var(--ink-on-cloth)]",style:{minWidth:"80px"},suppressHydrationWarning:!0,children:[(0,a.jsx)(c.N,{mode:"wait",initial:!1,children:(0,a.jsx)(i.P.span,{initial:{opacity:0,rotate:n?-90:90,scale:.5},animate:{opacity:1,rotate:0,scale:1},exit:{opacity:0,rotate:n?90:-90,scale:.5},transition:{duration:.2,ease:"easeInOut"},"aria-hidden":!0,className:"inline-flex text-[color:var(--foil)]",children:n?"â":"â"},n?"moon":"sun")}),(0,a.jsx)("span",{children:n?"dark":"light"})]})}var d=n(19016);function u(){let{ready:e,did:t,handle:n,signIn:r,signInEmail:o,signOut:i}=(0,d.A)(),[c,s]=(0,l.useState)(!1),[u,p]=(0,l.useState)("handle"),[h,m]=(0,l.useState)(""),[x,f]=(0,l.useState)(!1),[g,v]=(0,l.useState)(null),b=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(!c)return;let e=e=>{var t;(null==(t=b.current)?void 0:t.contains(e.target))||s(!1)},t=e=>"Escape"===e.key&&s(!1);return window.addEventListener("pointerdown",e),window.addEventListener("keydown",t),()=>{window.removeEventListener("pointerdown",e),window.removeEventListener("keydown",t)}},[c]);let y=async()=>
1{if(h.trim()&&!x){f(!0),v(null);try{"email"===u?await o(h):await r(h)}catch(e){console.error("[nav-auth] sign-in failed:",e),v("email"===u?"Couldn't start email sign-in.":"Couldn't start sign-in for that handle."),f(!1)}}};return e?t?(0,a.jsxs)("div",{ref:b,className:"relative",children:[(0,a.jsxs)("button",{type:"button",onClick:()=>s(e=>!e),"aria-expanded":c,className:"inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 font-mono text-[10px] tracking-wide text-[color:var(--foil)] transition hover:opacity-80",style:{border:"1px solid var(--rule-strong)"},children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"block h-1.5 w-1.5 rounded-full",style:{background:"#7BC98A"}}),n?"@".concat(n):"".concat(t.slice(0,14),"â¦")]}),c&&(0,a.jsxs)("div",{className:"absolute right-0 top-[calc(100%+8px)] z-50 min-w-40 rounded-xl border p-2 shadow-lg",style:{borderColor:"var(--rule-strong)",background:"var(--cloth)"},children:[(0,a.jsx)("p",{className:"px-2 py-1 font-mono text-[9px] uppercase tracking-[0.18em] text-[color:var(--ink-ghost)]",children:"Signed in via ATProto"}),(0,a.jsx)("button",{type:"button",onClick:()=>{s(!1),i()},className:"block w-full rounded-lg px-2 py-1.5 text-left font-mono text-[10.5px] uppercase tracking-[0.18em] text-[color:var(--ink-dim)] transition hover:bg-[color:var(--foil-haze)] hover:text-[color:var(--foil)]",children:"Sign out"})]})]}):(0,a.jsxs)("div",{ref:b,className:"relative",children:[(0,a.jsx)("button",{type:"button",onClick:()=>s(e=>!e),"aria-expanded":c,className:"rounded-full px-3 py-1 font-mono text-[10px] uppercase tracking-[0.18em] text-[color:var(--foil)] transition hover:opacity-80",style:{border:"1px solid var(--rule-strong)"},children:"Sign in"}),c&&(0,a.jsxs)("div",{className:"absolute right-0 top-[calc(100%+8px)] z-50 w-64 rounded-xl border p-3 shadow-lg",style:{borderColor:"var(--rule-strong)",background:"var(--cloth)"},children:[(0,a.jsx)("p",{className:"mb-2 font-mono text-[9px] uppercase tracking-[0.18em] text-[color:var(--ink-faint)]",children:"Sign in with ATProto"}),(0,a.jsx)("div",{className:"mb-2 flex gap-1",children:[["handle","Handle"],["email","Email"]].map(e=>{let[t,n]=e;return(0,a.jsx)("button",{type:"button",onClick:()=>{p(t),m(""),v(null)},className:"rounded-full px-2.5 py-1 font-mono text-[9px] uppercase tracking-[0.14em] transition",style:u===t?{background:"var(--foil)",color:"var(--cloth)"}:{border:"1px solid var(--rule-strong)",color:"var(--ink-dim)"},children:n},t)})}),(0,a.jsxs)("form",{onSubmit:e=>{e.preventDefault(),y()},className:"flex flex-col gap-2",children:[(0,a.jsx)("input",{autoFocus:!0,t
1ype:"email"===u?"email":"text",value:h,onChange:e=>m(e.target.value),placeholder:"email"===u?"[email protected]":"you.bsky.social","aria-label":"email"===u?"Your email address":"Your ATProto handle",className:"w-full rounded-lg border bg-transparent px-3 py-2 text-[13px] text-[color:var(--ink-on-cloth)] outline-none transition placeholder:text-[color:var(--ink-ghost)] focus:border-[color:var(--foil)]",style:{borderColor:"var(--rule-strong)"}}),g&&(0,a.jsx)("p",{className:"font-mono text-[9.5px] tracking-wide text-red-600",children:g}),(0,a.jsx)("button",{type:"submit",disabled:x||!h.trim(),className:"rounded-full py-2 font-mono text-[10px] uppercase tracking-[0.18em] transition disabled:cursor-not-allowed disabled:opacity-40",style:{background:"var(--foil)",color:"var(--cloth)"},children:x?"Redirectingâ¦":"Continue"})]}),(0,a.jsx)("p",{className:"mt-2 text-[10.5px] leading-relaxed text-[color:var(--ink-ghost)]",children:"email"===u?"We'll send a code to your email via certified.one. No Bluesky account needed.":"Your handle on Bluesky or any ATProto PDS."})]})]}):(0,a.jsx)("span",{"aria-hidden":!0,className:"block h-2 w-2 rounded-full",style:{background:"var(--rule-strong)"}})}let p=[{href:"/#retreats",number:"01",label:"Retreats"},{href:"/papers/",number:"02",label:"Papers"},{href:"/impact/",number:"03",label:"Impact"},{href:"/#contact",number:"04",label:"Contact"}];function h(){return(0,a.jsx)("header",{className:"sticky top-0 z-40 backdrop-blur supports-[backdrop-filter]:bg-[color:var(--cloth)]/85",style:{borderBottom:"1px solid var(--rule)",background:"color-mix(in oklab, var(--cloth) 92%, transparent)"},children:(0,a.jsxs)("div",{className:"mx-auto flex max-w-7xl items-center justify-between gap-6 px-6 py-4 lg:px-12",children:[(0,a.jsxs)(o(),{href:"/",className:"flex items-center gap-2.5 hover:opacity-80 transition",children:[(0,a.jsx)("span",{"aria-hidden":!0,className:"flex items-center justify-center font-mono font-bold",style:{height:20,padding:"2px 6px",background:"var(--foil)",color:"var(--cloth)",fontSize:10,letterSpacing:"0.08em"},children:"RR"}),(0,a.jsxs)("span",{className:"font-serif text-[15px] tracking-tight text-[color:var(--ink-on-cloth)]",children:["researchretreat",(0,a.jsx)("span",{className:"text-[color:var(--foil)]",children:".org"})]})]}),(0,a.jsx)("nav",{"aria-label":"Sections",className:"hidden md:block",children:(0,a.jsx)("ul",{className:"flex items-center gap-6",children:p.map(e=>(0,a.jsx)("li",{children:(0,a.jsxs)(o(),{href:e.href,className:"group inline-flex items-baseline gap-1.5 font-mono text-[10.5px] uppercase tracking-[0.22em] text-[color:var(--ink-dim)] transition hover:text-[color:var(--foil)]",children:[(0,a.jsx)("span",{className:"text-[color:var(--foil)]/70 group-hover:text-[color:var(--foil)]",children:e.number}),e.label]})},e.href))})}),(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("span",{className:"hidden lg:block font-mono text-[10px] uppercase tracking-[0.28em] text-[color:var(--ink-faint)]",children:"Decentralized Science"}),(0,a.jsx)(u,{}),(0,a.jsx)(s,{})]})]})})}},26625:(e,t,n)=>{n.d(t,{Hm:()=>d,Ig:()=>c,OV:()=>p,Ru:()=>u});var a=n(25942);let r="atproto transition:generic",o="https://bsky.social",l="https://www.researchretreat.org",i=null;function c(){return i||(i=(async()=>{var e,t;let n;if("localhost"===(t=window.location.hostname)||"127.0.0.1"===t||"[::1]"===t){let e=window.location.port,t="http://localhost?".concat(new URLSearchParams({redirect_uri:"http://127.0.0.1".concat(e?":".concat(e):"","/oauth/callback/"),scope:r}).toString());n=new a.fdI({clientMetadata:(0,a.HfL)(t),handleResolver:o})}else n=new a.fdI({clientMetadata:{client_id:"".concat(l,"/oauth/client-metadata.json"),client_name:"Research Retreat",client_uri:l,redirect_uris:["".concat(l,"/oauth/callback/")],scope:r,grant_types:["authorization_code","refresh_token"],response_types:["code"],application_type:"web",token_endpoint_auth_method:"none",dpop_bound_access_tokens:!0},handleResolver:o});let i=await n.init().catch(e=>{console.warn("[oauth] init failed:",e)});return{client:n,session:null!=(e=null==i?void 0:i.session)?e:null}})())}function s(e){try{sessionStorage.setItem("rr-oauth-return-to",null!=e?e:window.location.pathname+window.location.hash)}catch(e){}}async function d(e,t){let{client:n}=await c();s(t),await n.signInRedirect(e.trim(),{scope:r})}async function u(e,t){let{client:n}=await c();s(t);let a=await n.authorize("https://certified.one",{scope:r});a.searchParams.set("login_hint",e.trim()),a.searchParams.set("prompt","login"),window.location.href=a.href,await new Promise(()=>{})}function p(){try{let e=sessionStorage.getItem("rr-oauth-return-to");return sessionStorage.removeItem("rr-oauth-return-to"),e&&e.startsWith("/")?e:"/impact/"}catch(e){return"/impact/"}}}}]);
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.