vendor: 7,155 bytes, lines 1-9
1var Ss=Object.defineProperty;var ms=e=>{throw TypeError(e)};var Cs=(e,s,a)=>s in e?Ss(e,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[s]=a;var Hr=(e,s,a)=>Cs(e,typeof s!="symbol"?s+"":s,a),rs=(e,s,a)=>s.has(e)||ms("Cannot "+a);var Ut=(e,s,a)=>(rs(e,s,"read from private field"),a?a.call(e):s.get(e)),Ar=(e,s,a)=>s.has(e)?ms("Cannot add the same private member more than once"):s instanceof WeakSet?s.add(e):s.set(e,a),Er=(e,s,a,c)=>(rs(e,s,"write to private field"),c?c.call(e,a):s.set(e,a),a),Ir=(e,s,a)=>(rs(e,s,"access private method"),a);var Zn=(e,s,a,c)=>({set _(g){Er(e,s,g,a)},get _(){return Ut(e,s,c)}});function _mergeNamespaces(e,s){for(var a=0;a<s.length;a++){const c=s[a];if(typeof c!="string"&&!Array.isArray(c)){for(const g in c)if(g!=="default"&&!(g in e)){const et=Object.getOwnPropertyDescriptor(c,g);et&&Object.defineProperty(e,g,et.get?et:{enumerable:!0,get:()=>c[g]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const g of document.querySelectorAll('link[rel="modulepreload"]'))c(g);new MutationObserver(g=>{for(const et of g)if(et.type==="childList")for(const rt of et.addedNodes)rt.tagName==="LINK"&&rt.rel==="modulepreload"&&c(rt)}).observe(document,{childList:!0,subtree:!0});function a(g){const et={};return g.integrity&&(et.integrity=g.integrity),g.referrerPolicy&&(et.referrerPolicy=g.referrerPolicy),g.crossOrigin==="use-credentials"?et.credentials="include":g.crossOrigin==="anonymous"?et.credentials="omit":et.credentials="same-origin",et}function c(g){if(g.ep)return;g.ep=!0;const et=a(g);fetch(g.href,et)}})();function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var s=e.default;if(typeof s=="function"){var a=function c(){return this instanceof c?Reflect.construct(s,arguments,this.constructor):s.apply(this,arguments)};a.prototype=s.prototype}else a={};return Object.defineProperty(a,"__esModule",{value:!0}),Object.keys(e).forEach(function(c){var g=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(a,c,g.get?g:{enumerable:!0,get:function(){return e[c]}})}),a}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** 2 * @license React 3 * react.production.min.js 4 * 5 * Copyright (c) Facebook, Inc. and its affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var l$1=Symbol.for("react.element"),n$1=Symbol.for("react.portal"),p$2=Symbol.for("react.fragment"),q$2=Symbol.for("react.strict_mode"),r$1=Symbol.for("react.profiler"),t=Symbol.for("react.provider"),u=Symbol.for("react.context"),v$3=Symbol.for("react.forward_ref"),w$1=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),y$1=Symbol.for("react.lazy"),z$2=Symbol.iterator;function A$1(e){return e===null||typeof e!="object"?null:(e=z$2&&e[z$2]||e["@@iterator"],typeof e=="function"?e:null)}var B$2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C$2=Object.assign,D$3={};function E$3(e,s,a){this.props=e,this.context=s,this.refs=D$3,this.updater=a||B$2}E$3.prototype.isReactComponent={};E$3.prototype.setState=function(e,s){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,s,"setState")};E$3.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function F$1(){}F$1.prototype=E$3.prototype;function G$2(e,s,a){this.props=e,this.context=s,this.refs=D$3,this.updater=a||B$2}var H$1=G$2.prototype=new F$1;H$1.constructor=G$2;C$2(H$1,E$3.prototype);H$1.isPureReactComponent=!0;var I$2=Array.isArray,J$1=Object.prototype.hasOwnProperty,K$2={current:null},L$3={key:!0,ref:!0,__self:!0,__source:!0};function M$3(e,s,a){var c,g={},et=null,rt=null;if(s!=null)for(c in s.ref!==void 0&&(rt=s.ref),s.key!==void 0&&(et=""+s.key),s)J$1.call(s,c)&&!L$3.hasOwnProperty(c)&&(g[c]=s[c]);var nt=arguments.length-2;if(nt===1)g.children=a;else if(1<nt){for(var st=Array(nt),at=0;at<nt;at++)st[at]=arguments[at+2];g.children=st}if(e&&e.defaultProps)for(c in nt=e.defaultProps,nt)g[c]===void 0&&(g[c]=nt[c]);return{$$typeof:l$1,type:e,key:et,ref:rt,props:g,_owner:K$2.current}}function N$2(e,s){return{$$typeof:l$1,type:e.type,key:s,ref:e.ref,props:e.props,_owner:e._owner}}function O$2(e){return typeof e=="object"&&e!==null&&e.$$typeof===l$1}function escape(e){var s={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return s[a]})}var P$3=/\/+/g;function Q$2(e,s){return typeof e=="object"&&e!==null&&e.key!=null?escape(""+e.key):s.toString(36)}function R$2(e,s,a,c,g){var et=typeof e;(et==="undefined"||et==="boolean")&&(e=null);var rt=!1;if(e===null)rt=!0;else switch(et){case"string":case"number":rt=!0;break;case"object":switch(e.$$typeof){case l$1:case n$1:rt=!0}}if(rt)return rt=e,g=g(rt),e=c===""?"."+Q$2(rt,0):c,I$2(g)?(a="",e!=null&&(a=e.replace(P$3,"$&/")+"/"),R$2(g,s,a,"",function(at){return at})):g!=null&&(O$2(g)&&(g=N$2(g,a+(!g.key||rt&&rt.key===g.key?"":(""+g.key).replace(P$3,"$&/")+"/")+e)),s.push(g)),1;if(rt=0,c=c===""?".":c+":",I$2(e))for(var nt=0;nt<e.length;nt++){et=e[nt];var st=c+Q$2(et,nt);rt+=R$2(et,s,a,st,g)}else if(st=A$1(e),typeof st=="function")for(e=st.call(e),nt=0;!(et=e.next()).done;)et=et.value,st=c+Q$2(et,nt++),rt+=R$2(et,s,a,st,g);else if(et==="object")throw s=String(e),Error("Objects are not valid as a React child (found: "+(s==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":s)+"). If you meant to render a collection of children, use an array instead.");return rt}function S$2(e,s,a){if(e==null)return e;var c=[],g=0;return R$2(e,c,"","",function(et){return s.call(a,et,g++)}),c}function T$1(e){if(e._status===-1){var s=e._result;s=s(),s.then(function(a){(e._status===0||e._status===-1)&&(e._status=1,e._result=a)},function(a){(e._status===0||e._status===-1)&&(e._status=2,e._result=a)}),e._status===-1&&(e._status=0,e._result=s)}if(e._status===1)return e._result.default;throw e._result}var U$2={current:null},V$2={transition:null},W$2={ReactCurrentDispatcher:U$2,ReactCurrentBatchConfig:V$2,ReactCurrentOwner:K$2};function X$3(){throw Error("act(...) is not supported in production builds of React.")}react_production_min.Children={map:S$2,forEach:function(e,s,a){S$2(e,function(){s.apply(this,arguments)},a)},count:function(e){var s=0;return S$2(e,function(){s++}),s},toArray:function(e){return S$2(e,function(s){return s})||[]},only:function(e){if(!O$2(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};react_production_min.Component=E$3;react_production_min.Fragment=p$2;react_production_min.Profiler=r$1;react_production_min.PureComponent=G$2;react_production_min.StrictMode=q$2;react_production_min.Suspense=w$1;
vendor: 4,173 bytes, lines 9-17
9react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W$2;react_production_min.act=X$3;react_production_min.cloneElement=function(e,s,a){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var c=C$2({},e.props),g=e.key,et=e.ref,rt=e._owner;if(s!=null){if(s.ref!==void 0&&(et=s.ref,rt=K$2.current),s.key!==void 0&&(g=""+s.key),e.type&&e.type.defaultProps)var nt=e.type.defaultProps;for(st in s)J$1.call(s,st)&&!L$3.hasOwnProperty(st)&&(c[st]=s[st]===void 0&&nt!==void 0?nt[st]:s[st])}var st=arguments.length-2;if(st===1)c.children=a;else if(1<st){nt=Array(st);for(var at=0;at<st;at++)nt[at]=arguments[at+2];c.children=nt}return{$$typeof:l$1,type:e.type,key:g,ref:et,props:c,_owner:rt}};react_production_min.createContext=function(e){return e={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:t,_context:e},e.Consumer=e};react_production_min.createElement=M$3;react_production_min.createFactory=function(e){var s=M$3.bind(null,e);return s.type=e,s};react_production_min.createRef=function(){return{current:null}};react_production_min.forwardRef=function(e){return{$$typeof:v$3,render:e}};react_production_min.isValidElement=O$2;react_production_min.lazy=function(e){return{$$typeof:y$1,_payload:{_status:-1,_result:e},_init:T$1}};react_production_min.memo=function(e,s){return{$$typeof:x,type:e,compare:s===void 0?null:s}};react_production_min.startTransition=function(e){var s=V$2.transition;V$2.transition={};try{e()}finally{V$2.transition=s}};react_production_min.unstable_act=X$3;react_production_min.useCallback=function(e,s){return U$2.current.useCallback(e,s)};react_production_min.useContext=function(e){return U$2.current.useContext(e)};react_production_min.useDebugValue=function(){};react_production_min.useDeferredValue=function(e){return U$2.current.useDeferredValue(e)};react_production_min.useEffect=function(e,s){return U$2.current.useEffect(e,s)};react_production_min.useId=function(){return U$2.current.useId()};react_production_min.useImperativeHandle=function(e,s,a){return U$2.current.useImperativeHandle(e,s,a)};react_production_min.useInsertionEffect=function(e,s){return U$2.current.useInsertionEffect(e,s)};react_production_min.useLayoutEffect=function(e,s){return U$2.current.useLayoutEffect(e,s)};react_production_min.useMemo=function(e,s){return U$2.current.useMemo(e,s)};react_production_min.useReducer=function(e,s,a){return U$2.current.useReducer(e,s,a)};react_production_min.useRef=function(e){return U$2.current.useRef(e)};react_production_min.useState=function(e){return U$2.current.useState(e)};react_production_min.useSyncExternalStore=function(e,s,a){return U$2.current.useSyncExternalStore(e,s,a)};react_production_min.useTransition=function(){return U$2.current.useTransition()};react_production_min.version="18.3.1";react.exports=react_production_min;var reactExports=react.exports;const o=getDefaultExportFromCjs(reactExports),React=_mergeNamespaces({__proto__:null,default:o},[reactExports]);/** 10 * @license React 11 * react-jsx-runtime.production.min.js 12 * 13 * Copyright (c) Facebook, Inc. and its affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var f=reactExports,k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m$2=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p$1={key:!0,ref:!0,__self:!0,__source:!0};function q$1(e,s,a){var c,g={},et=null,rt=null;a!==void 0&&(et=""+a),s.key!==void 0&&(et=""+s.key),s.ref!==void 0&&(rt=s.ref);for(c in s)m$2.call(s,c)&&!p$1.hasOwnProperty(c)&&(g[c]=s[c]);if(e&&e.defaultProps)for(c in s=e.defaultProps,s)g[c]===void 0&&(g[c]=s[c]);return{$$typeof:k,type:e,key:et,ref:rt,props:g,_owner:n.current}}reactJsxRuntime_production_min.Fragment=l;reactJsxRuntime_production_min.jsx=q$1;reactJsxRuntime_production_min.jsxs=q$1;jsxRuntime.exports=reactJsxRuntime_production_min;var jsxRuntimeExports=jsxRuntime.exports,reactDom={exports:{}},reactDom_production_min={}
vendor: 11,414 bytes, lines 17-34
17,scheduler={exports:{}},scheduler_production_min={};/** 18 * @license React 19 * scheduler.production.min.js 20 * 21 * Copyright (c) Facebook, Inc. and its affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */(function(e){function s(Dt,Ht){var Xt=Dt.length;Dt.push(Ht);e:for(;0<Xt;){var Zt=Xt-1>>>1,It=Dt[Zt];if(0<g(It,Ht))Dt[Zt]=Ht,Dt[Xt]=It,Xt=Zt;else break e}}function a(Dt){return Dt.length===0?null:Dt[0]}function c(Dt){if(Dt.length===0)return null;var Ht=Dt[0],Xt=Dt.pop();if(Xt!==Ht){Dt[0]=Xt;e:for(var Zt=0,It=Dt.length,Bt=It>>>1;Zt<Bt;){var rr=2*(Zt+1)-1,lr=Dt[rr],pr=rr+1,tr=Dt[pr];if(0>g(lr,Xt))pr<It&&0>g(tr,lr)?(Dt[Zt]=tr,Dt[pr]=Xt,Zt=pr):(Dt[Zt]=lr,Dt[rr]=Xt,Zt=rr);else if(pr<It&&0>g(tr,Xt))Dt[Zt]=tr,Dt[pr]=Xt,Zt=pr;else break e}}return Ht}function g(Dt,Ht){var Xt=Dt.sortIndex-Ht.sortIndex;return Xt!==0?Xt:Dt.id-Ht.id}if(typeof performance=="object"&&typeof performance.now=="function"){var et=performance;e.unstable_now=function(){return et.now()}}else{var rt=Date,nt=rt.now();e.unstable_now=function(){return rt.now()-nt}}var st=[],at=[],it=1,ot=null,lt=3,ct=!1,dt=!1,ut=!1,xt=typeof setTimeout=="function"?setTimeout:null,gt=typeof clearTimeout=="function"?clearTimeout:null,ht=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function mt(Dt){for(var Ht=a(at);Ht!==null;){if(Ht.callback===null)c(at);else if(Ht.startTime<=Dt)c(at),Ht.sortIndex=Ht.expirationTime,s(st,Ht);else break;Ht=a(at)}}function kt(Dt){if(ut=!1,mt(Dt),!dt)if(a(st)!==null)dt=!0,qt(Ct);else{var Ht=a(at);Ht!==null&&or(kt,Ht.startTime-Dt)}}function Ct(Dt,Ht){dt=!1,ut&&(ut=!1,gt(At),At=-1),ct=!0;var Xt=lt;try{for(mt(Ht),ot=a(st);ot!==null&&(!(ot.expirationTime>Ht)||Dt&&!zt());){var Zt=ot.callback;if(typeof Zt=="function"){ot.callback=null,lt=ot.priorityLevel;var It=Zt(ot.expirationTime<=Ht);Ht=e.unstable_now(),typeof It=="function"?ot.callback=It:ot===a(st)&&c(st),mt(Ht)}else c(st);ot=a(st)}if(ot!==null)var Bt=!0;else{var rr=a(at);rr!==null&&or(kt,rr.startTime-Ht),Bt=!1}return Bt}finally{ot=null,lt=Xt,ct=!1}}var Tt=!1,Pt=null,At=-1,Gt=5,Mt=-1;function zt(){return!(e.unstable_now()-Mt<Gt)}function Jt(){if(Pt!==null){var Dt=e.unstable_now();Mt=Dt;var Ht=!0;try{Ht=Pt(!0,Dt)}finally{Ht?nr():(Tt=!1,Pt=null)}}else Tt=!1}var nr;if(typeof ht=="function")nr=function(){ht(Jt)};else if(typeof MessageChannel<"u"){var er=new MessageChannel,ur=er.port2;er.port1.onmessage=Jt,nr=function(){ur.postMessage(null)}}else nr=function(){xt(Jt,0)};function qt(Dt){Pt=Dt,Tt||(Tt=!0,nr())}function or(Dt,Ht){At=xt(function(){Dt(e.unstable_now())},Ht)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(Dt){Dt.callback=null},e.unstable_continueExecution=function(){dt||ct||(dt=!0,qt(Ct))},e.unstable_forceFrameRate=function(Dt){0>Dt||125<Dt?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Gt=0<Dt?Math.floor(1e3/Dt):5},e.unstable_getCurrentPriorityLevel=function(){return lt},e.unstable_getFirstCallbackNode=function(){return a(st)},e.unstable_next=function(Dt){switch(lt){case 1:case 2:case 3:var Ht=3;break;default:Ht=lt}var Xt=lt;lt=Ht;try{return Dt()}finally{lt=Xt}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(Dt,Ht){switch(Dt){case 1:case 2:case 3:case 4:case 5:break;default:Dt=3}var Xt=lt;lt=Dt;try{return Ht()}finally{lt=Xt}},e.unstable_scheduleCallback=function(Dt,Ht,Xt){var Zt=e.unstable_now();switch(typeof Xt=="object"&&Xt!==null?(Xt=Xt.delay,Xt=typeof Xt=="number"&&0<Xt?Zt+Xt:Zt):Xt=Zt,Dt){case 1:var It=-1;break;case 2:It=250;break;case 5:It=1073741823;break;case 4:It=1e4;break;default:It=5e3}return It=Xt+It,Dt={id:it++,callback:Ht,priorityLevel:Dt,startTime:Xt,expirationTime:It,sortIndex:-1},Xt>Zt?(Dt.sortIndex=Xt,s(at,Dt),a(st)===null&&Dt===a(at)&&(ut?(gt(At),At=-1):ut=!0,or(kt,Xt-Zt))):(Dt.sortIndex=It,s(st,Dt),dt||ct||(dt=!0,qt(Ct))),Dt},e.unstable_shouldYield=zt,e.unstable_wrapCallback=function(Dt){var Ht=lt;return function(){var Xt=lt;lt=Ht;try{return Dt.apply(this,arguments)}finally{lt=Xt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** 26 * @license React 27 * react-dom.production.min.js 28 * 29 * Copyright (c) Facebook, Inc. and its affiliates. 30 * 31 * This source code is licensed under the MIT license found in the 32 * LICENSE file in the root directory of this source tree. 33 */var aa=reactExports,ca=schedulerExports;function p(e){for(var s="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)s+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+s+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var da=new Set,ea={};function fa(e,s){ha(e,s),ha(e+"Capture",s)}function ha(e,s){for(ea[e]=s,e=0;e<s.length;e++)da.add(s[e])}var ia=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la={},ma={};function oa(e){return ja.call(ma,e)?!0:ja.call(la,e)?!1:ka.test(e)?ma[e]=!0:(la[e]=!0,!1)}function pa(e,s,a,c){if(a!==null&&a.type===0)return!1;switch(typeof s){case"function":case"symbol":return!0;case"boolean":return c?!1:a!==null?!a.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function qa(e,s,a,c){if(s===null||typeof s>"u"||pa(e,s,a,c))return!0;if(c)return!1;if(a!==null)switch(a.type){case 3:return!s;case 4:return s===!1;case 5:return isNaN(s);case 6:return isNaN(s)||1>s}return!1}function v$2(e,s,a,c,g,et,rt){this.acceptsBooleans=s===2||s===3||s===4,this.attributeName=c,this.attributeNamespace=g,this.mustUseProperty=a,this.propertyName=e,this.type=s,this.sanitizeURL=et,this.removeEmptyString=rt}var z$1={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){z$1[e]=new v$2(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var s=e[0];z$1[s]=new v$2(s,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){z$1[e]=new v$2(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){z$1[e]=new v$2(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){z$1[e]=new v$2(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){z$1[e]=new v$2(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){z$1[e]=new v$2(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){z$1[e]=new v$2(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){z$1[e]=new v$2(e,5,!1,e.toLowerCase(),null,!1,!1)});var ra=/[\-:]([a-z])/g;function sa(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var s=e.replace(ra,sa);z$1[s]=new v$2(s,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var s=e.replace(ra,sa);z$1[s]=new v$2(s,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var s=e.replace(ra,sa);z$1[s]=new v$2(s,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){z$1[e]=new v$2(e,1,!1,e.toLowerCase(),null,!1,!1)});z$1.xlinkHref=new v$2("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){z$1[e]=new v$2(e,1,!1,e.toLowerCase(),null,!0,!0)});function ta(e,s,a,c){var g=z$1.hasOwnProperty(s)?z$1[s]:null;(g!==null?g.type!==0:c||!(2<s.length)||s[0]!=="o"&&s[0]!=="O"||s[1]!=="n"&&s[1]!=="N")&&(qa(s,a,g,c)&&(a=null),c||g===null?oa(s)&&(a===null?e.removeAttribute(s):e.setAttribute(s,""+a)):g.mustUseProperty?e[g.propertyName]=a===null?g.type===3?!1:"":a:(s=g.attributeName,c=g.attributeNamespace,a===null?e.removeAttribute(s):(g=g.type,a=g===3||g===4&&a===!0?"":""+a,c?e.setAttributeNS(c,s,a):e.setAttribute(s,a))))}var ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for("react.element"),wa=Symbol.for("react.portal"),ya=Symbol.for("react.fragment"),za=Symbol.for("react.strict_mode"),Aa=Symbol.for("react.profiler"),Ba=Symbol.for("react.provider"),Ca=Symbol.for("react.context"),Da=Symbol.for("react.forward_ref"),Ea=Symbol.for("react.suspense"),Fa=Symbol.for("react.suspense_list"),Ga=Symbol.for("react.memo"),Ha=Symbol.for("react.lazy"),Ia=Symbol.for("react.offscreen"),Ja=Symbol.iterator;function Ka(e){return e===null||typeof e!="object"?null:(e=Ja&&e[Ja]||e["@@iterator"],typeof e=="function"?e:null)}var A=Object.assign,La;function Ma(e){if(La===void 0)try{throw Error()}catch(a){var s=a.stack.trim().match(/\n( *(at )?)/);La=s&&s[1]||""}return` 34`+La+e}var Na=!1;function Oa(e,s){if(!e||Na)return"";Na=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(s)if(s=function(){throw Error()},Object.defineProperty(s.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(s,[])}catch(at){var c=at}Reflect.construct(e,[],s)}else{try{s.call()}catch(at){c=at}e.call(s.prototype)}else{try{throw Error()}catch(at){c=at}e()}}
vendor: 3,869 bytes, lines 34-37
34catch(at){if(at&&c&&typeof at.stack=="string"){for(var g=at.stack.split(` 35`),et=c.stack.split(` 36`),rt=g.length-1,nt=et.length-1;1<=rt&&0<=nt&&g[rt]!==et[nt];)nt--;for(;1<=rt&&0<=nt;rt--,nt--)if(g[rt]!==et[nt]){if(rt!==1||nt!==1)do if(rt--,nt--,0>nt||g[rt]!==et[nt]){var st=` 37`+g[rt].replace(" at new "," at ");return e.displayName&&st.includes("<anonymous>")&&(st=st.replace("<anonymous>",e.displayName)),st}while(1<=rt&&0<=nt);break}}}finally{Na=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?Ma(e):""}function Pa(e){switch(e.tag){case 5:return Ma(e.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return e=Oa(e.type,!1),e;case 11:return e=Oa(e.type.render,!1),e;case 1:return e=Oa(e.type,!0),e;default:return""}}function Qa(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ca:return(e.displayName||"Context")+".Consumer";case Ba:return(e._context.displayName||"Context")+".Provider";case Da:var s=e.render;return e=e.displayName,e||(e=s.displayName||s.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Ga:return s=e.displayName||null,s!==null?s:Qa(e.type)||"Memo";case Ha:s=e._payload,e=e._init;try{return Qa(e(s))}catch{}}return null}function Ra(e){var s=e.type;switch(e.tag){case 24:return"Cache";case 9:return(s.displayName||"Context")+".Consumer";case 10:return(s._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=s.render,e=e.displayName||e.name||"",s.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return s;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(s);case 8:return s===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof s=="function")return s.displayName||s.name||null;if(typeof s=="string")return s}return null}function Sa(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Ta(e){var s=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function Ua(e){var s=Ta(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,s),c=""+e[s];if(!e.hasOwnProperty(s)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var g=a.get,et=a.set;return Object.defineProperty(e,s,{configurable:!0,get:function(){return g.call(this)},set:function(rt){c=""+rt,et.call(this,rt)}}),Object.defineProperty(e,s,{enumerable:a.enumerable}),{getValue:function(){return c},setValue:function(rt){c=""+rt},stopTracking:function(){e._valueTracker=null,delete e[s]}}}}function Va(e){e._valueTracker||(e._valueTracker=Ua(e))}function Wa(e){if(!e)return!1;var s=e._valueTracker;if(!s)return!0;var a=s.getValue(),c="";return e&&(c=Ta(e)?e.checked?"true":"false":e.value),e=c,e!==a?(s.setValue(e),!0):!1}function Xa(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ya(e,s){var a=s.checked;return A({},s,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??e._wrapperState.initialChecked})}function Za(e,s){var a=s.defaultValue==null?"":s.defaultValue,c=s.checked!=null?s.checked:s.defaultChecked;a=Sa(s.value!=null?s.value:a),e._wrapperState={initialChecked:c,initialValue:a,controlled:s.type==="checkbox"||s.type==="radio"?s.checked!=null:s.value!=null}}
vendor: 4,649 bytes, line 37
37function ab(e,s){s=s.checked,s!=null&&ta(e,"checked",s,!1)}function bb(e,s){ab(e,s);var a=Sa(s.value),c=s.type;if(a!=null)c==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(c==="submit"||c==="reset"){e.removeAttribute("value");return}s.hasOwnProperty("value")?cb(e,s.type,a):s.hasOwnProperty("defaultValue")&&cb(e,s.type,Sa(s.defaultValue)),s.checked==null&&s.defaultChecked!=null&&(e.defaultChecked=!!s.defaultChecked)}function db(e,s,a){if(s.hasOwnProperty("value")||s.hasOwnProperty("defaultValue")){var c=s.type;if(!(c!=="submit"&&c!=="reset"||s.value!==void 0&&s.value!==null))return;s=""+e._wrapperState.initialValue,a||s===e.value||(e.value=s),e.defaultValue=s}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function cb(e,s,a){(s!=="number"||Xa(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var eb=Array.isArray;function fb(e,s,a,c){if(e=e.options,s){s={};for(var g=0;g<a.length;g++)s["$"+a[g]]=!0;for(a=0;a<e.length;a++)g=s.hasOwnProperty("$"+e[a].value),e[a].selected!==g&&(e[a].selected=g),g&&c&&(e[a].defaultSelected=!0)}else{for(a=""+Sa(a),s=null,g=0;g<e.length;g++){if(e[g].value===a){e[g].selected=!0,c&&(e[g].defaultSelected=!0);return}s!==null||e[g].disabled||(s=e[g])}s!==null&&(s.selected=!0)}}function gb(e,s){if(s.dangerouslySetInnerHTML!=null)throw Error(p(91));return A({},s,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function hb(e,s){var a=s.value;if(a==null){if(a=s.children,s=s.defaultValue,a!=null){if(s!=null)throw Error(p(92));if(eb(a)){if(1<a.length)throw Error(p(93));a=a[0]}s=a}s==null&&(s=""),a=s}e._wrapperState={initialValue:Sa(a)}}function ib(e,s){var a=Sa(s.value),c=Sa(s.defaultValue);a!=null&&(a=""+a,a!==e.value&&(e.value=a),s.defaultValue==null&&e.defaultValue!==a&&(e.defaultValue=a)),c!=null&&(e.defaultValue=""+c)}function jb(e){var s=e.textContent;s===e._wrapperState.initialValue&&s!==""&&s!==null&&(e.value=s)}function kb(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function lb(e,s){return e==null||e==="http://www.w3.org/1999/xhtml"?kb(s):e==="http://www.w3.org/2000/svg"&&s==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var mb,nb=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(s,a,c,g){MSApp.execUnsafeLocalFunction(function(){return e(s,a,c,g)})}:e}(function(e,s){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=s;else{for(mb=mb||document.createElement("div"),mb.innerHTML="<svg>"+s.valueOf().toString()+"</svg>",s=mb.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;s.firstChild;)e.appendChild(s.firstChild)}});function ob(e,s){if(s){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=s;return}}e.textContent=s}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(e){qb.forEach(function(s){s=s+e.charAt(0).toUpperCase()+e.substring(1),pb[s]=pb[e]})});function rb(e,s,a){return s==null||typeof s=="boolean"||s===""?"":a||typeof s!="number"||s===0||pb.hasOwnProperty(e)&&pb[e]?(""+s).trim():s+"px"}function sb(e,s){e=e.style;for(var a in s)if(s.hasOwnProperty(a)){var c=a.indexOf("--")===0,g=rb(a,s[a],c);a==="float"&&(a="cssFloat"),c?e.setProperty(a,g):e[a]=g}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(e,s){if(s){if(tb[e]&&(s.children!=null||s.dangerouslySetInnerHTML!=null))throw Error(p(137,e));if(s.dangerouslySetInnerHTML!=null){if(s.children!=null)throw Error(p(60));if(typeof s.dangerouslySetInnerHTML!="object"||!("__html"in s.dangerouslySetInnerHTML))throw Error(p(61))}if(s.style!=null&&typeof s.style!="object")throw Error(p(62))}}function vb(e,s){if(e.indexOf("-")===-1)return typeof s.is=="str
37ing";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var yb=null,zb=null,Ab=null;function Bb(e){if(e=Cb(e)){if(typeof yb!="function")throw Error(p(280));var s=e.stateNode;s&&(s=Db(s),yb(e.stateNode,e.type,s))}}function Eb(e){zb?Ab?Ab.push(e):Ab=[e]:zb=e}function Fb(){if(zb){var e=zb,s=Ab;if(Ab=zb=null,Bb(e),s)for(e=0;e<s.length;e++)Bb(s[e])}}function Gb(e,s){return e(s)}function Hb(){}var Ib=!1;function Jb(e,s,a){if(Ib)return e(s,a);Ib=!0;try{return Gb(e,s,a)}finally{Ib=!1,(zb!==null||Ab!==null)&&(Hb(),Fb())}}function Kb(e,s){var a=e.stateNode;if(a===null)return null;var c=Db(a);if(c===null)return null;a=c[s];e:switch(s){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(c=!c.disabled)||(e=e.type,c=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!c;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(p(231,s,typeof a));return a}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,"passive",{get:function(){Lb=!0}}),window.addEventListener("test",Mb,Mb),window.removeEventListener("test",Mb,Mb)}catch{Lb=!1}function Nb(e,s,a,c,g,et,rt,nt,st){var at=Array.prototype.slice.call(arguments,3);try{s.apply(a,at)}catch(it){this.onError(it)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(e){Ob=!0,Pb=e}};function Tb(e,s,a,c,g,et,rt,nt,st){Ob=!1,Pb=null,Nb.apply(Sb,arguments)}function Ub(e,s,a,c,g,et,rt,nt,st){if(Tb.apply(this,arguments),Ob){if(Ob){var at=Pb;Ob=!1,Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=at)}}function Vb(e){var s=e,a=e;if(e.alternate)for(;s.return;)s=s.return;else{e=s;do s=e,s.flags&4098&&(a=s.return),e=s.return;while(e)}return s.tag===3?a:null}function Wb(e){if(e.tag===13){var s=e.memoizedState;if(s===null&&(e=e.alternate,e!==null&&(s=e.memoizedState)),s!==null)return s.dehydrated}return null}function Xb(e){if(Vb(e)!==e)throw Error(p(188))}function Yb(e){var s=e.alternate;if(!s){if(s=Vb(e),s===null)throw Error(p(188));return s!==e?null:e}for(var a=e,c=s;;){var g=a.return;if(g===null)break;var et=g.alternate;if(et===null){if(c=g.return,c!==null){a=c;continue}break}if(g.child===et.child){for(et=g.child;et;){if(et===a)return Xb(g),e;if(et===c)return Xb(g),s;et=et.sibling}throw Error(p(188))}if(a.return!==c.return)a=g,c=et;else{for(var rt=!1,nt=g.child;nt;){if(nt===a){rt=!0,a=g,c=et;break}if(nt===c){rt=!0,c=g,a=et;break}nt=nt.sibling}if(!rt){for(nt=et.child;nt;){if(nt===a){rt=!0,a=et,c=g;break}if(nt===c){rt=!0,c=et,a=g;break}nt=nt.sibling}if(!rt)throw Error(p(189))}}if(a.alternate!==c)throw Error(p(190))}if(a.tag!==3)throw Error(p(188));return a.stateNode.current===a?e:s}function Zb(e){return e=Yb(e),e!==null?$b(e):null}function $b(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var s=$b(e);if(s!==null)return s;e=e.sibling}return null}var ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B$1=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(e){if(lc&&typeof lc.onCommitFiberRoot=="function")try{lc.onCommitFiberRoot(kc,e,void 0,(e.current.flags&128)===128)}catch{}}var oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(e){return e>>>=0,e===0?32:31-(pc(e)/qc|0)|0}var rc=64,sc=4194304;function tc(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function uc(e,s){var a=e.pendingLanes;if(a===0)return 0;var c=0,g=e.suspendedLanes,et=e.pingedLanes,rt=a&268435455;if(rt!==0){var nt=rt&~g;nt!==0?c=tc(nt):(et&=rt,et!==0&&(c=tc(et)))}else rt=a&~g,rt!==0?c=tc(rt):et!==0&&(c=tc(et));if(c===0)return 0;if(s!==0&&s!==c&&!(s&g)&&(g=c&-c,et=s&-s,g>=et||g===16&&(et&4194240)!==0))return s;if(c&4&&(c|=a&16),s=e.entangledLanes,s!==0)for(e=e.entanglements,s&=c;0<s;)a=31-oc(s),g=1<<a,c|=e[a],s&=~g;return c}
vendor: 3,517 bytes, line 37
37function vc(e,s){switch(e){case 1:case 2:case 4:return s+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function wc(e,s){for(var a=e.suspendedLanes,c=e.pingedLanes,g=e.expirationTimes,et=e.pendingLanes;0<et;){var rt=31-oc(et),nt=1<<rt,st=g[rt];st===-1?(!(nt&a)||nt&c)&&(g[rt]=vc(nt,s)):st<=s&&(e.expiredLanes|=nt),et&=~nt}}function xc(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function yc(){var e=rc;return rc<<=1,!(rc&4194240)&&(rc=64),e}function zc(e){for(var s=[],a=0;31>a;a++)s.push(e);return s}function Ac(e,s,a){e.pendingLanes|=s,s!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,s=31-oc(s),e[s]=a}function Bc(e,s){var a=e.pendingLanes&~s;e.pendingLanes=s,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=s,e.mutableReadLanes&=s,e.entangledLanes&=s,s=e.entanglements;var c=e.eventTimes;for(e=e.expirationTimes;0<a;){var g=31-oc(a),et=1<<g;s[g]=0,c[g]=-1,e[g]=-1,a&=~et}}function Cc(e,s){var a=e.entangledLanes|=s;for(e=e.entanglements;a;){var c=31-oc(a),g=1<<c;g&s|e[c]&s&&(e[c]|=s),a&=~g}}var C$1=0;function Dc(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Sc(e,s){switch(e){case"focusin":case"focusout":Lc=null;break;case"dragenter":case"dragleave":Mc=null;break;case"mouseover":case"mouseout":Nc=null;break;case"pointerover":case"pointerout":Oc.delete(s.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pc.delete(s.pointerId)}}function Tc(e,s,a,c,g,et){return e===null||e.nativeEvent!==et?(e={blockedOn:s,domEventName:a,eventSystemFlags:c,nativeEvent:et,targetContainers:[g]},s!==null&&(s=Cb(s),s!==null&&Fc(s)),e):(e.eventSystemFlags|=c,s=e.targetContainers,g!==null&&s.indexOf(g)===-1&&s.push(g),e)}function Uc(e,s,a,c,g){switch(s){case"focusin":return Lc=Tc(Lc,e,s,a,c,g),!0;case"dragenter":return Mc=Tc(Mc,e,s,a,c,g),!0;case"mouseover":return Nc=Tc(Nc,e,s,a,c,g),!0;case"pointerover":var et=g.pointerId;return Oc.set(et,Tc(Oc.get(et)||null,e,s,a,c,g)),!0;case"gotpointercapture":return et=g.pointerId,Pc.set(et,Tc(Pc.get(et)||null,e,s,a,c,g)),!0}return!1}function Vc(e){var s=Wc(e.target);if(s!==null){var a=Vb(s);if(a!==null){if(s=a.tag,s===13){if(s=Wb(a),s!==null){e.blockedOn=s,Ic(e.priority,function(){Gc(a)});return}}else if(s===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Xc(e){if(e.blockedOn!==null)return!1;for(var s=e.targetContainers;0<s.length;){var a=Yc(e.domEventName,e.eventSystemFlags,s[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var c=new a.constructor(a.type,a);wb=c,a.target.dispatchEvent(c),wb=null}else return s=Cb(a),s!==null&&Fc(s),e.blockedOn=a,!1;s.shift()}return!0}function Zc(e,s,a){Xc(e)&&a.delete(s)}function $c(){Jc=!1,Lc!==null&&Xc(Lc)&&(Lc=null),Mc!==null&&Xc(Mc)&&(Mc=null),Nc!==null&&Xc(Nc)&&(Nc=null),Oc.forEac
vendor: 2,754 bytes, line 37
37h(Zc),Pc.forEach(Zc)}function ad(e,s){e.blockedOn===s&&(e.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}function bd(e){function s(g){return ad(g,e)}if(0<Kc.length){ad(Kc[0],e);for(var a=1;a<Kc.length;a++){var c=Kc[a];c.blockedOn===e&&(c.blockedOn=null)}}for(Lc!==null&&ad(Lc,e),Mc!==null&&ad(Mc,e),Nc!==null&&ad(Nc,e),Oc.forEach(s),Pc.forEach(s),a=0;a<Qc.length;a++)c=Qc[a],c.blockedOn===e&&(c.blockedOn=null);for(;0<Qc.length&&(a=Qc[0],a.blockedOn===null);)Vc(a),a.blockedOn===null&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;function ed(e,s,a,c){var g=C$1,et=cd.transition;cd.transition=null;try{C$1=1,fd(e,s,a,c)}finally{C$1=g,cd.transition=et}}function gd(e,s,a,c){var g=C$1,et=cd.transition;cd.transition=null;try{C$1=4,fd(e,s,a,c)}finally{C$1=g,cd.transition=et}}function fd(e,s,a,c){if(dd){var g=Yc(e,s,a,c);if(g===null)hd(e,s,c,id,a),Sc(e,c);else if(Uc(g,e,s,a,c))c.stopPropagation();else if(Sc(e,c),s&4&&-1<Rc.indexOf(e)){for(;g!==null;){var et=Cb(g);if(et!==null&&Ec(et),et=Yc(e,s,a,c),et===null&&hd(e,s,c,id,a),et===g)break;g=et}g!==null&&c.stopPropagation()}else hd(e,s,c,null,a)}}var id=null;function Yc(e,s,a,c){if(id=null,e=xb(c),e=Wc(e),e!==null)if(s=Vb(e),s===null)e=null;else if(a=s.tag,a===13){if(e=Wb(s),e!==null)return e;e=null}else if(a===3){if(s.stateNode.current.memoizedState.isDehydrated)return s.tag===3?s.stateNode.containerInfo:null;e=null}else s!==e&&(e=null);return id=e,null}function jd(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;
vendor: 6,725 bytes, line 37
37function nd(){if(md)return md;var e,s=ld,a=s.length,c,g="value"in kd?kd.value:kd.textContent,et=g.length;for(e=0;e<a&&s[e]===g[e];e++);var rt=a-e;for(c=1;c<=rt&&s[a-c]===g[et-c];c++);return md=g.slice(e,1<c?1-c:void 0)}function od(e){var s=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&s===13&&(e=13)):e=s,e===10&&(e=13),32<=e||e===13?e:0}function pd(){return!0}function qd(){return!1}function rd(e){function s(a,c,g,et,rt){this._reactName=a,this._targetInst=g,this.type=c,this.nativeEvent=et,this.target=rt,this.currentTarget=null;for(var nt in e)e.hasOwnProperty(nt)&&(a=e[nt],this[nt]=a?a(et):et[nt]);return this.isDefaultPrevented=(et.defaultPrevented!=null?et.defaultPrevented:et.returnValue===!1)?pd:qd,this.isPropagationStopped=qd,this}return A(s.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd}),s}var sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==yd&&(yd&&e.type==="mousemove"?(wd=e.screenX-yd.screenX,xd=e.screenY-yd.screenY):xd=wd=0,yd=e),wd)},movementY:function(e){return"movementY"in e?e.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Nd={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Od={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Pd(e){var s=this.nativeEvent;return s.getModifierState?s.getModifierState(e):(e=Od[e])?!!s[e]:!1}function zd(){return Pd}var Qd=A({},ud,{key:function(e){if(e.key){var s=Md[e.key]||e.key;if(s!=="Unidentified")return s}return e.type==="keypress"?(e=od(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Nd[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(e){return e.type==="keypress"?od(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?od(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae$2=ia&&"CompositionEvent"in window,be$2=null;ia&&"documentMode"in document&&(be$2=document.documentMode);var ce$2=ia&&"TextEvent"in window&&!be$2,de$2=ia&&(!ae$2||be$2&&8<be$2&&11>=be$2),ee$1=" ",fe$1=!1;function ge$2(e,s){switch(e){case"keyup":return $d.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he$2(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ie$2=!1;function je$1(e,s){switch(e){case"compositionend":return he$2(s);case"keypress":return s.which!==32?null:(fe$1=!0,ee$1);case"textInput":return e=s.data,e===ee$1&&fe$1?null:e;default:return null}}function ke$1(e,s){if(ie$2)return e==="compositionend"||!ae$2&&ge$2(e,s)?(e=nd(),md=ld=kd=null,ie$2=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1<s.char.length)return s.char;if(s.which)return String.fromCharCode(s.which)}return null;case"compositionend":return de$2&&s.locale!=="ko"?null:s.data;default:return null}}var le$2={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me$1(e){var s=e&&e.nodeName&&e.nodeName.toLowerCase();return s==="input"?!!le$2[e.type]:s==="textarea"}function ne$1(e,s,a,c){Eb(c),s=oe$2(s,"onChange"),0<s.length&&(a=new td("onChange","change",null,a,c),e.push({event:a,listeners:s}))}var pe$2=null,qe$1=null;function re$1(e){se$2(e,0)}function te$1(e){var s=ue$2(e);if(Wa(s))return e}function ve$2(e,s){if(e==="change")return s}var we$2=!1;if(ia){var xe$2;if(ia){var ye$2="oninput"in document;if(!ye$2){var ze$1=document.createElement("div");ze$1.setAttribute("oninput","return;"),ye$2=typeof ze$1.oninput=="function"}xe$2=ye$2}else xe$2=!1;we$2=xe$2&&(!document.documentMode||9<document.documentMode)}function Ae$1(){pe$2&&(pe$2.detachEvent("onpropertychange",Be$1),qe$1=pe$2=null)}function Be$1(e){if(e.propertyName==="value"&&te$1(qe$1)){var s=[];ne$1(s,qe$1,e,xb(e)),Jb(re$1,s)}}function Ce$1(e,s,a){e==="focusin"?(Ae$1(),pe$2=s,qe$1=a,pe$2.attachEvent("onpropertychange",Be$1)):e==="focusout"&&Ae$1()}function De$1(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return te$1(qe$1)}function Ee$1(e,s){if(e==="click")return te$1(s)}function Fe$1(e,s){if(e==="input"||e==="change")return te$1(s)}function Ge$1(e,s){return e===s&&(e!==0||1/e===1/s)||e!==e&&s!==s}var He$1=typeof Object.is=="function"?Object.is:Ge$1;function Ie$1(e,s){if(He$1(e,s))return!0;
vendor: 21,279 bytes, lines 37-38
37if(typeof e!="object"||e===null||typeof s!="object"||s===null)return!1;var a=Object.keys(e),c=Object.keys(s);if(a.length!==c.length)return!1;for(c=0;c<a.length;c++){var g=a[c];if(!ja.call(s,g)||!He$1(e[g],s[g]))return!1}return!0}function Je$1(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ke$1(e,s){var a=Je$1(e);e=0;for(var c;a;){if(a.nodeType===3){if(c=e+a.textContent.length,e<=s&&c>=s)return{node:a,offset:s-e};e=c}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Je$1(a)}}function Le$1(e,s){return e&&s?e===s?!0:e&&e.nodeType===3?!1:s&&s.nodeType===3?Le$1(e,s.parentNode):"contains"in e?e.contains(s):e.compareDocumentPosition?!!(e.compareDocumentPosition(s)&16):!1:!1}function Me$1(){for(var e=window,s=Xa();s instanceof e.HTMLIFrameElement;){try{var a=typeof s.contentWindow.location.href=="string"}catch{a=!1}if(a)e=s.contentWindow;else break;s=Xa(e.document)}return s}function Ne$1(e){var s=e&&e.nodeName&&e.nodeName.toLowerCase();return s&&(s==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||s==="textarea"||e.contentEditable==="true")}function Oe$1(e){var s=Me$1(),a=e.focusedElem,c=e.selectionRange;if(s!==a&&a&&a.ownerDocument&&Le$1(a.ownerDocument.documentElement,a)){if(c!==null&&Ne$1(a)){if(s=c.start,e=c.end,e===void 0&&(e=s),"selectionStart"in a)a.selectionStart=s,a.selectionEnd=Math.min(e,a.value.length);else if(e=(s=a.ownerDocument||document)&&s.defaultView||window,e.getSelection){e=e.getSelection();var g=a.textContent.length,et=Math.min(c.start,g);c=c.end===void 0?et:Math.min(c.end,g),!e.extend&&et>c&&(g=c,c=et,et=g),g=Ke$1(a,et);var rt=Ke$1(a,c);g&&rt&&(e.rangeCount!==1||e.anchorNode!==g.node||e.anchorOffset!==g.offset||e.focusNode!==rt.node||e.focusOffset!==rt.offset)&&(s=s.createRange(),s.setStart(g.node,g.offset),e.removeAllRanges(),et>c?(e.addRange(s),e.extend(rt.node,rt.offset)):(s.setEnd(rt.node,rt.offset),e.addRange(s)))}}for(s=[],e=a;e=e.parentNode;)e.nodeType===1&&s.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<s.length;a++)e=s[a],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Pe$1=ia&&"documentMode"in document&&11>=document.documentMode,Qe$1=null,Re$1=null,Se$1=null,Te$2=!1;function Ue$1(e,s,a){var c=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Te$2||Qe$1==null||Qe$1!==Xa(c)||(c=Qe$1,"selectionStart"in c&&Ne$1(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset}),Se$1&&Ie$1(Se$1,c)||(Se$1=c,c=oe$2(Re$1,"onSelect"),0<c.length&&(s=new td("onSelect","select",null,s,a),e.push({event:s,listeners:c}),s.target=Qe$1)))}function Ve(e,s){var a={};return a[e.toLowerCase()]=s.toLowerCase(),a["Webkit"+e]="webkit"+s,a["Moz"+e]="moz"+s,a}var We$1={animationend:Ve("Animation","AnimationEnd"),animationiteration:Ve("Animation","AnimationIteration"),animationstart:Ve("Animation","AnimationStart"),transitionend:Ve("Transition","TransitionEnd")},Xe$1={},Ye={};ia&&(Ye=document.createElement("div").style,"AnimationEvent"in window||(delete We$1.animationend.animation,delete We$1.animationiteration.animation,delete We$1.animationstart.animation),"TransitionEvent"in window||delete We$1.transitionend.transition);function Ze$1(e){if(Xe$1[e])return Xe$1[e];if(!We$1[e])return e;var s=We$1[e],a;for(a in s)if(s.hasOwnProperty(a)&&a in Ye)return Xe$1[e]=s[a];return e}var $e$2=Ze$1("animationend"),af=Ze$1("animationiteration"),bf=Ze$1("animationstart"),cf=Ze$1("transitionend"),df=new Map,ef="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ff(e,s){df.set(e,s),fa(s,[e])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,"on"+kf)}ff($e$2,"onAnimationEnd");ff(af,"onAnimationIteration");ff(bf,"onAnimationStart");ff("dblclick","onDoubleClick");ff("focusin","onFocus");ff("focusout","onBlur");ff(cf,"onTransitionEnd");ha("onMouseEnter",["mouseout","mouseover"]);ha("onMouseLeave",["mouseout","mouseover"]);ha("onPointerEnter",["pointerout","pointerover"]);ha("onPointerLeave",["pointerout","pointerover"]);fa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));fa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));fa("onBeforeInput",["compositionend","keypress","textInput","paste"]);fa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));fa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));fa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var lf="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),mf=new Set("cancel close invalid load scroll toggle".split(" ").concat(lf));function nf(e,s,a){var c=e.type||"unknown-event";e.currentTarget=a,Ub(c,s,void 0,e),e.currentTarget=null}function se$2(e,s){s=(s&4)!==0;for(var a=0;a<e.length;a++){var c=e[a],g=c.event;c=c.listeners;e:{var et=void 0;if(s)for(var rt=c.length-1;0<=rt;rt--){var nt=c[rt],st=nt.instance,at=nt.currentTarget;if(nt=nt.listener,st!==et&&g.isPropagationStopped())break e;nf(g,nt,at),et=st}else for(rt=0;rt<c.length;rt++){if(nt=c[rt],st=nt.instance,at=nt.currentTarget,nt=nt.listener,st!==et&&g.isPropagationStopped())break e;nf(g,nt,at),et=st}}}if(Qb)throw e=Rb,Qb=!1,Rb=null,e}function D$2(e,s){var a=s[of];a===void 0&&(a=s[of]=new Set);var c=e+"__bubble";a.has(c)||(pf(s,e,2,!1),a.add(c))}function qf(e,s,a){var c=0;s&&(c|=4),pf(a,e,c,s)}var rf="_reactListening"+Math.random().toString(36).slice(2);function sf(e){if(!e[rf]){e[rf]=!0,da.forEach(function(a){a!=="selectionchange"&&(mf.has(a)||qf(a,!1,e),qf(a,!0,e))});var s=e.nodeType===9?e:e.ownerDocument;s===null||s[rf]||(s[rf]=!0,qf("selectionchange",!1,s))}}function pf(e,s,a,c){switch(jd(s)){case 1:var g=ed;break;case 4:g=gd;break;default:g=fd}a=g.bind(null,s,a,e),g=void 0,!Lb||s!=="touchstart"&&s!=="touchmove"&&s!=="wheel"||(g=!0),c?g!==void 0?e.addEventListener(s,a,{capture:!0,passive:g}):e.addEventListener(s,a,!0):g!==void 0?e.addEventListener(s,a,{passive:g}):e.addEventListener(s,a,!1)}function hd(e,s,a,c,g){var et=c;if(!(s&1)&&!(s&2)&&c!==null)e:for(;;){if(c===null)return;var rt=c.tag;if(rt===3||rt===4){var nt=c.stateNode.containerInfo;if(nt===g||nt.nodeType===8&&nt.parentNode===g)break;if(rt===4)for(rt=c.return;rt!==null;){var st=rt.tag;if((st===3||st===4)&&(st=rt.stateNode.containerInfo,st===g||st.nodeType===8&&st.parentNode===g))return;rt=rt.return}for(;nt!==null;){if(rt=Wc(nt),rt===null)return;if(st=rt.tag,st===5||st===6){c=et=rt;continue e}nt=nt.parentNode}}c=c.return}Jb(function(){var at=et,it=xb(a),ot=[];e:{var lt=df.get(e);if(lt!==void 0){var ct=td,dt=e;switch(e){case"keypress":if(od(a)===0)break e;case"keydown":case"keyup":ct=Rd;break;case"focusin":dt="focus",ct=Fd;break;case"focusout":dt="blur",ct=Fd;break;case"beforeblur":case"afterblur":ct=Fd;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ct=Bd;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ct=Dd;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ct=Vd;break;case $e$2:case af:case bf:ct=Hd;break;case cf:ct=Xd;break;case"scroll":ct=vd;break;case"wheel":ct=Zd;break;case"copy":case"cut":case"paste":ct=Jd;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ct=Td}var ut=(s&4)!==0,xt=!ut&&e==="scroll",gt=ut?lt!==null?lt+"Capture":null:lt;ut=[];for(var ht=at,mt;ht!==null;){mt=ht;var kt=mt.stateNode;if(mt.tag===5&&kt!==null&&(mt=kt,gt!==null&&(kt=Kb(ht,gt),kt!=null&&ut.push(tf(ht,kt,mt)))),xt)break;ht=ht.return}0<ut.length&&(lt=new ct(lt,dt,null,a,it),ot.push({event:lt,listeners:ut}))}}if(!(s&7)){e:{if(lt=e==="mouseover"||e==="pointerover",ct=e==="mouseout"||e==="pointerout",lt&&a!==wb&&(dt=a.relatedTarget||a.fromElement)&&(Wc(dt)||dt[uf]))break e;if((ct||lt)&&(lt=it.window===it?it:(lt=it.ownerDocument)?lt.defaultView||lt.parentWindow:window,ct?(dt=a.relatedTarget||a.toElement,ct=at,dt=dt?Wc(dt):null,dt!==null&&(xt=Vb(dt),dt!==xt||dt.tag!==5&&dt.tag!==6)&&(dt=null)):(ct=null,dt=at),ct!==dt)){if(ut=Bd,kt="onMouseLeave",gt="onMouseEnter",ht="mouse",(e==="pointerout"||e==="pointerover")&&(ut=Td,kt="onPointerLeave",gt="onPointerEnter",ht="pointer"),xt=ct==null?lt:ue$2(ct),mt=dt==null?lt:ue$2(dt),lt=new ut(kt,ht+"leave",ct,a,it),lt.target=xt,lt.relatedTarget=mt,kt=null,Wc(it)===at&&(ut=new ut(gt,ht+"enter",dt,a,it),ut.target=mt,ut.relatedTarget=xt,kt=ut),xt=kt,ct&&dt)t:{for(ut=ct,gt=dt,ht=0,mt=ut;mt;mt=vf(mt))ht++;for(mt=0,kt=gt;kt;kt=vf(kt))mt++;for(;0<ht-mt;)ut=vf(ut),ht--;for(;0<mt-ht;)gt=vf(gt),mt--;for(;ht--;){if(ut===gt||gt!==null&&ut===gt.alternate)break t;ut=vf(ut),gt=vf(gt)}ut=null}else ut=null;ct!==null&&wf(ot,lt,ct,ut,!1),dt!==null&&xt!==null&&wf(ot,xt,dt,ut,!0)}}e:{if(lt=at?ue$2(at):window,ct=lt.nodeName&<.nodeName.toLowerCase(),ct==="select"||ct==="input"&<.type==="file")var Ct=ve$2;else if(me$1(lt))if(we$2)Ct=Fe$1;else{Ct=De$1;var Tt=Ce$1}else(ct=lt.nodeName)&&ct.toLowerCase()==="input"&&(lt.type==="checkbox"||lt.type==="radio")&&(Ct=Ee$1);if(Ct&&(Ct=Ct(e,at))){ne$1(ot,Ct,a,it);break e}Tt&&Tt(e,lt,at),e==="focusout"&&(Tt=lt._wrapperState)&&Tt.controlled&<.type==="number"&&cb(lt,"number",lt.value)}switch(Tt=at?ue$2(at):window,e){case"focusin":(me$1(Tt)||Tt.contentEditable==="true")&&(Qe$1=Tt,Re$1=at,Se$1=null);break;case"focusout":Se$1=Re$1=Qe$1=null;break;case"mousedown":Te$2=!0;break;case"contextmenu":case"mouseup":case"dragend":Te$2=!1,Ue$1(ot,a,it);break;case"selectionchange":if(Pe$1)break;case"keydown":case"keyup":Ue$1(ot,a,it)}var Pt;if(ae$2)e:{switch(e){case"compositionstart":var At="onCompositionStart";break e;case"compositionend":At="onCompositionEnd";break e;case"compositionupdate":At="onCompositionUpdate";break e}At=void 0}else ie$2?ge$2(e,a)&&(At="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(At="onCompositionStart");At&&(de$2&&a.locale!=="ko"&&(ie$2||At!=="onCompositionStart"?At==="onCompositionEnd"&&ie$2&&(Pt=nd()):(kd=it,ld="value"in kd?kd.value:kd.textContent,ie$2=!0)),Tt=oe$2(at,At),0<Tt.length&&(At=new Ld(At,e,null,a,it),ot.push({event:At,listeners:Tt}),Pt?At.data=Pt:(Pt=he$2(a),Pt!==null&&(At.data=Pt)))),(Pt=ce$2?je$1(e,a):ke$1(e,a))&&(at=oe$2(at,"onBeforeInput"),0<at.length&&(it=new Ld("onBeforeInput","beforeinput",null,a,it),ot.push({event:it,listeners:at}),it.data=Pt))}se$2(ot,s)})}function tf(e,s,a){return{instance:e,listener:s,currentTarget:a}}function oe$2(e,s){for(var a=s+"Capture",c=[];e!==null;){var g=e,et=g.stateNode;g.tag===5&&et!==null&&(g=et,et=Kb(e,a),et!=null&&c.unshift(tf(e,et,g)),et=Kb(e,s),et!=null&&c.push(tf(e,et,g))),e=e.return}return c}function vf(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function wf(e,s,a,c,g){for(var et=s._reactName,rt=[];a!==null&&a!==c;){var nt=a,st=nt.alternate,at=nt.stateNode;if(st!==null&&st===c)break;nt.tag===5&&at!==null&&(nt=at,g?(st=Kb(a,et),st!=null&&rt.unshift(tf(a,st,nt))):g||(st=Kb(a,et),st!=null&&rt.push(tf(a,st,nt)))),a=a.return}rt.length!==0&&e.push({event:s,listeners:rt})}var xf=/\r\n?/g,yf=/\u0000|\uFFFD/g;function zf(e){return(typeof e=="string"?e:""+e).replace(xf,` 38`).replace(yf,"")}function Af(e,s,a){if(s=zf(s),zf(e)!==s&&a)throw Error(p(425))}function Bf(){}var Cf=null,Df=null;function Ef(e,s){return e==="textarea"||e==="noscript"||typeof s.children=="string"||typeof s.children=="number"||typeof s.dangerouslySetInnerHTML=="object"&&s.dangerouslySetInnerHTML!==null&&s.dangerouslySetInnerHTML.__html!=null}var Ff=typeof setTimeout=="function"?setTimeout:void 0,Gf=typeof clearTimeout=="function"?clearTimeout:void 0,Hf=typeof Promise=="function"?Promise:void 0,Jf=typeof queueMicrotask=="function"?queueMicrotask:typeof Hf<"u"?function(e){return Hf.resolve(null).then(e).catch(If)}:Ff;function If(e){setTimeout(function(){throw e})}function Kf(e,s){var a=s,c=0;do{var g=a.nextSibling;if(e.removeChild(a),g&&g.nodeType===8)if(a=g.data,a==="/$"){if(c===0){e.removeChild(g),bd(s);return}c--}else a!=="$"&&a!=="$?"&&a!=="$!"||c++;a=g}while(a);bd(s)}function Lf(e){for(;e!=null;e=e.nextSibling){var s=e.nodeType;if(s===1||s===3)break;if(s===8){if(s=e.data,s==="$"||s==="$!"||s==="$?")break;if(s==="/$")return null}}return e}function Mf(e){e=e.previousSibling;for(var s=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"){if(s===0)return e;s--}else a==="/$"&&s++}e=e.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of="__reactFiber$"+Nf,Pf="__reactProps$"+Nf,uf="__reactContainer$"+Nf,of="__reactEvents$"+Nf,Qf="__reactListeners$"+Nf,Rf="__reactHandles$"+Nf;function Wc(e){var s=e[Of];if(s)return s;for(var a=e.parentNode;a;){if(s=a[uf]||a[Of]){if(a=s.alternate,s.child!==null||a!==null&&a.child!==null)for(e=Mf(e);e!==null;){if(a=e[Of])return a;e=Mf(e)}return s}e=a,a=e.parentNode}return null}function Cb(e){return e=e[Of]||e[uf],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function ue$2(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(p(33))}function Db(e){return e[Pf]||null}var Sf=[],Tf=-1;function Uf(e){return{current:e}}function E$2(e){0>Tf||(e.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$1(e,s){Tf++,Sf[Tf]=e.current,e.current=s}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(e,s){var a=e.type.contextTypes;if(!a)return Vf;var c=e.stateNode;if(c&&c.__reactInternalMemoizedUnmaskedChildContext===s)return c.__reactInternalMemoizedMaskedChildContext;var g={},et;for(et in a)g[et]=s[et];return c&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=s,e.__reactInternalMemoizedMaskedChildContext=g),g}function Zf(e){return e=e.childContextTypes,e!=null}function $f(){E$2(Wf),E$2(H)}function ag(e,s,a){if(H.current!==Vf)throw Error(p(168));G$1(H,s),G$1(Wf,a)}function bg(e,s,a){var c=e.stateNode;if(s=s.childContextTypes,typeof c.getChildContext!="function")return a;c=c.getChildContext();for(var g in c)if(!(g in s))throw Error(p(108,Ra(e)||"Unknown",g));return A({},a,c)}function cg(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Vf,Xf=H.current,G$1(H,e),G$1(Wf,Wf.current),!0}function dg(e,s,a){var c=e.stateNode;if(!c)throw Error(p(169));a?(e=bg(e,s,Xf),c.__reactInternalMemoizedMergedChildContext=e,E$2(Wf),E$2(H),G$1(H,e)):E$2(Wf),G$1(Wf,a)}var eg=null,fg=!1,gg=!1;function hg(e){eg===null?eg=[e]:eg.push(e)}function ig(e){fg=!0,hg(e)}function jg(){if(!gg&&eg!==null){gg=!0;var e=0,s=C$1;try{var a=eg;for(C$1=1;e<a.length;e++){var c=a[e];do c=c(!0);while(c!==null)}eg=null,fg=!1}catch(g){throw eg!==null&&(eg=eg.slice(e+1)),ac(fc,jg),g}finally{C$1=s,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg="";function tg(e,s){kg[lg++]=ng,kg[lg++]=mg,mg=e,ng=s}function ug(e,s,a){og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,qg=e;var c=rg;e=sg;var g=32-oc(c)-1;c&=~(1<<g),a+=1;var et=32-oc(s)+g;if(30<et){var rt=g-g%5;et=(c&(1<<rt)-1).toString(32),c>>=rt,g-=rt,rg=1<<32-oc(s)+g|a<<g|c,sg=et+e}else rg=1<<et|a<<g|c,sg=e}function vg(e){e.return!==null&&(tg(e,1),ug(e,1,0))}function wg(e){for(;e===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;e===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I$1=!1,zg=null;function Ag(e,s){var a=Bg(5,null,null,0);a.elementType="DELETED",a.stateNode=s,a.return=e,s=e.deletions,s===null?(e.deletions=[a],e.flags|=16):s.push(a)}function Cg(e,s){switch(e.tag){case 5:var a=e.type;return s=s.nodeType!==1||a.toLowerCase()!==s.nodeName.toLowerCase()?null:s,s!==null?(e.stateNode=s,xg=e,yg=Lf(s.firstChild),!0):!1;case 6:return s=e.pendingProps===""||s.nodeType!==3?null:s,s!==null?(e.stateNode=s,xg=e,yg=null,!0):!1;case 13:return s=s.nodeType!==8?null:s,s!==null?(a=qg!==null?{id:rg,overflow:sg}:null,e.memoizedState={dehydrated:s,treeContext:a,retryLane:1073741824},a=Bg(18,null,null,0),a.stateNode=s,a.return=e,e.child=a,xg=e,yg=null,!0):!1;default:return!1}}function Dg(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Eg(e){if(I$1){var s=yg;if(s){var a=s;if(!Cg(e,s)){if(Dg(e))throw Error(p(418));s=Lf(a.nextSibling);var c=xg;s&&Cg(e,s)?Ag(c,a):(e.flags=e.flags&-4097|2,I$1=!1,xg=e)}}else{if(Dg(e))throw Error(p(418));e.flags=e.flags&-4097|2,I$1=!1,xg=e}}}function Fg(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;xg=e}function Gg(e){if(e!==xg)return!1;if(!I$1)return Fg(e),I$1=!0,!1;var s;if((s=e.tag!==3)&&!(s=e.tag!==5)&&(s=e.type,s=s!=="head"&&s!=="body"&&!Ef(e.type,e.memoizedProps)),s&&(s=yg)){if(Dg(e))throw Hg(),Error(p(418));for(;s;)Ag(e,s),s=Lf(s.nextSibling)}if(Fg(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(p(317));e:{for(e=e.nextSibling,s=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(s===0){yg=Lf(e.nextSibling);break e}s--}else a!=="$"&&a!=="$!"&&a!=="$?"||s++}e=e.nextSibling}yg=null}}else yg=xg?Lf(e.stateNode.nextSibling):null;return!0}function Hg(){for(var e=yg;e;)e=Lf(e.nextSibling)}function Ig(){yg=xg=null,I$1=!1}function Jg(e){zg===null?zg=[e]:zg.push(e)}var Kg=ua.ReactCurrentBatchConfig;function Lg(e,s,a){if(e=a.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(p(309));var c=a.stateNode}if(!c)throw Error(p(147,e));var g=c,et=""+e;return s!==null&&s.ref!==null&&typeof s.ref=="function"&&s.ref._stringRef===et?s.ref:(s=function(rt){var nt=g.refs;rt===null?delete nt[et]:nt[et]=rt},s._stringRef=et,s)}if(typeof e!="string")throw Error(p(284));if(!a._owner)throw Error(p(290,e))}return e}function Mg(e,s){throw e=Object.prototype.toString.call(s),Error(p(31,e==="[object Object]"?"object with keys {"+Object.keys(s).join(", ")+"}":e))}function Ng(e){var s=e._init;return s(e._payload)}function Og(e){function s(gt,ht){if(e){var mt=gt.deletions;mt===null?(gt.deletions=[ht],gt.flags|=16):mt.push(ht)}}function a(gt,ht){if(!e)return null;for(;ht!==null;)s(gt,ht),ht=ht.sibling;return null}function c(gt,ht){for(gt=new Map;ht!==null;)ht.key!==null?gt.set(ht.key,ht):gt.set(ht.index,ht),ht=ht.sibling;return gt}function g(gt,ht){return gt=Pg(gt,ht),gt.index=0,gt.sibling=null,gt}function et(gt,ht,mt){return gt.index=mt,e?(mt=gt.alternate,mt!==null?(mt=mt.index,mt<ht?(gt.flags|=2,ht):mt):(gt.flags|=2,ht)):(gt.flags|=1048576,ht)}function rt(gt){return e&>.alternate===null&&(gt.flags|=2),gt}function nt(gt,ht,mt,kt){return ht===null||ht.tag!==6?(ht=Qg(mt,gt.mode,kt),ht.return=gt,ht):(ht=g(ht,mt),ht.return=gt,ht)}function st(gt,ht,mt,kt){var Ct=mt.type;return Ct===ya?it(gt,ht,mt.props.children,kt,mt.key):ht!==null&&(ht.elementType===Ct||typeof Ct=="object"&&Ct!==null&&Ct.$$typeof===Ha&&Ng(Ct)===ht.type)?(kt=g(ht,mt.props),kt.ref=Lg(gt,ht,mt),kt.return=gt,kt):(kt=Rg(mt.type,mt.key,mt.props,null,gt.mode,kt),kt.ref=Lg(gt,ht,mt),kt.return=gt,kt)}function at(gt,ht,mt,kt){return ht===null||ht.tag!==4||ht.stateNode.containerInfo!==mt.containerInfo||ht.stateNode.implementation!==mt.implementation?(ht=Sg(mt,gt.mode,kt),ht.return=gt,ht):(ht=g(ht,mt.children||[]),ht.return=gt,ht)}function it(gt,ht,mt,kt,Ct){return ht===null||ht.tag!==7?(ht=Tg(mt,gt.mode,kt,Ct),ht.return=gt,ht):(ht=g(ht,mt),ht.return=gt,ht)}function ot(gt,ht,mt){if(typeof ht=="string"&&ht!==""||typeof ht=="number")return ht=Qg(""+ht,gt.mode,mt),ht.return=gt,ht;if(typeof ht=="object"&&ht!==null){switch(ht.$$typeof){case va:return mt=Rg(ht.type,ht.key,ht.props,null,gt.mode,mt),mt.ref=Lg(gt,null,ht),mt.return=gt,mt;case wa:return ht=Sg(ht,gt.mode,mt),ht.return=gt,ht;case Ha:var kt=ht._init;return ot(gt,kt(ht._payload),mt)}if(eb(ht)||Ka(ht))return ht=Tg(ht,gt.mode,mt,null),ht.return=gt,ht;Mg(gt,ht)}return null}function lt(gt,ht,mt,kt){var Ct=ht!==null?ht.key:null;if(typeof mt=="string"&&mt!==""||typeof mt=="number")return Ct!==null?null:nt(gt,ht,""+mt,kt);if(typeof mt=="object"&&mt!==null){switch(mt.$$typeof){case va:return mt.key===Ct?st(gt,ht,mt,kt):null;case wa:return mt.key===Ct?at(gt,ht,mt,kt):null;case Ha:return Ct=mt._init,lt(gt,ht,Ct(mt._payload),kt)}if(eb(mt)||Ka(mt))return Ct!==null?null:it(gt,ht,mt,kt,null);Mg(gt,mt)}return null}function ct(gt,ht,mt,kt,Ct){if(typeof kt=="string"&&kt!==""||typeof kt=="number")return gt=gt.get(mt)||null,
vendor: 1,359 bytes, line 38
38nt(ht,gt,""+kt,Ct);if(typeof kt=="object"&&kt!==null){switch(kt.$$typeof){case va:return gt=gt.get(kt.key===null?mt:kt.key)||null,st(ht,gt,kt,Ct);case wa:return gt=gt.get(kt.key===null?mt:kt.key)||null,at(ht,gt,kt,Ct);case Ha:var Tt=kt._init;return ct(gt,ht,mt,Tt(kt._payload),Ct)}if(eb(kt)||Ka(kt))return gt=gt.get(mt)||null,it(ht,gt,kt,Ct,null);Mg(ht,kt)}return null}function dt(gt,ht,mt,kt){for(var Ct=null,Tt=null,Pt=ht,At=ht=0,Gt=null;Pt!==null&&At<mt.length;At++){Pt.index>At?(Gt=Pt,Pt=null):Gt=Pt.sibling;var Mt=lt(gt,Pt,mt[At],kt);if(Mt===null){Pt===null&&(Pt=Gt);break}e&&Pt&&Mt.alternate===null&&s(gt,Pt),ht=et(Mt,ht,At),Tt===null?Ct=Mt:Tt.sibling=Mt,Tt=Mt,Pt=Gt}if(At===mt.length)return a(gt,Pt),I$1&&tg(gt,At),Ct;if(Pt===null){for(;At<mt.length;At++)Pt=ot(gt,mt[At],kt),Pt!==null&&(ht=et(Pt,ht,At),Tt===null?Ct=Pt:Tt.sibling=Pt,Tt=Pt);return I$1&&tg(gt,At),Ct}for(Pt=c(gt,Pt);At<mt.length;At++)Gt=ct(Pt,gt,At,mt[At],kt),Gt!==null&&(e&&Gt.alternate!==null&&Pt.delete(Gt.key===null?At:Gt.key),ht=et(Gt,ht,At),Tt===null?Ct=Gt:Tt.sibling=Gt,Tt=Gt);return e&&Pt.forEach(function(zt){return s(gt,zt)}),I$1&&tg(gt,At),Ct}function ut(gt,ht,mt,kt){var Ct=Ka(mt);if(typeof Ct!="function")throw Error(p(150));if(mt=Ct.call(mt),mt==null)throw Error(p(151));for(var Tt=Ct=null,Pt=ht,At=ht=0,Gt=null,Mt=mt.next();Pt!==null&&!Mt.done;At++,Mt=mt.next()){Pt.index>
vendor: 7,393 bytes, line 38
38At?(Gt=Pt,Pt=null):Gt=Pt.sibling;var zt=lt(gt,Pt,Mt.value,kt);if(zt===null){Pt===null&&(Pt=Gt);break}e&&Pt&&zt.alternate===null&&s(gt,Pt),ht=et(zt,ht,At),Tt===null?Ct=zt:Tt.sibling=zt,Tt=zt,Pt=Gt}if(Mt.done)return a(gt,Pt),I$1&&tg(gt,At),Ct;if(Pt===null){for(;!Mt.done;At++,Mt=mt.next())Mt=ot(gt,Mt.value,kt),Mt!==null&&(ht=et(Mt,ht,At),Tt===null?Ct=Mt:Tt.sibling=Mt,Tt=Mt);return I$1&&tg(gt,At),Ct}for(Pt=c(gt,Pt);!Mt.done;At++,Mt=mt.next())Mt=ct(Pt,gt,At,Mt.value,kt),Mt!==null&&(e&&Mt.alternate!==null&&Pt.delete(Mt.key===null?At:Mt.key),ht=et(Mt,ht,At),Tt===null?Ct=Mt:Tt.sibling=Mt,Tt=Mt);return e&&Pt.forEach(function(Jt){return s(gt,Jt)}),I$1&&tg(gt,At),Ct}function xt(gt,ht,mt,kt){if(typeof mt=="object"&&mt!==null&&mt.type===ya&&mt.key===null&&(mt=mt.props.children),typeof mt=="object"&&mt!==null){switch(mt.$$typeof){case va:e:{for(var Ct=mt.key,Tt=ht;Tt!==null;){if(Tt.key===Ct){if(Ct=mt.type,Ct===ya){if(Tt.tag===7){a(gt,Tt.sibling),ht=g(Tt,mt.props.children),ht.return=gt,gt=ht;break e}}else if(Tt.elementType===Ct||typeof Ct=="object"&&Ct!==null&&Ct.$$typeof===Ha&&Ng(Ct)===Tt.type){a(gt,Tt.sibling),ht=g(Tt,mt.props),ht.ref=Lg(gt,Tt,mt),ht.return=gt,gt=ht;break e}a(gt,Tt);break}else s(gt,Tt);Tt=Tt.sibling}mt.type===ya?(ht=Tg(mt.props.children,gt.mode,kt,mt.key),ht.return=gt,gt=ht):(kt=Rg(mt.type,mt.key,mt.props,null,gt.mode,kt),kt.ref=Lg(gt,ht,mt),kt.return=gt,gt=kt)}return rt(gt);case wa:e:{for(Tt=mt.key;ht!==null;){if(ht.key===Tt)if(ht.tag===4&&ht.stateNode.containerInfo===mt.containerInfo&&ht.stateNode.implementation===mt.implementation){a(gt,ht.sibling),ht=g(ht,mt.children||[]),ht.return=gt,gt=ht;break e}else{a(gt,ht);break}else s(gt,ht);ht=ht.sibling}ht=Sg(mt,gt.mode,kt),ht.return=gt,gt=ht}return rt(gt);case Ha:return Tt=mt._init,xt(gt,ht,Tt(mt._payload),kt)}if(eb(mt))return dt(gt,ht,mt,kt);if(Ka(mt))return ut(gt,ht,mt,kt);Mg(gt,mt)}return typeof mt=="string"&&mt!==""||typeof mt=="number"?(mt=""+mt,ht!==null&&ht.tag===6?(a(gt,ht.sibling),ht=g(ht,mt),ht.return=gt,gt=ht):(a(gt,ht),ht=Qg(mt,gt.mode,kt),ht.return=gt,gt=ht),rt(gt)):a(gt,ht)}return xt}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(e){var s=Wg.current;E$2(Wg),e._currentValue=s}function bh(e,s,a){for(;e!==null;){var c=e.alternate;if((e.childLanes&s)!==s?(e.childLanes|=s,c!==null&&(c.childLanes|=s)):c!==null&&(c.childLanes&s)!==s&&(c.childLanes|=s),e===a)break;e=e.return}}function ch(e,s){Xg=e,Zg=Yg=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&s&&(dh=!0),e.firstContext=null)}function eh(e){var s=e._currentValue;if(Zg!==e)if(e={context:e,memoizedValue:s,next:null},Yg===null){if(Xg===null)throw Error(p(308));Yg=e,Xg.dependencies={lanes:0,firstContext:e}}else Yg=Yg.next=e;return s}var fh=null;function gh(e){fh===null?fh=[e]:fh.push(e)}function hh(e,s,a,c){var g=s.interleaved;return g===null?(a.next=a,gh(s)):(a.next=g.next,g.next=a),s.interleaved=a,ih(e,c)}function ih(e,s){e.lanes|=s;var a=e.alternate;for(a!==null&&(a.lanes|=s),a=e,e=e.return;e!==null;)e.childLanes|=s,a=e.alternate,a!==null&&(a.childLanes|=s),a=e,e=e.return;return a.tag===3?a.stateNode:null}var jh=!1;function kh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lh(e,s){e=e.updateQueue,s.updateQueue===e&&(s.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function mh(e,s){return{eventTime:e,lane:s,tag:0,payload:null,callback:null,next:null}}function nh(e,s,a){var c=e.updateQueue;if(c===null)return null;if(c=c.shared,K$1&2){var g=c.pending;return g===null?s.next=s:(s.next=g.next,g.next=s),c.pending=s,ih(e,a)}return g=c.interleaved,g===null?(s.next=s,gh(c)):(s.next=g.next,g.next=s),c.interleaved=s,ih(e,a)}function oh(e,s,a){if(s=s.updateQueue,s!==null&&(s=s.shared,(a&4194240)!==0)){var c=s.lanes;c&=e.pendingLanes,a|=c,s.lanes=a,Cc(e,a)}}function ph(e,s){var a=e.updateQueue,c=e.alternate;if(c!==null&&(c=c.updateQueue,a===c)){var g=null,et=null;if(a=a.firstBaseUpdate,a!==null){do{var rt={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};et===null?g=et=rt:et=et.next=rt,a=a.next}while(a!==null);et===null?g=et=s:et=et.next=s}else g=et=s;a={baseState:c.baseState,firstBaseUpdate:g,lastBaseUpdate:et,shared:c.shared,effects:c.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=s:e.next=s,a.lastBaseUpdate=s}function qh(e,s,a,c){var g=e.updateQueue;jh=!1;var et=g.firstBaseUpdate,rt=g.lastBaseUpdate,nt=g.shared.pending;if(nt!==null){g.shared.pending=null;var st=nt,at=st.next;st.next=null,rt===null?et=at:rt.next=at,rt=st;var it=e.alternate;it!==null&&(it=it.updateQueue,nt=it.lastBaseUpdate,nt!==rt&&(nt===null?it.firstBaseUpdate=at:nt.next=at,it.lastBaseUpdate=st))}if(et!==null){var ot=g.baseState;rt=0,it=at=st=null,nt=et;do{var lt=nt.lane,ct=nt.eventTime;if((c<)===lt){it!==null&&(it=it.next={eventTime:ct,lane:0,tag:nt.tag,payload:nt.payload,callback:nt.callback,next:null});e:{var dt=e,ut=nt;switch(lt=s,ct=a,ut.tag){case 1:if(dt=ut.payload,typeof dt=="function"){ot=dt.call(ct,ot,lt);break e}ot=dt;break e;case 3:dt.flags=dt.flags&-65537|128;case 0:if(dt=ut.payload,lt=typeof dt=="function"?dt.call(ct,ot,lt):dt,lt==null)break e;ot=A({},ot,lt);break e;case 2:jh=!0}}nt.callback!==null&&nt.lane!==0&&(e.flags|=64,lt=g.effects,lt===null?g.effects=[nt]:lt.push(nt))}else ct={eventTime:ct,lane:lt,tag:nt.tag,payload:nt.payload,callback:nt.callback,next:null},it===null?(at=it=ct,st=ot):it=it.next=ct,rt|=lt;if(nt=nt.next,nt===null){if(nt=g.shared.pending,nt===null)break;lt=nt,nt=lt.next,lt.next=null,g.lastBaseUpdate=lt,g.shared.pending=null}}while(!0);if(it===null&&(st=ot),g.baseState=st,g.firstBaseUpdate=at,g.lastBaseUpdate=it,s=g.shared.interleaved,s!==null){g=s;do rt|=g.lane,g=g.next;while(g!==s)}else et===null&&(g.shared.lanes=0);rh|=rt,e.lanes=rt,e.memoizedState=ot}}function sh(e,s,a){if(e=s.effects,s.effects=null,e!==null)for(s=0;s<e.length;s++){var c=e[s],g=c.callback;if(g!==null){if(c.callback=null,c=a,typeof g!="function")throw Error(p(191,g));g.call(c)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(e){if(e===th)throw Error(p(174));return e}function yh(e,s){switch(G$1(wh,s),G$1(vh,e),G$1(uh,th),e=s.nodeType,e){case 9:case 11:s=(s=s.documentElement)?s.namespaceURI:lb(null,"");break;default:e=e===8?s.parentNode:s,s=e.namespaceURI||null,e=e.tagName,s=lb(s,e)}E$2(uh),G$1(uh,s)}function zh(){E$2(uh),E$2(vh),E$2(wh)}function Ah(e){xh(wh.current);var s=xh(uh.current),a=lb(s,e.type);s!==a&&(G$1(vh,e),G$1(uh,a))}function Bh(e){vh.current===e&&(E$2(uh),E$2(vh))}var L$2=Uf(0);function Ch(e){for(var s=e;s!==null;){if(s.tag===13){var a=s.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return s}else if(s.tag===19&&s.memoizedProps.revealOrder!==void 0){if(s.flags&128)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===e)break;for(;s.sibling===null;){if(s.return===null||s.return===e)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}var Dh=[];function Eh(){for(var e=0;e<Dh.length;e++)Dh[e]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M$2=null,N$1=null,O$1=null,Ih=!1,Jh=!1,Kh=0,Lh=0;
vendor: 5,311 bytes, line 38
38function P$2(){throw Error(p(321))}function Mh(e,s){if(s===null)return!1;for(var a=0;a<s.length&&a<e.length;a++)if(!He$1(e[a],s[a]))return!1;return!0}function Nh(e,s,a,c,g,et){if(Hh=et,M$2=s,s.memoizedState=null,s.updateQueue=null,s.lanes=0,Fh.current=e===null||e.memoizedState===null?Oh:Ph,e=a(c,g),Jh){et=0;do{if(Jh=!1,Kh=0,25<=et)throw Error(p(301));et+=1,O$1=N$1=null,s.updateQueue=null,Fh.current=Qh,e=a(c,g)}while(Jh)}if(Fh.current=Rh,s=N$1!==null&&N$1.next!==null,Hh=0,O$1=N$1=M$2=null,Ih=!1,s)throw Error(p(300));return e}function Sh(){var e=Kh!==0;return Kh=0,e}function Th(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return O$1===null?M$2.memoizedState=O$1=e:O$1=O$1.next=e,O$1}function Uh(){if(N$1===null){var e=M$2.alternate;e=e!==null?e.memoizedState:null}else e=N$1.next;var s=O$1===null?M$2.memoizedState:O$1.next;if(s!==null)O$1=s,N$1=e;else{if(e===null)throw Error(p(310));N$1=e,e={memoizedState:N$1.memoizedState,baseState:N$1.baseState,baseQueue:N$1.baseQueue,queue:N$1.queue,next:null},O$1===null?M$2.memoizedState=O$1=e:O$1=O$1.next=e}return O$1}function Vh(e,s){return typeof s=="function"?s(e):s}function Wh(e){var s=Uh(),a=s.queue;if(a===null)throw Error(p(311));a.lastRenderedReducer=e;var c=N$1,g=c.baseQueue,et=a.pending;if(et!==null){if(g!==null){var rt=g.next;g.next=et.next,et.next=rt}c.baseQueue=g=et,a.pending=null}if(g!==null){et=g.next,c=c.baseState;var nt=rt=null,st=null,at=et;do{var it=at.lane;if((Hh&it)===it)st!==null&&(st=st.next={lane:0,action:at.action,hasEagerState:at.hasEagerState,eagerState:at.eagerState,next:null}),c=at.hasEagerState?at.eagerState:e(c,at.action);else{var ot={lane:it,action:at.action,hasEagerState:at.hasEagerState,eagerState:at.eagerState,next:null};st===null?(nt=st=ot,rt=c):st=st.next=ot,M$2.lanes|=it,rh|=it}at=at.next}while(at!==null&&at!==et);st===null?rt=c:st.next=nt,He$1(c,s.memoizedState)||(dh=!0),s.memoizedState=c,s.baseState=rt,s.baseQueue=st,a.lastRenderedState=c}if(e=a.interleaved,e!==null){g=e;do et=g.lane,M$2.lanes|=et,rh|=et,g=g.next;while(g!==e)}else g===null&&(a.lanes=0);return[s.memoizedState,a.dispatch]}function Xh(e){var s=Uh(),a=s.queue;if(a===null)throw Error(p(311));a.lastRenderedReducer=e;var c=a.dispatch,g=a.pending,et=s.memoizedState;if(g!==null){a.pending=null;var rt=g=g.next;do et=e(et,rt.action),rt=rt.next;while(rt!==g);He$1(et,s.memoizedState)||(dh=!0),s.memoizedState=et,s.baseQueue===null&&(s.baseState=et),a.lastRenderedState=et}return[et,c]}function Yh(){}function Zh(e,s){var a=M$2,c=Uh(),g=s(),et=!He$1(c.memoizedState,g);if(et&&(c.memoizedState=g,dh=!0),c=c.queue,$h(ai.bind(null,a,c,e),[e]),c.getSnapshot!==s||et||O$1!==null&&O$1.memoizedState.tag&1){if(a.flags|=2048,bi(9,ci.bind(null,a,c,g,s),void 0,null),Q$1===null)throw Error(p(349));Hh&30||di(a,s,g)}return g}function di(e,s,a){e.flags|=16384,e={getSnapshot:s,value:a},s=M$2.updateQueue,s===null?(s={lastEffect:null,stores:null},M$2.updateQueue=s,s.stores=[e]):(a=s.stores,a===null?s.stores=[e]:a.push(e))}function ci(e,s,a,c){s.value=a,s.getSnapshot=c,ei(s)&&fi(e)}function ai(e,s,a){return a(function(){ei(s)&&fi(e)})}function ei(e){var s=e.getSnapshot;e=e.value;try{var a=s();return!He$1(e,a)}catch{return!0}}function fi(e){var s=ih(e,1);s!==null&&gi(s,e,1,-1)}function hi(e){var s=Th();return typeof e=="function"&&(e=e()),s.memoizedState=s.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:e},s.queue=e,e=e.dispatch=ii.bind(null,M$2,e),[s.memoizedState,e]}function bi(e,s,a,c){return e={tag:e,create:s,destroy:a,deps:c,next:null},s=M$2.updateQueue,s===null?(s={lastEffect:null,stores:null},M$2.updateQueue=s,s.lastEffect=e.next=e):(a=s.lastEffect,a===null?s.lastEffect=e.next=e:(c=a.next,a.next=e,e.next=c,s.lastEffect=e)),e}function ji(){return Uh().memoizedState}function ki(e,s,a,c){var g=Th();M$2.flags|=e,g.memoizedState=bi(1|s,a,void 0,c===void 0?null:c)}function li(e,s,a,c){var g=Uh();c=c===void 0?null:c;var et=void 0;if(N$1!==null){var rt=N$1.memoizedState;if(et=rt.destroy,c!==null&&Mh(c,rt.deps)){g.memoizedState=bi(s,a,et,c);return}}M$2.flags|=e,g.memoizedState=bi(1|s,a,et,c)}function mi(e,s){return ki(8390656,8,e,s)}function $h(e,s){return li(2048,8,e,s)}function ni(e,s){return li(4,2,e,s)}function oi(e,s){return li(4,4,e,s)}function pi(e,s){if(typeof s=="function")return e=e(),s(e),function(){s(null)};if(s!=null)return e=e(),s.current=e,function(){s.current=null}}function qi(e,s,a){return a=a!=null?a.concat([e]):null,li(4,4,pi.bind(null,s,e),a)}function ri(){}function si(e,s){var a=Uh();s=s===void 0?null:s;var c=a.memoizedState;return c!==null&&s!==null&&Mh(s,c[1])?c[0]:(a.memoizedState=[e,s],e)}function ti(e,s){var a=Uh();s=s===void 0?null:s;var c=a.memoizedState;return c!==null&&s!==null&&Mh(s,c[1])?c[0]:(e=e(),a.memoizedState=[e,s],e)}function ui(e,s,a){return Hh&21?(He$1(a,s)||(a=yc(),M$2.lanes|=a,rh|=a,e.baseState=!0),s):(e.baseState&&(e.baseState=!1,dh=!0),e.memoizedState=a)}function vi(e,s){var a=C$1;C$1=a!==0&&4>a?a:4,e(!0);var c=Gh.transition;Gh.transition={};try{e(!1),s()}finally{C$1=a,Gh.transition=c}}function wi(){return Uh().memoizedState}function xi(e,s,a){var c=yi(e);if(a={lane:c,action:a,hasEagerState:!1,eagerState:null,next:null},zi(e))Ai(s,a);else if(a=hh(e,s,a,c),a!==null){var g=R$1();
vendor: 9,082 bytes, lines 38-40
38gi(a,e,c,g),Bi(a,s,c)}}function ii(e,s,a){var c=yi(e),g={lane:c,action:a,hasEagerState:!1,eagerState:null,next:null};if(zi(e))Ai(s,g);else{var et=e.alternate;if(e.lanes===0&&(et===null||et.lanes===0)&&(et=s.lastRenderedReducer,et!==null))try{var rt=s.lastRenderedState,nt=et(rt,a);if(g.hasEagerState=!0,g.eagerState=nt,He$1(nt,rt)){var st=s.interleaved;st===null?(g.next=g,gh(s)):(g.next=st.next,st.next=g),s.interleaved=g;return}}catch{}finally{}a=hh(e,s,g,c),a!==null&&(g=R$1(),gi(a,e,c,g),Bi(a,s,c))}}function zi(e){var s=e.alternate;return e===M$2||s!==null&&s===M$2}function Ai(e,s){Jh=Ih=!0;var a=e.pending;a===null?s.next=s:(s.next=a.next,a.next=s),e.pending=s}function Bi(e,s,a){if(a&4194240){var c=s.lanes;c&=e.pendingLanes,a|=c,s.lanes=a,Cc(e,a)}}var Rh={readContext:eh,useCallback:P$2,useContext:P$2,useEffect:P$2,useImperativeHandle:P$2,useInsertionEffect:P$2,useLayoutEffect:P$2,useMemo:P$2,useReducer:P$2,useRef:P$2,useState:P$2,useDebugValue:P$2,useDeferredValue:P$2,useTransition:P$2,useMutableSource:P$2,useSyncExternalStore:P$2,useId:P$2,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(e,s){return Th().memoizedState=[e,s===void 0?null:s],e},useContext:eh,useEffect:mi,useImperativeHandle:function(e,s,a){return a=a!=null?a.concat([e]):null,ki(4194308,4,pi.bind(null,s,e),a)},useLayoutEffect:function(e,s){return ki(4194308,4,e,s)},useInsertionEffect:function(e,s){return ki(4,2,e,s)},useMemo:function(e,s){var a=Th();return s=s===void 0?null:s,e=e(),a.memoizedState=[e,s],e},useReducer:function(e,s,a){var c=Th();return s=a!==void 0?a(s):s,c.memoizedState=c.baseState=s,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:s},c.queue=e,e=e.dispatch=xi.bind(null,M$2,e),[c.memoizedState,e]},useRef:function(e){var s=Th();return e={current:e},s.memoizedState=e},useState:hi,useDebugValue:ri,useDeferredValue:function(e){return Th().memoizedState=e},useTransition:function(){var e=hi(!1),s=e[0];return e=vi.bind(null,e[1]),Th().memoizedState=e,[s,e]},useMutableSource:function(){},useSyncExternalStore:function(e,s,a){var c=M$2,g=Th();if(I$1){if(a===void 0)throw Error(p(407));a=a()}else{if(a=s(),Q$1===null)throw Error(p(349));Hh&30||di(c,s,a)}g.memoizedState=a;var et={value:a,getSnapshot:s};return g.queue=et,mi(ai.bind(null,c,et,e),[e]),c.flags|=2048,bi(9,ci.bind(null,c,et,a,s),void 0,null),a},useId:function(){var e=Th(),s=Q$1.identifierPrefix;if(I$1){var a=sg,c=rg;a=(c&~(1<<32-oc(c)-1)).toString(32)+a,s=":"+s+"R"+a,a=Kh++,0<a&&(s+="H"+a.toString(32)),s+=":"}else a=Lh++,s=":"+s+"r"+a.toString(32)+":";return e.memoizedState=s},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},useDebugValue:ri,useDeferredValue:function(e){var s=Uh();return ui(s,N$1.memoizedState,e)},useTransition:function(){var e=Wh(Vh)[0],s=Uh().memoizedState;return[e,s]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(e){var s=Uh();return N$1===null?s.memoizedState=e:ui(s,N$1.memoizedState,e)},useTransition:function(){var e=Xh(Vh)[0],s=Uh().memoizedState;return[e,s]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(e,s){if(e&&e.defaultProps){s=A({},s),e=e.defaultProps;for(var a in e)s[a]===void 0&&(s[a]=e[a]);return s}return s}function Di(e,s,a,c){s=e.memoizedState,a=a(c,s),a=a==null?s:A({},s,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Ei={isMounted:function(e){return(e=e._reactInternals)?Vb(e)===e:!1},enqueueSetState:function(e,s,a){e=e._reactInternals;var c=R$1(),g=yi(e),et=mh(c,g);et.payload=s,a!=null&&(et.callback=a),s=nh(e,et,g),s!==null&&(gi(s,e,g,c),oh(s,e,g))},enqueueReplaceState:function(e,s,a){e=e._reactInternals;var c=R$1(),g=yi(e),et=mh(c,g);et.tag=1,et.payload=s,a!=null&&(et.callback=a),s=nh(e,et,g),s!==null&&(gi(s,e,g,c),oh(s,e,g))},enqueueForceUpdate:function(e,s){e=e._reactInternals;var a=R$1(),c=yi(e),g=mh(a,c);g.tag=2,s!=null&&(g.callback=s),s=nh(e,g,c),s!==null&&(gi(s,e,c,a),oh(s,e,c))}};function Fi(e,s,a,c,g,et,rt){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(c,et,rt):s.prototype&&s.prototype.isPureReactComponent?!Ie$1(a,c)||!Ie$1(g,et):!0}function Gi(e,s,a){var c=!1,g=Vf,et=s.contextType;return typeof et=="object"&&et!==null?et=eh(et):(g=Zf(s)?Xf:H.current,c=s.contextTypes,et=(c=c!=null)?Yf(e,g):Vf),s=new s(a,et),e.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,s.updater=Ei,e.stateNode=s,s._reactInternals=e,c&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=g,e.__reactInternalMemoizedMaskedChildContext=et),s}function Hi(e,s,a,c){e=s.state,typeof s.componentWillReceiveProps=="function"&&s.componentWillReceiveProps(a,c),typeof s.UNSAFE_componentWillReceiveProps=="function"&&s.UNSAFE_componentWillReceiveProps(a,c),s.state!==e&&Ei.enqueueReplaceState(s,s.state,null)}function Ii(e,s,a,c){var g=e.stateNode;g.props=a,g.state=e.memoizedState,g.refs={},kh(e);var et=s.contextType;typeof et=="object"&&et!==null?g.context=eh(et):(et=Zf(s)?Xf:H.current,g.context=Yf(e,et)),g.state=e.memoizedState,et=s.getDerivedStateFromProps,typeof et=="function"&&(Di(e,s,et,a),g.state=e.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(s=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),s!==g.state&&Ei.enqueueReplaceState(g,g.state,null),qh(e,a,g,c),g.state=e.memoizedState),typeof g.componentDidMount=="function"&&(e.flags|=4194308)}function Ji(e,s){try{var a="",c=s;do a+=Pa(c),c=c.return;while(c);var g=a}catch(et){g=` 39Error generating stack: `+et.message+` 40`+et.stack}return{value:e,source:s,stack:g,digest:null}}function Ki(e,s,a){return{value:e,source:null,stack:a??null,digest:s??null}}function Li(e,s){try{console.error(s.value)}catch(a){setTimeout(function(){throw a})}}var Mi=typeof WeakMap=="function"?WeakMap:Map;function Ni(e,s,a){a=mh(-1,a),a.tag=3,a.payload={element:null};var c=s.value;return a.callback=function(){Oi||(Oi=!0,Pi=c),Li(e,s)},a}function Qi(e,s,a){a=mh(-1,a),a.tag=3;var c=e.type.getDerivedStateFromError;if(typeof c=="function"){var g=s.value;a.payload=function(){return c(g)},a.callback=function(){Li(e,s)}}var et=e.stateNode;return et!==null&&typeof et.componentDidCatch=="function"&&(a.callback=function(){Li(e,s),typeof c!="function"&&(Ri===null?Ri=new Set([this]):Ri.add(this));var rt=s.stack;this.componentDidCatch(s.value,{componentStack:rt!==null?rt:""})}),a}function Si(e,s,a){var c=e.pingCache;if(c===null){c=e.pingCache=new Mi;var g=new Set;c.set(s,g)}else g=c.get(s),g===void 0&&(g=new Set,c.set(s,g));g.has(a)||(g.add(a),e=Ti.bind(null,e,s,a),s.then(e,e))}function Ui(e){do{var s;if((s=e.tag===13)&&(s=e.memoizedState,s=s!==null?s.dehydrated!==null:!0),s)return e;e=e.return}while(e!==null);return null}function Vi(e,s,a,c,g){return e.mode&1?(e.flags|=65536,e.lanes=g,e):(e===s?e.flags|=65536:(e.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(s=mh(-1,1),s.tag=2,nh(a,s,1))),a.lanes|=1),e)}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(e,s,a,c){s.child=e===null?Vg(s,null,a,c):Ug(s,e.child,a,c)}function Yi(e,s,a,c,g){a=a.render;var et=s.ref;return ch(s,g),c=Nh(e,s,a,c,et,g),a=Sh(),e!==null&&!dh?(s.updateQueue=e.updateQueue,s.flags&=-2053,e.lanes&=~g,Zi(e,s,g)):(I$1&&a&&vg(s),s.flags|=1,Xi(e,s,c,g),s.child)}function $i(e,s,a,c,g){if(e===null){var et=a.type;return typeof et=="function"&&!aj(et)&&et.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(s.tag=15,s.type=et,bj(e,s,et,c,g)):(e=Rg(a.type,null,c,s,s.mode,g),e.ref=s.ref,e.return=s,s.child=e)}if(et=e.child,!(e.lanes&g)){var rt=et.memoizedProps;if(a=a.compare,a=a!==null?a:Ie$1,a(rt,c)&&e.ref===s.ref)return Zi(e,s,g)}return s.flags|=1,e=Pg(et,c),e.ref=s.ref,e.return=s,s.child=e}function bj(e,s,a,c,g){if(e!==null){var et=e.memoizedProps;if(Ie$1(et,c)&&e.ref===s.ref)if(dh=!1,s.pendingProps=c=et,(e.lanes&g)!==0)e.flags&131072&&(dh=!0);else return s.lanes=e.lanes,Zi(e,s,g)}return cj(e,s,a,c,g)}function dj(e,s,a){var c=s.pendingProps,g=c.children,et=e!==null?e.memoizedState:null;if(c.mode==="hidden")if(!(s.mode&1))s.memoizedState={baseLanes:0,cachePool:null,transitions:null},G$1(ej,fj),fj|=a;else{if(!(a&1073741824))return e=et!==null?et.baseLanes|a:a,s.lanes=s.childLanes=1073741824,s.memoizedState={baseLanes:e,cachePool:null,transitions:null},s.updateQueue=null,G$1(ej,fj),fj|=e,null;s.memoizedState={baseLanes:0,cachePool:null,transitions:null},c=et!==null?et.baseLanes:a,G$1(ej,fj),fj|=c}
vendor: 4,896 bytes, line 40
40else et!==null?(c=et.baseLanes|a,s.memoizedState=null):c=a,G$1(ej,fj),fj|=c;return Xi(e,s,g,a),s.child}function gj(e,s){var a=s.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(s.flags|=512,s.flags|=2097152)}function cj(e,s,a,c,g){var et=Zf(a)?Xf:H.current;return et=Yf(s,et),ch(s,g),a=Nh(e,s,a,c,et,g),c=Sh(),e!==null&&!dh?(s.updateQueue=e.updateQueue,s.flags&=-2053,e.lanes&=~g,Zi(e,s,g)):(I$1&&c&&vg(s),s.flags|=1,Xi(e,s,a,g),s.child)}function hj(e,s,a,c,g){if(Zf(a)){var et=!0;cg(s)}else et=!1;if(ch(s,g),s.stateNode===null)ij(e,s),Gi(s,a,c),Ii(s,a,c,g),c=!0;else if(e===null){var rt=s.stateNode,nt=s.memoizedProps;rt.props=nt;var st=rt.context,at=a.contextType;typeof at=="object"&&at!==null?at=eh(at):(at=Zf(a)?Xf:H.current,at=Yf(s,at));var it=a.getDerivedStateFromProps,ot=typeof it=="function"||typeof rt.getSnapshotBeforeUpdate=="function";ot||typeof rt.UNSAFE_componentWillReceiveProps!="function"&&typeof rt.componentWillReceiveProps!="function"||(nt!==c||st!==at)&&Hi(s,rt,c,at),jh=!1;var lt=s.memoizedState;rt.state=lt,qh(s,c,rt,g),st=s.memoizedState,nt!==c||lt!==st||Wf.current||jh?(typeof it=="function"&&(Di(s,a,it,c),st=s.memoizedState),(nt=jh||Fi(s,a,nt,c,lt,st,at))?(ot||typeof rt.UNSAFE_componentWillMount!="function"&&typeof rt.componentWillMount!="function"||(typeof rt.componentWillMount=="function"&&rt.componentWillMount(),typeof rt.UNSAFE_componentWillMount=="function"&&rt.UNSAFE_componentWillMount()),typeof rt.componentDidMount=="function"&&(s.flags|=4194308)):(typeof rt.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=c,s.memoizedState=st),rt.props=c,rt.state=st,rt.context=at,c=nt):(typeof rt.componentDidMount=="function"&&(s.flags|=4194308),c=!1)}else{rt=s.stateNode,lh(e,s),nt=s.memoizedProps,at=s.type===s.elementType?nt:Ci(s.type,nt),rt.props=at,ot=s.pendingProps,lt=rt.context,st=a.contextType,typeof st=="object"&&st!==null?st=eh(st):(st=Zf(a)?Xf:H.current,st=Yf(s,st));var ct=a.getDerivedStateFromProps;(it=typeof ct=="function"||typeof rt.getSnapshotBeforeUpdate=="function")||typeof rt.UNSAFE_componentWillReceiveProps!="function"&&typeof rt.componentWillReceiveProps!="function"||(nt!==ot||lt!==st)&&Hi(s,rt,c,st),jh=!1,lt=s.memoizedState,rt.state=lt,qh(s,c,rt,g);var dt=s.memoizedState;nt!==ot||lt!==dt||Wf.current||jh?(typeof ct=="function"&&(Di(s,a,ct,c),dt=s.memoizedState),(at=jh||Fi(s,a,at,c,lt,dt,st)||!1)?(it||typeof rt.UNSAFE_componentWillUpdate!="function"&&typeof rt.componentWillUpdate!="function"||(typeof rt.componentWillUpdate=="function"&&rt.componentWillUpdate(c,dt,st),typeof rt.UNSAFE_componentWillUpdate=="function"&&rt.UNSAFE_componentWillUpdate(c,dt,st)),typeof rt.componentDidUpdate=="function"&&(s.flags|=4),typeof rt.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof rt.componentDidUpdate!="function"||nt===e.memoizedProps&<===e.memoizedState||(s.flags|=4),typeof rt.getSnapshotBeforeUpdate!="function"||nt===e.memoizedProps&<===e.memoizedState||(s.flags|=1024),s.memoizedProps=c,s.memoizedState=dt),rt.props=c,rt.state=dt,rt.context=st,c=at):(typeof rt.componentDidUpdate!="function"||nt===e.memoizedProps&<===e.memoizedState||(s.flags|=4),typeof rt.getSnapshotBeforeUpdate!="function"||nt===e.memoizedProps&<===e.memoizedState||(s.flags|=1024),c=!1)}return jj(e,s,a,c,et,g)}function jj(e,s,a,c,g,et){gj(e,s);var rt=(s.flags&128)!==0;if(!c&&!rt)return g&&dg(s,a,!1),Zi(e,s,et);c=s.stateNode,Wi.current=s;var nt=rt&&typeof a.getDerivedStateFromError!="function"?null:c.render();return s.flags|=1,e!==null&&rt?(s.child=Ug(s,e.child,null,et),s.child=Ug(s,null,nt,et)):Xi(e,s,nt,et),s.memoizedState=c.state,g&&dg(s,a,!0),s.child}function kj(e){var s=e.stateNode;s.pendingContext?ag(e,s.pendingContext,s.pendingContext!==s.context):s.context&&ag(e,s.context,!1),yh(e,s.containerInfo)}function lj(e,s,a,c,g){return Ig(),Jg(g),s.flags|=256,Xi(e,s,a,c),s.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(e){return{baseLanes:e,cachePool:null,transitions:null}}function oj(e,s,a){var c=s.pendingProps,g=L$2.current,et=!1,rt=(s.flags&128)!==0,nt;if((nt=rt)||(nt=e!==null&&e.memoizedState===null?!1:(g&2)!==0),nt?(et=!0,s.flags&=-129):(e===null||e.memoizedState!==null)&&(g|=1),G$1(L$2,g&1),e===null)return Eg(s),e=s.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(s.mode&1?e.data==="$!"?s.lanes=8:s.lanes=1073741824:s.lanes=1,null):(rt=c.children,e=c.fallback,et?(c=s.mode,et=s.child,rt={mode:"hidden",children:rt},!(c&1)&&et!==null?(et.childLanes=0,et.pendingProps=rt):et=pj(rt,c,0,null),e=Tg(e,c,a,null),et.return=s,e.return=s,et.sibling=e,s.child=et,s.child.memoizedState=nj(a),s.memoizedState=mj,e):qj(s,rt));if(g=e.memoizedState,g!==null&&(nt=g.dehydrated,nt!==null))return rj(e,s,rt,c,nt,g,a);if(et){et=c.fallback,rt=s.mode,g=e.child,nt=g.sibling;var st={mode:"hidden",children:c.children};return!(rt&1)&&s.child!==g?(c=s.child,c.childLanes=0,c.pendingProps=st,s.deleti
vendor: 7,002 bytes, line 40
40ons=null):(c=Pg(g,st),c.subtreeFlags=g.subtreeFlags&14680064),nt!==null?et=Pg(nt,et):(et=Tg(et,rt,a,null),et.flags|=2),et.return=s,c.return=s,c.sibling=et,s.child=c,c=et,et=s.child,rt=e.child.memoizedState,rt=rt===null?nj(a):{baseLanes:rt.baseLanes|a,cachePool:null,transitions:rt.transitions},et.memoizedState=rt,et.childLanes=e.childLanes&~a,s.memoizedState=mj,c}return et=e.child,e=et.sibling,c=Pg(et,{mode:"visible",children:c.children}),!(s.mode&1)&&(c.lanes=a),c.return=s,c.sibling=null,e!==null&&(a=s.deletions,a===null?(s.deletions=[e],s.flags|=16):a.push(e)),s.child=c,s.memoizedState=null,c}function qj(e,s){return s=pj({mode:"visible",children:s},e.mode,0,null),s.return=e,e.child=s}function sj(e,s,a,c){return c!==null&&Jg(c),Ug(s,e.child,null,a),e=qj(s,s.pendingProps.children),e.flags|=2,s.memoizedState=null,e}function rj(e,s,a,c,g,et,rt){if(a)return s.flags&256?(s.flags&=-257,c=Ki(Error(p(422))),sj(e,s,rt,c)):s.memoizedState!==null?(s.child=e.child,s.flags|=128,null):(et=c.fallback,g=s.mode,c=pj({mode:"visible",children:c.children},g,0,null),et=Tg(et,g,rt,null),et.flags|=2,c.return=s,et.return=s,c.sibling=et,s.child=c,s.mode&1&&Ug(s,e.child,null,rt),s.child.memoizedState=nj(rt),s.memoizedState=mj,et);if(!(s.mode&1))return sj(e,s,rt,null);if(g.data==="$!"){if(c=g.nextSibling&&g.nextSibling.dataset,c)var nt=c.dgst;return c=nt,et=Error(p(419)),c=Ki(et,c,void 0),sj(e,s,rt,c)}if(nt=(rt&e.childLanes)!==0,dh||nt){if(c=Q$1,c!==null){switch(rt&-rt){case 4:g=2;break;case 16:g=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:g=32;break;case 536870912:g=268435456;break;default:g=0}g=g&(c.suspendedLanes|rt)?0:g,g!==0&&g!==et.retryLane&&(et.retryLane=g,ih(e,g),gi(c,e,g,-1))}return tj(),c=Ki(Error(p(421))),sj(e,s,rt,c)}return g.data==="$?"?(s.flags|=128,s.child=e.child,s=uj.bind(null,e),g._reactRetry=s,null):(e=et.treeContext,yg=Lf(g.nextSibling),xg=s,I$1=!0,zg=null,e!==null&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=e.id,sg=e.overflow,qg=s),s=qj(s,c.children),s.flags|=4096,s)}function vj(e,s,a){e.lanes|=s;var c=e.alternate;c!==null&&(c.lanes|=s),bh(e.return,s,a)}function wj(e,s,a,c,g){var et=e.memoizedState;et===null?e.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:c,tail:a,tailMode:g}:(et.isBackwards=s,et.rendering=null,et.renderingStartTime=0,et.last=c,et.tail=a,et.tailMode=g)}function xj(e,s,a){var c=s.pendingProps,g=c.revealOrder,et=c.tail;if(Xi(e,s,c.children,a),c=L$2.current,c&2)c=c&1|2,s.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=s.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&vj(e,a,s);else if(e.tag===19)vj(e,a,s);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===s)break e;for(;e.sibling===null;){if(e.return===null||e.return===s)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}c&=1}if(G$1(L$2,c),!(s.mode&1))s.memoizedState=null;else switch(g){case"forwards":for(a=s.child,g=null;a!==null;)e=a.alternate,e!==null&&Ch(e)===null&&(g=a),a=a.sibling;a=g,a===null?(g=s.child,s.child=null):(g=a.sibling,a.sibling=null),wj(s,!1,g,a,et);break;case"backwards":for(a=null,g=s.child,s.child=null;g!==null;){if(e=g.alternate,e!==null&&Ch(e)===null){s.child=g;break}e=g.sibling,g.sibling=a,a=g,g=e}wj(s,!0,a,null,et);break;case"together":wj(s,!1,null,null,void 0);break;default:s.memoizedState=null}return s.child}function ij(e,s){!(s.mode&1)&&e!==null&&(e.alternate=null,s.alternate=null,s.flags|=2)}function Zi(e,s,a){if(e!==null&&(s.dependencies=e.dependencies),rh|=s.lanes,!(a&s.childLanes))return null;if(e!==null&&s.child!==e.child)throw Error(p(153));if(s.child!==null){for(e=s.child,a=Pg(e,e.pendingProps),s.child=a,a.return=s;e.sibling!==null;)e=e.sibling,a=a.sibling=Pg(e,e.pendingProps),a.return=s;a.sibling=null}return s.child}function yj(e,s,a){switch(s.tag){case 3:kj(s),Ig();break;case 5:Ah(s);break;case 1:Zf(s.type)&&cg(s);break;case 4:yh(s,s.stateNode.containerInfo);break;case 10:var c=s.type._context,g=s.memoizedProps.value;G$1(Wg,c._currentValue),c._currentValue=g;break;case 13:if(c=s.memoizedState,c!==null)return c.dehydrated!==null?(G$1(L$2,L$2.current&1),s.flags|=128,null):a&s.child.childLanes?oj(e,s,a):(G$1(L$2,L$2.current&1),e=Zi(e,s,a),e!==null?e.sibling:null);G$1(L$2,L$2.current&1);break;case 19:if(c=(a&s.childLanes)!==0,e.flags&128){if(c)return xj(e,s,a);s.flags|=128}if(g=s.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),G$1(L$2,L$2.current),c)break;return null;case 22:case 23:return s.lanes=0,dj(e,s,a)}return Zi(e,s,a)}var zj,Aj,Bj,Cj;zj=function(e,s){for(var a=s.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===s)break;for(;a.sibling===null;){if(a.return===null||a.return===s)return;a=a.return}a.sibling.return=a.return,a=a.sibling}};Aj=function(){};Bj=function(e,s,a,c){var g=e.memoizedProps;if(g!==c){e=s.stateNode,xh(uh.current);var et=null;switch(a){case"input":g=Ya(e,g),c=Ya(e,c),et=[];break;case"select":g=A({},g,{value:void 0}),c=A({},c,{value:void 0}),et=[];break;case"textarea":g=gb(e,g),c=gb(e,c),et=[];break;default:typeof g.onClick!="function"&&typeof c.onClick=="function"&&(e.onclick=Bf)}ub(a,c);var rt;a=null;for(at in g)if(!c.hasOwnProperty(at)&&g.hasOwnProperty(at)&&g[at]!=null)if(at==="style"){var nt=g[at];for(rt in nt)nt.hasOwnProperty(rt)&&(a||(a={}),a[rt]="")}else at!=="dangerouslySetInnerHTML"&&at!=="children"&&at!=="suppressContentEditableWarning"&&at!=="suppressHydrationWarning"&&at!=="autoFocus"&&(ea.hasOwnProperty(at)?et||(et=[]):(et=et||[]).push(at,null));for(at in c){var st=c[at];if(nt=g!=null?g[at]:void 0,c.hasOwnProperty(at)&&st!==nt&&(st!=null||nt!=null))if(at==="style")if(nt){for(rt in nt)!nt.hasOwnProperty(rt)||st&&st.hasOwnProperty(rt)||(a||(a={}),a[rt]="");for(rt in st)st.hasOwnProperty(rt)&&nt[rt]!==st[rt]&&(a||(a={}),a[rt]=st[rt])}else a||(et||(et=[]),et.push(at,a)),a=st;else at==="dangerouslySetInnerHTML"?(st=st?st.__html:void 0,nt=nt?nt.__html:void 0,st!=null&&nt!==st&&(et=et||[]).push(at,st)):at==="children"?typeof st!="string"&&typeof st!="number"||(et=et||[]).push(at,""+st):at!=="suppressContentEditableWarning"&&at!=="suppressHydrationWarning"&&(ea.hasOwnProperty(at)?(st!=null&&at==="onScroll"&&D$2("scroll",e),et||nt===st||(et=[])):(et=et||[]).push(at,st))}a&&(et=et||[]).push("style",a);var at=et;(s.updateQueue=at)&&(s.flags|=4)}};Cj=function(e,s,a,c){a!==c&&(s.flags|=4)};function Dj(e,s){if(!I$1)switch(e.tailMode){case"hidden":s=e.tail;for(var a=null;s!==null;)s.alternate!==null&&(a=s),s=s.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var c=null;a!==null;)a.alternate!==null&&(c=a),a=a.sibling;c===null?s||e.tail===null?e.tail=null:e.tail.sibling=null:c.sibling=null}}function S$1(e){var s=e.alternate!==null&&e.alternate.child===e.child,a=0,
vendor: 8,480 bytes, line 40
40c=0;if(s)for(var g=e.child;g!==null;)a|=g.lanes|g.childLanes,c|=g.subtreeFlags&14680064,c|=g.flags&14680064,g.return=e,g=g.sibling;else for(g=e.child;g!==null;)a|=g.lanes|g.childLanes,c|=g.subtreeFlags,c|=g.flags,g.return=e,g=g.sibling;return e.subtreeFlags|=c,e.childLanes=a,s}function Ej(e,s,a){var c=s.pendingProps;switch(wg(s),s.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S$1(s),null;case 1:return Zf(s.type)&&$f(),S$1(s),null;case 3:return c=s.stateNode,zh(),E$2(Wf),E$2(H),Eh(),c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),(e===null||e.child===null)&&(Gg(s)?s.flags|=4:e===null||e.memoizedState.isDehydrated&&!(s.flags&256)||(s.flags|=1024,zg!==null&&(Fj(zg),zg=null))),Aj(e,s),S$1(s),null;case 5:Bh(s);var g=xh(wh.current);if(a=s.type,e!==null&&s.stateNode!=null)Bj(e,s,a,c,g),e.ref!==s.ref&&(s.flags|=512,s.flags|=2097152);else{if(!c){if(s.stateNode===null)throw Error(p(166));return S$1(s),null}if(e=xh(uh.current),Gg(s)){c=s.stateNode,a=s.type;var et=s.memoizedProps;switch(c[Of]=s,c[Pf]=et,e=(s.mode&1)!==0,a){case"dialog":D$2("cancel",c),D$2("close",c);break;case"iframe":case"object":case"embed":D$2("load",c);break;case"video":case"audio":for(g=0;g<lf.length;g++)D$2(lf[g],c);break;case"source":D$2("error",c);break;case"img":case"image":case"link":D$2("error",c),D$2("load",c);break;case"details":D$2("toggle",c);break;case"input":Za(c,et),D$2("invalid",c);break;case"select":c._wrapperState={wasMultiple:!!et.multiple},D$2("invalid",c);break;case"textarea":hb(c,et),D$2("invalid",c)}ub(a,et),g=null;for(var rt in et)if(et.hasOwnProperty(rt)){var nt=et[rt];rt==="children"?typeof nt=="string"?c.textContent!==nt&&(et.suppressHydrationWarning!==!0&&Af(c.textContent,nt,e),g=["children",nt]):typeof nt=="number"&&c.textContent!==""+nt&&(et.suppressHydrationWarning!==!0&&Af(c.textContent,nt,e),g=["children",""+nt]):ea.hasOwnProperty(rt)&&nt!=null&&rt==="onScroll"&&D$2("scroll",c)}switch(a){case"input":Va(c),db(c,et,!0);break;case"textarea":Va(c),jb(c);break;case"select":case"option":break;default:typeof et.onClick=="function"&&(c.onclick=Bf)}c=g,s.updateQueue=c,c!==null&&(s.flags|=4)}else{rt=g.nodeType===9?g:g.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=kb(a)),e==="http://www.w3.org/1999/xhtml"?a==="script"?(e=rt.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof c.is=="string"?e=rt.createElement(a,{is:c.is}):(e=rt.createElement(a),a==="select"&&(rt=e,c.multiple?rt.multiple=!0:c.size&&(rt.size=c.size))):e=rt.createElementNS(e,a),e[Of]=s,e[Pf]=c,zj(e,s,!1,!1),s.stateNode=e;e:{switch(rt=vb(a,c),a){case"dialog":D$2("cancel",e),D$2("close",e),g=c;break;case"iframe":case"object":case"embed":D$2("load",e),g=c;break;case"video":case"audio":for(g=0;g<lf.length;g++)D$2(lf[g],e);g=c;break;case"source":D$2("error",e),g=c;break;case"img":case"image":case"link":D$2("error",e),D$2("load",e),g=c;break;case"details":D$2("toggle",e),g=c;break;case"input":Za(e,c),g=Ya(e,c),D$2("invalid",e);break;case"option":g=c;break;case"select":e._wrapperState={wasMultiple:!!c.multiple},g=A({},c,{value:void 0}),D$2("invalid",e);break;case"textarea":hb(e,c),g=gb(e,c),D$2("invalid",e);break;default:g=c}ub(a,g),nt=g;for(et in nt)if(nt.hasOwnProperty(et)){var st=nt[et];et==="style"?sb(e,st):et==="dangerouslySetInnerHTML"?(st=st?st.__html:void 0,st!=null&&nb(e,st)):et==="children"?typeof st=="string"?(a!=="textarea"||st!=="")&&ob(e,st):typeof st=="number"&&ob(e,""+st):et!=="suppressContentEditableWarning"&&et!=="suppressHydrationWarning"&&et!=="autoFocus"&&(ea.hasOwnProperty(et)?st!=null&&et==="onScroll"&&D$2("scroll",e):st!=null&&ta(e,et,st,rt))}switch(a){case"input":Va(e),db(e,c,!1);break;case"textarea":Va(e),jb(e);break;case"option":c.value!=null&&e.setAttribute("value",""+Sa(c.value));break;case"select":e.multiple=!!c.multiple,et=c.value,et!=null?fb(e,!!c.multiple,et,!1):c.defaultValue!=null&&fb(e,!!c.multiple,c.defaultValue,!0);break;default:typeof g.onClick=="function"&&(e.onclick=Bf)}switch(a){case"button":case"input":case"select":case"textarea":c=!!c.autoFocus;break e;case"img":c=!0;break e;default:c=!1}}c&&(s.flags|=4)}s.ref!==null&&(s.flags|=512,s.flags|=2097152)}return S$1(s),null;case 6:if(e&&s.stateNode!=null)Cj(e,s,e.memoizedProps,c);else{if(typeof c!="string"&&s.stateNode===null)throw Error(p(166));if(a=xh(wh.current),xh(uh.current),Gg(s)){if(c=s.stateNode,a=s.memoizedProps,c[Of]=s,(et=c.nodeValue!==a)&&(e=xg,e!==null))switch(e.tag){case 3:Af(c.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Af(c.nodeValue,a,(e.mode&1)!==0)}et&&(s.flags|=4)}else c=(a.nodeType===9?a:a.ownerDocument).createTextNode(c),c[Of]=s,s.stateNode=c}return S$1(s),null;case 13:if(E$2(L$2),c=s.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(I$1&&yg!==null&&s.mode&1&&!(s.flags&128))Hg(),Ig(),s.flags|=98560,et=!1;else if(et=Gg(s),c!==null&&c.dehydrated!==null){if(e===null){if(!et)throw Error(p(318));if(et=s.memoizedState,et=et!==null?et.dehydrated:null,!et)throw Error(p(317));et[Of]=s}else Ig(),!(s.flags&128)&&(s.memoizedState=null),s.flags|=4;S$1(s),et=!1}else zg!==null&&(Fj(zg),zg=null),et=!0;if(!et)return s.flags&65536?s:null}return s.flags&128?(s.lanes=a,s):(c=c!==null,c!==(e!==null&&e.memoizedState!==null)&&c&&(s.child.flags|=8192,s.mode&1&&(e===null||L$2.current&1?T===0&&(T=3):tj())),s.updateQueue!==null&&(s.flags|=4),S$1(s),null);case 4:return zh(),Aj(e,s),e===null&&sf(s.stateNode.containerInfo),S$1(s),null;case 10:return ah(s.type._context),S$1(s),null;case 17:return Zf(s.type)&&$f(),S$1(s),null;case 19:if(E$2(L$2),et=s.memoizedState,et===null)return S$1(s),null;if(c=(s.flags&128)!==0,rt=et.rendering,rt===null)if(c)Dj(et,!1);else{if(T!==0||e!==null&&e.flags&128)for(e=s.child;e!==null;){if(rt=Ch(e),rt!==null){for(s.flags|=128,Dj(et,!1),c=rt.updateQueue,c!==null&&(s.updateQueue=c,s.flags|=4),s.subtreeFlags=0,c=a,a=s.child;a!==null;)et=a,e=c,et.flags&=14680066,rt=et.alternate,rt===null?(et.childLanes=0,et.lanes=e,et.child=null,et.subtreeFlags=0,et.memoizedProps=null,et.memoizedState=null,et.updateQueue=null,et.dependencies=null,et.stateNode=null):(et.childLanes=rt.childLanes,et.lanes=rt.lanes,et.child=rt.child,et.subtreeFlags=0,et.deletions=null,et.memoizedProps=rt.memoizedProps,et.memoizedState=rt.memoizedState,et.updateQueue=rt.updateQueue,et.type=rt.type,e=rt.dependencies,et.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),a=a.sibling;return G$1(L$2,L$2.current&1|2),s.child}e=e.sibling}et.tail!==null&&B$1()>Gj&&(s.flags|=128,c=!0,Dj(et,!1),s.lanes=4194304)}else{if(!c)if(e=Ch(rt),e!==null){if(s.flags|=128,c=!0,a=e.updateQueue,a!==null&&(s.updateQueue=a,s.flags|=4),Dj(et,!0),et.tail===null&&et.tailMode==="hidden"&&!rt.alternate&&!I$1)return S$1(s),null}else 2*B$1()-et.renderingStartTime>Gj&&a!==1073741824&&(s.flags|=128,c=!0,Dj(et,!1),s.lanes=4194304);et.isBackwards?(rt.sibling=s.child,s.child=rt):(a=et.last,a!==null?a.sibling=rt:s.child=rt,et.last=rt)}return et.tail!==null?(s=et.tail,et.rendering=s,et.tail=s.sibling,et.renderingStartTime=B$1(),s.sibling=null,a=L$2.current,G$1(L$2,c?a&1|2:a&1),s):(S$1(s),null);case 22:case 23:return Hj(),c=s.memoizedState!==null,e!==null&&e.memoizedState!==null!==c&&(s.flags|=8192),c&&s.mode&1?fj&1073741824&&(S$1(s),s.subtreeFlags&6&&(s.flags|=8192)):S$1(s),null;case 24:return null;case 25:return null}throw Error(p(156,s.tag))}function Ij(e,s){switch(wg(s),s.tag){case 1:return Zf(s.type)&&$f(),e=s.flags,e&65536?(s.flags=e&-65537|128,s):null;case 3:return zh(),E$2(Wf),E$2(H),Eh(),e=s.flags,e&65536&&!(e&128)?(s.flags=e&-65537|128,s):null;case 5:return Bh(s),null;case 13:if(E$2(L$2),e=s.memoizedState,e!==null&&e.dehydrated!==null){if(s.alternate===null)throw Error(p(340));Ig()}return e=s.flags,e&65536?(s.flags=e&-65537|128,s):null;case 19:return E$2(L$2),null;case 4:return zh(),null;case 10:return ah(s.type._context),null;case 22:case 23:return Hj(),null;case 24:return null;default:return null}}var Jj=!1,U$1=!1,Kj=typeof WeakSet=="function"?WeakSet:Set,V$1=null;function Lj(e,s){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(c){W$1(e,s,c)}else a.current=null}function Mj(e,s,a){try{a()}catch(c){W$1(e,s,c)}}var Nj=!1;function Oj(e,s){if(Cf=dd,e=Me$1(),Ne$1(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var c=a.getSelection&&a.getSelection();
vendor: 4,425 bytes, line 40
40if(c&&c.rangeCount!==0){a=c.anchorNode;var g=c.anchorOffset,et=c.focusNode;c=c.focusOffset;try{a.nodeType,et.nodeType}catch{a=null;break e}var rt=0,nt=-1,st=-1,at=0,it=0,ot=e,lt=null;t:for(;;){for(var ct;ot!==a||g!==0&&ot.nodeType!==3||(nt=rt+g),ot!==et||c!==0&&ot.nodeType!==3||(st=rt+c),ot.nodeType===3&&(rt+=ot.nodeValue.length),(ct=ot.firstChild)!==null;)lt=ot,ot=ct;for(;;){if(ot===e)break t;if(lt===a&&++at===g&&(nt=rt),lt===et&&++it===c&&(st=rt),(ct=ot.nextSibling)!==null)break;ot=lt,lt=ot.parentNode}ot=ct}a=nt===-1||st===-1?null:{start:nt,end:st}}else a=null}a=a||{start:0,end:0}}else a=null;for(Df={focusedElem:e,selectionRange:a},dd=!1,V$1=s;V$1!==null;)if(s=V$1,e=s.child,(s.subtreeFlags&1028)!==0&&e!==null)e.return=s,V$1=e;else for(;V$1!==null;){s=V$1;try{var dt=s.alternate;if(s.flags&1024)switch(s.tag){case 0:case 11:case 15:break;case 1:if(dt!==null){var ut=dt.memoizedProps,xt=dt.memoizedState,gt=s.stateNode,ht=gt.getSnapshotBeforeUpdate(s.elementType===s.type?ut:Ci(s.type,ut),xt);gt.__reactInternalSnapshotBeforeUpdate=ht}break;case 3:var mt=s.stateNode.containerInfo;mt.nodeType===1?mt.textContent="":mt.nodeType===9&&mt.documentElement&&mt.removeChild(mt.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163))}}catch(kt){W$1(s,s.return,kt)}if(e=s.sibling,e!==null){e.return=s.return,V$1=e;break}V$1=s.return}return dt=Nj,Nj=!1,dt}function Pj(e,s,a){var c=s.updateQueue;if(c=c!==null?c.lastEffect:null,c!==null){var g=c=c.next;do{if((g.tag&e)===e){var et=g.destroy;g.destroy=void 0,et!==void 0&&Mj(s,a,et)}g=g.next}while(g!==c)}}function Qj(e,s){if(s=s.updateQueue,s=s!==null?s.lastEffect:null,s!==null){var a=s=s.next;do{if((a.tag&e)===e){var c=a.create;a.destroy=c()}a=a.next}while(a!==s)}}function Rj(e){var s=e.ref;if(s!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof s=="function"?s(e):s.current=e}}function Sj(e){var s=e.alternate;s!==null&&(e.alternate=null,Sj(s)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(s=e.stateNode,s!==null&&(delete s[Of],delete s[Pf],delete s[of],delete s[Qf],delete s[Rf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Tj(e){return e.tag===5||e.tag===3||e.tag===4}function Uj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Tj(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Vj(e,s,a){var c=e.tag;if(c===5||c===6)e=e.stateNode,s?a.nodeType===8?a.parentNode.insertBefore(e,s):a.insertBefore(e,s):(a.nodeType===8?(s=a.parentNode,s.insertBefore(e,a)):(s=a,s.appendChild(e)),a=a._reactRootContainer,a!=null||s.onclick!==null||(s.onclick=Bf));else if(c!==4&&(e=e.child,e!==null))for(Vj(e,s,a),e=e.sibling;e!==null;)Vj(e,s,a),e=e.sibling}function Wj(e,s,a){var c=e.tag;if(c===5||c===6)e=e.stateNode,s?a.insertBefore(e,s):a.appendChild(e);else if(c!==4&&(e=e.child,e!==null))for(Wj(e,s,a),e=e.sibling;e!==null;)Wj(e,s,a),e=e.sibling}var X$2=null,Xj=!1;function Yj(e,s,a){for(a=a.child;a!==null;)Zj(e,s,a),a=a.sibling}function Zj(e,s,a){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,a)}catch{}switch(a.tag){case 5:U$1||Lj(a,s);case 6:var c=X$2,g=Xj;X$2=null,Yj(e,s,a),X$2=c,Xj=g,X$2!==null&&(Xj?(e=X$2,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):X$2.removeChild(a.stateNode));break;case 18:X$2!==null&&(Xj?(e=X$2,a=a.stateNode,e.nodeType===8?Kf(e.parentNode,a):e.nodeType===1&&Kf(e,a),bd(e)):Kf(X$2,a.stateNode));break;case 4:c=X$2,g=Xj,X$2=a.stateNode.containerInfo,Xj=!0,Yj(e,s,a),X$2=c,Xj=g;break;case 0:case 11:case 14:case 15:if(!U$1&&(c=a.updateQueue,c!==null&&(c=c.lastEffect,c!==null))){g=c=c.next;do{var et=g,rt=et.destroy;et=et.tag,rt!==void 0&&(et&2||et&4)&&Mj(a,s,rt),g=g.next}while(g!==c)}Yj(e,s,a);break;case 1:if(!U$1&&(Lj(a,s),c=a.stateNode,typeof c.componentWillUnmount=="function"))try{c.props=a.memoizedProps,c.state=a.memoizedState,c.componentWillUnmount()}catch(nt){W$1(a,s,nt)}Yj(e,s,a);break;case 21:Yj(e,s,a);break;case 22:a.mode&1?(U$1=(c=U$1)||a.memoizedState!==null,Yj(e,s,a),U$1=c):Yj(e,s,a);break;default:Yj(e,s,a)}}function ak(e){var s=e.updateQueue;if(s!==null){e.updateQueue=null;var a=e.stateNode;
vendor: 21,282 bytes, line 40
40a===null&&(a=e.stateNode=new Kj),s.forEach(function(c){var g=bk.bind(null,e,c);a.has(c)||(a.add(c),c.then(g,g))})}}function ck(e,s){var a=s.deletions;if(a!==null)for(var c=0;c<a.length;c++){var g=a[c];try{var et=e,rt=s,nt=rt;e:for(;nt!==null;){switch(nt.tag){case 5:X$2=nt.stateNode,Xj=!1;break e;case 3:X$2=nt.stateNode.containerInfo,Xj=!0;break e;case 4:X$2=nt.stateNode.containerInfo,Xj=!0;break e}nt=nt.return}if(X$2===null)throw Error(p(160));Zj(et,rt,g),X$2=null,Xj=!1;var st=g.alternate;st!==null&&(st.return=null),g.return=null}catch(at){W$1(g,s,at)}}if(s.subtreeFlags&12854)for(s=s.child;s!==null;)dk(s,e),s=s.sibling}function dk(e,s){var a=e.alternate,c=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ck(s,e),ek(e),c&4){try{Pj(3,e,e.return),Qj(3,e)}catch(ut){W$1(e,e.return,ut)}try{Pj(5,e,e.return)}catch(ut){W$1(e,e.return,ut)}}break;case 1:ck(s,e),ek(e),c&512&&a!==null&&Lj(a,a.return);break;case 5:if(ck(s,e),ek(e),c&512&&a!==null&&Lj(a,a.return),e.flags&32){var g=e.stateNode;try{ob(g,"")}catch(ut){W$1(e,e.return,ut)}}if(c&4&&(g=e.stateNode,g!=null)){var et=e.memoizedProps,rt=a!==null?a.memoizedProps:et,nt=e.type,st=e.updateQueue;if(e.updateQueue=null,st!==null)try{nt==="input"&&et.type==="radio"&&et.name!=null&&ab(g,et),vb(nt,rt);var at=vb(nt,et);for(rt=0;rt<st.length;rt+=2){var it=st[rt],ot=st[rt+1];it==="style"?sb(g,ot):it==="dangerouslySetInnerHTML"?nb(g,ot):it==="children"?ob(g,ot):ta(g,it,ot,at)}switch(nt){case"input":bb(g,et);break;case"textarea":ib(g,et);break;case"select":var lt=g._wrapperState.wasMultiple;g._wrapperState.wasMultiple=!!et.multiple;var ct=et.value;ct!=null?fb(g,!!et.multiple,ct,!1):lt!==!!et.multiple&&(et.defaultValue!=null?fb(g,!!et.multiple,et.defaultValue,!0):fb(g,!!et.multiple,et.multiple?[]:"",!1))}g[Pf]=et}catch(ut){W$1(e,e.return,ut)}}break;case 6:if(ck(s,e),ek(e),c&4){if(e.stateNode===null)throw Error(p(162));g=e.stateNode,et=e.memoizedProps;try{g.nodeValue=et}catch(ut){W$1(e,e.return,ut)}}break;case 3:if(ck(s,e),ek(e),c&4&&a!==null&&a.memoizedState.isDehydrated)try{bd(s.containerInfo)}catch(ut){W$1(e,e.return,ut)}break;case 4:ck(s,e),ek(e);break;case 13:ck(s,e),ek(e),g=e.child,g.flags&8192&&(et=g.memoizedState!==null,g.stateNode.isHidden=et,!et||g.alternate!==null&&g.alternate.memoizedState!==null||(fk=B$1())),c&4&&ak(e);break;case 22:if(it=a!==null&&a.memoizedState!==null,e.mode&1?(U$1=(at=U$1)||it,ck(s,e),U$1=at):ck(s,e),ek(e),c&8192){if(at=e.memoizedState!==null,(e.stateNode.isHidden=at)&&!it&&e.mode&1)for(V$1=e,it=e.child;it!==null;){for(ot=V$1=it;V$1!==null;){switch(lt=V$1,ct=lt.child,lt.tag){case 0:case 11:case 14:case 15:Pj(4,lt,lt.return);break;case 1:Lj(lt,lt.return);var dt=lt.stateNode;if(typeof dt.componentWillUnmount=="function"){c=lt,a=lt.return;try{s=c,dt.props=s.memoizedProps,dt.state=s.memoizedState,dt.componentWillUnmount()}catch(ut){W$1(c,a,ut)}}break;case 5:Lj(lt,lt.return);break;case 22:if(lt.memoizedState!==null){gk(ot);continue}}ct!==null?(ct.return=lt,V$1=ct):gk(ot)}it=it.sibling}e:for(it=null,ot=e;;){if(ot.tag===5){if(it===null){it=ot;try{g=ot.stateNode,at?(et=g.style,typeof et.setProperty=="function"?et.setProperty("display","none","important"):et.display="none"):(nt=ot.stateNode,st=ot.memoizedProps.style,rt=st!=null&&st.hasOwnProperty("display")?st.display:null,nt.style.display=rb("display",rt))}catch(ut){W$1(e,e.return,ut)}}}else if(ot.tag===6){if(it===null)try{ot.stateNode.nodeValue=at?"":ot.memoizedProps}catch(ut){W$1(e,e.return,ut)}}else if((ot.tag!==22&&ot.tag!==23||ot.memoizedState===null||ot===e)&&ot.child!==null){ot.child.return=ot,ot=ot.child;continue}if(ot===e)break e;for(;ot.sibling===null;){if(ot.return===null||ot.return===e)break e;it===ot&&(it=null),ot=ot.return}it===ot&&(it=null),ot.sibling.return=ot.return,ot=ot.sibling}}break;case 19:ck(s,e),ek(e),c&4&&ak(e);break;case 21:break;default:ck(s,e),ek(e)}}function ek(e){var s=e.flags;if(s&2){try{e:{for(var a=e.return;a!==null;){if(Tj(a)){var c=a;break e}a=a.return}throw Error(p(160))}switch(c.tag){case 5:var g=c.stateNode;c.flags&32&&(ob(g,""),c.flags&=-33);var et=Uj(e);Wj(e,et,g);break;case 3:case 4:var rt=c.stateNode.containerInfo,nt=Uj(e);Vj(e,nt,rt);break;default:throw Error(p(161))}}catch(st){W$1(e,e.return,st)}e.flags&=-3}s&4096&&(e.flags&=-4097)}function hk(e,s,a){V$1=e,ik(e)}function ik(e,s,a){for(var c=(e.mode&1)!==0;V$1!==null;){var g=V$1,et=g.child;if(g.tag===22&&c){var rt=g.memoizedState!==null||Jj;if(!rt){var nt=g.alternate,st=nt!==null&&nt.memoizedState!==null||U$1;nt=Jj;var at=U$1;if(Jj=rt,(U$1=st)&&!at)for(V$1=g;V$1!==null;)rt=V$1,st=rt.child,rt.tag===22&&rt.memoizedState!==null?jk(g):st!==null?(st.return=rt,V$1=st):jk(g);for(;et!==null;)V$1=et,ik(et),et=et.sibling;V$1=g,Jj=nt,U$1=at}kk(e)}else g.subtreeFlags&8772&&et!==null?(et.return=g,V$1=et):kk(e)}}function kk(e){for(;V$1!==null;){var s=V$1;if(s.flags&8772){var a=s.alternate;try{if(s.flags&8772)switch(s.tag){case 0:case 11:case 15:U$1||Qj(5,s);break;case 1:var c=s.stateNode;if(s.flags&4&&!U$1)if(a===null)c.componentDidMount();else{var g=s.elementType===s.type?a.memoizedProps:Ci(s.type,a.memoizedProps);c.componentDidUpdate(g,a.memoizedState,c.__reactInternalSnapshotBeforeUpdate)}var et=s.updateQueue;et!==null&&sh(s,et,c);break;case 3:var rt=s.updateQueue;if(rt!==null){if(a=null,s.child!==null)switch(s.child.tag){case 5:a=s.child.stateNode;break;case 1:a=s.child.stateNode}sh(s,rt,a)}break;case 5:var nt=s.stateNode;if(a===null&&s.flags&4){a=nt;var st=s.memoizedProps;switch(s.type){case"button":case"input":case"select":case"textarea":st.autoFocus&&a.focus();break;case"img":st.src&&(a.src=st.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(s.memoizedState===null){var at=s.alternate;if(at!==null){var it=at.memoizedState;if(it!==null){var ot=it.dehydrated;ot!==null&&bd(ot)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(p(163))}U$1||s.flags&512&&Rj(s)}catch(lt){W$1(s,s.return,lt)}}if(s===e){V$1=null;break}if(a=s.sibling,a!==null){a.return=s.return,V$1=a;break}V$1=s.return}}function gk(e){for(;V$1!==null;){var s=V$1;if(s===e){V$1=null;break}var a=s.sibling;if(a!==null){a.return=s.return,V$1=a;break}V$1=s.return}}function jk(e){for(;V$1!==null;){var s=V$1;try{switch(s.tag){case 0:case 11:case 15:var a=s.return;try{Qj(4,s)}catch(st){W$1(s,a,st)}break;case 1:var c=s.stateNode;if(typeof c.componentDidMount=="function"){var g=s.return;try{c.componentDidMount()}catch(st){W$1(s,g,st)}}var et=s.return;try{Rj(s)}catch(st){W$1(s,et,st)}break;case 5:var rt=s.return;try{Rj(s)}catch(st){W$1(s,rt,st)}}}catch(st){W$1(s,s.return,st)}if(s===e){V$1=null;break}var nt=s.sibling;if(nt!==null){nt.return=s.return,V$1=nt;break}V$1=s.return}}var lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K$1=0,Q$1=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=1/0,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R$1(){return K$1&6?B$1():Ak!==-1?Ak:Ak=B$1()}function yi(e){return e.mode&1?K$1&2&&Z!==0?Z&-Z:Kg.transition!==null?(Bk===0&&(Bk=yc()),Bk):(e=C$1,e!==0||(e=window.event,e=e===void 0?16:jd(e.type)),e):1}function gi(e,s,a,c){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(e,a,c),(!(K$1&2)||e!==Q$1)&&(e===Q$1&&(!(K$1&2)&&(qk|=a),T===4&&Ck(e,Z)),Dk(e,c),a===1&&K$1===0&&!(s.mode&1)&&(Gj=B$1()+500,fg&&jg()))}function Dk(e,s){var a=e.callbackNode;wc(e,s);var c=uc(e,e===Q$1?Z:0);if(c===0)a!==null&&bc(a),e.callbackNode=null,e.callbackPriority=0;else if(s=c&-c,e.callbackPriority!==s){if(a!=null&&bc(a),s===1)e.tag===0?ig(Ek.bind(null,e)):hg(Ek.bind(null,e)),Jf(function(){!(K$1&6)&&jg()}),a=null;else{switch(Dc(c)){case 1:a=fc;break;case 4:a=gc;break;case 16:a=hc;break;case 536870912:a=jc;break;default:a=hc}a=Fk(a,Gk.bind(null,e))}e.callbackPriority=s,e.callbackNode=a}}function Gk(e,s){if(Ak=-1,Bk=0,K$1&6)throw Error(p(327));var a=e.callbackNode;if(Hk()&&e.callbackNode!==a)return null;var c=uc(e,e===Q$1?Z:0);if(c===0)return null;if(c&30||c&e.expiredLanes||s)s=Ik(e,c);else{s=c;var g=K$1;K$1|=2;var et=Jk();(Q$1!==e||Z!==s)&&(uk=null,Gj=B$1()+500,Kk(e,s));do try{Lk();break}catch(nt){Mk(e,nt)}while(!0);$g(),mk.current=et,K$1=g,Y!==null?s=0:(Q$1=null,Z=0,s=T)}if(s!==0){if(s===2&&(g=xc(e),g!==0&&(c=g,s=Nk(e,g))),s===1)throw a=pk,Kk(e,0),Ck(e,c),Dk(e,B$1()),a;if(s===6)Ck(e,c);else{if(g=e.current.alternate,!(c&30)&&!Ok(g)&&(s=Ik(e,c),s===2&&(et=xc(e),et!==0&&(c=et,s=Nk(e,et))),s===1))throw a=pk,Kk(e,0),Ck(e,c),Dk(e,B$1()),a;switch(e.finishedWork=g,e.finishedLanes=c,s){case 0:case 1:throw Error(p(345));case 2:Pk(e,tk,uk);break;case 3:if(Ck(e,c),(c&130023424)===c&&(s=fk+500-B$1(),10<s)){if(uc(e,0)!==0)break;if(g=e.suspendedLanes,(g&c)!==c){R$1(),e.pingedLanes|=e.suspendedLanes&g;break}e.timeoutHandle=Ff(Pk.bind(null,e,tk,uk),s);break}Pk(e,tk,uk);break;case 4:if(Ck(e,c),(c&4194240)===c)break;for(s=e.eventTimes,g=-1;0<c;){var rt=31-oc(c);et=1<<rt,rt=s[rt],rt>g&&(g=rt),c&=~et}if(c=g,c=B$1()-c,c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3e3>c?3e3:4320>c?4320:1960*lk(c/1960))-c,10<c){e.timeoutHandle=Ff(Pk.bind(null,e,tk,uk),c);break}Pk(e,tk,uk);break;case 5:Pk(e,tk,uk);break;default:throw Error(p(329))}}}return Dk(e,B$1()),e.callbackNode===a?Gk.bind(null,e):null}function Nk(e,s){var a=sk;return e.current.memoizedState.isDehydrated&&(Kk(e,s).flags|=256),e=Ik(e,s),e!==2&&(s=tk,tk=a,s!==null&&Fj(s)),e}function Fj(e){tk===null?tk=e:tk.push.apply(tk,e)}function Ok(e){for(var s=e;;){if(s.flags&16384){var a=s.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var c=0;c<a.length;c++){var g=a[c],et=g.getSnapshot;g=g.value;try{if(!He$1(et(),g))return!1}catch{return!1}}}if(a=s.child,s.subtreeFlags&16384&&a!==null)a.return=s,s=a;else{if(s===e)break;for(;s.sibling===null;){if(s.return===null||s.return===e)return!0;s=s.return}s.sibling.return=s.return,s=s.sibling}}return!0}function Ck(e,s){for(s&=~rk,s&=~qk,e.suspendedLanes|=s,e.pingedLanes&=~s,e=e.expirationTimes;0<s;){var a=31-oc(s),c=1<<a;e[a]=-1,s&=~c}}function Ek(e){if(K$1&6)throw Error(p(327));Hk();var s=uc(e,0);if(!(s&1))return Dk(e,B$1()),null;var a=Ik(e,s);if(e.tag!==0&&a===2){var c=xc(e);c!==0&&(s=c,a=Nk(e,c))}if(a===1)throw a=pk,Kk(e,0),Ck(e,s),Dk(e,B$1()),a;if(a===6)throw Error(p(345));return e.finishedWork=e.current.alternate,e.finishedLanes=s,Pk(e,tk,uk),Dk(e,B$1()),null}function Qk(e,s){var a=K$1;K$1|=1;try{return e(s)}finally{K$1=a,K$1===0&&(Gj=B$1()+500,fg&&jg())}}function Rk(e){wk!==null&&wk.tag===0&&!(K$1&6)&&Hk();var s=K$1;K$1|=1;var a=ok.transition,c=C$1;try{if(ok.transition=null,C$1=1,e)return e()}finally{C$1=c,ok.transition=a,K$1=s,!(K$1&6)&&jg()}}function Hj(){fj=ej.current,E$2(ej)}function Kk(e,s){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,Gf(a)),Y!==null)for(a=Y.return;a!==null;){var c=a;switch(wg(c),c.tag){case 1:c=c.type.childContextTypes,c!=null&&$f();break;case 3:zh(),E$2(Wf),E$2(H),Eh();break;case 5:Bh(c);break;case 4:zh();break;case 13:E$2(L$2);break;case 19:E$2(L$2);break;case 10:ah(c.type._context);break;case 22:case 23:Hj()}a=a.return}if(Q$1=e,Y=e=Pg(e.current,null),Z=fj=s,T=0,pk=null,rk=qk=rh=0,tk=sk=null,fh!==null){for(s=0;s<fh.length;s++)if(a=fh[s],c=a.interleaved,c!==null){a.interleaved=null;var g=c.next,et=a.pending;if(et!==null){var rt=et.next;et.next=g,c.next=rt}a.pending=c}fh=null}return e}function Mk(e,s){do{var a=Y;try{if($g(),Fh.current=Rh,Ih){for(var c=M$2.memoizedState;c!==null;){var g=c.queue;g!==null&&(g.pending=null),c=c.next}Ih=!1}if(Hh=0,O$1=N$1=M$2=null,Jh=!1,Kh=0,nk.current=null,a===null||a.return===null){T=1,pk=s,Y=null;break}e:{var et=e,rt=a.return,nt=a,st=s;if(s=Z,nt.flags|=32768,st!==null&&typeof st=="object"&&typeof st.then=="function"){var at=st,it=nt,ot=it.tag;if(!(it.mode&1)&&(ot===0||ot===11||ot===15)){var lt=it.alternate;lt?(it.updateQueue=lt.updateQueue,it.memoizedState=lt.memoizedState,it.lanes=lt.lanes):(it.updateQueue=null,it.memoizedState=null)}var ct=Ui(rt);if(ct!==null){ct.flags&=-257,Vi(ct,rt,nt,et,s),ct.mode&1&&Si(et,at,s),s=ct,st=at;var dt=s.updateQueue;if(dt===null){var ut=new Set;ut.add(st),s.updateQueue=ut}else dt.add(st);break e}else{if(!(s&1)){Si(et,at,s),tj();break e}st=Error(p(426))}}else if(I$1&&nt.mode&1){var xt=Ui(rt);if(xt!==null){!(xt.flags&65536)&&(xt.flags|=256),Vi(xt,rt,nt,et,s),Jg(Ji(st,nt));break e}}et=st=Ji(st,nt),T!==4&&(T=2),sk===null?sk=[et]:sk.push(et),et=rt;do{switch(et.tag){case 3:et.flags|=65536,s&=-s,et.lanes|=s;var gt=Ni(et,st,s);ph(et,gt);break e;case 1:nt=st;var ht=et.type,mt=et.stateNode;if(!(et.flags&128)&&(typeof ht.getDerivedStateFromError=="function"||mt!==null&&typeof mt.componentDidCatch=="function"&&(Ri===null||!Ri.has(mt)))){et.flags|=65536,s&=-s,et.lanes|=s;var kt=Qi(et,nt,s);ph(et,kt);break e}}et=et.return}while(et!==null)}Sk(a)}catch(Ct){s=Ct,Y===a&&a!==null&&(Y=a=a.return);continue}break}while(!0)}function Jk(){var e=mk.current;return mk.current=Rh,e===null?Rh:e}function tj(){(T===0||T===3||T===2)&&(T=4),Q$1===null||!(rh&268435455)&&!(qk&268435455)||Ck(Q$1,Z)}function Ik(e,s){var a=K$1;K$1|=2;var c=Jk();(Q$1!==e||Z!==s)&&(uk=null,Kk(e,s));do try{Tk();break}catch(g){Mk(e,g)}while(!0);if($g(),K$1=a,mk.current=c,Y!==null)throw Error(p(261));return Q$1=null,Z=0,T}function Tk(){for(;Y!==null;)Uk(Y)}function Lk(){for(;Y!==null&&!cc();)Uk(Y)}function Uk(e){var s=Vk(e.alternate,e,fj);e.memoizedProps=e.pendingProps,s===null?Sk(e):Y=s,nk.current=null}function Sk(e){var s=e;do{var a=s.alternate;if(e=s.return,s.flags&32768){if(a=Ij(a,s),a!==null){a.flags&=32767,Y=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{T=6,Y=null;return}}else if(a=Ej(a,s,fj),a!==null){Y=a;return}if(s=s.sibling,s!==null){Y=s;return}Y=s=e}while(s!==null);T===0&&(T=5)}function Pk(e,s,a){var c=C$1,g=ok.transition;try{ok.transition=null,C$1=1,Wk(e,s,a,c)}finally{ok.transition=g,C$1=c}return null}function Wk(e,s,a,c){do Hk();while(wk!==null);if(K$1&6)throw Error(p(327));a=e.finishedWork;var g=e.finishedLanes;if(a===null)return null;if(e.finishedWork=null,e.finishedLanes=0,a===e.current)throw Error(p(177));e.callbackNode=null,e.callbackPriority=0;var et=a.lanes|a.childLanes;if(Bc(e,et),e===Q$1&&(Y=Q$1=null,Z=0),!(a.subtreeFlags&2064)&&!(a.flags&2064)||vk||(vk=!0,Fk(hc,function(){return Hk(),null})),et=(a.flags&15990)!==0,a.subtreeFlags&15990||et){et=ok.transition,ok.transition=null;var rt=C$1;C$1=1;var nt=K$1;K$1|=4,nk.current=null,Oj(e,a),dk(a,e),Oe$1(Df),dd=!!Cf,Df=Cf=null,e.current=a,hk(a),dc(),K$1=nt,C$1=rt,ok.transition=et}else e.current=a;if(vk&&(vk=!1,wk=e,xk=g),et=e.pendingLanes,et===0&&(Ri=null),mc(a.stateNode),Dk(e,B$1()),s!==null)for(c=e.onRecoverableError,a=0;a<s.length;a++)g=s[a],c(g.value,{componentStack:g.stack,digest:g.digest});if(Oi)throw Oi=!1,e=Pi,Pi=null,e;return xk&1&&e.tag!==0&&Hk(),et=e.pendingLanes,et&1?e===zk?yk++:(yk=0,zk=e):yk=0,jg(),null}function Hk(){if(wk!==null){var e=Dc(xk),s=ok.transition,a=C$1;try{if(ok.transition=null,C$1=16>e?16:e,wk===null)var c=!1;else{if(e=wk,wk=null,xk=0,K$1&6)throw Error(p(331));var g=K$1;for(K$1|=4,V$1=e.current;V$1!==null;){var et=V$1,rt=et.child;if(V$1.flags&16){var nt=et.deletions;if(nt!==null){for(var st=0;st<nt.length;st++){var at=nt[st];for(V$1=at;V$1!==null;){var it=V$1;switch(it.tag){case 0:case 11:case 15:Pj(8,it,et)}var ot=it.child;if(ot!==null)ot.return=it,V$1=ot;else for(;V$1!==null;){it=V$1;var lt=it.sibling,ct=it.return;if(Sj(it),it===at){V$1=null;break}if(lt!==null){lt.return=ct,V$1=lt;break}V$1=ct}}}var dt=et.alternate;if(dt!==null){var ut=dt.child;if(ut!==null){dt.child=null;do{var xt=ut.sibling;ut.sibling=null,ut=xt}while(ut!==null)}}V$1=et}}if(et.subtreeFlags&2064&&rt!==null)rt.return=et,V$1=rt;else e:for(;V$1!==null;){if(et=V$1,et.flags&2048)switch(et.tag){case 0:case 11:case 15:Pj(9,et,et.return)}var gt=et.sibling;if(gt!==null){gt.return=et.return,V$1=gt;break e}V$1=et.return}}var ht=e.current;for(V$1=ht;V$1!==null;){rt=V$1;var mt=rt.child;if(rt.subtreeFlags&2064&&mt!==null)mt.return=rt,V$1=mt;else e:for(rt=ht;V$1!==null;){if(nt=V$1,nt.flags&2048)try{switch(nt.tag){case 0:case 11:case 15:Qj(9,nt)}}catch(Ct){W$1(nt,nt.return,Ct)}if(nt===rt){V$1=null;break e}var kt=nt.sibling;if(kt!==null){kt.return=nt.return,V$1=kt;break e}V$1=nt.return}}if(K$1=g,jg(),lc&&typeof lc.onPostCommitFiberRoot=="function")try{lc.onPostCommitFiberRoot(kc,e)}catch{}c=!0}return c}finally{C$1=a,ok.transition=s}}return!1}function Xk(e,s,a){s=Ji(a,s),s=Ni(e,s,1),e=nh(e,s,1),s=R$1(),e!==null&&(Ac(e,1,s),Dk(e,s))}function W$1(e,s,a){if(e.tag===3)Xk(e,e,a);else for(;s!==null;){if(s.tag===3){Xk(s,e,a);break}else if(s.tag===1){var c=s.stateNode;if(typeof s.type.getDerivedStateFromError=="function"||typeof c.componentDidCatch=="function"&&(Ri===null||!Ri.has(c))){e=Ji(a,e),e=Qi(s,e,1),s=nh(s,e,1),e=R$1(),s!==null&&(Ac(s,1,e),Dk(s,e));break}}s=s.return}}function Ti(e,s,a){var c=e.pingCache;c!==null&&c.delete(s),s=R$1(),e.pingedLanes|=e.suspendedLanes&a,Q$1===e&&(Z&a)===a&&(T===4||T===3&&(Z&130023424)===Z&&500>B$1()-fk?Kk(e,0):rk|=a),Dk(e,s)}function Yk(e,s){s===0&&(e.mode&1?(s=sc,sc<<=1,!(sc&130023424)&&(sc=4194304)):s=1);var a=R$1();e=ih(e,s),e!==null&&(Ac(e,s,a),Dk(e,a))}function uj(e){var s=e.memoizedState,a=0;s!==null&&(a=s.retryLane),Yk(e,a)}function bk(e,s){var a=0;switch(e.tag){case 13:var c=e.stateNode,g=e.memoizedState;g!==null&&(a=g.retryLane);break;case 19:c=e.stateNode;break;default:throw Error(p(314))}c!==null&&c.delete(s),Yk(e,a)}var Vk;Vk=function(e,s,a){if(e!==null)if(e.memoizedProps!==s.pendingProps||Wf.current)dh=!0;else{if(!(e.lanes&a)&&!(s.flags&128))return dh=!1,yj(e,s,a);dh=!!(e.flags&131072)}else dh=!1,I$1&&s.flags&1048576&&ug(s,ng,s.index);switch(s.lanes=0,s.tag){case 2:var c=s.type;ij(e,s),e=s.pendingProps;var g=Yf(s,H.current);ch(s,a),g=Nh(null,s,c,e,g,a);var et=Sh();return s.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(s.tag=1,s.memoizedState=null,s.updateQueue=null,Zf(c)?(et=!0,cg(s)):et=!1,s.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,kh(s),g.updater=Ei,s.stateNode=g,g._reactInternals=s,Ii(s,c,e,a),s=jj(null,s,c,!0,et,a)):(s.tag=0,I$1&&et&&vg(s),Xi(null,s,g,a),s=s.child),s;case 16:c=s.elementType;e:{switch(ij(e,s),e=s.pendingProps,g=c._init,c=g(c._payload),s.type=c,g=s.tag=Zk(c),e=Ci(c,e),g){case 0:s=cj(null,s,c,e,a);break e;case 1:s=hj(null,s,c,e,a);break e;case 11:s=Yi(null,s,c,e,a);break e;case 14:s=$i(null,s,c,Ci(c.type,e),a);break e}throw Error(p(306,c,""))}return s;case 0:return c=s.type,g=s.pendingProps,g=s.elementType===c?g:Ci(c,g),cj(e,s,c,g,a);case 1:return c=s.type,g=s.pendingProps,g=s.elementType===c?g:Ci(c,g),hj(e,s,c,g,a);case 3:e:{if(kj(s),e===null)throw Error(p(387));c=s.pendingProps,et=s.memoizedState,g=et.element,lh(e,s),qh(s,c,null,a);var rt=s.memoizedState;if(c=rt.element,et.isDehydrated)if(et={element:c,isDehydrated:!1,cache:rt.cache,pendingSuspenseBoundaries:rt.pendingSuspenseBoundaries,transitions:rt.transitions},s.updateQueue.baseState=et,s.memoizedState=et,s.flags&256){g=Ji(Error(p(423)),s),s=lj(e,s,c,a,g);break e}else if(c!==g){g=Ji(Error(p(424)),s),s=lj(e,s,c,a,g);break e}else for(yg=Lf(s.stateNode.containerInfo.firstChild),xg=s,I$1=!0,zg=null,a=Vg(s,null,c,a),s.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Ig(),c===g){s=Zi(e,s,a);break e}Xi(e,s,c,a)}s=s.child}return s;case 5:return Ah(s),e===null&&Eg(s),c=s.type,g=s.pendingProps,et=e!==null?e.memoizedProps:null,rt=g.children,Ef(c,g)?rt=null:et!==null&&Ef(c,et)&&(s.flags|=32),gj(e,s),Xi(e,s,rt,a),s.child;case 6:return e===null&&Eg(s),null;case 13:return oj(e,s,a);case 4:return yh(s,s.stateNode.containerInfo),c=s.pendingProps,e===null?s.child=Ug(s,null,c,a):Xi(e,s,c,a),s.child;case 11:return c=s.type,g=s.pendingProps,g=s.elementType===c?g:Ci(c,g),Yi(e,s,c,g,a);case 7:return Xi(e,s,s.pendingProps,a),s.child;case 8:return Xi(e,s,s.pendingProps.children,a),s.child;case 12:return Xi(e,s,s.pendingProps.children,a),s.child;case 10:e:{if(c=s.type._context,g=s.pendingProps,et=s.memoizedProps,rt=g.value,G$1(Wg,c._currentValue),c._currentValue=rt,et!==null)if(He$1(et.value,rt)){if(et.children===g.children&&!Wf.current){s=Zi(e,s,a);break e}}else for(et=s.child,et!==null&&(et.return=s);et!==null;){var nt=et.dependencies;if(nt!==null){rt=et.child;for(var st=nt.firstContext;st!==null;){if(st.context===c){if(et.tag===1){st=mh(-1,a&-a),st.tag=2;var at=et.updateQueue;if(at!==null){at=at.shared;var it=at.pending;it===null?st.next=st:(st.next=it.next,it.next=st),at.pending=st}}et.lanes|=a,st=et.alternate,st!==null&&(st.lanes|=a),bh(et.return,a,s),nt.lanes|=a;break}st=st.next}}else if(et.tag===10)rt=et.type===s.type?null:et.child;else if(et.tag===18){if(rt=et.return,rt===null)throw Error(p(341));rt.lanes|=a,nt=rt.alternate,nt!==null&&(nt.lanes|=a),bh(rt,a,s),rt=et.sibling}else rt=et.child;if(rt!==null)rt.return=et;else for(rt=et;rt!==null;){if(rt===s){rt=null;break}if(et=rt.sibling,et!==null){et.return=rt.return,rt=et;break}rt=rt.return}et=rt}Xi(e,s,g.children,a),s=s.child}return s;case 9:return g=s.type,c=s.pendingProps.children,ch(s,a),g=eh(g),c=c(g),s.flags|=1,Xi(e,s,c,a),s.child;case 14:return c=s.type,g=Ci(c,s.pendingProps),g=Ci(c.type,g),$i(e,s,c,g,a);case 15:return bj(e,s,s.type,s.pendingProps,a);case 17:return c=s.type,g=s.pendingProps,g=s.elementType===c?g:Ci(c,g),ij(e,s),s.tag=1,Zf(c)?(e=!0,cg
vendor: 5,522 bytes, line 40
40(s)):e=!1,ch(s,a),Gi(s,c,g),Ii(s,c,g,a),jj(null,s,c,!0,e,a);case 19:return xj(e,s,a);case 22:return dj(e,s,a)}throw Error(p(156,s.tag))};function Fk(e,s){return ac(e,s)}function $k(e,s,a,c){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=s,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=c,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(e,s,a,c){return new $k(e,s,a,c)}function aj(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Zk(e){if(typeof e=="function")return aj(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Da)return 11;if(e===Ga)return 14}return 2}function Pg(e,s){var a=e.alternate;return a===null?(a=Bg(e.tag,s,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=s,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,s=e.dependencies,a.dependencies=s===null?null:{lanes:s.lanes,firstContext:s.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function Rg(e,s,a,c,g,et){var rt=2;if(c=e,typeof e=="function")aj(e)&&(rt=1);else if(typeof e=="string")rt=5;else e:switch(e){case ya:return Tg(a.children,g,et,s);case za:rt=8,g|=8;break;case Aa:return e=Bg(12,a,s,g|2),e.elementType=Aa,e.lanes=et,e;case Ea:return e=Bg(13,a,s,g),e.elementType=Ea,e.lanes=et,e;case Fa:return e=Bg(19,a,s,g),e.elementType=Fa,e.lanes=et,e;case Ia:return pj(a,g,et,s);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ba:rt=10;break e;case Ca:rt=9;break e;case Da:rt=11;break e;case Ga:rt=14;break e;case Ha:rt=16,c=null;break e}throw Error(p(130,e==null?e:typeof e,""))}return s=Bg(rt,a,s,g),s.elementType=e,s.type=c,s.lanes=et,s}function Tg(e,s,a,c){return e=Bg(7,e,c,s),e.lanes=a,e}function pj(e,s,a,c){return e=Bg(22,e,c,s),e.elementType=Ia,e.lanes=a,e.stateNode={isHidden:!1},e}function Qg(e,s,a){return e=Bg(6,e,null,s),e.lanes=a,e}function Sg(e,s,a){return s=Bg(4,e.children!==null?e.children:[],e.key,s),s.lanes=a,s.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},s}function al(e,s,a,c,g){this.tag=s,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=c,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function bl(e,s,a,c,g,et,rt,nt,st){return e=new al(e,s,a,nt,st),s===1?(s=1,et===!0&&(s|=8)):s=0,et=Bg(3,null,null,s),e.current=et,et.stateNode=e,et.memoizedState={element:c,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(et),e}function cl(e,s,a){var c=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:wa,key:c==null?null:""+c,children:e,containerInfo:s,implementation:a}}function dl(e){if(!e)return Vf;e=e._reactInternals;e:{if(Vb(e)!==e||e.tag!==1)throw Error(p(170));var s=e;do{switch(s.tag){case 3:s=s.stateNode.context;break e;case 1:if(Zf(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break e}}s=s.return}while(s!==null);throw Error(p(171))}if(e.tag===1){var a=e.type;if(Zf(a))return bg(e,a,s)}return s}function el(e,s,a,c,g,et,rt,nt,st){return e=bl(a,c,!0,e,g,et,rt,nt,st),e.context=dl(null),a=e.current,c=R$1(),g=yi(a),et=mh(c,g),et.callback=s??null,nh(a,et,g),e.current.lanes=g,Ac(e,g,c),Dk(e,c),e}function fl(e,s,a,c){var g=s.current,et=R$1(),rt=yi(g);return a=dl(a),s.context===null?s.context=a:s.pendingContext=a,s=mh(et,rt),s.payload={element:e},c=c===void 0?null:c,c!==null&&(s.callback=c),e=nh(g,s,rt),e!==null&&(gi(e,g,rt,et),oh(e,g,rt)),rt}function gl(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function hl(e,s){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<s?a:s}}function il(e,s){hl(e,s),(e=e.alternate)&&hl(e,s)}function jl(){return null}var kl=typeof reportError=="function"?reportError:function(e){console.error(e)};function ll(e){this._internalRoot=e}ml.prototype.render=ll.prototype.render=function(e){var s=this._internalRoot;if(s===null)throw Error(p(409));fl(e,s,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var s=e.containerInfo;Rk(function(){fl(null,e,null,null)}),s[uf]=null}};function ml(e){this._internalRoot=e}ml.prototype.unstable_scheduleHydration=function(e){if(e){var s=Hc();e={blockedOn:null,target:e,priority:s};for(var a=0;a<Qc.length&&s!==0&&s<Qc[a].priority;a++);Qc.splice(a,0,e),a===0&&Vc(e)}};function nl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function ol(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function pl(){}function ql(e,s,a,c,g){if(g){if(typeof c=="function"){var et=c;c=function(){var at=gl(rt);et.call(at)}}var rt=el(s,c,e,0,null,!1,!1,"",pl);
40return e._reactRootContainer=rt,e[uf]=rt.current,sf(e.nodeType===8?e.parentNode:e),Rk(),rt}for(;g=e.lastChild;)e.removeChild(g);if(typeof c=="function"){var nt=c;c=function(){var at=gl(st);nt.call(at)}}var st=bl(e,0,!1,null,null,!1,!1,"",pl);return e._reactRootContainer=st,e[uf]=st.current,sf(e.nodeType===8?e.parentNode:e),Rk(function(){fl(s,st,a,c)}),st}function rl(e,s,a,c,g){var et=a._reactRootContainer;if(et){var rt=et;if(typeof g=="function"){var nt=g;g=function(){var st=gl(rt);nt.call(st)}}fl(s,rt,e,g)}else rt=ql(a,s,e,g,c);return gl(rt)}Ec=function(e){switch(e.tag){case 3:var s=e.stateNode;if(s.current.memoizedState.isDehydrated){var a=tc(s.pendingLanes);a!==0&&(Cc(s,a|1),Dk(s,B$1()),!(K$1&6)&&(Gj=B$1()+500,jg()))}break;case 13:Rk(function(){var c=ih(e,1);if(c!==null){var g=R$1();gi(c,e,1,g)}}),il(e,1)}};Fc=function(e){if(e.tag===13){var s=ih(e,134217728);if(s!==null){var a=R$1();gi(s,e,134217728,a)}il(e,134217728)}};Gc=function(e){if(e.tag===13){var s=yi(e),a=ih(e,s);if(a!==null){var c=R$1();gi(a,e,s,c)}il(e,s)}};Hc=function(){return C$1};Ic=function(e,s){var a=C$1;try{return C$1=e,s()}finally{C$1=a}};yb=function(e,s,a){switch(s){case"input":if(bb(e,a),s=a.name,a.type==="radio"&&s!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+s)+'][type="radio"]'),s=0;s<a.length;s++){var c=a[s];if(c!==e&&c.form===e.form){var g=Db(c);if(!g)throw Error(p(90));Wa(c),bb(c,g)}}}break;case"textarea":ib(e,a);break;case"select":s=a.value,s!=null&&fb(e,!!a.multiple,s,!1)}};Gb=Qk;Hb=Rk;var sl={usingClientEntryPoint:!1,Events:[Cb,ue$2,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Zb(e),e===null?null:e.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||jl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch{}}reactDom_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;reactDom_production_min.createPortal=function(e,s){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!nl(s))throw Error(p(200));return cl(e,s,null,a)};reactDom_production_min.createRoot=function(e,s){if(!nl(e))throw Error(p(299));var a=!1,c="",g=kl;return s!=null&&(s.unstable_strictMode===!0&&(a=!0),s.identifierPrefix!==void 0&&(c=s.identifierPrefix),s.onRecoverableError!==void 0&&(g=s.onRecoverableError)),s=bl(e,1,!1,null,null,a,!1,c,g),e[uf]=s.current,sf(e.nodeType===8?e.parentNode:e),new ll(s)};reactDom_production_min.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var s=e._reactInternals;if(s===void 0)throw typeof e.render=="function"?Error(p(188)):(e=Object.keys(e).join(","),Error(p(268,e)));return e=Zb(s),e=e===null?null:e.stateNode,e};reactDom_production_min.flushSync=function(e){return Rk(e)};reactDom_production_min.hydrate=function(e,s,a){if(!ol(s))throw Error(p(200));return rl(null,e,s,!0,a)};reactDom_production_min.hydrateRoot=function(e,s,a){if(!nl(e))throw Error(p(405));var c=a!=null&&a.hydratedSources||null,g=!1,et="",rt=kl;if(a!=null&&(a.unstable_strictMode===!0&&(g=!0),a.identifierPrefix!==void 0&&(et=a.identifierPrefix),a.onRecoverableError!==void 0&&(rt=a.onRecoverableError)),s=el(s,null,e,1,a??null,g,!1,et,rt),e[uf]=s.current,sf(e),c)for(e=0;e<c.length;e++)a=c[e],g=a._getVersion,g=g(a._source),s.mutableSourceEagerHydrationData==null?s.mutableSourceEagerHydrationData=[a,g]:s.mutableSourceEagerHydrationData.push(a,g);return new ml(s)};reactDom_production_min.render=function(e,s,a){if(!ol(s))throw Error(p(200));return rl(null,e,s,!1,a)};reactDom_production_min.unmountComponentAtNode=function(e){if(!ol(e))throw Error(p(40));return e._reactRootContainer?(Rk(function(){rl(null,null,e,!1,function(){e._reactRootContainer=null,e[uf]=null})}),!0):!1};reactDom_production_min.unstable_batchedUpdates=Qk;reactDom_production_min.unstable_renderSubtreeIntoContainer=function(e,s,a,c){if(!ol(a))throw Error(p(200));if(e==null||e._reactInternals===void 0)throw Error(p(38));return rl(e,s,a,!1,c)};reactDom_production_min.version="18.3.1-next-f1338f8080-20240426";function checkDCE(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(e){console.error(e)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports;const vt=getDefaultExportFromCjs(reactDomExports);var createRoot,m$1=reactDomExports;createRoot=m$1.createRoot,m$1.hydrateRoot;/** 41 * @remix-run/router v1.23.0 42 * 43 * Copyright (c) Remix Software Inc. 44 * 45 * This source code is licensed under the MIT license found in the 46 * LICENSE.md file in the root directory of this source tree. 47 * 48 * @license MIT 49 */function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c])}return e},_extends$2.apply(this,arguments)}var Action$1;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Action$1||(Action$1={}));const PopStateEventType="popstate";function createBrowserHistory(e){e===void 0&&(e={});function s(c,g){let{pathname:et,search:rt,hash:nt}=c.location;return createLocation("",{pathname:et,search:rt,hash:nt},g.state&&g.state.usr||null,g.state&&g.state.key||"default")}function a(c,g){return typeof g=="string"?g:createPath(g)}return getUrlBasedHistory(s,a,null,e)}function invariant(e,s){if(e===!1||e===null||typeof e>"u")throw new Error(s)}function warning(e,s){if(!e){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function createKey(){return Math.random().toString(36).substr(2,8)}function getHistoryState(e,s){return{usr:e.state,key:e.key,idx:s}}function createLocation(e,s,a,c){return a===void 0&&(a=null),_extends$2({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof s=="string"?parsePath(s):s,{state:a,key:s&&s.key||c||createKey()})}function createPath(e){let{pathname:s="/",search:a="",hash:c=""}=e;return a&&a!=="?"&&(s+=a.charAt(0)==="?"?a:"?"+a),c&&c!=="#"&&(s+=c.charAt(0)==="#"?c:"#"+c),s}function parsePath(e){let s={};if(e){let a=e.indexOf("#");a>=0&&(s.hash=e.substr(a),e=e.substr(0,a));let c=e.indexOf("?");c>=0&&(s.search=e.substr(c),e=e.substr(0,c)),e&&(s.pathname=e)}return s}function getUrlBasedHistory(e,s,a,c){c===void 0&&(c={});let{window:g=document.defaultView,v5Compat:et=!1}=c,rt=g.history,nt=Action$1.Pop,st=null,at=it();at==null&&(at=0,rt.replaceState(_extends$2({},rt.state,{idx:at}),""));function it(){return(rt.state||{idx:null}).idx}function ot(){nt=Action$1.Pop;let xt=it(),gt=xt==null?null:xt-at;at=xt,st&&st({action:nt,location:ut.location,delta:gt})}function lt(xt,gt){nt=Action$1.Push;let ht=createLocation(ut.location,xt,gt);at=it()+1;let mt=getHistoryState(ht,at),kt=ut.createHref(ht);try{rt.pushState(mt,"",kt)}catch(Ct){if(Ct instanceof DOMException&&Ct.name==="DataCloneError")throw Ct;g.location.assign(kt)}et&&st&&st({action:nt,location:ut.location,delta:1})}function ct(xt,gt){nt=Action$1.Replace;let ht=createLocation(ut.location,xt,gt);at=it();let mt=getHistoryState(ht,at),kt=ut.createHref(ht);rt.replaceState(mt,"",kt),et&&st&&st({action:nt,location:ut.location,delta:0})}function dt(xt){let gt=g.location.origin!=="null"?g.location.origin:g.location.href,ht=typeof xt=="string"?xt:createPath(xt);return ht=ht.replace(/ $/,"%20"),invariant(gt,"No window.location.(origin|href) available to create URL for href: "+ht),new URL(ht,gt)}let ut={get action(){return nt},get location(){return e(g,rt)},listen(xt){if(st)throw new Error("A history only accepts one active listener");return g.addEventListener(PopStateEventType,ot),st=xt,()=>{g.removeEventListener(PopStateEventType,ot),st=null}},createHref(xt){return s(g,xt)},createURL:dt,encodeLocation(xt){let gt=dt(xt);return{pathname:gt.pathname,search:gt.search,hash:gt.hash}},push:lt,replace:ct,go(xt){return rt.go(xt)}};return ut}var ResultType;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ResultType||(ResultType={}));function matchRoutes(e,s,a){return a===void 0&&(a="/"),matchRoutesImpl(e,s,a,!1)}function matchRoutesImpl(e,s,a,c){let g=typeof s=="string"?parsePath(s):s,et=stripBasename(g.pathname||"/",a);if(et==null)return null;let rt=flattenRoutes(e);rankRouteBranches(rt);let nt=null;for(let st=0;nt==null&&st<rt.length;++st){let at=decodePath(et);nt=matchRouteBranch(rt[st],at,c)}return nt}function flattenRoutes(e,s,a,c){s===void 0&&(s=[]),a===void 0&&(a=[]),c===void 0&&(c="");let g=(et,rt,nt)=>{let st={relativePath:nt===void 0?et.path||"":nt,caseSensitive:et.caseSensitive===!0,childrenIndex:rt,route:et};st.relativePath.startsWith("/")&&(invariant(st.relativePath.startsWith(c),'Absolute route path "'+st.relativePath+'" nested under path '+('"'+c+'" is not val
49id. An absolute child route path ')+"must start with the combined path of all its parent routes."),st.relativePath=st.relativePath.slice(c.length));let at=joinPaths([c,st.relativePath]),it=a.concat(st);et.children&&et.children.length>0&&(invariant(et.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+at+'".')),flattenRoutes(et.children,s,it,at)),!(et.path==null&&!et.index)&&s.push({path:at,score:computeScore(at,et.index),routesMeta:it})};return e.forEach((et,rt)=>{var nt;if(et.path===""||!((nt=et.path)!=null&&nt.includes("?")))g(et,rt);else for(let st of explodeOptionalSegments(et.path))g(et,rt,st)}),s}function explodeOptionalSegments(e){let s=e.split("/");if(s.length===0)return[];let[a,...c]=s,g=a.endsWith("?"),et=a.replace(/\?$/,"");if(c.length===0)return g?[et,""]:[et];let rt=explodeOptionalSegments(c.join("/")),nt=[];return nt.push(...rt.map(st=>st===""?et:[et,st].join("/"))),g&&nt.push(...rt),nt.map(st=>e.startsWith("/")&&st===""?"/":st)}function rankRouteBranches(e){e.sort((s,a)=>s.score!==a.score?a.score-s.score:compareIndexes(s.routesMeta.map(c=>c.childrenIndex),a.routesMeta.map(c=>c.childrenIndex)))}const paramRe=/^:[\w-]+$/,dynamicSegmentValue=3,indexRouteValue=2,emptySegmentValue=1,staticSegmentValue=10,splatPenalty=-2,isSplat=e=>e==="*";function computeScore(e,s){let a=e.split("/"),c=a.length;return a.some(isSplat)&&(c+=splatPenalty),s&&(c+=indexRouteValue),a.filter(g=>!isSplat(g)).reduce((g,et)=>g+(paramRe.test(et)?dynamicSegmentValue:et===""?emptySegmentValue:staticSegmentValue),c)}function compareIndexes(e,s){return e.length===s.length&&e.slice(0,-1).every((c,g)=>c===s[g])?e[e.length-1]-s[s.length-1]:0}function matchRouteBranch(e,s,a){let{routesMeta:c}=e,g={},et="/",rt=[];for(let nt=0;nt<c.length;++nt){let st=c[nt],at=nt===c.length-1,it=et==="/"?s:s.slice(et.length)||"/",ot=matchPath({path:st.relativePath,caseSensitive:st.caseSensitive,end:at},it),lt=st.route;if(!ot&&at&&a&&!c[c.length-1].route.index&&(ot=matchPath({path:st.relativePath,caseSensitive:st.caseSensitive,end:!1},it)),!ot)return null;
vendor: 14,935 bytes, lines 49-58
49Object.assign(g,ot.params),rt.push({params:g,pathname:joinPaths([et,ot.pathname]),pathnameBase:normalizePathname(joinPaths([et,ot.pathnameBase])),route:lt}),ot.pathnameBase!=="/"&&(et=joinPaths([et,ot.pathnameBase]))}return rt}function matchPath(e,s){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[a,c]=compilePath(e.path,e.caseSensitive,e.end),g=s.match(a);if(!g)return null;let et=g[0],rt=et.replace(/(.)\/+$/,"$1"),nt=g.slice(1);return{params:c.reduce((at,it,ot)=>{let{paramName:lt,isOptional:ct}=it;if(lt==="*"){let ut=nt[ot]||"";rt=et.slice(0,et.length-ut.length).replace(/(.)\/+$/,"$1")}const dt=nt[ot];return ct&&!dt?at[lt]=void 0:at[lt]=(dt||"").replace(/%2F/g,"/"),at},{}),pathname:et,pathnameBase:rt,pattern:e}}function compilePath(e,s,a){s===void 0&&(s=!1),a===void 0&&(a=!0),warning(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let c=[],g="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(rt,nt,st)=>(c.push({paramName:nt,isOptional:st!=null}),st?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(c.push({paramName:"*"}),g+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?g+="\\/*$":e!==""&&e!=="/"&&(g+="(?:(?=\\/|$))"),[new RegExp(g,s?void 0:"i"),c]}function decodePath(e){try{return e.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return warning(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+s+").")),e}}function stripBasename(e,s){if(s==="/")return e;if(!e.toLowerCase().startsWith(s.toLowerCase()))return null;let a=s.endsWith("/")?s.length-1:s.length,c=e.charAt(a);return c&&c!=="/"?null:e.slice(a)||"/"}function resolvePath(e,s){s===void 0&&(s="/");let{pathname:a,search:c="",hash:g=""}=typeof e=="string"?parsePath(e):e;return{pathname:a?a.startsWith("/")?a:resolvePathname(a,s):s,search:normalizeSearch(c),hash:normalizeHash(g)}}function resolvePathname(e,s){let a=s.replace(/\/+$/,"").split("/");return e.split("/").forEach(g=>{g===".."?a.length>1&&a.pop():g!=="."&&a.push(g)}),a.length>1?a.join("/"):"/"}function getInvalidPathError(e,s,a,c){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+s+"` field ["+JSON.stringify(c)+"]. Please separate it out to the ")+("`to."+a+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function getPathContributingMatches(e){return e.filter((s,a)=>a===0||s.route.path&&s.route.path.length>0)}function getResolveToMatches(e,s){let a=getPathContributingMatches(e);return s?a.map((c,g)=>g===a.length-1?c.pathname:c.pathnameBase):a.map(c=>c.pathnameBase)}function resolveTo(e,s,a,c){c===void 0&&(c=!1);let g;typeof e=="string"?g=parsePath(e):(g=_extends$2({},e),invariant(!g.pathname||!g.pathname.includes("?"),getInvalidPathError("?","pathname","search",g)),invariant(!g.pathname||!g.pathname.includes("#"),getInvalidPathError("#","pathname","hash",g)),invariant(!g.search||!g.search.includes("#"),getInvalidPathError("#","search","hash",g)));let et=e===""||g.pathname==="",rt=et?"/":g.pathname,nt;if(rt==null)nt=a;else{let ot=s.length-1;if(!c&&rt.startsWith("..")){let lt=rt.split("/");for(;lt[0]==="..";)lt.shift(),ot-=1;g.pathname=lt.join("/")}nt=ot>=0?s[ot]:"/"}let st=resolvePath(g,nt),at=rt&&rt!=="/"&&rt.endsWith("/"),it=(et||rt===".")&&a.endsWith("/");return!st.pathname.endsWith("/")&&(at||it)&&(st.pathname+="/"),st}const joinPaths=e=>e.join("/").replace(/\/\/+/g,"/"),normalizePathname=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),normalizeSearch=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,normalizeHash=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function isRouteErrorResponse(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const validMutationMethodsArr=["post","put","patch","delete"];new Set(validMutationMethodsArr);const validRequestMethodsArr=["get",...validMutationMethodsArr];new Set(validRequestMethodsArr);/** 50 * React Router v6.30.1 51 * 52 * Copyright (c) Remix Software Inc. 53 * 54 * This source code is licensed under the MIT license found in the 55 * LICENSE.md file in the root directory of this source tree. 56 * 57 * @license MIT 58 */function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c])}return e},_extends$1.apply(this,arguments)}const DataRouterContext=reactExports.createContext(null),DataRouterStateContext=reactExports.createContext(null),NavigationContext=reactExports.createContext(null),LocationContext=reactExports.createContext(null),RouteContext=reactExports.createContext({outlet:null,matches:[],isDataRoute:!1}),RouteErrorContext=reactExports.createContext(null);function useHref(e,s){let{relative:a}=s===void 0?{}:s;useInRouterContext()||invariant(!1);let{basename:c,navigator:g}=reactExports.useContext(NavigationContext),{hash:et,pathname:rt,search:nt}=useResolvedPath(e,{relative:a}),st=rt;return c!=="/"&&(st=rt==="/"?c:joinPaths([c,rt])),g.createHref({pathname:st,search:nt,hash:et})}function useInRouterContext(){return reactExports.useContext(LocationContext)!=null}function useLocation(){return useInRouterContext()||invariant(!1),reactExports.useContext(LocationContext).location}function useIsomorphicLayoutEffect$1(e){reactExports.useContext(NavigationContext).static||reactExports.useLayoutEffect(e)}function useNavigate(){let{isDataRoute:e}=reactExports.useContext(RouteContext);return e?useNavigateStable():useNavigateUnstable()}function useNavigateUnstable(){useInRouterContext()||invariant(!1);let e=reactExports.useContext(DataRouterContext),{basename:s,future:a,navigator:c}=reactExports.useContext(NavigationContext),{matches:g}=reactExports.useContext(RouteContext),{pathname:et}=useLocation(),rt=JSON.stringify(getResolveToMatches(g,a.v7_relativeSplatPath)),nt=reactExports.useRef(!1);return useIsomorphicLayoutEffect$1(()=>{nt.current=!0}),reactExports.useCallback(function(at,it){if(it===void 0&&(it={}),!nt.current)return;if(typeof at=="number"){c.go(at);return}let ot=resolveTo(at,JSON.parse(rt),et,it.relative==="path");e==null&&s!=="/"&&(ot.pathname=ot.pathname==="/"?s:joinPaths([s,ot.pathname])),(it.replace?c.replace:c.push)(ot,it.state,it)},[s,c,rt,et,e])}function useParams(){let{matches:e}=reactExports.useContext(RouteContext),s=e[e.length-1];return s?s.params:{}}function useResolvedPath(e,s){let{relative:a}=s===void 0?{}:s,{future:c}=reactExports.useContext(NavigationContext),{matches:g}=reactExports.useContext(RouteContext),{pathname:et}=useLocation(),rt=JSON.stringify(getResolveToMatches(g,c.v7_relativeSplatPath));return reactExports.useMemo(()=>resolveTo(e,JSON.parse(rt),et,a==="path"),[e,rt,et,a])}function useRoutes(e,s){return useRoutesImpl(e,s)}function useRoutesImpl(e,s,a,c){useInRouterContext()||invariant(!1);let{navigator:g}=reactExports.useContext(NavigationContext),{matches:et}=reactExports.useContext(RouteContext),rt=et[et.length-1],nt=rt?rt.params:{};rt&&rt.pathname;let st=rt?rt.pathnameBase:"/";rt&&rt.route;let at=useLocation(),it;if(s){var ot;let xt=typeof s=="string"?parsePath(s):s;st==="/"||(ot=xt.pathname)!=null&&ot.startsWith(st)||invariant(!1),it=xt}else it=at;let lt=it.pathname||"/",ct=lt;if(st!=="/"){let xt=st.replace(/^\//,"").split("/");ct="/"+lt.replace(/^\//,"").split("/").slice(xt.length).join("/")}let dt=matchRoutes(e,{pathname:ct}),ut=_renderMatches(dt&&dt.map(xt=>Object.assign({},xt,{params:Object.assign({},nt,xt.params),pathname:joinPaths([st,g.encodeLocation?g.encodeLocation(xt.pathname).pathname:xt.pathname]),pathnameBase:xt.pathnameBase==="/"?st:joinPaths([st,g.encodeLocation?g.encodeLocation(xt.pathnameBase).pathname:xt.pathnameBase])})),et,a,c);return s&&ut?reactExports.createElement(LocationContext.Provider,{value:{location:_extends$1({pathname:"/",search:"",hash:"",state:null,key:"default"},it),navigationType:Action$1.Pop}},ut):ut}function DefaultErrorComponent(){let e=useRouteError(),s=isRouteErrorResponse(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,g={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("h2",null,"Unexpected Application Error!"),reactExports.createElement("h3",{style:{fontStyle:"italic"}},s),a?reactExports.createElement("pre",{style:g},a):null,null)}const defaultErrorElement=reactExports.createElement(DefaultErrorComponent,null);class RenderErrorBoundary extends reactExports.Component{constructor(s){super(s),this.state={location:s.location,revalidation:s.revalidation,error:s.error}}static getDerivedStateFromError(s){return{error:s}}static getDerivedStateFromProps(s,a){return a.location!==s.location||a.revalidation!=="idle"&&s.revalidation==="idle"?{error:s.error,location:s.location,revalidation:s.revalidation}:{error:s.error!==void 0?s.error:a.error,location:a.location,revalidation:s.revalidation||a.revalidation}}componentDidCatch(s,a){console.error("React Router caught the following error during render",s,a)}render(){return this.state.error!==void 0?reactExports.createElement(RouteContext.Provider,{value:this.props.routeContext},reactExports.createElement(RouteErrorContext.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function RenderedRoute(e){let{routeContext:s,match:a,children:c}=e,g=reactExports.useContext(DataRouterContext);return g&&g.static&&g.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(g.staticContext._deepestRenderedBoundaryId=a.route.id),reactExports.createElement(RouteContext.Provider,{value:s},c)}function _renderMatches(e,s,a,c){var g;if(s===void 0&&(s=[]),a===void 0&&(a=null),c===void 0&&(c=null),e==null){var et;if(!a)return null;if(a.errors)e=a.matches;else if((et=c)!=null&&et.v7_partialHydration&&s.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let rt=e,nt=(g=a)==null?void 0:g.errors;if(nt!=null){let it=rt.findIndex(ot=>ot.route.id&&(nt==null?void 0:nt[ot.route.id])!==void 0);it>=0||invariant(!1),rt=rt.slice(0,Math.min(rt.length,it+1))}let st=!1,at=-1;if(a&&c&&c.v7_partialHydration)for(let it=0;it<rt.length;it++){let ot=rt[it];if((ot.route.HydrateFallback||ot.route.hydrateFallbackElement)&&(at=it),ot.route.id){let{loaderData:lt,errors:ct}=a,dt=ot.route.loader&<[ot.route.id]===void 0&&(!ct||ct[ot.route.id]===void 0);if(ot.route.lazy||dt){st=!0,at>=0?rt=rt.slice(0,at+1):rt=[rt[0]];break}}}return rt.reduceRight((it,ot,lt)=>{let ct,dt=!1,ut=null,xt=null;a&&(ct=nt&&ot.route.id?nt[ot.route.id]:void 0,ut=ot.route.errorElement||defaultErrorElement,st&&(at<0&<===0?(dt=!0,xt=null):at===lt&&(dt=!0,xt=ot.route.hydrateFallbackElement||null)));let gt=s.concat(rt.slice(0,lt+1)),ht=()=>{let mt;return ct?mt=ut:dt?mt=xt:ot.route.Component?mt=reactExports.createElement(ot.route.Component,null):ot.route.element?mt=ot.route.element:mt=it,reactExports.createElement(RenderedRoute,{match:ot,routeContext:{outlet:it,matches:gt,isDataRoute:a!=null},children:mt})};return a&&(ot.route.ErrorBoundary||ot.route.errorElement||lt===0)?reactExports.createElement(RenderErrorBoundary,{location:a.location,revalidation:a.revalidation,component:ut,error:ct,children:ht(),routeContext:{outlet:null,matches:gt,isDataRoute:!0}}):ht()},null)}var DataRouterHook$1=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(DataRouterHook$1||{}),DataRouterStateHook$1=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(DataRouterStateHook$1||{});function useDataRouterContext(e){let s=reactExports.useContext(DataRouterContext);return s||invariant(!1),s}function useDataRouterState(e){let s=reactExports.useContext(DataRouterStateContext);return s||invariant(!1),s}function useRouteContext(e){let s=reactExports.useContext(RouteContext);return s||invariant(!1),s}function useCurrentRouteId(e){let s=useRouteContext(),a=s.matches[s.matches.length-1];return a.route.id||invariant(!1),a.route.id}function useRouteError(){var e;let s=reactExports.useContext(RouteErrorContext),a=useDataRouterState(DataRouterStateHook$1.UseRouteError),c=useCurrentRouteId(DataRouterStateHook$1.UseRouteError);return s!==void 0?s:(e=a.errors)==null?void 0:e[c]}function useNavigateStable(){let{router:e}=useDataRouterContext(DataRouterHook$1.UseNavigateStable),s=useCurrentRouteId(DataRouterStateHook$1.UseNavigateStable),a=reactExports.useRef(!1);return useIsomorphicLayoutEffect$1(()=>{a.current=!0}),reactExports.useCallback(function(g,et){et===void 0&&(et={}),a.current&&(typeof g=="number"?e.navigate(g):e.navigate(g,_extends$1({fromRouteId:s},et)))},[e,s])}function logV6DeprecationWarnings(e,s){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Navigate(e){let{to:s,replace:a,state:c,relative:g}=e;useInRouterContext()||invariant(!1);let{future:et,static:rt}=reactExports.useContext(NavigationContext),{matches:nt}=reactExports.useContext(RouteContext),{pathname:st}=useLocation(),at=useNavigate(),it=resolveTo(s,getResolveToMatches(nt,et.v7_relativeSplatPath),st,g==="path"),ot=JSON.stringify(it);return reactExports.useEffect(()=>at(JSON.parse(ot),{replace:a,state:c,relative:g}),[at,ot,g,a,c]),null}function Route(e){invariant(!1)}function Router(e){let{basename:s="/",children:a=null,location:c,navigationType:g=Action$1.Pop,navigator:et,static:rt=!1,future:nt}=e;useInRouterContext()&&invariant(!1);let st=s.replace(/^\/*/,"/"),at=reactExports.useMemo(()=>({basename:st,navigator:et,static:rt,future:_extends$1({v7_relativeSplatPath:!1},nt)}),[st,nt,et,rt]);typeof c=="string"&&(c=parsePath(c));let{pathname:it="/",search:ot="",hash:lt="",state:ct=null,key:dt="default"}=c,ut=reactExports.useMemo(()=>{let xt=stripBasename(it,st);return xt==null?null:{location:{pathname:xt,search:ot,hash:lt,state:ct,key:dt},navigationType:g}},[st,it,ot,lt,ct,dt,g]);return ut==null?null:reactExports.createElement(NavigationContext.Provider,{value:at},reactExports.createElement(LocationContext.Provider,{children:a,value:ut}))}function Routes(e){let{children:s,location:a}=e;return useRoutes(createRoutesFromChildren(s),a)}new Promise(()=>{});function createRoutesFromChildren(e,s){s===void 0&&(s=[]);let a=[];
58return reactExports.Children.forEach(e,(c,g)=>{if(!reactExports.isValidElement(c))return;let et=[...s,g];if(c.type===reactExports.Fragment){a.push.apply(a,createRoutesFromChildren(c.props.children,et));return}c.type!==Route&&invariant(!1),!c.props.index||!c.props.children||invariant(!1);let rt={id:c.props.id||et.join("-"),caseSensitive:c.props.caseSensitive,element:c.props.element,Component:c.props.Component,index:c.props.index,path:c.props.path,loader:c.props.loader,action:c.props.action,errorElement:c.props.errorElement,ErrorBoundary:c.props.ErrorBoundary,hasErrorBoundary:c.props.ErrorBoundary!=null||c.props.errorElement!=null,shouldRevalidate:c.props.shouldRevalidate,handle:c.props.handle,lazy:c.props.lazy};c.props.children&&(rt.children=createRoutesFromChildren(c.props.children,et)),a.push(rt)}),a}/** 59 * React Router DOM v6.30.1 60 * 61 * Copyright (c) Remix Software Inc. 62 * 63 * This source code is licensed under the MIT license found in the 64 * LICENSE.md file in the root directory of this source tree. 65 * 66 * @license MIT 67 */function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c])}return e},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(e,s){if(e==null)return{};var a={},c=Object.keys(e),g,et;for(et=0;et<c.length;et++)g=c[et],!(s.indexOf(g)>=0)&&(a[g]=e[g]);return a}function isModifiedEvent(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function shouldProcessLinkClick(e,s){return e.button===0&&(!s||s==="_self")&&!isModifiedEvent(e)}function createSearchParams(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((s,a)=>{let c=e[a];return s.concat(Array.isArray(c)?c.map(g=>[a,g]):[[a,c]])},[]))}function getSearchParamsForLocation(e,s){let a=createSearchParams(e);return s&&s.forEach((c,g)=>{a.has(g)||s.getAll(g).forEach(et=>{a.append(g,et)})}),a}const _excluded=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],REACT_ROUTER_VERSION="6";try{window.__reactRouterVersion=REACT_ROUTER_VERSION}catch{}const START_TRANSITION="startTransition",startTransitionImpl=React[START_TRANSITION];function BrowserRouter(e){let{basename:s,children:a,future:c,window:g}=e,et=reactExports.useRef();et.current==null&&(et.current=createBrowserHistory({window:g,v5Compat:!0}));let rt=et.current,[nt,st]=reactExports.useState({action:rt.action,location:rt.location}),{v7_startTransition:at}=c||{},it=reactExports.useCallback(ot=>{at&&startTransitionImpl?startTransitionImpl(()=>st(ot)):st(ot)},[st,at]);return reactExports.useLayoutEffect(()=>rt.listen(it),[rt,it]),reactExports.useEffect(()=>logV6DeprecationWarnings(c),[c]),reactExports.createElement(Router,{basename:s,children:a,location:nt.location,navigationType:nt.action,navigator:rt,future:c})}const isBrowser$1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ABSOLUTE_URL_REGEX=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Link=reactExports.forwardRef(function(s,a){let{onClick:c,relative:g,reloadDocument:et,replace:rt,state:nt,target:st,to:at,preventScrollReset:it,viewTransition:ot}=s,lt=_objectWithoutPropertiesLoose(s,_excluded),{basename:ct}=reactExports.useContext(NavigationContext),dt,ut=!1;if(typeof at=="string"&&ABSOLUTE_URL_REGEX.test(at)&&(dt=at,isBrowser$1))try{let mt=new URL(window.location.href),kt=at.startsWith("//")?new URL(mt.protocol+at):new URL(at),Ct=stripBasename(kt.pathname,ct);kt.origin===mt.origin&&Ct!=null?at=Ct+kt.search+kt.hash:ut=!0}catch{}let xt=useHref(at,{relative:g}),gt=useLinkClickHandler(at,{replace:rt,state:nt,target:st,preventScrollReset:it,relative:g,viewTransition:ot});function ht(mt){c&&c(mt),mt.defaultPrevented||gt(mt)}return reactExports.createElement("a",_extends({},lt,{href:dt||xt,onClick:ut||et?c:ht,ref:a,target:st}))});var DataRouterHook;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(DataRouterHook||(DataRouterHook={}));var DataRouterStateHook;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(DataRouterStateHook||(DataRouterStateHook={}));function useLinkClickHandler(e,s){let{target:a,replace:c,state:g,preventScrollReset:et,relative:rt,viewTransition:nt}=s===void 0?{}:s,st=useNavigate(),at=useLocation(),it=useResolvedPath(e,{relative:rt});return reactExports.useCallback(ot=>{if(shouldProcessLinkClick(ot,a)){ot.preventDefault();let lt=c!==void 0?c:createPath(at)===createPath(it);st(e,{replace:lt,state:g,preventScrollReset:et,relative:rt,viewTransition:nt})}},[at,st,it,c,g,a,e,et,rt,nt])}function useSearchParams(e){let s=reactExports.useRef(createSearchParams(e)),a=reactExports.useRef(!1),c=useLocation(),g=reactExports.useMemo(()=>getSearchParamsForLocation(c.search,a.current?null:s.current),[c.search]),et=useNavigate(),rt=reactExports.useCallback((nt,st)=>{const at=createSearchParams(typeof nt=="function"?nt(g):nt);a.current=!0,et("?"+at,st)},[et,g]);return[g,rt]}var __assign=function(){return __assign=Object.assign||function(s){for(var a,c=1,g=arguments.length;c<g;c++){a=arguments[c];for(var et in a)Object.prototype.hasOwnProperty.call(a,et)&&(s[et]=a[et])}return s},__assign.apply(this,arguments)};function __rest(e,s){var a={};for(var c in e)Object.prototype.hasOwnProperty.call(e,c)&&s.indexOf(c)<0&&(a[c]=e[c]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var g=0,c=Object.getOwnPropertySymbols(e);g<c.length;g++)s.indexOf(c[g])<0&&Object.prototype.propertyIsEnumerable.call(e,c[g])&&(a[c[g]]=e[c[g]]);return a}function __awaiter(e,s,a,c){function g(et){return et instanceof a?et:new a(function(rt){rt(et)})}return new(a||(a=Promise))(function(et,rt){function nt(it){try{at(c.next(it))}catch(ot){rt(ot)}}function st(it){try{at(c.throw(it))}catch(ot){rt(ot)}}function at(it){it.done?et(it.value):g(it.value).then(nt,st)}at((c=c.apply(e,s||[])).next())})}function __spreadArray(e,s,a){if(a||arguments.length===2)for(var c=0,g=s.length,et;c<g;c++)(et||!(c in s))&&(et||(et=Array.prototype.slice.call(s,0,c)),et[c]=s[c]);return e.concat(et||Array.prototype.slice.call(s))}typeof SuppressedError=="function"&&SuppressedError;const resolveFetch$3=e=>e?(...s)=>e(...s):(...s)=>fetch(...s);
67class FunctionsError extends Error{constructor(s,a="FunctionsError",c){super(s),this.name=a,this.context=c}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class FunctionsFetchError extends FunctionsError{constructor(s){super("Failed to send a request to the Edge Function","FunctionsFetchError",s)}}class FunctionsRelayError extends FunctionsError{constructor(s){super("Relay Error invoking the Edge Function","FunctionsRelayError",s)}}class FunctionsHttpError extends FunctionsError{constructor(s){super("Edge Function returned a non-2xx status code","FunctionsHttpError",s)}}var FunctionRegion;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})(FunctionRegion||(FunctionRegion={}));class FunctionsClient{constructor(s,{headers:a={},customFetch:c,region:g=FunctionRegion.Any}={}){this.url=s,this.headers=a,this.region=g,this.fetch=resolveFetch$3(c)}setAuth(s){this.headers.Authorization=`Bearer ${s}`}invoke(s){return __awaiter(this,arguments,void 0,function*(a,c={}){var g;let et,rt;try{const{headers:nt,method:st,body:at,signal:it,timeout:ot}=c;let lt={},{region:ct}=c;ct||(ct=this.region);const dt=new URL(`${this.url}/${a}`);ct&&ct!=="any"&&(lt["x-region"]=ct,dt.searchParams.set("forceFunctionRegion",ct));let ut;at&&(nt&&!Object.prototype.hasOwnProperty.call(nt,"Content-Type")||!nt)?typeof Blob<"u"&&at instanceof Blob||at instanceof ArrayBuffer?(lt["Content-Type"]="application/octet-stream",ut=at):typeof at=="string"?(lt["Content-Type"]="text/plain",ut=at):typeof FormData<"u"&&at instanceof FormData?ut=at:(lt["Content-Type"]="application/json",ut=JSON.stringify(at)):at&&typeof at!="string"&&!(typeof Blob<"u"&&at instanceof Blob)&&!(at instanceof ArrayBuffer)&&!(typeof FormData<"u"&&at instanceof FormData)?ut=JSON.stringify(at):ut=at;let xt=it;ot&&(rt=new AbortController,et=setTimeout(()=>rt.abort(),ot),it?(xt=rt.signal,it.addEventListener("abort",()=>rt.abort())):xt=rt.signal);const gt=yield this.fetch(dt.toString(),{method:st||"POST",headers:Object.assign(Object.assign(Object.assign({},lt),this.headers),nt),body:ut,signal:xt}).catch(Ct=>{throw new FunctionsFetchError(Ct)}),ht=gt.headers.get("x-relay-error");if(ht&&ht==="true")throw new FunctionsRelayError(gt);if(!gt.ok)throw new FunctionsHttpError(gt);let mt=((g=gt.headers.get("Content-Type"))!==null&&g!==void 0?g:"text/plain").split(";")[0].trim(),kt;return mt==="application/json"?kt=yield gt.json():mt==="application/octet-stream"||mt==="application/pdf"?kt=yield gt.blob():mt==="text/event-stream"?kt=gt:mt==="multipart/form-data"?kt=yield gt.formData():kt=yield gt.text(),{data:kt,error:null,response:gt}}catch(nt){return{data:null,error:nt,response:nt instanceof FunctionsHttpError||nt instanceof FunctionsRelayError?nt.context:void 0}}finally{et&&clearTimeout(et)}})}}const DEFAULT_MAX_RETRIES=3,getRetryDelay=e=>Math.min(1e3*2**e,3e4),RETRYABLE_STATUS_CODES=[520,503],RETRYABLE_METHODS=["GET","HEAD","OPTIONS"];var PostgrestError=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.co
67de=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function sleep$2(e,s){return new Promise(a=>{if(s!=null&&s.aborted){a();return}const c=setTimeout(()=>{s==null||s.removeEventListener("abort",g),a()},e);function g(){clearTimeout(c),a()}s==null||s.addEventListener("abort",g)})}function shouldRetry(e,s,a,c){return!(!c||a>=DEFAULT_MAX_RETRIES||!RETRYABLE_METHODS.includes(e)||!RETRYABLE_STATUS_CODES.includes(s))}var PostgrestBuilder=class{constructor(e){var s,a,c,g,et;this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=(s=e.shouldThrowOnError)!==null&&s!==void 0?s:!1,this.signal=e.signal,this.isMaybeSingle=(a=e.isMaybeSingle)!==null&&a!==void 0?a:!1,this.shouldStripNulls=(c=e.shouldStripNulls)!==null&&c!==void 0?c:!1,this.urlLengthLimit=(g=e.urlLengthLimit)!==null&&g!==void 0?g:8e3,this.retryEnabled=(et=e.retry)!==null&&et!==void 0?et:!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw new Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(e,s){return this.headers=new Headers(this.headers),this.headers.set(e,s),this}retry(e){return this.retryEnabled=e,this}then(e,s){var a=this;if(this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json"),this.shouldStripNulls){const rt=this.headers.get("Accept");rt==="application/vnd.pgrst.object+json"?this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped"):(!rt||rt==="application/json")&&this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}const c=this.fetch;let et=(async()=>{let rt=0;for(;;){const at=new Headers(a.headers);rt>0&&at.set("X-Retry-Count",String(rt));let it;try{it=await c(a.url.toString(),{method:a.method,headers:at,body:JSON.stringify(a.body,(ot,lt)=>typeof lt=="bigint"?lt.toString():lt),signal:a.signal})}catch(ot){if((ot==null?void 0:ot.name)==="AbortError"||(ot==null?void 0:ot.code)==="ABORT_ERR"||!RETRYABLE_METHODS.includes(a.method))throw ot;if(a.retryEnabled&&rt<DEFAULT_MAX_RETRIES){const lt=getRetryDelay(rt);rt++,await sleep$2(lt,a.signal);continue}throw ot}if(shouldRetry(a.method,it.status,rt,a.retryEnabled)){var nt,st;const ot=(nt=(st=it.headers)===null||st===void 0?void 0:st.get("Retry-After"))!==null&&nt!==void 0?nt:null,lt=ot!==null?Math.max(0,parseInt(ot,10)||0)*1e3:getRetryDelay(rt);await it.text(),rt++,await sleep$2(lt,a.signal);continue}return await a.processResponse(it)}})();return this.shouldThrowOnError||(et=et.catch(rt=>{var nt;let st="",at="",it="";const ot=rt==null?void 0:rt.cause;if(ot){var lt,ct,dt,ut;const ht=(lt=ot==null?void 0:ot.message)!==null&<!==void 0?lt:"",mt=(ct=ot==null?void 0:ot.code)!==null&&ct!==void 0?ct:"";st=`${(dt=rt==null?void 0:rt.name)!==null&&dt!==void 0?dt:"FetchError"}: ${rt==null?void 0:rt.message}`,st+=` 68 69Caused by: ${(ut=ot==null?void 0:ot.name)!==null&&ut!==void 0?ut:"Error"}: ${ht}`,mt&&(st+=` (${mt})`),ot!=null&&ot.stack&&(st+=` 70${ot.stack}`)}else{var xt;st=(xt=rt==null?void 0:rt.stack)!==null&&xt!==void 0?xt:""}const gt=this.url.toString().length;return(rt==null?void 0:rt.name)==="AbortError"||(rt==null?void 0:rt.code)==="ABORT_ERR"?(it="",at="Request was aborted (timeout or manual cancellation)",gt>this.urlLengthLimit&&(at+=`. Note: Your request URL is ${gt} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):((ot==null?void 0:ot.name)==="HeadersOverflowError"||(ot==null?void 0:ot.code)==="UND_ERR_HEADERS_OVERFLOW")&&(it="",at="HTTP headers exceeded server limits (typically 16KB)",gt>this.urlLengthLimit&&(at+=`. Your request URL is ${gt} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${(nt=rt==null?void 0:rt.name)!==null&&nt!==void 0?nt:"FetchError"}: ${rt==null?void 0:rt.message}`,details:st,hint:at,code:it},data:null,count:null,status:0,statusText:""}}
70)),et.then(e,s)}async processResponse(e){var s=this;let a=null,c=null,g=null,et=e.status,rt=e.statusText;if(e.ok){var nt,st;if(s.method!=="HEAD"){var at;const lt=await e.text();lt===""||(s.headers.get("Accept")==="text/csv"||s.headers.get("Accept")&&(!((at=s.headers.get("Accept"))===null||at===void 0)&&at.includes("application/vnd.pgrst.plan+text"))?c=lt:c=JSON.parse(lt))}const it=(nt=s.headers.get("Prefer"))===null||nt===void 0?void 0:nt.match(/count=(exact|planned|estimated)/),ot=(st=e.headers.get("content-range"))===null||st===void 0?void 0:st.split("/");it&&ot&&ot.length>1&&(g=parseInt(ot[1])),s.isMaybeSingle&&Array.isArray(c)&&(c.length>1?(a={code:"PGRST116",details:`Results contain ${c.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},c=null,g=null,et=406,rt="Not Acceptable"):c.length===1?c=c[0]:c=null)}else{const it=await e.text();try{a=JSON.parse(it),Array.isArray(a)&&e.status===404&&(c=[],a=null,et=200,rt="OK")}catch{e.status===404&&it===""?(et=204,rt="No Content"):a={message:it}}if(a&&s.shouldThrowOnError)throw new PostgrestError(a)}return{success:a===null,error:a,data:c,count:g,status:et,statusText:rt}}returns(){return this}overrideTypes(){return this}},PostgrestTransformBuilder=class extends PostgrestBuilder{select(e){let s=!1;const a=(e??"*").split("").map(c=>/\s/.test(c)&&!s?"":(c==='"'&&(s=!s),c)).join("");return this.url.searchParams.set("select",a),this.headers.append("Prefer","return=representation"),this}order(e,{ascending:s=!0,nullsFirst:a,foreignTable:c,referencedTable:g=c}={}){const et=g?`${g}.order`:"order",rt=this.url.searchParams.get(et);return this.url.searchParams.set(et,`${rt?`${rt},`:""}${e}.${s?"asc":"desc"}${a===void 0?"":a?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:s,referencedTable:a=s}={}){const c=typeof a>"u"?"limit":`${a}.limit`;return this.url.searchParams.set(c,`${e}`),this}range(e,s,{foreignTable:a,referencedTable:c=a}={}){const g=typeof c>"u"?"offset":`${c}.offset`,et=typeof c>"u"?"limit":`${c}.limit`;return this.url.searchParams.set(g,`${e}`),this.url.searchParams.set(et,`${s-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:e=!1,verbose:s=!1,settings:a=!1,buffers:c=!1,wal:g=!1,format:et="text"}={}){var rt;const nt=[e?"analyze":null,s?"verbose":null,a?"settings":null,c?"buffers":null,g?"wal":null].filter(Boolean).join("|"),st=(rt=this.headers.get("Accept"))!==null&&rt!==void 0?rt:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${et}; for="${st}"; options=${nt};`),et==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(e){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${e}`),this}};const PostgrestReservedCharsRegexp=new RegExp("[,()]");var PostgrestFilterBuilder=class extends PostgrestTransformBuilder{eq(e,s){return this.url.searchParams.append(e,`eq.${s}`),this}neq(e,s){return this.url.searchParams.append(e,`neq.${s}`),this}gt(e,s){return this.url.searchParams.append(e,`gt.${s}`),this}gte(e,s){return this.url.searchParams.append(e,`gte.${s}`),this}lt(e,s){return this.url.searchParams.append(e,`lt.${s}`),this}lte(e,s){return this.url.searchParams.append(e,`lte.${s}`),this}like(e,s){return this.url.searchParams.append(e,`like.${s}`),this}likeAllOf(e,s){return this.url.searchParams.append(e,`like(all).{${s.join(",")}}`),this}likeAnyOf(e,s){return this.url.searchParams.append(e,`like(any).{${s.join(",")}}`),this}ilike(e,s){return this.url.searchParams.append(e,`ilike.${s}`),this}ilikeAllOf(e,s){return this.url.searchParams.append(e,`ilike(all).{${s.join(",")}}`),this}ilikeAnyOf(e,s){return this.url.searchParams.append(e,`ilike(any).{${s.join(",")}}`),this}regexMatch(e,s){return this.url.searchParams.append(e,`match.${s}`),this}regexIMatch(e,s){return this.url.searchParams.append(e,`imatch.${s}`),this}is(e,s){return this.url.searchParams.append(e,`is.${s}`),this}isDistinct(e,s){return this.url.searchParams.append(e,`isdistinct.${s}`),this}in(e,s){const a=Array.from(new Set(s)).map(c=>typeof c=="string"&&PostgrestReservedCharsRegexp.test(c)?`"${c}"`:`${c}`).join(",");return this.url.searchParams.append(e,`in.(${a})`),this}notIn(e,s){const a=Array.from(new Set(s)).map(c=>typeof c=="string"&&PostgrestReservedCharsRegexp.test(c)?`"${c}"`:`${c}`).join(",");return this.url.searchParams.append(e,`not.in.(${a})`),this}contains(e,s){return typeof s=="string"?this.url.searchParams.append(e,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(e,`cs.{${s.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(s)}`),this}containedBy(e,s){return typeof s=="string"?this.url.searchParams.append(e,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(e,`cd.{${s.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(s)}`),this}rangeGt(e,s){return this.url.searchParams.append(e,`sr.${s}`),this}rangeGte(e,s){return this.url.searchParams.append(e,`nxl.${s}`),this}rangeLt(e,s){return this.url.searchParams.append(e,`sl.${s}`),this}rangeLte(e,s){return this.url.searchParams.append(e,`nxr.${s}`),this}rangeAdjacent(e,s){return this.url.searchParams.append(e,`adj.${s}`),this}overlaps(e,s){return typeof s=="string"?this.url.searchParams.append(e,`ov.${s}`):this.url.searchParams.append(e,`ov.{${s.join(",")}}`),this}textSearch(e,s,{config:a,type:c}={}){let g="";c==="plain"?g="pl":c==="phrase"?g="ph":c==="websearch"&&(g="w");const et=a===void 0?"":`(${a})`;return this.url.searchParams.append(e,`${g}fts${et}.${s}`),this}match(e){return Object.entries(e).filter(([s,a])=>
70a!==void 0).forEach(([s,a])=>{this.url.searchParams.append(s,`eq.${a}`)}),this}not(e,s,a){return this.url.searchParams.append(e,`not.${s}.${a}`),this}or(e,{foreignTable:s,referencedTable:a=s}={}){const c=a?`${a}.or`:"or";return this.url.searchParams.append(c,`(${e})`),this}filter(e,s,a){return this.url.searchParams.append(e,`${s}.${a}`),this}},PostgrestQueryBuilder=class{constructor(e,{headers:s={},schema:a,fetch:c,urlLengthLimit:g=8e3,retry:et}){this.url=e,this.headers=new Headers(s),this.schema=a,this.fetch=c,this.urlLengthLimit=g,this.retry=et}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,s){const{head:a=!1,count:c}=s??{},g=a?"HEAD":"GET";let et=!1;const rt=(e??"*").split("").map(at=>/\s/.test(at)&&!et?"":(at==='"'&&(et=!et),at)).join(""),{url:nt,headers:st}=this.cloneRequestState();return nt.searchParams.set("select",rt),c&&st.append("Prefer",`count=${c}`),new PostgrestFilterBuilder({method:g,url:nt,headers:st,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:s,defaultToNull:a=!0}={}){var c;const g="POST",{url:et,headers:rt}=this.cloneRequestState();if(s&&rt.append("Prefer",`count=${s}`),a||rt.append("Prefer","missing=default"),Array.isArray(e)){const nt=e.reduce((st,at)=>st.concat(Object.keys(at)),[]);if(nt.length>0){const st=[...new Set(nt)].map(at=>`"${at}"`);et.searchParams.set("columns",st.join(","))}}return new PostgrestFilterBuilder({method:g,url:et,headers:rt,schema:this.schema,body:e,fetch:(c=this.fetch)!==null&&c!==void 0?c:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:s,ignoreDuplicates:a=!1,count:c,defaultToNull:g=!0}={}){var et;const rt="POST",{url:nt,headers:st}=this.cloneRequestState();if(st.append("Prefer",`resolution=${a?"ignore":"merge"}-duplicates`),s!==void 0&&nt.searchParams.set("on_conflict",s),c&&st.append("Prefer",`count=${c}`),g||st.append("Prefer","missing=default"),Array.isArray(e)){const at=e.reduce((it,ot)=>it.concat(Object.keys(ot)),[]);if(at.length>0){const it=[...new Set(at)].map(ot=>`"${ot}"`);nt.searchParams.set("columns",it.join(","))}}return new PostgrestFilterBuilder({method:rt,url:nt,headers:st,schema:this.schema,body:e,fetch:(et=this.fetch)!==null&&et!==void 0?et:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:s}={}){var a;const c="PATCH",{url:g,headers:et}=this.cloneRequestState();return s&&et.append("Prefer",`count=${s}`),new PostgrestFilterBuilder({method:c,url:g,headers:et,schema:this.schema,body:e,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){var s;const a="DELETE",{url:c,headers:g}=this.cloneRequestState();return e&&g.append("Prefer",`count=${e}`),new PostgrestFilterBuilder({method:a,url:c,headers:g,schema:this.schema,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function _typeof$2(e){"@babel/helpers - typeof";return _typeof$2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},_typeof$2(e)}function toPrimitive$2(e,s){if(_typeof$2(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var c=a.call(e,s||"default");if(_typeof$2(c)!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(e)}function toPropertyKey$2(e){var s=toPrimitive$2(e,"string");return _typeof$2(s)=="symbol"?s:s+""}function _defineProperty$2(e,s,a){return(s=toPropertyKey$2(s))in e?Object.defineProperty(e,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[s]=a,e}function ownKeys$2(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);s&&(c=c.filter(function(g){return Object.getOwnPropertyDescriptor(e,g).enumerable})),a.push.apply(a,c)}return a}function _objectSpread2$2(e){for(var s=1;s<arguments.length;s++){var a=arguments[s]!=null?arguments[s]:{};
70s%2?ownKeys$2(Object(a),!0).forEach(function(c){_defineProperty$2(e,c,a[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys$2(Object(a)).forEach(function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(a,c))})}return e}var PostgrestClient=class Rs{constructor(s,{headers:a={},schema:c,fetch:g,timeout:et,urlLengthLimit:rt=8e3,retry:nt}={}){this.url=s,this.headers=new Headers(a),this.schemaName=c,this.urlLengthLimit=rt;const st=g??globalThis.fetch;et!==void 0&&et>0?this.fetch=(at,it)=>{const ot=new AbortController,lt=setTimeout(()=>ot.abort(),et),ct=it==null?void 0:it.signal;if(ct){if(ct.aborted)return clearTimeout(lt),st(at,it);const dt=()=>{clearTimeout(lt),ot.abort()};return ct.addEventListener("abort",dt,{once:!0}),st(at,_objectSpread2$2(_objectSpread2$2({},it),{},{signal:ot.signal})).finally(()=>{clearTimeout(lt),ct.removeEventListener("abort",dt)})}return st(at,_objectSpread2$2(_objectSpread2$2({},it),{},{signal:ot.signal})).finally(()=>clearTimeout(lt))}:this.fetch=st,this.retry=nt}from(s){if(!s||typeof s!="string"||s.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new PostgrestQueryBuilder(new URL(`${this.url}/${s}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(s){return new Rs(this.url,{headers:this.headers,schema:s,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(s,a={},{head:c=!1,get:g=!1,count:et}={}){var rt;let nt;const st=new URL(`${this.url}/rpc/${s}`);let at;const it=ct=>ct!==null&&typeof ct=="object"&&(!Array.isArray(ct)||ct.some(it)),ot=c&&Object.values(a).some(it);ot?(nt="POST",at=a):c||g?(nt=c?"HEAD":"GET",Object.entries(a).filter(([ct,dt])=>dt!==void 0).map(([ct,dt])=>[ct,Array.isArray(dt)?`{${dt.join(",")}}`:`${dt}`]).forEach(([ct,dt])=>{st.searchParams.append(ct,dt)})):(nt="POST",at=a);const lt=new Headers(this.headers);return ot?lt.set("Prefer",et?`count=${et},return=minimal`:"return=minimal"):et&<.set("Prefer",`count=${et}`),new PostgrestFilterBuilder({method:nt,url:st,headers:lt,schema:this.schemaName,body:at,fetch:(rt=this.fetch)!==null&&rt!==void 0?rt:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};class WebSocketFactory{constructor(){}static detectEnvironment(){var s;if(typeof WebSocket<"u")return{type:"native",wsConstructor:WebSocket};const a=globalThis;if(typeof globalThis<"u"&&typeof a.WebSocket<"u")return{type:"native",wsConstructor:a.WebSocket};const c=typeof globalThis<"u"?globalThis:void 0;if(c&&typeof c.WebSocket<"u")return{type:"native",wsConstructor:c.WebSocket};if(typeof globalThis<"u"&&typeof a.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&a.EdgeRuntime||typeof navigator<"u"&&(!((s=navigator.userAgent)===null||s===void 0)&&s.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const g=globalThis.process;if(g){const et=g.versions;if(et&&et.node){const rt=et.node,nt=parseInt(rt.replace(/^v/,"").split(".")[0]);return nt>=22?typeof globalThis.WebSocket<"u"?{type:"native",wsConstructor:globalThis.WebSocket}:{type:"unsupported",error:`Node.js ${nt} detected but native WebSocket not found.`,workaround:"Provide a WebSocket implementation via the transport option."}:{type:"unsupported",error:`Node.js ${nt} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option: 71import ws from "ws" 72new RealtimeClient(url, { transport: ws })`}}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const s=this.detectEnvironment();if(s.wsConstructor)return s.wsConstructor;let a=s.error||"WebSocket not supported in this environment.";throw s.workaround&&(a+=` 73 74Suggested solution: ${s.workaround}`),new Error(a)}static isWebSocketSupported(){try{const s=this.detectEnvironment();return s.type==="native"||s.type==="ws"}catch{return!1}}}const version$3="2.105.4",DEFAULT_VERSION=`realtime-js/${version$3}`,VSN_1_0_0="1.0.0",VSN_2_0_0="2.0.0",DEFAULT_VSN$1=VSN_2_0_0,DEFAULT_TIMEOUT$1=1e4,MAX_PUSH_BUFFER_SIZE=100,CHANNEL_STATES$1={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},CHANNEL_EVENTS$1={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave",access_token:"access_token"},CONNECTION_STATE={connecting:"connecting",open:"open",closing:"closing",closed:"closed"};class Serializer{constructor(s){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=s??[]}encode(s,a){if(s.event===this.BROADCAST_EVENT&&!(s.payload instanceof ArrayBuffer)&&typeof s.payload.event=="string")return a(this._binaryEncodeUserBroadcastPush(s));let c=[s.join_ref,s.ref,s.topic,s.event,s.payload];return a(JSON.stringify(c))}_binaryEncodeUserBroadcastPush(s){var a;return this._isArrayBuffer((a=s.payload)===null||a===void 0?void 0:a.payload)?this._encodeBinaryUserBroadcastPush(s):this._encodeJsonUserBroadcastPush(s)}_encodeBinaryUserBroadcastPush(s){var a,c;const g=(c=(a=s.payload)===null||a===void 0?void 0:a.payload)!==null&&c!==void 0?c:new ArrayBuffer(0);return this._encodeUserBroadcastPush(s,this.BINARY_ENCODING,g)}_encodeJsonUserBroadcastPush(s){var a,c;const g=(c=(a=s.payload)===null||a===void 0?void 0:a.payload)!==null&&c!==void 0?c:{},rt=new TextEncoder().encode(JSON.stringify(g)).buffer;return this._encodeUserBroadcastPush(s,this.JSON_ENCODING,rt)}_encodeUserBroadcastPush(s,a,c){var g,et;const rt=s.topic,nt=(g=s.ref)!==null&&g!==void 0?g:"",st=(et=s.join_ref)!==null&&et!==void 0?et:"",at=s.payload.event,it=this.allowedMetadataKeys?this._pick(s.payload,this.allowedMetadataKeys):{},ot=Object.keys(it).length===0?"":JSON.stringify(it);if(st.length>255)throw new Error(`joinRef length ${st.length} exceeds maximum of 255`);if(nt.length>255)throw new Error(`ref length ${nt.length} exceeds maximum of 255`);if(rt.length>255)throw new Error(`topic length ${rt.length} exceeds maximum of 255`);if(at.length>255)throw new Error(`userEvent length ${at.length} exceeds maximum of 255`);if(ot.length>255)throw new Error(`metadata length ${ot.length} exceeds maximum of 255`);const lt=this.USER_BROADCAST_PUSH_META_LENGTH+st.length+nt.length+rt.length+at.length+ot.length,ct=new ArrayBuffer(this.HEADER_LENGTH+lt);let dt=new DataView(ct),ut=0;dt.setUint8(ut++,this.KINDS.userBroadcastPush),dt.setUint8(ut++,st.length),dt.setUint8(ut++,nt.length),dt.setUint8(ut++,rt.length),dt.setUint8(ut++,at.length),dt.setUint8(ut++,ot.length),dt.setUint8(ut++,a),Array.from(st,gt=>dt.setUint8(ut++,gt.charCodeAt(0))),Array.from(nt,gt=>dt.setUint8(ut++,gt.charCodeAt(0))),Array.from(rt,gt=>dt.setUint8(ut++,gt.charCodeAt(0))),Array.from(at,gt=>dt.setUint8(ut++,gt.charCodeAt(0))),Array.from(ot,gt=>dt.setUint8(ut++,gt.charCodeAt(0)));var xt=new Uint8Array(ct.byteLength+c.byteLength);return xt.set(new Uint8Array(ct),0),xt.set(new Uint8Array(c),ct.byteLength),xt.buffer}decode(s,a){if(this._isArrayBuffer(s)){let c=this._binaryDecode(s);return a(c)}if(typeof s=="string"){const c=JSON.parse(s),[g,et,rt,nt,st]=c;return a({join_ref:g,ref:et,topic:rt,event:nt,payload:st})}return a({})}_binaryDecode(s){const a=new DataView(s),c=a.getUint8(0),g=new TextDecoder;switch(c){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(s,a,g)}}_decodeUserBroadcast(s,a,c){const g=a.getUint8(1),et=a.getUint8(2),rt=a.getUint8(3),nt=a.getUint8(4);let st=this.HEADER_LENGTH+4;const at=c.decode(s.slice(st,st+g));
74st=st+g;const it=c.decode(s.slice(st,st+et));st=st+et;const ot=c.decode(s.slice(st,st+rt));st=st+rt;const lt=s.slice(st,s.byteLength),ct=nt===this.JSON_ENCODING?JSON.parse(c.decode(lt)):lt,dt={type:this.BROADCAST_EVENT,event:it,payload:ct};return rt>0&&(dt.meta=JSON.parse(ot)),{join_ref:null,ref:null,topic:at,event:this.BROADCAST_EVENT,payload:dt}}_isArrayBuffer(s){var a;return s instanceof ArrayBuffer||((a=s==null?void 0:s.constructor)===null||a===void 0?void 0:a.name)==="ArrayBuffer"}_pick(s,a){return!s||typeof s!="object"?{}:Object.fromEntries(Object.entries(s).filter(([c])=>a.includes(c)))}}var PostgresTypes;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(PostgresTypes||(PostgresTypes={}));const convertChangeData=(e,s,a={})=>{var c;const g=(c=a.skipTypes)!==null&&c!==void 0?c:[];return s?Object.keys(s).reduce((et,rt)=>(et[rt]=convertColumn(rt,e,s,g),et),{}):{}},convertColumn=(e,s,a,c)=>{const g=s.find(nt=>nt.name===e),et=g==null?void 0:g.type,rt=a[e];return et&&!c.includes(et)?convertCell(et,rt):noop$2(rt)},convertCell=(e,s)=>{if(e.charAt(0)==="_"){const a=e.slice(1,e.length);return toArray$1(s,a)}switch(e){case PostgresTypes.bool:return toBoolean(s);case PostgresTypes.float4:case PostgresTypes.float8:case PostgresTypes.int2:case PostgresTypes.int4:case PostgresTypes.int8:case PostgresTypes.numeric:case PostgresTypes.oid:return toNumber(s);case PostgresTypes.json:case PostgresTypes.jsonb:return toJson(s);case PostgresTypes.timestamp:return toTimestampString(s);case PostgresTypes.abstime:case PostgresTypes.date:case PostgresTypes.daterange:case PostgresTypes.int4range:case PostgresTypes.int8range:case PostgresTypes.money:case PostgresTypes.reltime:case PostgresTypes.text:case PostgresTypes.time:case PostgresTypes.timestamptz:case PostgresTypes.timetz:case PostgresTypes.tsrange:case PostgresTypes.tstzrange:return noop$2(s);default:return noop$2(s)}},noop$2=e=>e,toBoolean=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},toNumber=e=>{if(typeof e=="string"){const s=parseFloat(e);if(!Number.isNaN(s))return s}return e},toJson=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e},toArray$1=(e,s)=>{if(typeof e!="string")return e;const a=e.length-1,c=e[a];if(e[0]==="{"&&c==="}"){let et;const rt=e.slice(1,a);try{et=JSON.parse("["+rt+"]")}catch{et=rt?rt.split(","):[]}return et.map(nt=>convertCell(s,nt))}return e},toTimestampString=e=>typeof e=="string"?e.replace(" ","T"):e,httpEndpointURL=e=>{const s=new URL(e);return s.protocol=s.protocol.replace(/^ws/i,"http"),s.pathname=s.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),s.pathname===""||s.pathname==="/"?s.pathname="/api/broadcast":s.pathname=s.pathname+"/api/broadcast",s.href};var closure=e=>typeof e=="function"?e:function(){return e},globalSelf=typeof self<"u"?self:null,phxWindow=typeof window<"u"?window:null,global=globalSelf||phxWindow||globalThis,DEFAULT_VSN="2.0.0",DEFAULT_TIMEOUT=1e4,WS_CLOSE_NORMAL=1e3,SOCKET_STATES={connecting:0,open:1,closing:2,closed:3},CHANNEL_STATES={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},CHANNEL_EVENTS={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},TRANSPORTS={longpoll:"longpoll",websocket:"websocket"},XHR_STATES={complete:4},AUTH_TOKEN_PREFIX="base64url.bearer.phx.",Push=class{constructor(e,s,a,c){this.channel=e,this.event=s,this.payload=a||function(){return{}},this.receivedResp=null,this.timeout=c,this.timeoutTimer=null,this.recHooks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,j
vendor: 5,614 bytes, line 74
74oin_ref:this.channel.joinRef()}))}receive(e,s){return this.hasReceived(e)&&s(this.receivedResp.response),this.recHooks.push({status:e,callback:s}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:s,_ref:a}){this.recHooks.filter(c=>c.status===e).forEach(c=>c.callback(s))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,s){this.channel.trigger(this.refEvent,{status:e,response:s})}},Timer=class{constructor(e,s){this.callback=e,this.timerCalc=s,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},Channel=class{constructor(e,s,a){this.state=CHANNEL_STATES.closed,this.topic=e,this.params=closure(s||{}),this.socket=a,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new Push(this,CHANNEL_EVENTS.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new Timer(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=CHANNEL_STATES.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(c=>c.send()),this.pushBuffer=[]}),this.joinPush.receive("error",c=>{this.state=CHANNEL_STATES.errored,this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,c),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic}`),this.state=CHANNEL_STATES.closed,this.socket.remove(this)}),this.onError(c=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,c),this.isJoining()&&this.joinPush.reset(),this.state=CHANNEL_STATES.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),new Push(this,CHANNEL_EVENTS.leave,closure({}),this.timeout).send(),this.state=CHANNEL_STATES.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(CHANNEL_EVENTS.reply,(c,g)=>{this.trigger(this.replyEventName(g),c)})}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=CHANNEL_STATES.closed,this.bindings=[]}onClose(e){this.on(CHANNEL_EVENTS.close,e)}onError(e){return this.on(CHANNEL_EVENTS.error,s=>e(s))}on(e,s){let a=this.bindingRef++;return this.bindings.push({event:e,ref:a,callback:s}),a}off(e,s){this.bindings=this.bindings.filter(a=>!(a.event===e&&(typeof s>"u"||s===a.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,s,a=this.timeout){if(s=s||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let c=new Push(this,e,function(){return s},a);return this.canPush()?c.send():(c.startTimeout(),this.pushBuffer.push(c)),c}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=CHANNEL_STATES.leaving;let s=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger(CHANNEL_EVENTS.close,"leave")},a=new Push(this,CHANNEL_EVENTS.leave,closure({}),e);return a.receive("ok",()=>s()).receive("timeout",()=>s()),a.send(),this.canPush()||a.trigger("ok",{}),a}onMessage(e,s,a){return s}filterBindings(e,s,a){return!0}isMember(e,s,a,c){return this.topic!==e?!1:c&&c!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:s,payload:a,joinRef:c}),!1):!0}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=CHANNEL_STATES.joining,this.joinPush.resend(e))}trigger(e,s,a,c){let g=this.onMessage(e,s,a,c);if(s&&!g)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let et=this.bindings.filter(rt=>rt.event===e&&this.filterBindings(rt,s,a));for(let rt=0;rt<et.length;rt++)et[rt].callback(g,a,c||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===CHANNEL_STATES.closed}isErrored(){return this.state===CHANNEL_STATES.errored}isJoined(){return this.state===CHANNEL_STATES.joined}isJoining(){return this.state===CHANNEL_STATES.joining}isLeaving(){return this.state===CHANNEL_STATES.leaving}},Ajax=class{static request(e,s,a,c,g,et,rt){if(global.XDomainRequest){let nt=ne
vendor: 3,351 bytes, line 74
74w global.XDomainRequest;return this.xdomainRequest(nt,e,s,c,g,et,rt)}else if(global.XMLHttpRequest){let nt=new global.XMLHttpRequest;return this.xhrRequest(nt,e,s,a,c,g,et,rt)}else{if(global.fetch&&global.AbortController)return this.fetchRequest(e,s,a,c,g,et,rt);throw new Error("No suitable XMLHttpRequest implementation found")}}static fetchRequest(e,s,a,c,g,et,rt){let nt={method:e,headers:a,body:c},st=null;return g&&(st=new AbortController,setTimeout(()=>st.abort(),g),nt.signal=st.signal),global.fetch(s,nt).then(at=>at.text()).then(at=>this.parseJSON(at)).then(at=>rt&&rt(at)).catch(at=>{at.name==="AbortError"&&et?et():rt&&rt(null)}),st}static xdomainRequest(e,s,a,c,g,et,rt){return e.timeout=g,e.open(s,a),e.onload=()=>{let nt=this.parseJSON(e.responseText);rt&&rt(nt)},et&&(e.ontimeout=et),e.onprogress=()=>{},e.send(c),e}static xhrRequest(e,s,a,c,g,et,rt,nt){e.open(s,a,!0),e.timeout=et;for(let[st,at]of Object.entries(c))e.setRequestHeader(st,at);return e.onerror=()=>nt&&nt(null),e.onreadystatechange=()=>{if(e.readyState===XHR_STATES.complete&&nt){let st=this.parseJSON(e.responseText);nt(st)}},rt&&(e.ontimeout=rt),e.send(g),e}static parseJSON(e){if(!e||e==="")return null;try{return JSON.parse(e)}catch{return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,s){let a=[];for(var c in e){if(!Object.prototype.hasOwnProperty.call(e,c))continue;let g=s?`${s}[${c}]`:c,et=e[c];typeof et=="object"?a.push(this.serialize(et,g)):a.push(encodeURIComponent(g)+"="+encodeURIComponent(et))}return a.join("&")}static appendParams(e,s){if(Object.keys(s).length===0)return e;let a=e.match(/\?/)?"&":"?";return`${e}${a}${this.serialize(s)}`}},arrayBufferToBase64=e=>{let s="",a=new Uint8Array(e),c=a.byteLength;for(let g=0;g<c;g++)s+=String.fromCharCode(a[g]);return btoa(s)},LongPoll=class{constructor(e,s){s&&s.length===2&&s[1].startsWith(AUTH_TOKEN_PREFIX)&&(this.authToken=atob(s[1].slice(AUTH_TOKEN_PREFIX.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=SOCKET_STATES.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+TRANSPORTS.websocket),"$1/"+TRANSPORTS.longpoll)}endpointURL(){return Ajax.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,s,a){this.close(e,s,a),this.readyState=SOCKET_STATES.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===SOCKET_STATES.open||this.readyState===SOCKET_STATES.connecting}poll(){const e={Accept:"application/json"};this.authToken&&(e["X-Phoenix-AuthToken"]=this.authToken),this.ajax("GET",e,null,()=>this.ontimeout(),s=>{if(s){var{status:a,token:c,messages:g}=s;if(a===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,"session_gone",!1);return}this.token=c}else a=0;switch(a){case 200:g.forEach(et=>{setTimeout(()=>this.onmessage({data:et}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=SOCKET_STATES.open,this.onopen({}),this.poll();break;
vendor: 13,598 bytes, lines 74-75
74case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${a}`)}})}send(e){typeof e!="string"&&(e=arrayBufferToBase64(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e){this.awaitingBatchAck=!0,this.ajax("POST",{"Content-Type":"application/x-ndjson"},e.join(` 75`),()=>this.onerror("timeout"),s=>{this.awaitingBatchAck=!1,!s||s.status!==200?(this.onerror(s&&s.status),this.closeAndRetry(1011,"internal server error",!1)):this.batchBuffer.length>0&&(this.batchSend(this.batchBuffer),this.batchBuffer=[])})}close(e,s,a){for(let g of this.reqs)g.abort();this.readyState=SOCKET_STATES.closed;let c=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:s,wasClean:a});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<"u"?this.onclose(new CloseEvent("close",c)):this.onclose(c)}ajax(e,s,a,c,g){let et,rt=()=>{this.reqs.delete(et),c()};et=Ajax.request(e,this.endpointURL(),s,a,this.timeout,rt,nt=>{this.reqs.delete(et),this.isActive()&&g(nt)}),this.reqs.add(et)}},Presence$1=class qn{constructor(s,a={}){let c=a.events||{state:"presence_state",diff:"presence_diff"};this.state={},this.pendingDiffs=[],this.channel=s,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(c.state,g=>{let{onJoin:et,onLeave:rt,onSync:nt}=this.caller;this.joinRef=this.channel.joinRef(),this.state=qn.syncState(this.state,g,et,rt),this.pendingDiffs.forEach(st=>{this.state=qn.syncDiff(this.state,st,et,rt)}),this.pendingDiffs=[],nt()}),this.channel.on(c.diff,g=>{let{onJoin:et,onLeave:rt,onSync:nt}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(g):(this.state=qn.syncDiff(this.state,g,et,rt),nt())})}onJoin(s){this.caller.onJoin=s}onLeave(s){this.caller.onLeave=s}onSync(s){this.caller.onSync=s}list(s){return qn.list(this.state,s)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(s,a,c,g){let et=this.clone(s),rt={},nt={};return this.map(et,(st,at)=>{a[st]||(nt[st]=at)}),this.map(a,(st,at)=>{let it=et[st];if(it){let ot=at.metas.map(ut=>ut.phx_ref),lt=it.metas.map(ut=>ut.phx_ref),ct=at.metas.filter(ut=>lt.indexOf(ut.phx_ref)<0),dt=it.metas.filter(ut=>ot.indexOf(ut.phx_ref)<0);ct.length>0&&(rt[st]=at,rt[st].metas=ct),dt.length>0&&(nt[st]=this.clone(it),nt[st].metas=dt)}else rt[st]=at}),this.syncDiff(et,{joins:rt,leaves:nt},c,g)}static syncDiff(s,a,c,g){let{joins:et,leaves:rt}=this.clone(a);return c||(c=function(){}),g||(g=function(){}),this.map(et,(nt,st)=>{let at=s[nt];if(s[nt]=this.clone(st),at){let it=s[nt].metas.map(lt=>lt.phx_ref),ot=at.metas.filter(lt=>it.indexOf(lt.phx_ref)<0);s[nt].metas.unshift(...ot)}c(nt,at,st)}),this.map(rt,(nt,st)=>{let at=s[nt];if(!at)return;let it=st.metas.map(ot=>ot.phx_ref);at.metas=at.metas.filter(ot=>it.indexOf(ot.phx_ref)<0),g(nt,at,st),at.metas.length===0&&delete s[nt]}),s}static list(s,a){return a||(a=function(c,g){return g}),this.map(s,(c,g)=>a(c,g))}static map(s,a){return Object.getOwnPropertyNames(s).map(c=>a(c,s[c]))}static clone(s){return JSON.parse(JSON.stringify(s))}},serializer_default={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,s){if(e.payload.constructor===ArrayBuffer)return s(this.binaryEncode(e));{let a=[e.join_ref,e.ref,e.topic,e.event,e.payload];return s(JSON.stringify(a))}},decode(e,s){if(e.constructor===ArrayBuffer)return s(this.binaryDecode(e));{let[a,c,g,et,rt]=JSON.parse(e);return s({join_ref:a,ref:c,topic:g,event:et,payload:rt})}},binaryEncode(e){let{join_ref:s,ref:a,event:c,topic:g,payload:et}=e,rt=this.META_LENGTH+s.length+a.length+g.length+c.length,nt=new ArrayBuffer(this.HEADER_LENGTH+rt),st=new DataView(nt),at=0;st.setUint8(at++,this.KINDS.push),st.setUint8(at++,s.length),st.setUint8(at++,a.length),st.setUint8(at++,g.length),st.setUint8(at++,c.length),Array.from(s,ot=>st.setUint8(at++,ot.charCodeAt(0))),Array.from(a,ot=>st.setUint8(at++,ot.charCodeAt(0))),Array.from(g,ot=>st.setUint8(at++,ot.charCodeAt(0))),Array.from(c,ot=>st.setUint8(at++,ot.charCodeAt(0)));var it=new Uint8Array(nt.byteLength+et.byteLength);return it.set(new Uint8Array(nt),0),it.set(new Uint8Array(et),nt.byteLength),it.buffer},binaryDecode(e){let s=new DataView(e),a=s.getUint8(0),c=new TextDecoder;switch(a){case this.KINDS.push:return this.decodePush(e,s,c);case this.KINDS.reply:return this.decodeReply(e,s,c);case this.KINDS.broadcast:return this.decodeBroadcast(e,s,c)}},decodePush(e,s,a){let c=s.getUint8(1),g=s.getUint8(2),et=s.getUint8(3),rt=this.HEADER_LENGTH+this.META_LENGTH-1,nt=a.decode(e.slice(rt,rt+c));rt=rt+c;let st=a.decode(e.slice(rt,rt+g));rt=rt+g;let at=a.decode(e.slice(rt,rt+et));rt=rt+et;let it=e.slice(rt,e.byteLength);return{join_ref:nt,ref:null,topic:st,event:at,payload:it}},decodeReply(e,s,a){let c=s.getUint8(1),g=s.getUint8(2),et=s.getUint8(3),rt=s.getUint8(4),nt=this.HEADER_LENGTH+this.META_LENGTH,st=a.decode(e.slice(nt,nt+c));nt=nt+c;let at=a.decode(e.slice(nt,nt+g));nt=nt+g;let it=a.decode(e.slice(nt,nt+et));nt=nt+et;let ot=a.decode(e.slice(nt,nt+rt));nt=nt+rt;let lt=e.slice(nt,e.byteLength),ct={status:ot,response:lt};return{join_ref:st,ref:at,topic:it,event:CHANNEL_EVENTS.reply,payload:ct}},decodeBroadcast(e,s,a){let c=s.getUint8(1),g=s.getUint8(2),et=this.HEADER_LENGTH+2,rt=a.decode(e.slice(et,et+c));et=et+c;let nt=a.decode(e.slice(et,et+g));et=et+g;let st=e.slice(et,e.byteLength);return{join_ref:null,ref:null,topic:rt,event:nt,payload:st}}},Socket=class{constructor(e,s={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=s.timeout||DEFAULT_TIMEOUT,this.transport=s.transport||global.WebSocket||LongPoll,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=s.longPollFallbackMs,this.fallbackTimer=null;let a=null;try{a=global&&global.sessionStorage}catch{}this.sessionStore=s.sessionStorage||a,this.establishedConnections=0,this.defaultEncoder=serializer_default.encode.bind(serializer_default),this.defaultDecoder=serializer_default.decode.bind(serializer_default),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=s.binaryType||"arraybuffer",this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport!==LongPoll?(this.encode=s.encode||this.defaultEncoder,this.decode=s.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let c=null;phxWindow&&phxWindow.addEventListener&&(phxWindow.addEventListener("pagehide",g=>{this.conn&&(this.disconnect(),c=this.connectClock)}),phxWindow.addEventListener("pageshow",g=>{c===this.connectClock&&(c=null,this.connect())}),phxWindow.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=s.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=s.autoSendHeartbeat??!0,this.heartbeatCallback=s.heartbeatCallback??(()=>{}),this.rejoinAfterMs=g=>s.rejoinAfterMs?s.rejoinAfterMs(g):[1e3,2e3,5e3][g-1]||1e4,this.reconnectAfterMs=g=>s.reconnectAfterMs?s.reconnectAfterMs(g):[10,50,100,150,200,250,500,1e3,2e3][g-1]||5e3,this.logger=s.logger||null,!this.logger&&s.debug&&(this.logger=(g,et,rt)=>{console.log(`${g}: ${et}`,rt)}),this.longpollerTimeout=s.longpollerTimeout||2e4,this.params=closure(s.params||{}),this.endPoint=`${e}/${TRANSPORTS.websocket}`,this.vsn=s.vsn||DEFAULT_VSN,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new Timer(()=>{if(this.pageHidden){this.log("Not reconnecting as page is hidden!"),this.teardown();return}this.teardown(async()=>{s.beforeReconnect&&await s.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=s.authToken}getLongPollTransport(){return LongPoll}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&(this.conn.close(),this.conn=null),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=Ajax.appendParams(Ajax.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)!=="/"?e:e.charAt(1)==="/"?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,s,a){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},s,a)}connect(e){e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=closure(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==LongPoll?this.connectWithFallback(LongPoll,this.longPollFallbackMs):this.transportConnect())}log(e,s,a){this.logger&&this.logger(e,s,a)}hasLogger(){return this.logger!==null}onOpen(e){let s=this.makeRef();return this.stateChangeCallbacks.open.push([s,e]),s}onClose(e){let s=this.makeRef();return this.stateChangeCallbacks.close.push([s,e]),s}onError(e){let s=this.makeRef();return this.stateChangeCallbacks.error.push([s,e]),s}onMessage(e){let s=this.makeRef();return this.stateChangeCallbacks.message.push([s,e]),s}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let s=this.makeRef(),a=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:s});let c=this.onMessage(g=>{g.ref===s&&(this.off([c]),e(Date.now()-a))});return!0}transportName(e){switch(e){case LongPoll:return"LongPoll";default:return e.name}}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=["phoenix",`${AUTH_TOKEN_PREFIX}${btoa(this.authToken).replace(/=/g,"")}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=s=>this.onConnError(s),this.conn.onmessage=s=>this.onConnMessage(s),this.conn.onclose=s=>this.onConnClose(s)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,s){this.sessionStore&&this.sessionStore.setItem(e,s)}connectWithFallback(e,s=2500){clearTimeout(this.fallbackTimer);let a=!1,c=!0,g,et,rt=this.transportName(e),nt=st=>{this.log("transport",`falling back to ${rt}...`,st),this.off([g,et]),c=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${rt}`))return nt("memorized");this.fallbackTimer=setTimeout(nt,s),et=this.onError(st=>{this.log("transport","error",st),c&&!a&&(clearTimeout(this.fallbackTimer),nt(st))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(a=!0,!c){let st=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${st}`,"true"),this.log("transport",`established ${st} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(nt,s),this.ping(st=>{this.log("transport","connected to primary after",st),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks("open")}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(e){this.log("error","error in heartbeat callback",e)}this.triggerChanError(new Error("heartbeat timeout")),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),WS_CLOSE_NORMAL,"heartbeat timeout")}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,s,a){if(!this.conn)return e&&e();const c=this.conn;this.waitForBufferDone(c,()=>{s?c.close(s,a||""):c.close(),this.waitForSocketClosed(c,()=>{this.conn===c&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,s,a=1){if(a===5||!e.bufferedAmount){s();return}setTimeout(()=>{this.waitForBufferDone(e,s,a+1)},150*a)}waitForSocketClosed(e,s,a=1){if(a===5||e.readyState===SOCKET_STATES.closed){s();return}setTimeout(()=>{this.waitForSocketClosed(e,s,a+1)},150*a)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks("close",e)}onConnError(e){this.hasLogger()&&this.log("transport","error",e);let s=this.transport,a=this.establishedConnections;this.triggerStateCallbacks("error",e,s,a),(s===this.transport||a>0)&&this.triggerChanError(e)}
vendor: 4,580 bytes, line 75
75triggerChanError(e){this.channels.forEach(s=>{s.isErrored()||s.isLeaving()||s.isClosed()||s.trigger(CHANNEL_EVENTS.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case SOCKET_STATES.connecting:return"connecting";case SOCKET_STATES.open:return"open";case SOCKET_STATES.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(s=>s!==e)}off(e){for(let s in this.stateChangeCallbacks)this.stateChangeCallbacks[s]=this.stateChangeCallbacks[s].filter(([a])=>e.indexOf(a)===-1)}channel(e,s={}){let a=new Channel(e,s,this);return this.channels.push(a),a}push(e){if(this.hasLogger()){let{topic:s,event:a,payload:c,ref:g,join_ref:et}=e;this.log("push",`${s} ${a} (${et}, ${g})`,c)}this.isConnected()?this.encode(e,s=>this.conn.send(s)):this.sendBuffer.push(()=>this.encode(e,s=>this.conn.send(s)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(e){this.log("error","error in heartbeat callback",e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(e){this.log("error","error in heartbeat callback",e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,s=>{let{topic:a,event:c,payload:g,ref:et,join_ref:rt}=s;if(et&&et===this.pendingHeartbeatRef){const nt=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(g.status==="ok"?"ok":"error",nt)}catch(st){this.log("error","error in heartbeat callback",st)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log("receive",`${g.status||""} ${a} ${c} ${et&&"("+et+")"||""}`.trim(),g);for(let nt=0;nt<this.channels.length;nt++){const st=this.channels[nt];st.isMember(a,c,g,rt)&&st.trigger(c,g,et,rt)}this.triggerStateCallbacks("message",s)})}triggerStateCallbacks(e,...s){try{this.stateChangeCallbacks[e].forEach(([a,c])=>{try{c(...s)}catch(g){this.log("error",`error in ${e} callback`,g)}})}catch(a){this.log("error",`error triggering ${e} callbacks`,a)}}leaveOpenTopic(e){let s=this.channels.find(a=>a.topic===e&&(a.isJoined()||a.isJoining()));s&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),s.leave())}};class PresenceAdapter{constructor(s,a){const c=phoenixPresenceOptions(a);this.presence=new Presence$1(s.getChannel(),c),this.presence.onJoin((g,et,rt)=>{const nt=PresenceAdapter.onJoinPayload(g,et,rt);s.getChannel().trigger("presence",nt)}),this.presence.onLeave((g,et,rt)=>{const nt=PresenceAdapter.onLeavePayload(g,et,rt);s.getChannel().trigger("presence",nt)}),this.presence.onSync(()=>{s.getChannel().trigger("presence",{event:"sync"})})}get state(){return PresenceAdapter.transformState(this.presence.state)}static transformState(s){return s=cloneState(s),Object.getOwnPropertyNames(s).reduce((a,c)=>{const g=s[c];return a[c]=transformState(g),a},{})}static onJoinPayload(s,a,c){const g=parseCurrentPresences(a),et=transformState(c);return{event:"join",key:s,currentPresences:g,newPresences:et}}static onLeavePayload(s,a,c){const g=parseCurrentPresences(a),et=transformState(c);return{event:"leave",key:s,currentPresences:g,leftPresences:et}}}function transformState(e){return e.metas.map(s=>(s.presence_ref=s.phx_ref,delete s.phx_ref,delete s.phx_ref_prev,s))}function cloneState(e){return JSON.parse(JSON.stringify(e))}function phoenixPresenceOptions(e){return(e==null?void 0:e.events)&&{events:e.events}}function parseCurrentPresences(e){return e!=null&&e.metas?transformState(e):[]}var REALTIME_PRESENCE_LISTEN_EVENTS;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(REALTIME_PRESENCE_LISTEN_EVENTS||(REALTIME_PRESENCE_LISTEN_EVENTS={}));class RealtimePresence{get state(){return this.presenceAdapter.state}constructor(s,a){this.channel=s,this.presenceAdapter=new PresenceAdapter(this.channel.channelAdapter,a)}}function normalizeChannelError(e){if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);
75if(e&&typeof e=="object"){const s=e;if(typeof s.code=="number"){const a=typeof s.reason=="string"&&s.reason?` (${s.reason})`:"";return new Error(`socket closed: ${s.code}${a}`,{cause:e})}return new Error("channel error: transport failure",{cause:e})}return new Error("channel error: connection lost")}class ChannelAdapter{constructor(s,a,c){const g=phoenixChannelParams(c);this.channel=s.getSocket().channel(a,g),this.socket=s}get state(){return this.channel.state}set state(s){this.channel.state=s}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(s,a){return this.channel.on(s,a)}off(s,a){this.channel.off(s,a)}subscribe(s){return this.channel.join(s)}unsubscribe(s){return this.channel.leave(s)}teardown(){this.channel.teardown()}onClose(s){this.channel.onClose(s)}onError(s){return this.channel.onError(s)}push(s,a,c){let g;try{g=this.channel.push(s,a,c)}catch{throw new Error(`tried to push '${s}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>MAX_PUSH_BUFFER_SIZE){const et=this.channel.pushBuffer.shift();et.cancelTimeout(),this.socket.log("channel",`discarded push due to buffer overflow: ${et.event}`,et.payload())}return g}updateJoinPayload(s){const a=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},a),s)}canPush(){return this.socket.isConnected()&&this.state===CHANNEL_STATES$1.joined}isJoined(){return this.state===CHANNEL_STATES$1.joined}isJoining(){return this.state===CHANNEL_STATES$1.joining}isClosed(){return this.state===CHANNEL_STATES$1.closed}isLeaving(){return this.state===CHANNEL_STATES$1.leaving}updateFilterBindings(s){this.channel.filterBindings=s}updatePayloadTransform(s){this.channel.onMessage=s}getChannel(){return this.channel}}
75function phoenixChannelParams(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},e.config)}}var REALTIME_POSTGRES_CHANGES_LISTEN_EVENT;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT||(REALTIME_POSTGRES_CHANGES_LISTEN_EVENT={}));var REALTIME_LISTEN_TYPES;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(REALTIME_LISTEN_TYPES||(REALTIME_LISTEN_TYPES={}));var REALTIME_SUBSCRIBE_STATES;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(REALTIME_SUBSCRIBE_STATES||(REALTIME_SUBSCRIBE_STATES={}));class RealtimeChannel{get state(){return this.channelAdapter.state}set state(s){this.channelAdapter.state=s}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(s,a={config:{}},c){var g,et;if(this.topic=s,this.params=a,this.socket=c,this.bindings={},this.subTopic=s.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},a.config),this.channelAdapter=new ChannelAdapter(this.socket.socketAdapter,s,this.params),this.presence=new RealtimePresence(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=httpEndpointURL(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((et=(g=this.params.config)===null||g===void 0?void 0:g.broadcast)===null||et===void 0)&&et.replay))throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(s,a=this.timeout){var c,g,et;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:rt,presence:nt,private:st}}=this.params,at=(g=(c=this.bindings.postgres_changes)===null||c===void 0?void 0:c.map(ct=>ct.filter))!==null&&g!==void 0?g:[],it=!!this.bindings[REALTIME_LISTEN_TYPES.PRESENCE]&&this.bindings[REALTIME_LISTEN_TYPES.PRESENCE].length>0||((et=this.params.config.presence)===null||et===void 0?void 0:et.enabled)===!0,ot={},lt={broadcast:rt,presence:Object.assign(Object.assign({},nt),{enabled:it}),postgres_changes:at,private:st};this.socket.accessTokenValue&&(ot.access_token=this.socket.accessTokenValue),this._onError(ct=>{s==null||s(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,normalizeChannelError(ct))}),this._onClose(()=>s==null?void 0:s(REALTIME_SUBSCRIBE_STATES.CLOSED)),this.updateJoinPayload(Object.assign({config:lt},ot)),this._updateFilterMessage(),this.channelAdapter.subscribe(a).receive("ok",async({postgres_changes:ct})=>{if(this.socket._isManualToken()||this.socket.setAuth(),ct===void 0){s==null||s(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED);return}this._updatePostgresBindings(ct,s)}).receive("error",ct=>{this.state=CHANNEL_STATES$1.errored;const dt=Object.values(ct).join(", ")||"error";s==null||s(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,new Error(dt,{cause:ct}))}).receive("timeout",()=>{s==null||s(REALTIME_SUBSCRIBE_STATES.TIMED_OUT)})}return this}_updatePostgresBindings(s,a){var c;const g=this.bindings.postgres_changes,et=(c=g==null?void 0:g.length)!==null&&c!==void 0?c:0,rt=[];for(let nt=0;nt<et;nt++){const st=g[nt],{filter:{event:at,schema:it,table:ot,filter:lt}}=st,ct=s&&s[nt];
75if(ct&&ct.event===at&&RealtimeChannel.isFilterValueEqual(ct.schema,it)&&RealtimeChannel.isFilterValueEqual(ct.table,ot)&&RealtimeChannel.isFilterValueEqual(ct.filter,lt))rt.push(Object.assign(Object.assign({},st),{id:ct.id}));else{this.unsubscribe(),this.state=CHANNEL_STATES$1.errored,a==null||a(REALTIME_SUBSCRIBE_STATES.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=rt,this.state!=CHANNEL_STATES$1.errored&&a&&a(REALTIME_SUBSCRIBE_STATES.SUBSCRIBED)}presenceState(){return this.presence.state}async track(s,a={}){return await this.send({type:"presence",event:"track",payload:s},a.timeout||this.timeout)}async untrack(s={}){return await this.send({type:"presence",event:"untrack"},s)}on(s,a,c){const g=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),et=s===REALTIME_LISTEN_TYPES.PRESENCE||s===REALTIME_LISTEN_TYPES.POSTGRES_CHANGES;if(g&&et)throw this.socket.log("channel",`cannot add \`${s}\` callbacks for ${this.topic} after \`subscribe()\`.`),new Error(`cannot add \`${s}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(s,a,c)}async httpSend(s,a,c={}){var g;if(a==null)return Promise.reject(new Error("Payload is required for httpSend()"));const et={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(et.Authorization=`Bearer ${this.socket.accessTokenValue}`);const rt={method:"POST",headers:et,body:JSON.stringify({messages:[{topic:this.subTopic,event:s,payload:a,private:this.private}]})},nt=await this._fetchWithTimeout(this.broadcastEndpointURL,rt,(g=c.timeout)!==null&&g!==void 0?g:this.timeout);if(nt.status===202)return{success:!0};let st=nt.statusText;try{const at=await nt.json();st=at.error||at.message||st}catch{}return Promise.reject(new Error(st))}async send(s,a={}){var c,g;if(!this.channelAdapter.canPush()&&s.type==="broadcast"){console.warn("Realtime send() is automatically falling back to REST API. This behavior will be deprecated
75in the future. Please use httpSend() explicitly for REST delivery.");const{event:et,payload:rt}=s,nt={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(nt.Authorization=`Bearer ${this.socket.accessTokenValue}`);const st={method:"POST",headers:nt,body:JSON.stringify({messages:[{topic:this.subTopic,event:et,payload:rt,private:this.private}]})};try{const at=await this._fetchWithTimeout(this.broadcastEndpointURL,st,(c=a.timeout)!==null&&c!==void 0?c:this.timeout);return await((g=at.body)===null||g===void 0?void 0:g.cancel()),at.ok?"ok":"error"}catch(at){return at instanceof Error&&at.name==="AbortError"?"timed out":"error"}}else return new Promise(et=>{var rt,nt,st;const at=this.channelAdapter.push(s.type,s,a.timeout||this.timeout);s.type==="broadcast"&&!(!((st=(nt=(rt=this.params)===null||rt===void 0?void 0:rt.config)===null||nt===void 0?void 0:nt.broadcast)===null||st===void 0)&&st.ack)&&et("ok"),at.receive("ok",()=>et("ok")),at.receive("error",()=>et("error")),at.receive("timeout",()=>et("timed out"))})}updateJoinPayload(s){this.channelAdapter.updateJoinPayload(s)}async unsubscribe(s=this.timeout){return new Promise(a=>{this.channelAdapter.unsubscribe(s).receive("ok",()=>a("ok")).receive("timeout",()=>a("timed out")).receive("error",()=>a("error"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(s,a,c){const g=new AbortController,et=setTimeout(()=>g.abort(),c),rt=await this.socket.fetch(s,Object.assign(Object.assign({},a),{signal:g.signal}));return clearTimeout(et),rt}_on(s,a,c){const g=s.toLocaleLowerCase(),et=this.channelAdapter.on(s,c),rt={type:g,filter:a,callback:c,ref:et};return this.bindings[g]?this.bindings[g].push(rt):this.bindings[g]=[rt],this._updateFilterMessage(),this}_onClose(s){this.channelAdapter.onClose(s)}_onError(s){this.channelAdapter.onError(s)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((s,a,c)=>{var g,et,rt,nt,st,at,it;const ot=s.event.toLocaleLowerCase();if(this._notThisChannelEvent(ot,c))return!1;const lt=(g=this.bindings[ot])===null||g===void 0?void 0:g.find(ct=>ct.ref===s.ref);if(!lt)return!0;if(["broadcast","presence","postgres_changes"].includes(ot))if("id"in lt){const ct=lt.id,dt=(et=lt.filter)===null||et===void 0?void 0:et.event;return ct&&((rt=a.ids)===null||rt===void 0?void 0:rt.includes(ct))&&(dt==="*"||(dt==null?void 0:dt.toLocaleLowerCase())===((nt=a.data)===null||nt===void 0?void 0:nt.type.toLocaleLowerCase()))}else{const ct=(at=(st=lt==null?void 0:lt.filter)===null||st===void 0?void 0:st.event)===null||at===void 0?void 0:at.toLocaleLowerCase();return ct==="*"||ct===((it=a==null?void 0:a.event)===null||it===void 0?void 0:it.toLocaleLowerCase())}else return lt.type.toLocaleLowerCase()===ot})}_notThisChannelEvent(s,a){const{close:c,error:g,leave:et,join:rt}=CHANNEL_EVENTS$1;return a&&[c,g,et,rt].includes(s)&&a!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((s,a,c)=>{if(typeof a=="object"&&"ids"in a){const g=a.data,{schema:et,table:rt,commit_timestamp:nt,type:st,errors:at}=g;return Object.assign(Object.assign({},{schema:et,table:rt,commit_timestamp:nt,eventType:st,new:{},old:{},errors:at}),this._getPayloadRecords(g))}return a})}copyBindings(s){if(this.joinedOnce)throw new Error("cannot copy bindings into joined channel");for(const a in s.bindings)for(const c of s.bindings[a])this._on(c.type,c.filter,c.callback)}static isFilterValueEqual(s,a){return(s??void 0)===(a??void 0)}_getPayloadRecords(s){const a={new:{},old:{}};return(s.type==="INSERT"||s.type==="UPDATE")&&(a.new=convertChangeData(s.columns,s.record)),(s.type==="UPDATE"||s.type==="DELETE")&&(a.old=convertChangeData(s.columns,s.old_record)),a}}class SocketAdapter{constructor(s,a){this.socket=new Socket(s,a)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(s){this.socket.heartbeatCallback=s}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(s,a,c,g=1e4){return new Promise(et=>{setTimeout(()=>et("timeout"),g),this.socket.disconnect(()=>{s(),et("ok")},a,c)})}push(s){this.socket.push(s)}log(s,a,c){this.socket.log(s,a,c)}makeRef(){return this.socket.makeRef()}onOpen(s){this.socket.onOpen(s)}onClose(s){this.socket.onClose(s)}onError(s){this.socket.onError(s)}onMessage(s){this.socket.onMessage(s)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==CONNECTION_STATE.connecting}isDisconnecting(){return this.socket.connectionState()==CONNECTION_STATE.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const CONNECTION_TIMEOUTS={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},RECONNECT_INTERVALS=[1e3,2e3,5e3,1e4],DEFAULT_RECONNECT_FALLBACK=1e4;function createMemorySessionStorage(){const e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(s){return e.has(s)?e.get(s):null},key(s){var a;return(a=Array.from(e.keys())[s])!==null&&a!==void 0?a:null},removeItem(s){e.delete(s)},setItem(s,a){e.set(s,String(a))}}}function resolveSessionStorage(){try{if(typeof globalThis<"u"&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return createMemorySessionStorage()}const WORKER_SCRIPT=` 76 addEventListener("message", (e) => { 77 if (e.data.event === "start") { 78 setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); 79 } 80 });`;class RealtimeClient{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(s,a){var c;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint="",this.headers={},this.params={}
80,this.ref=0,this.serializer=new Serializer,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=et=>et?(...rt)=>et(...rt):(...rt)=>fetch(...rt),!(!((c=a==null?void 0:a.params)===null||c===void 0)&&c.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=a.params.apikey;const g=this._initializeOptions(a);this.socketAdapter=new SocketAdapter(s,g),this.httpEndpoint=httpEndpointURL(s),this.fetch=this._resolveFetch(a==null?void 0:a.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(s){const a=s.message;throw a.includes("Node.js")?new Error(`${a} 81 82To use Realtime in Node.js, you need to provide a WebSocket implementation: 83 84Option 1: Use Node.js 22+ which has native WebSocket support 85Option 2: Install and provide the "ws" package: 86 87 npm install ws 88 89 import ws from "ws" 90 const client = new RealtimeClient(url, { 91 ...options, 92 transport: ws 93 })`):new Error(`WebSocket not available: ${a}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(s,a){return this._cancelPendingDisconnect(),this.isDisconnecting()?"ok":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},s,a)}getChannels(){return this.channels}async removeChannel(s){const a=await s.unsubscribe();return a==="ok"&&s.teardown(),a}async removeAllChannels(){const s=this.channels.map(async c=>{const g=await c.unsubscribe();return c.teardown(),g}),a=await Promise.all(s);return await this.disconnect(),a}log(s,a,c){this.socketAdapter.log(s,a,c)}connectionState(){return this.socketAdapter.connectionState()||CONNECTION_STATE.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(s,a={config:{}}){const c=`realtime:${s}`,g=this.getChannels().find(et=>et.topic===c);if(g)return g;{const et=new RealtimeChannel(`realtime:${s}`,a,this);return this._cancelPendingDisconnect(),this.channels.push(et),et}}push(s){this.socketAdapter.push(s)}async setAuth(s=null){this._authPromise=this._performAuth(s);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(s){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(s)}_makeRef(){return this.socketAdapter.makeRef()}_remove(s){this.channels=this.channels.filter(a=>a.topic!==s.topic),this.channels.length===0&&(this.log("transport","no channels remaining, scheduling disconnect"),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log("transport","disconnecting immediately - no channels"),this.disconnect();return}
93this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log("transport","deferred disconnect fired - no channels, disconnecting"),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log("transport",`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log("transport","pending disconnect cancelled - channel activity detected"),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(s=null){let a,c=!1;if(s)a=s,c=!0;else if(this.accessToken)try{a=await this.accessToken()}catch(g){this.log("error","Error fetching access token from callback",g),a=this.accessTokenValue}else a=this.accessTokenValue;c?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=a&&(this.accessTokenValue=a,this.channels.forEach(g=>{const et={access_token:a,version:DEFAULT_VERSION};a&&g.updateJoinPayload(et),g.joinedOnce&&g.channelAdapter.isJoined()&&g.channelAdapter.push(CHANNEL_EVENTS$1.access_token,{access_token:a})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(s="general"){this._isManualToken()||this.setAuth().catch(a=>{this.log("error",`Error setting auth in ${s}`,a)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(a=>{this.log("error","error waiting for auth on connect",a)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(s=>{s.ref&&s.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(s){return(a,c)=>{a=="sent"&&this._setAuthSafely(),s&&s(a,c)}}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const s=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(s),this.workerRef.onerror=a=>{this.log("worker","worker error",a.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=a=>{a.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(s){let a;if(s)a=s;else{const c=new Blob([WORKER_SCRIPT],{type:"application/javascript"});a=URL.createObjectURL(c)}return a}_initializeOptions(s){var a,c,g,et,rt,nt,st,at,it,ot,lt,ct;this.worker=(a=s==null?void 0:s.worker)!==null&&a!==void 0?a:!1,this.accessToken=(c=s==null?void 0:s.accessToken)!==null&&c!==void 0?c:null;const dt={};dt.timeout=(g=s==null?void 0:s.timeout)!==null&&g!==void 0?g:DEFAULT_TIMEOUT$1,dt.heartbeatIntervalMs=(et=s==null?void 0:s.heartbeatIntervalMs)!==null&&et!==void 0?et:CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=(rt=s==null?void 0:s.disconnectOnEmptyChannelsAfterMs)!==null&&rt!==void 0?rt:2*((nt=s==null?void 0:s.heartbeatIntervalMs)!==null&&nt!==void 0?nt:CONNECTION_TIMEOUTS.HEARTBEAT_INTERVAL),dt.transport=(st=s==null?void 0:s.transport)!==null&&st!==void 0?st:WebSocketFactory.getWebSocketConstructor(),dt.params=s==null?void 0:s.params,dt.logger=s==null?void 0:s.logger,dt.heartbeatCallback=this._wrapHeartbeatCallback(s==null?void 0:s.heartbeatCallback),dt.sessionStorage=(at=s==null?void 0:s.sessionStorage)!==null&&at!==void 0?at:resolveSessionStorage(),dt.reconnectAfterMs=(it=s==null?void 0:s.reconnectAfterMs)!==null&&it!==void 0?it:ht=>RECONNECT_INTERVALS[ht-1]||DEFAULT_RECONNECT_FALLBACK;let ut,xt;const gt=(ot=s==null?void 0:s.vsn)!==null&&ot!==void 0?ot:DEFAULT_VSN$1;switch(gt){case VSN_1_0_0:ut=(ht,mt)=>mt(JSON.stringify(ht)),xt=(ht,mt)=>mt(JSON.parse(ht));break;case VSN_2_0_0:ut=this.serializer.encode.bind(this.serializer),xt=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${dt.vsn}`)}if(dt.vsn=gt,dt.encode=(lt=s==null?void 0:s.encode)!==null&<!==void 0?lt:ut,dt.decode=(ct=s==null?void 0:s.decode)!==null&&ct!==void 0?ct:xt,dt.beforeReconnect=this._reconnectAuth.bind(this),(s!=null&&s.logLevel||s!=null&&s.log_level)&&(this.logLevel=s.logLevel||s.log_level,dt.params=Object.assign(Object.assign({},dt.params),{log_level:this.logLevel})),this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=s==null?void 0:s.workerUrl,dt.autoSendHeartbeat=!this.worker}return dt}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}
93var IcebergError=class extends Error{constructor(e,s){var a;super(e),this.name="IcebergError",this.status=s.status,this.icebergType=s.icebergType,this.icebergCode=s.icebergCode,this.details=s.details,this.isCommitStateUnknown=s.icebergType==="CommitStateUnknownException"||[500,502,504].includes(s.status)&&((a=s.icebergType)==null?void 0:a.includes("CommitState"))===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function buildUrl(e,s,a){const c=new URL(s,e);if(a)for(const[g,et]of Object.entries(a))et!==void 0&&c.searchParams.set(g,et);return c.toString()}async function buildAuthHeaders(e){return!e||e.type==="none"?{}:e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:e.type==="header"?{[e.name]:e.value}:e.type==="custom"?await e.getHeaders():{}}function createFetchClient(e){const s=e.fetchImpl??globalThis.fetch;return{async request({method:a,path:c,query:g,body:et,headers:rt}){const nt=buildUrl(e.baseUrl,c,g),st=await buildAuthHeaders(e.auth),at=await s(nt,{method:a,headers:{...et?{"Content-Type":"application/json"}:{},...st,...rt},body:et?JSON.stringify(et):void 0}),it=await at.text(),ot=(at.headers.get("content-type")||"").includes("application/json"),lt=ot&&it?JSON.parse(it):it;if(!at.ok){const ct=ot?lt:void 0,dt=ct==null?void 0:ct.error;throw new IcebergError((dt==null?void 0:dt.message)??`Request failed with status ${at.status}`,{status:at.status,icebergType:dt==null?void 0:dt.type,icebergCode:dt==null?void 0:dt.code,details:ct})}return{status:at.status,headers:at.headers,data:lt}}}}function namespaceToPath(e){return e.join("�")}var NamespaceOperations=class{constructor(e,s=""){this.client=e,this.prefix=s}async listNamespaces(e){const s=e?{parent:namespaceToPath(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:s})).data.namespaces.map(c=>({namespace:c}))}async createNamespace(e,s){const a={namespace:e.namespace,properties:s==null?void 0:s.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:a})).data}async dropNamespace(e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${namespaceToPath(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${namespaceToPath(e.namespace)}`}),!0}catch(s){if(s instanceof IcebergError&&s.status===404)return!1;throw s}}async createNamespaceIfNotExists(e,s){try{return await this.createNamespace(e,s)}catch(a){if(a instanceof IcebergError&&a.status===409)return;throw a}}};function namespaceToPath2(e){return e.join("�")}var TableOperations=class{constructor(e,s="",a){this.client=e,this.prefix=s,this.accessDelegation=a}async listTables(e){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables`})).data.identifiers}async createTable(e,s){const a={};return this.accessDelegation&&(a["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables`,body:s,headers:a})).data.metadata}async updateTable(e,s){const a=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables/${e.name}`,body:s});return{"metadata-location":a.data["metadata-location"],metadata:a.data.metadata}}async dropTable(e,s){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String((s==null?void 0:s.purge)??!1)}})}async loadTable(e){const s={};return this.accessDelegation&&(s["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables/${e.name}`,headers:s})).data.metadata}async tableExists(e){const s={};this.accessDelegation&&(s["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${namespaceToPath2(e.namespace)}/tables/${e.name}`,headers:s}),!0}catch(a){if(a instanceof IcebergError&&a.status===404)return!1;throw a}}async createTableIfNotExists(e,s){try{return await this.createTable(e,s)}catch(a){if(a instanceof IcebergError&&a.status===409)return await this.loadTable({namespace:e.namespace,name:s.name});throw a}}},IcebergRestCatalog=class{constructor(e){var c;let s="v1";e.catalogName&&(s+=`/${e.catalogName}`);const a=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=createFetchClient({baseUrl:a,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=(c=e.accessDelegation)==null?void 0:c.join(","),this.namespaceOps=new NamespaceOperations(this.client,s),this.tableOps=new TableOperations(this.client,s,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,s){return this.namespaceOps.createNamespace(e,s)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
93async createTable(e,s){return this.tableOps.createTable(e,s)}async updateTable(e,s){return this.tableOps.updateTable(e,s)}async dropTable(e,s){await this.tableOps.dropTable(e,s)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,s){return this.namespaceOps.createNamespaceIfNotExists(e,s)}async createTableIfNotExists(e,s){return this.tableOps.createTableIfNotExists(e,s)}};function _typeof$1(e){"@babel/helpers - typeof";return _typeof$1=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},_typeof$1(e)}function toPrimitive$1(e,s){if(_typeof$1(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var c=a.call(e,s||"default");if(_typeof$1(c)!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(e)}function toPropertyKey$1(e){var s=toPrimitive$1(e,"string");return _typeof$1(s)=="symbol"?s:s+""}function _defineProperty$1(e,s,a){return(s=toPropertyKey$1(s))in e?Object.defineProperty(e,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[s]=a,e}function ownKeys$1(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);s&&(c=c.filter(function(g){return Object.getOwnPropertyDescriptor(e,g).enumerable})),a.push.apply(a,c)}return a}function _objectSpread2$1(e){for(var s=1;s<arguments.length;s++){var a=arguments[s]!=null?arguments[s]:{};s%2?ownKeys$1(Object(a),!0).forEach(function(c){_defineProperty$1(e,c,a[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys$1(Object(a)).forEach(function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(a,c))})}return e}var StorageError=class extends Error{constructor(e,s="storage",a,c){super(e),this.__isStorageError=!0,this.namespace=s,this.name=s==="vectors"?"StorageVectorsError":"StorageError",this.status=a,this.statusCode=c}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function isStorageError(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}var StorageApiError=class extends StorageError{constructor(e,s,a,c="storage"){super(e,c,s,a),this.name=c==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=s,this.statusCode=a}toJSON(){return _objectSpread2$1({},super.toJSON())}},StorageUnknownError=class extends StorageError{constructor(e,s,a="storage"){super(e,a),this.name=a==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=s}};function setHeader(e,s,a){const c=_objectSpread2$1({},e),g=s.toLowerCase();for(const et of Object.keys(c))et.toLowerCase()===g&&delete c[et];return c[g]=a,c}function normalizeHeaders(e){const s={};for(const[a,c]of Object.entries(e))s[a.toLowerCase()]=c;return s}const resolveFetch$2=e=>e?(...s)=>e(...s):(...s)=>fetch(...s),isPlainObject$1=e=>{if(typeof e!="object"||e===null)return!1;const s=Object.getPrototypeOf(e);return(s===null||s===Object.prototype||Object.getPrototypeOf(s)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},recursiveToCamel=e=>{if(Array.isArray(e))return e.map(a=>recursiveToCamel(a));if(typeof e=="function"||e!==Object(e))return e;const s={};return Object.entries(e).forEach(([a,c])=>{const g=a.replace(/([-_][a-z])/gi,et=>et.toUpperCase().replace(/[-_]/g,""));s[g]=recursiveToCamel(c)}),s},isValidBucketName=e=>!e||typeof e!="string"||e.length===0||e.length>100||e.trim()!==e||e.includes("/")||e.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),_getErrorMessage$1=e=>{if(typeof e=="object"&&e!==null){const s=e;if(typeof s.msg=="string")return s.msg;if(typeof s.message=="string")return s.message;if(typeof s.error_description=="string")return s.error_description;if(typeof s.error=="string")return s.error;if(typeof s.error=="object"&&s.error!==null){const a=s.error;if(typeof a.message=="string")return a.message}}return JSON.stringify(e)},handleError$1=async(e,s,a,c)=>{if(e!==null&&typeof e=="object"&&"json"in e&&typeof e.json=="function"){const g=e;let et=parseInt(String(g.status),10);Number.isFinite(et)||(et=500),g.json().then(rt=>{const nt=(rt==null?void 0:rt.statusCode)||(rt==null?void 0:rt.code)||et+"";s(new StorageApiError(_getErrorMessage$1(rt),et,nt,c))}).catch(()=>{const rt=et+"";s(new StorageApiError(g.statusText||`HTTP ${et} error`,et,rt,c))})}else s(new StorageUnknownError(_getErrorMessage$1(e),e,c))}
93,_getRequestParams$1=(e,s,a,c)=>{const g={method:e,headers:(s==null?void 0:s.headers)||{}};if(e==="GET"||e==="HEAD"||!c)return _objectSpread2$1(_objectSpread2$1({},g),a);if(isPlainObject$1(c)){var et;const rt=(s==null?void 0:s.headers)||{};let nt;for(const[st,at]of Object.entries(rt))st.toLowerCase()==="content-type"&&(nt=at);g.headers=setHeader(rt,"Content-Type",(et=nt)!==null&&et!==void 0?et:"application/json"),g.body=JSON.stringify(c)}else g.body=c;return s!=null&&s.duplex&&(g.duplex=s.duplex),_objectSpread2$1(_objectSpread2$1({},g),a)};async function _handleRequest$1(e,s,a,c,g,et,rt){return new Promise((nt,st)=>{e(a,_getRequestParams$1(s,c,g,et)).then(at=>{if(!at.ok)throw at;if(c!=null&&c.noResolveJson)return at;if(rt==="vectors"){const it=at.headers.get("content-type");if(at.headers.get("content-length")==="0"||at.status===204)return{};if(!it||!it.includes("application/json"))return{}}return at.json()}).then(at=>nt(at)).catch(at=>handleError$1(at,st,c,rt))})}function createFetchApi(e="storage"){return{get:async(s,a,c,g)=>_handleRequest$1(s,"GET",a,c,g,void 0,e),post:async(s,a,c,g,et)=>_handleRequest$1(s,"POST",a,g,et,c,e),put:async(s,a,c,g,et)=>_handleRequest$1(s,"PUT",a,g,et,c,e),head:async(s,a,c,g)=>_handleRequest$1(s,"HEAD",a,_objectSpread2$1(_objectSpread2$1({},c),{},{noResolveJson:!0}),g,void 0,e),remove:async(s,a,c,g,et)=>_handleRequest$1(s,"DELETE",a,g,et,c,e)}}const defaultApi=createFetchApi("storage"),{get,post,put,head,remove}=defaultApi,vectorsApi=createFetchApi("vectors");var BaseApiClient=class{constructor(e,s={},a,c="storage"){this.shouldThrowOnError=!1,this.url=e,this.headers=normalizeHeaders(s),this.fetch=resolveFetch$2(a),this.namespace=c}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,s){return this.headers=setHeader(this.headers,e,s),this}async handleOperation(e){var s=this;try{return{data:await e(),error:null}}catch(a){if(s.shouldThrowOnError)throw a;if(isStorageError(a))return{data:null,error:a};throw a}}},StreamDownloadBuilder=class{constructor(e,s){this.downloadFn=e,this.shouldThrowOnError=s}then(e,s){return this.execute().then(e,s)}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(s){if(e.shouldThrowOnError)throw s;if(isStorageError(s))return{data:null,error:s};throw s}}};let _Symbol$toStringTag;_Symbol$toStringTag=Symbol.toStringTag;var BlobDownloadBuilder=class{constructor(e,s){this.downloadFn=e,this.shouldThrowOnError=s,this[_Symbol$toStringTag]="BlobDownloadBuilder",this.promise=null}asStream(){return new StreamDownloadBuilder(this.downloadFn,this.shouldThrowOnError)}then(e,s){return this.getPromise().then(e,s)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(s){if(e.shouldThrowOnError)throw s;if(isStorageError(s))return{data:null,error:s};throw s}}};const DEFAULT_SEARCH_OPTIONS={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},DEFAULT_FILE_OPTIONS={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var StorageFileApi=class extends BaseApiClient{constructor(e,s={},a,c){super(e,s,c,"storage"),this.bucketId=a}async uploadOrUpdate(e,s,a,c){var g=this;return g.handleOperation(async()=>{let et;const rt=_objectSpread2$1(_objectSpread2$1({},DEFAULT_FILE_OPTIONS),c);let nt=_objectSpread2$1(_objectSpread2$1({},g.headers),e==="POST"&&{"x-upsert":String(rt.upsert)});const st=rt.metadata;if(typeof Blob<"u"&&a instanceof Blob?(et=new FormData,et.append("cacheControl",rt.cacheControl),st&&et.append("metadata",g.encodeMetadata(st)),et.append("",a)):typeof FormData<"u"&&a instanceof FormData?(et=a,et.has("cacheControl")||et.append("cacheControl",rt.cacheControl),st&&!et.has("metadata")&&et.append("metadata",g.encodeMetadata(st))):(et=a,nt["cache-control"]=`max-age=${rt.cacheControl}`,nt["content-type"]=rt.contentType,st&&(nt["x-metadata"]=g.toBase64(g.encodeMetadata(st))),(typeof ReadableStream<"u"&&et instanceof ReadableStream||et&&typeof et=="object"&&"pipe"in et&&typeof et.pipe=="function")&&!rt.duplex&&(rt.duplex="half")),c!=null&&c.headers)for(const[lt,ct]of Object.entries(c.headers))nt=setHeader(nt,lt,ct);const at=g._removeEmptyFolders(s),it=g._getFinalPath(at),ot=await(e=="PUT"?put:post)(g.fetch,`${g.url}/object/${it}`,et,_objectSpread2$1({headers:nt},rt!=null&&rt.duplex?{duplex:rt.duplex}:{}));return{path:at,id:ot.Id,fullPath:ot.Key}})}async upload(e,s,a){return this.uploadOrUpdate("POST",e,s,a)}async uploadToSignedUrl(e,s,a,c){var g=this;const et=g._removeEmptyFolders(e),rt=g._getFinalPath(et),nt=new URL(g.url+`/object/upload/sign/${rt}`);return nt.searchParams.set("token",s),g.handleOperation(async()=>{let st;const at=_objectSpread2$1(_objectSpread2$1({},DEFAULT_FILE_OPTIONS),c);let it=_objectSpread2$1(_objectSpread2$1({},g.headers),{"x-upsert":String(at.upsert)});const ot=at.metadata;
93if(typeof Blob<"u"&&a instanceof Blob?(st=new FormData,st.append("cacheControl",at.cacheControl),ot&&st.append("metadata",g.encodeMetadata(ot)),st.append("",a)):typeof FormData<"u"&&a instanceof FormData?(st=a,st.has("cacheControl")||st.append("cacheControl",at.cacheControl),ot&&!st.has("metadata")&&st.append("metadata",g.encodeMetadata(ot))):(st=a,it["cache-control"]=`max-age=${at.cacheControl}`,it["content-type"]=at.contentType,ot&&(it["x-metadata"]=g.toBase64(g.encodeMetadata(ot))),(typeof ReadableStream<"u"&&st instanceof ReadableStream||st&&typeof st=="object"&&"pipe"in st&&typeof st.pipe=="function")&&!at.duplex&&(at.duplex="half")),c!=null&&c.headers)for(const[lt,ct]of Object.entries(c.headers))it=setHeader(it,lt,ct);return{path:et,fullPath:(await put(g.fetch,nt.toString(),st,_objectSpread2$1({headers:it},at!=null&&at.duplex?{duplex:at.duplex}:{}))).Key}})}async createSignedUploadUrl(e,s){var a=this;return a.handleOperation(async()=>{let c=a._getFinalPath(e);const g=_objectSpread2$1({},a.headers);s!=null&&s.upsert&&(g["x-upsert"]="true");const et=await post(a.fetch,`${a.url}/object/upload/sign/${c}`,{},{headers:g}),rt=new URL(a.url+et.url),nt=rt.searchParams.get("token");if(!nt)throw new StorageError("No token returned by API");return{signedUrl:rt.toString(),path:e,token:nt}})}async update(e,s,a){return this.uploadOrUpdate("PUT",e,s,a)}async move(e,s,a){var c=this;return c.handleOperation(async()=>await post(c.fetch,`${c.url}/object/move`,{bucketId:c.bucketId,sourceKey:e,destinationKey:s,destinationBucket:a==null?void 0:a.destinationBucket},{headers:c.headers}))}async copy(e,s,a){var c=this;return c.handleOperation(async()=>({path:(await post(c.fetch,`${c.url}/object/copy`,{bucketId:c.bucketId,sourceKey:e,destinationKey:s,destinationBucket:a==null?void 0:a.destinationBucket},{headers:c.headers})).Key}))}async createSignedUrl(e,s,a){var c=this;return c.handleOperation(async()=>{let g=c._getFinalPath(e);const et=typeof(a==null?void 0:a.transform)=="object"&&a.transform!==null&&Object.keys(a.transform).length>0;let rt=await post(c.fetch,`${c.url}/object/sign/${g}`,_objectSpread2$1({expiresIn:s},et?{transform:a.transform}:{}),{headers:c.headers});const nt=new URLSearchParams;a!=null&&a.download&&nt.set("download",a.download===!0?"":a.download),(a==null?void 0:a.cacheNonce)!=null&&nt.set("cacheNonce",String(a.cacheNonce));const st=nt.toString();return{signedUrl:encodeURI(`${c.url}${rt.signedURL}${st?`&${st}`:""}`)}})}async createSignedUrls(e,s,a){var c=this;return c.handleOperation(async()=>{const g=await post(c.fetch,`${c.url}/object/sign/${c.bucketId}`,{expiresIn:s,paths:e},{headers:c.headers}),et=new URLSearchParams;a!=null&&a.download&&et.set("download",a.download===!0?"":a.download),(a==null?void 0:a.cacheNonce)!=null&&et.set("cacheNonce",String(a.cacheNonce));const rt=et.toString();return g.map(nt=>_objectSpread2$1(_objectSpread2$1({},nt),{},{signedUrl:nt.signedURL?encodeURI(`${c.url}${nt.signedURL}${rt?`&${rt}`:""}`):null}))})}download(e,s,a){const c=typeof(s==null?void 0:s.transform)=="object"&&s.transform!==null&&Object.keys(s.transform).length>0?"render/image/authenticated":"object",g=new URLSearchParams;s!=null&&s.transform&&this.applyTransformOptsToQuery(g,s.transform),(s==null?void 0:s.cacheNonce)!=null&&g.set("cacheNonce",String(s.cacheNonce));const et=g.toString(),rt=this._getFinalPath(e),nt=()=>get(this.fetch,`${this.url}/${c}/${rt}${et?`?${et}`:""}`,{headers:this.headers,noResolveJson:!0},a);return new BlobDownloadBuilder(nt,this.shouldThrowOnError)}async info(e){var s=this;const a=s._getFinalPath(e);return s.handleOperation(async()=>recursiveToCamel(await get(s.fetch,`${s.url}/object/info/${a}`,{headers:s.headers})))}async exists(e){var s=this;const a=s._getFinalPath(e);try{return await head(s.fetch,`${s.url}/object/${a}`,{headers:s.headers}),{data:!0,error:null}}catch(g){if(s.shouldThrowOnError)throw g;if(isStorageError(g)){var c;const et=g instanceof StorageApiError?g.status:g instanceof StorageUnknownError?(c=g.originalError)===null||c===void 0?void 0:c.status:void 0;if(et!==void 0&&[400,404].includes(et))return{data:!1,error:g}}throw g}}getPublicUrl(e,s){const a=this._getFinalPath(e),c=new URLSearchParams;s!=null&&s.download&&c.set("download",s.download===!0?"":s.download),s!=null&&s.transform&&this.applyTransformOptsToQuery(c,s.transform),(s==null?void 0:s.cacheNonce)!=null&&c.set("cacheNonce",String(s.cacheNonce));const g=c.toString(),et=typeof(s==null?void 0:s.transform)=="object"&&s.transform!==null&&Object.keys(s.transform).length>0?"render/image":"object";return{data:{publicUrl:encodeURI(`${this.url}/${et}/public/${a}`)+(g?`?${g}`:"")}}}async remove(e){var s=this;return s.handleOperation(async()=>await remove(s.fetch,`${s.url}/object/${s.bucketId}`,{prefixes:e},{headers:s.headers}))}async list(e,s,a){var c=this;return c.handleOperation(async()=>{const g=_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({},DEFAULT_SEARCH_OPTIONS),s),{},{prefix:e||""});return await post(c.fetch,`${c.url}/object/list/${c.bucketId}`,g,{headers:c.headers},a)})}async listV2(e,s){var a=this;return a.handleOperation(async()=>{const c=_objectSpread2$1({},e);return await post(a.fetch,`${a.url}/object/list-v2/${a.bucketId}`,c,{headers:a.headers},s)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}applyTransformOptsToQuery(e,s){return s.width&&e.set("width",s.width.toString()),s.height&&e.set("height",s.height.toString()),s.resize&&e.set("resize",s.resize),s.format&&e.set("format",s.format),s.quality&&e.set("qual
93ity",s.quality.toString()),e}};const version$2="2.105.4",DEFAULT_HEADERS$2={"X-Client-Info":`storage-js/${version$2}`};var StorageBucketApi=class extends BaseApiClient{constructor(e,s={},a,c){const g=new URL(e);c!=null&&c.useNewHostname&&/supabase\.(co|in|red)$/.test(g.hostname)&&!g.hostname.includes("storage.supabase.")&&(g.hostname=g.hostname.replace("supabase.","storage.supabase."));const et=g.href.replace(/\/$/,""),rt=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),s);super(et,rt,a,"storage")}async listBuckets(e){var s=this;return s.handleOperation(async()=>{const a=s.listBucketOptionsToQueryString(e);return await get(s.fetch,`${s.url}/bucket${a}`,{headers:s.headers})})}async getBucket(e){var s=this;return s.handleOperation(async()=>await get(s.fetch,`${s.url}/bucket/${e}`,{headers:s.headers}))}async createBucket(e,s={public:!1}){var a=this;return a.handleOperation(async()=>await post(a.fetch,`${a.url}/bucket`,{id:e,name:e,type:s.type,public:s.public,file_size_limit:s.fileSizeLimit,allowed_mime_types:s.allowedMimeTypes},{headers:a.headers}))}async updateBucket(e,s){var a=this;return a.handleOperation(async()=>await put(a.fetch,`${a.url}/bucket/${e}`,{id:e,name:e,public:s.public,file_size_limit:s.fileSizeLimit,allowed_mime_types:s.allowedMimeTypes},{headers:a.headers}))}async emptyBucket(e){var s=this;return s.handleOperation(async()=>await post(s.fetch,`${s.url}/bucket/${e}/empty`,{},{headers:s.headers}))}async deleteBucket(e){var s=this;return s.handleOperation(async()=>await remove(s.fetch,`${s.url}/bucket/${e}`,{},{headers:s.headers}))}listBucketOptionsToQueryString(e){const s={};return e&&("limit"in e&&(s.limit=String(e.limit)),"offset"in e&&(s.offset=String(e.offset)),e.search&&(s.search=e.search),e.sortColumn&&(s.sortColumn=e.sortColumn),e.sortOrder&&(s.sortOrder=e.sortOrder)),Object.keys(s).length>0?"?"+new URLSearchParams(s).toString():""}},StorageAnalyticsClient=class extends BaseApiClient{constructor(e,s={},a){const c=e.replace(/\/$/,""),g=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),s);super(c,g,a,"storage")}async createBucket(e){var s=this;return s.handleOperation(async()=>await post(s.fetch,`${s.url}/bucket`,{name:e},{headers:s.headers}))}async listBuckets(e){var s=this;return s.handleOperation(async()=>{const a=new URLSearchParams;(e==null?void 0:e.limit)!==void 0&&a.set("limit",e.limit.toString()),(e==null?void 0:e.offset)!==void 0&&a.set("offset",e.offset.toString()),e!=null&&e.sortColumn&&a.set("sortColumn",e.sortColumn),e!=null&&e.sortOrder&&a.set("sortOrder",e.sortOrder),e!=null&&e.search&&a.set("search",e.search);const c=a.toString(),g=c?`${s.url}/bucket?${c}`:`${s.url}/bucket`;return await get(s.fetch,g,{headers:s.headers})})}async deleteBucket(e){var s=this;return s.handleOperation(async()=>await remove(s.fetch,`${s.url}/bucket/${e}`,{},{headers:s.headers}))}from(e){var s=this;if(!isValidBucketName(e))throw new StorageError("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const a=new IcebergRestCatalog({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:async()=>s.headers},fetch:this.fetch}),c=this.shouldThrowOnError;return new Proxy(a,{get(g,et){const rt=g[et];return typeof rt!="function"?rt:async(...nt)=>{try{return{data:await rt.apply(g,nt),error:null}}catch(st){if(c)throw st;return{data:null,error:st}}}}})}},VectorIndexApi=class extends BaseApiClient{constructor(e,s={},a){const c=e.replace(/\/$/,""),g=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},s);super(c,g,a,"vectors")}async createIndex(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/CreateIndex`,e,{headers:s.headers})||{})}async getIndex(e,s){var a=this;return a.handleOperation(async()=>await vectorsApi.post(a.fetch,`${a.url}/GetIndex`,{vectorBucketName:e,indexName:s},{headers:a.headers}))}async listIndexes(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/ListIndexes`,e,{headers:s.headers}))}async deleteIndex(e,s){var a=this;return a.handleOperation(async()=>await vectorsApi.post(a.fetch,`${a.url}/DeleteIndex`,{vectorBucketName:e,indexName:s},{headers:a.headers})||{})}},VectorDataApi=class extends BaseApiClient{constructor(e,s={},a){const c=e.replace(/\/$/,""),g=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},s);super(c,g,a,"vectors")}async putVectors(e){var s=this;if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/PutVectors`,e,{headers:s.headers})||{})}async getVectors(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/GetVectors`,e,{headers:s.headers}))}async listVectors(e){var s=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");
93if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/ListVectors`,e,{headers:s.headers}))}async queryVectors(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/QueryVectors`,e,{headers:s.headers}))}async deleteVectors(e){var s=this;if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/DeleteVectors`,e,{headers:s.headers})||{})}},VectorBucketApi=class extends BaseApiClient{constructor(e,s={},a){const c=e.replace(/\/$/,""),g=_objectSpread2$1(_objectSpread2$1({},DEFAULT_HEADERS$2),{},{"Content-Type":"application/json"},s);super(c,g,a,"vectors")}async createBucket(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:s.headers})||{})}async getBucket(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/GetVectorBucket`,{vectorBucketName:e},{headers:s.headers}))}async listBuckets(e={}){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/ListVectorBuckets`,e,{headers:s.headers}))}async deleteBucket(e){var s=this;return s.handleOperation(async()=>await vectorsApi.post(s.fetch,`${s.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:s.headers})||{})}},StorageVectorsClient=class extends VectorBucketApi{constructor(e,s={}){super(e,s.headers||{},s.fetch)}from(e){return new VectorBucketScope(this.url,this.headers,e,this.fetch)}async createBucket(e){var s=()=>super.createBucket,a=this;return s().call(a,e)}async getBucket(e){var s=()=>super.getBucket,a=this;return s().call(a,e)}async listBuckets(e={}){var s=()=>super.listBuckets,a=this;return s().call(a,e)}async deleteBucket(e){var s=()=>super.deleteBucket,a=this;return s().call(a,e)}},VectorBucketScope=class extends VectorIndexApi{constructor(e,s,a,c){super(e,s,c),this.vectorBucketName=a}async createIndex(e){var s=()=>super.createIndex,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName}))}async listIndexes(e={}){var s=()=>super.listIndexes,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName}))}async getIndex(e){var s=()=>super.getIndex,a=this;return s().call(a,a.vectorBucketName,e)}async deleteIndex(e){var s=()=>super.deleteIndex,a=this;return s().call(a,a.vectorBucketName,e)}index(e){return new VectorIndexScope(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},VectorIndexScope=class extends VectorDataApi{constructor(e,s,a,c,g){super(e,s,g),this.vectorBucketName=a,this.indexName=c}async putVectors(e){var s=()=>super.putVectors,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async getVectors(e){var s=()=>super.getVectors,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async listVectors(e={}){var s=()=>super.listVectors,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async queryVectors(e){var s=()=>super.queryVectors,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}async deleteVectors(e){var s=()=>super.deleteVectors,a=this;return s().call(a,_objectSpread2$1(_objectSpread2$1({},e),{},{vectorBucketName:a.vectorBucketName,indexName:a.indexName}))}},StorageClient=class extends StorageBucketApi{constructor(e,s={},a,c){super(e,s,a,c)}from(e){return new StorageFileApi(this.url,this.headers,e,this.fetch)}get vectors(){return new StorageVectorsClient(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new StorageAnalyticsClient(this.url+"/iceberg",this.headers,this.fetch)}};const version$1="2.105.4",AUTO_REFRESH_TICK_DURATION_MS=30*1e3,AUTO_REFRESH_TICK_THRESHOLD=3,EXPIRY_MARGIN_MS=AUTO_REFRESH_TICK_THRESHOLD*AUTO_REFRESH_TICK_DURATION_MS,GOTRUE_URL="http://localhost:9999",STORAGE_KEY="supabase.auth.token",DEFAULT_HEADERS$1={"X-Client-Info":`gotrue-js/${version$1}`},API_VERSION_HEADER_NAME="X-Supabase-Api-Version",API_VERSIONS={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},BASE64URL_REGEX=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,JWKS_TTL=10*60*1e3;
93class AuthError extends Error{constructor(s,a,c){super(s),this.__isAuthError=!0,this.name="AuthError",this.status=a,this.code=c}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}}function isAuthError(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class AuthApiError extends AuthError{constructor(s,a,c){super(s,a,c),this.name="AuthApiError",this.status=a,this.code=c}}function isAuthApiError(e){return isAuthError(e)&&e.name==="AuthApiError"}class AuthUnknownError extends AuthError{constructor(s,a){super(s),this.name="AuthUnknownError",this.originalError=a}}class CustomAuthError extends AuthError{constructor(s,a,c,g){super(s,c,g),this.name=a,this.status=c}}class AuthSessionMissingError extends CustomAuthError{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function isAuthSessionMissingError(e){return isAuthError(e)&&e.name==="AuthSessionMissingError"}class AuthInvalidTokenResponseError extends CustomAuthError{constructor(){super("Auth session or user missing","AuthInvalidToken
93ResponseError",500,void 0)}}class AuthInvalidCredentialsError extends CustomAuthError{constructor(s){super(s,"AuthInvalidCredentialsError",400,void 0)}}class AuthImplicitGrantRedirectError extends CustomAuthError{constructor(s,a=null){super(s,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=a}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}function isAuthImplicitGrantRedirectError(e){return isAuthError(e)&&e.name==="AuthImplicitGrantRedirectError"}class AuthPKCEGrantCodeExchangeError extends CustomAuthError{constructor(s,a=null){super(s,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=a}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}class AuthPKCECodeVerifierMissingError extends CustomAuthError{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class AuthRetryableFetchError extends CustomAuthError{constructor(s,a){super(s,"AuthRetryableFetchError",a,void 0)}}function isAuthRetryableFetchError(e){return isAuthError(e)&&e.name==="AuthRetryableFetchError"}class AuthWeakPasswordError extends CustomAuthError{constructor(s,a,c){super(s,"AuthWeakPasswordError",a,"weak_password"),this.reasons=c}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}}class AuthInvalidJwtError extends CustomAuthError{constructor(s){super(s,"AuthInvalidJwtError",400,"invalid_jwt")}}const TO_BASE64URL="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),IGNORE_BASE64URL=` 94\r=`.split(""),FROM_BASE64URL=(()=>{const e=new Array(128);for(let s=0;s<e.length;s+=1)e[s]=-1;for(let s=0;s<IGNORE_BASE64URL.length;s+=1)e[IGNORE_BASE64URL[s].charCodeAt(0)]=-2;for(let s=0;s<TO_BASE64URL.length;s+=1)e[TO_BASE64URL[s].charCodeAt(0)]=s;return e})();function byteToBase64URL(e,s,a){if(e!==null)for(s.queue=s.queue<<8|e,s.queuedBits+=8;s.queuedBits>=6;){const c=s.queue>>s.queuedBits-6&63;a(TO_BASE64URL[c]),s.queuedBits-=6}else if(s.queuedBits>0)for(s.queue=s.queue<<6-s.queuedBits,s.queuedBits=6;s.queuedBits>=6;){const c=s.queue>>s.queuedBits-6&63;a(TO_BASE64URL[c]),s.queuedBits-=6}}function byteFromBase64URL(e,s,a){const c=FROM_BASE64URL[e];if(c>-1)for(s.queue=s.queue<<6|c,s.queuedBits+=6;s.queuedBits>=8;)a(s.queue>>s.queuedBits-8&255),s.queuedBits-=8;else{if(c===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}}function stringFromBase64URL(e){const s=[],a=rt=>{s.push(String.fromCodePoint(rt))},c={utf8seq:0,codepoint:0},g={queue:0,queuedBits:0},et=rt=>{stringFromUTF8(rt,c,a)};for(let rt=0;rt<e.length;rt+=1)byteFromBase64URL(e.charCodeAt(rt),g,et);return s.join("")}function codepointToUTF8(e,s){if(e<=127){s(e);return}else if(e<=2047){s(192|e>>6),s(128|e&63);return}else if(e<=65535){s(224|e>>12),s(128|e>>6&63),s(128|e&63);return}else if(e<=1114111){s(240|e>>18),s(128|e>>12&63),s(128|e>>6&63),s(128|e&63);return}throw new Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function stringToUTF8(e,s){for(let a=0;a<e.length;a+=1){let c=e.charCodeAt(a);if(c>55295&&c<=56319){const g=(c-55296)*1024&65535;c=(e.charCodeAt(a+1)-56320&65535|g)+65536,a+=1}codepointToUTF8(c,s)}}function stringFromUTF8(e,s,a){if(s.utf8seq===0){if(e<=127){a(e);return}for(let c=1;c<6;c+=1)if(!(e>>7-c&1)){s.utf8seq=c;break}if(s.utf8seq===2)s.codepoint=e&31;else if(s.utf8seq===3)s.codepoint=e&15;else if(s.utf8seq===4)s.codepoint=e&7;else throw new Error("Invalid UTF-8 sequence");s.utf8seq-=1}else if(s.utf8seq>0){if(e<=127)throw new Error("Invalid UTF-8 sequence");s.codepoint=s.codepoint<<6|e&63,s.utf8seq-=1,s.utf8seq===0&&a(s.codepoint)}}function base64UrlToUint8Array(e){const s=[],a={queue:0,queuedBits:0},c=g=>{s.push(g)};for(let g=0;g<e.length;g+=1)byteFromBase64URL(e.charCodeAt(g),a,c);return new Uint8Array(s)}function stringToUint8Array(e){const s=[];return stringToUTF8(e,a=>s.push(a)),new Uint8Array(s)}function bytesToBase64URL(e){const s=[],a={queue:0,queuedBits:0},c=g=>{s.push(g)};return e.forEach(g=>byteToBase64URL(g,a,c)),byteToBase64URL(null,a,c),s.join("")}function expiresAt(e){return Math.round(Date.now()/1e3)+e}function generateCallbackId(){return Symbol("auth-callback")}const isBrowser=()=>typeof window<"u"&&typeof document<"u",localStorageWriteTests={tested:!1,writable:!1},supportsLocalStorage=()=>{if(!isBrowser())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(localStorageWriteTests.tested)return localStorageWriteTests.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),localStorageWriteTests.tested=!0,localStorageWriteTests.writable=!0}catch{localStorageWriteTests.tested=!0,localStorageWriteTests.writable=!1}return localStorageWriteTests.writable};function parseParametersFromURL(e){const s={},a=new URL(e);if(a.hash&&a.hash[0]==="#")try{new URLSearchParams(a.hash.substring(1)).forEac
94h((g,et)=>{s[et]=g})}catch{}return a.searchParams.forEach((c,g)=>{s[g]=c}),s}const resolveFetch$1=e=>e?(...s)=>e(...s):(...s)=>fetch(...s),looksLikeFetchResponse=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",setItemAsync=async(e,s,a)=>{await e.setItem(s,JSON.stringify(a))},getItemAsync=async(e,s)=>{const a=await e.getItem(s);if(!a)return null;try{return JSON.parse(a)}catch{return null}},removeItemAsync=async(e,s)=>{await e.removeItem(s)};class Deferred{constructor(){this.promise=new Deferred.promiseConstructor((s,a)=>{this.resolve=s,this.reject=a})}}Deferred.promiseConstructor=Promise;function decodeJWT(e){const s=e.split(".");if(s.length!==3)throw new AuthInvalidJwtError("Invalid JWT structure");for(let c=0;c<s.length;c++)if(!BASE64URL_REGEX.test(s[c]))throw new AuthInvalidJwtError("JWT not in base64url format");return{header:JSON.parse(stringFromBase64URL(s[0])),payload:JSON.parse(stringFromBase64URL(s[1])),signature:base64UrlToUint8Array(s[2]),raw:{header:s[0],payload:s[1]}}}async function sleep$1(e){return await new Promise(s=>{setTimeout(()=>s(null),e)})}function retryable(e,s){return new Promise((c,g)=>{(async()=>{for(let et=0;et<1/0;et++)try{const rt=await e(et);if(!s(et,null,rt)){c(rt);return}}catch(rt){if(!s(et,rt)){g(rt);return}}})()})}function dec2hex(e){return("0"+e.toString(16)).substr(-2)}function generatePKCEVerifier(){const s=new Uint32Array(56);if(typeof crypto>"u"){const a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",c=a.length;let g="";for(let et=0;et<56;et++)g+=a.charAt(Math.floor(Math.random()*c));return g}return crypto.getRandomValues(s),Array.from(s,dec2hex).join("")}async function sha256(e){const a=new TextEncoder().encode(e),c=await crypto.subtle.digest("SHA-256",a),g=new Uint8Array(c);return Array.from(g).map(et=>String.fromCharCode(et)).join("")}async function generatePKCEChallenge(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const a=await sha256(e);return btoa(a).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function getCodeChallengeAndMethod(e,s,a=!1){const c=generatePKCEVerifier();let g=c;a&&(g+="/recovery"),await setItemAsync(e,`${s}-code-verifier`,g);const et=await generatePKCEChallenge(c);return[et,c===et?"plain":"s256"]}const API_VERSION_REGEX=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function parseResponseAPIVersion(e){const s=e.headers.get(API_VERSION_HEADER_NAME);if(!s||!s.match(API_VERSION_REGEX))return null;try{return new Date(`${s}T00:00:00.0Z`)}catch{return null}}function validateExp(e){if(!e)throw new Error("Missing exp claim");const s=Math.floor(Date.now()/1e3);if(e<=s)throw new Error("JWT has expired")}function getAlgorithm(e){switch(e){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const UUID_REGEX=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function validateUUID(e){if(!UUID_REGEX.test(e))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function assertPasskeyExperimentalEnabled(e){if(!e.passkey)throw new Error("@supabase/auth-js: the passkey API is experimental and disabled by default. Enable it by passing `auth: { experimental: { passkey: true } }` to createClient (or to the GoTrueClient constructor).")}function userNotAvailableProxy(){const e={};return new Proxy(e,{get:(s,a)=>{if(a==="__isUserNotAvailableProxy")return!0;if(typeof a=="symbol"){const c=a.toString();if(c==="Symbol(Symbol.toPrimitive)"||c==="Symbol(Symbol.toStringTag)"||c==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${a}" property of the session object is not supported. Please use getUser() instead.`)},set:(s,a)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${a}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(s,a)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${a}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function insecureUserWarningProxy(e,s){return new Proxy(e,{get:(a,c,g)=>{if(c==="__isInsecureUserWarningProxy")return!0;
94if(typeof c=="symbol"){const et=c.toString();if(et==="Symbol(Symbol.toPrimitive)"||et==="Symbol(Symbol.toStringTag)"||et==="Symbol(util.inspect.custom)"||et==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(a,c,g)}return!s.value&&typeof c=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),s.value=!0),Reflect.get(a,c,g)}})}function deepClone(e){return JSON.parse(JSON.stringify(e))}const _getErrorMessage=e=>{if(typeof e=="object"&&e!==null){const s=e;if(typeof s.msg=="string")return s.msg;if(typeof s.message=="string")return s.message;if(typeof s.error_description=="string")return s.error_description;if(typeof s.error=="string")return s.error}return JSON.stringify(e)},NETWORK_ERROR_CODES=[502,503,504,520,521,522,523,524,530];async function handleError(e){var s;if(!looksLikeFetchResponse(e))throw new AuthRetryableFetchError(_getErrorMessage(e),0);if(NETWORK_ERROR_CODES.includes(e.status))throw new AuthRetryableFetchError(_getErrorMessage(e),e.status);let a;try{a=await e.json()}catch(et){throw new AuthUnknownError(_getErrorMessage(et),et)}let c;const g=parseResponseAPIVersion(e);if(g&&g.getTime()>=API_VERSIONS["2024-01-01"].timestamp&&typeof a=="object"&&a&&typeof a.code=="string"?c=a.code:typeof a=="object"&&a&&typeof a.error_code=="string"&&(c=a.error_code),c){if(c==="weak_password")throw new AuthWeakPasswordError(_getErrorMessage(a),e.status,((s=a.weak_password)===null||s===void 0?void 0:s.reasons)||[]);if(c==="session_not_found")throw new AuthSessionMissingError}else if(typeof a=="object"&&a&&typeof a.weak_password=="object"&&a.weak_password&&Array.isArray(a.weak_password.reasons)&&a.weak_password.reasons.length&&a.weak_password.reasons.reduce((et,rt)=>et&&typeof rt=="string",!0))throw new AuthWeakPasswordError(_getErrorMessage(a),e.status,a.weak_password.reasons);throw new AuthApiError(_getErrorMessage(a),e.status||500,c)}
94const _getRequestParams=(e,s,a,c)=>{const g={method:e,headers:(s==null?void 0:s.headers)||{}};return e==="GET"?g:(g.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},s==null?void 0:s.headers),g.body=JSON.stringify(c),Object.assign(Object.assign({},g),a))};async function _request(e,s,a,c){var g;const et=Object.assign({},c==null?void 0:c.headers);et[API_VERSION_HEADER_NAME]||(et[API_VERSION_HEADER_NAME]=API_VERSIONS["2024-01-01"].name),c!=null&&c.jwt&&(et.Authorization=`Bearer ${c.jwt}`);const rt=(g=c==null?void 0:c.query)!==null&&g!==void 0?g:{};c!=null&&c.redirectTo&&(rt.redirect_to=c.redirectTo);const nt=Object.keys(rt).length?"?"+new URLSearchParams(rt).toString():"",st=await _handleRequest(e,s,a+nt,{headers:et,noResolveJson:c==null?void 0:c.noResolveJson},{},c==null?void 0:c.body);return c!=null&&c.xform?c==null?void 0:c.xform(st):{data:Object.assign({},st),error:null}}async function _handleRequest(e,s,a,c,g,et){const rt=_getRequestParams(s,c,g,et);let nt;try{nt=await e(a,Object.assign({},rt))}catch(st){throw console.error(st),new AuthRetryableFetchError(_getErrorMessage(st),0)}if(nt.ok||await handleError(nt),c!=null&&c.noResolveJson)return nt;try{return await nt.json()}catch(st){await handleError(st)}}function _sessionResponse(e){var s;let a=null;
94hasSession(e)&&(a=Object.assign({},e),e.expires_at||(a.expires_at=expiresAt(e.expires_in)));const c=(s=e.user)!==null&&s!==void 0?s:e;return{data:{session:a,user:c},error:null}}function _sessionResponsePassword(e){const s=_sessionResponse(e);return!s.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((a,c)=>a&&typeof c=="string",!0)&&(s.data.weak_password=e.weak_password),s}function _userResponse(e){var s;return{data:{user:(s=e.user)!==null&&s!==void 0?s:e},error:null}}function _ssoResponse(e){return{data:e,error:null}}function _generateLinkResponse(e){const{action_link:s,email_otp:a,hashed_token:c,redirect_to:g,verification_type:et}=e,rt=__rest(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),nt={action_link:s,email_otp:a,hashed_token:c,redirect_to:g,verification_type:et},st=Object.assign({},rt);return{data:{properties:nt,user:st},error:null}}function _noResolveJsonResponse(e){return e}function hasSession(e){return!!e.access_token&&!!e.refresh_token&&!!e.expires_in}const SIGN_OUT_SCOPES=["global","local","others"];class GoTrueAdminApi{constructor({url:s="",headers:a={},fetch:c,experimental:g}){this.url=s,this.headers=a,this.fetch=resolveFetch$1(c),this.experimental=g??{},this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)},this.passkey={listPasskeys:this._adminListPasskeys.bind(this),deletePasskey:this._adminDeletePasskey.bind(this)}}async signOut(s,a=SIGN_OUT_SCOPES[0]){if(SIGN_OUT_SCOPES.indexOf(a)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${SIGN_OUT_SCOPES.join(", ")}`);try{return await _request(this.fetch,"POST",`${this.url}/logout?scope=${a}`,{headers:this.headers,jwt:s,noResolveJson:!0}),{data:null,error:null}}catch(c){if(isAuthError(c))return{data:null,error:c};throw c}}async inviteUserByEmail(s,a={}){try{return await _request(this.fetch,"POST",`${this.url}/invite`,{body:{email:s,data:a.data},headers:this.headers,redirectTo:a.redirectTo,xform:_userResponse})}catch(c){if(isAuthError(c))return{data:{user:null},error:c};throw c}}async generateLink(s){try{const{options:a}=s,c=__rest(s,["options"]),g=Object.assign(Object.assign({},c),a);return"newEmail"in c&&(g.new_email=c==null?void 0:c.newEmail,delete g.newEmail),await _request(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:g,headers:this.headers,xform:_generateLinkResponse,redirectTo:a==null?void 0:a.redirectTo})}catch(a){if(isAuthError(a))return{data:{properties:null,user:null},error:a};throw a}}async createUser(s){try{return await _request(this.fetch,"POST",`${this.url}/admin/users`,{body:s,headers:this.headers,xform:_userResponse})}catch(a){if(isAuthError(a))return{data:{user:null},error:a};throw a}}async listUsers(s){var a,c,g,et,rt,nt,st;try{const at={nextPage:null,lastPage:0,total:0},it=await _request(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(c=(a=s==null?void 0:s.page)===null||a===void 0?void 0:a.toString())!==null&&c!==void 0?c:"",per_page:(et=(g=s==null?void 0:s.perPage)===null||g===void 0?void 0:g.toString())!==null&&et!==void 0?et:""}
vendor: 2,277 bytes, line 94
94,xform:_noResolveJsonResponse});if(it.error)throw it.error;const ot=await it.json(),lt=(rt=it.headers.get("x-total-count"))!==null&&rt!==void 0?rt:0,ct=(st=(nt=it.headers.get("link"))===null||nt===void 0?void 0:nt.split(","))!==null&&st!==void 0?st:[];return ct.length>0&&(ct.forEach(dt=>{const ut=parseInt(dt.split(";")[0].split("=")[1].substring(0,1)),xt=JSON.parse(dt.split(";")[1].split("=")[1]);at[`${xt}Page`]=ut}),at.total=parseInt(lt)),{data:Object.assign(Object.assign({},ot),at),error:null}}catch(at){if(isAuthError(at))return{data:{users:[]},error:at};throw at}}async getUserById(s){validateUUID(s);try{return await _request(this.fetch,"GET",`${this.url}/admin/users/${s}`,{headers:this.headers,xform:_userResponse})}catch(a){if(isAuthError(a))return{data:{user:null},error:a};throw a}}async updateUserById(s,a){validateUUID(s);try{return await _request(this.fetch,"PUT",`${this.url}/admin/users/${s}`,{body:a,headers:this.headers,xform:_userResponse})}catch(c){if(isAuthError(c))return{data:{user:null},error:c};throw c}}async deleteUser(s,a=!1){validateUUID(s);try{return await _request(this.fetch,"DELETE",`${this.url}/admin/users/${s}`,{headers:this.headers,body:{should_soft_delete:a},xform:_userResponse})}catch(c){if(isAuthError(c))return{data:{user:null},error:c};throw c}}async _listFactors(s){validateUUID(s.userId);try{const{data:a,error:c}=await _request(this.fetch,"GET",`${this.url}/admin/users/${s.userId}/factors`,{headers:this.headers,xform:g=>({data:{factors:g},error:null})});return{data:a,error:c}}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _deleteFactor(s){validateUUID(s.userId),validateUUID(s.id);try{return{data:await _request(this.fetch,"DELETE",`${this.url}/admin/users/${s.userId}/factors/${s.id}`,{headers:this.headers}),error:null}}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _listOAuthClients(s){var a,c,g,et,rt,nt,st;try{const at={nextPage:null,lastPage:0,total:0},it=await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(c=(a=s==null?void 0:s.page)===null||a===void 0?void 0:a.toString())!==null&&c!==void 0?c:"",per_page:(et=(g=s==null?void 0:s.perPage)===null||g===void 0?void 0:g.toString())!==null&&et!==void 0?et:""}
94,xform:_noResolveJsonResponse});if(it.error)throw it.error;const ot=await it.json(),lt=(rt=it.headers.get("x-total-count"))!==null&&rt!==void 0?rt:0,ct=(st=(nt=it.headers.get("link"))===null||nt===void 0?void 0:nt.split(","))!==null&&st!==void 0?st:[];return ct.length>0&&(ct.forEach(dt=>{const ut=parseInt(dt.split(";")[0].split("=")[1].substring(0,1)),xt=JSON.parse(dt.split(";")[1].split("=")[1]);at[`${xt}Page`]=ut}),at.total=parseInt(lt)),{data:Object.assign(Object.assign({},ot),at),error:null}}catch(at){if(isAuthError(at))return{data:{clients:[]},error:at};throw at}}async _createOAuthClient(s){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:s,headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _getOAuthClient(s){try{return await _request(this.fetch,"GET",`${this.url}/admin/oauth/clients/${s}`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _updateOAuthClient(s,a){try{return await _request(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${s}`,{body:a,headers:this.headers,xform:c=>({data:c,error:null})})}catch(c){if(isAuthError(c))return{data:null,error:c};throw c}}async _deleteOAuthClient(s){try{return await _request(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${s}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _regenerateOAuthClientSecret(s){try{return await _request(this.fetch,"POST",`${this.url}/admin/oauth/clients/${s}/regenerate_secret`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _listCustomProviders(s){try{const a={};return s!=null&&s.type&&(a.type=s.type),await _request(this.fetch,"GET",`${this.url}/admin/custom-providers`,{headers:this.headers,query:a,xform:c=>{var g;return{data:{providers:(g=c==null?void 0:c.providers)!==null&&g!==void 0?g:[]},error:null}}})}catch(a){if(isAuthError(a))return{data:{providers:[]},error:a};throw a}}async _createCustomProvider(s){try{return await _request(this.fetch,"POST",`${this.url}/admin/custom-providers`,{body:s,headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _getCustomProvider(s){try{return await _request(this.fetch,"GET",`${this.url}/admin/custom-providers/${s}`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _updateCustomProvider(s,a){try{return await _request(this.fetch,"PUT",`${this.url}/admin/custom-providers/${s}`,{body:a,headers:this.headers,xform:c=>({data:c,error:null})})}catch(c){if(isAuthError(c))return{data:null,error:c};throw c}}async _deleteCustomProvider(s){try{return await _request(this.fetch,"DELETE",`${this.url}/admin/custom-providers/${s}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _adminListPasskeys(s){assertPasskeyExperimentalEnabled(this.experimental),validateUUID(s.userId);try{return await _request(this.fetch,"GET",`${this.url}/admin/users/${s.userId}/passkeys`,{headers:this.headers,xform:a=>({data:a,error:null})})}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}async _adminDeletePasskey(s){assertPasskeyExperimentalEnabled(this.experimental),validateUUID(s.userId),validateUUID(s.passkeyId);try{return await _request(this.fetch,"DELETE",`${this.url}/admin/users/${s.userId}/passkeys/${s.passkeyId}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(a){if(isAuthError(a))return{data:null,error:a};throw a}}}function memoryLocalStorageAdapter(e={}){return{getItem:s=>e[s]||null,setItem:(s,a)=>{e[s]=a},removeItem:s=>{delete e[s]}}}const internals={debug:!!(globalThis&&supportsLocalStorage()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class LockAcquireTimeoutError extends Error{constructor(s){super(s),this.isAcquireTimeout=!0}}class NavigatorLockAcquireTimeoutError extends LockAcquireTimeoutError{}async function navigatorLock(e,s,a){internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,s);const c=new globalThis.AbortController;let g;s>0&&(g=setTimeout(()=>{c.abort(),internals.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",e)},s)),await Promise.resolve();try{return await globalThis.navigator.locks.request(e,s===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:c.signal},async et=>{if(et){clearTimeout(g),internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,et.name);try{return await a()}finally{internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,et.name)}
94}else{if(s===0)throw internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new NavigatorLockAcquireTimeoutError(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(internals.debug)try{const rt=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(rt,null," "))}catch(rt){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",rt)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),clearTimeout(g),await a()}})}catch(et){if(s>0&&clearTimeout(g),et!==null&&typeof et=="object"&&"name"in et&&et.name==="AbortError"&&s>0){if(c.signal.aborted)return internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire timeout, recovering by stealing lock",e),console.warn(`@supabase/gotrue-js: Lock "${e}" was not released within ${s}ms. This may indicate an orphaned lock from a component unmount (e.g., React Strict Mode). Forcefully acquiring the lock to recover.`),await Promise.resolve().then(()=>globalThis.navigator.locks.request(e,{mode:"exclusive",steal:!0},async rt=>{if(rt){internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: recovered (stolen)",e,rt.name);try{return await a()}finally{internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: released (stolen)",e,rt.name)}}else return console.warn("@supabase/gotrue-js: Navigator LockManager returned null lock even with steal: true"),await a()}));throw internals.debug&&console.log("@supabase/gotrue-js: navigatorLock: lock was stolen by another request",e),new NavigatorLockAcquireTimeoutError(`Lock "${e}" was released because another request stole it`)}throw et}}function polyfillGlobalThis(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function getAddress(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw new Error(`@supabase/auth-js: Address "${e}" is invalid.`);return e.toLowerCase()}function fromHex(e){return parseInt(e,16)}function toHex(e){const s=new TextEncoder().encode(e);return"0x"+Array.from(s,c=>c.toString(16).padStart(2,"0")).join("")}function createSiweMessage(e){var s;const{chainId:a,domain:c,expirationTime:g,issuedAt:et=new Date,nonce:rt,notBefore:nt,requestId:st,resources:at,scheme:it,uri:ot,version:lt}=e;{if(!Number.isInteger(a))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${a}`);if(!c)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(rt&&rt.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${rt}`);if(!ot)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(lt!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${lt}`);if(!((s=e.statement)===null||s===void 0)&&s.includes(` 95`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`)}const ct=getAddress(e.address),dt=it?`${it}://${c}`:c,ut=e.statement?`${e.statement} 96`:"",xt=`${dt} wants you to sign in with your Ethereum account: 97${ct} 98 99${ut}`;let gt=`URI: ${ot} 100Version: ${lt} 101Chain ID: ${a}${rt?` 102Nonce: ${rt}`:""} 103Issued At: ${et.toISOString()}`;if(g&&(gt+=` 104Expiration Time: ${g.toISOString()}`),nt&&(gt+=` 105Not Before: ${nt.toISOString()}`),st&&(gt+=` 106Request ID: ${st}`),at){let ht=` 107Resources:`;for(const mt of at){if(!mt||typeof mt!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${mt}`);ht+=` 108- ${mt}`}gt+=ht}return`${xt} 109${gt}`}
109class WebAuthnError extends Error{constructor({message:s,code:a,cause:c,name:g}){var et;super(s,{cause:c}),this.__isWebAuthnError=!0,this.name=(et=g??(c instanceof Error?c.name:void 0))!==null&&et!==void 0?et:"Unknown Error",this.code=a}toJSON(){return{name:this.name,message:this.message,code:this.code}}}class WebAuthnUnknownError extends WebAuthnError{constructor(s,a){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:a,message:s}),this.name="WebAuthnUnknownError",this.originalError=a}}function identifyRegistrationError({error:e,options:s}){var a,c,g;const{publicKey:et}=s;if(!et)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(s.signal instanceof AbortSignal)return new WebAuthnError({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((a=et.authenticatorSelection)===null||a===void 0?void 0:a.requireResidentKey)===!0)return new WebAuthnError({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(s.mediation==="conditional"&&((c=et.authenticatorSelection)===null||c===void 0?void 0:c.userVerification)==="required")return new WebAuthnError({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((g=et.authenticatorSelection)===null||g===void 0?void 0:g.userVerification)==="required")return new WebAuthnError({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new WebAuthnError({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new WebAuthnError({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return et.pubKeyCredParams.filter(nt=>nt.type==="public-key").length===0?new WebAuthnError({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new WebAuthnError({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const rt=window.location.hostname;if(isValidDomain(rt)){if(et.rp.id!==rt)return new WebAuthnError({message:`The RP ID "${et.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new WebAuthnError({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(et.user.id.byteLength<1||et.user.id.byteLength>64)return new WebAuthnError({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}function identifyAuthenticationError({error:e,options:s}){const{publicKey:a}=s;if(!a)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(s.signal instanceof AbortSignal)return new WebAuthnError({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new WebAuthnError({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const c=window.location.hostname;if(isValidDomain(c)){if(a.rpId!==c)return new WebAuthnError({message:`The RP ID "${a.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new WebAuthnError({message:`${window.location.hostname}
109 is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new WebAuthnError({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new WebAuthnError({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}class WebAuthnAbortService{createNewAbortSignal(){if(this.controller){const a=new Error("Cancelling existing WebAuthn API call for new one");a.name="AbortError",this.controller.abort(a)}const s=new AbortController;return this.controller=s,s.signal}cancelCeremony(){if(this.controller){const s=new Error("Manually cancelling existing WebAuthn API call");s.name="AbortError",this.controller.abort(s),this.controller=void 0}}}const webAuthnAbortService=new WebAuthnAbortService;function deserializeCredentialCreationOptions(e){if(!e)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(e);const{challenge:s,user:a,excludeCredentials:c}=e,g=__rest(e,["challenge","user","excludeCredentials"]),et=base64UrlToUint8Array(s).buffer,rt=Object.assign(Object.assign({},a),{id:base64UrlToUint8Array(a.id).buffer}),nt=Object.assign(Object.assign({},g),{challenge:et,user:rt});if(c&&c.length>0){nt.excludeCredentials=new Array(c.length);for(let st=0;st<c.length;st++){const at=c[st];nt.excludeCredentials[st]=Object.assign(Object.assign({},at),{id:base64UrlToUint8Array(at.id).buffer,type:at.type||"public-key",transports:at.transports})}}return nt}function deserializeCredentialRequestOptions(e){if(!e)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(e);const{challenge:s,allowCredentials:a}=e,c=__rest(e,["challenge","allowCredentials"]),g=base64UrlToUint8Array(s).buffer,et=Object.assign(Object.assign({},c),{challenge:g});if(a&&a.length>0){et.allowCredentials=new Array(a.length);for(let rt=0;rt<a.length;rt++){const nt=a[rt];et.allowCredentials[rt]=Object.assign(Object.assign({},nt),{id:base64UrlToUint8Array(nt.id).buffer,type:nt.type||"public-key",transports:nt.transports})}}return et}function serializeCredentialCreationResponse(e){var s;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const a=e;return{id:e.id,rawId:e.id,response:{attestationObject:bytesToBase64URL(new Uint8Array(e.response.attestationObject)),clientDataJSON:bytesToBase64URL(new Uint8Array(e.response.clientDataJSON))},type:"public-key",clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:(s=a.authenticatorAttachment)!==null&&s!==void 0?s:void 0}}function serializeCredentialRequestResponse(e){var s;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const a=e,c=e.getClientExtensionResults(),g=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:bytesToBase64URL(new Uint8Array(g.authenticatorData)),clientDataJSON:bytesToBase64URL(new Uint8Array(g.clientDataJSON)),signature:bytesToBase64URL(new Uint8Array(g.signature)),userHandle:g.userHandle?bytesToBase64URL(new Uint8Array(g.userHandle)):void 0},type:"public-key",clientExtensionResults:c,authenticatorAttachment:(s=a.authenticatorAttachment)!==null&&s!==void 0?s:void 0}}function isValidDomain(e){return e==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function browserSupportsWebAuthn(){var e,s;return!!(isBrowser()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((e=navigator==null?void 0:navigator.credentials)===null||e===void 0?void 0:e.create)=="function"&&typeof((s=navigator==null?void 0:navigator.credentials)===null||s===void 0?void 0:s.get)=="function")}async function createCredential(e){try{const s=await navigator.credentials.create(e);return s?s instanceof PublicKeyCredential?{data:s,error:null}:{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",s)}:{data:null,error:new WebAuthnUnknownError("Empty credential response",s)}}catch(s){return{data:null,error:identifyRegistrationError({error:s,options:e})}}}async function getCredential(e){try{const s=await navigator.credentials.get(e);return s?s instanceof PublicKeyCredential?{data:s,error:null}:{data:null,error:new WebAuthnUnknownError("Browser returned unexpected credential type",s)}:{data:null,error:new WebAuthnUnknownError("Empty credential response",s)}}catch(s){return{data:null,error:identifyAuthenticationError({error:s,options:e})}}}const DEFAULT_CREATION_OPTIONS={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},DEFAULT_REQUEST_OPTIONS={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function deepMerge(...e){const s=g=>g!==null&&typeof g=="object"&&!Array.isArray(g),a=g=>g instanceof ArrayBuffer||ArrayBuffer.isView(g),c={};for(const g of e)if(g)for(const et in g){const rt=g[et];if(rt!==void 0)if(Array.isArray(rt))c[et]=rt;else if(a(rt))c[et]=rt;else if(s(rt)){const nt=c[et];s(nt)?c[et]=deepMerge(nt,rt):c[et]=deepMerge(rt)}else c[et]=rt}return c}function mergeCredentialCreationOptions(e,s){return deepMerge(DEFAULT_CREATION_OPTIONS,e,s||{})}function mergeCredentialRequestOptions(e,s){return deepMerge(DEFAULT_REQUEST_OPTIONS,e,s||{})}class WebAuthnApi{constructor(s){this.client=s,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(s){return this.client.mfa.enroll(Object.assign(Object.assign({},s),{factorType:"webauthn"}))}async _challenge({factorId:s,webauthn:a,friendlyName:c,signal:g},et){var rt;try{const{data:nt,error:st}=await this.client.mfa.challenge({factorId:s,webauthn:a});if(!nt)return{data:null,error:st};const at=g??webAuthnAbortService.createNewAbortSignal();if(nt.webauthn.type==="create"){const{user:it}=nt.webauthn.credential_options.publicKey;if(!it.name){const ot=c;if(ot)it.name=`${it.id}:${ot}`;else{const ct=(await this.client.getUser()).data.user,dt=((rt=ct==null?void 0:ct.user_metadata)===null||rt===void 0?void 0:rt.name)||(ct==null?void 0:ct.email)||(ct==null?void 0:ct.
109id)||"User";it.name=`${it.id}:${dt}`}}it.displayName||(it.displayName=it.name)}switch(nt.webauthn.type){case"create":{const it=mergeCredentialCreationOptions(nt.webauthn.credential_options.publicKey,et==null?void 0:et.create),{data:ot,error:lt}=await createCredential({publicKey:it,signal:at});return ot?{data:{factorId:s,challengeId:nt.id,webauthn:{type:nt.webauthn.type,credential_response:ot}},error:null}:{data:null,error:lt}}case"request":{const it=mergeCredentialRequestOptions(nt.webauthn.credential_options.publicKey,et==null?void 0:et.request),{data:ot,error:lt}=await getCredential(Object.assign(Object.assign({},nt.webauthn.credential_options),{publicKey:it,signal:at}));return ot?{data:{factorId:s,challengeId:nt.id,webauthn:{type:nt.webauthn.type,credential_response:ot}},error:null}:{data:null,error:lt}}}}catch(nt){return isAuthError(nt)?{data:null,error:nt}:{data:null,error:new AuthUnknownError("Unexpected error in challenge",nt)}}}async _verify({challengeId:s,factorId:a,webauthn:c}){return this.client.mfa.verify({factorId:a,challengeId:s,webauthn:c})}async _authenticate({factorId:s,webauthn:{rpId:a=typeof window<"u"?window.location.hostname:void 0,rpOrigins:c=typeof window<"u"?[window.location.origin]:void 0,signal:g}={}},et){if(!a)return{data:null,error:new AuthError("rpId is required for WebAuthn authentication")};try{if(!browserSupportsWebAuthn())return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)};const{data:rt,error:nt}=await this.challenge({factorId:s,webauthn:{rpId:a,rpOrigins:c},signal:g},{request:et});if(!rt)return{data:null,error:nt};const{webauthn:st}=rt;return this._verify({factorId:s,challengeId:rt.challengeId,webauthn:{type:st.type,rpId:a,rpOrigins:c,credential_response:st.credential_response}})}catch(rt){return isAuthError(rt)?{data:null,error:rt}:{data:null,error:new AuthUnknownError("Unexpected error in authenticate",rt)}}}async _register({friendlyName:s,webauthn:{rpId:a=typeof window<"u"?window.location.hostname:void 0,rpOrigins:c=typeof window<"u"?[window.location.origin]:void 0,signal:g}={}},et){if(!a)return{data:null,error:new AuthError("rpId is required for WebAuthn registration")};try{if(!browserSupportsWebAuthn())return{data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)};const{data:rt,error:nt}=await this._enroll({friendlyName:s});if(!rt)return await this.client.mfa.listFactors().then(it=>{var ot;return(ot=it.data)===null||ot===void 0?void 0:ot.all.find(lt=>lt.factor_type==="webauthn"&<.friendly_name===s&<.status!=="unverified")}).then(it=>it?this.client.mfa.unenroll({factorId:it==null?void 0:it.id}):void 0),{data:null,error:nt};const{data:st,error:at}=await this._challenge({factorId:rt.id,friendlyName:rt.friendly_name,webauthn:{rpId:a,rpOrigins:c},signal:g},{create:et});return st?this._verify({factorId:rt.id,challengeId:st.challengeId,webauthn:{rpId:a,rpOrigins:c,type:st.webauthn.type,credential_response:st.webauthn.credential_response}}):{data:null,error:at}}catch(rt){return isAuthError(rt)?{data:null,error:rt}:{data:null,error:new AuthUnknownError("Unexpected error in register",rt)}}}}polyfillGlobalThis();const DEFAULT_OPTIONS={url:GOTRUE_URL,storageKey:STORAGE_KEY,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:DEFAULT_HEADERS$1,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1,experimental:{}};async function lockNoOp(e,s,a){return await a()}const GLOBAL_JWKS={};class GoTrueClient{get jwks(){var s,a;return(a=(s=GLOBAL_JWKS[this.storageKey])===null||s===void 0?void 0:s.jwks)!==null&&a!==void 0?a:{keys:[]}}set jwks(s){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{jwks:s})}get jwks_cached_at(){var s,a;return(a=(s=GLOBAL_JWKS[this.storageKey])===null||s===void 0?void 0:s.cachedAt)!==null&&a!==void 0?a:Number.MIN_SAFE_INTEGER}set jwks_cached_at(s){GLOBAL_JWKS[this.storageKey]=Object.assign(Object.assign({},GLOBAL_JWKS[this.storageKey]),{cachedAt:s})}constructor(s){var a,c,g,et;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const rt=Object.assign(Object.assign({},DEFAULT_OPTIONS),s);if(this.storageKey=rt.storageKey,this.instanceID=(a=GoTrueClient.nextInstanceID[this.storageKey])!==null&&a!==void 0?a:0,GoTrueClient.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!rt.debug,typeof rt.debug=="function"&&(this.logger=rt.debug),this.instanceID>0&&isBrowser()){const nt=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(nt),this.logDebugMessages&&console.trace(nt)}if(this.persistSession=rt.persistSession,this.autoRefreshToken=rt.autoRefreshToken,this.experimental=(c=rt.experimental)!==null&&c!==void 0?c:{},this.admin=new GoTrueAdminApi({url:rt.url,headers:rt.headers,fetch:rt.fetch,experimental:this.experimental}),this.url=rt.url,this.headers=rt.headers,this.fetch=resolveFetch$1(rt.fetch),this.lock=rt.lock||lockNoOp,this.detectSessionInUrl=rt.detectSessionInUrl,this.flowType=rt.flowType,this.hasCustomAuthorizationHeader=rt.hasCu
109stomAuthorizationHeader,this.throwOnError=rt.throwOnError,this.lockAcquireTimeout=rt.lockAcquireTimeout,rt.lock?this.lock=rt.lock:this.persistSession&&isBrowser()&&(!((g=globalThis==null?void 0:globalThis.navigator)===null||g===void 0)&&g.locks)?this.lock=navigatorLock:this.lock=lockNoOp,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new WebAuthnApi(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.passkey={startRegistration:this._startPasskeyRegistration.bind(this),verifyRegistration:this._verifyPasskeyRegistration.bind(this),startAuthentication:this._startPasskeyAuthentication.bind(this),verifyAuthentication:this._verifyPasskeyAuthentication.bind(this),list:this._listPasskeys.bind(this),update:this._updatePasskey.bind(this),delete:this._deletePasskey.bind(this)},this.persistSession?(rt.storage?this.storage=rt.storage:supportsLocalStorage()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=memoryLocalStorageAdapter(this.memoryStorage)),rt.userStorage&&(this.userStorage=rt.userStorage)):(this.memoryStorage={},this.storage=memoryLocalStorageAdapter(this.memoryStorage)),isBrowser()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(nt){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",nt)}(et=this.broadcastChannel)===null||et===void 0||et.addEventListener("message",async nt=>{this._debug("received broadcast notification from other tab or client",nt);try{await this._notifyAllSubscribers(nt.data.event,nt.data.session,!1)}catch(st){this._debug("#broadcastChannel","error",st)}})}rt.skipAutoInitialize||this.initialize().catch(nt=>{this._debug("#initialize()","error",nt)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(s){if(this.throwOnError&&s&&s.error)throw s.error;return s}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${version$1}) ${new Date().toISOString()}`}_debug(...s){return this.logDebugMessages&&this.logger(this._logPrefix(),...s),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var s;try{let a={},c="none";if(isBrowser()&&(a=parseParametersFromURL(window.location.href),this._isImplicitGrantCallback(a)?c="implicit":await this._isPKCECallback(a)&&(c="pkce")),isBrowser()&&this.detectSessionInUrl&&c!=="none"){const{data:g,error:et}=await this._getSessionFromURL(a,c);if(et){if(this._debug("#_initialize()","error detecting session from URL",et),isAuthImplicitGrantRedirectError(et)){const st=(s=et.details)===null||s===void 0?void 0:s.code;if(st==="identity_already_exists"||st==="identity_not_found"||st==="single_identity_not_deletable")return{error:et}}return{error:et}}const{session:rt,redirectType:nt}=g;return this._debug("#_initialize()","detected session in URL",rt,"redirect type",nt),await this._saveSession(rt),setTimeout(async()=>{nt==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",rt):await this._notifyAllSubscribers("SIGNED_IN",rt)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(a){return isAuthError(a)?this._returnResult({error:a}):this._returnResult({error:new AuthUnknownError("Unexpected error during initialization",a)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(s){var a,c,g;try{const et=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(c=(a=s==null?void 0:s.options)===null||a===void 0?void 0:a.data)!==null&&c!==void 0?c:{},gotrue_meta_security:{captcha_token:(g=s==null?void 0:s.options)===null||g===void 0?void 0:g.captchaToken}},xform:_sessionResponse}),{data:rt,error:nt}=et;if(nt||!rt)return this._returnResult({data:{user:null,session:null},error:nt});const st=rt.session,at=rt.user;return rt.session&&(await this._saveSession(rt.session),await this._notifyAllSubscribers("SIGNED_IN",st)),this._returnResult({data:{user:at,session:st},error:null})}catch(et){if(isAuthError(et))return this._returnResult({data:{user:null,session:null},error:et});throw et}}async signUp(s){var a,c,g;try{let et;if("email"in s){const{email:it,password:ot,options:lt}=s;let ct=null,dt=null;this.flowType==="pkce"&&([ct,dt]=await getCodeChallengeAndMethod(this.storage,this.storageKey)),et=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:lt==null?void 0:lt.emailRedirectTo,body:{email:it,password:ot,data:(a=lt==null?void 0:lt.data)!==null&&a!==void 0?a:{},gotrue_meta_security:{captcha_token:lt==null?void 0:lt.captchaToken},code_challenge:ct,code_challenge_method:dt},xform:_sessionResponse})}else if("phone"in s){const{phone:it,password:ot,options:lt}=s;et=await _request(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:it,password:ot,data:(c=lt==null?void 0:lt.data)!==null&&c!==void 0?c:{},channel:(g=lt==null?void 0:lt.channel)!==null&&g!==void 0?g:"sms",gotrue_meta_security:{captcha_token:lt==null?void 0:lt.captchaToken}},xform:_sessionResponse})}else throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password");const{data:rt,error:nt}=et;if(nt||!rt)return await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:nt});const st=rt.session,at=rt.user;return rt.session&&(await this._saveSession(rt.session),await this._notifyAllSubscribers("SIGNED_IN",st)),this._returnResult({data:{user:at,session:st},error:null})}catch(et){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(et))return this._returnResult({data:{user:null,session:null},error:et});throw et}}async signInWithPassword(s){try{let a;if("email"in s){const{email:et,password:rt,options:nt}=s;a=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:et,password:rt,gotrue_meta_security:{captcha_token:nt==null?void 0:nt.captchaToken}},xform:_sessionResponsePassword})}else if("phone"in s){const{phone:et,password:rt,options:nt}=s;a=await _request(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:et,password:rt,gotrue_meta_security:{captcha_token:nt==null?void 0:nt.captchaToken}},xform:_sessionResponsePassword})}else throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a password");const{data:c,error:g}=a;if(g)return this._returnResult({data:{user:null,session:null},error:g});
109if(!c||!c.session||!c.user){const et=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:et})}return c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",c.session)),this._returnResult({data:Object.assign({user:c.user,session:c.session},c.weak_password?{weakPassword:c.weak_password}:null),error:g})}catch(a){if(isAuthError(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signInWithOAuth(s){var a,c,g,et;return await this._handleProviderSignIn(s.provider,{redirectTo:(a=s.options)===null||a===void 0?void 0:a.redirectTo,scopes:(c=s.options)===null||c===void 0?void 0:c.scopes,queryParams:(g=s.options)===null||g===void 0?void 0:g.queryParams,skipBrowserRedirect:(et=s.options)===null||et===void 0?void 0:et.skipBrowserRedirect})}async exchangeCodeForSession(s){return await this.initializePromise,this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(s))}async signInWithWeb3(s){const{chain:a}=s;switch(a){case"ethereum":return await this.signInWithEthereum(s);case"solana":return await this.signInWithSolana(s);default:throw new Error(`@supabase/auth-js: Unsupported chain "${a}"`)}}async signInWithEthereum(s){var a,c,g,et,rt,nt,st,at,it,ot,lt;let ct,dt;if("message"in s)ct=s.message,dt=s.signature;else{const{chain:ut,wallet:xt,statement:gt,options:ht}=s;let mt;if(isBrowser())if(typeof xt=="object")mt=xt;else{const Gt=window;if("ethereum"in Gt&&typeof Gt.ethereum=="object"&&"request"in Gt.ethereum&&typeof Gt.ethereum.request=="function")mt=Gt.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof xt!="object"||!(ht!=null&&ht.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");mt=xt}const kt=new URL((a=ht==null?void 0:ht.url)!==null&&a!==void 0?a:window.location.href),Ct=await mt.request({method:"eth_requestAccounts"}).then(Gt=>Gt).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!Ct||Ct.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const Tt=getAddress(Ct[0]);let Pt=(c=ht==null?void 0:ht.signInWithEthereum)===null||c===void 0?void 0:c.chainId;if(!Pt){const Gt=await mt.request({method:"eth_chainId"});Pt=fromHex(Gt)}const At={domain:kt.host,address:Tt,statement:gt,uri:kt.href,version:"1",chainId:Pt,nonce:(g=ht==null?void 0:ht.signInWithEthereum)===null||g===void 0?void 0:g.nonce,issuedAt:(rt=(et=ht==null?void 0:ht.signInWithEthereum)===null||et===void 0?void 0:et.issuedAt)!==null&&rt!==void 0?rt:new Date,expirationTime:(nt=ht==null?void 0:ht.signInWithEthereum)===null||nt===void 0?void 0:nt.expirationTime,notBefore:(st=ht==null?void 0:ht.signInWithEthereum)===null||st===void 0?void 0:st.notBefore,requestId:(at=ht==null?void 0:ht.signInWithEthereum)===null||at===void 0?void 0:at.requestId,resources:(it=ht==null?void 0:ht.signInWithEthereum)===null||it===void 0?void 0:it.resources};ct=createSiweMessage(At),dt=await mt.request({method:"personal_sign",params:[toHex(ct),Tt]})}try{const{data:ut,error:xt}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:ct,signature:dt}
109,!((ot=s.options)===null||ot===void 0)&&ot.captchaToken?{gotrue_meta_security:{captcha_token:(lt=s.options)===null||lt===void 0?void 0:lt.captchaToken}}:null),xform:_sessionResponse});if(xt)throw xt;if(!ut||!ut.session||!ut.user){const gt=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:gt})}return ut.session&&(await this._saveSession(ut.session),await this._notifyAllSubscribers("SIGNED_IN",ut.session)),this._returnResult({data:Object.assign({},ut),error:xt})}catch(ut){if(isAuthError(ut))return this._returnResult({data:{user:null,session:null},error:ut});throw ut}}async signInWithSolana(s){var a,c,g,et,rt,nt,st,at,it,ot,lt,ct;let dt,ut;if("message"in s)dt=s.message,ut=s.signature;else{const{chain:xt,wallet:gt,statement:ht,options:mt}=s;let kt;if(isBrowser())if(typeof gt=="object")kt=gt;else{const Tt=window;if("solana"in Tt&&typeof Tt.solana=="object"&&("signIn"in Tt.solana&&typeof Tt.solana.signIn=="function"||"signMessage"in Tt.solana&&typeof Tt.solana.signMessage=="function"))kt=Tt.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof gt!="object"||!(mt!=null&&mt.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");kt=gt}const Ct=new URL((a=mt==null?void 0:mt.url)!==null&&a!==void 0?a:window.location.href);if("signIn"in kt&&kt.signIn){const Tt=await kt.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},mt==null?void 0:mt.signInWithSolana),{version:"1",domain:Ct.host,uri:Ct.href}),ht?{statement:ht}:null));let Pt;if(Array.isArray(Tt)&&Tt[0]&&typeof Tt[0]=="object")Pt=Tt[0];else if(Tt&&typeof Tt=="object"&&"signedMessage"in Tt&&"signature"in Tt)Pt=Tt;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in Pt&&"signature"in Pt&&(typeof Pt.signedMessage=="string"||Pt.signedMessage instanceof Uint8Array)&&Pt.signature instanceof Uint8Array)dt=typeof Pt.signedMessage=="string"?Pt.signedMessage:new TextDecoder().decode(Pt.signedMessage),ut=Pt.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in kt)||typeof kt.signMessage!="function"||!("publicKey"in kt)||typeof kt!="object"||!kt.publicKey||!("toBase58"in kt.publicKey)||typeof kt.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");dt=[`${Ct.host} wants you to sign in with your Solana account:`,kt.publicKey.toBase58(),...ht?["",ht,""]:[""],"Version: 1",`URI: ${Ct.href}`,`Issued At: ${(g=(c=mt==null?void 0:mt.signInWithSolana)===null||c===void 0?void 0:c.issuedAt)!==null&&g!==void 0?g:new Date().toISOString()}`,...!((et=mt==null?void 0:mt.signInWithSolana)===null||et===void 0)&&et.notBefore?[`Not Before: ${mt.signInWithSolana.notBefore}`]:[],...!((rt=mt==null?void 0:mt.signInWithSolana)===null||rt===void 0)&&rt.expirationTime?[`Expiration Time: ${mt.signInWithSolana.expirationTime}`]:[],...!((nt=mt==null?void 0:mt.signInWithSolana)===null||nt===void 0)&&nt.chainId?[`Chain ID: ${mt.signInWithSolana.chainId}`]:[],...!((st=mt==null?void 0:mt.signInWithSolana)===null||st===void 0)&&st.nonce?[`Nonce: ${mt.signInWithSolana.nonce}`]:[],...!((at=mt==null?void 0:mt.signInWithSolana)===null||at===void 0)&&at.requestId?[`Request ID: ${mt.signInWithSolana.requestId}`]:[],...!((ot=(it=mt==null?void 0:mt.signInWithSolana)===null||it===void 0?void 0:it.resources)===null||ot===void 0)&&ot.length?["Resources",...mt.signInWithSolana.resources.map(Pt=>`- ${Pt}`)]:[]].join(` 110`);const Tt=await kt.signMessage(new TextEncoder().encode(dt),"utf8");if(!Tt||!(Tt instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");ut=Tt}}try{const{data:xt,error:gt}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:dt,signature:bytesToBase64URL(ut)},!((lt=s.options)===null||lt===void 0)&<.captchaToken?{gotrue_meta_security:{captcha_token:(ct=s.options)===null||ct===void 0?void 0:ct.captchaToken}}:null),xform:_sessionResponse});if(gt)throw gt;
110if(!xt||!xt.session||!xt.user){const ht=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:ht})}return xt.session&&(await this._saveSession(xt.session),await this._notifyAllSubscribers("SIGNED_IN",xt.session)),this._returnResult({data:Object.assign({},xt),error:gt})}catch(xt){if(isAuthError(xt))return this._returnResult({data:{user:null,session:null},error:xt});throw xt}}async _exchangeCodeForSession(s){const a=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`),[c,g]=(a??"").split("/");try{if(!c&&this.flowType==="pkce")throw new AuthPKCECodeVerifierMissingError;const{data:et,error:rt}=await _request(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:s,code_verifier:c},xform:_sessionResponse});if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),rt)throw rt;if(!et||!et.session||!et.user){const nt=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:nt})}return et.session&&(await this._saveSession(et.session),await this._notifyAllSubscribers(g==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",et.session)),this._returnResult({data:Object.assign(Object.assign({},et),{redirectType:g??null}),error:rt})}catch(et){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(et))return this._returnResult({data:{user:null,session:null,redirectType:null},error:et});throw et}}async signInWithIdToken(s){try{const{options:a,provider:c,token:g,access_token:et,nonce:rt}=s,nt=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:c,id_token:g,access_token:et,nonce:rt,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},xform:_sessionResponse}),{data:st,error:at}=nt;if(at)return this._returnResult({data:{user:null,session:null},error:at});
110if(!st||!st.session||!st.user){const it=new AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:it})}return st.session&&(await this._saveSession(st.session),await this._notifyAllSubscribers("SIGNED_IN",st.session)),this._returnResult({data:st,error:at})}catch(a){if(isAuthError(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signInWithOtp(s){var a,c,g,et,rt;try{if("email"in s){const{email:nt,options:st}=s;let at=null,it=null;this.flowType==="pkce"&&([at,it]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const{error:ot}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:nt,data:(a=st==null?void 0:st.data)!==null&&a!==void 0?a:{},create_user:(c=st==null?void 0:st.shouldCreateUser)!==null&&c!==void 0?c:!0,gotrue_meta_security:{captcha_token:st==null?void 0:st.captchaToken},code_challenge:at,code_challenge_method:it},redirectTo:st==null?void 0:st.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:ot})}if("phone"in s){const{phone:nt,options:st}=s,{data:at,error:it}=await _request(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:nt,data:(g=st==null?void 0:st.data)!==null&&g!==void 0?g:{},create_user:(et=st==null?void 0:st.shouldCreateUser)!==null&&et!==void 0?et:!0,gotrue_meta_security:{captcha_token:st==null?void 0:st.captchaToken},channel:(rt=st==null?void 0:st.channel)!==null&&rt!==void 0?rt:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:at==null?void 0:at.message_id},error:it})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(nt){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(nt))return this._returnResult({data:{user:null,session:null},error:nt});throw nt}}async verifyOtp(s){var a,c;try{let g,et;"options"in s&&(g=(a=s.options)===null||a===void 0?void 0:a.redirectTo,et=(c=s.options)===null||c===void 0?void 0:c.captchaToken);const{data:rt,error:nt}=await _request(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},s),{gotrue_meta_security:{captcha_token:et}}),redirectTo:g,xform:_sessionResponse});if(nt)throw nt;if(!rt)throw new Error("An error occurred on token verification.");const st=rt.session,at=rt.user;return st!=null&&st.access_token&&(await this._saveSession(st),await this._notifyAllSubscribers(s.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",st)),this._returnResult({data:{user:at,session:st},error:null})}catch(g){if(isAuthError(g))return this._returnResult({data:{user:null,session:null},error:g});throw g}}async signInWithSSO(s){var a,c,g,et,rt;try{let nt=null,st=null;this.flowType==="pkce"&&([nt,st]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const at=await _request(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in s?{provider_id:s.providerId}:null),"domain"in s?{domain:s.domain}:null),{redirect_to:(c=(a=s.options)===null||a===void 0?void 0:a.redirectTo)!==null&&c!==void 0?c:void 0}),!((g=s==null?void 0:s.options)===null||g===void 0)&&g.captchaToken?{gotrue_meta_security:{captcha_token:s.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:nt,code_challenge_method:st}),headers:this.headers,xform:_ssoResponse});return!((et=at.data)===null||et===void 0)&&et.url&&isBrowser()&&!(!((rt=s.options)===null||rt===void 0)&&rt.skipBrowserRedirect)&&window.location.assign(at.data.url),this._returnResult(at)}
110catch(nt){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(nt))return this._returnResult({data:null,error:nt});throw nt}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async s=>{const{data:{session:a},error:c}=s;if(c)throw c;if(!a)throw new AuthSessionMissingError;const{error:g}=await _request(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:a.access_token});return this._returnResult({data:{user:null,session:null},error:g})})}catch(s){if(isAuthError(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}}async resend(s){try{const a=`${this.url}/resend`;if("email"in s){const{email:c,type:g,options:et}=s,{error:rt}=await _request(this.fetch,"POST",a,{headers:this.headers,body:{email:c,type:g,gotrue_meta_security:{captcha_token:et==null?void 0:et.captchaToken}},redirectTo:et==null?void 0:et.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:rt})}else if("phone"in s){const{phone:c,type:g,options:et}=s,{data:rt,error:nt}=await _request(this.fetch,"POST",a,{headers:this.headers,body:{phone:c,type:g,gotrue_meta_security:{captcha_token:et==null?void 0:et.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:rt==null?void 0:rt.message_id},error:nt})}throw new AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(a){if(isAuthError(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async getSession(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async a=>a))}async _acquireLock(s,a){this._debug("#_acquireLock","begin",s);try{if(this.lockAcquired){const c=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),g=(async()=>(await c,await a()))();return this.pendingInLock.push((async()=>{try{await g}catch{}})()),g}return await this.lock(`lock:${this.storageKey}`,s,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const c=a();for(this.pendingInLock.push((async()=>{try{await c}catch{}})()),await c;this.pendingInLock.length;){const g=[...this.pendingInLock];await Promise.all(g),this.pendingInLock.splice(0,g.length)}return await c}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(s){this._debug("#_useSession","begin");try{const a=await this.__loadSession();return await s(a)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let s=null;const a=await getItemAsync(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",a),a!==null&&(this._isValidSession(a)?s=a:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession())),!s)return{data:{session:null},error:null};const c=s.expires_at?s.expires_at*1e3-Date.now()<EXPIRY_MARGIN_MS:!1;if(this._debug("#__loadSession()",`session has${c?"":" not"} expired`,"expires_at",s.expires_at),!c){if(this.userStorage){const rt=await getItemAsync(this.userStorage,this.storageKey+"-user");rt!=null&&rt.user?s.user=rt.user:s.user=userNotAvailableProxy()}if(this.storage.isServer&&s.user&&!s.user.__isUserNotAvailableProxy){const rt={value:this.suppressGetSessionWarning};s.user=insecureUserWarningProxy(s.user,rt),rt.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:s},error:null}}const{data:g,error:et}=await this._callRefreshToken(s.refresh_token);return et?this._returnResult({data:{session:null},error:et}):this._returnResult({data:{session:g},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(s){if(s)return await this._getUser(s);await this.initializePromise;const a=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser());return a.data.user&&(this.suppressGetSessionWarning=!0),a}async _getUser(s){try{return s?await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:s,xform:_userResponse}):await this._useSession(async a=>{var c,g,et;const{data:rt,error:nt}=a;if(nt)throw nt;return!(!((c=rt.session)===null||c===void 0)&&c.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new AuthSessionMissingError}:await _request(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(et=(g=rt.session)===null||g===void 0?void 0:g.access_token)!==null&&et!==void 0?et:void 0,xform:_userResponse})})}catch(a){if(isAuthError(a))return isAuthSessionMissingError(a)&&(await this._removeSession(),await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:a});throw a}}async updateUser(s,a={}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(s,a))}async _updateUser(s,a={}){try{return await this._useSession(async c=>{const{data:g,error:et}=c;if(et)throw et;if(!g.session)throw new AuthSessionMissingError;
110const rt=g.session;let nt=null,st=null;this.flowType==="pkce"&&s.email!=null&&([nt,st]=await getCodeChallengeAndMethod(this.storage,this.storageKey));const{data:at,error:it}=await _request(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:a==null?void 0:a.emailRedirectTo,body:Object.assign(Object.assign({},s),{code_challenge:nt,code_challenge_method:st}),jwt:rt.access_token,xform:_userResponse});if(it)throw it;return rt.user=at.user,await this._saveSession(rt),await this._notifyAllSubscribers("USER_UPDATED",rt),this._returnResult({data:{user:rt.user},error:null})})}catch(c){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(c))return this._returnResult({data:{user:null},error:c});throw c}}async setSession(s){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(s))}async _setSession(s){try{if(!s.access_token||!s.refresh_token)throw new AuthSessionMissingError;const a=Date.now()/1e3;let c=a,g=!0,et=null;const{payload:rt}=decodeJWT(s.access_token);if(rt.exp&&(c=rt.exp,g=c<=a),g){const{data:nt,error:st}=await this._callRefreshToken(s.refresh_token);if(st)return this._returnResult({data:{user:null,session:null},error:st});if(!nt)return{data:{user:null,session:null},error:null};et=nt}else{const{data:nt,error:st}=await this._getUser(s.access_token);if(st)return this._returnResult({data:{user:null,session:null},error:st});et={access_token:s.access_token,refresh_token:s.refresh_token,user:nt.user,token_type:"bearer",expires_in:c-a,expires_at:c},await this._saveSession(et),await this._notifyAllSubscribers("SIGNED_IN",et)}return this._returnResult({data:{user:et.user,session:et},error:null})}catch(a){if(isAuthError(a))return this._returnResult({data:{session:null,user:null},error:a});throw a}}async refreshSession(s){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(s))}async _refreshSession(s){try{return await this._useSession(async a=>{var c;if(!s){const{data:rt,error:nt}=a;if(nt)throw nt;s=(c=rt.session)!==null&&c!==void 0?c:void 0}if(!(s!=null&&s.refresh_token))throw new AuthSessionMissingError;const{data:g,error:et}=await this._callRefreshToken(s.refresh_token);return et?this._returnResult({data:{user:null,session:null},error:et}):g?this._returnResult({data:{user:g.user,session:g},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(a){if(isAuthError(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async _getSessionFromURL(s,a){var c;try{if(!isBrowser())throw new AuthImplicitGrantRedirectError("No browser detected.");if(s.error||s.error_description||s.error_code)throw new AuthImplicitGrantRedirectError(s.error_description||"Error in URL with unspecified error_description",{error:s.error||"unspecified_error",code:s.error_code||"unspecified_code"});switch(a){case"implicit":if(this.flowType==="pkce")throw new AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.");break;default:}if(a==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!s.code)throw new AuthPKCEGrantCodeExchangeError("No code detected.");const{data:mt,error:kt}=await this._exchangeCodeForSession(s.code);if(kt)throw kt;const Ct=new URL(window.location.href);return Ct.searchParams.delete("code"),window.history.replaceState(window.history.state,"",Ct.toString()),{data:{session:mt.session,redirectType:(c=mt.redirectType)!==null&&c!==void 0?c:null},error:null}}const{provider_token:g,provider_refresh_token:et,access_token:rt,refresh_token:nt,expires_in:st,expires_at:at,token_type:it}=s;if(!rt||!st||!nt||!it)throw new AuthImplicitGrantRedirectError("No session defined in URL");const ot=Math.round(Date.now()/1e3),lt=parseInt(st);let ct=ot+lt;at&&(ct=parseInt(at));const dt=ct-ot;dt*1e3<=AUTO_REFRESH_TICK_DURATION_MS&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${dt}s, should have been closer to ${lt}s`);const ut=ct-lt;ot-ut>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",ut,ct,ot):ot-ut<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",ut,ct,ot);const{data:xt,error:gt}=await this._getUser(rt);
110if(gt)throw gt;const ht={provider_token:g,provider_refresh_token:et,access_token:rt,expires_in:lt,expires_at:ct,refresh_token:nt,token_type:it,user:xt.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:ht,redirectType:s.type},error:null})}catch(g){if(isAuthError(g))return this._returnResult({data:{session:null,redirectType:null},error:g});throw g}}_isImplicitGrantCallback(s){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),s):!!(s.access_token||s.error_description)}async _isPKCECallback(s){const a=await getItemAsync(this.storage,`${this.storageKey}-code-verifier`);return!!(s.code&&a)}async signOut(s={scope:"global"}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(s))}async _signOut({scope:s}={scope:"global"}){return await this._useSession(async a=>{var c;const{data:g,error:et}=a;if(et&&!isAuthSessionMissingError(et))return this._returnResult({error:et});const rt=(c=g.session)===null||c===void 0?void 0:c.access_token;if(rt){const{error:nt}=await this.admin.signOut(rt,s);if(nt&&!(isAuthApiError(nt)&&(nt.status===404||nt.status===401||nt.status===403)||isAuthSessionMissingError(nt)))return this._returnResult({error:nt})}return s!=="others"&&(await this._removeSession(),await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(s){const a=generateCallbackId(),c={id:a,callback:s,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",a),this.stateChangeEmitters.delete(a)}};return this._debug("#onAuthStateChange()","registered callback with id",a),this.stateChangeEmitters.set(a,c),(async()=>(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(a)})))(),{data:{subscription:c}}}async _emitInitialSession(s){return await this._useSession(async a=>{var c,g;try{const{data:{session:et},error:rt}=a;if(rt)throw rt;await((c=this.stateChangeEmitters.get(s))===null||c===void 0?void 0:c.callback("INITIAL_SESSION",et)),this._debug("INITIAL_SESSION","callback id",s,"session",et)}catch(et){await((g=this.stateChangeEmitters.get(s))===null||g===void 0?void 0:g.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",s,"error",et),isAuthSessionMissingError(et)?console.warn(et):console.error(et)}})}async resetPasswordForEmail(s,a={}){let c=null,g=null;this.flowType==="pkce"&&([c,g]=await getCodeChallengeAndMethod(this.storage,this.storageKey,!0));try{return await _request(this.fetch,"POST",`${this.url}/recover`,{body:{email:s,code_challenge:c,code_challenge_method:g,gotrue_meta_security:{captcha_token:a.captchaToken}},headers:this.headers,redirectTo:a.redirectTo})}catch(et){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(et))return this._returnResult({data:null,error:et});throw et}}async getUserIdentities(){var s;try{const{data:a,error:c}=await this.getUser();if(c)throw c;return this._returnResult({data:{identities:(s=a.user.identities)!==null&&s!==void 0?s:[]},error:null})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async linkIdentity(s){return"token"in s?this.linkIdentityIdToken(s):this.linkIdentityOAuth(s)}async linkIdentityOAuth(s){var a;try{const{data:c,error:g}=await this._useSession(async et=>{var rt,nt,st,at,it;const{data:ot,error:lt}=et;if(lt)throw lt;const ct=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,s.provider,{redirectTo:(rt=s.options)===null||rt===void 0?void 0:rt.redirectTo,scopes:(nt=s.options)===null||nt===void 0?void 0:nt.scopes,queryParams:(st=s.options)===null||st===void 0?void 0:st.queryParams,skipBrowserRedirect:!0});return await _request(this.fetch,"GET",ct,{headers:this.headers,jwt:(it=(at=ot.session)===null||at===void 0?void 0:at.access_token)!==null&&it!==void 0?it:void 0})});if(g)throw g;return isBrowser()&&!(!((a=s.options)===null||a===void 0)&&a.skipBrowserRedirect)&&window.location.assign(c==null?void 0:c.url),this._returnResult({data:{provider:s.provider,url:c==null?void 0:c.url},error:null})}catch(c){if(isAuthError(c))return this._returnResult({data:{provider:s.provider,url:null},error:c});throw c}}async linkIdentityIdToken(s){return await this._useSession(async a=>{var c;try{const{error:g,data:{session:et}}=a;if(g)throw g;const{options:rt,provider:nt,token:st,access_token:at,nonce:it}=s,ot=await _request(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(c=et==null?void 0:et.access_token)!==null&&c!==void 0?c:void 0,body:{provider:nt,id_token:st,access_token:at,nonce:it,link_identity:!0,gotrue_meta_security:{captcha_token:rt==null?void 0:rt.captchaToken}},xform:_sessionResponse}),{data:lt,error:ct}=ot;return ct?this._returnResult({data:{user:null,session:null},error:ct}):!lt||!lt.session||!lt.user?this._returnResult({data:{user:null,session:null}
110,error:new AuthInvalidTokenResponseError}):(lt.session&&(await this._saveSession(lt.session),await this._notifyAllSubscribers("USER_UPDATED",lt.session)),this._returnResult({data:lt,error:ct}))}catch(g){if(await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`),isAuthError(g))return this._returnResult({data:{user:null,session:null},error:g});throw g}})}async unlinkIdentity(s){try{return await this._useSession(async a=>{var c,g;const{data:et,error:rt}=a;if(rt)throw rt;return await _request(this.fetch,"DELETE",`${this.url}/user/identities/${s.identity_id}`,{headers:this.headers,jwt:(g=(c=et.session)===null||c===void 0?void 0:c.access_token)!==null&&g!==void 0?g:void 0})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _refreshAccessToken(s){const a=`#_refreshAccessToken(${s.substring(0,5)}...)`;this._debug(a,"begin");try{const c=Date.now();return await retryable(async g=>(g>0&&await sleep$1(200*Math.pow(2,g-1)),this._debug(a,"refreshing attempt",g),await _request(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:s},headers:this.headers,xform:_sessionResponse})),(g,et)=>{const rt=200*Math.pow(2,g);return et&&isAuthRetryableFetchError(et)&&Date.now()+rt-c<AUTO_REFRESH_TICK_DURATION_MS})}catch(c){if(this._debug(a,"error",c),isAuthError(c))return this._returnResult({data:{session:null,user:null},error:c});throw c}finally{this._debug(a,"end")}}_isValidSession(s){return typeof s=="object"&&s!==null&&"access_token"in s&&"refresh_token"in s&&"expires_at"in s}async _handleProviderSignIn(s,a){const c=await this._getUrlForProvider(`${this.url}/authorize`,s,{redirectTo:a.redirectTo,scopes:a.scopes,queryParams:a.queryParams});return this._debug("#_handleProviderSignIn()","provider",s,"options",a,"url",c),isBrowser()&&!a.skipBrowserRedirect&&window.location.assign(c),{data:{provider:s,url:c},error:null}}async _recoverAndRefresh(){var s,a;const c="#_recoverAndRefresh()";this._debug(c,"begin");try{const g=await getItemAsync(this.storage,this.storageKey);if(g&&this.userStorage){let rt=await getItemAsync(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!rt&&(rt={user:g.user},await setItemAsync(this.userStorage,this.storageKey+"-user",rt)),g.user=(s=rt==null?void 0:rt.user)!==null&&s!==void 0?s:userNotAvailableProxy()}else if(g&&!g.user&&!g.user){const rt=await getItemAsync(this.storage,this.storageKey+"-user");rt&&(rt!=null&&rt.user)?(g.user=rt.user,await removeItemAsync(this.storage,this.storageKey+"-user"),await setItemAsync(this.storage,this.storageKey,g)):g.user=userNotAvailableProxy()}if(this._debug(c,"session from storage",g),!this._isValidSession(g)){this._debug(c,"session is not valid"),g!==null&&await this._removeSession();return}const et=((a=g.expires_at)!==null&&a!==void 0?a:1/0)*1e3-Date.now()<EXPIRY_MARGIN_MS;if(this._debug(c,`session has${et?"":" not"} expired with margin of ${EXPIRY_MARGIN_MS}s`),et){if(this.autoRefreshToken&&g.refresh_token){const{error:rt}=await this._callRefreshToken(g.refresh_token);rt&&(console.error(rt),isAuthRetryableFetchError(rt)||(this._debug(c,"refresh failed with a non-retryable error, removing the session",rt),await this._removeSession()))}}else if(g.user&&g.user.__isUserNotAvailableProxy===!0)try{const{data:rt,error:nt}=await this._getUser(g.access_token);!nt&&(rt!=null&&rt.user)?(g.user=rt.user,await this._saveSession(g),await this._notifyAllSubscribers("SIGNED_IN",g)):this._debug(c,"could not get user data, skipping SIGNED_IN notification")}catch(rt){console.error("Error getting user data:",rt),this._debug(c,"error getting user data, skipping SIGNED_IN notification",rt)}else await this._notifyAllSubscribers("SIGNED_IN",g)}catch(g){this._debug(c,"error",g),console.error(g);return}finally{this._debug(c,"end")}}async _callRefreshToken(s){var a,c;if(!s)throw new AuthSessionMissingError;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const g=`#_callRefreshToken(${s.substring(0,5)}...)`;this._debug(g,"begin");try{this.refreshingDeferred=new Deferred;const{data:et,error:rt}=await this._refreshAccessToken(s);if(rt)throw rt;if(!et.session)throw new AuthSessionMissingError;await this._saveSession(et.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",et.session);const nt={data:et.session,error:null};return this.refreshingDeferred.resolve(nt),nt}catch(et){if(this._debug(g,"error",et),isAuthError(et)){const rt={data:null,error:et};return isAuthRetryableFetchError(et)||await this._removeSession(),(a=this.refreshingDeferred)===null||a===void 0||a.resolve(rt),rt}throw(c=this.refreshingDeferred)===null||c===void 0||c.reject(et),et}finally{this.refreshingDeferred=null,this._debug(g,"end")}}async _notifyAllSubscribers(s,a,c=!0){const g=`#_notifyAllSubscribers(${s})`;this._debug(g,"begin",a,`broadcast = ${c}`);try{this.broadcastChannel&&c&&this.broadcastChannel.postMessage({event:s,session:a});const et=[],rt=Array.from(this.stateChangeEmitters.values()).map(async nt=>{try{await nt.callback(s,a)}catch(st){et.push(st)}});if(await Promise.all(rt),et.length>0){for(let nt=0;nt<et.length;nt+=1)console.error(et[nt]);throw et[0]}}finally{this._debug(g,"end")}}async _saveSession(s){this._debug("#_saveSession()",s),this.suppressGetSessionWarning=!0,await removeItemAsync(this.storage,`${this.storageKey}-code-verifier`);const a=Object.assign({},s),c=a.user&&a.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!c&&a.user&&await setItemAsync(this.userStorage,this.storageKey+"-user",{user:a.user});const g=Object.assign({},a);delete g.user;const et=deepClone(g);await setItemAsync(this.storage,this.storageKey,et)}else{const g=deepClone(a);await setItemAsync(this.storage,this.storageKey,g)}}async _removeSession(){this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await removeItemAsync(this.storage,this.storageKey),await removeItemAsync(this.storage,this.storageKey+"-code-verifier"),await removeItemAsync(this.storage,this.storageKey+"-user"),this.userStorage&&await removeItemAsync(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const s=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{s&&isBrowser()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",s)}
110catch(a){console.error("removing visibilitychange callback failed",a)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const s=setInterval(()=>this._autoRefreshTokenTick(),AUTO_REFRESH_TICK_DURATION_MS);this.autoRefreshTicker=s,s&&typeof s=="object"&&typeof s.unref=="function"?s.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(s);const a=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=a,a&&typeof a=="object"&&typeof a.unref=="function"?a.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(a)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const s=this.autoRefreshTicker;this.autoRefreshTicker=null,s&&clearInterval(s);const a=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,a&&clearTimeout(a)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const s=Date.now();try{return await this._useSession(async a=>{const{data:{session:c}}=a;if(!c||!c.refresh_token||!c.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const g=Math.floor((c.expires_at*1e3-s)/AUTO_REFRESH_TICK_DURATION_MS);this._debug("#_autoRefreshTokenTick()",`access token expires in ${g} ticks, a tick lasts ${AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${AUTO_REFRESH_TICK_THRESHOLD} ticks`),g<=AUTO_REFRESH_TICK_THRESHOLD&&await this._callRefreshToken(c.refresh_token)})}catch(a){console.error("Auto refresh tick failed with error. This is likely a transient error.",a)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(s){if(s instanceof LockAcquireTimeoutError)this._debug("auto refresh token tick lock not available");else throw s}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!isBrowser()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(s){this._debug("#visibilityChangedCallback","error",s)}},window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(s){console.error("_handleVisibilityChange",s)}}async _onVisibilityChanged(s){const a=`#_onVisibilityChanged(${s})`;this._debug(a,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),s||(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(a,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(s,a,c){const g=[`provider=${encodeURIComponent(a)}`];if(c!=null&&c.redirectTo&&g.push(`redirect_to=${encodeURIComponent(c.redirectTo)}`),c!=null&&c.scopes&&g.push(`scopes=${encodeURIComponent(c.scopes)}`),this.flowType==="pkce"){const[et,rt]=await getCodeChallengeAndMethod(this.storage,this.storageKey),nt=new URLSearchParams({code_challenge:`${encodeURIComponent(et)}`,code_challenge_method:`${encodeURIComponent(rt)}`});g.push(nt.toString())}if(c!=null&&c.queryParams){const et=new URLSearchParams(c.queryParams);g.push(et.toString())}return c!=null&&c.skipBrowserRedirect&&g.push(`skip_http_redirect=${c.skipBrowserRedirect}`),`${s}?${g.join("&")}`}async _unenroll(s){try{return await this._useSession(async a=>{var c;const{data:g,error:et}=a;return et?this._returnResult({data:null,error:et}):await _request(this.fetch,"DELETE",`${this.url}/factors/${s.factorId}`,{headers:this.headers,jwt:(c=g==null?void 0:g.session)===null||c===void 0?void 0:c.access_token})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _enroll(s){try{return await this._useSession(async a=>{var c,g;const{data:et,error:rt}=a;if(rt)return this._returnResult({data:null,error:rt});const nt=Object.assign({friendly_name:s.friendlyName,factor_type:s.factorType},s.factorType==="phone"?{phone:s.phone}:s.factorType==="totp"?{issuer:s.issuer}:{}),{data:st,error:at}=await _request(this.fetch,"POST",`${this.url}/factors`,{body:nt,headers:this.headers,jwt:(c=et==null?void 0:et.session)===null||c===void 0?void 0:c.access_token});return at?this._returnResult({data:null,error:at}):(s.factorType==="totp"&&st.type==="totp"&&(!((g=st==null?void 0:st.totp)===null||g===void 0)&&g.qr_code)&&(st.totp.qr_code=`data:image/svg+xml;utf-8,${st.totp.qr_code}`),this._returnResult({data:st,error:null}))})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _verify(s){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async a=>{var c;const{data:g,error:et}=a;if(et)return this._returnResult({data:null,error:et});const rt=Object.assign({challenge_id:s.challengeId},"webauthn"in s?{webauthn:Object.assign(Object.assign({},s.webauthn),{credential_response:s.webauthn.type==="create"?serializeCredentialCreationResponse(s.webauthn.credential_response):serializeCredentialRequestResponse(s.webauthn.credential_response)})}:{code:s.code}),{data:nt,error:st}=await _request(this.fetch,"POST",`${this.url}/factors/${s.factorId}/verify`,{body:rt,headers:this.headers,jwt:(c=g==null?void 0:g.session)===null||c===void 0?void 0:c.access_token});return st?this._returnResult({data:null,error:st}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+nt.expires_in},nt)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",nt),this._returnResult({data:nt,error:st}))})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}})}async _challenge(s){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async a=>{var c;const{data:g,error:et}=a;if(et)return this._returnResult({data:null,error:et});const rt=await _request(this.fetch,"POST",`${this.url}/factors/${s.factorId}/challenge`,{body:s,headers:this.headers,jwt:(c=g==null?void 0:g.session)===null||c===void 0?void 0:c.access_token});if(rt.error)return rt;const{data:nt}=rt;if(nt.type!=="webauthn")return{data:nt,error:null};switch(nt.webauthn.type){case"create":return{data:Object.assign(Object.assign({},nt),{webauthn:Object.assign(Object.assign({},nt.webauthn),{credential_options:Object.assign(Object.assign({},nt.webauthn.credential_options),{publicKey:deserializeCredentialCreationOptions(nt.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},nt),{webauthn:Object.assign(Object.assign({},nt.webauthn),{credential_options:Object.assign(Object.assign({},nt.webauthn.credential_options),{publicKey:deserializeCredentialRequestOptions(nt.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}})}async _challengeAndVerify(s){const{data:a,error:c}=await this._challenge({factorId:s.factorId});return c?this._returnResult({data:null,error:c}):await this._verify({factorId:s.factorId,challengeId:a.id,code:s.code})}async _listFactors(){var s;const{data:{user:a},error:c}=await this.getUser();if(c)return{data:null,error:c};const g={all:[],phone:[],totp:[],webauthn:[]};for(const et of(s=a==null?void 0:a.factors)!==null&&s!==void 0?s:[])g.all.push(et),et.status==="verified"&&g[et.factor_type].push(et);return{data:g,error:null}}async _getAuthenticatorAssuranceLevel(s){var a,c,g,et;if(s)try{const{payload:ct}=decodeJWT(s);let dt=null;ct.aal&&(dt=ct.aal);let ut=dt;const{data:{user:xt},error:gt}=await this.getUser(s);if(gt)return this._returnResult({data:null,error:gt});((c=(a=xt==null?void 0:xt.factors)===null||a===void 0?void 0:a.filter(kt=>kt.status==="verified"))!==null&&c!==void 0?c:[]).length>0&&(ut="aal2");const mt=ct.amr||[];return{data:{currentLevel:dt,nextLevel:ut,currentAuthenticationMethods:mt},error:null}}catch(ct){if(isAuthError(ct))return this._returnResult({data:null,error:ct});throw ct}const{data:{session:rt},error:nt}
110=await this.getSession();if(nt)return this._returnResult({data:null,error:nt});if(!rt)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:st}=decodeJWT(rt.access_token);let at=null;st.aal&&(at=st.aal);let it=at;((et=(g=rt.user.factors)===null||g===void 0?void 0:g.filter(ct=>ct.status==="verified"))!==null&&et!==void 0?et:[]).length>0&&(it="aal2");const lt=st.amr||[];return{data:{currentLevel:at,nextLevel:it,currentAuthenticationMethods:lt},error:null}}async _getAuthorizationDetails(s){try{return await this._useSession(async a=>{const{data:{session:c},error:g}=a;return g?this._returnResult({data:null,error:g}):c?await _request(this.fetch,"GET",`${this.url}/oauth/authorizations/${s}`,{headers:this.headers,jwt:c.access_token,xform:et=>({data:et,error:null})}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _approveAuthorization(s,a){try{return await this._useSession(async c=>{const{data:{session:g},error:et}=c;if(et)return this._returnResult({data:null,error:et});if(!g)return this._returnResult({data:null,error:new AuthSessionMissingError});const rt=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${s}/consent`,{headers:this.headers,jwt:g.access_token,body:{action:"approve"},xform:nt=>({data:nt,error:null})});return rt.data&&rt.data.redirect_url&&isBrowser()&&!(a!=null&&a.skipBrowserRedirect)&&window.location.assign(rt.data.redirect_url),rt})}catch(c){if(isAuthError(c))return this._returnResult({data:null,error:c});throw c}}async _denyAuthorization(s,a){try{return await this._useSession(async c=>{const{data:{session:g},error:et}=c;if(et)return this._returnResult({data:null,error:et});if(!g)return this._returnResult({data:null,error:new AuthSessionMissingError});const rt=await _request(this.fetch,"POST",`${this.url}/oauth/authorizations/${s}/consent`,{headers:this.headers,jwt:g.access_token,body:{action:"deny"},xform:nt=>({data:nt,error:null})});return rt.data&&rt.data.redirect_url&&isBrowser()&&!(a!=null&&a.skipBrowserRedirect)&&window.location.assign(rt.data.redirect_url),rt})}catch(c){if(isAuthError(c))return this._returnResult({data:null,error:c});throw c}}async _listOAuthGrants(){try{return await this._useSession(async s=>{const{data:{session:a},error:c}=s;return c?this._returnResult({data:null,error:c}):a?await _request(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:a.access_token,xform:g=>({data:g,error:null})}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch(s){if(isAuthError(s))return this._returnResult({data:null,error:s});throw s}}async _revokeOAuthGrant(s){try{return await this._useSession(async a=>{const{data:{session:c},error:g}=a;return g?this._returnResult({data:null,error:g}):c?(await _request(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:c.access_token,query:{client_id:s.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new AuthSessionMissingError})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async fetchJwk(s,a={keys:[]}){let c=a.keys.find(nt=>nt.kid===s);if(c)return c;const g=Date.now();if(c=this.jwks.keys.find(nt=>nt.kid===s),c&&this.jwks_cached_at+JWKS_TTL>g)return c;const{data:et,error:rt}=await _request(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(rt)throw rt;return!et.keys||et.keys.length===0||(this.jwks=et,this.jwks_cached_at=g,c=et.keys.find(nt=>nt.kid===s),!c)?null:c}async getClaims(s,a={}){try{let c=s;if(!c){const{data:ct,error:dt}
110=await this.getSession();if(dt||!ct.session)return this._returnResult({data:null,error:dt});c=ct.session.access_token}const{header:g,payload:et,signature:rt,raw:{header:nt,payload:st}}=decodeJWT(c);a!=null&&a.allowExpired||validateExp(et.exp);const at=!g.alg||g.alg.startsWith("HS")||!g.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(g.kid,a!=null&&a.keys?{keys:a.keys}:a==null?void 0:a.jwks);if(!at){const{error:ct}=await this.getUser(c);if(ct)throw ct;return{data:{claims:et,header:g,signature:rt},error:null}}const it=getAlgorithm(g.alg),ot=await crypto.subtle.importKey("jwk",at,it,!0,["verify"]);if(!await crypto.subtle.verify(it,ot,rt,stringToUint8Array(`${nt}.${st}`)))throw new AuthInvalidJwtError("Invalid JWT signature");return{data:{claims:et,header:g,signature:rt},error:null}}catch(c){if(isAuthError(c))return this._returnResult({data:null,error:c});throw c}}async signInWithPasskey(s){var a,c,g;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn())return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)});const{data:et,error:rt}=await this._startPasskeyAuthentication({options:{captchaToken:(a=s==null?void 0:s.options)===null||a===void 0?void 0:a.captchaToken}});if(rt||!et)return this._returnResult({data:null,error:rt});const nt=deserializeCredentialRequestOptions(et.options),st=(g=(c=s==null?void 0:s.options)===null||c===void 0?void 0:c.signal)!==null&&g!==void 0?g:webAuthnAbortService.createNewAbortSignal(),{data:at,error:it}=await getCredential({publicKey:nt,signal:st});if(it||!at)return this._returnResult({data:null,error:it??new AuthUnknownError("WebAuthn ceremony failed",null)});const ot=serializeCredentialRequestResponse(at);return this._verifyPasskeyAuthentication({challengeId:et.challenge_id,credential:ot})}catch(et){if(isAuthError(et))return this._returnResult({data:null,error:et});throw et}}async registerPasskey(s){var a,c;assertPasskeyExperimentalEnabled(this.experimental);try{if(!browserSupportsWebAuthn())return this._returnResult({data:null,error:new AuthUnknownError("Browser does not support WebAuthn",null)});const{data:g,error:et}=await this._startPasskeyRegistration();if(et||!g)return this._returnResult({data:null,error:et});const rt=deserializeCredentialCreationOptions(g.options),nt=(c=(a=s==null?void 0:s.options)===null||a===void 0?void 0:a.signal)!==null&&c!==void 0?c:webAuthnAbortService.createNewAbortSignal(),{data:st,error:at}=await createCredential({publicKey:rt,signal:nt});if(at||!st)return this._returnResult({data:null,error:at??new AuthUnknownError("WebAuthn ceremony failed",null)});const it=serializeCredentialCreationResponse(st);return this._verifyPasskeyRegistration({challengeId:g.challenge_id,credential:it})}catch(g){if(isAuthError(g))return this._returnResult({data:null,error:g});throw g}}async _startPasskeyRegistration(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async s=>{const{data:{session:a},error:c}=s;if(c)return this._returnResult({data:null,error:c});if(!a)return this._returnResult({data:null,error:new AuthSessionMissingError});const{data:g,error:et}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/options`,{headers:this.headers,jwt:a.access_token,body:{}});return et?this._returnResult({data:null,error:et}):this._returnResult({data:g,error:null})})}catch(s){if(isAuthError(s))return this._returnResult({data:null,error:s});throw s}}async _verifyPasskeyRegistration(s){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async a=>{const{data:{session:c},error:g}=a;if(g)return this._returnResult({data:null,error:g});if(!c)return this._returnResult({data:null,error:new AuthSessionMissingError});const{data:et,error:rt}=await _request(this.fetch,"POST",`${this.url}/passkeys/registration/verify`,{headers:this.headers,jwt:c.access_token,body:{challenge_id:s.challengeId,credential:s.credential}});return rt?this._returnResult({data:null,error:rt}):this._returnResult({data:et,error:null})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _startPasskeyAuthentication(s){var a;assertPasskeyExperimentalEnabled(this.experimental);try{const{data:c,error:g}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/options`,{headers:this.headers,body:{gotrue_meta_security:{captcha_token:(a=s==null?void 0:s.options)===null||a===void 0?void 0:a.captchaToken}}});return g?this._returnResult({data:null,error:g}):this._returnResult({data:c,error:null})}catch(c){if(isAuthError(c))return this._returnResult({data:null,error:c});throw c}}async _verifyPasskeyAuthentication(s){assertPasskeyExperimentalEnabled(this.experimental);try{const{data:a,error:c}=await _request(this.fetch,"POST",`${this.url}/passkeys/authentication/verify`,{headers:this.headers,body:{challenge_id:s.challengeId,credential:s.credential},xform:_sessionResponse});return c?this._returnResult({data:null,error:c}):(a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),this._returnResult({data:a,error:null}))}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _listPasskeys(){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async s=>{const{data:{session:a},error:c}=s;if(c)return this._returnResult({data:null,error:c});if(!a)return this._returnResult({data:null,error:new AuthSessionMissingError});const{data:g,error:et}=await _request(this.fetch,"GET",`${this.url}/passkeys`,{headers:this.headers,jwt:a.access_token,xform:rt=>({data:rt,error:null})});return et?this._returnResult({data:null,error:et}):this._returnResult({data:g,error:null})})}catch(s){if(isAuthError(s))return this._returnResult({data:null,error:s});throw s}}async _updatePasskey(s){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async a=>{const{data:{session:c},error:g}=a;if(g)return this._returnResult({data:null,error:g});if(!c)return this._returnResult({data:null,error:new AuthSessionMissingError});const{data:et,error:rt}=await _request(this.fetch,"PATCH",`${this.url}/passkeys/${s.passkeyId}`,{headers:this.headers,jwt:c.access_token,body:{friendly_name:s.friendlyName}});return rt?this._returnResult({data:null,error:rt}):this._returnResult({data:et,error:null})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}async _deletePasskey(s){assertPasskeyExperimentalEnabled(this.experimental);try{return await this._useSession(async a=>{const{data:{session:c},error:g}=a;if(g)return this._returnResult({data:null,error:g});if(!c)return this._returnResult({data:null,error:new AuthSessionMissingError});const{error:et}
110=await _request(this.fetch,"DELETE",`${this.url}/passkeys/${s.passkeyId}`,{headers:this.headers,jwt:c.access_token,noResolveJson:!0});return et?this._returnResult({data:null,error:et}):this._returnResult({data:null,error:null})})}catch(a){if(isAuthError(a))return this._returnResult({data:null,error:a});throw a}}}GoTrueClient.nextInstanceID={};const AuthClient=GoTrueClient,version="2.105.4";let JS_ENV="";typeof Deno<"u"?JS_ENV="deno":typeof document<"u"?JS_ENV="web":typeof navigator<"u"&&navigator.product==="ReactNative"?JS_ENV="react-native":JS_ENV="node";const DEFAULT_HEADERS={"X-Client-Info":`supabase-js-${JS_ENV}/${version}`},DEFAULT_GLOBAL_OPTIONS={headers:DEFAULT_HEADERS},DEFAULT_DB_OPTIONS={schema:"public"},DEFAULT_AUTH_OPTIONS={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},DEFAULT_REALTIME_OPTIONS={};function _typeof(e){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},_typeof(e)}function toPrimitive(e,s){if(_typeof(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var c=a.call(e,s||"default");if(_typeof(c)!="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(e)}function toPropertyKey(e){var s=toPrimitive(e,"string");return _typeof(s)=="symbol"?s:s+""}function _defineProperty(e,s,a){return(s=toPropertyKey(s))in e?Object.defineProperty(e,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[s]=a,e}function ownKeys(e,s){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);s&&(c=c.filter(function(g){return Object.getOwnPropertyDescriptor(e,g).enumerable})),a.push.apply(a,c)}return a}function _objectSpread2(e){for(var s=1;s<arguments.length;s++){var a=arguments[s]!=null?arguments[s]:{};s%2?ownKeys(Object(a),!0).forEach(function(c){_defineProperty(e,c,a[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys(Object(a)).forEach(function(c){Object.defineProperty(e,c,Object.getOwnPropertyDescriptor(a,c))})}return e}const resolveFetch=e=>e?(...s)=>e(...s):(...s)=>fetch(...s),resolveHeadersConstructor=()=>Headers,fetchWithAuth=(e,s,a)=>{const c=resolveFetch(a),g=resolveHeadersConstructor();return async(et,rt)=>{var nt;const st=(nt=await s())!==null&&nt!==void 0?nt:e;let at=new g(rt==null?void 0:rt.headers);return at.has("apikey")||at.set("apikey",e),at.has("Authorization")||at.set("Authorization",`Bearer ${st}`),c(et,_objectSpread2(_objectSpread2({},rt),{},{headers:at}))}};function ensureTrailingSlash(e){return e.endsWith("/")?e:e+"/"}function applySettingDefaults(e,s){var a,c;const{db:g,auth:et,realtime:rt,global:nt}=e,{db:st,auth:at,realtime:it,global:ot}=s,lt={db:_objectSpread2(_objectSpread2({},st),g),auth:_objectSpread2(_objectSpread2({},at),et),realtime:_objectSpread2(_objectSpread2({},it),rt),storage:{},global:_objectSpread2(_objectSpread2(_objectSpread2({},ot),nt),{},{headers:_objectSpread2(_objectSpread2({},(a=ot==null?void 0:ot.headers)!==null&&a!==void 0?a:{}),(c=nt==null?void 0:nt.headers)!==null&&c!==void 0?c:{})}),accessToken:async()=>""};return e.accessToken?lt.accessToken=e.accessToken:delete lt.accessToken,lt}function validateSupabaseUrl(e){const s=e==null?void 0:e.trim();if(!s)throw new Error("supabaseUrl is required.");if(!s.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(ensureTrailingSlash(s))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var SupabaseAuthClient=class extends AuthClient{constructor(e){super(e)}},SupabaseClient=class{constructor(e,s,a){var c,g;this.supabaseUrl=e,this.supabaseKey=s;const et=validateSupabaseUrl(e);if(!s)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",et),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",et),this.storageUrl=new URL("storage/v1",et),this.functionsUrl=new URL("functions/v1",et);const rt=`sb-${et.hostname.split(".")[0]}-auth-token`,nt={db:DEFAULT_DB_OPTIONS,realtime:DEFAULT_REALTIME_OPTIONS,auth:_objectSpread2
110(_objectSpread2({},DEFAULT_AUTH_OPTIONS),{},{storageKey:rt}),global:DEFAULT_GLOBAL_OPTIONS},st=applySettingDefaults(a??{},nt);if(this.storageKey=(c=st.auth.storageKey)!==null&&c!==void 0?c:"",this.headers=(g=st.global.headers)!==null&&g!==void 0?g:{},st.accessToken)this.accessToken=st.accessToken,this.auth=new Proxy({},{get:(it,ot)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(ot)} is not possible`)}});else{var at;this.auth=this._initSupabaseAuthClient((at=st.auth)!==null&&at!==void 0?at:{},this.headers,st.global.fetch)}this.fetch=fetchWithAuth(s,this._getAccessToken.bind(this),st.global.fetch),this.realtime=this._initRealtimeClient(_objectSpread2({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},st.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(it=>this.realtime.setAuth(it)).catch(it=>console.warn("Failed to set initial Realtime auth token:",it)),this.rest=new PostgrestClient(new URL("rest/v1",et).href,{headers:this.headers,schema:st.db.schema,fetch:this.fetch,timeout:st.db.timeout,urlLengthLimit:st.db.urlLengthLimit}),this.storage=new StorageClient(this.storageUrl.href,this.headers,this.fetch,a==null?void 0:a.storage),st.accessToken||this._listenForAuthEvents()}get functions(){return new FunctionsClient(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,s={},a={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,s,a)}channel(e,s={config:{}}){return this.realtime.channel(e,s)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var e=this,s,a;if(e.accessToken)return await e.accessToken();const{data:c}=await e.auth.getSession();return(s=(a=c.session)===null||a===void 0?void 0:a.access_token)!==null&&s!==void 0?s:e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:s,detectSessionInUrl:a,storage:c,userStorage:g,storageKey:et,flowType:rt,lock:nt,debug:st,throwOnError:at,experimental:it,lockAcquireTimeout:ot,skipAutoInitialize:lt},ct,dt){const ut={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new SupabaseAuthClient({url:this.authUrl.href,headers:_objectSpread2(_objectSpread2({},ut),ct),storageKey:et,autoRefreshToken:e,persistSession:s,detectSessionInUrl:a,storage:c,userStorage:g,flowType:rt,lock:nt,debug:st,throwOnError:at,experimental:it,fetch:dt,lockAcquireTimeout:ot,skipAutoInitialize:lt,hasCustomAuthorizationHeader:Object.keys(this.headers).some(xt=>xt.toLowerCase()==="authorization")})}_initRealtimeClient(e){return new RealtimeClient(this.realtimeUrl.href,_objectSpread2(_objectSpread2({},e),{},{params:_objectSpread2(_objectSpread2({},{apikey:this.supabaseKey}),e==null?void 0:e.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,s)=>{this._handleTokenChanged(e,"CLIENT",s==null?void 0:s.access_token)})}_handleTokenChanged(e,s,a){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==a?(this.changedAccessToken=a,this.realtime.setAuth(a)):e==="SIGNED_OUT"&&(this.realtime.setAuth(),s=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const createClient=(e,s,a)=>new SupabaseClient(e,s,a);function shouldShowDeprecationWarning(){if(typeof window<"u")return!1;const e=globalThis.process;if(!e)return!1;const s=e.version;if(s==null)return!1;const a=s.match(/^v(\d+)\./);return a?parseInt(a[1],10)<=18:!1}shouldShowDeprecationWarning()&&console.warn("â ï¸ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");const supabaseUrl="https://jgvoetsmgxzipmmfxtdd.supabase.co",supabaseAnonKey="sb_publishable_VBlPxzh2LSrAZYyk7WUUKQ_bqRa_dn7",isSupabaseConfigured=!!supabaseAnonKey,supabase=isSupabaseConfigured?createClient(supabaseUrl,supabaseAnonKey):null;
110let cachedUserId=null,cachedAccess=null,pendingAccess=null;const getPulseTeamAccess=async()=>{var g;if(!supabase)return"error";const{data:e,error:s}=await supabase.auth.getSession(),a=((g=e.session)==null?void 0:g.user.id)??null;if(s||!a)return cachedUserId=null,cachedAccess="denied",pendingAccess=null,"denied";if(cachedUserId===a&&cachedAccess)return cachedAccess;if(cachedUserId===a&&pendingAccess)return pendingAccess;cachedUserId=a,cachedAccess=null,pendingAccess=(async()=>{const{data:et,error:rt}=await supabase.from("pulse_profiles").select("account_status, person:people(role)").eq("user_id",a).maybeSingle();if(rt)return"error";if(!et||et.account_status!=="active")return"denied";const nt=Array.isArray(et.person)?et.person[0]:et.person;return(nt==null?void 0:nt.role)==="team"?"allowed":"denied"})();const c=await pendingAccess;return cachedUserId===a&&(cachedAccess=c,pendingAccess=null),c},PULSE_HOSTS=new Set(["pulse.eaf.eu"]),isPulseHost=()=>PULSE_HOSTS.has(window.location.hostname),pulsePath=(e="")=>{const s=e.startsWith("/")?e:`/${e}`;return isPulseHost()?s:`/pulse${s==="/"?"":s}`},RequireTeamMember=({children:e})=>{const[s,a]=reactExports.useState("loading");return reactExports.useEffect(()=>{let c=!0;return getPulseTeamAccess().then(g=>{c&&a(g)}),()=>{c=!1}},[]),s==="allowed"?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:e}):jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-6 py-24 text-ink",children:jsxRuntimeExports.jsx("div",{className:"mx-auto flex min-h-[60vh] max-w-5xl items-center justify-center border-t border-ink/25",children:s==="loading"?jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Checking team accessâ¦"}):jsxRuntimeExports.jsxs("div",{className:"w-full max-w-md",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:s==="error"?"Could not check access":"Team members only"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:s==="error"?"Pulse could not verify your team profile. Please try again.":"This area is private working material for the EAF team."}),jsxRuntimeExports.jsx(Link,{to:pulsePath(),className:"mt-6 inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] uppercase tracking-[0.16em] text-canvas transition-colors hover:bg-ink/90",children:"Back to Pulse"})]})})})};function r(e){var s,a,c="";if(typeof e=="string"||typeof e=="number")c+=e;else if(typeof e=="object")if(Array.isArray(e)){var g=e.length;for(s=0;s<g;s++)e[s]&&(a=r(e[s]))&&(c&&(c+=" "),c+=a)}else for(a in e)e[a]&&(c&&(c+=" "),c+=a);return c}function clsx(){for(var e,s,a=0,c="",g=arguments.length;a<g;a++)(e=arguments[a])&&(s=r(e))&&(c&&(c+=" "),c+=s);return c}const CLASS_PART_SEPARATOR="-",createClassGroupUtils=e=>{const s=createClassMap(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:c}=e;return{getClassGroupId:rt=>{const nt=rt.split(CLASS_PART_SEPARATOR);return nt[0]===""&&nt.length!==1&&nt.shift(),getGroupRecursive(nt,s)||getGroupIdForArbitraryProperty(rt)},getConflictingClassGroupIds:(rt,nt)=>{const st=a[rt]||[];return nt&&c[rt]?[...st,...c[rt]]:st}}},getGroupRecursive=(e,s)=>{var rt;if(e.length===0)return s.classGroupId;const a=e[0],c=s.nextPart.get(a),g=c?getGroupRecursive(e.slice(1),c):void 0;if(g)return g;if(s.validators.length===0)return;const et=e.join(CLASS_PART_SEPARATOR);return(rt=s.validators.find(({validator:nt})=>nt(et)))==null?void 0:rt.classGroupId},arbitraryPropertyRegex=/^\[(.+)\]$/,getGroupIdForArbitraryProperty=e=>{if(arbitraryPropertyRegex.test(e)){const s=arbitraryPropertyRegex.exec(e)[1],a=s==null?void 0:s.substring(0,s.indexOf(":"));if(a)return"arbitrary.."+a}},createClassMap=e=>{const{theme:s,prefix:a}=e,c={nextPart:new Map,validators:[]};return getPrefixedClassGroupEntries(Object.entries(e.classGroups),a).forEach(([et,rt])=>{processClassesRecursively(rt,c,et,s)}),c},processClassesRecursively=(e,s,a,c)=>{e.forEach(g=>{if(typeof g=="string"){const et=g===""?s:getPart(s,g);et.classGroupId=a;return}if(typeof g=="function"){if(isThemeGetter(g)){processClassesRecursively(g(c),s,a,c);return}s.validators.push({validator:g,classGroupId:a});return}Object.entries(g).forEach(([et,rt])=>{processClassesRecursively(rt,getPart(s,et),a,c)})})},getPart=(e,s)=>{let a=e;
vendor: 7,927 bytes, line 110
110return s.split(CLASS_PART_SEPARATOR).forEach(c=>{a.nextPart.has(c)||a.nextPart.set(c,{nextPart:new Map,validators:[]}),a=a.nextPart.get(c)}),a},isThemeGetter=e=>e.isThemeGetter,getPrefixedClassGroupEntries=(e,s)=>s?e.map(([a,c])=>{const g=c.map(et=>typeof et=="string"?s+et:typeof et=="object"?Object.fromEntries(Object.entries(et).map(([rt,nt])=>[s+rt,nt])):et);return[a,g]}):e,createLruCache=e=>{if(e<1)return{get:()=>{},set:()=>{}};let s=0,a=new Map,c=new Map;const g=(et,rt)=>{a.set(et,rt),s++,s>e&&(s=0,c=a,a=new Map)};return{get(et){let rt=a.get(et);if(rt!==void 0)return rt;if((rt=c.get(et))!==void 0)return g(et,rt),rt},set(et,rt){a.has(et)?a.set(et,rt):g(et,rt)}}},IMPORTANT_MODIFIER="!",createParseClassName=e=>{const{separator:s,experimentalParseClassName:a}=e,c=s.length===1,g=s[0],et=s.length,rt=nt=>{const st=[];let at=0,it=0,ot;for(let xt=0;xt<nt.length;xt++){let gt=nt[xt];if(at===0){if(gt===g&&(c||nt.slice(xt,xt+et)===s)){st.push(nt.slice(it,xt)),it=xt+et;continue}if(gt==="/"){ot=xt;continue}}gt==="["?at++:gt==="]"&&at--}const lt=st.length===0?nt:nt.substring(it),ct=lt.startsWith(IMPORTANT_MODIFIER),dt=ct?lt.substring(1):lt,ut=ot&&ot>it?ot-it:void 0;return{modifiers:st,hasImportantModifier:ct,baseClassName:dt,maybePostfixModifierPosition:ut}};return a?nt=>a({className:nt,parseClassName:rt}):rt},sortModifiers=e=>{if(e.length<=1)return e;const s=[];let a=[];return e.forEach(c=>{c[0]==="["?(s.push(...a.sort(),c),a=[]):a.push(c)}),s.push(...a.sort()),s},createConfigUtils=e=>({cache:createLruCache(e.cacheSize),parseClassName:createParseClassName(e),...createClassGroupUtils(e)}),SPLIT_CLASSES_REGEX=/\s+/,mergeClassList=(e,s)=>{const{parseClassName:a,getClassGroupId:c,getConflictingClassGroupIds:g}=s,et=[],rt=e.trim().split(SPLIT_CLASSES_REGEX);let nt="";for(let st=rt.length-1;st>=0;st-=1){const at=rt[st],{modifiers:it,hasImportantModifier:ot,baseClassName:lt,maybePostfixModifierPosition:ct}=a(at);let dt=!!ct,ut=c(dt?lt.substring(0,ct):lt);if(!ut){if(!dt){nt=at+(nt.length>0?" "+nt:nt);continue}if(ut=c(lt),!ut){nt=at+(nt.length>0?" "+nt:nt);continue}dt=!1}const xt=sortModifiers(it).join(":"),gt=ot?xt+IMPORTANT_MODIFIER:xt,ht=gt+ut;if(et.includes(ht))continue;et.push(ht);const mt=g(ut,dt);for(let kt=0;kt<mt.length;++kt){const Ct=mt[kt];et.push(gt+Ct)}nt=at+(nt.length>0?" "+nt:nt)}return nt};function twJoin(){let e=0,s,a,c="";for(;e<arguments.length;)(s=arguments[e++])&&(a=toValue(s))&&(c&&(c+=" "),c+=a);return c}const toValue=e=>{if(typeof e=="string")return e;let s,a="";for(let c=0;c<e.length;c++)e[c]&&(s=toValue(e[c]))&&(a&&(a+=" "),a+=s);return a};function createTailwindMerge(e,...s){let a,c,g,et=rt;function rt(st){const at=s.reduce((it,ot)=>ot(it),e());return a=createConfigUtils(at),c=a.cache.get,g=a.cache.set,et=nt,nt(st)}function nt(st){const at=c(st);if(at)return at;const it=mergeClassList(st,a);return g(st,it),it}return function(){return et(twJoin.apply(null,arguments))}}const fromTheme=e=>{const s=a=>a[e]||[];return s.isThemeGetter=!0,s},arbitraryValueRegex=/^\[(?:([a-z-]+):)?(.+)\]$/i,fractionRegex=/^\d+\/\d+$/,stringLengths=new Set(["px","full","screen"]),tshirtUnitRegex=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,lengthUnitRegex=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,colorFunctionRegex=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,shadowRegex=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,imageRegex=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,isLength=e=>isNumber(e)||stringLengths.has(e)||fractionRegex.test(e),isArbitraryLength=e=>getIsArbitraryValue(e,"length",isLengthOnly),isNumber=e=>!!e&&!Number.isNaN(Number(e)),isArbitraryNumber=e=>getIsArbitraryValue(e,"number",isNumber),isInteger$1=e=>!!e&&Number.isInteger(Number(e)),isPercent=e=>e.endsWith("%")&&isNumber(e.slice(0,-1)),isArbitraryValue=e=>arbitraryValueRegex.test(e),isTshirtSize=e=>tshirtUnitRegex.test(e),sizeLabels=new Set(["length","size","percentage"]),isArbitrarySize=e=>getIsArbitraryValue(e,sizeLabels,isNever),isArbitraryPosition=e=>getIsArbitraryValue(e,"position",isNever),imageLabels=new Set(["image","url"]),isArbitraryImage=e=>getIsArbitraryValue(e,imageLabels,isImage),isArbitraryShadow=e=>getIsArbitraryValue(e,"",isShadow),isAny=()=>!0,getIsArbitraryValue=(e,s,a)=>{const c=arbitraryValueRegex.exec(e);return c?c[1]?typeof s=="string"?c[1]===s:s.has(c[1]):a(c[2]):!1},isLengthOnly=e=>lengthUnitRegex.test(e)&&!colorFunctionRegex.test(e),isNever=()=>!1,isShadow=e=>shadowRegex.test(e),isImage=e=>imageRegex.test(e),getDefaultConfig=()=>{const e=fromTheme("colors"),s=fromTheme("spacing"),a=fromTheme("blur"),c=fromTheme("brightness"),g=fromTheme("borderColor"),et=fromTheme("borderRadius"),rt=fromTheme("borderSpacing"),nt=fromTheme("borderWidth"),st=fromTheme("contrast"),at=fromTheme("grayscale"),it=fromTheme("hueRotate"),ot=fromTheme("invert"),lt=fromTheme("gap"),ct=fromTheme("gradientColorStops"),dt=fromTheme("gradientColorStopPositions"),ut=fromTheme("inset"),xt=fromTheme("margin"),gt=fromTheme("opacity"),ht=fromTheme("padding"),mt=fromTheme("saturate"),kt=fromTheme("scale"),Ct=fromTheme("sepia"),Tt=fromTheme("skew"),Pt=fromTheme("space"),At=fromTheme("translate"),Gt=()=>["auto","contain","none"],Mt=()=>["auto","hidden","clip","visible","scroll"],zt=()=>["auto",isArbitraryValue,s],Jt=()=>[isArbitraryValue,s],nr=()=>["",isLength,isArbitraryLength],er=()=>["auto",isNumber,isArbitraryValue],ur=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],qt=()=>["solid","dashed","dotted","double","none"],or=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Dt=()=>["start","end","center","between","around","evenly","stretch"],Ht=()=>["","0",isArbitraryValue],Xt=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Zt=()=>[isNumber,isArbitraryValue];return{cacheSize:500,separator:":",theme:{colors:[isAny],spacing:[isLength,isArbitraryLength],blur:["none","",isTshirtSize,isArbitraryValue],brightness:Zt(),borderColor:[e],borderRadius:["none","","full",isTshirtSize,isArbitraryValue],borderSpacing:Jt(),borderWidth:nr(),contrast:Zt(),grayscale:Ht(),hueRotate:Zt(),invert:Ht(),gap:Jt(),gradientColorStops:[e],gradientColorStopPositions:[isPercent,isArbitraryLength],inset:zt(),margin:zt(),opacity:Zt(),padding:Jt(),saturate:Zt(),scale:Zt(),sepia:Ht(),skew:Zt(),space:Jt(),translate:Jt()},classGroups:{aspect:[{aspect:["auto","square","video",isArbitraryValue]}],container:["container"],columns:[{columns:[isTshirtSize]}],"break-after":[{"break-after":Xt()}],"break-before":[{"break-before":Xt()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ur(),isArbitraryValue]}],overflow:[{overflow:Mt()}],"overflow-x":[{"overflow-x":Mt()}],"overflow-y":[{"overflow-y":Mt()}],overscroll:[{overscroll:Gt()}],"overscroll-x":[{"overscroll-x":Gt()}],"overscroll-y":[{"overscroll-y":Gt()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[ut]}],"inset-x":[{"inset-x":[ut]}],"inset-y":[{"inset-y":[ut]}],start:[{start:[ut]}],end:[{end:[ut]}],top:[{top:[ut]}
vendor: 11,207 bytes, line 110
110],right:[{right:[ut]}],bottom:[{bottom:[ut]}],left:[{left:[ut]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",isInteger$1,isArbitraryValue]}],basis:[{basis:zt()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",isArbitraryValue]}],grow:[{grow:Ht()}],shrink:[{shrink:Ht()}],order:[{order:["first","last","none",isInteger$1,isArbitraryValue]}],"grid-cols":[{"grid-cols":[isAny]}],"col-start-end":[{col:["auto",{span:["full",isInteger$1,isArbitraryValue]},isArbitraryValue]}],"col-start":[{"col-start":er()}],"col-end":[{"col-end":er()}],"grid-rows":[{"grid-rows":[isAny]}],"row-start-end":[{row:["auto",{span:[isInteger$1,isArbitraryValue]},isArbitraryValue]}],"row-start":[{"row-start":er()}],"row-end":[{"row-end":er()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",isArbitraryValue]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",isArbitraryValue]}],gap:[{gap:[lt]}],"gap-x":[{"gap-x":[lt]}],"gap-y":[{"gap-y":[lt]}],"justify-content":[{justify:["normal",...Dt()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...Dt(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...Dt(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[ht]}],px:[{px:[ht]}],py:[{py:[ht]}],ps:[{ps:[ht]}],pe:[{pe:[ht]}],pt:[{pt:[ht]}],pr:[{pr:[ht]}],pb:[{pb:[ht]}],pl:[{pl:[ht]}],m:[{m:[xt]}],mx:[{mx:[xt]}],my:[{my:[xt]}],ms:[{ms:[xt]}],me:[{me:[xt]}],mt:[{mt:[xt]}],mr:[{mr:[xt]}],mb:[{mb:[xt]}],ml:[{ml:[xt]}],"space-x":[{"space-x":[Pt]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[Pt]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",isArbitraryValue,s]}],"min-w":[{"min-w":[isArbitraryValue,s,"min","max","fit"]}],"max-w":[{"max-w":[isArbitraryValue,s,"none","full","min","max","fit","prose",{screen:[isTshirtSize]},isTshirtSize]}],h:[{h:[isArbitraryValue,s,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[isArbitraryValue,s,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[isArbitraryValue,s,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[isArbitraryValue,s,"auto","min","max","fit"]}],"font-size":[{text:["base",isTshirtSize,isArbitraryLength]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",isArbitraryNumber]}],"font-family":[{font:[isAny]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",isArbitraryValue]}],"line-clamp":[{"line-clamp":["none",isNumber,isArbitraryNumber]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",isLength,isArbitraryValue]}],"list-image":[{"list-image":["none",isArbitraryValue]}],"list-style-type":[{list:["none","disc","decimal",isArbitraryValue]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[gt]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[gt]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...qt(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",isLength,isArbitraryLength]}],"underline-offset":[{"underline-offset":["auto",isLength,isArbitraryValue]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:Jt()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",isArbitraryValue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",isArbitraryValue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[gt]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ur(),isArbitraryPosition]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",isArbitrarySize]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},isArbitraryImage]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[dt]}],"gradient-via-pos":[{via:[dt]}],"gradient-to-pos":[{to:[dt]}],"gradient-from":[{from:[ct]}],"gradient-via":[{via:[ct]}],"gradient-to":[{to:[ct]}],rounded:[{rounded:[et]}],"rounded-s":[{"rounded-s":[et]}],"rounded-e":[{"rounded-e":[et]}],"rounded-t":[{"rounded-t":[et]}],"rounded-r":[{"rounded-r":[et]}],"rounded-b":[{"rounded-b":[et]}],"rounded-l":[{"rounded-l":[et]}],"rounded-ss":[{"rounded-ss":[et]}],"rounded-se":[{"rounded-se":[et]}],"rounded-ee":[{"rounded-ee":[et]}],"rounded-es":[{"rounded-es":[et]}],"rounded-tl":[{"rounded-tl":[et]}],"rounded-tr":[{"rounded-tr":[et]}],"rounded-br":[{"rounded-br":[et]}],"rounded-bl":[{"rounded-bl":[et]}],"border-w":[{border:[nt]}],"border-w-x":[{"border-x":[nt]}],"border-w-y":[{"border-y":[nt]}],"border-w-s":[{"border-s":[nt]}],"border-w-e":[{"border-e":[nt]}],"border-w-t":[{"border-t":[nt]}],"border-w-r":[{"border-r":[nt]}],"border-w-b":[{"border-b":[nt]}],"border-w-l":[{"border-l":[nt]}],"border-opacity":[{"border-opacity":[gt]}],"border-style":[{border:[...qt(),"hidden"]}],"divide-x":[{"divide-x":[nt]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[nt]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[gt]}],"divide-style":[{divide:qt()}],"border-color":[{border:[g]}],"border-color-x":[{"border-x":[g]}],"border-color-y":[{"border-y":[g]}],"border-color-s":[{"border-s":[g]}],"border-color-e":[{"border-e":[g]}],"border-color-t":[{"border-t":[g]}],"border-color-r":[{"border-r":[g]}],"border-color-b":[{"border-b":[g]}],"border-color-l":[{"border-l":[g]}],"divide-color":[{divide:[g]}],"outline-style":[{outline:["",...qt()]}],"outline-offset":[{"outline-offset":[isLength,isArbitraryValue]}],"outline-w":[{outline:[isLength,isArbitraryLength]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:nr()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[gt]}],"ring-offset-w":[{"ring-offset":[isLength,isArbitraryLength]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",isTshirtSize,isArbitraryShadow]}],"shadow-color":[{shadow:[isAny]}],opacity:[{opacity:[gt]}],"mix-blend":[{"mix-blend":[...or(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":or()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[c]}],contrast:[{contrast:[st]}],"drop-shadow":[{"drop-shadow":["","none",isTshirtSize,isArbitraryValue]}],grayscale:[{grayscale:[at]}],"hue-rotate":[{"hue-rotate":[it]}],invert:[{invert:[ot]}],saturate:[{saturate:[mt]}],sepia:[{sepia:[Ct]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[c]}],"backdrop-contrast":[{"backdrop-contrast":[st]}],"backdrop-grayscale":[{"backdrop-grayscale":[at]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[it]}],"backdrop-invert":[{"backdrop-invert":[ot]}],"backdrop-opacity":[{"backdrop-opacity":[gt]}],"backdrop-saturate":[{"backdrop-saturate":[mt]}],"backdrop-sepia":[{"backdrop-sepia":[Ct]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[rt]}],"border-spacing-x":[{"border-spacing-x":[rt]}],"border-spacing-y":[{"border-spacing-y":[rt]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",isArbitraryValue]}],duration:[{duration:Zt()}],ease:[{ease:["linear","in","out","in-out",isArbitraryValue]}],delay:[{delay:Zt()}],animate:[{animate:["none","spin","ping","pulse","bounce",isArbitraryValue]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[kt]}],"scale-x":[{"scale-x":[kt]}],"scale-y":[{"scale-y":[kt]}],rotate:[{rotate:[isInteger$1,isArbitraryValue]}],"translate-x":[{"translate-x":[At]}],"translate-y":[{"translate-y":[At]}],"skew-x":[{"skew-x":[Tt]}],"skew-y":[{"skew-y":[Tt]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",isArbitraryValue]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",isArbitraryValue]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":Jt()}],"scroll-mx":[{"scroll-mx":Jt()}],"scroll-my":[{"scroll-my":Jt()}],"scroll-ms":[{"scroll-ms":Jt()}],"scroll-me":[{"scroll-me":Jt()}],"scroll-mt":[{"scroll-mt":Jt()}],"scroll-mr":[{"scroll-mr":Jt()}],"scroll-mb":[{"scroll-mb":Jt()}],"scroll-ml":[{"scroll-ml":Jt()}],"scroll-p":[{"scroll-p":Jt()}],"scroll-px":[{"scroll-px":Jt()}],"scroll-py":[{"scroll-py":Jt()}],"scroll-ps":[{"scroll-ps":Jt()}],"scroll-pe":[{"scroll-pe":Jt()}],"scroll-pt":[{"scroll-pt":Jt()}],"scroll-pr":[{"scroll-pr":Jt()}],"scroll-pb":[{"scroll-pb":Jt()}],"scroll-pl":[{"scroll-pl":Jt()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",isArbitraryValue]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[isLength,isArbitraryLength,isArbitraryNumber]}
vendor: 4,719 bytes, lines 110-135
110],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},twMerge=createTailwindMerge(getDefaultConfig);function cn(...e){return twMerge(clsx(e))}const maxWidthClass={"3xl":"max-w-3xl","4xl":"max-w-4xl","5xl":"max-w-5xl","6xl":"max-w-6xl","7xl":"max-w-7xl"},PulsePage=({children:e,className:s,contentClassName:a,maxWidth:c="6xl"})=>jsxRuntimeExports.jsx("div",{className:cn("min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",s),children:jsxRuntimeExports.jsx("div",{className:cn("mx-auto w-full",maxWidthClass[c],a),children:e})});/** 111 * @license lucide-react v0.462.0 - ISC 112 * 113 * This source code is licensed under the ISC license. 114 * See the LICENSE file in the root directory of this source tree. 115 */const toKebabCase=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),mergeClasses=(...e)=>e.filter((s,a,c)=>!!s&&s.trim()!==""&&c.indexOf(s)===a).join(" ").trim();/** 116 * @license lucide-react v0.462.0 - ISC 117 * 118 * This source code is licensed under the ISC license. 119 * See the LICENSE file in the root directory of this source tree. 120 */var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 121 * @license lucide-react v0.462.0 - ISC 122 * 123 * This source code is licensed under the ISC license. 124 * See the LICENSE file in the root directory of this source tree. 125 */const Icon$1=reactExports.forwardRef(({color:e="currentColor",size:s=24,strokeWidth:a=2,absoluteStrokeWidth:c,className:g="",children:et,iconNode:rt,...nt},st)=>reactExports.createElement("svg",{ref:st,...defaultAttributes,width:s,height:s,stroke:e,strokeWidth:c?Number(a)*24/Number(s):a,className:mergeClasses("lucide",g),...nt},[...rt.map(([at,it])=>reactExports.createElement(at,it)),...Array.isArray(et)?et:[et]]));/** 126 * @license lucide-react v0.462.0 - ISC 127 * 128 * This source code is licensed under the ISC license. 129 * See the LICENSE file in the root directory of this source tree. 130 */const createLucideIcon=(e,s)=>{const a=reactExports.forwardRef(({className:c,...g},et)=>reactExports.createElement(Icon$1,{ref:et,iconNode:s,className:mergeClasses(`lucide-${toKebabCase(e)}`,c),...g}));return a.displayName=`${e}`,a};/** 131 * @license lucide-react v0.462.0 - ISC 132 * 133 * This source code is licensed under the ISC license. 134 * See the LICENSE file in the root directory of this source tree. 135 */const ArrowDownUp=createLucideIcon("ArrowDownUp",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}
135],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]]);/** 136 * @license lucide-react v0.462.0 - ISC 137 * 138 * This source code is licensed under the ISC license. 139 * See the LICENSE file in the root directory of this source tree. 140 */const ArrowLeft=createLucideIcon("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** 141 * @license lucide-react v0.462.0 - ISC 142 * 143 * This source code is licensed under the ISC license. 144 * See the LICENSE file in the root directory of this source tree. 145 */const ArrowRight=createLucideIcon("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** 146 * @license lucide-react v0.462.0 - ISC 147 * 148 * This source code is licensed under the ISC license. 149 * See the LICENSE file in the root directory of this source tree. 150 */const ArrowUpDown=createLucideIcon("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]]);/** 151 * @license lucide-react v0.462.0 - ISC 152 * 153 * This source code is licensed under the ISC license. 154 * See the LICENSE file in the root directory of this source tree. 155 */const ArrowUpRight=createLucideIcon("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/** 156 * @license lucide-react v0.462.0 - ISC 157 * 158 * This source code is licensed under the ISC license. 159 * See the LICENSE file in the root directory of this source tree. 160 */const Award=createLucideIcon("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/** 161 * @license lucide-react v0.462.0 - ISC 162 * 163 * This source code is licensed under the ISC license. 164 * See the LICENSE file in the root directory of this source tree. 165 */const BedDouble=createLucideIcon("BedDouble",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]);/** 166 * @license lucide-react v0.462.0 - ISC 167 * 168 * This source code is licensed under the ISC license. 169 * See the LICENSE file in the root directory of this source tree. 170 */const BookOpen=createLucideIcon("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** 171 * @license lucide-react v0.462.0 - ISC 172 * 173 * This source code is licensed under the ISC license. 174 * See the LICENSE file in the root directory of this source tree. 175 */const CalendarCheck=createLucideIcon("CalendarCheck",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"m9 16 2 2 4-4",key:"19s6y9"}]]);/** 176 * @license lucide-react v0.462.0 - ISC 177 * 178 * This source code is licensed under the ISC license. 179 * See the LICENSE file in the root directory of this source tree. 180 */const CalendarClock=createLucideIcon("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/** 181 * @license lucide-react v0.462.0 - ISC 182 * 183 * This source code is licensed under the ISC license. 184 * See the LICENSE file in the root directory of this source tree. 185 */const CalendarDays=createLucideIcon("CalendarDays",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]]);/** 186 * @license lucide-react v0.462.0 - ISC 187 * 188 * This source code is licensed under the ISC license. 189 * See the LICENSE file in the root directory of this source tree. 190 */const Calendar=createLucideIcon("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** 191 * @license lucide-react v0.462.0 - ISC 192 * 193 * This source code is licensed under the ISC license. 194 * See the LICENSE file in the root directory of this source tree. 195 */const Check=createLucideIcon("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** 196 * @license lucide-react v0.462.0 - ISC 197 * 198 * This source code is licensed under the ISC license. 199 * See the LICENSE file in the root directory of this source tree. 200 */const ChevronDown=createLucideIcon("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** 201 * @license lucide-react v0.462.0 - ISC 202 * 203 * This source code is licensed under the ISC license. 204 * See the LICENSE file in the root directory of this source tree. 205 */const ChevronLeft=createLucideIcon("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** 206 * @license lucide-react v0.462.0 - ISC 207 * 208 * This source code is licensed under the ISC license. 209 * See the LICENSE file in the root directory of this source tree. 210 */const ChevronRight=createLucideIcon("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** 211 * @license lucide-react v0.462.0 - ISC 212 * 213 * This source code is licensed under the ISC license. 214 * See the LICENSE file in the root directory of this source tree. 215 */const ChevronUp=createLucideIcon("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** 216 * @license lucide-react v0.462.0 - ISC 217 * 218 * This source code is licensed under the ISC license. 219 * See the LICENSE file in the root directory of this source tree. 220 */const CircleAlert=createLucideIcon("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** 221 * @license lucide-react v0.462.0 - ISC 222 * 223 * This source code is licensed under the ISC license. 224 * See the LICENSE file in the root directory of this source tree. 225 */const CircleCheckBig=createLucideIcon("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** 226 * @license lucide-react v0.462.0 - ISC 227 * 228 * This source code is licensed under the ISC license. 229 * See the LICENSE file in the root directory of this source tree.
230 */const ClipboardCheck=createLucideIcon("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);/** 231 * @license lucide-react v0.462.0 - ISC 232 * 233 * This source code is licensed under the ISC license. 234 * See the LICENSE file in the root directory of this source tree. 235 */const Clock=createLucideIcon("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/** 236 * @license lucide-react v0.462.0 - ISC 237 * 238 * This source code is licensed under the ISC license. 239 * See the LICENSE file in the root directory of this source tree. 240 */const CloudUpload=createLucideIcon("CloudUpload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);/** 241 * @license lucide-react v0.462.0 - ISC 242 * 243 * This source code is licensed under the ISC license. 244 * See the LICENSE file in the root directory of this source tree. 245 */const Compass=createLucideIcon("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 246 * @license lucide-react v0.462.0 - ISC 247 * 248 * This source code is licensed under the ISC license. 249 * See the LICENSE file in the root directory of this source tree. 250 */const DoorOpen=createLucideIcon("DoorOpen",[["path",{d:"M13 4h3a2 2 0 0 1 2 2v14",key:"hrm0s9"}],["path",{d:"M2 20h3",key:"1gaodv"}],["path",{d:"M13 20h9",key:"s90cdi"}],["path",{d:"M10 12v.01",key:"vx6srw"}],["path",{d:"M13 4.562v16.157a1 1 0 0 1-1.242.97L5 20V5.562a2 2 0 0 1 1.515-1.94l4-1A2 2 0 0 1 13 4.561Z",key:"199qr4"}]]);/** 251 * @license lucide-react v0.462.0 - ISC 252 * 253 * This source code is licensed under the ISC license. 254 * See the LICENSE file in the root directory of this source tree. 255 */const Download=createLucideIcon("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** 256 * @license lucide-react v0.462.0 - ISC 257 * 258 * This source code is licensed under the ISC license. 259 * See the LICENSE file in the root directory of this source tree. 260 */const Earth=createLucideIcon("Earth",[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** 261 * @license lucide-react v0.462.0 - ISC 262 * 263 * This source code is licensed under the ISC license. 264 * See the LICENSE file in the root directory of this source tree. 265 */const ExternalLink=createLucideIcon("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** 266 * @license lucide-react v0.462.0 - ISC 267 * 268 * This source code is licensed under the ISC license. 269 * See the LICENSE file in the root directory of this source tree. 270 */const Eye=createLucideIcon("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 271 * @license lucide-react v0.462.0 - ISC 272 * 273 * This source code is licensed under the ISC license. 274 * See the LICENSE file in the root directory of this source tree. 275 */const FileCheck2=createLucideIcon("FileCheck2",[["path",{d:"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4",key:"1pf5j1"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m3 15 2 2 4-4",key:"1lhrkk"}]]);/** 276 * @license lucide-react v0.462.0 - ISC 277 * 278 * This source code is licensed under the ISC license. 279 * See the LICENSE file in the root directory of this source tree. 280 */const FileText=createLucideIcon("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** 281 * @license lucide-react v0.462.0 - ISC 282 * 283 * This source code is licensed under the ISC license. 284 * See the LICENSE file in the root directory of this source tree. 285 */const FileUp=createLucideIcon("FileUp",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]);/** 286 * @license lucide-react v0.462.0 - ISC 287 * 288 * This source code is licensed under the ISC license. 289 * See the LICENSE file in the root directory of this source tree. 290 */const Globe=createLucideIcon("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** 291 * @license lucide-react v0.462.0 - ISC 292 * 293 * This source code is licensed under the ISC license. 294 * See the LICENSE file in the root directory of this source tree. 295 */const GraduationCap=createLucideIcon("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/** 296 * @license lucide-react v0.462.0 - ISC 297 * 298 * This source code is licensed under the ISC license. 299 * See the LICENSE file in the root directory of this source tree. 300 */const Images=createLucideIcon("Images",[["path",{d:"M18 22H4a2 2 0 0 1-2-2V6",key:"pblm9e"}],["path",{d:"m22 13-1.296-1.296a2.41 2.41 0 0 0-3.408 0L11 18",key:"nf6bnh"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["rect",{width:"16",height:"16",x:"6",y:"2",rx:"2",key:"12espp"}]]);/** 301 * @license lucide-react v0.462.0 - ISC 302 * 303 * This source code is licensed under the ISC license. 304 * See the LICENSE file in the root directory of this source tree. 305 */const Info=createLucideIcon("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** 306 * @license lucide-react v0.462.0 - ISC 307 * 308 * This source code is licensed under the ISC license. 309 * See the LICENSE file in the root directory of this source tree. 310 */const KeyRound=createLucideIcon("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** 311 * @license lucide-react v0.462.0 - ISC 312 * 313 * This source code is licensed under the ISC license. 314 * See the LICENSE file in the root directory of this source tree. 315 */const Landmark=createLucideIcon("Landmark",[["line",{x1:"3",x2:"21",y1:"22",y2:"22",key:"j8o0r"}],["line",{x1:"6",x2:"6",y1:"18",y2:"11",key:"10tf0k"}],["line",{x1:"10",x2:"10",y1:"18",y2:"11",key:"54lgf6"}],["line",{x1:"14",x2:"14",y1:"18",y2:"11",key:"380y"}],["line",{x1:"18",x2:"18",y1:"18",y2:"11",key:"1kevvc"}],["polygon",{points:"12 2 20 7 4 7",key:"jkujk7"}]]);/** 316 * @license lucide-react v0.462.0 - ISC 317 * 318 * This source code is licensed under the ISC license. 319 * See the LICENSE file in the root directory of this source tree. 320 */const Lightbulb=createLucideIcon("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/** 321 * @license lucide-react v0.462.0 - ISC 322 * 323 * This source code is licensed under the ISC license. 324 * See the LICENSE file in the root directory of this source tree. 325 */const ListTree=createLucideIcon("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);/** 326 * @license lucide-react v0.462.0 - ISC 327 * 328 * This source code is licensed under the ISC license. 329 * See the LICENSE file in the root directory of this source tree.
330 */const LoaderCircle=createLucideIcon("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/** 331 * @license lucide-react v0.462.0 - ISC 332 * 333 * This source code is licensed under the ISC license. 334 * See the LICENSE file in the root directory of this source tree. 335 */const LockKeyhole=createLucideIcon("LockKeyhole",[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]);/** 336 * @license lucide-react v0.462.0 - ISC 337 * 338 * This source code is licensed under the ISC license. 339 * See the LICENSE file in the root directory of this source tree. 340 */const Mail=createLucideIcon("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/** 341 * @license lucide-react v0.462.0 - ISC 342 * 343 * This source code is licensed under the ISC license. 344 * See the LICENSE file in the root directory of this source tree. 345 */const MapPin=createLucideIcon("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/** 346 * @license lucide-react v0.462.0 - ISC 347 * 348 * This source code is licensed under the ISC license. 349 * See the LICENSE file in the root directory of this source tree. 350 */const MapPinned=createLucideIcon("MapPinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]]);/** 351 * @license lucide-react v0.462.0 - ISC 352 * 353 * This source code is licensed under the ISC license. 354 * See the LICENSE file in the root directory of this source tree. 355 */const Menu=createLucideIcon("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/** 356 * @license lucide-react v0.462.0 - ISC 357 * 358 * This source code is licensed under the ISC license. 359 * See the LICENSE file in the root directory of this source tree. 360 */const MessageSquareText=createLucideIcon("MessageSquareText",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M13 8H7",key:"14i4kc"}],["path",{d:"M17 12H7",key:"16if0g"}]]);/** 361 * @license lucide-react v0.462.0 - ISC 362 * 363 * This source code is licensed under the ISC license. 364 * See the LICENSE file in the root directory of this source tree. 365 */const PenLine=createLucideIcon("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** 366 * @license lucide-react v0.462.0 - ISC 367 * 368 * This source code is licensed under the ISC license. 369 * See the LICENSE file in the root directory of this source tree. 370 */const Plus=createLucideIcon("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** 371 * @license lucide-react v0.462.0 - ISC 372 * 373 * This source code is licensed under the ISC license. 374 * See the LICENSE file in the root directory of this source tree. 375 */const Presentation=createLucideIcon("Presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]);/** 376 * @license lucide-react v0.462.0 - ISC 377 * 378 * This source code is licensed under the ISC license. 379 * See the LICENSE file in the root directory of this source tree. 380 */const Receipt=createLucideIcon("Receipt",[["path",{d:"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z",key:"q3az6g"}],["path",{d:"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8",key:"1h4pet"}],["path",{d:"M12 17.5v-11",key:"1jc1ny"}]]);/** 381 * @license lucide-react v0.462.0 - ISC 382 * 383 * This source code is licensed under the ISC license. 384 * See the LICENSE file in the root directory of this source tree. 385 */const Repeat=createLucideIcon("Repeat",[["path",{d:"m17 2 4 4-4 4",key:"nntrym"}],["path",{d:"M3 11v-1a4 4 0 0 1 4-4h14",key:"84bu3i"}],["path",{d:"m7 22-4-4 4-4",key:"1wqhfi"}],["path",{d:"M21 13v1a4 4 0 0 1-4 4H3",key:"1rx37r"}]]);/** 386 * @license lucide-react v0.462.0 - ISC 387 * 388 * This source code is licensed under the ISC license. 389 * See the LICENSE file in the root directory of this source tree. 390 */const RotateCcw=createLucideIcon("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** 391 * @license lucide-react v0.462.0 - ISC 392 * 393 * This source code is licensed under the ISC license. 394 * See the LICENSE file in the root directory of this source tree. 395 */const Search=createLucideIcon("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** 396 * @license lucide-react v0.462.0 - ISC 397 * 398 * This source code is licensed under the ISC license. 399 * See the LICENSE file in the root directory of this source tree. 400 */const Settings=createLucideIcon("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** 401 * @license lucide-react v0.462.0 - ISC 402 * 403 * This source code is licensed under the ISC license. 404 * See the LICENSE file in the root directory of this source tree. 405 */const ShieldCheck=createLucideIcon("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
405y:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** 406 * @license lucide-react v0.462.0 - ISC 407 * 408 * This source code is licensed under the ISC license. 409 * See the LICENSE file in the root directory of this source tree. 410 */const SlidersHorizontal=createLucideIcon("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]);/** 411 * @license lucide-react v0.462.0 - ISC 412 * 413 * This source code is licensed under the ISC license. 414 * See the LICENSE file in the root directory of this source tree. 415 */const Sparkles=createLucideIcon("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/** 416 * @license lucide-react v0.462.0 - ISC 417 * 418 * This source code is licensed under the ISC license. 419 * See the LICENSE file in the root directory of this source tree. 420 */const Sprout=createLucideIcon("Sprout",[["path",{d:"M7 20h10",key:"e6iznv"}],["path",{d:"M10 20c5.5-2.5.8-6.4 3-10",key:"161w41"}],["path",{d:"M9.5 9.4c1.1.8 1.8 2.2 2.3 3.7-2 .4-3.5.4-4.8-.3-1.2-.6-2.3-1.9-3-4.2 2.8-.5 4.4 0 5.5.8z",key:"9gtqwd"}],["path",{d:"M14.1 6a7 7 0 0 0-1.1 4c1.9-.1 3.3-.6 4.3-1.4 1-1 1.6-2.3 1.7-4.6-2.7.1-4 1-4.9 2z",key:"bkxnd2"}]]);/** 421 * @license lucide-react v0.462.0 - ISC 422 * 423 * This source code is licensed under the ISC license. 424 * See the LICENSE file in the root directory of this source tree. 425 */const Star=createLucideIcon("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** 426 * @license lucide-react v0.462.0 - ISC 427 * 428 * This source code is licensed under the ISC license. 429 * See the LICENSE file in the root directory of this source tree. 430 */const TrainFront=createLucideIcon("TrainFront",[["path",{d:"M8 3.1V7a4 4 0 0 0 8 0V3.1",key:"1v71zp"}],["path",{d:"m9 15-1-1",key:"1yrq24"}],["path",{d:"m15 15 1-1",key:"1t0d6s"}],["path",{d:"M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z",key:"1p0hjs"}],["path",{d:"m8 19-2 3",key:"13i0xs"}],["path",{d:"m16 19 2 3",key:"xo31yx"}]]);/** 431 * @license lucide-react v0.462.0 - ISC 432 * 433 * This source code is licensed under the ISC license. 434 * See the LICENSE file in the root directory of this source tree. 435 */const Trash2=createLucideIcon("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** 436 * @license lucide-react v0.462.0 - ISC 437 * 438 * This source code is licensed under the ISC license. 439 * See the LICENSE file in the root directory of this source tree. 440 */const Upload=createLucideIcon("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/** 441 * @license lucide-react v0.462.0 - ISC 442 * 443 * This source code is licensed under the ISC license. 444 * See the LICENSE file in the root directory of this source tree. 445 */const UserRound=createLucideIcon("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}
445],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);/** 446 * @license lucide-react v0.462.0 - ISC 447 * 448 * This source code is licensed under the ISC license. 449 * See the LICENSE file in the root directory of this source tree. 450 */const Users=createLucideIcon("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** 451 * @license lucide-react v0.462.0 - ISC 452 * 453 * This source code is licensed under the ISC license. 454 * See the LICENSE file in the root directory of this source tree. 455 */const Video=createLucideIcon("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);/** 456 * @license lucide-react v0.462.0 - ISC 457 * 458 * This source code is licensed under the ISC license. 459 * See the LICENSE file in the root directory of this source tree. 460 */const X$1=createLucideIcon("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/** 461 * @license lucide-react v0.462.0 - ISC 462 * 463 * This source code is licensed under the ISC license. 464 * See the LICENSE file in the root directory of this source tree. 465 */const Zap=createLucideIcon("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),PulseBackButton=()=>{const e=useNavigate(),s=()=>{if(window.history.length>1){e(-1);return}e(pulsePath())};return jsxRuntimeExports.jsxs("button",{type:"button",onClick:s,className:"mb-6 inline-flex items-center gap-2 text-sm text-ink/60 transition-colors hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Back"]})},PulseFormHeader=({children:e,eyebrow:s="2026 Torino Academy",submitted:a=!1,title:c})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("header",{className:"mb-8 border-b border-border pb-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:s}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl font-light sm:text-4xl",children:c})]}),a&&jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2 text-xs uppercase tracking-[0.14em] text-emerald-800",children:[jsxRuntimeExports.jsx(Check,{className:"h-4 w-4"}),"Submitted"]})]}),e]})]}),messageToneClass={error:"border-rose-300 bg-rose-50 text-rose-900",success:"border-emerald-300 bg-emerald-50 text-emerald-950",warning:"border-amber-300 bg-amber-50 text-amber-900",neutral:"border-border bg-canvas-soft text-ink/75"},PulseFormMessage=({children:e,className:s,tone:a="neutral"})=>jsxRuntimeExports.jsx("div",{className:cn("border p-4 text-sm",messageToneClass[a],s),children:e}),PulseFormQuestion=({children:e,number:s,prompt:a})=>jsxRuntimeExports.jsxs("section",{className:"border-b border-ink/20 py-7",children:[jsxRuntimeExports.jsxs("div",{className:s?"mb-4 grid grid-cols-[24px_1fr] gap-4":"mb-4",children:[s&&jsxRuntimeExports.jsx("span",{className:"pt-0.5 text-sm font-semibold text-ink/60",children:s}),jsxRuntimeExports.jsx("h2",{className:"text-sm font-semibold leading-6 text-ink",children:a})]}),jsxRuntimeExports.jsx("div",{className:s?"pl-10":"",children:e})]}),PulseChoiceGroup=({className:e,columns:s=3,onChange:a,options:c,value:g})=>jsxRuntimeExports.jsx("div",{className:cn("grid gap-2",s===2?"sm:grid-cols-2":"sm:grid-cols-3",e),children:c.map(et=>{const rt=g===et.value;return jsxRuntimeExports.jsx("button",{type:"button","aria-pressed":rt,onClick:()=>a(et.value),className:cn("min-h-12 border px-3 py-2 text-left text-sm leading-5 transition-colors",rt?"border-ink bg-ink text-canvas":"border-ink/30 bg-canvas text-ink/80 hover:border-ink/60"),children:et.label},et.value)})}),PulseSliderScale=({ariaLabel:e,labels:s,onChange:a,position:c})=>{const g=Math.ceil(s.length/2),et=c===null?0:(c-1)/(s.length-1)*100,rt=nt=>{if(c!==null)return;const st=nt.currentTarget.getBoundingClientRect(),at=10,it=Math.max(st.width-at*2,1),ot=Math.min(Math.max(nt.clientX-st.left-at,0),it);a(Math.round(ot/it*(s.length-1))+1)};return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"relative h-8",children:[jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"absolute inset-x-[10px] top-1/2 h-1.5 -translate-y-1/2 bg-ink/45"}),jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:cn("absolute left-[10px] top-1/2 h-1.5 -translate-y-1/2 bg-ink transition-[width,opacity]",c===null?"opacity-0":"opacity-100"),style:{width:`calc((100% - 20px) * ${et/100})`}}),jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"absolute inset-x-[10px] top-1/2 flex -translate-y-1/2 justify-between",children:s.map((nt,st)=>jsxRuntimeExports.jsx("span",{className:cn("h-2 w-2 rounded-full",c!==null&&st+1<=c?"bg-ink":"bg-ink/55")},nt))}),jsxRuntimeExports.jsx("input",{type:"range",min:1,max:s.length,step:1,value:c??g,"aria-label":e,"aria-valuetext":c===null?"No response selected":s[c-1],"data-empty":c===null?"true":"false",onPointerDown:rt,onCh
465ange:nt=>a(Number(nt.target.value)),className:"academy-range absolute inset-0 z-10 h-8 w-full"})]}),jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"mt-1 grid min-h-12 sm:hidden",style:{gridTemplateColumns:`repeat(${s.length}, minmax(0, 1fr))`},children:s.map((nt,st)=>jsxRuntimeExports.jsx("span",{className:cn("px-1 text-center text-[10px] leading-4",c===st+1?"font-semibold text-ink":"text-ink/75"),children:nt},nt))}),jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"relative mt-1 hidden min-h-12 sm:block",children:s.map((nt,st)=>{const at=st/(s.length-1),it=at*100,ot=10-at*20;return jsxRuntimeExports.jsx("span",{className:cn("absolute top-0 text-[11px] leading-4",st===0?"w-[15%] text-left":st===s.length-1?"w-[15%] -translate-x-full text-right":"w-[17%] -translate-x-1/2 text-center",c===st+1?"font-semibold text-ink":"text-ink/75"),style:{left:`calc(${it}% + ${ot}px)`},children:nt},nt)})})]})},PulseRatingScale=({ariaLabel:e,labels:s,onChange:a,value:c})=>jsxRuntimeExports.jsxs("div",{className:"py-1",children:[jsxRuntimeExports.jsx("div",{className:"mb-4 flex min-h-5 items-center justify-end",children:jsxRuntimeExports.jsx("span",{className:cn("text-xs",c===null?"text-ink/70":"font-semibold text-ink"),children:c===null?"Choose a rating":s[c-1]})}),jsxRuntimeExports.jsx(PulseSliderScale,{position:c,onChange:a,labels:s,ariaLabel:e})]});function setRef(e,s){if(typeof e=="function")return e(s);e!=null&&(e.current=s)}function composeRefs(...e){return s=>{let a=!1;const c=e.map(g=>{const et=setRef(g,s);return!a&&typeof et=="function"&&(a=!0),et});if(a)return()=>{for(let g=0;g<c.length;g++){const et=c[g];typeof et=="function"?et():setRef(e[g],null)}}}}function useComposedRefs(...e){return reactExports.useCallback(composeRefs(...e),e)}function createSlot(e){const s=createSlotClone(e),a=reactExports.forwardRef((c,g)=>{const{children:et,...rt}=c,nt=reactExports.Children.toArray(et),st=nt.find(isSlottable);if(st){const at=st.props.children,it=nt.map(ot=>ot===st?reactExports.Children.count(at)>1?reactExports.Children.only(null):reactExports.isValidElement(at)?at.props.children:null:ot);return jsxRuntimeExports.jsx(s,{...rt,ref:g,children:reactExports.isValidElement(at)?reactExports.cloneElement(at,void 0,it):null})}return jsxRuntimeExports.jsx(s,{...rt,ref:g,children:et})});return a.displayName=`${e}.Slot`,a}var Slot$2=createSlot("Slot");function createSlotClone(e){const s=reactExports.forwardRef((a,c)=>{const{children:g,...et}=a;if(reactExports.isValidElement(g)){const rt=getElementRef$1(g),nt=mergeProps(et,g.props);return g.type!==reactExports.Fragment&&(nt.ref=c?composeRefs(c,rt):rt),reactExports.cloneElement(g,nt)}return reactExports.Children.count(g)>1?reactExports.Children.only(null):null});return s.displayName=`${e}.SlotClone`,s}var SLOTTABLE_IDENTIFIER=Symbol("radix.slottable");function createSlottable(e){const s=({children:a})=>jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:a});return s.displayName=`${e}.Slottable`,s.__radixId=SLOTTABLE_IDENTIFIER,s}function isSlottable(e){return reactExports.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===SLOTTABLE_IDENTIFIER}function mergeProps(e,s){const a={...s};for(const c in s){const g=e[c],et=s[c];/^on[A-Z]/.test(c)?g&&et?a[c]=(...nt)=>{const st=et(...nt);return g(...nt),st}:g&&(a[c]=g):c==="style"?a[c]={...g,...et}:c==="className"&&(a[c]=[g,et].filter(Boolean).join(" "))}return{...e,...a}}function getElementRef$1(e){var c,g;let s=(c=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:c.get,a=s&&"isReactWarning"in s&&s.isReactWarning;return a?e.ref:(s=(g=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:g.get,a=s&&"isReactWarning"in s&&s.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}const falsyToString=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,cx=clsx,cva=(e,s)=>a=>{var c;if((s==null?void 0:s.variants)==null)return cx(e,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:g,defaultVariants:et}=s,rt=Object.keys(g).map(at=>{const it=a==null?void 0:a[at],ot=et==null?void 0:et[at];if(it===null)return null;const lt=falsyToString(it)||falsyToString(ot);return g[at][lt]}),nt=a&&Object.entries(a).reduce((at,it)=>{let[ot,lt]=it;return lt===void 0||(at[ot]=lt),at},{}),st=s==null||(c=s.compoundVariants)===null||c===void 0?void 0:c.reduce((at,it)=>{let{class:ot,className:lt,...ct}=it;return Object.entries(ct).every(dt=>{let[ut,xt]=dt;return Array.isArray(xt)?xt.includes({...et,...nt}[ut]):{...et,...nt}[ut]===xt})?[...at,ot,lt]:at},[]);return cx(e,rt,st,a==null?void 0:a.class,a==null?void 0:a.className)},buttonVariants=cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-[13px] font-medium tracking-[0.14em] uppercase ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-3.5 [&_svg]:shrink-0",{variants:{variant:{default:"bg-ink text-primary-foreground hover:bg-primary-dark shadow-card",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-ink/30 bg-transparent text-ink hover:bg-ink hover:text-primary-foreground",secondary:"bg-canvas-soft text-ink border border-border hover:bg-canvas-deep",ghost:"hover:bg-canvas-soft text-ink",link:"text-ink underline-offset-4 hover:underline tracking-normal normal-case text-sm"},size:{default:"h-10 px-6",sm:"h-9 px-5 text-[11px]",lg:"h-12 px-8 text-sm",icon:"h-10 w-10 p-0"}},defaultVariants:{variant:"default",size:"default"}}),Button=reactExports.forwardRef(({className:e,variant:s,size:a,asChild:c=!1,...g},et)=>{const rt=c?Slot$2:"button";return jsxRuntimeExports.jsx(rt,{className:cn(buttonVariants({variant:s,size:a,className:e})),ref:et,...g})});Button.displayName="Button";const Input=reactExports.forwardRef(({className:e,type:s,...a},c)=>jsxRuntimeExports.jsx("input",{type:s,className:cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:c,...a}));Input.displayName="Input";const Textarea=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx("textarea",{className:cn("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm r
465ing-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:a,...s}));Textarea.displayName="Textarea";const statuses$1=["submitted","reviewing","approved","paid"],statusLabel=e=>e.charAt(0).toUpperCase()+e.slice(1),BUCKET="team-reimbursement-receipts",money=e=>new Intl.NumberFormat("en",{style:"currency",currency:"EUR"}).format(e);function PulseTeamReimbursement(){return jsxRuntimeExports.jsx(RequireTeamMember,{children:jsxRuntimeExports.jsx(TeamReimbursement,{})})}function TeamReimbursement(){const[e,s]=reactExports.useState([]),[a,c]=reactExports.useState([]),[g,et]=reactExports.useState([]),[rt,nt]=reactExports.useState(null),st=reactExports.useRef(!1),[at,it]=reactExports.useState({}),[ot,lt]=reactExports.useState(""),[ct,dt]=reactExports.useState(!1),[ut,xt]=reactExports.useState(!0),[gt,ht]=reactExports.useState(!1),mt=reactExports.useRef(!1),kt=reactExports.useRef(null),[Ct,Tt]=reactExports.useState(""),[Pt,At]=reactExports.useState(""),[Gt,Mt]=reactExports.useState(""),[zt,Jt]=reactExports.useState([]),[nr,er]=reactExports.useState(""),[ur,qt]=reactExports.useState(!1);async function or(){if(!supabase)throw new Error("Reimbursements are unavailable.");const{data:Zt,error:It}=await supabase.from("team_reimbursement_requests").select("*").order("submitted_at",{ascending:!1});if(It)throw new Error(It.message);const Bt=Zt??[],{data:rr,error:lr}=Bt.length?await supabase.from("team_reimbursement_receipts").select("id,request_id,object_path,file_name").in("request_id",Bt.map(sr=>sr.id)):{data:[],error:null};if(lr)throw new Error(lr.message);const{data:pr,error:tr}=Bt.length?await supabase.from("people").select("id,full_name").in("id",[...new Set(Bt.map(sr=>sr.person_id))]):{data:[],error:null};if(tr)throw new Error(tr.message);const{data:hr,error:Vt}=Bt.length?await supabase.from("team_reimbursement_status_history").select("*").in("request_id",Bt.map(sr=>sr.id)).order("changed_at",{ascending:!0}):{data:[],error:null};if(Vt)throw new Error(Vt.message);et(hr??[]),it(Object.fromEntries((pr??[]).map(sr=>[sr.id,sr.full_name]))),s(Bt),c(rr??[])}reactExports.useEffect(()=>{(async()=>{try{if(!supabase)throw new Error("Reimbursements are unavailable.");const{data:Zt}=await supabase.auth.getSession();if(!Zt.session)throw new Error("Please sign in again.");const{data:It,error:Bt}=await supabase.from("pulse_profiles").select("person_id").eq("user_id",Zt.session.user.id).single();if(Bt)throw new Error(Bt.message);const{data:rr,error:lr}=await supabase.rpc("is_pulse_admin");if(lr)throw new Error(lr.message);await or(),lt(It.person_id),dt(!!rr)}catch(Zt){er(Zt instanceof Error?Zt.message:"Could not load requests.")}finally{xt(!1)}})()},[]);async function Dt(Zt){if(Zt.preventDefault(),!supabase||!ot||mt.current)return;qt(!1);const It=Number(Pt);if(!Number.isFinite(It)||It<=0||It>1e6||Ct.trim().length<5||Gt.trim().length<5||zt.length<1||zt.length>10){er("Enter a description, valid EUR amount, bank details, and 1â10 receipts.");return}if(zt.some(pr=>!["application/pdf","image/jpeg","image/png"].includes(pr.type)||pr.size<=0||pr.size>20*1024*1024||pr.name.length>255)){er("Receipts must be PDF, JPG, or PNG files, up to 20 MB each, with filenames up to 255 characters.");return}mt.current=!0,ht(!0),er("");const Bt=crypto.randomUUID(),rr=[];let lr=!1;try{const pr=[];for(const hr of zt){const Vt=`${ot}/${Bt}/${crypto.randomUUID()}`,{error:sr}=await supabase.storage.from(BUCKET).upload(Vt,hr,{contentType:hr.type,upsert:!1});if(sr)throw new Error(sr.message);rr.push(Vt),pr.push({object_path:Vt,file_name:hr.name,mime_type:hr.type,size_bytes:hr.size})}const{error:tr}=await supabase.rpc("submit_team_reimbursement",{p_request_id:Bt,p_description:Ct.trim(),p_amount:It,p_bank_account_details:Gt.trim(),p_receipts:pr});if(tr)throw new Error(tr.message);lr=!0,Tt(""),At(""),Mt(""),Jt([]),kt.current&&(kt.current.value=""),qt(!0),er("Your reimbursement request has been submitted."),await or()}catch(pr){!lr&&rr.length&&await supabase.storage.from(BUCKET).remove(rr),qt(lr),er(lr?"Your request was submitted, but the list could not refresh. Reload to see it.":pr instanceof Error?pr.message:"Could not submit request.")}finally{mt.current=!1,ht(!1)}}async function Ht(Zt,It){if(!supabase||!ct||st.current)return;st.current=!0,nt(Zt),qt(!1),er("");let Bt=!1;try{const{data:rr,error:lr}=await supabase.from("team_reimbursement_requests").update({status:It}).eq("id",Zt).select("id").single();if(lr||!rr)throw new Error((lr==null?void 0:lr.message)??"Could not update status.");Bt=!0,await or(),qt(!0),er("Request status updated.")}catch(rr){qt(Bt),er(Bt?"Status saved. Reload to refresh the history.":rr instanceof Error?rr.message:"Could not update status.")}finally{st.current=!1,nt(null)}}async function Xt(Zt){if(!supabase)return;const{data:It,error:Bt}=await supabase.storage.from(BUCKET).createSignedUrl(Zt.object_path,600);if(Bt){qt(!1),er(Bt.message);return}const rr=document.createElement("a");rr.href=It.signedUrl,rr.target="_blank",rr.rel="noopener noreferrer",rr.click()}return jsxRuntimeExports.jsxs(PulsePage,{maxWidth:"4xl",children:[jsxRuntimeExports.jsxs(PulseFormHeader,{title:"Submit reimbursement",eyebrow:"EAF team",children:[jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm text-ink/60",children:"Request reimbursement for EAF expenses at any time. Include only expenses you have not already submitted."}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-ink/50",children:"Your requests, bank details, and receipts are visible only to you and EAF administrators."})]}),nr&&jsxRuntimeExports.jsx(PulseFormMessage,{className:"mb-6",tone:ur?"success":"error",children:nr}),ut?jsxRuntimeExports.jsx("p",{children:"Loading requestsâ¦"}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("form",{onSubmit:Dt,children:jsxRuntimeExports.jsxs("fieldset",{disabled:gt||!ot,className:"space-y-5 disabled:opacity-60",children:[jsxRuntimeExports.jsxs("label",{className:"block text-sm font-medium",children:["What was the expense for?",jsxRuntimeExports.jsx(Textarea,{className:"mt-2",value:Ct,onChange:Zt=>Tt(Zt.target.value),minLength:5,maxLength:2e3,required:!0,placeholder:"Describe the purchase or activity"})]}),jsxRuntimeExports.jsxs("label",{className:"block text-sm font-medium",children:["Amount in EUR",jsxRuntimeExports.jsx(Input,{className:"mt-2 max-w-xs",type:"number",min:"0.01",max:"1000000",step:"0.01",value:Pt,onCh
465ange:Zt=>At(Zt.target.value),required:!0})]}),jsxRuntimeExports.jsxs("label",{className:"block text-sm font-medium",children:["Bank account details",jsxRuntimeExports.jsx(Textarea,{className:"mt-2",value:Gt,onChange:Zt=>Mt(Zt.target.value),minLength:5,maxLength:2e3,required:!0,placeholder:"Account holder, IBAN, and BIC / SWIFT"})]}),jsxRuntimeExports.jsxs("label",{className:"block text-sm font-medium",children:["Receipts",jsxRuntimeExports.jsx(Input,{ref:kt,className:"mt-2",type:"file",multiple:!0,accept:"application/pdf,image/jpeg,image/png",onChange:Zt=>Jt(Array.from(Zt.target.files??[])),required:!0}),jsxRuntimeExports.jsx("span",{className:"mt-2 block text-xs font-normal text-ink/50",children:"1â10 PDF, JPG, or PNG files; up to 20 MB each."})]}),jsxRuntimeExports.jsx(Button,{type:"submit",children:gt?"Submittingâ¦":"Submit reimbursement"})]})}),jsxRuntimeExports.jsxs("section",{className:"mt-10 space-y-4 border-t border-border pt-6",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:ct?"Team reimbursement requests":"Your requests"}),!e.length&&jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/50",children:"No requests yet."}),e.map(Zt=>jsxRuntimeExports.jsxs("article",{className:"border border-border p-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap justify-between gap-2",children:[jsxRuntimeExports.jsx("h3",{className:"font-medium",children:Zt.description}),jsxRuntimeExports.jsx("strong",{children:money(Zt.amount)})]}),jsxRuntimeExports.jsxs("p",{className:"mt-2 text-sm text-ink/60",children:[ct&&`${at[Zt.person_id]??"Team member"} · `,new Date(Zt.submitted_at).toLocaleDateString()," · ",statusLabel(Zt.status)]}),ct&&jsxRuntimeExports.jsxs("label",{className:"mt-3 block text-sm",children:["Status",jsxRuntimeExports.jsx("select",{"aria-label":`Status for ${Zt.description}`,className:"ml-3 rounded border border-border bg-canvas p-2",value:Zt.status,disabled:rt!==null,onChange:It=>void Ht(Zt.id,It.target.value),children:statuses$1.map(It=>jsxRuntimeExports.jsx("option",{value:It,children:statusLabel(It)},It))}),rt===Zt.id&&jsxRuntimeExports.jsx("span",{className:"ml-2",children:"Savingâ¦"})]}),jsxRuntimeExports.jsxs("details",{className:"mt-3 text-sm",children:[jsxRuntimeExports.jsx("summary",{className:"cursor-pointer",children:"Status history"}),jsxRuntimeExports.jsx("ol",{className:"mt-2 space-y-1 text-ink/60",children:g.filter(It=>It.request_id===Zt.id).map(It=>jsxRuntimeExports.jsxs("li",{children:[statusLabel(It.status)," · ",new Date(It.changed_at).toLocaleString()]},It.id))})]}),jsxRuntimeExports.jsx("p",{className:"mt-2 whitespace-pre-line text-sm text-ink/60",children:Zt.bank_account_details}),jsxRuntimeExports.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:a.filter(It=>It.request_id===Zt.id).map(It=>jsxRuntimeExports.jsx(Button,{variant:"outline",size:"sm",onClick:()=>void Xt(It),children:It.file_name},It.id))})]},Zt.id))]})]})]})}const TOAST_LIMIT=1,TOAST_REMOVE_DELAY=1e6;let count$2=0;function genId(){return count$2=(count$2+1)%Number.MAX_SAFE_INTEGER,count$2.toString()}const toastTimeouts=new Map,addToRemoveQueue=e=>{if(toastTimeouts.has(e))return;const s=setTimeout(()=>{toastTimeouts.delete(e),dispatch({type:"REMOVE_TOAST",toastId:e})},TOAST_REMOVE_DELAY);toastTimeouts.set(e,s)},reducer=(e,s)=>{switch(s.type){case"ADD_TOAST":return{...e,toasts:[s.toast,...e.toasts].slice(0,TOAST_LIMIT)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(a=>a.id===s.toast.id?{...a,...s.toast}:a)};case"DISMISS_TOAST":{const{toastId:a}=s;return a?addToRemoveQueue(a):e.toasts.forEach(c=>{addToRemoveQueue(c.id)}),{...e,toasts:e.toasts.map(c=>c.id===a||a===void 0?{...c,open:!1}:c)}}case"REMOVE_TOAST":return s.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==s.toastId)}}},listeners=[];let memoryState={toasts:[]};function dispatch(e){memoryState=reducer(memoryState,e),listeners.forEach(s=>{s(memoryState)})}function toast({...e}){const s=genId(),a=g=>dispatch({type:"UPDATE_TOAST",toast:{...g,id:s}}),c=()=>dispatch({type:"DISMISS_TOAST",toastId:s}
vendor: 9,649 bytes, line 465
465);return dispatch({type:"ADD_TOAST",toast:{...e,id:s,open:!0,onOpenChange:g=>{g||c()}}}),{id:s,dismiss:c,update:a}}function useToast(){const[e,s]=reactExports.useState(memoryState);return reactExports.useEffect(()=>(listeners.push(s),()=>{const a=listeners.indexOf(s);a>-1&&listeners.splice(a,1)}),[e]),{...e,toast,dismiss:a=>dispatch({type:"DISMISS_TOAST",toastId:a})}}function composeEventHandlers(e,s,{checkForDefaultPrevented:a=!0}={}){return function(g){if(e==null||e(g),a===!1||!g.defaultPrevented)return s==null?void 0:s(g)}}function createContext2(e,s){const a=reactExports.createContext(s),c=et=>{const{children:rt,...nt}=et,st=reactExports.useMemo(()=>nt,Object.values(nt));return jsxRuntimeExports.jsx(a.Provider,{value:st,children:rt})};c.displayName=e+"Provider";function g(et){const rt=reactExports.useContext(a);if(rt)return rt;if(s!==void 0)return s;throw new Error(`\`${et}\` must be used within \`${e}\``)}return[c,g]}function createContextScope(e,s=[]){let a=[];function c(et,rt){const nt=reactExports.createContext(rt),st=a.length;a=[...a,rt];const at=ot=>{var gt;const{scope:lt,children:ct,...dt}=ot,ut=((gt=lt==null?void 0:lt[e])==null?void 0:gt[st])||nt,xt=reactExports.useMemo(()=>dt,Object.values(dt));return jsxRuntimeExports.jsx(ut.Provider,{value:xt,children:ct})};at.displayName=et+"Provider";function it(ot,lt){var ut;const ct=((ut=lt==null?void 0:lt[e])==null?void 0:ut[st])||nt,dt=reactExports.useContext(ct);if(dt)return dt;if(rt!==void 0)return rt;throw new Error(`\`${ot}\` must be used within \`${et}\``)}return[at,it]}const g=()=>{const et=a.map(rt=>reactExports.createContext(rt));return function(nt){const st=(nt==null?void 0:nt[e])||et;return reactExports.useMemo(()=>({[`__scope${e}`]:{...nt,[e]:st}}),[nt,st])}};return g.scopeName=e,[c,composeContextScopes(g,...s)]}function composeContextScopes(...e){const s=e[0];if(e.length===1)return s;const a=()=>{const c=e.map(g=>({useScope:g(),scopeName:g.scopeName}));return function(et){const rt=c.reduce((nt,{useScope:st,scopeName:at})=>{const ot=st(et)[`__scope${at}`];return{...nt,...ot}},{});return reactExports.useMemo(()=>({[`__scope${s.scopeName}`]:rt}),[rt])}};return a.scopeName=s.scopeName,a}function createCollection(e){const s=e+"CollectionProvider",[a,c]=createContextScope(s),[g,et]=a(s,{collectionRef:{current:null},itemMap:new Map}),rt=ut=>{const{scope:xt,children:gt}=ut,ht=o.useRef(null),mt=o.useRef(new Map).current;return jsxRuntimeExports.jsx(g,{scope:xt,itemMap:mt,collectionRef:ht,children:gt})};rt.displayName=s;const nt=e+"CollectionSlot",st=createSlot(nt),at=o.forwardRef((ut,xt)=>{const{scope:gt,children:ht}=ut,mt=et(nt,gt),kt=useComposedRefs(xt,mt.collectionRef);return jsxRuntimeExports.jsx(st,{ref:kt,children:ht})});at.displayName=nt;const it=e+"CollectionItemSlot",ot="data-radix-collection-item",lt=createSlot(it),ct=o.forwardRef((ut,xt)=>{const{scope:gt,children:ht,...mt}=ut,kt=o.useRef(null),Ct=useComposedRefs(xt,kt),Tt=et(it,gt);return o.useEffect(()=>(Tt.itemMap.set(kt,{ref:kt,...mt}),()=>void Tt.itemMap.delete(kt))),jsxRuntimeExports.jsx(lt,{[ot]:"",ref:Ct,children:ht})});ct.displayName=it;function dt(ut){const xt=et(e+"CollectionConsumer",ut);return o.useCallback(()=>{const ht=xt.collectionRef.current;if(!ht)return[];const mt=Array.from(ht.querySelectorAll(`[${ot}]`));return Array.from(xt.itemMap.values()).sort((Tt,Pt)=>mt.indexOf(Tt.ref.current)-mt.indexOf(Pt.ref.current))},[xt.collectionRef,xt.itemMap])}return[{Provider:rt,Slot:at,ItemSlot:ct},dt,c]}var NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Primitive=NODES.reduce((e,s)=>{const a=createSlot(`Primitive.${s}`),c=reactExports.forwardRef((g,et)=>{const{asChild:rt,...nt}=g,st=rt?a:s;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),jsxRuntimeExports.jsx(st,{...nt,ref:et})});return c.displayName=`Primitive.${s}`,{...e,[s]:c}},{});function dispatchDiscreteCustomEvent(e,s){e&&reactDomExports.flushSync(()=>e.dispatchEvent(s))}function useCallbackRef$1(e){const s=reactExports.useRef(e);return reactExports.useEffect(()=>{s.current=e}),reactExports.useMemo(()=>(...a)=>{var c;return(c=s.current)==null?void 0:c.call(s,...a)},[])}function useEscapeKeydown(e,s=globalThis==null?void 0:globalThis.document){const a=useCallbackRef$1(e);reactExports.useEffect(()=>{const c=g=>{g.key==="Escape"&&a(g)};return s.addEventListener("keydown",c,{capture:!0}),()=>s.removeEventListener("keydown",c,{capture:!0})},[a,s])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),DismissableLayer=reactExports.forwardRef((e,s)=>{const{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:c,onPointerDownOutside:g,onFocusOutside:et,onInteractOutside:rt,onDismiss:nt,...st}=e,at=reactExports.useContext(DismissableLayerContext),[it,ot]=reactExports.useState(null),lt=(it==null?void 0:it.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,ct]=reactExports.useState({}),dt=useComposedRefs(s,Pt=>ot(Pt)),ut=Array.from(at.layers),[xt]=[...at.layersWithOutsidePointerEventsDisabled].slice(-1),gt=ut.indexOf(xt),ht=it?ut.indexOf(it):-1,mt=at.layersWithOutsidePointerEventsDisabled.size>0,kt=ht>=gt,Ct=usePointerDownOutside(Pt=>{const At=Pt.target,Gt=[...at.branches].some(Mt=>Mt.contains(At));!kt||Gt||(g==null||g(Pt),rt==null||rt(Pt),Pt.defaultPrevented||nt==null||nt())},lt),Tt=useFocusOutside(Pt=>{const At=Pt.target;[...at.branches].some(Mt=>Mt.contains(At))||(et==null||et(Pt),rt==null||rt(Pt),Pt.defaultPrevented||nt==null||nt())},lt);return useEscapeKeydown(Pt=>{ht===at.layers.size-1&&(c==null||c(Pt),!Pt.defaultPrevented&&nt&&(Pt.preventDefault(),nt()))},lt),reactExports.useEffect(()=>{if(it)return a&&(at.layersWithOutsidePointerEventsDisabled.size===0&&(originalBodyPointerEvents=lt.body.style.pointerEvents,lt.body.style.pointerEvents="none"),at.layersWithOutsidePointerEventsDisabled.add(it)),at.layers.add(it),dispatchUpdate(),()=>{a&&at.layersWithOutsidePointerEventsDisabled.size===1&&(lt.body.style.pointerEvents=originalBodyPointerEvents)}},[it,lt,a,at]),reactExports.useEffect(()=>()=>{it&&(at.layers.delete(it),at.layersWithOutsidePointerEventsDisabled.delete(it),dispatchUpdate())},[it,at]),reactExports.useEffect(()=>{const Pt=()=>ct({});return document.addEventListener(CONTEXT_UPDATE,Pt),()=>document.removeEventListener(CONTEXT_UPDATE,Pt)},[]),jsxRuntimeExports.jsx(Primitive.div,{...st,ref:dt,style:{pointerEvents:mt?kt?"auto":"none":void 0,...e.style},onFocusCapture:composeEventHandlers(e.onFocusCapture,Tt.onFocusCapture),onBlurCapture:composeEventHandlers(e.onBlurCapture,Tt.onBlurCapture),onPointerDownCapture:composeEventHandlers(e.onPointerDownCapture,Ct.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=reactExports.forwardRef((e,s)=>{const a=reactExports.useContext(DismissableLayerContext),c=reactExports.useRef(null),g=useComposedRefs(s,c);return reactExports.useEffect(()=>{const et=c.current;if(et)return a.branches.add(et),()=>{a.branches.delete(et)}},[a.branches]),jsxRuntimeExports.jsx(Primitive.div,{...e,ref:g})});DismissableLayerBranch.displayName=BRANCH_NAME;function usePointerDownOutside(e,s=globalThis==null?void 0:globalThis.document){const a=useCallbackRef$1(e),c=reactExports.useRef(!1),g=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{const et=nt=>{if(nt.target&&!c.current){let st=function(){handleAndDispatchCustomEvent$1(POINTER_DOWN_OUTSIDE,a,at,{discrete:!0})};const at={originalEvent:nt};nt.pointerType==="touch"?(s.removeEventListener("click",g.current),g.current=st,s.addEventListener("click",g.current,{once:!0})):st()}else s.removeEventListener("click",g.current);c.current=!1},rt=window.setTimeout(()=>{s.addEventListener("pointerdown",et)},0);return()=>{window.clearTimeout(rt),s.removeEventListener("pointerdown",et),s.removeEventListener("click",g.current)}},[s,a]),{onPointerDownCapture:()=>c.current=!0}}function useFocusOutside(e,s=globalThis==null?void 0:globalThis.document){const a=useCallbackRef$1(e),c=reactExports.useRef(!1);return reactExports.useEffect(()=>{const g=et=>{et.target&&!c.current&&handleAndDispatchCustomEvent$1(FOCUS_OUTSIDE,a,{originalEvent:et},{discrete:!1})};return s.addEventListener("focusin",g),()=>s.removeEventListener("focusin",g)},[s,a]),{onFocusCapture:()=>c.current=!0,onBlurCapture:()=>c.current=!1}}function dispatchUpdate(){const e=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(e)}function handleAndDispatchCustomEvent$1(e,s,a,{discrete:c}){const g=a.originalEvent.target,et=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});s&&g.addEventListener(e,s,{once:!0}),c?dispatchDiscreteCustomEvent(g,et):g.dispatchEvent(et)}var Root$5=DismissableLayer,Branch=DismissableLayerBranch,useLayoutEffect2=globalThis!=null&&globalThis.document?reactExports.useLayoutEffect:()=>{},PORTAL_NAME$3="Portal",Portal$2=reactExports.forwardRef((e,s)=>{var nt;const{container:a,...c}=e,[g,et]=reactExports.useState(!1);useLayoutEffect2(()=>et(!0),[]);const rt=a||g&&((nt=globalThis==null?void 0:globalThis.document)==null?void 0:nt.body);return rt?vt.createPortal(jsxRuntimeExports.jsx(Primitive.div,{...c,ref:s}),rt):null});Portal$2.displayName=PORTAL_NAME$3;function useStateMachine(e,s){return reactExports.useReducer((a,c)=>s[a][c]??a,e)}var Presence=e=>{const{present:s,children:a}
465=e,c=usePresence(s),g=typeof a=="function"?a({present:c.isPresent}):reactExports.Children.only(a),et=useComposedRefs(c.ref,getElementRef(g));return typeof a=="function"||c.isPresent?reactExports.cloneElement(g,{ref:et}):null};Presence.displayName="Presence";function usePresence(e){const[s,a]=reactExports.useState(),c=reactExports.useRef(null),g=reactExports.useRef(e),et=reactExports.useRef("none"),rt=e?"mounted":"unmounted",[nt,st]=useStateMachine(rt,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return reactExports.useEffect(()=>{const at=getAnimationName(c.current);et.current=nt==="mounted"?at:"none"},[nt]),useLayoutEffect2(()=>{const at=c.current,it=g.current;if(it!==e){const lt=et.current,ct=getAnimationName(at);e?st("MOUNT"):ct==="none"||(at==null?void 0:at.display)==="none"?st("UNMOUNT"):st(it&<!==ct?"ANIMATION_OUT":"UNMOUNT"),g.current=e}},[e,st]),useLayoutEffect2(()=>{if(s){let at;const it=s.ownerDocument.defaultView??window,ot=ct=>{const ut=getAnimationName(c.current).includes(ct.animationName);if(ct.target===s&&ut&&(st("ANIMATION_END"),!g.current)){const xt=s.style.animationFillMode;s.style.animationFillMode="forwards",at=it.setTimeout(()=>{s.style.animationFillMode==="forwards"&&(s.style.animationFillMode=xt)})}},lt=ct=>{ct.target===s&&(et.current=getAnimationName(c.current))};return s.addEventListener("animationstart",lt),s.addEventListener("animationcancel",ot),s.addEventListener("animationend",ot),()=>{it.clearTimeout(at),s.removeEventListener("animationstart",lt),s.removeEventListener("animationcancel",ot),s.removeEventListener("animationend",ot)}}else st("ANIMATION_END")},[s,st]),{isPresent:["mounted","unmountSuspended"].includes(nt),ref:reactExports.useCallback(at=>{c.current=at?getComputedStyle(at):null,a(at)},[])}}function getAnimationName(e){return(e==null?void 0:e.animationName)||"none"}function getElementRef(e){var c,g;let s=(c=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:c.get,a=s&&"isReactWarning"in s&&s.isReactWarning;return a?e.ref:(s=(g=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:g.get,a=s&&"isReactWarning"in s&&s.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}var useInsertionEffect=React[" useInsertionEffect ".trim().toString()]||useLayoutEffect2;function useControllableState({prop:e,defaultProp:s,onChange:a=()=>{},caller:c}){const[g,et,rt]=useUncontrolledState({defaultProp:s,onChange:a}),nt=e!==void 0,st=nt?e:g;{const it=reactExports.useRef(e!==void 0);reactExports.useEffect(()=>{const ot=it.current;ot!==nt&&console.warn(`${c} is changing from ${ot?"controlled":"uncontrolled"} to ${nt?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),it.current=nt},[nt,c])}const at=reactExports.useCallback(it=>{var ot;if(nt){const lt=isFunction$2(it)?it(e):it;lt!==e&&((ot=rt.current)==null||ot.call(rt,lt))}else et(it)},[nt,e,et,rt]);return[st,at]}function useUncontrolledState({defaultProp:e,onChange:s}){const[a,c]=reactExports.useState(e),g=reactExports.useRef(a),et=reactExports.useRef(s);return useInsertionEffect(()=>{et.current=s},[s]),reactExports.useEffect(()=>{var rt;g.current!==a&&((rt=et.current)==null||rt.call(et,a),g.current=a)},[a,g]),[a,c,et]}function isFunction$2(e){return typeof e=="function"}var VISUALLY_HIDDEN_STYLES=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),NAME$2="VisuallyHidden",VisuallyHidden=reactExports.forwardRef((e,s)=>jsxRuntimeExports.jsx(Primitive.span,{...e,ref:s,style:{...VISUALLY_HIDDEN_STYLES,...e.style}}));VisuallyHidden.displayName=NAME$2;var Root$4=VisuallyHidden,PROVIDER_NAME$1="ToastProvider",[Collection$2,useCollection$2,createCollectionScope$2]=createCollection("Toast"),[createToastContext,createToastScope]=createContextScope("Toast",[createCollectionScope$2]),[ToastProviderProvider,useToastProviderContext]=createToastContext(PROVIDER_NAME$1),ToastProvider$1=e=>{const{__scopeToast:s,label:a="Notification",duration:c=5e3,swipeDirection:g="right",swipeThreshold:et=50,children:rt}=e,[nt,st]=reactExports.useState(null),[at,it]=reactExports.useState(0),ot=reactExports.useRef(!1),lt=reactExports.useRef(!1);return a.trim()||console.error(`Invalid prop \`label\` supplied to \`${PROVIDER_NAME$1}\`. Expected non-empty \`string\`.`),jsxRuntimeExports.jsx(Collection$2.Provider,{scope:s,children:jsxRuntimeExports.jsx(ToastProviderProvider,{scope:s,label:a,duration:c,swipeDirection:g,swipeThreshold:et,toastCount:at,viewport:nt,onViewportChange:st,onToastAdd:reactExports.useCallback(()=>it(ct=>ct+1),[]),onToastRemove:reactExports.useCallback(()=>it(ct=>ct-1),[]),isFocusedToastEscapeKeyDownRef:ot,isClosePausedRef:lt,children:rt})})};ToastProvider$1.displayName=PROVIDER_NAME$1;var VIEWPORT_NAME$1="ToastViewport",VIEWPORT_DEFAULT_HOTKEY=["F8"],VIEWPORT_PAUSE="toast.viewportPause",VIEWPORT_RESUME="toast.viewportResume",ToastViewport$1=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,hotkey:c=VIEWPORT_DEFAULT_HOTKEY,label:g="Notifications ({hotkey})",...et}=e,rt=useToastProviderContext(VIEWPORT_NAME$1,a),nt=useCollection$2(a),st=reactExports.useRef(null),at=reactExports.useRef(null),it=reactExports.useRef(null),ot=reactExports.useRef(null),lt=useComposedRefs(s,ot,rt.onViewportChange),ct=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),dt=rt.toastCount>0;reactExports.useEffect(()=>{const xt=gt=>{var mt;c.length!==0&&c.every(kt=>gt[kt]||gt.code===kt)&&((mt=ot.current)==null||mt.focus())};return document.addEventListener("keydown",xt),()=>document.removeEventListener("keydown",xt)},[c]),reactExports.useEffect(()=>{const xt=st.current,gt=ot.current;if(dt&&xt&>){const ht=()=>{if(!rt.isClosePausedRef.current){const Tt=new CustomEvent(VIEWPORT_PAUSE);gt.dispatchEvent(Tt),rt.isClosePausedRef.current=!0}},mt=()=>{if(rt.isClosePausedRef.current){const Tt=new CustomEvent(VIEWPORT_RESUME);gt.dispatchEvent(Tt),rt.isClosePausedRef.current=!1}},kt=Tt=>{!xt.contains(Tt.relatedTarget)&&mt()},Ct=()=>{xt.contains(document.activeElement)||mt()};return xt.addEventListener("focusin",ht),xt.addEventListener("focusout",kt),xt.addEventListener("pointermove",ht),xt.addEventListener("pointerleave",Ct),window.addEventListener("blur",ht),window.addEventListener("focus",mt),()=>{xt.removeEventListener("focusin",ht),xt.removeEventListener("focusout",kt),xt.removeEventListener("pointermove",ht),xt.removeEventListener("pointerleave",Ct),window.removeEventListener("blur",ht),window.removeEventListener("focus",mt)}}},[dt,rt.isClosePausedRef]);const ut=reactExports.useCallback(({tabbingDirection:xt})=>{const ht=nt().map(mt=>{const kt=mt.ref.current,Ct=[kt,...getTabbableCandidates$1(kt)];return xt==="forwards"?Ct:Ct.reverse()});return(xt==="forwards"?ht.reverse():ht).flat()},[nt]);return reactExports.useEffect(()=>{const xt=ot.current;if(xt){const gt=ht=>{var Ct,Tt,Pt;const mt=ht.altKey||ht.ctrlKey||ht.metaKey;if(ht.key==="Tab"&&!mt){const At=document.activeElement,Gt=ht.shiftKey;if(ht.target===xt&&Gt){(Ct=at.current)==null||Ct.focus();return}const Jt=ut({tabbingDirection:Gt?"backwards":"forwards"}),nr=Jt.findIndex(er=>er===At);focusFirst$1(Jt.slice(nr+1))?ht.preventDefault():Gt?(Tt=at.current)==null||Tt.focus():(Pt=it.current)==null||Pt.focus()}};return xt.addEventListener("keydown",gt),()=>xt.removeEventListener("keydown",gt)}},[nt,ut]),jsxRuntimeExports.jsxs(Branch,{ref:st,role:"region","aria-label":g.replace("{hotkey}",ct),tabIndex:-1,style:{pointerEvents:dt?void 0:"none"},children:[dt&&jsxRuntimeExports.jsx(FocusProxy,{ref:at,onFocusFromOutsideViewport:()=>{const xt=ut({tabbingDirection:"forwards"});focusFirst$1(xt)}}),jsxRuntimeExports.jsx(Collection$2.Slot,{scope:a,children:jsxRuntimeExports.jsx(Primitive.ol,{tabIndex:-1,...et,ref:lt})}),dt&&jsxRuntimeExports.jsx(FocusProxy,{ref:it,onFocusFromOutsideViewport:()=>{const xt=ut({tabbingDirection:"backwards"});focusFirst$1(xt)}})]})});ToastViewport$1.displayName=VIEWPORT_NAME$1;var FOCUS_PROXY_NAME="ToastFocusProxy",FocusProxy=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,onFocusFromOutsideViewport:c,...g}=e,et=useToastProviderContext(FOCUS_PROXY_NAME,a);return jsxRuntimeExports.jsx(VisuallyHidden,{"aria-hidden":!0,tabIndex:0,...g,ref:s,style:{position:"fixed"},onFocus:rt=>{var at;const nt=rt.relatedTarget;!((at=et.viewport)!=null&&at.contains(nt))&&c()}})});FocusProxy.displayName=FOCUS_PROXY_NAME;var TOAST_NAME="Toast",TOAST_SWIPE_START="toast.swipeStart",TOAST_SWIPE_MOVE="toast.swipeMove",TOAST_SWIPE_CANCEL="toast.swipeCancel",TOAST_SWIPE_END="toast.swipeEnd",Toast$1=reactExports.forwardRef((e,s)=>{const{forceMount:a,open:c,defaultOpen:g,onOpenChange:et,...rt}=e,[nt,st]=useControllableState({prop:c,defaultProp:g??!0,onChange:et,caller:TOAST_NAME});return jsxRuntimeExports.jsx(Presence,{present:a||nt,children:jsxRuntimeExports.jsx(ToastImpl,{open:nt,...rt,ref:s,onClose:()=>st(!1),onPause:useCallbackRef$1(e.onPause),onResume:useCallbackRef$1(e.onResume),onSwipeStart:composeEventHandlers(e.onSwipeStart,at=>{at.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:composeEventHandlers(e.onSwipeMove,at=>{const{x:it,y:ot}=at.detail.delta;at.currentTarget.setAttribute("data-swipe","move"),at.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${it}
vendor: 6,852 bytes, line 465
465px`),at.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${ot}px`)}),onSwipeCancel:composeEventHandlers(e.onSwipeCancel,at=>{at.currentTarget.setAttribute("data-swipe","cancel"),at.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),at.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),at.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),at.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:composeEventHandlers(e.onSwipeEnd,at=>{const{x:it,y:ot}=at.detail.delta;at.currentTarget.setAttribute("data-swipe","end"),at.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),at.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),at.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${it}px`),at.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${ot}px`),st(!1)})})})});Toast$1.displayName=TOAST_NAME;var[ToastInteractiveProvider,useToastInteractiveContext]=createToastContext(TOAST_NAME,{onClose(){}}),ToastImpl=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,type:c="foreground",duration:g,open:et,onClose:rt,onEscapeKeyDown:nt,onPause:st,onResume:at,onSwipeStart:it,onSwipeMove:ot,onSwipeCancel:lt,onSwipeEnd:ct,...dt}=e,ut=useToastProviderContext(TOAST_NAME,a),[xt,gt]=reactExports.useState(null),ht=useComposedRefs(s,er=>gt(er)),mt=reactExports.useRef(null),kt=reactExports.useRef(null),Ct=g||ut.duration,Tt=reactExports.useRef(0),Pt=reactExports.useRef(Ct),At=reactExports.useRef(0),{onToastAdd:Gt,onToastRemove:Mt}=ut,zt=useCallbackRef$1(()=>{var ur;(xt==null?void 0:xt.contains(document.activeElement))&&((ur=ut.viewport)==null||ur.focus()),rt()}),Jt=reactExports.useCallback(er=>{!er||er===1/0||(window.clearTimeout(At.current),Tt.current=new Date().getTime(),At.current=window.setTimeout(zt,er))},[zt]);reactExports.useEffect(()=>{const er=ut.viewport;if(er){const ur=()=>{Jt(Pt.current),at==null||at()},qt=()=>{const or=new Date().getTime()-Tt.current;Pt.current=Pt.current-or,window.clearTimeout(At.current),st==null||st()};return er.addEventListener(VIEWPORT_PAUSE,qt),er.addEventListener(VIEWPORT_RESUME,ur),()=>{er.removeEventListener(VIEWPORT_PAUSE,qt),er.removeEventListener(VIEWPORT_RESUME,ur)}}},[ut.viewport,Ct,st,at,Jt]),reactExports.useEffect(()=>{et&&!ut.isClosePausedRef.current&&Jt(Ct)},[et,Ct,ut.isClosePausedRef,Jt]),reactExports.useEffect(()=>(Gt(),()=>Mt()),[Gt,Mt]);const nr=reactExports.useMemo(()=>xt?getAnnounceTextContent(xt):null,[xt]);return ut.viewport?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[nr&&jsxRuntimeExports.jsx(ToastAnnounce,{__scopeToast:a,role:"status","aria-live":c==="foreground"?"assertive":"polite","aria-atomic":!0,children:nr}),jsxRuntimeExports.jsx(ToastInteractiveProvider,{scope:a,onClose:zt,children:reactDomExports.createPortal(jsxRuntimeExports.jsx(Collection$2.ItemSlot,{scope:a,children:jsxRuntimeExports.jsx(Root$5,{asChild:!0,onEscapeKeyDown:composeEventHandlers(nt,()=>{ut.isFocusedToastEscapeKeyDownRef.current||zt(),ut.isFocusedToastEscapeKeyDownRef.current=!1}),children:jsxRuntimeExports.jsx(Primitive.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":et?"open":"closed","data-swipe-direction":ut.swipeDirection,...dt,ref:ht,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:composeEventHandlers(e.onKeyDown,er=>{er.key==="Escape"&&(nt==null||nt(er.nativeEvent),er.nativeEvent.defaultPrevented||(ut.isFocusedToastEscapeKeyDownRef.current=!0,zt()))}),onPointerDown:composeEventHandlers(e.onPointerDown,er=>{er.button===0&&(mt.current={x:er.clientX,y:er.clientY})}),onPointerMove:composeEventHandlers(e.onPointerMove,er=>{if(!mt.current)return;const ur=er.clientX-mt.current.x,qt=er.clientY-mt.current.y,or=!!kt.current,Dt=["left","right"].includes(ut.swipeDirection),Ht=["left","up"].includes(ut.swipeDirection)?Math.min:Math.max,Xt=Dt?Ht(0,ur):0,Zt=Dt?0:Ht(0,qt),It=er.pointerType==="touch"?10:2,Bt={x:Xt,y:Zt},rr={originalEvent:er,delta:Bt};or?(kt.current=Bt,handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE,ot,rr,{discrete:!1})):isDeltaInDirection(Bt,ut.swipeDirection,It)?(kt.current=Bt,handleAndDispatchCustomEvent(TOAST_SWIPE_START,it,rr,{discrete:!1}),er.target.setPointerCapture(er.pointerId)):(Math.abs(ur)>It||Math.abs(qt)>It)&&(mt.current=null)}),onPointerUp:composeEventHandlers(e.onPointerUp,er=>{const ur=kt.current,qt=er.target;if(qt.hasPointerCapture(er.pointerId)&&qt.releasePointerCapture(er.pointerId),kt.current=null,mt.current=null,ur){const or=er.currentTarget,Dt={originalEvent:er,delta:ur};isDeltaInDirection(ur,ut.swipeDirection,ut.swipeThreshold)?handleAndDispatchCustomEvent(TOAST_SWIPE_END,ct,Dt,{discrete:!0}):handleAndDispatchCustomEvent(TOAST_SWIPE_CANCEL,lt,Dt,{discrete:!0}),or.addEventListener("click",Ht=>Ht.preventDefault(),{once:!0})}})})})}),ut.viewport)})]}):null}),ToastAnnounce=e=>{const{__scopeToast:s,children:a,...c}=e,g=useToastProviderContext(TOAST_NAME,s),[et,rt]=reactExports.useState(!1),[nt,st]=reactExports.useState(!1);return useNextFrame(()=>rt(!0)),reactExports.useEffect(()=>{const at=window.setTimeout(()=>st(!0),1e3);return()=>window.clearTimeout(at)},[]),nt?null:jsxRuntimeExports.jsx(Portal$2,{asChild:!0,children:jsxRuntimeExports.jsx(VisuallyHidden,{...c,children:et&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[g.label," ",a]})})})},TITLE_NAME$1="ToastTitle",ToastTitle$1=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,...c}=e;return jsxRuntimeExports.jsx(Primitive.div,{...c,ref:s})});ToastTitle$1.displayName=TITLE_NAME$1;var DESCRIPTION_NAME$1="ToastDescription",ToastDescription$1=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,...c}=e;return jsxRuntimeExports.jsx(Primitive.div,{...c,ref:s})});ToastDescription$1.displayName=DESCRIPTION_NAME$1;var ACTION_NAME="ToastAction",ToastAction$1=reactExports.forwardRef((e,s)=>{const{altText:a,...c}=e;return a.trim()?jsxRuntimeExports.jsx(ToastAnnounceExclude,{altText:a,asChild:!0,children:jsxRuntimeExports.jsx(ToastClose$1,{...c,ref:s})}):(console.error(`Invalid prop \`altText\` supplied to \`${ACTION_NAME}\`. Expected non-empty \`string\`.`),null)});ToastAction$1.displayName=ACTION_NAME;var CLOSE_NAME$1="ToastClose",ToastClose$1=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,...c}=e,g=useToastInteractiveContext(CLOSE_NAME$1,a);return jsxRuntimeExports.jsx(ToastAnnounceExclude,{asChild:!0,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",...c,ref:s,onClick:composeEventHandlers(e.onClick,g.onClose)})})});ToastClose$1.displayName=CLOSE_NAME$1;var ToastAnnounceExclude=reactExports.forwardRef((e,s)=>{const{__scopeToast:a,altText:c,...g}=e;return jsxRuntimeExports.jsx(Primitive.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":c||void 0,...g,ref:s})});function getAnnounceTextContent(e){const s=[];
465return Array.from(e.childNodes).forEach(c=>{if(c.nodeType===c.TEXT_NODE&&c.textContent&&s.push(c.textContent),isHTMLElement$1(c)){const g=c.ariaHidden||c.hidden||c.style.display==="none",et=c.dataset.radixToastAnnounceExclude==="";if(!g)if(et){const rt=c.dataset.radixToastAnnounceAlt;rt&&s.push(rt)}else s.push(...getAnnounceTextContent(c))}}),s}function handleAndDispatchCustomEvent(e,s,a,{discrete:c}){const g=a.originalEvent.currentTarget,et=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:a});s&&g.addEventListener(e,s,{once:!0}),c?dispatchDiscreteCustomEvent(g,et):g.dispatchEvent(et)}var isDeltaInDirection=(e,s,a=0)=>{const c=Math.abs(e.x),g=Math.abs(e.y),et=c>g;return s==="left"||s==="right"?et&&c>a:!et&&g>a};function useNextFrame(e=()=>{}){const s=useCallbackRef$1(e);useLayoutEffect2(()=>{let a=0,c=0;return a=window.requestAnimationFrame(()=>c=window.requestAnimationFrame(s)),()=>{window.cancelAnimationFrame(a),window.cancelAnimationFrame(c)}},[s])}function isHTMLElement$1(e){return e.nodeType===e.ELEMENT_NODE}function getTabbableCandidates$1(e){const s=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:c=>{const g=c.tagName==="INPUT"&&c.type==="hidden";return c.disabled||c.hidden||g?NodeFilter.FILTER_SKIP:c.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)s.push(a.currentNode);return s}function focusFirst$1(e){const s=document.activeElement;return e.some(a=>a===s?!0:(a.focus(),document.activeElement!==s))}var Provider$1=ToastProvider$1,Viewport$1=ToastViewport$1,Root2$2=Toast$1,Title$1=ToastTitle$1,Description$1=ToastDescription$1,Action=ToastAction$1,Close$1=ToastClose$1;const ToastProvider=Provider$1,ToastViewport=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Viewport$1,{ref:a,className:cn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...s}));ToastViewport.displayName=Viewport$1.displayName;const toastVariants=cva("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),Toast=reactExports.forwardRef(({className:e,variant:s,...a},c)=>jsxRuntimeExports.jsx(Root2$2,{ref:c,className:cn(toastVariants({variant:s}),e),...a}));Toast.displayName=Root2$2.displayName;const ToastAction=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Action,{ref:a,className:cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...s}));ToastAction.displayName=Action.displayName;const ToastClose=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Close$1,{ref:a,className:cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...s,children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"})}));ToastClose.displayName=Close$1.displayName;const ToastTitle=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Title$1,{ref:a,className:cn("text-sm font-semibold",e),...s}));ToastTitle.displayName=Title$1.displayName;const ToastDescription=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Description$1,{ref:a,className:cn("text-sm opacity-90",e),...s}));ToastDescription.displayName=Description$1.displayName;function Toaster$1(){const{toasts:e}=useToast();return jsxRuntimeExports.jsxs(ToastProvider,{children:[e.map(function({id:s,title:a,description:c,action:g,...et}){return jsxRuntimeExports.jsxs(Toast,{...et,children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-1",children:[a&&jsxRuntimeExports.jsx(ToastTitle,{children:a}),c&&jsxRuntimeExports.jsx(ToastDescription,{children:c})]}),g,jsxRuntimeExports.jsx(ToastClose,{})]},s)}),jsxRuntimeExports.jsx(ToastViewport,{})]})}var P$1=["light","dark"],E$1="(prefers-color-scheme: dark)",L$1=reactExports.createContext(void 0),D$1={setTheme:e=>{},themes:[]},j$1=()=>{var e;return(e=reactExports.useContext(L$1))!=null?e:D$1};reactExports.memo(({forcedTheme:e,storageKey:s,attribute:a,enableSystem:c,enableColorScheme:g,defaultTheme:et,value:rt,attrs:nt,nonce:st})=>{let at=et==="system",it=a==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${nt.map(dt=>`'${dt}'`).join(",")})`};`:`var d=document.documentElement,n='${a}',s='setAttribute';`,ot=g?P$1.includes(et)&&et?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${et}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",lt=(dt,ut=!1,xt=!0)=>{let gt=rt?rt[dt]:dt,ht=ut?dt+"|| ''":`'${gt}'`,mt="";return g&&xt&&!ut&&P$1.includes(dt)&&(mt+=`d.style.colorScheme = '${dt}';`),a==="class"?ut||gt?mt+=`c.add(${ht})`:mt+="null":gt&&(mt+=`d[s](n,${ht})`),mt},ct=e?`!function(){${it}${lt(e)}}()`:c?`!function(){try{${it}var e=localStorage.getItem('${s}');if('system'===e||(!e&&${at})){var t='${E$1}',m=window.matchMedia(t);if(m.media!==t||m.matches){${lt("dark")}}else{${lt("light")}}}else if(e){${rt?`var x=${JSON.stringify(rt)};`:""}${lt(rt?"x[e]":"e",!0)}}${at?"":"else{"+lt(et,!1,!1)+"}"}${ot}}catch(e){}}()`:`!function(){try{${it}var e=localStorage.getItem('${s}');if(e){${rt?`var x=${JSON.stringify(rt)};`:""}${lt(rt?"x[e]":"e",!0)}}else{${lt(et,!1,!1)};}${ot}}catch(t){}}();`;return reactExports.createElement("script",{nonce:st,dangerouslySetInnerHTML:{__html:ct}})});var jt=e=>{switch(e){case"success":return ee;case"info":return ae$1;case"warning":return oe$1;case"error":return se$1;default:return null}},te=Array(12).fill(0),Yt=({visible:e,className:s})=>o.createElement("div",{className:["sonner-loading-wrapper",s].filter(
465Boolean).join(" "),"data-visible":e},o.createElement("div",{className:"sonner-spinner"},te.map((a,c)=>o.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${c}`})))),ee=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),oe$1=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),ae$1=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),se$1=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},o.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Ot=o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},o.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),o.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Ft=()=>{let[e,s]=o.useState(document.hidden);return o.useEffect(()=>{let a=()=>{s(document.hidden)};return document.addEventListener("visibilitychange",a),()=>window.removeEventListener("visibilitychange",a)},[]),e},bt=1,yt=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let s=this.subscribers.indexOf(e);this.subscribers.splice(s,1)}),this.publish=e=>{this.subscribers.forEach(s=>s(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var s;let{message:a,...c}=e,g=typeof(e==null?void 0:e.id)=="number"||((s=e.id)==null?void 0:s.length)>0?e.id:bt++,et=this.toasts.find(nt=>nt.id===g),rt=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(g)&&this.dismissedToasts.delete(g),et?this.toasts=this.toasts.map(nt=>nt.id===g?(this.publish({...nt,...e,id:g,title:a}),{...nt,...e,id:g,dismissible:rt,title:a}):nt):this.addToast({title:a,...c,dismissible:rt,id:g}),g},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(s=>{this.subscribers.forEach(a=>a({id:s.id,dismiss:!0}))}),this.subscribers.forEach(s=>s({id:e,dismiss:!0})),e),this.message=(e,s)=>this.create({...s,message:e}),this.error=(e,s)=>this.create({...s,message:e,type:"error"}),this.success=(e,s)=>this.create({...s,type:"success",message:e}),this.info=(e,s)=>this.create({...s,type:"info",message:e}),this.warning=(e,s)=>this.create({...s,type:"warning",message:e}),this.loading=(e,s)=>this.create({...s,type:"loading",message:e}),this.promise=(e,s)=>{if(!s)return;let a;s.loading!==void 0&&(a=this.create({...s,promise:e,type:"loading",message:s.loading,description:typeof s.description!="function"?s.description:void 0}));let c=e instanceof Promise?e:e(),g=a!==void 0,et,rt=c.then(async st=>{if(et=["resolve",st],o.isValidElement(st))g=!1,this.create({id:a,type:"default",message:st});else if(ie$1(st)&&!st.ok){g=!1;let at=typeof s.error=="function"?await s.error(`HTTP error! status: ${st.status}`):s.error,it=typeof s.description=="function"?await s.description(`HTTP error! status: ${st.status}`):s.description;this.create({id:a,type:"error",message:at,description:it})}else if(s.success!==void 0){g=!1;let at=typeof s.success=="function"?await s.success(st):s.success,it=typeof s.description=="function"?await s.description(st):s.description;this.create({id:a,type:"success",message:at,description:it})}}).catch(async st=>{if(et=["reject",st],s.error!==void 0){g=!1;let at=typeof s.error=="function"?await s.error(st):s.error,it=typeof s.description=="function"?await s.description(st):s.description;this.create({id:a,type:"error",message:at,description:it})}}).finally(()=>{var st;g&&(this.dismiss(a),a=void 0),(st=s.finally)==null||st.call(s)}),nt=()=>new Promise((st,at)=>rt.then(()=>et[0]==="reject"?at(et[1]):st(et[1])).catch(at));return typeof a!="string"&&typeof a!="number"?{unwrap:nt}:Object.assign(a,{unwrap:nt})},this.custom=(e,s)=>{let a=(s==null?void 0:s.id)||bt++;return this.create({jsx:e(a),id:a,...s}),a},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},v$1=new yt,ne=(e,s)=>{let a=(s==null?void 0:s.id)||bt++;return v$1.addToast({title:e,...s,id:a}),a},ie$1=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",le$1=ne,ce$1=()=>v$1.toasts,de$1=()=>v$1.getActiveToasts(),ue$1=Object.assign(le$1,{success:v$1.success,info:v$1.info,warning:v$1.warning,error:v$1.error,custom:v$1.custom,message:v$1.message,promise:v$1.promise,dismiss:v$1.dismiss,loading:v$1.loading},{getHistory:ce$1,getToasts:de$1});function wt(e,{insertAt:s}={}){if(typeof document>"u")return;let a=document.head||document.getElementsByTagName("head")[0],c=document.createElement("style");c.type="text/css",s==="top"&&a.firstChild?a.insertBefore(c,a.firstChild):a.appendChild(c),c.styleSheet?c.styleSheet.cssText=e:c.appendChild(document.createTextNode(e))}wt(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
465left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
465:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
465--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 466`);function tt(e){return e.label!==void 0}var pe$1=3,me="32px",ge$1="16px",Wt=4e3,he$1=356,be$1=14,ye$1=20,we$1=200;function M$1(...e){return e.filter(Boolean).join(" ")}function xe$1(e){let[s,a]=e.split("-"),c=[];return s&&c.push(s),a&&c.push(a),c}var ve$1=e=>{var s,a,c,g,et,rt,nt,st,at,it,ot;let{invert:lt,toast:ct,unstyled:dt,interacting:ut,setHeights:xt,visibleToasts:gt,heights:ht,index:mt,toasts:kt,expanded:Ct,removeToast:Tt,defaultRichColors:Pt,closeButton:At,style:Gt,cancelButtonStyle:Mt,actionButtonStyle:zt,className:Jt="",descriptionClassName:nr="",duration:er,position:ur,gap:qt,loadingIcon:or,expandByDefault:Dt,classNames:Ht,icons:Xt,closeButtonAriaLabel:Zt="Close toast",pauseWhenPageIsHidden:It}=e,[Bt,rr]=o.useState(null),[lr,pr]=o.useState(null),[tr,hr]=o.useState(!1),[Vt,sr]=o.useState(!1),[Lt,Kt]=o.useState(!1),[mr,xr]=o.useState(!1),[cr,jr]=o.useState(!1),[kr,Pr]=o.useState(0),[Dr,Vr]=o.useState(0),Rr=o.useRef(ct.duration||er||Wt),Tr=o.useRef(null),fr=o.useRef(null),Gr=mt===0,Mr=mt+1<=gt,Fr=ct.type,St=ct.dismissible!==!1,ft=ct.className||"",pt=ct.descriptionClassName||"",Nt=o.useMemo(()=>ht.findIndex(yr=>yr.toastId===ct.id)||0,[ht,ct.id]),Rt=o.useMemo(()=>{var yr;return(yr=ct.closeButton)!=null?yr:At},[ct.closeButton,At]),$t=o.useMemo(()=>ct.duration||er||Wt,[ct.duration,er]),Qt=o.useRef(0),gr=o.useRef(0),Nr=o.useRef(0),vr=o.useRef(null),[Cr,dr]=ur.split("-"),Ur=o.useMemo(()=>ht.reduce((yr,Sr,_r)=>_r>=Nt?yr:yr+Sr.height,0),[ht,Nt]),Et=Ft(),ir=ct.invert||lt,ar=Fr==="loading";gr.current=o.useMemo(()=>Nt*qt+Ur,[Nt,Ur]),o.useEffect(()=>{Rr.current=$t},[$t]),o.useEffect(()=>{hr(!0)},[]),o.useEffect(()=>{let yr=fr.current;if(yr){let Sr=yr.getBoundingClientRect().height;return Vr(Sr),xt(_r=>
466[{toastId:ct.id,height:Sr,position:ct.position},..._r]),()=>xt(_r=>_r.filter(Lr=>Lr.toastId!==ct.id))}},[xt,ct.id]),o.useLayoutEffect(()=>{if(!tr)return;let yr=fr.current,Sr=yr.style.height;yr.style.height="auto";let _r=yr.getBoundingClientRect().height;yr.style.height=Sr,Vr(_r),xt(Lr=>Lr.find($r=>$r.toastId===ct.id)?Lr.map($r=>$r.toastId===ct.id?{...$r,height:_r}:$r):[{toastId:ct.id,height:_r,position:ct.position},...Lr])},[tr,ct.title,ct.description,xt,ct.id]);let br=o.useCallback(()=>{sr(!0),Pr(gr.current),xt(yr=>yr.filter(Sr=>Sr.toastId!==ct.id)),setTimeout(()=>{Tt(ct)},we$1)},[ct,Tt,xt,gr]);o.useEffect(()=>{if(ct.promise&&Fr==="loading"||ct.duration===1/0||ct.type==="loading")return;let yr;return Ct||ut||It&&Et?(()=>{if(Nr.current<Qt.current){let Sr=new Date().getTime()-Qt.current;Rr.current=Rr.current-Sr}Nr.current=new Date().getTime()})():Rr.current!==1/0&&(Qt.current=new Date().getTime(),yr=setTimeout(()=>{var Sr;(Sr=ct.onAutoClose)==null||Sr.call(ct,ct),br()},Rr.current)),()=>clearTimeout(yr)},[Ct,ut,ct,Fr,It,Et,br]),o.useEffect(()=>{ct.delete&&br()},[br,ct.delete]);function wr(){var yr,Sr,_r;return Xt!=null&&Xt.loading?o.createElement("div",{className:M$1(Ht==null?void 0:Ht.loader,(yr=ct==null?void 0:ct.classNames)==null?void 0:yr.loader,"sonner-loader"),"data-visible":Fr==="loading"},Xt.loading):or?o.createElement("div",{className:M$1(Ht==null?void 0:Ht.loader,(Sr=ct==null?void 0:ct.classNames)==null?void 0:Sr.loader,"sonner-loader"),"data-visible":Fr==="loading"},or):o.createElement(Yt,{className:M$1(Ht==null?void 0:Ht.loader,(_r=ct==null?void 0:ct.classNames)==null?void 0:_r.loader),visible:Fr==="loading"})}return o.createElement("li",{tabIndex:0,ref:fr,className:M$1(Jt,ft,Ht==null?void 0:Ht.toast,(s=ct==null?void 0:ct.classNames)==null?void 0:s.toast,Ht==null?void 0:Ht.default,Ht==null?void 0:Ht[Fr],(a=ct==null?void 0:ct.classNames)==null?void 0:a[Fr]),"data-sonner-toast":"","data-rich-colors":(c=ct.richColors)!=null?c:Pt,"data-styled":!(ct.jsx||ct.unstyled||dt),"data-mounted":tr,"data-promise":!!ct.promise,"data-swiped":cr,"data-removed":Vt,"data-visible":Mr,"data-y-position":Cr,"data-x-position":dr,"data-index":mt,"data-front":Gr,"data-swiping":Lt,"data-dismissible":St,"data-type":Fr,"data-invert":ir,"data-swipe-out":mr,"data-swipe-direction":lr,"data-expanded":!!(Ct||Dt&&tr),style:{"--index":mt,"--toasts-before":mt,"--z-index":kt.length-mt,"--offset":`${Vt?kr:gr.current}px`,"--initial-height":Dt?"auto":`${Dr}px`,...Gt,...ct.style},onDragEnd:()=>{Kt(!1),rr(null),vr.current=null},onPointerDown:yr=>{ar||!St||(Tr.current=new Date,Pr(gr.current),yr.target.setPointerCapture(yr.pointerId),yr.target.tagName!=="BUTTON"&&(Kt(!0),vr.current={x:yr.clientX,y:yr.clientY}))},onPointerUp:()=>{var yr,Sr,_r,Lr;if(mr||!St)return;vr.current=null;let $r=Number(((yr=fr.current)==null?void 0:yr.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Jr=Number(((Sr=fr.current)==null?void 0:Sr.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),un=new Date().getTime()-((_r=Tr.current)==null?void 0:_r.getTime()),Qr=Bt==="x"?$r:Jr,zr=Math.abs(Qr)/un;if(Math.abs(Qr)>=ye$1||zr>.11){Pr(gr.current),(Lr=ct.onDismiss)==null||Lr.call(ct,ct),pr(Bt==="x"?$r>0?"right":"left":Jr>0?"down":"up"),br(),xr(!0),jr(!1);return}Kt(!1),rr(null)},onPointerMove:yr=>{var Sr,_r,Lr,$r;if(!vr.current||!St||((Sr=window.getSelection())==null?void 0:Sr.toString().length)>0)return;let Jr=yr.clientY-vr.current.y,un=yr.clientX-vr.current.x,Qr=(_r=e.swipeDirections)!=null?_r:xe$1(ur);!Bt&&(Math.abs(un)>1||Math.abs(Jr)>1)&&rr(Math.abs(un)>Math.abs(Jr)?"x":"y");let zr={x:0,y:0};Bt==="y"?(Qr.includes("top")||Qr.includes("bottom"))&&(Qr.includes("top")&&Jr<0||Qr.includes("bottom")&&Jr>0)&&(zr.y=Jr):Bt==="x"&&(Qr.includes("left")||Qr.includes("right"))&&(Qr.includes("left")&&un<0||Qr.includes("right")&&un>0)&&(zr.x=un),(Math.abs(zr.x)>0||Math.abs(zr.y)>0)&&jr(!0),(Lr=fr.current)==null||Lr.style.setProperty("--swipe-amount-x",`${zr.x}px`),($r=fr.current)==null||$r.style.setProperty("--swipe-amount-y",`${zr.y}px`)}},Rt&&!ct.jsx?o.createElement("button",{"aria-label":Zt,"data-disabled":ar,"data-close-button":!0,onClick:ar||!St?()=>{}:()=>{var yr;br(),(yr=ct.onDismiss)==null||yr.call(ct,ct)},className:M$1(Ht==null?void 0:Ht.closeButton,(g=ct==null?void 0:ct.classNames)==null?void 0:g.closeButton)},(et=Xt==null?void 0:Xt.close)!=null?et:Ot):null,ct.jsx||reactExports.isValidElement(ct.title)?ct.jsx?ct.jsx:typeof ct.title=="function"?ct.title():ct.title:o.createElement(o.Fragment,null,Fr||ct.icon||ct.promise?o.createElement("div",{"data-icon":"",className:M$1(Ht==null?void 0:Ht.icon,(rt=ct==null?void 0:ct.classNames)==null?void 0:rt.icon)},ct.promise||ct.type==="loading"&&!ct.icon?ct.icon||wr():null,ct.type!=="loading"?ct.icon||(Xt==null?void 0:Xt[Fr])||jt(Fr):null):null,o.createElement("div",{"data-content":"",className:M$1(Ht==null?void 0:Ht.content,(nt=ct==null?void 0:ct.classNames)==null?void 0:nt.content)},o.createElement("div",{"data-title":"",className:M$1(Ht==null?void 0:Ht.title,(st=ct==null?void 0:ct.classNames)==null?void 0:st.title)},typeof ct.title=="function"?ct.title():ct.title),ct.description?o.createElement("div",{"data-description":"",className:M$1(nr,pt,Ht==null?void 0:Ht.de
vendor: 6,716 bytes, line 466
466scription,(at=ct==null?void 0:ct.classNames)==null?void 0:at.description)},typeof ct.description=="function"?ct.description():ct.description):null),reactExports.isValidElement(ct.cancel)?ct.cancel:ct.cancel&&tt(ct.cancel)?o.createElement("button",{"data-button":!0,"data-cancel":!0,style:ct.cancelButtonStyle||Mt,onClick:yr=>{var Sr,_r;tt(ct.cancel)&&St&&((_r=(Sr=ct.cancel).onClick)==null||_r.call(Sr,yr),br())},className:M$1(Ht==null?void 0:Ht.cancelButton,(it=ct==null?void 0:ct.classNames)==null?void 0:it.cancelButton)},ct.cancel.label):null,reactExports.isValidElement(ct.action)?ct.action:ct.action&&tt(ct.action)?o.createElement("button",{"data-button":!0,"data-action":!0,style:ct.actionButtonStyle||zt,onClick:yr=>{var Sr,_r;tt(ct.action)&&((_r=(Sr=ct.action).onClick)==null||_r.call(Sr,yr),!yr.defaultPrevented&&br())},className:M$1(Ht==null?void 0:Ht.actionButton,(ot=ct==null?void 0:ct.classNames)==null?void 0:ot.actionButton)},ct.action.label):null))};function _t(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Te$1(e,s){let a={};return[e,s].forEach((c,g)=>{let et=g===1,rt=et?"--mobile-offset":"--offset",nt=et?ge$1:me;function st(at){["top","right","bottom","left"].forEach(it=>{a[`${rt}-${it}`]=typeof at=="number"?`${at}px`:at})}typeof c=="number"||typeof c=="string"?st(c):typeof c=="object"?["top","right","bottom","left"].forEach(at=>{c[at]===void 0?a[`${rt}-${at}`]=nt:a[`${rt}-${at}`]=typeof c[at]=="number"?`${c[at]}px`:c[at]}):st(nt)}),a}var $e$1=reactExports.forwardRef(function(e,s){let{invert:a,position:c="bottom-right",hotkey:g=["altKey","KeyT"],expand:et,closeButton:rt,className:nt,offset:st,mobileOffset:at,theme:it="light",richColors:ot,duration:lt,style:ct,visibleToasts:dt=pe$1,toastOptions:ut,dir:xt=_t(),gap:gt=be$1,loadingIcon:ht,icons:mt,containerAriaLabel:kt="Notifications",pauseWhenPageIsHidden:Ct}=e,[Tt,Pt]=o.useState([]),At=o.useMemo(()=>Array.from(new Set([c].concat(Tt.filter(It=>It.position).map(It=>It.position)))),[Tt,c]),[Gt,Mt]=o.useState([]),[zt,Jt]=o.useState(!1),[nr,er]=o.useState(!1),[ur,qt]=o.useState(it!=="system"?it:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),or=o.useRef(null),Dt=g.join("+").replace(/Key/g,"").replace(/Digit/g,""),Ht=o.useRef(null),Xt=o.useRef(!1),Zt=o.useCallback(It=>{Pt(Bt=>{var rr;return(rr=Bt.find(lr=>lr.id===It.id))!=null&&rr.delete||v$1.dismiss(It.id),Bt.filter(({id:lr})=>lr!==It.id)})},[]);return o.useEffect(()=>v$1.subscribe(It=>{if(It.dismiss){Pt(Bt=>Bt.map(rr=>rr.id===It.id?{...rr,delete:!0}:rr));return}setTimeout(()=>{vt.flushSync(()=>{Pt(Bt=>{let rr=Bt.findIndex(lr=>lr.id===It.id);return rr!==-1?[...Bt.slice(0,rr),{...Bt[rr],...It},...Bt.slice(rr+1)]:[It,...Bt]})})})}),[]),o.useEffect(()=>{if(it!=="system"){qt(it);return}if(it==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?qt("dark"):qt("light")),typeof window>"u")return;let It=window.matchMedia("(prefers-color-scheme: dark)");try{It.addEventListener("change",({matches:Bt})=>{qt(Bt?"dark":"light")})}catch{It.addListener(({matches:rr})=>{try{qt(rr?"dark":"light")}catch(lr){console.error(lr)}})}},[it]),o.useEffect(()=>{Tt.length<=1&&Jt(!1)},[Tt]),o.useEffect(()=>{let It=Bt=>{var rr,lr;g.every(pr=>Bt[pr]||Bt.code===pr)&&(Jt(!0),(rr=or.current)==null||rr.focus()),Bt.code==="Escape"&&(document.activeElement===or.current||(lr=or.current)!=null&&lr.contains(document.activeElement))&&Jt(!1)};return document.addEventListener("keydown",It),()=>document.removeEventListener("keydown",It)},[g]),o.useEffect(()=>{if(or.current)return()=>{Ht.current&&(Ht.current.focus({preventScroll:!0}),Ht.current=null,Xt.current=!1)}},[or.current]),o.createElement("section",{ref:s,"aria-label":`${kt} ${Dt}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},At.map((It,Bt)=>{var rr;let[lr,pr]=It.split("-");return Tt.length?o.createElement("ol",{key:It,dir:xt==="auto"?_t():xt,tabIndex:-1,ref:or,className:nt,"data-sonner-toaster":!0,"data-theme":ur,"data-y-position":lr,"data-lifted":zt&&Tt.length>1&&!et,"data-x-position":pr,style:{"--front-toast-height":`${((rr=Gt[0])==null?void 0:rr.height)||0}px`,"--width":`${he$1}px`,"--gap":`${gt}px`,...ct,...Te$1(st,at)},onBlur:tr=>{Xt.current&&!tr.currentTarget.contains(tr.relatedTarget)&&(Xt.current=!1,Ht.current&&(Ht.current.focus({preventScroll:!0}),Ht.current=null))},onFocus:tr=>{tr.target instanceof HTMLElement&&tr.target.dataset.dismissible==="false"||Xt.current||(Xt.current=!0,Ht.current=tr.relatedTarget)},onMouseEnter:()=>Jt(!0),onMouseMove:()=>Jt(!0),onMouseLeave:()=>{nr||Jt(!1)},onDragEnd:()=>Jt(!1),onPointerDown:tr=>{tr.target instanceof HTMLElement&&tr.target.dataset.dismissible==="false"||er(!0)},onPointerUp:()=>er(!1)},Tt.filter(tr=>!tr.position&&Bt===0||tr.position===It).map((tr,hr)=>{var Vt,sr;return o.createElement(ve$1,{key:tr.id,icons:mt,index:hr,toast:tr,defaultRichColors:ot,duration:(Vt=ut==null?void 0:ut.duration)!=null?Vt:lt,className:ut==null?void 0:ut.className,descriptionClassName:ut==null?void 0:ut.descriptionClassName,invert:a,visibleToasts:dt,closeButton:(sr=ut==null?void 0:ut.closeButton)!=null?sr:rt,interacting:nr,position:It,style:ut==null?void 0:ut.style,unstyled:ut==null?void 0:ut.unstyled,classNames:ut==null?void 0:ut.classNames,cancelButtonStyle:ut==null?void 0:ut.cancelButtonStyle,actionButtonStyle:ut==null?void 0:ut.actionButtonStyle,removeToast:Zt,toasts:Tt.filter(Lt=>Lt.position==tr.position),heights:Gt.filter(Lt=>Lt.position==tr.position),setHeights:Mt,expandByDefault:et,gap:gt,loadingIcon:ht,expanded:zt,pauseWhenPageIsHidden:Ct,swipeDirections:e.swipeDirections})})):null}))});const Toaster=({...e})=>{const{theme:s="system"}=j$1();return jsxRuntimeExports.jsx($e$1,{theme:s,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};var useReactId=React[" useId ".trim().toString()]||(()=>{}),count$1=0;function useId(e){const[s,a]=reactExports.useState(useReactId());return useLayoutEffect2(()=>{a(c=>c??String(count$1++))},[e]),s?`radix-${s}`:""}const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=e=>({x:e,y:e}
vendor: 14,347 bytes, line 466
466),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"},oppositeAlignmentMap={start:"end",end:"start"};function clamp$1(e,s,a){return max(e,min(s,a))}function evaluate(e,s){return typeof e=="function"?e(s):e}function getSide(e){return e.split("-")[0]}function getAlignment(e){return e.split("-")[1]}function getOppositeAxis(e){return e==="x"?"y":"x"}function getAxisLength(e){return e==="y"?"height":"width"}const yAxisSides=new Set(["top","bottom"]);function getSideAxis(e){return yAxisSides.has(getSide(e))?"y":"x"}function getAlignmentAxis(e){return getOppositeAxis(getSideAxis(e))}function getAlignmentSides(e,s,a){a===void 0&&(a=!1);const c=getAlignment(e),g=getAlignmentAxis(e),et=getAxisLength(g);let rt=g==="x"?c===(a?"end":"start")?"right":"left":c==="start"?"bottom":"top";return s.reference[et]>s.floating[et]&&(rt=getOppositePlacement(rt)),[rt,getOppositePlacement(rt)]}function getExpandedPlacements(e){const s=getOppositePlacement(e);return[getOppositeAlignmentPlacement(e),s,getOppositeAlignmentPlacement(s)]}function getOppositeAlignmentPlacement(e){return e.replace(/start|end/g,s=>oppositeAlignmentMap[s])}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(e,s,a){switch(e){case"top":case"bottom":return a?s?rlPlacement:lrPlacement:s?lrPlacement:rlPlacement;case"left":case"right":return s?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(e,s,a,c){const g=getAlignment(e);let et=getSideList(getSide(e),a==="start",c);return g&&(et=et.map(rt=>rt+"-"+g),s&&(et=et.concat(et.map(getOppositeAlignmentPlacement)))),et}function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,s=>oppositeSideMap[s])}function expandPaddingObject(e){return{top:0,right:0,bottom:0,left:0,...e}}function getPaddingObject(e){return typeof e!="number"?expandPaddingObject(e):{top:e,right:e,bottom:e,left:e}}function rectToClientRect(e){const{x:s,y:a,width:c,height:g}=e;return{width:c,height:g,top:a,left:s,right:s+c,bottom:a+g,x:s,y:a}}function computeCoordsFromPlacement(e,s,a){let{reference:c,floating:g}=e;const et=getSideAxis(s),rt=getAlignmentAxis(s),nt=getAxisLength(rt),st=getSide(s),at=et==="y",it=c.x+c.width/2-g.width/2,ot=c.y+c.height/2-g.height/2,lt=c[nt]/2-g[nt]/2;let ct;switch(st){case"top":ct={x:it,y:c.y-g.height};break;case"bottom":ct={x:it,y:c.y+c.height};break;case"right":ct={x:c.x+c.width,y:ot};break;case"left":ct={x:c.x-g.width,y:ot};break;default:ct={x:c.x,y:c.y}}switch(getAlignment(s)){case"start":ct[rt]-=lt*(a&&at?-1:1);break;case"end":ct[rt]+=lt*(a&&at?-1:1);break}return ct}const computePosition$1=async(e,s,a)=>{const{placement:c="bottom",strategy:g="absolute",middleware:et=[],platform:rt}=a,nt=et.filter(Boolean),st=await(rt.isRTL==null?void 0:rt.isRTL(s));let at=await rt.getElementRects({reference:e,floating:s,strategy:g}),{x:it,y:ot}=computeCoordsFromPlacement(at,c,st),lt=c,ct={},dt=0;for(let ut=0;ut<nt.length;ut++){const{name:xt,fn:gt}=nt[ut],{x:ht,y:mt,data:kt,reset:Ct}=await gt({x:it,y:ot,initialPlacement:c,placement:lt,strategy:g,middlewareData:ct,rects:at,platform:rt,elements:{reference:e,floating:s}});it=ht??it,ot=mt??ot,ct={...ct,[xt]:{...ct[xt],...kt}},Ct&&dt<=50&&(dt++,typeof Ct=="object"&&(Ct.placement&&(lt=Ct.placement),Ct.rects&&(at=Ct.rects===!0?await rt.getElementRects({reference:e,floating:s,strategy:g}):Ct.rects),{x:it,y:ot}=computeCoordsFromPlacement(at,lt,st)),ut=-1)}return{x:it,y:ot,placement:lt,strategy:g,middlewareData:ct}};async function detectOverflow(e,s){var a;s===void 0&&(s={});const{x:c,y:g,platform:et,rects:rt,elements:nt,strategy:st}=e,{boundary:at="clippingAncestors",rootBoundary:it="viewport",elementContext:ot="floating",altBoundary:lt=!1,padding:ct=0}=evaluate(s,e),dt=getPaddingObject(ct),xt=nt[lt?ot==="floating"?"reference":"floating":ot],gt=rectToClientRect(await et.getClippingRect({element:(a=await(et.isElement==null?void 0:et.isElement(xt)))==null||a?xt:xt.contextElement||await(et.getDocumentElement==null?void 0:et.getDocumentElement(nt.floating)),boundary:at,rootBoundary:it,strategy:st})),ht=ot==="floating"?{x:c,y:g,width:rt.floating.width,height:rt.floating.height}:rt.reference,mt=await(et.getOffsetParent==null?void 0:et.getOffsetParent(nt.floating)),kt=await(et.isElement==null?void 0:et.isElement(mt))?await(et.getScale==null?void 0:et.getScale(mt))||{x:1,y:1}:{x:1,y:1},Ct=rectToClientRect(et.convertOffsetParentRelativeRectToViewportRelativeRect?await et.convertOffsetParentRelativeRectToViewportRelativeRect({elements:nt,rect:ht,offsetParent:mt,strategy:st}):ht);return{top:(gt.top-Ct.top+dt.top)/kt.y,bottom:(Ct.bottom-gt.bottom+dt.bottom)/kt.y,left:(gt.left-Ct.left+dt.left)/kt.x,right:(Ct.right-gt.right+dt.right)/kt.x}}const arrow$3=e=>({name:"arrow",options:e,async fn(s){const{x:a,y:c,placement:g,rects:et,platform:rt,elements:nt,middlewareData:st}=s,{element:at,padding:it=0}=evaluate(e,s)||{};if(at==null)return{};const ot=getPaddingObject(it),lt={x:a,y:c},ct=getAlignmentAxis(g),dt=getAxisLength(ct),ut=await rt.getDimensions(at),xt=ct==="y",gt=xt?"top":"left",ht=xt?"bottom":"right",mt=xt?"clientHeight":"clientWidth",kt=et.reference[dt]+et.reference[ct]-lt[ct]-et.floating[dt],Ct=lt[ct]-et.reference[ct],Tt=await(rt.getOffsetParent==null?void 0:rt.getOffsetParent(at));let Pt=Tt?Tt[mt]:0;(!Pt||!await(rt.isElement==null?void 0:rt.isElement(Tt)))&&(Pt=nt.floating[mt]||et.floating[dt]);const At=kt/2-Ct/2,Gt=Pt/2-ut[dt]/2-1,Mt=min(ot[gt],Gt),zt=min(ot[ht],Gt),Jt=Mt,nr=Pt-ut[dt]-zt,er=Pt/2-ut[dt]/2+At,ur=clamp$1(Jt,er,nr),qt=!st.arrow&&getAlignment(g)!=null&&er!==ur&&et.reference[dt]/2-(er<Jt?Mt:zt)-ut[dt]/2<0,or=qt?er<Jt?er-Jt:er-nr:0;return{[ct]:lt[ct]+or,data:{[ct]:ur,centerOffset:er-ur-or,...qt&&{alignmentOffset:or}},reset:qt}}}),flip$2=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(s){var a,c;const{placement:g,middlewareData:et,rects:rt,initialPlacement:nt,platform:st,elements:at}=s,{mainAxis:it=!0,crossAxis:ot=!0,fallbackPlacements:lt,fallbackStrategy:ct="bestFit",fallbackAxisSideDirection:dt="none",flipAlignment:ut=!0,...xt}=evaluate(e,s);if((a=et.arrow)!=null&&a.alignmentOffset)return{};const gt=getSide(g),ht=getSideAxis(nt),mt=getSide(nt)===nt,kt=await(st.isRTL==null?void 0:st.isRTL(at.floating)),Ct=lt||(mt||!ut?[getOppositePlacement(nt)]:getExpandedPlacements(nt)),Tt=dt!=="none";!lt&&Tt&&Ct.push(...getOppositeAxisPlacements(nt,ut,dt,kt));const Pt=[nt,...Ct],At=await detectOverflow(s,xt),Gt=[];let Mt=((c=et.flip)==null?void 0:c.overflows)||[];if(it&&Gt.push(At[gt]),ot){const er=getAlignmentSides(g,rt,kt);Gt.push(At[er[0]],At[er[1]])}if(Mt=[...Mt,{placement:g,overflows:Gt}],!Gt.every(er=>er<=0)){var zt,Jt;const er=(((zt=et.flip)==null?void 0:zt.index)||0)+1,ur=Pt[er];if(ur&&(!(ot==="alignment"?ht!==getSideAxis(ur):!1)||Mt.every(Dt=>Dt.overflows[0]>0&&getSideAxis(Dt.placement)===ht)))return{data:{index:er,overflows:Mt},reset:{placement:ur}};let qt=(Jt=Mt.filter(or=>or.overflows[0]<=0).sort((or,Dt)=>or.overflows[1]-Dt.overflows[1])[0])==null?void 0:Jt.placement;if(!qt)switch(ct){case"bestFit":{var nr;const or=(nr=Mt.filter(Dt=>{if(Tt){const Ht=getSideAxis(Dt.placement);return Ht===ht||Ht==="y"}return!0}).map(Dt=>[Dt.placement,Dt.overflows.filter(Ht=>Ht>0).reduce((Ht,Xt)=>Ht+Xt,0)]).sort((Dt,Ht)=>Dt[1]-Ht[1])[0])==null?void 0:nr[0];or&&(qt=or);break}case"initialPlacement":qt=nt;break}if(g!==qt)return{reset:{placement:qt}}}return{}}}};function getSideOffsets(e,s){return{top:e.top-s.height,right:e.right-s.width,bottom:e.bottom-s.height,left:e.left-s.width}}function isAnySideFullyClipped(e){return sides.some(s=>e[s]>=0)}const hide$2=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(s){const{rects:a}=s,{strategy:c="referenceHidden",...g}=evaluate(e,s);switch(c){case"referenceHidden":{const et=await detectOverflow(s,{...g,elementContext:"reference"}),rt=getSideOffsets(et,a.reference);return{data:{referenceHiddenOffsets:rt,referenceHidden:isAnySideFullyClipped(rt)}}}case"escaped":{const et=await detectOverflow(s,{...g,altBoundary:!0}),rt=getSideOffsets(et,a.floating);return{data:{escapedOffsets:rt,escaped:isAnySideFullyClipped(rt)}}}default:return{}}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(e,s){const{placement:a,platform:c,elements:g}=e,et=await(c.isRTL==null?void 0:c.isRTL(g.floating)),rt=getSide(a),nt=getAlignment(a),st=getSideAxis(a)==="y",at=originSides.has(rt)?-1:1,it=et&&st?-1:1,ot=evaluate(s,e);let{mainAxis:lt,crossAxis:ct,alignmentAxis:dt}=typeof ot=="number"?{mainAxis:ot,crossAxis:0,alignmentAxis:null}:{mainAxis:ot.mainAxis||0,crossAxis:ot.crossAxis||0,alignmentAxis:ot.alignmentAxis};return nt&&typeof dt=="number"&&(ct=nt==="end"?dt*-1:dt),st?{x:ct*it,y:lt*at}:{x:lt*at,y:ct*it}}const offset$2=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(s){var a,c;const{x:g,y:et,placement:rt,middlewareData:nt}=s,st=await convertValueToCoords(s,e);return rt===((a=nt.offset)==null?void 0:a.placement)&&(c=nt.arrow)!=null&&c.alignmentOffset?{}:{x:g+st.x,y:et+st.y,data:{...st,placement:rt}}}}},shift$3=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(s){const{x:a,y:c,placement:g}=s,{mainAxis:et=!0,crossAxis:rt=!1,limiter:nt={fn:xt=>{let{x:gt,y:ht}=xt;return{x:gt,y:ht}}},...st}=evaluate(e,s),at={x:a,y:c},it=await detectOverflow(s,st),ot=getSideAxis(getSide(g)),lt=getOppositeAxis(ot);let ct=at[lt],dt=at[ot];if(et){const xt=lt==="y"?"top":"left",gt=lt==="y"?"bottom":"right",ht=ct+it[xt],mt=ct-it[gt];ct=clamp$1(ht,ct,mt)}if(rt){const xt=ot==="y"?"top":"left",gt=ot==="y"?"bottom":"right",ht=dt+it[xt],mt=dt-it[gt];dt=clamp$1(ht,dt,mt)}const ut=nt.fn({...s,[lt]:ct,[ot]:dt});return{...ut,data:{x:ut.x-a,y:ut.y-c,enabled:{[lt]:et,[ot]:rt}}}}}},limitShift$2=function(e){return e===void 0&&(e={}),{options:e,fn(s){const{x:a,y:c,placement:g,rects:et,middlewareData:rt}=s,{offset:nt=0,mainAxis:st=!0,crossAxis:at=!0}=evaluate(e,s),it={x:a,y:c},ot=getSideAxis(g),lt=getOppositeAxis(ot);let ct=it[lt],dt=it[ot];const ut=evaluate(nt,s),xt=typeof ut=="number"?{mainAxis:ut,crossAxis:0}:{mainAxis:0,crossAxis:0,...ut};if(st){const mt=lt==="y"?"height":"width",kt=et.reference[lt]-et.floating[mt]+xt.mainAxis,Ct=et.reference[lt]+et.reference[mt]-xt.mainAxis;ct<kt?ct=kt:ct>Ct&&(ct=Ct)}if(at){var gt,ht;const mt=lt==="y"?"width":"height",kt=originSides.has(getSide(g)),Ct=et.reference[ot]-et.floating[mt]+(kt&&((gt=rt.offset)==null?void 0:gt[ot])||0)+(kt?0:xt.crossAxis),Tt=et.reference[ot]+et.reference[mt]+(kt?0:((ht=rt.offset)==null?void 0:ht[ot])||0)-(kt?xt.crossAxis:0);dt<Ct?dt=Ct:dt>Tt&&(dt=Tt)}return{[lt]:ct,[ot]:dt}}}},size$2=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(s){var a,c;const{placement:g,rects:et,platform:rt,elements:nt}=s,{apply:st=()=>{},...at}=evaluate(e,s),it=await detectOverflow(s,at),ot=getSide(g),lt=getAlignment(g),ct=getSideAxis(g)==="y",{width:dt,height:ut}=et.floating;let xt,gt;ot==="top"||ot==="bottom"?(xt=ot,gt=lt===(await(rt.isRTL==null?void 0:rt.isRTL(nt.floating))?"start":"end")?"left":"right"):(gt=ot,xt=lt==="end"?"top":"bottom");const ht=ut-it.top-it.bottom,mt=dt-it.left-it.right,kt=min(ut-it[xt],ht),Ct=min(dt-it[gt],mt),Tt=!s.middlewareData.shift;let Pt=kt,At=Ct;if((a=s.middlewareData.shift)!=null&&a.enabled.x&&(At=mt),(c=s.middlewareData.shift)!=null&&c.enabled.y&&(Pt=ht),Tt&&!lt){const Mt=max(it.left,0),zt=max(it.right,0),Jt=max(it.top,0),nr=max(it.bottom,0);ct?At=dt-2*(Mt!==0||zt!==0?Mt+zt:max(it.left,it.right)):Pt=ut-2*(Jt!==0||nr!==0?Jt+nr:max(it.top,it.bottom))}await st({...s,availableWidth:At,availableHeight:Pt});const Gt=await rt.getDimensions(nt.floating);return dt!==Gt.width||ut!==Gt.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return typeof window<"u"}function getNodeName(e){return isNode(e)?(e.nodeName||"").toLowerCase():"#document"}function getWindow(e){var s;return(e==null||(s=e.ownerDocument)==null?void 0:s.defaultView)||window}function getDocumentElement(e){var s;return(s=(isNode(e)?e.ownerDocument:e.document)||window.document)==null?void 0:s.documentElement}function isNode(e){return hasWindow()?e instanceof Node||e instanceof getWindow(e).Node:!1}function isElement(e){return hasWindow()?e instanceof Element||e instanceof getWindow(e).Element:!1}function isHTMLElement(e){return hasWindow()?e instanceof HTMLElement||e instanceof getWindow(e).HTMLElement:!1}function isShadowRoot(e){return!hasWindow()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof getWindow(e).ShadowRoot}const invalidOverflowDisplayValues=new Set(["inline","contents"]);function isOverflowElement(e){const{overflow:s,overflowX:a,overflowY:c,display:g}=getComputedStyle$1(e);return/auto|scroll|overlay|hidden|clip/.test(s+c+a)&&!invalidOverflowDisplayValues.has(g)}const tableElements=new Set(["table","td","th"]);function isTableElement(e){return tableElements.has(getNodeName(e))}const topLayerSelectors=[":popover-open",":modal"];function isTopLayer(e){return topLayerSelectors.some(s=>{try{return e.matches(s)}catch{return!1}})}const transformProperties=["transform","translate","scale","rotate","perspective"],willChangeValues=["transform","translate","scale","rotate","perspective","filter"],containValues=["paint","layout","strict","content"];function isContainingBlock(e){const s=isWebKit(),a=isElement(e)?getComputedStyle$1(e):e;return transformProperties.some(c=>a[c]?a[c]!=="none":!1)||(a.containerType?a.containerType!=="normal":!1)||!s&&(a.backdropFilter?a.backdropFilter!=="none":!1)||!s&&(a.filter?a.filter!=="none":!1)||willChangeValues.some(c=>(a.willChange||"").includes(c))||containValues.some(c=>(a.contain||"").includes(c))}function getContainingBlock(e){let s=getParentNode(e);for(;isHTMLElement(s)&&!isLastTraversableNode(s);){if(isContainingBlock(s))return s;if(isTopLayer(s))return null;s=getParentNode(s)}return null}function isWebKit(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const lastTraversableNodeNames=new Set(["html","body","#document"]);function isLastTraversableNode(e){return lastTraversableNodeNames.has(getNodeName(e))}function getComputedStyle$1(e){return getWindow(e).getComputedStyle(e)}function getNodeScroll(e){return isElement(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}
vendor: 4,217 bytes, line 466
466function getParentNode(e){if(getNodeName(e)==="html")return e;const s=e.assignedSlot||e.parentNode||isShadowRoot(e)&&e.host||getDocumentElement(e);return isShadowRoot(s)?s.host:s}function getNearestOverflowAncestor(e){const s=getParentNode(e);return isLastTraversableNode(s)?e.ownerDocument?e.ownerDocument.body:e.body:isHTMLElement(s)&&isOverflowElement(s)?s:getNearestOverflowAncestor(s)}function getOverflowAncestors(e,s,a){var c;s===void 0&&(s=[]),a===void 0&&(a=!0);const g=getNearestOverflowAncestor(e),et=g===((c=e.ownerDocument)==null?void 0:c.body),rt=getWindow(g);if(et){const nt=getFrameElement(rt);return s.concat(rt,rt.visualViewport||[],isOverflowElement(g)?g:[],nt&&a?getOverflowAncestors(nt):[])}return s.concat(g,getOverflowAncestors(g,[],a))}function getFrameElement(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function getCssDimensions(e){const s=getComputedStyle$1(e);let a=parseFloat(s.width)||0,c=parseFloat(s.height)||0;const g=isHTMLElement(e),et=g?e.offsetWidth:a,rt=g?e.offsetHeight:c,nt=round(a)!==et||round(c)!==rt;return nt&&(a=et,c=rt),{width:a,height:c,$:nt}}function unwrapElement(e){return isElement(e)?e:e.contextElement}function getScale(e){const s=unwrapElement(e);if(!isHTMLElement(s))return createCoords(1);const a=s.getBoundingClientRect(),{width:c,height:g,$:et}=getCssDimensions(s);let rt=(et?round(a.width):a.width)/c,nt=(et?round(a.height):a.height)/g;return(!rt||!Number.isFinite(rt))&&(rt=1),(!nt||!Number.isFinite(nt))&&(nt=1),{x:rt,y:nt}}const noOffsets=createCoords(0);function getVisualOffsets(e){const s=getWindow(e);return!isWebKit()||!s.visualViewport?noOffsets:{x:s.visualViewport.offsetLeft,y:s.visualViewport.offsetTop}}function shouldAddVisualOffsets(e,s,a){return s===void 0&&(s=!1),!a||s&&a!==getWindow(e)?!1:s}function getBoundingClientRect(e,s,a,c){s===void 0&&(s=!1),a===void 0&&(a=!1);const g=e.getBoundingClientRect(),et=unwrapElement(e);let rt=createCoords(1);s&&(c?isElement(c)&&(rt=getScale(c)):rt=getScale(e));const nt=shouldAddVisualOffsets(et,a,c)?getVisualOffsets(et):createCoords(0);let st=(g.left+nt.x)/rt.x,at=(g.top+nt.y)/rt.y,it=g.width/rt.x,ot=g.height/rt.y;if(et){const lt=getWindow(et),ct=c&&isElement(c)?getWindow(c):c;let dt=lt,ut=getFrameElement(dt);for(;ut&&c&&ct!==dt;){const xt=getScale(ut),gt=ut.getBoundingClientRect(),ht=getComputedStyle$1(ut),mt=gt.left+(ut.clientLeft+parseFloat(ht.paddingLeft))*xt.x,kt=gt.top+(ut.clientTop+parseFloat(ht.paddingTop))*xt.y;st*=xt.x,at*=xt.y,it*=xt.x,ot*=xt.y,st+=mt,at+=kt,dt=getWindow(ut),ut=getFrameElement(dt)}}return rectToClientRect({width:it,height:ot,x:st,y:at})}function getWindowScrollBarX(e,s){const a=getNodeScroll(e).scrollLeft;return s?s.left+a:getBoundingClientRect(getDocumentElement(e)).left+a}function getHTMLOffset(e,s,a){a===void 0&&(a=!1);const c=e.getBoundingClientRect(),g=c.left+s.scrollLeft-(a?0:getWindowScrollBarX(e,c)),et=c.top+s.scrollTop;return{x:g,y:et}}function convertOffsetParentRelativeRectToViewportRelativeRect(e){let{elements:s,rect:a,offsetParent:c,strategy:g}=e;const et=g==="fixed",rt=getDocumentElement(c),nt=s?isTopLayer(s.floating):!1;if(c===rt||nt&&et)return a;let st={scrollLeft:0,scrollTop:0},at=createCoords(1);const it=createCoords(0),ot=isHTMLElement(c);if((ot||!ot&&!et)&&((getNodeName(c)!=="body"||isOverflowElement(rt))&&(st=getNodeScroll(c)),isHTMLElement(c))){const ct=getBoundingClientRect(c);at=getScale(c),it.x=ct.x+c.clientLeft,it.y=ct.y+c.clientTop}const lt=rt&&!ot&&!et?getHTMLOffset(rt,st,!0):createCoords(0);return{width:a.width*at.x,height:a.height*at.y,x:a.x*at.x-st.scrollLeft*at.x+it.x+lt.x,y:a.y*at.y-st.scrollTop*at.y+it.y+lt.y}}function getClientRects(e){return Array.from(e.getClientRects())}function getDocumentRect(e){const s=getDocumentElement(e),a=getNodeScroll(e),c=e.ownerDocument.body,g=max(s.scrollWidth,s.clientWidth,c.scrollWidth,c.clientWidth),et=max(s.scrollHeight,s.clientHeight,c.scrollHeight,c.clientHeight);let rt=-a.scrollLeft+getWindowScrollBarX(e);const nt=-a.scrollTop;return getComputedStyle$1(c).direction==="rtl"&&(rt+=max(s.clientWidth,c.clientWidth)-g),{width:g,height:et,x:rt,y:nt}}function getViewportRect(e,s){const a=getWindow(e),c=getDocumentElement(e),g=a.visualVie
vendor: 14,605 bytes, line 466
466wport;let et=c.clientWidth,rt=c.clientHeight,nt=0,st=0;if(g){et=g.width,rt=g.height;const at=isWebKit();(!at||at&&s==="fixed")&&(nt=g.offsetLeft,st=g.offsetTop)}return{width:et,height:rt,x:nt,y:st}}const absoluteOrFixed=new Set(["absolute","fixed"]);function getInnerBoundingClientRect(e,s){const a=getBoundingClientRect(e,!0,s==="fixed"),c=a.top+e.clientTop,g=a.left+e.clientLeft,et=isHTMLElement(e)?getScale(e):createCoords(1),rt=e.clientWidth*et.x,nt=e.clientHeight*et.y,st=g*et.x,at=c*et.y;return{width:rt,height:nt,x:st,y:at}}function getClientRectFromClippingAncestor(e,s,a){let c;if(s==="viewport")c=getViewportRect(e,a);else if(s==="document")c=getDocumentRect(getDocumentElement(e));else if(isElement(s))c=getInnerBoundingClientRect(s,a);else{const g=getVisualOffsets(e);c={x:s.x-g.x,y:s.y-g.y,width:s.width,height:s.height}}return rectToClientRect(c)}function hasFixedPositionAncestor(e,s){const a=getParentNode(e);return a===s||!isElement(a)||isLastTraversableNode(a)?!1:getComputedStyle$1(a).position==="fixed"||hasFixedPositionAncestor(a,s)}function getClippingElementAncestors(e,s){const a=s.get(e);if(a)return a;let c=getOverflowAncestors(e,[],!1).filter(nt=>isElement(nt)&&getNodeName(nt)!=="body"),g=null;const et=getComputedStyle$1(e).position==="fixed";let rt=et?getParentNode(e):e;for(;isElement(rt)&&!isLastTraversableNode(rt);){const nt=getComputedStyle$1(rt),st=isContainingBlock(rt);!st&&nt.position==="fixed"&&(g=null),(et?!st&&!g:!st&&nt.position==="static"&&!!g&&absoluteOrFixed.has(g.position)||isOverflowElement(rt)&&!st&&hasFixedPositionAncestor(e,rt))?c=c.filter(it=>it!==rt):g=nt,rt=getParentNode(rt)}return s.set(e,c),c}function getClippingRect(e){let{element:s,boundary:a,rootBoundary:c,strategy:g}=e;const rt=[...a==="clippingAncestors"?isTopLayer(s)?[]:getClippingElementAncestors(s,this._c):[].concat(a),c],nt=rt[0],st=rt.reduce((at,it)=>{const ot=getClientRectFromClippingAncestor(s,it,g);return at.top=max(ot.top,at.top),at.right=min(ot.right,at.right),at.bottom=min(ot.bottom,at.bottom),at.left=max(ot.left,at.left),at},getClientRectFromClippingAncestor(s,nt,g));return{width:st.right-st.left,height:st.bottom-st.top,x:st.left,y:st.top}}function getDimensions(e){const{width:s,height:a}=getCssDimensions(e);return{width:s,height:a}}function getRectRelativeToOffsetParent(e,s,a){const c=isHTMLElement(s),g=getDocumentElement(s),et=a==="fixed",rt=getBoundingClientRect(e,!0,et,s);let nt={scrollLeft:0,scrollTop:0};const st=createCoords(0);function at(){st.x=getWindowScrollBarX(g)}if(c||!c&&!et)if((getNodeName(s)!=="body"||isOverflowElement(g))&&(nt=getNodeScroll(s)),c){const ct=getBoundingClientRect(s,!0,et,s);st.x=ct.x+s.clientLeft,st.y=ct.y+s.clientTop}else g&&at();et&&!c&&g&&at();const it=g&&!c&&!et?getHTMLOffset(g,nt):createCoords(0),ot=rt.left+nt.scrollLeft-st.x-it.x,lt=rt.top+nt.scrollTop-st.y-it.y;return{x:ot,y:lt,width:rt.width,height:rt.height}}function isStaticPositioned(e){return getComputedStyle$1(e).position==="static"}function getTrueOffsetParent(e,s){if(!isHTMLElement(e)||getComputedStyle$1(e).position==="fixed")return null;if(s)return s(e);let a=e.offsetParent;return getDocumentElement(e)===a&&(a=a.ownerDocument.body),a}function getOffsetParent(e,s){const a=getWindow(e);if(isTopLayer(e))return a;if(!isHTMLElement(e)){let g=getParentNode(e);for(;g&&!isLastTraversableNode(g);){if(isElement(g)&&!isStaticPositioned(g))return g;g=getParentNode(g)}return a}let c=getTrueOffsetParent(e,s);for(;c&&isTableElement(c)&&isStaticPositioned(c);)c=getTrueOffsetParent(c,s);return c&&isLastTraversableNode(c)&&isStaticPositioned(c)&&!isContainingBlock(c)?a:c||getContainingBlock(e)||a}const getElementRects=async function(e){const s=this.getOffsetParent||getOffsetParent,a=this.getDimensions,c=await a(e.floating);return{reference:getRectRelativeToOffsetParent(e.reference,await s(e.floating),e.strategy),floating:{x:0,y:0,width:c.width,height:c.height}}};function isRTL(e){return getComputedStyle$1(e).direction==="rtl"}const platform={convertOffsetParentRelativeRectToViewportRelativeRect,getDocumentElement,getClippingRect,getOffsetParent,getElementRects,getClientRects,getDimensions,getScale,isElement,isRTL};function rectsAreEqual(e,s){return e.x===s.x&&e.y===s.y&&e.width===s.width&&e.height===s.height}function observeMove(e,s){let a=null,c;const g=getDocumentElement(e);function et(){var nt;clearTimeout(c),(nt=a)==null||nt.disconnect(),a=null}function rt(nt,st){nt===void 0&&(nt=!1),st===void 0&&(st=1),et();const at=e.getBoundingClientRect(),{left:it,top:ot,width:lt,height:ct}=at;if(nt||s(),!lt||!ct)return;const dt=floor(ot),ut=floor(g.clientWidth-(it+lt)),xt=floor(g.clientHeight-(ot+ct)),gt=floor(it),mt={rootMargin:-dt+"px "+-ut+"px "+-xt+"px "+-gt+"px",threshold:max(0,min(1,st))||1};let kt=!0;function Ct(Tt){const Pt=Tt[0].intersectionRatio;if(Pt!==st){if(!kt)return rt();Pt?rt(!1,Pt):c=setTimeout(()=>{rt(!1,1e-7)},1e3)}Pt===1&&!rectsAreEqual(at,e.getBoundingClientRect())&&rt(),kt=!1}try{a=new IntersectionObserver(Ct,{...mt,root:g.ownerDocument})}catch{a=new IntersectionObserver(Ct,mt)}a.observe(e)}return rt(!0),et}function autoUpdate(e,s,a,c){c===void 0&&(c={});const{ancestorScroll:g=!0,ancestorResize:et=!0,elementResize:rt=typeof ResizeObserver=="function",layoutShift:nt=typeof IntersectionObserver=="function",animationFrame:st=!1}=c,at=unwrapElement(e),it=g||et?[...at?getOverflowAncestors(at):[],...getOverflowAncestors(s)]:[];it.forEach(gt=>{g&>.addEventListener("scroll",a,{passive:!0}),et&>.addEventListener("resize",a)});const ot=at&&nt?observeMove(at,a):null;let lt=-1,ct=null;rt&&(ct=new ResizeObserver(gt=>{let[ht]=gt;ht&&ht.target===at&&ct&&(ct.unobserve(s),cancelAnimationFrame(lt),lt=requestAnimationFrame(()=>{var mt;(mt=ct)==null||mt.observe(s)})),a()}),at&&!st&&ct.observe(at),ct.observe(s));let dt,ut=st?getBoundingClientRect(e):null;st&&xt();function xt(){const gt=getBoundingClientRect(e);ut&&!rectsAreEqual(ut,gt)&&a(),ut=gt,dt=requestAnimationFrame(xt)}return a(),()=>{var gt;it.forEach(ht=>{g&&ht.removeEventListener("scroll",a),et&&ht.removeEventListener("resize",a)}),ot==null||ot(),(gt=ct)==null||gt.disconnect(),ct=null,st&&cancelAnimationFrame(dt)}}const offset$1=offset$2,shift$2=shift$3,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(e,s,a)=>{const c=new Map,g={platform,...a},et={...g.platform,_c:c};return computePosition$1(e,s,{...g,platform:et})};var isClient=typeof document<"u",noop$1=function(){},index=isClient?reactExports.useLayoutEffect:noop$1;function deepEqual(e,s){if(e===s)return!0;if(typeof e!=typeof s)return!1;if(typeof e=="function"&&e.toString()===s.toString())return!0;let a,c,g;if(e&&s&&typeof e=="object"){if(Array.isArray(e)){if(a=e.length,a!==s.length)return!1;for(c=a;c--!==0;)if(!deepEqual(e[c],s[c]))return!1;return!0}if(g=Object.keys(e),a=g.length,a!==Object.keys(s).length)return!1;for(c=a;c--!==0;)if(!{}.hasOwnProperty.call(s,g[c]))return!1;for(c=a;c--!==0;){const et=g[c];if(!(et==="_owner"&&e.$$typeof)&&!deepEqual(e[et],s[et]))return!1}return!0}return e!==e&&s!==s}function getDPR(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(e,s){const a=getDPR(e);return Math.round(s*a)/a}function useLatestRef(e){const s=reactExports.useRef(e);return index(()=>{s.current=e}),s}function useFloating(e){e===void 0&&(e={});const{placement:s="bottom",strategy:a="absolute",middleware:c=[],platform:g,elements:{reference:et,floating:rt}={},transform:nt=!0,whileElementsMounted:st,open:at}=e,[it,ot]=reactExports.useState({x:0,y:0,strategy:a,placement:s,middlewareData:{},isPositioned:!1}),[lt,ct]=reactExports.useState(c);deepEqual(lt,c)||ct(c);const[dt,ut]=reactExports.useState(null),[xt,gt]=reactExports.useState(null),ht=reactExports.useCallback(Dt=>{Dt!==Tt.current&&(Tt.current=Dt,ut(Dt))},[]),mt=reactExports.useCallback(Dt=>{Dt!==Pt.current&&(Pt.current=Dt,gt(Dt))},[]),kt=et||dt,Ct=rt||xt,Tt=reactExports.useRef(null),Pt=reactExports.useRef(null),At=reactExports.useRef(it),Gt=st!=null,Mt=useLatestRef(st),zt=useLatestRef(g),Jt=useLatestRef(at),nr=reactExports.useCallback(()=>{if(!Tt.current||!Pt.current)return;const Dt={placement:s,strategy:a,middleware:lt};zt.current&&(Dt.platform=zt.current),computePosition(Tt.current,Pt.current,Dt).then(Ht=>{const Xt={...Ht,isPositioned:Jt.current!==!1};er.current&&!deepEqual(At.current,Xt)&&(At.current=Xt,reactDomExports.flushSync(()=>{ot(Xt)}))})},[lt,s,a,zt,Jt]);index(()=>{at===!1&&At.current.isPositioned&&(At.current.isPositioned=!1,ot(Dt=>({...Dt,isPositioned:!1})))},[at]);const er=reactExports.useRef(!1);index(()=>(er.current=!0,()=>{er.current=!1}),[]),index(()=>{if(kt&&(Tt.current=kt),Ct&&(Pt.current=Ct),kt&&Ct){if(Mt.current)return Mt.current(kt,Ct,nr);nr()}},[kt,Ct,nr,Mt,Gt]);const ur=reactExports.useMemo(()=>({reference:Tt,floating:Pt,setReference:ht,setFloating:mt}),[ht,mt]),qt=reactExports.useMemo(()=>({reference:kt,floating:Ct}),[kt,Ct]),or=reactExports.useMemo(()=>{const Dt={position:a,left:0,top:0};if(!qt.floating)return Dt;const Ht=roundByDPR(qt.floating,it.x),Xt=roundByDPR(qt.floating,it.y);return nt?{...Dt,transform:"translate("+Ht+"px, "+Xt+"px)",...getDPR(qt.floating)>=1.5&&{willChange:"transform"}}:{position:a,left:Ht,top:Xt}},[a,nt,qt.floating,it.x,it.y]);return reactExports.useMemo(()=>({...it,update:nr,refs:ur,elements:qt,floatingStyles:or}),[it,nr,ur,qt,or])}const arrow$1=e=>{function s(a){return{}.hasOwnProperty.call(a,"current")}return{name:"arrow",options:e,fn(a){const{element:c,padding:g}=typeof e=="function"?e(a):e;return c&&s(c)?c.current!=null?arrow$2({element:c.current,padding:g}).fn(a):{}:c?arrow$2({element:c,padding:g}).fn(a):{}}}},offset=(e,s)=>({...offset$1(e),options:[e,s]}),shift$1=(e,s)=>({...shift$2(e),options:[e,s]}),limitShift=(e,s)=>({...limitShift$1(e),options:[e,s]}),flip=(e,s)=>({...flip$1(e),options:[e,s]}),size=(e,s)=>({...size$1(e),options:[e,s]}),hide=(e,s)=>({...hide$1(e),options:[e,s]}),arrow=(e,s)=>({...arrow$1(e),options:[e,s]});var NAME$1="Arrow",Arrow$1=reactExports.forwardRef((e,s)=>{const{children:a,width:c=10,height:g=5,...et}=e;return jsxRuntimeExports.jsx(Primitive.svg,{...et,ref:s,width:c,height:g,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?a:jsxRuntimeExports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME$1;var Root$3=Arrow$1;function useSize(e){const[s,a]=reactExports.useState(void 0);return useLayoutEffect2(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});const c=new ResizeObserver(g=>{if(!Array.isArray(g)||!g.length)return;const et=g[0];let rt,nt;if("borderBoxSize"in et){const st=et.borderBoxSize,at=Array.isArray(st)?st[0]:st;rt=at.inlineSize,nt=at.blockSize}else rt=e.offsetWidth,nt=e.offsetHeight;a({width:rt,height:nt})});return c.observe(e,{box:"border-box"}),()=>c.unobserve(e)}else a(void 0)},[e]),s}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=e=>{const{__scopePopper:s,children:a}=e,[c,g]=reactExports.useState(null);return jsxRuntimeExports.jsx(PopperProvider,{scope:s,anchor:c,onAnchorChange:g,children:a})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME="PopperAnchor",PopperAnchor=reactExports.forwardRef((e,s)=>{const{__scopePopper:a,virtualRef:c,...g}=e,et=usePopperContext(ANCHOR_NAME,a),rt=reactExports.useRef(null),nt=useComposedRefs(s,rt);return reactExports.useEffect(()=>{et.onAnchorChange((c==null?void 0:c.current)||rt.current)}),c?null:jsxRuntimeExports.jsx(Primitive.div,{...g,ref:nt})});PopperAnchor.displayName=ANCHOR_NAME;var CONTENT_NAME$3="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$3),PopperContent=reactExports.forwardRef((e,s)=>{var tr,hr,Vt,sr,Lt,Kt;const{__scopePopper:a,side:c="bottom",sideOffset:g=0,align:et="center",alignOffset:rt=0,arrowPadding:nt=0,avoidCollisions:st=!0,collisionBoundary:at=[],collisionPadding:it=0,sticky:ot="partial",hideWhenDetached:lt=!1,updatePositionStrategy:ct="optimized",onPlaced:dt,...ut}=e,xt=usePopperContext(CONTENT_NAME$3,a),[gt,ht]=reactExports.useState(null),mt=useComposedRefs(s,mr=>ht(mr)),[kt,Ct]=reactExports.useState(null),Tt=useSize(kt),Pt=(Tt==null?void 0:Tt.width)??0,At=(Tt==null?void 0:Tt.height)??0,Gt=c+(et!=="center"?"-"+et:""),Mt=typeof it=="number"?it:{top:0,right:0,bottom:0,left:0,...it},zt=Array.isArray(at)?at:[at],Jt=zt.length>0,nr={padding:Mt,boundary:zt.filter(isNotNull),altBoundary:Jt},{refs:er,floatingStyles:ur,placement:qt,isPositioned:or,middlewareData:Dt}=useFloating({strategy:"fixed",placement:Gt,whileElementsMounted:(...mr)=>autoUpdate(...mr,{animationFrame:ct==="always"}),elements:{reference:xt.anchor},middleware:[offset({mainAxis:g+At,alignmentAxis:rt}),st&&shift$1({mainAxis:!0,crossAxis:!1,limiter:ot==="partial"?limitShift():void 0,...nr}),st&&flip({...nr}),size({...nr,apply:({elements:mr,rects:xr,availableWidth:cr,availableHeight:jr})=>{const{width:kr,height:Pr}=xr.reference,Dr=mr.floating.style;Dr.setProperty("--radix-popper-available-width",`${cr}px`),Dr.setProperty("--radix-popper-available-height",`${jr}px`),Dr.setProperty("--radix-popper-anchor-width",`${kr}px`),Dr.setProperty("--radix-popper-anchor-height",`${Pr}px`)}}),kt&&arrow({element:kt,padding:nt}),transformOrigin({arrowWidth:Pt,arrowHeight:At}),lt&&hide({strategy:"referenceHidden",...nr})]}),[Ht,Xt]=getSideAndAlignFromPlacement(qt),Zt=useCallbackRef$1(dt);useLayoutEffect2(()=>{or&&(Zt==null||Zt())},[or,Zt]);const It=(tr=Dt.arrow)==null?void 0:tr.x,Bt=(hr=Dt.arrow)==null?void 0:hr.y,rr=((Vt=Dt.arrow)==null?void 0:Vt.centerOffset)!==0,[lr,pr]=reactExports.useState();return useLayoutEffect2(()=>{gt&&pr(window.getComputedStyle(gt).zIndex)},[gt]),jsxRuntimeExports.jsx("div",{ref:er.setFloating,"data-radix-popper-content-wrapper":"",style:{...ur,transform:or?ur.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:lr,"--radix-popper-transform-origin":[(sr=Dt.transformOrigin)==null?void 0:sr.x,(Lt=Dt.transformOrigin)==null?void 0:Lt.y].join(" "),...((Kt=Dt.hide)==null?void 0:Kt.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:jsxRuntimeExports.jsx(PopperContentProvider,{scope:a,placedSide:Ht,onArrowChange:Ct,arrowX:It,arrowY:Bt,shouldHideArrow:rr,children:jsxRuntimeExports.jsx(Primitive.div,{"data-side":Ht,"data-align":Xt,...ut,ref:mt,style:{...ut.style,animation:or?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$3;var ARROW_NAME$2="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"r
466ight"},PopperArrow=reactExports.forwardRef(function(s,a){const{__scopePopper:c,...g}=s,et=useContentContext(ARROW_NAME$2,c),rt=OPPOSITE_SIDE[et.placedSide];return jsxRuntimeExports.jsx("span",{ref:et.onArrowChange,style:{position:"absolute",left:et.arrowX,top:et.arrowY,[rt]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[et.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[et.placedSide],visibility:et.shouldHideArrow?"hidden":void 0},children:jsxRuntimeExports.jsx(Root$3,{...g,ref:a,style:{...g.style,display:"block"}})})});PopperArrow.displayName=ARROW_NAME$2;function isNotNull(e){return e!==null}var transformOrigin=e=>({name:"transformOrigin",options:e,fn(s){var xt,gt,ht;const{placement:a,rects:c,middlewareData:g}=s,rt=((xt=g.arrow)==null?void 0:xt.centerOffset)!==0,nt=rt?0:e.arrowWidth,st=rt?0:e.arrowHeight,[at,it]=getSideAndAlignFromPlacement(a),ot={start:"0%",center:"50%",end:"100%"}[it],lt=(((gt=g.arrow)==null?void 0:gt.x)??0)+nt/2,ct=(((ht=g.arrow)==null?void 0:ht.y)??0)+st/2;let dt="",ut="";return at==="bottom"?(dt=rt?ot:`${lt}px`,ut=`${-st}px`):at==="top"?(dt=rt?ot:`${lt}px`,ut=`${c.floating.height+st}px`):at==="right"?(dt=`${-st}px`,ut=rt?ot:`${ct}px`):at==="left"&&(dt=`${c.floating.width+st}px`,ut=rt?ot:`${ct}px`),{data:{x:dt,y:ut}}}});function getSideAndAlignFromPlacement(e){const[s,a="center"]=e.split("-");return[s,a]}var Root2$1=Popper,Anchor=PopperAnchor,Content$1=PopperContent,Arrow=PopperArrow,[createTooltipContext,createTooltipScope]=createContextScope("Tooltip",[createPopperScope]),usePopperScope$1=createPopperScope(),PROVIDER_NAME="TooltipProvider",DEFAULT_DELAY_DURATION=700,TOOLTIP_OPEN="tooltip.open",[TooltipProviderContextProvider,useTooltipProviderContext]=createTooltipContext(PROVIDER_NAME),TooltipProvider$1=e=>{const{__scopeTooltip:s,delayDuration:a=DEFAULT_DELAY_DURATION,skipDelayDuration:c=300,disableHoverableContent:g=!1,children:et}=e,rt=reactExports.useRef(!0),nt=reactExports.useRef(!1),st=reactExports.useRef(0);return reactExports.useEffect(()=>{const at=st.current;return()=>window.clearTimeout(at)},[]),jsxRuntimeExports.jsx(TooltipProviderContextProvider,{scope:s,isOpenDelayedRef:rt,delayDuration:a,onOpen:reactExports.useCallback(()=>{window.clearTimeout(st.current),rt.current=!1},[]),onClose:reactExports.useCallback(()=>{window.clearTimeout(st.current),st.current=window.setTimeout(()=>rt.current=!0,c)},[c]),isPointerInTransitRef:nt,onPointerInTransitChange:reactExports.useCallback(at=>{nt.current=at},[]),disableHoverableContent:g,children:et})};TooltipProvider$1.displayName=PROVIDER_NAME;var TOOLTIP_NAME="Tooltip",[TooltipContextProvider,useTooltipContext]=createTooltipContext(TOOLTIP_NAME),TRIGGER_NAME$3="TooltipTrigger",TooltipTrigger=reactExports.forwardRef((e,s)=>{const{__scopeTooltip:a,...c}=e,g=useTooltipContext(TRIGGER_NAME$3,a),et=useTooltipProviderContext(TRIGGER_NAME$3,a),rt=usePopperScope$1(a),nt=reactExports.useRef(null),st=useComposedRefs(s,nt,g.onTriggerChange),at=reactExports.useRef(!1),it=reactExports.useRef(!1),ot=reactExports.useCallback(()=>at.current=!1,[]);return reactExports.useEffect(()=>()=>document.removeEventListener("pointerup",ot),[ot]),jsxRuntimeExports.jsx(Anchor,{asChild:!0,...rt,children:jsxRuntimeExports.jsx(Primitive.button,{"aria-describedby":g.open?g.contentId:void 0,"data-state":g.stateAttribute,...c,ref:st,onPointerMove:composeEventHandlers(e.onPointerMove,lt=>{lt.pointerType!=="touch"&&!it.current&&!et.isPointerInTransitRef.current&&(g.onTriggerEnter(),it.current=!0)}),onPointerLeave:composeEventHandlers(e.onPointerLeave,()=>{g.onTriggerLeave(),it.current=!1}),onPointerDown:composeEventHandlers(e.onPointerDown,()=>{g.open&&g.onClose(),at.current=!0,document.addEventListener("pointerup",ot,{once:!0})}),onFocus:composeEventHandlers(e.onFocus,()=>{at.current||g.onOpen()}),onBlur:composeEventHandlers(e.onBlur,g.onClose),onClick:composeEventHandlers(e.onClick,g.onClose)})})});TooltipTrigger.displayName=TRIGGER_NAME$3;var PORTAL_NAME$2="TooltipPortal",[PortalProvider$1,usePortalContext$1]=createTooltipContext(PORTAL_NAME$2,{forceMount:void 0}),CONTENT_NAME$2="TooltipContent",TooltipContent$1=reactExports.forwardRef((e,s)=>{const a=usePortalContext$1(CONTENT_NAME$2,e.__scopeTooltip),{forceMount:c=a.forceMount,side:g="top",...et}=e,rt=useTooltipContext(CONTENT_NAME$2,e.__scopeTooltip);return jsxRuntimeExports.jsx(Presence,{present:c||rt.open,children:rt.disableHoverableContent?jsxRuntimeExports.jsx(TooltipContentImpl,{side:g,...et,ref:s}):jsxRuntimeExports.jsx(TooltipContentHoverable,{side:g,...et,ref:s})})}),TooltipContentHoverable=reactExports.forwardRef((e,s)=>{const a=useTooltipContext(CONTENT_NAME$2,e.__scopeTooltip),c=useTooltipProviderContext(CONTENT_NAME$2,e.__scopeTooltip),g=reactExports.useRef(null),et=useComposedRefs(s,g),[rt,nt]=reactExports.useState(null),{trigger:st,onClose:at}=a,it=g.current,{onPointerInTransitChange:ot}=c,lt=reactExports.useCallback(()=>{nt(null),ot(!1)},[ot]),ct=reactExports.useCallback((dt,ut)=>{const xt=dt.currentTarget,gt={x:dt.clientX,y:dt.clientY},ht=getExitSideFromRect(gt,xt.getBoundingClientRect()),mt=getPaddedExitPoints(gt,ht),kt=getPointsFromRect(ut.getBoundingClientRect()),Ct=getHull([...mt,...kt]);nt(Ct),ot(!0)},[ot]);return reactExports.useEffect(()=>()=>lt(),[lt]),reactExports.useEffect(()=>{if(st&&it){const dt=xt=>ct(xt,it),ut=xt=>ct(xt,st);return st.addEventListener("pointerleave",dt),it.addEventListener("pointerleave",ut),()=>{st.removeEventListener("pointerleave",dt),it.removeEventListener("pointerleave",ut)}}},[st,it,ct,lt]),reactExports.useEffect(()=>{if(rt){const dt=ut=>{const xt=ut.target,gt={x:ut.clientX,y:ut.clientY},ht=(st==null?void 0:st.contains(xt))||(it==null?void 0:it.contains(xt)),mt=!isPointInPolygon(gt,rt);ht?lt():mt&&(lt(),at())};return document.addEventListener("pointermove",dt),()=>document.removeEventListener("pointermove",dt)}},[st,it,rt,at,lt]),jsxRuntimeExports.jsx(TooltipContentImpl,{...e,ref:et})}),[VisuallyHiddenContentContextProvider,useVisuallyHiddenContentContext]=createTooltipContext(TOOLTIP_NAME,{isInside:!1}),Slottable=createSlottable("TooltipContent"),TooltipContentImpl=reactExports.forwardRef((e,s)=>{const{__scopeTooltip:a,children:c,"aria-label":g,onEscapeKeyDown:et,onPointerDownOutside:rt,...nt}=e,st=useTooltipContext(CONTENT_NAME$2,a),at=usePopperScope$1(a),{onClose:it}=st;return reactExports.useEffect(()=>(document.addEventListener(TOOLTIP_OPEN,it),()=>document.removeEventListener(TOOLTIP_OPEN,it)),[it]),reactExports.useEffect(()=>{if(st.trigger){const ot=lt=>{const ct=lt.target;ct!=null&&ct.contains(st.trigger)&&it()};return window.addEventListener("scroll",ot,{capture:!0}),()=>window.removeEventListener("scroll",ot,{capture:!0})}},[st.trigger,it]),jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:et,onPointerDownOutside:rt,onFocusOutside:ot=>ot.preventDefault(),onDismiss:it,children:jsxRuntimeExports.jsxs(Content$1,{"data-state":st.stateAttribute,...at,...nt,ref:s,style:{...nt.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[jsxRuntimeExports.jsx(Slottable,{children:c}),jsxRuntimeExports.jsx(VisuallyHiddenContentContextProvider,{scope:a,isInside:!0,children:jsxRuntimeExports.jsx(Root$4,{id:st.contentId,role:"tooltip",children:g||c})})]})})});TooltipContent$1.displayName=CONTENT_NAME$2;var ARROW_NAME$1="TooltipArrow",TooltipArrow=reactExports.forwardRef((e,s)=>{const{__scopeTooltip:a,...c}=e,g=usePopperScope$1(a);return useVisuallyHiddenContentContext(ARROW_NAME$1,a).isInside?null:jsxRuntimeExports.jsx(Arrow,{...g,...c,ref:s})});TooltipArrow.displayName=ARROW_NAME$1;function getExitSideFromRect(e,s){const a=Math.abs(s.top-e.y),c=Math.abs(s.bottom-e.y),g=Math.abs(s.right-e.x),et=Math.abs(s.left-e.x);switch(Math.min(a,c,g,et)){case et:return"left";case g:return"right";case a:return"top";case c:return"bottom";default:throw new Error("unreachable")}}function getPaddedExitPoints(e,s,a=5){const c=[];switch(s){case"top":c.push({x:e.x-a,y:e.y+a},{x:e.x+a,y:e.y+a});break;case"bottom":c.push({x:e.x-a,y:e.y-a},{x:e.x+a,y:e.y-a});break;case"left":c.push({x:e.x+a,y:e.y-a},{x:e.x+a,y:e.y+a});break;case"right":c.push({x:e.x-a,y:e.y-a},{x:e.x-a,y:e.y+a});break}return c}function getPointsFromRect(e){const{top:s,right:a,bottom:c,left:g}=e;return[{x:g,y:s},{x:a,y:s},{x:a,y:c},{x:g,y:c}]}function isPointInPolygon(e,s){const{x:a,y:c}=e;let g=!1;for(let et=0,rt=s.length-1;et<s.length;rt=et++){const nt=s[et],st=s[rt],at=nt.x,it=nt.y,ot=st.x,lt=st.y;it>c!=lt>c&&a<(ot-at)*(c-it)/(lt-it)+at&&(g=!g)}return g}function getHull(e){const s=e.slice();return s.sort((a,c)=>a.x<c.x?-1:a.x>c.x?1:a.y<c.y?-1:a.y>c.y?1:0),getHullPresorted(s)}function getHullPresorted(e){if(e.length<=1)return e.slice();const s=[];for(let c=0;c<e.length;c++){const g=e[c];for(;s.length>=2;){const et=s[s.length-1],rt=s[s.length-2];if((et.x-rt.x)*(g.y-rt.y)>=(et.y-rt.y)*(g.x-rt.x))s.pop();else break}s.push(g)}s.pop();const a=[];for(let c=e.length-1;c>=0;c--){const g=e[c];for(;a.length>=2;){const et=a[a.length-1],rt=a[a.length-2];if((et.x-rt.x)*(g.y-rt.y)>=(et.y-rt.y)*(g.x-rt.x))a.pop();else break}a.push(g)}return a.pop(),s.length===1&&a.length===1&&s[0].x===a[0].x&&s[0].y===a[0].y?s:s.concat(a)}var Provider=TooltipProvider$1,Content2$1=TooltipContent$1;const TooltipProvider=Provider,TooltipContent=reactExports.forwardRef(({className:e,sideOffset:s=4,...a},c)=>jsxRuntimeExports.jsx(Content2$1,{ref:c,sideOffset:s,className:cn("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
466de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...a}));TooltipContent.displayName=Content2$1.displayName;var Subscribable=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},isServer=typeof window>"u"||"Deno"in globalThis;function noop(){}function functionalUpdate(e,s){return typeof e=="function"?e(s):e}function isValidTimeout(e){return typeof e=="number"&&e>=0&&e!==1/0}function timeUntilStale(e,s){return Math.max(e+(s||0)-Date.now(),0)}function resolveStaleTime(e,s){return typeof e=="function"?e(s):e}function resolveEnabled(e,s){return typeof e=="function"?e(s):e}function matchQuery(e,s){const{type:a="all",exact:c,fetchStatus:g,predicate:et,queryKey:rt,stale:nt}=e;if(rt){if(c){if(s.queryHash!==hashQueryKeyByOptions(rt,s.options))return!1}else if(!partialMatchKey(s.queryKey,rt))return!1}if(a!=="all"){const st=s.isActive();if(a==="active"&&!st||a==="inactive"&&st)return!1}return!(typeof nt=="boolean"&&s.isStale()!==nt||g&&g!==s.state.fetchStatus||et&&!et(s))}function matchMutation(e,s){const{exact:a,status:c,predicate:g,mutationKey:et}=e;if(et){if(!s.options.mutationKey)return!1;if(a){if(hashKey(s.options.mutationKey)!==hashKey(et))return!1}else if(!partialMatchKey(s.options.mutationKey,et))return!1}return!(c&&s.state.status!==c||g&&!g(s))}function hashQueryKeyByOptions(e,s){return((s==null?void 0:s.queryKeyHashFn)||hashKey)(e)}function hashKey(e){return JSON.stringify(e,(s,a)=>isPlainObject(a)?Object.keys(a).sort().reduce((c,g)=>(c[g]=a[g],c),{}):a)}function partialMatchKey(e,s){return e===s?!0:typeof e!=typeof s?!1:e&&s&&typeof e=="object"&&typeof s=="object"?Object.keys(s).every(a=>partialMatchKey(e[a],s[a])):!1}function replaceEqualDeep(e,s){if(e===s)return e;const a=isPlainArray(e)&&isPlainArray(s);if(a||isPlainObject(e)&&isPlainObject(s)){const c=a?e:Object.keys(e),g=c.length,et=a?s:Object.keys(s),rt=et.length,nt=a?[]:{}
vendor: 7,653 bytes, line 466
466,st=new Set(c);let at=0;for(let it=0;it<rt;it++){const ot=a?it:et[it];(!a&&st.has(ot)||a)&&e[ot]===void 0&&s[ot]===void 0?(nt[ot]=void 0,at++):(nt[ot]=replaceEqualDeep(e[ot],s[ot]),nt[ot]===e[ot]&&e[ot]!==void 0&&at++)}return g===rt&&at===g?e:nt}return s}function shallowEqualObjects(e,s){if(!s||Object.keys(e).length!==Object.keys(s).length)return!1;for(const a in e)if(e[a]!==s[a])return!1;return!0}function isPlainArray(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function isPlainObject(e){if(!hasObjectPrototype(e))return!1;const s=e.constructor;if(s===void 0)return!0;const a=s.prototype;return!(!hasObjectPrototype(a)||!a.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function hasObjectPrototype(e){return Object.prototype.toString.call(e)==="[object Object]"}function sleep(e){return new Promise(s=>{setTimeout(s,e)})}function replaceData(e,s,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,s):a.structuralSharing!==!1?replaceEqualDeep(e,s):s}function addToEnd(e,s,a=0){const c=[...e,s];return a&&c.length>a?c.slice(1):c}function addToStart(e,s,a=0){const c=[s,...e];return a&&c.length>a?c.slice(0,-1):c}var skipToken=Symbol();function ensureQueryFn(e,s){return!e.queryFn&&(s!=null&&s.initialPromise)?()=>s.initialPromise:!e.queryFn||e.queryFn===skipToken?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function shouldThrowError(e,s){return typeof e=="function"?e(...s):!!e}var _n,xn,Ln,hs,FocusManager=(hs=class extends Subscribable{constructor(){super();Ar(this,_n);Ar(this,xn);Ar(this,Ln);Er(this,Ln,s=>{if(!isServer&&window.addEventListener){const a=()=>s();return window.addEventListener("visibilitychange",a,!1),()=>{window.removeEventListener("visibilitychange",a)}}})}onSubscribe(){Ut(this,xn)||this.setEventListener(Ut(this,Ln))}onUnsubscribe(){var s;this.hasListeners()||((s=Ut(this,xn))==null||s.call(this),Er(this,xn,void 0))}setEventListener(s){var a;Er(this,Ln,s),(a=Ut(this,xn))==null||a.call(this),Er(this,xn,s(c=>{typeof c=="boolean"?this.setFocused(c):this.onFocus()}))}setFocused(s){Ut(this,_n)!==s&&(Er(this,_n,s),this.onFocus())}onFocus(){const s=this.isFocused();this.listeners.forEach(a=>{a(s)})}isFocused(){var s;return typeof Ut(this,_n)=="boolean"?Ut(this,_n):((s=globalThis.document)==null?void 0:s.visibilityState)!=="hidden"}},_n=new WeakMap,xn=new WeakMap,Ln=new WeakMap,hs),focusManager=new FocusManager,On,gn,$n,xs,OnlineManager=(xs=class extends Subscribable{constructor(){super();Ar(this,On,!0);Ar(this,gn);Ar(this,$n);Er(this,$n,s=>{if(!isServer&&window.addEventListener){const a=()=>s(!0),c=()=>s(!1);return window.addEventListener("online",a,!1),window.addEventListener("offline",c,!1),()=>{window.removeEventListener("online",a),window.removeEventListener("offline",c)}}})}onSubscribe(){Ut(this,gn)||this.setEventListener(Ut(this,$n))}onUnsubscribe(){var s;this.hasListeners()||((s=Ut(this,gn))==null||s.call(this),Er(this,gn,void 0))}setEventListener(s){var a;Er(this,$n,s),(a=Ut(this,gn))==null||a.call(this),Er(this,gn,s(this.setOnline.bind(this)))}setOnline(s){Ut(this,On)!==s&&(Er(this,On,s),this.listeners.forEach(c=>{c(s)}))}isOnline(){return Ut(this,On)}},On=new WeakMap,gn=new WeakMap,$n=new WeakMap,xs),onlineManager=new OnlineManager;function pendingThenable(){let e,s;const a=new Promise((g,et)=>{e=g,s=et});a.status="pending",a.catch(()=>{});function c(g){Object.assign(a,g),delete a.resolve,delete a.reject}return a.resolve=g=>{c({status:"fulfilled",value:g}),e(g)},a.reject=g=>{c({status:"rejected",reason:g}),s(g)},a}function defaultRetryDelay(e){return Math.min(1e3*2**e,3e4)}function canFetch(e){return(e??"online")==="online"?onlineManager.isOnline():!0}var CancelledError=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function isCancelledError(e){return e instanceof CancelledError}function createRetryer(e){let s=!1,a=0,c=!1,g;const et=pendingThenable(),rt=ut=>{var xt;c||(lt(new CancelledError(ut)),(xt=e.abort)==null||xt.call(e))},nt=()=>{s=!0},st=()=>{s=!1},at=()=>focusManager.isFocused()&&(e.networkMode==="always"||onlineManager.isOnline())&&e.canRun(),it=()=>canFetch(e.networkMode)&&e.canRun(),ot=ut=>{var xt;c||(c=!0,(xt=e.onSuccess)==null||xt.call(e,ut),g==null||g(),et.resolve(ut))},lt=ut=>{var xt;c||(c=!0,(xt=e.onError)==null||xt.call(e,ut),g==null||g(),et.reject(ut))},ct=()=>new Promise(ut=>{var xt;g=gt=>{(c||at())&&ut(gt)},(xt=e.onPause)==null||xt.call(e)}).then(()=>{var ut;g=void 0,c||(ut=e.onContinue)==null||ut.call(e)}),dt=()=>{if(c)return;let ut;const xt=a===0?e.initialPromise:void 0;try{ut=xt??e.fn()}catch(gt){ut=Promise.reject(gt)}Promise.resolve(ut).then(ot).catch(gt=>{var Tt;if(c)return;const ht=e.retry??(isServer?0:3),mt=e.retryDelay??defaultRetryDelay,kt=typeof mt=="function"?mt(a,gt):mt,Ct=ht===!0||typeof ht=="number"&&a<ht||typeof ht=="function"&&ht(a,gt);if(s||!Ct){lt(gt);return}a++,(Tt=e.onFail)==null||Tt.call(e,a,gt),sleep(kt).then(()=>at()?void 0:ct()).then(()=>{s?lt(gt):dt()})})};return{promise:et,cancel:rt,continue:()=>(g==null||g(),et),cancelRetry:nt,continueRetry:st,canStart:it,start:()=>(it()?dt():ct().then(dt),et)}}var defaultScheduler=e=>setTimeout(e,0);function createNotifyManager(){let e=[],s=0,a=nt=>{nt()},c=nt=>{nt()},g=defaultScheduler;const et=nt=>{s?e.push(nt):g(()=>{a(nt)})},rt=()=>{const nt=e;e=[],nt.length&&g(()=>{c(()=>{nt.forEach(st=>{a(st)})})})};return{batch:nt=>{let st;s++;try{st=nt()}finally{s--,s||rt()}return st},batchCalls:nt=>(...st)=>{et(()=>{nt(...st)})},schedule:et,setNotifyFunction:nt=>{a=nt},setBatchNotifyFunction:nt=>{c=nt},setScheduler:nt=>{g=nt}}}var notifyManager=createNotifyManager(),Sn,gs,Removable=(gs=class{constructor(){Ar(this,Sn)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),isValidTimeout(this.gcTime)&&Er(this,Sn,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(isServer?1/0:5*60*1e3))}clearGcTimeout(){Ut(this,Sn)&&(clearTimeout(Ut(this,Sn)),Er(this,Sn,void 0))}},Sn=new WeakMap,gs),Dn,Cn,tn,An,qr,Yn,Nn,rn,dn,bs,Query=(bs=class extends Removable{constructor(s){super();Ar(this,rn);Ar(this,Dn);Ar(this,Cn);Ar(this,tn);Ar(this,An);Ar(this,qr);Ar(this,Yn);Ar(this,Nn);Er(this,Nn,!1),Er(this,Yn,s.defaultOptions),this.setOptions(s.options),this.observers=[],Er(this,An,s.client),Er(this,tn,Ut(this,An).getQueryCache()),this.queryKey=s.queryKey,this.queryHash=s.queryHash,Er(this,Dn,getDefaultState$1(this.options)),this.state=s.state??Ut(this,Dn),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var s;return(s=Ut(this,qr))==null?void 0:s.promise}setOptions(s){this.options={...Ut(this,Yn),...s},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&Ut(this,tn).remove(this)}setData(s,a){const c=replaceData(this.state.data,s,this.options);return Ir(this,rn,dn).call(this,{data:c,type:"success",dataUpdatedAt:a==null?void 0:a.updatedAt,manual:a==null?void 0:a.manual}),c}setState(s,a){Ir(this,rn,dn).call(this,{type:"setState",state:s,setStateOptions:a})}cancel(s){var c,g;const a=(c=Ut(this,qr))==null?void 0:c.promise;return(g=Ut(this,qr))==null||g.cancel(s),a?a.then(noop).catch(noop):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(Ut(this,Dn))}isActive(){return this.observers.some(s=>resolveEnabled(s.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===skipToken||this.state.dataUpdateCount+this.state.errorUpdate
466Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(s=>resolveStaleTime(s.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(s=>s.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(s=0){return this.state.data===void 0?!0:s==="static"?!1:this.state.isInvalidated?!0:!timeUntilStale(this.state.dataUpdatedAt,s)}onFocus(){var a;const s=this.observers.find(c=>c.shouldFetchOnWindowFocus());s==null||s.refetch({cancelRefetch:!1}),(a=Ut(this,qr))==null||a.continue()}onOnline(){var a;const s=this.observers.find(c=>c.shouldFetchOnReconnect());s==null||s.refetch({cancelRefetch:!1}),(a=Ut(this,qr))==null||a.continue()}addObserver(s){this.observers.includes(s)||(this.observers.push(s),this.clearGcTimeout(),Ut(this,tn).notify({type:"observerAdded",query:this,observer:s}))}removeObserver(s){this.observers.includes(s)&&(this.observers=this.observers.filter(a=>a!==s),this.observers.length||(Ut(this,qr)&&(Ut(this,Nn)?Ut(this,qr).cancel({revert:!0}):Ut(this,qr).cancelRetry()),this.scheduleGc()),Ut(this,tn).notify({type:"observerRemoved",query:this,observer:s}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Ir(this,rn,dn).call(this,{type:"invalidate"})}fetch(s,a){var at,it,ot;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(a!=null&&a.cancelRefetch))this.cancel({silent:!0});else if(Ut(this,qr))return Ut(this,qr).continueRetry(),Ut(this,qr).promise}if(s&&this.setOptions(s),!this.options.queryFn){const lt=this.observers.find(ct=>ct.options.queryFn);lt&&this.setOptions(lt.options)}const c=new AbortController,g=lt=>{Object.defineProperty(lt,"signal",{enumerable:!0,get:()=>(Er(this,Nn,!0),c.signal)})},et=()=>{const lt=ensureQueryFn(this.options,a),dt=(()=>{const ut={client:Ut(this,An),queryKey:this.queryKey,meta:this.meta};return g(ut),ut})();return Er(this,Nn,!1),this.options.persister?this.options.persister(lt,dt,this):lt(dt)},nt=(()=>{const lt={fetchOptions:a,options:this.options,queryKey:this.queryKey,client:Ut(this,An),state:this.state,fetchFn:et};return g(lt),lt})();(at=this.options.behavior)==null||at.onFetch(nt,this),Er(this,Cn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((it=nt.fetchOptions)==null?void 0:it.meta))&&Ir(this,rn,dn).call(this,{type:"fetch",meta:(ot=nt.fetchOptions)==null?void 0:ot.meta});const st=lt=>{var ct,dt,ut,xt;isCancelledError(lt)&<.silent||Ir(this,rn,dn).call(this,{type:"error",error:lt}),isCancelledError(lt)||((dt=(ct=Ut(this,tn).config).onError)==null||dt.call(ct,lt,this),(xt=(ut=Ut(this,tn).config).onSettled)==null||xt.call(ut,this.state.data,lt,this)),this.scheduleGc()};return Er(this,qr,createRetryer({initialPromise:a==null?void 0:a.initialPromise,fn:nt.fetchFn,abort:c.abort.bind(c),onSuccess:lt=>{var ct,dt,ut,xt;if(lt===void 0){st(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(lt)}catch(gt){st(gt);return}(dt=(ct=Ut(this,tn).config).onSuccess)==null||dt.call(ct,lt,this),(xt=(ut=Ut(this,tn).config).onSettled)==null||xt.call(ut,lt,this.state.error,this),this.scheduleGc()},onError:st,onFail:(lt,ct)=>{Ir(this,rn,dn).call(this,{type:"failed",failureCount:lt,error:ct})},onPause:()=>{Ir(this,rn,dn).call(this,{type:"pause"})},onContinue:()=>{Ir(this,rn,dn).call(this,{type:"continue"})},retry:nt.options.retry,retryDelay:nt.options.retryDelay,networkMode:nt.options.networkMode,canRun:()=>!0})),Ut(this,qr).start()}},Dn=new WeakMap,Cn=new WeakMap,tn=new WeakMap,An=new WeakMap,qr=new WeakMap,Yn=new WeakMap,Nn=new WeakMap,rn=new WeakSet,dn=function(s){const a=c=>{switch(s.type){case"failed":return{...c,fetchFailureCount:s.failureCount,fetchFailureReason:s.error};case"pause":return{...c,fetchStatus:"paused"};case"continue":return{...c,fetchStatus:"fetching"};case"fetch":return{...c,...fetchState(c.data,this.options),fetchMeta:s.meta??null};case"success":return Er(this,Cn,void 0),{...c,data:s.data,dataUpdateCount:c.dataUpdateCount+1,dataUpdatedAt:s.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!s.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const g=s.error;return isCancelledError(g)&&g.revert&&Ut(this,Cn)?{...Ut(this,Cn),fetchStatus:"idle"}
vendor: 5,395 bytes, line 466
466:{...c,error:g,errorUpdateCount:c.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:c.fetchFailureCount+1,fetchFailureReason:g,fetchStatus:"idle",status:"error"};case"invalidate":return{...c,isInvalidated:!0};case"setState":return{...c,...s.state}}};this.state=a(this.state),notifyManager.batch(()=>{this.observers.forEach(c=>{c.onQueryUpdate()}),Ut(this,tn).notify({query:this,type:"updated",action:s})})},bs);function fetchState(e,s){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:canFetch(s.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function getDefaultState$1(e){const s=typeof e.initialData=="function"?e.initialData():e.initialData,a=s!==void 0,c=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:s,dataUpdateCount:0,dataUpdatedAt:a?c??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var an,ys,QueryCache=(ys=class extends Subscribable{constructor(s={}){super();Ar(this,an);this.config=s,Er(this,an,new Map)}build(s,a,c){const g=a.queryKey,et=a.queryHash??hashQueryKeyByOptions(g,a);let rt=this.get(et);return rt||(rt=new Query({client:s,queryKey:g,queryHash:et,options:s.defaultQueryOptions(a),state:c,defaultOptions:s.getQueryDefaults(g)}),this.add(rt)),rt}add(s){Ut(this,an).has(s.queryHash)||(Ut(this,an).set(s.queryHash,s),this.notify({type:"added",query:s}))}remove(s){const a=Ut(this,an).get(s.queryHash);a&&(s.destroy(),a===s&&Ut(this,an).delete(s.queryHash),this.notify({type:"removed",query:s}))}clear(){notifyManager.batch(()=>{this.getAll().forEach(s=>{this.remove(s)})})}get(s){return Ut(this,an).get(s)}getAll(){return[...Ut(this,an).values()]}find(s){const a={exact:!0,...s};return this.getAll().find(c=>matchQuery(a,c))}findAll(s={}){const a=this.getAll();return Object.keys(s).length>0?a.filter(c=>matchQuery(s,c)):a}notify(s){notifyManager.batch(()=>{this.listeners.forEach(a=>{a(s)})})}onFocus(){notifyManager.batch(()=>{this.getAll().forEach(s=>{s.onFocus()})})}onOnline(){notifyManager.batch(()=>{this.getAll().forEach(s=>{s.onOnline()})})}},an=new WeakMap,ys),on,Kr,Tn,ln,fn,vs,Mutation=(vs=class extends Removable{constructor(s){super();Ar(this,ln);Ar(this,on);Ar(this,Kr);Ar(this,Tn);this.mutationId=s.mutationId,Er(this,Kr,s.mutationCache),Er(this,on,[]),this.state=s.state||getDefaultState(),this.setOptions(s.options),this.scheduleGc()}setOptions(s){this.options=s,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(s){Ut(this,on).includes(s)||(Ut(this,on).push(s),this.clearGcTimeout(),Ut(this,Kr).notify({type:"observerAdded",mutation:this,observer:s}))}removeObserver(s){Er(this,on,Ut(this,on).filter(a=>a!==s)),this.scheduleGc(),Ut(this,Kr).notify({type:"observerRemoved",mutation:this,observer:s})}optionalRemove(){Ut(this,on).length||(this.state.status==="pending"?this.scheduleGc():Ut(this,Kr).remove(this))}continue(){var s;return((s=Ut(this,Tn))==null?void 0:s.continue())??this.execute(this.state.variables)}async execute(s){var et,rt,nt,st,at,it,ot,lt,ct,dt,ut,xt,gt,ht,mt,kt,Ct,Tt,Pt,At;const a=()=>{Ir(this,ln,fn).call(this,{type:"continue"})};Er(this,Tn,createRetryer({fn:()=>this.options.mutationFn?this.options.mutationFn(s):Promise.reject(new Error("No mutationFn found")),onFail:(Gt,Mt)=>{Ir(this,ln,fn).call(this,{type:"failed",failureCount:Gt,error:Mt})},onPause:()=>{Ir(this,ln,fn).call(this,{type:"pause"})},onContinue:a,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>Ut(this,Kr).canRun(this)}));const c=this.state.status==="pending",g=!Ut(this,Tn).canStart();try{if(c)a();else{Ir(this,ln,fn).call(this,{type:"pending",variables:s,isPaused:g}),await((rt=(et=Ut(this,Kr).config).onMutate)==null?void 0:rt.call(et,s,this));const Mt=await((st=(nt=this.options).onMutate)==null?void 0:st.call(nt,s));Mt!==this.state.context&&Ir(this,ln,fn).call(this,{type:"pending",context:Mt,variables:s,isPaused:g})}const Gt=await Ut(this,Tn).start();return await((it=(at=Ut(this,Kr).config).onSuccess)==null?void 0:it.call(at,Gt,s,this.state.context,this)),await((lt=(ot=this.options).onSuccess)==null?void 0:lt.call(ot,Gt,s,this.state.context)),await((dt=(ct=Ut(this,Kr).config).onSettled)==null?void 0:dt.call(ct,Gt,null,this.state.variables,this.state.context,this)),await((xt=(ut=this.options).onSettled)==null?void 0:xt.call(ut,Gt,null,s,this.state.context)),Ir(this,ln,fn).call(this,{type:"success",data:Gt}),Gt}catch(Gt){try{throw await((ht=(gt=Ut(this,Kr).config).onError)==null?void 0:ht.call(gt,Gt,s,this.state.context,this)),await((kt=(mt=this.options).onError)==null?void 0:kt.call(mt,Gt,s,this.state.context)),await((Tt=(Ct=Ut(this,Kr).config).onSettled)==null?void 0:Tt.call(Ct,void 0,Gt,this.state.variables,this.state.context,this)),await((At=(Pt=this.options).onSettled)==null?void 0:At.call(Pt,void 0,Gt,s,this.state.context)),Gt}finally{Ir(this,ln,fn).call(this,{type:"error",error:Gt})}}finally{Ut(this,Kr).runNext(this)}}},on=new WeakMap,Kr=new WeakMap,Tn=new WeakMap,ln=new WeakSet,fn=function(s){const a=c=>{switch(s.type){case"failed":return{...c,failureCount:s.failureCount,failureReason:s.error};case"pause":return{...c,isPaused:!0};case"continue":return{...c,isPaused:!1};
466case"pending":return{...c,context:s.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:s.isPaused,status:"pending",variables:s.variables,submittedAt:Date.now()};case"success":return{...c,data:s.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...c,data:void 0,error:s.error,failureCount:c.failureCount+1,failureReason:s.error,isPaused:!1,status:"error"}}};this.state=a(this.state),notifyManager.batch(()=>{Ut(this,on).forEach(c=>{c.onMutationUpdate(s)}),Ut(this,Kr).notify({mutation:this,type:"updated",action:s})})},vs);function getDefaultState(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var pn,nn,Jn,ws,MutationCache=(ws=class extends Subscribable{constructor(s={}){super();Ar(this,pn);Ar(this,nn);Ar(this,Jn);this.config=s,Er(this,pn,new Set),Er(this,nn,new Map),Er(this,Jn,0)}build(s,a,c){const g=new Mutation({mutationCache:this,mutationId:++Zn(this,Jn)._,options:s.defaultMutationOptions(a),state:c});return this.add(g),g}add(s){Ut(this,pn).add(s);const a=scopeFor(s);if(typeof a=="string"){const c=Ut(this,nn).get(a);c?c.push(s):Ut(this,nn).set(a,[s])}this.notify({type:"added",mutation:s})}remove(s){if(Ut(this,pn).delete(s)){const a=scopeFor(s);if(typeof a=="string"){const c=Ut(this,nn).get(a);if(c)if(c.length>1){const g=c.indexOf(s);g!==-1&&c.splice(g,1)}else c[0]===s&&Ut(this,nn).delete(a)}}this.notify({type:"removed",mutation:s})}canRun(s){const a=scopeFor(s);if(typeof a=="string"){const c=Ut(this,nn).get(a),g=c==null?void 0:c.find(et=>et.state.status==="pending");return!g||g===s}else return!0}runNext(s){var c;const a=scopeFor(s);if(typeof a=="string"){const g=(c=Ut(this,nn).get(a))==null?void 0:c.find(et=>
vendor: 17,708 bytes, line 466
466et!==s&&et.state.isPaused);return(g==null?void 0:g.continue())??Promise.resolve()}else return Promise.resolve()}clear(){notifyManager.batch(()=>{Ut(this,pn).forEach(s=>{this.notify({type:"removed",mutation:s})}),Ut(this,pn).clear(),Ut(this,nn).clear()})}getAll(){return Array.from(Ut(this,pn))}find(s){const a={exact:!0,...s};return this.getAll().find(c=>matchMutation(a,c))}findAll(s={}){return this.getAll().filter(a=>matchMutation(s,a))}notify(s){notifyManager.batch(()=>{this.listeners.forEach(a=>{a(s)})})}resumePausedMutations(){const s=this.getAll().filter(a=>a.state.isPaused);return notifyManager.batch(()=>Promise.all(s.map(a=>a.continue().catch(noop))))}},pn=new WeakMap,nn=new WeakMap,Jn=new WeakMap,ws);function scopeFor(e){var s;return(s=e.options.scope)==null?void 0:s.id}function infiniteQueryBehavior(e){return{onFetch:(s,a)=>{var it,ot,lt,ct,dt;const c=s.options,g=(lt=(ot=(it=s.fetchOptions)==null?void 0:it.meta)==null?void 0:ot.fetchMore)==null?void 0:lt.direction,et=((ct=s.state.data)==null?void 0:ct.pages)||[],rt=((dt=s.state.data)==null?void 0:dt.pageParams)||[];let nt={pages:[],pageParams:[]},st=0;const at=async()=>{let ut=!1;const xt=mt=>{Object.defineProperty(mt,"signal",{enumerable:!0,get:()=>(s.signal.aborted?ut=!0:s.signal.addEventListener("abort",()=>{ut=!0}),s.signal)})},gt=ensureQueryFn(s.options,s.fetchOptions),ht=async(mt,kt,Ct)=>{if(ut)return Promise.reject();if(kt==null&&mt.pages.length)return Promise.resolve(mt);const Pt=(()=>{const zt={client:s.client,queryKey:s.queryKey,pageParam:kt,direction:Ct?"backward":"forward",meta:s.options.meta};return xt(zt),zt})(),At=await gt(Pt),{maxPages:Gt}=s.options,Mt=Ct?addToStart:addToEnd;return{pages:Mt(mt.pages,At,Gt),pageParams:Mt(mt.pageParams,kt,Gt)}};if(g&&et.length){const mt=g==="backward",kt=mt?getPreviousPageParam:getNextPageParam,Ct={pages:et,pageParams:rt},Tt=kt(c,Ct);nt=await ht(Ct,Tt,mt)}else{const mt=e??et.length;do{const kt=st===0?rt[0]??c.initialPageParam:getNextPageParam(c,nt);if(st>0&&kt==null)break;nt=await ht(nt,kt),st++}while(st<mt)}return nt};s.options.persister?s.fetchFn=()=>{var ut,xt;return(xt=(ut=s.options).persister)==null?void 0:xt.call(ut,at,{client:s.client,queryKey:s.queryKey,meta:s.options.meta,signal:s.signal},a)}:s.fetchFn=at}}}function getNextPageParam(e,{pages:s,pageParams:a}){const c=s.length-1;return s.length>0?e.getNextPageParam(s[c],s,a[c],a):void 0}function getPreviousPageParam(e,{pages:s,pageParams:a}){var c;return s.length>0?(c=e.getPreviousPageParam)==null?void 0:c.call(e,s[0],s,a[0],a):void 0}var Wr,bn,yn,Bn,Fn,vn,Hn,Un,Es,QueryClient=(Es=class{constructor(e={}){Ar(this,Wr);Ar(this,bn);Ar(this,yn);Ar(this,Bn);Ar(this,Fn);Ar(this,vn);Ar(this,Hn);Ar(this,Un);Er(this,Wr,e.queryCache||new QueryCache),Er(this,bn,e.mutationCache||new MutationCache),Er(this,yn,e.defaultOptions||{}),Er(this,Bn,new Map),Er(this,Fn,new Map),Er(this,vn,0)}mount(){Zn(this,vn)._++,Ut(this,vn)===1&&(Er(this,Hn,focusManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),Ut(this,Wr).onFocus())})),Er(this,Un,onlineManager.subscribe(async e=>{e&&(await this.resumePausedMutations(),Ut(this,Wr).onOnline())})))}unmount(){var e,s;Zn(this,vn)._--,Ut(this,vn)===0&&((e=Ut(this,Hn))==null||e.call(this),Er(this,Hn,void 0),(s=Ut(this,Un))==null||s.call(this),Er(this,Un,void 0))}isFetching(e){return Ut(this,Wr).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return Ut(this,bn).findAll({...e,status:"pending"}).length}getQueryData(e){var a;const s=this.defaultQueryOptions({queryKey:e});return(a=Ut(this,Wr).get(s.queryHash))==null?void 0:a.state.data}ensureQueryData(e){const s=this.defaultQueryOptions(e),a=Ut(this,Wr).build(this,s),c=a.state.data;return c===void 0?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime(resolveStaleTime(s.staleTime,a))&&this.prefetchQuery(s),Promise.resolve(c))}getQueriesData(e){return Ut(this,Wr).findAll(e).map(({queryKey:s,state:a})=>{const c=a.data;return[s,c]})}setQueryData(e,s,a){const c=this.defaultQueryOptions({queryKey:e}),g=Ut(this,Wr).get(c.queryHash),et=g==null?void 0:g.state.data,rt=functionalUpdate(s,et);if(rt!==void 0)return Ut(this,Wr).build(this,c).setData(rt,{...a,manual:!0})}setQueriesData(e,s,a){return notifyManager.batch(()=>Ut(this,Wr).findAll(e).map(({queryKey:c})=>[c,this.setQueryData(c,s,a)]))}getQueryState(e){var a;const s=this.defaultQueryOptions({queryKey:e});return(a=Ut(this,Wr).get(s.queryHash))==null?void 0:a.state}removeQueries(e){const s=Ut(this,Wr);notifyManager.batch(()=>{s.findAll(e).forEach(a=>{s.remove(a)})})}resetQueries(e,s){const a=Ut(this,Wr);return notifyManager.batch(()=>(a.findAll(e).forEach(c=>{c.reset()}),this.refetchQueries({type:"active",...e},s)))}cancelQueries(e,s={}){const a={revert:!0,...s},c=notifyManager.batch(()=>Ut(this,Wr).findAll(e).map(g=>g.cancel(a)));return Promise.all(c).then(noop).catch(noop)}invalidateQueries(e,s={}){return notifyManager.batch(()=>(Ut(this,Wr).findAll(e).forEach(a=>{a.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},s)))}refetchQueries(e,s={}){const a={...s,cancelRefetch:s.cancelRefetch??!0},c=notifyManager.batch(()=>Ut(this,Wr).findAll(e).filter(g=>!g.isDisabled()&&!g.isStatic()).map(g=>{let et=g.fetch(void 0,a);return a.throwOnError||(et=et.catch(noop)),g.state.fetchStatus==="paused"?Promise.resolve():et}));return Promise.all(c).then(noop)}fetchQuery(e){const s=this.defaultQueryOptions(e);s.retry===void 0&&(s.retry=!1);const a=Ut(this,Wr).build(this,s);return a.isStaleByTime(resolveStaleTime(s.staleTime,a))?a.fetch(s):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(noop).catch(noop)}fetchInfiniteQuery(e){return e.behavior=infiniteQueryBehavior(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(noop).catch(noop)}ensureInfiniteQueryData(e){return e.behavior=infiniteQueryBehavior(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return onlineManager.isOnline()?Ut(this,bn).resumePausedMutations():Promise.resolve()}getQueryCache(){return Ut(this,Wr)}getMutationCache(){return Ut(this,bn)}getDefaultOptions(){return Ut(this,yn)}setDefaultOptions(e){Er(this,yn,e)}setQueryDefaults(e,s){Ut(this,Bn).set(hashKey(e),{queryKey:e,defaultOptions:s})}getQueryDefaults(e){const s=[...Ut(this,Bn).values()],a={};return s.forEach(c=>{partialMatchKey(e,c.queryKey)&&Object.assign(a,c.defaultOptions)}),a}setMutationDefaults(e,s){Ut(this,Fn).set(hashKey(e),{mutationKey:e,defaultOptions:s})}getMutationDefaults(e){const s=[...Ut(this,Fn).values()],a={};return s.forEach(c=>{partialMatchKey(e,c.mutationKey)&&Object.assign(a,c.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;const s={...Ut(this,yn).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return s.queryHash||(s.queryHash=hashQueryKeyByOptions(s.queryKey,s)),s.refetchOnReconnect===void 0&&(s.refetchOnReconnect=s.networkMode!=="always"),s.throwOnError===void 0&&(s.throwOnError=!!s.suspense),!s.networkMode&&s.persister&&(s.networkMode="offlineFirst"),s.queryFn===skipToken&&(s.enabled=!1),s}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...Ut(this,yn).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){Ut(this,Wr).clear(),Ut(this,bn).clear()}},Wr=new WeakMap,bn=new WeakMap,yn=new WeakMap,Bn=new WeakMap,Fn=new WeakMap,vn=new WeakMap,Hn=new WeakMap,Un=new WeakMap,Es),Xr,Or,Qn,Yr,Pn,zn,wn,En,Xn,Vn,Wn,Mn,In,jn,Gn,Br,Kn,ns,ss,as,is,os,ls,cs,_s,js,QueryObserver=(js=class extends Subscribable{constructor(s,a){super();Ar(this,Br);Ar(this,Xr);Ar(this,Or);Ar(this,Qn);Ar(this,Yr);Ar(this,Pn);Ar(this,zn);Ar(this,wn);Ar(this,En);Ar(this,Xn);Ar(this,Vn);Ar(this,Wn);Ar(this,Mn);Ar(this,In);Ar(this,jn);Ar(this,Gn,new Set);this.options=a,Er(this,Xr,s),Er(this,En,null),Er(this,wn,pendingThenable()),this.options.experimental_prefetchInRender||Ut(this,wn).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),this.bindMethods(),this.setOptions(a)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(Ut(this,Or).addObserver(this),shouldFetchOnMount(Ut(this,Or),this.options)?Ir(this,Br,Kn).call(this):this.updateResult(),Ir(this,Br,is).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return shouldFetchOn(Ut(this,Or),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return shouldFetchOn(Ut(this,Or),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Ir(this,Br,os).call(this),Ir(this,Br,ls).call(this),Ut(this,Or).removeObserver(this)}setOptions(s){const a=this.options,c=Ut(this,Or);if(this.options=Ut(this,Xr).defaultQueryOptions(s),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof resolveEnabled(this.options.enabled,Ut(this,Or))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Ir(this,Br,cs).call(this),Ut(this,Or).setOptions(this.options),a._defaulted&&!shallowEqualObjects(this.options,a)&&Ut(this,Xr).getQueryCache().notify({type:"observerOptionsUpdated",query:Ut(this,Or),observer:this});const g=this.hasListeners();g&&shouldFetchOptionally(Ut(this,Or),c,this.options,a)&&Ir(this,Br,Kn).call(this),this.updateResult(),g&&(Ut(this,Or)!==c||resolveEnabled(this.options.enabled,Ut(this,Or))!==resolveEnabled(a.enabled,Ut(this,Or))||resolveStaleTime(this.options.staleTime,Ut(this,Or))!==resolveStaleTime(a.staleTime,Ut(this,Or)))&&Ir(this,Br,ns).call(this);const et=Ir(this,Br,ss).call(this);g&&(Ut(this,Or)!==c||resolveEnabled(this.options.enabled,Ut(this,Or))!==resolveEnabled(a.enabled,Ut(this,Or))||et!==Ut(this,jn))&&Ir(this,Br,as).call(this,et)}getOptimisticResult(s){const a=Ut(this,Xr).getQueryCache().build(Ut(this,Xr),s),c=this.createResult(a,s);return shouldAssignObserverCurrentProperties(this,c)&&(Er(this,Yr,c),Er(this,zn,this.options),Er(this,Pn,Ut(this,Or).state)),c}getCurrentResult(){return Ut(this,Yr)}trackResult(s,a){return new Proxy(s,{get:(c,g)=>(this.trackProp(g),a==null||a(g),Reflect.get(c,g))})}trackProp(s){Ut(this,Gn).add(s)}getCurrentQuery(){return Ut(this,Or)}refetch({...s}={}){return this.fetch({...s})}fetchOptimistic(s){const a=Ut(this,Xr).defaultQueryOptions(s),c=Ut(this,Xr).getQueryCache().build(Ut(this,Xr),a);return c.fetch().then(()=>this.createResult(c,a))}fetch(s){return Ir(this,Br,Kn).call(this,{...s,cancelRefetch:s.cancelRefetch??!0}).then(()=>(this.updateResult(),Ut(this,Yr)))}createResult(s,a){var Gt;const c=Ut(this,Or),g=this.options,et=Ut(this,Yr),rt=Ut(this,Pn),nt=Ut(this,zn),at=s!==c?s.state:Ut(this,Qn),{state:it}=s;let ot={...it},lt=!1,ct;if(a._optimisticResults){const Mt=this.hasListeners(),zt=!Mt&&shouldFetchOnMount(s,a),Jt=Mt&&shouldFetchOptionally(s,c,a,g);(zt||Jt)&&(ot={...ot,...fetchState(it.data,s.options)}),a._optimisticResults==="isRestoring"&&(ot.fetchStatus="idle")}let{error:dt,errorUpdatedAt:ut,status:xt}=ot;ct=ot.data;let gt=!1;if(a.placeholderData!==void 0&&ct===void 0&&xt==="pending"){let Mt;et!=null&&et.isPlaceholderData&&a.placeholderData===(nt==null?void 0:nt.placeholderData)?(Mt=et.data,gt=!0):Mt=typeof a.placeholderData=="function"?a.placeholderData((Gt=Ut(this,Wn))==null?void 0:Gt.state.data,Ut(this,Wn)):a.placeholderData,Mt!==void 0&&(xt="success",ct=replaceData(et==null?void 0:et.data,Mt,a),lt=!0)}if(a.select&&ct!==void 0&&!gt)if(et&&ct===(rt==null?void 0:rt.data)&&a.select===Ut(this,Xn))ct=Ut(this,Vn);else try{Er(this,Xn,a.select),ct=a.select(ct),ct=replaceData(et==null?void 0:et.data,ct,a),Er(this,Vn,ct),Er(this,En,null)}catch(Mt){Er(this,En,Mt)}Ut(this,En)&&(dt=Ut(this,En),ct=Ut(this,Vn),ut=Date.now(),xt="error");const ht=ot.fetchStatus==="fetching",mt=xt==="pending",kt=xt==="error",Ct=mt&&ht,Tt=ct!==void 0,At={status:xt,fetchStatus:ot.fetchStatus,isPending:mt,isSuccess:xt==="success",isError:kt,isInitialLoading:Ct,isLoading:Ct,data:ct,dataUpdatedAt:ot.dataUpdatedAt,error:dt,errorUpdatedAt:ut,failureCount:ot.fetchFailureCount,failureReason:ot.fetchFailureReason,errorUpdateCount:ot.errorUpdateCount,isFetched:ot.dataUpdateCount>0||ot.errorUpdateCount>0,isFetchedAfterMount:ot.dataUpdateCount>at.dataUpdateCount||ot.errorUpdateCount>at.errorUpdateCount,isFetching:ht,isRefetching:ht&&!mt,isLoadingError:kt&&!Tt,isPaused:ot.fetchStatus==="paused",isPlaceholderData:lt,isRefetchError:kt&&Tt,isStale:isStale(s,a),refetch:this.refetch,promise:Ut(this,wn),isEnabled:resolveEnabled(a.enabled,s)!==!1};if(this.options.experimental_prefetchInRender){const Mt=nr=>{At.status==="error"?nr.reject(At.error):At.data!==void 0&&nr.resolve(At.data)},zt=()=>{const nr=Er(this,wn,At.promise=pendingThenable());Mt(nr)},Jt=Ut(this,wn);switch(Jt.status){case"pending":s.queryHash===c.queryHash&&Mt(Jt);break;case"fulfilled":(At.status==="error"||At.data!==Jt.value)&&zt();break;case"rejected":(At.status!=="error"||At.error!==Jt.reason)&&zt();break}}return At}updateResult(){const s=Ut(this,Yr),a=this.createResult(Ut(this,Or),this.options);if(Er(this,Pn,Ut(this,Or).state),Er(this,zn,this.options),Ut(this,Pn).data!==void 0&&Er(this,Wn,Ut(this,Or)),shallowEqualObjects(a,s))return;Er(this,Yr,a);const c=()=>{if(!s)return!0;const{notifyOnChangeProps:g}=this.options,et=typeof g=="function"?g():g;if(et==="all"||!et&&!Ut(this,Gn).size)return!0;const rt=new Set(et??Ut(this,Gn));return this.options.throwOnError&&rt.add("error"),Object.keys(Ut(this,Yr)).some(nt=>{const st=nt;return Ut(this,Yr)[st]!==s[st]&&rt.has(st)})};Ir(this,Br,_s).call(this,{listeners:c()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Ir(this,Br,is).call(this)}},Xr=new WeakMap,Or=new WeakMap,Qn=new WeakMap,Yr=new WeakMap,Pn=new WeakMap,zn=new WeakMap,wn=new WeakMap,En=new WeakMap,Xn=new WeakMap,Vn=new WeakMap,Wn=new WeakMap,Mn=new WeakMap,In=new WeakMap,jn=new WeakMap,Gn=new WeakMap,Br=new WeakSet,Kn=function(s){Ir(this,Br,cs).call(this);let a=Ut(this,Or).fetch(this.options,s);return s!=null&&s.throwOnError||(a=a.catch(noop)),a},ns=function(){Ir(this,Br,os).call(this);const s=resolveStaleTime(this.options.staleTime,Ut(this,Or));if(isServer||Ut(this,Yr).isStale||!isValidTimeout(s))return;const c=timeUntilStale(Ut(this,Yr).dataUpdatedAt,s)+1;Er(this,Mn,setTimeout(()=>{Ut(this,Yr).isStale||this.updateResult()},c))},ss=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(Ut(this,Or)):this.options.refetchInterval)??!1},as=function(s){Ir(this,Br,ls).call(this),Er(this,jn,s),!(isServer||resolveEnabled(this.options.enabled,Ut(this,Or))===!1||!isValidTimeout(Ut(this,jn))||Ut(this,jn)===0)&&Er(this,In,setInterval(()=>{(this.options.refetchIntervalInBackground||focusManager.isFocused())&&Ir(this,Br,Kn).call(this)},Ut(this,jn)))},is=function(){Ir(this,Br,ns).call(this),Ir(this,Br,as).call(this,Ir(this,Br,ss).call(this))},os=function(){Ut(this,Mn)&&(clearTimeout(Ut(this,Mn)),Er(this,Mn,void 0))},ls=function(){Ut(this,In)&&(clearInterval(Ut(this,In)),Er(this,In,void 0))},cs=function(){const s=Ut(this,Xr).getQueryCache().build(Ut(this,Xr),this.options);if(s===Ut(this,Or))return;const a=Ut(this,Or);Er(this,Or,s),Er(this,Qn,s.state),this.hasListeners()&&(a==null||a.removeObserver(this),s.addObserver(this))},_s=function(s){notifyManager.batch(()=>{s.listeners&&this.listeners.forEach(a=>{a(Ut(this,Yr))}),Ut(this,Xr).getQueryCache().notify({query:Ut(this,Or),type:"observerResultsUpdated"})})},js);function shouldLoadOnMount(e,s){return resolveEnabled(s.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&s.retryOnMount===!1)}function shouldFetchOnMount(e,s){return shouldLoadOnMount(e,s)||e.state.data!==void 0&&shouldFetchOn(e,s,s.refetchOnMount)}function shouldFetchOn(e,s,a){if(resolveEnabled(s.enabled,e)!==!1&&resolveStaleTime(s.staleTime,e)!=="static"){const c=typeof a=="function"?a(e):a;return c==="always"||c!==!1&&isStale(e,s)}return!1}function shouldFetchOptionally(e,s,a,c){return(e!==s||resolveEnabled(c.enabled,e)===!1)&&(!a.suspense||e.state.status!=="error")&&isStale(e,a)}function isStale(e,s){return resolveEnabled(s.enabled,e)!==!1&&e.isStaleByTime(resolveStaleTime(s.staleTime,e))}function shouldAssignObserverCurrentProperties(e,s){return!shallowEqualObjects(e.getCurrentResult(),s)}var kn,Rn,Zr,mn,hn,ts,us,ks,MutationObserver$1=(ks=class extends Subscribable{constructor(a,c){super();Ar(this,hn);Ar(this,kn);Ar(this,Rn);Ar(this,Zr);Ar(this,mn);Er(this,kn,a),this.setOptions(c),this.bindMethods(),Ir(this,hn,ts).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){var g;const c=this.options;this.options=Ut(this,kn).defaultMutationOptions(a),shallowEqualObjects(this.options,c)||Ut(this,kn).getMutationCache().notify({type:"observerOptionsUpdated",mutation:Ut(this,Zr),observer:this}),c!=null&&c.mutationKey&&this.options.mutationKey&&hashKey(c.mutationKey)!==hashKey(this.options.mutationKey)?this.reset():((g=Ut(this,Zr))==null?void 0:g.state.status)==="pending"&&Ut(this,Zr).setOptions(this.options)}onUnsubscribe(){var a;this.hasListeners()||(a=Ut(this,Zr))==null||a.removeObserver(this)}onMutationUpdate(a){Ir(this,hn,ts).call(this),Ir(this,hn,us).call(this,a)}getCurrentResult(){return Ut(this,Rn)}reset(){var a;(a=Ut(this,Zr))==null||a.removeObserver(this),Er(this,Zr,void 0),Ir(this,hn,ts).call(this),Ir(this,hn,us).call(this)}mutate(a,c){var g;return Er(this,mn,c),(g=Ut(this,Zr))==null||g.removeObserver(this),Er(this,Zr,Ut(this,kn).getMutationCache().build(Ut(this,kn),this.options)),Ut(this,Zr).addObserver(this),Ut(this,Zr).execute(a)}}
466,kn=new WeakMap,Rn=new WeakMap,Zr=new WeakMap,mn=new WeakMap,hn=new WeakSet,ts=function(){var c;const a=((c=Ut(this,Zr))==null?void 0:c.state)??getDefaultState();Er(this,Rn,{...a,isPending:a.status==="pending",isSuccess:a.status==="success",isError:a.status==="error",isIdle:a.status==="idle",mutate:this.mutate,reset:this.reset})},us=function(a){notifyManager.batch(()=>{var c,g,et,rt,nt,st,at,it;if(Ut(this,mn)&&this.hasListeners()){const ot=Ut(this,Rn).variables,lt=Ut(this,Rn).context;(a==null?void 0:a.type)==="success"?((g=(c=Ut(this,mn)).onSuccess)==null||g.call(c,a.data,ot,lt),(rt=(et=Ut(this,mn)).onSettled)==null||rt.call(et,a.data,null,ot,lt)):(a==null?void 0:a.type)==="error"&&((st=(nt=Ut(this,mn)).onError)==null||st.call(nt,a.error,ot,lt),(it=(at=Ut(this,mn)).onSettled)==null||it.call(at,void 0,a.error,ot,lt))}this.listeners.forEach(ot=>{ot(Ut(this,Rn))})})},ks),QueryClientContext=reactExports.createContext(void 0),useQueryClient=e=>{const s=reactExports.useContext(QueryClientContext);if(!s)throw new Error("No QueryClient set, use QueryClientProvider to set one");return s},QueryClientProvider=({client:e,children:s})=>(reactExports.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),jsxRuntimeExports.jsx(QueryClientContext.Provider,{value:e,children:s})),IsRestoringContext=reactExports.createContext(!1),useIsRestoring=()=>reactExports.useContext(IsRestoringContext);IsRestoringContext.Provider;function createValue(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var QueryErrorResetBoundaryContext=reactExports.createContext(createValue()),useQueryErrorResetBoundary=()=>reactExports.useContext(QueryErrorResetBoundaryContext),ensurePreventErrorBoundaryRetry=(e,s)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(s.isReset()||(e.retryOnMount=!1))},useClearResetErrorBoundary=e=>{reactExports.useEffect(()=>{e.clearReset()},[e])},getHasError=({result:e,errorResetBoundary:s,throwOnError:a,query:c,suspense:g})=>e.isError&&!s.isReset()&&!e.isFetching&&c&&(g&&e.data===void 0||shouldThrowError(a,[e.error,c])),ensureSuspenseTimers=e=>{if(e.suspense){const s=c=>c==="static"?c:Math.max(c??1e3,1e3),a=e.staleTime;e.staleTime=typeof a=="function"?(...c)=>s(a(...c)):s(a),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},willFetch=(e,s)=>e.isLoading&&e.isFetching&&!s,shouldSuspend=(e,s)=>(e==null?void 0:e.suspense)&&s.isPending,fetchOptimistic=(e,s,a)=>s.fetchOptimistic(e).catch(()=>{a.clearReset()});function useBaseQuery(e,s,a){var ot,lt,ct,dt,ut;const c=useIsRestoring(),g=useQueryErrorResetBoundary(),et=useQueryClient(),rt=et.defaultQueryOptions(e);(lt=(ot=et.getDefaultOptions().queries)==null?void 0:ot._experimental_beforeQuery)==null||lt.call(ot,rt),rt._optimisticResults=c?"isRestoring":"optimistic",ensureSuspenseTimers(rt),ensurePreventErrorBoundaryRetry(rt,g),useClearResetErrorBoundary(g);const nt=!et.getQueryCache().get(rt.queryHash),[st]=reactExports.useState(()=>new s(et,rt)),at=st.getOptimisticResult(rt),it=!c&&e.subscribed!==!1;if(reactExports.useSyncExternalStore(reactExports.useCallback(xt=>{const gt=it?st.subscribe(notifyManager.batchCalls(xt)):noop;return st.updateResult(),gt},[st,it]),()=>st.getCurrentResult(),()=>st.getCurrentResult()),reactExports.useEffect(()=>{st.setOptions(rt)},[rt,st]),shouldSuspend(rt,at))throw fetchOptimistic(rt,st,g);if(getHasError({result:at,errorResetBoundary:g,throwOnError:rt.throwOnError,query:et.getQueryCache().get(rt.queryHash),suspense:rt.suspense}))throw at.error;if((dt=(ct=et.getDefaultOptions().queries)==null?void 0:ct._experimental_afterQuery)==null||dt.call(ct,rt,at),rt.experimental_prefetchInRender&&!isServer&&willFetch(at,c)){const xt=nt?fetchOptimistic(rt,st,g):(ut=et.getQueryCache().get(rt.queryHash))==null?void 0:ut.promise;xt==null||xt.catch(noop).finally(()=>{st.updateResult()})}return rt.notifyOnChangeProps?at:st.trackResult(at)}function useQuery(e,s){return useBaseQuery(e,QueryObserver)}function useMutation(e,s){const a=useQueryClient(),[c]=reactExports.useState(()=>new MutationObserver$1(a,e));reactExports.useEffect(()=>{c.setOptions(e)},[c,e]);const g=reactExports.useSyncExternalStore(reactExports.useCallback(rt=>c.subscribe(notifyManager.batchCalls(rt)),[c]),()=>c.getCurrentResult(),()=>c.getCurrentResult()),et=reactExports.useCallback((rt,nt)=>{c.mutate(rt,nt).catch(noop)},[c]);if(g.error&&shouldThrowError(c.options.throwOnError,[g.error]))throw g.error;return{...g,mutate:et,mutateAsync:g.mutate}}const EAFLogo=({height:e=60,tone:s="ink",showWordmark:a=!0,className:c})=>{const g=s==="ink"?"hsl(var(--ink))":"hsl(var(--canvas))",et=e/150,rt=38*et,nt=44*et,st=32*et,at=[reactExports.useRef(null),reactExports.useRef(null),reactExports.useRef(null)];reactExports.useLayoutEffect(()=>{var gt;const xt=()=>{const ht=at.map(mt=>mt.current);ht.every(Boolean)&&(ht.forEach(mt=>mt.style.letterSpacing="0px"),requestAnimationFrame(()=>{const mt=ht.map(Pt=>Pt.getBoundingClientRect().width),kt=ht.map(Pt=>Pt.textContent.length),Ct=Math.max(mt[0],mt[1]-nt,mt[2]-2*nt)+8*et,Tt=[Ct,Ct+nt,Ct+2*nt];ht.forEach((Pt,At)=>{Pt.style.letterSpacing=Math.max(0,(Tt[At]-mt[At])/kt[At])+"px"})}))};(gt=document.fonts)!=null&>.ready?document.fonts.ready.then(xt):xt()},[et,nt]);const it=12,ot=62,lt=75,ct=75,dt=10,ut=[];for(let xt=0;xt<it;xt++){const gt=xt/it*2*Math.PI-Math.PI/2,ht=lt+ot*Math.cos(gt),mt=ct+ot*Math.sin(gt),kt=[];for(let Ct=0;Ct<5;Ct++){const Tt=(Ct*72-90)*Math.PI/180,Pt=Tt+36*Math.PI/180;kt.push((ht+dt*Math.cos(Tt)).toFixed(2),(mt+dt*Math.sin(Tt)).toFixed(2)),kt.push((ht+dt*.4*Math.cos(Pt)).toFixed(2),(mt+dt*.4*Math.sin(Pt)).toFixed(2))}ut.push(jsxRuntimeExports.jsx("polygon",{points:kt.join(","),fill:g},xt))}return jsxRuntimeExports.jsxs("div",{className:c,style:{display:"flex",alignItems:"center",gap:st},children:[jsxRuntimeExports.jsx("svg",{width:e,height:e,viewBox:"0 0 150 150","aria-hidden":!0,
466children:ut}),a&&jsxRuntimeExports.jsx("div",{style:{display:"flex",flexDirection:"column"},children:["European","Academic","Foundation"].map((xt,gt)=>jsxRuntimeExports.jsx("span",{ref:at[gt],style:{fontFamily:"'Spectral', Georgia, serif",fontWeight:300,fontSize:rt,lineHeight:1.2,color:g,whiteSpace:"nowrap",display:"block"},children:xt},xt))})]})},Navigation=()=>{const[e,s]=reactExports.useState(!1),[a,c]=reactExports.useState("dark"),g=useLocation(),et=[{name:"Home",path:"/"},{name:"About Us",path:"/about"},{name:"Fellowship",path:"/fellowship"},{name:"Cohorts",path:"/cohorts"},{name:"Mentors",path:"/mentors"},{name:"Academies",path:"/academies"},{name:"Apply",path:"/apply"},{name:"Contact",path:"/contact"}],rt=st=>g.pathname===st;reactExports.useEffect(()=>{s(!1)},[g.pathname]),reactExports.useEffect(()=>{const st=()=>{const at=window.innerWidth>=768?80:64,it=window.innerWidth/2,ot=at/2,lt=document.elementsFromPoint(it,ot);for(const ct of lt)if(ct instanceof HTMLElement&&ct.dataset.navTone){c(ct.dataset.navTone);return}c("dark")};return st(),window.addEventListener("scroll",st,{passive:!0}),window.addEventListener("resize",st),()=>{window.removeEventListener("scroll",st),window.removeEventListener("resize",st)}},[g.pathname]);const nt=a==="light";return jsxRuntimeExports.jsxs("nav",{className:`sticky top-0 z-50 border-b backdrop-blur-md transition-colors duration-300 print:hidden ${nt?"bg-ink/30 border-canvas/15":"bg-canvas/92 border-border"}`,children:[jsxRuntimeExports.jsx("div",{className:"max-w-7xl mx-auto px-5 sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between h-16 md:h-20",children:[jsxRuntimeExports.jsxs(Link,{to:"/",className:"flex items-center shrink-0","aria-label":"European Academic Foundation â home",children:[jsxRuntimeExports.jsx("span",{className:"block md:hidden",children:jsxRuntimeExports.jsx(EAFLogo,{height:32,tone:nt?"canvas":"ink",showWordmark:!0})}),jsxRuntimeExports.jsx("span",{className:"hidden md:block",children:jsxRuntimeExports.jsx(EAFLogo,{height:40,tone:nt?"canvas":"ink",showWordmark:!0})})]}),jsxRuntimeExports.jsx("div",{className:"hidden md:block",children:jsxRuntimeExports.jsx("div",{className:"ml-8 flex items-baseline gap-7",children:et.map(st=>{const at=rt(st.path),it=nt?at?"text-canvas font-medium":"text-canvas/65 hover:text-canvas font-normal":at?"text-ink font-medium":"text-ink/55 hover:text-ink font-normal";return jsxRuntimeExports.jsxs(Link,{to:st.path,className:`relative text-[13px] tracking-[0.16em] uppercase transition-colors ${it}`,children:[st.name,at&&jsxRuntimeExports.jsx("span",{className:`absolute -bottom-[26px] left-0 right-0 h-px ${nt?"bg-canvas":"bg-ink"}`})]},st.name)})})}),jsxRuntimeExports.jsx("div",{className:"md:hidden",children:jsxRuntimeExports.jsx(Button,{variant:"ghost",size:"sm",onClick:()=>s(!e),className:nt?"text-canvas hover:bg-canvas/10":"text-ink hover:bg-canvas-soft",children:e?jsxRuntimeExports.jsx(X$1,{className:"h-6 w-6"}):jsxRuntimeExports.jsx(Menu,{className:"h-6 w-6"})})})]})}),e&&jsxRuntimeExports.jsx("div",{className:"md:hidden border-t border-border bg-canvas",children:jsxRuntimeExports.jsx("div",{className:"px-5 pt-3 pb-5 space-y-0.5",children:et.map(st=>jsxRuntimeExports.jsx(Link,{to:st.path,className:`block px-2 py-3.5 text-[13px] tracking-[0.18em] uppercase transition-colors border-b border-border/60 last:border-b-0 ${rt(st.path)?"text-ink font-medium":"text-ink/60 hover:text-ink"}`,onClick:()=>s(!1),children:st.name},st.name))})})]})},CONTACT_EMAIL="[email protected]",Footer=()=>jsxRuntimeExports.jsx("footer",{className:"relative mt-auto border-t border-border bg-canvas-soft/60 print:hidden",children:jsxRuntimeExports.jsx("div",{className:"max-w-5xl mx-auto px-6 sm:px-8 py-8",children:jsxRuntimeExports.jsxs("div",{className:"text-center space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:jsxRuntimeExports.jsx(EAFLogo,{height:32,tone:"ink",showWordmark:!1})}),jsxRuntimeExports.jsx("p",{className:"font-serif text-sm text-ink",children:"European Academic Foundation gemeinnützige UG haftungsbeschränkt"}),jsxRuntimeExports.jsxs("p",{className:"text-[11px] tracking-[0.18em] uppercase text-ink/50 flex flex-wrap items-center justify-center gap-x-3 gap-y-1",children:[jsxRuntimeExports.jsx("span",{children:"2026 â all rights reserved"}),jsxRuntimeExports.jsx("span",{className:"text-ink/25",children:"·"}),jsxRuntimeExports.jsx("a",{href:`mailto:${CONTACT_EMAIL}`,className:"normal-case tracking-normal text-sm text-ink/70 hover:text-ink transition-colors",children:CONTACT_EMAIL})]})]})})}),ScrollToTop=()=>{const{pathname:e,hash:s}=useLocation();return reactExports.useEffect(()=>{if(s){const a=window.requestAnimationFrame(()=>{var c;(c=document.getElementById(s.slice(1)))==null||c.scrollIntoView()});return()=>window.cancelAnimationFrame(a)}window.scrollTo(0,0)},[e,s]),null},Analytics=()=>{const e=useLocation();return reactExports.useEffect(()=>{typeof window.gtag=="function"&&window.gtag("config","G-S7HN5MKEER",{page_path:e.pathname+e.search})},[e]),null},HostRouter=()=>{const e=useLocation(),s=useNavigate();return reactExports.useEffect(()=>{if(isPulseHost()){if(e.pathname==="/pulse"){s("/",{replace:!0});return}e.pathname.startsWith("/pulse/")&&s(e.pathname.replace(/^\/pulse/,"")+e.search+e.hash,{replace:!0})}},[e.hash,e.pathname,e.search,s]),null},Section=({children:e,className:s,variant:a="default",grain:c=!1})=>{const g="relative py-14 md:py-20 lg:py-24",et={default:"bg-canvas text-ink",accent:"bg-canvas-soft text-ink",deep:"bg-canvas-deep text-ink",primary:"bg-ink text-primary-foreground"},rt=a==="primary"||a==="deep"?"light":"dark";return jsxRuntimeExports.jsx("section",{"data-nav-tone":rt,className:cn(g,et[a],c&&"grain",s),children:jsxRuntimeExports.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-6 sm:px-8",children:e})})}
466,SectionHeader=({title:e,subtitle:s,eyebrow:a,centered:c=!0,className:g})=>jsxRuntimeExports.jsxs("div",{className:cn("mb-10 md:mb-14 space-y-4 md:space-y-5",c&&"text-center",g),children:[a&&jsxRuntimeExports.jsx("div",{className:"eyebrow",children:a}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl lg:text-[3.5rem] leading-[1.08] tracking-tight",children:e}),s&&jsxRuntimeExports.jsx("p",{className:cn("font-serif font-light text-base md:text-xl text-ink/65 leading-relaxed",c&&"max-w-2xl mx-auto"),children:s})]});let counter=0;const Grain=({uid:e,freq:s="0.78",octaves:a="4",opacity:c=.13,zIndex:g=20,blend:et="overlay"})=>{const rt=e??`grain-${++counter}`;return jsxRuntimeExports.jsxs("svg",{"aria-hidden":!0,style:{position:"absolute",inset:0,width:"100%",height:"100%",pointerEvents:"none",zIndex:g},xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntimeExports.jsx("defs",{children:jsxRuntimeExports.jsxs("filter",{id:`g-${rt}`,x:"0%",y:"0%",width:"100%",height:"100%",colorInterpolationFilters:"sRGB",children:[jsxRuntimeExports.jsx("feTurbulence",{type:"fractalNoise",baseFrequency:s,numOctaves:a,stitchTiles:"stitch",result:"noise"}),jsxRuntimeExports.jsx("feColorMatrix",{type:"saturate",values:"0",in:"noise"})]})}),jsxRuntimeExports.jsx("rect",{width:"100%",height:"100%",filter:`url(#g-${rt})`,opacity:c,style:{mixBlendMode:et}})]})},heroImage="/assets/home_backdrop-DYIMhWYb.webp",Hero=()=>jsxRuntimeExports.jsxs("section",{"data-nav-tone":"light",className:"relative overflow-hidden bg-ink text-canvas min-h-[62vh] md:min-h-0 md:h-[720px] flex items-center",children:[jsxRuntimeExports.jsx("img",{src:heroImage,alt:"","aria-hidden":!0,loading:"eager",className:"absolute inset-0 w-full h-full object-cover object-center"}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{zIndex:3,backgroundColor:"hsl(220 96% 14% / 0.85)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:4,opacity:.55,blend:"overlay"}),jsxRuntimeExports.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-6 sm:px-8 py-14 md:py-20 w-full",children:jsxRuntimeExports.jsxs("div",{className:"max-w-4xl animate-fade-in text-center mx-auto",children:[jsxRuntimeExports.jsx("div",{className:"mb-5 md:mb-6 text-canvas/75 uppercase font-medium text-sm md:text-[0.95rem] tracking-[0.22em]",children:"European Academic Foundation"}),jsxRuntimeExports.jsxs("h1",{className:"font-serif font-light text-canvas leading-[1.05] tracking-tight text-[clamp(2.25rem,6vw,5rem)]",children:["Academic Talent",jsxRuntimeExports.jsx("span",{className:"block italic text-stone-300 font-light mt-2 md:mt-3 text-[clamp(1.35rem,3vw,2.75rem)] tracking-normal",children:"in service of society"})]}),jsxRuntimeExports.jsx("p",{className:"mt-6 md:mt-8 max-w-2xl mx-auto text-base md:text-lg text-canvas/75 leading-relaxed",children:"Supporting exceptional students from across Europe through academic retreats, mentorship and a network of some of the continent's brightest minds."}),jsxRuntimeExports.jsxs("div",{className:"mt-8 md:mt-10 flex flex-col sm:flex-row gap-6 sm:gap-8 justify-center items-center",children:[jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas border-b border-canvas/50 hover:border-canvas pb-1 transition-colors",children:["Apply for 2027",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]}),jsxRuntimeExports.jsxs(Link,{to:"/fellowship",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas/80 border-b border-canvas/30 hover:border-canvas/70 hover:text-canvas pb-1 transition-colors",children:["Learn more",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})})]}),__vite_glob_0_0$1="/assets/2026_apply-BG56sJDS.webp",__vite_glob_0_1$1="/assets/2026_open-C3JmizKQ.webp",__vite_glob_0_2$1="/assets/academy_24_news-BVzWKH-5.webp",__vite_glob_0_3$1="/assets/academy_25_news-CDQX0Qsk.webp",__vite_glob_1_0=`--- 467title: "2026 cohort applications closed" 468date: "October 10, 2025" 469readTime: "1 min read" 470image: "2026_apply.webp"
471excerpt: "Applications for the 2026 European Academic Fellowship are closed. Applications for the 2027 cohort are now open." 472category: "News" 473hidden: true 474--- 475 476Applications for the **2026 European Academic Fellowship** are now closed. Applications for the 477**2027 cohort** are open. 478 479The academy will take place from **August 22-29, 2026**. 480 481### Preliminary Speakers Confirmed 482 483* **Prof. Kornelia KoÅczal** (Public History, Bielefeld University) 484* **Matthias Busch, M. Sc.** (Mobile Dialog Systems, OVGU Magdeburg) 485 486They will be leading a seminar on **Critical Perspectives on Artificial Intelligence**. 487 488<div class="my-8"> 489 <a href="/apply" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md px-8 text-lg"> 490 Apply for 2027 491 </a> 492</div> 493
494For more information, check out the [2026 Academy Preview](/academies/2026). 495`,__vite_glob_1_1=`--- 496title: "Fellowship applications: 2027 open, 2026 closed" 497date: "August 7, 2026" 498readTime: "1 min read" 499image: "2026_open.webp" 500excerpt: "Applications for the 2027 Fellowship are open. The 2026 cohort is closed and its fellows will be announced on September 1, 2026." 501category: "News" 502--- 503 504Applications for the **2027 European Academic Fellowship** are now open. 505 506Successful applicants will join the EAF community and take part in the fully funded **2027 Academy**. 507The academy's dates and location are still to be announced. 508 509Applications for the **2026 European Academic Fellowship** are closed. We will announce the 2026 fellows on **September 1, 2026**. The Torino Academy will take place from **August 22â30, 2026**. 510 511For more information, see the [2026 Academy preview](/academies/2026). 512 513<div class="my-8"> 514 <a href="/apply" class="inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 rounded-md px-8 text-lg"> 515 Apply for 2027 516 </a> 517</div> 518`,__vite_glob_1_2=`# News Articles 519 520This directory contains all news articles as individual markdown files with frontmatter metadata. 521 522## ð Structure 523 524\`\`\` 525src/pages/articles/ 526âââ _template.md # Template for new articles 527âââ summer-retreat-2024.md # Article with frontmatter + content 528âââ new-partnerships-2023.md # Another article 529âââ README.md # This file 530\`\`\` 531 532## âï¸ Adding a New Article 533 534### Simple Process (No Code Changes Needed!) 535 5361. Copy \`_template.md\` and rename it with a descriptive slug 5372. Update the frontmatter metadata 5383. Write your article content below the \`---\` 5394. That's it! The system automatically discovers and loads all \`.md\` files 540 541## ð Frontmatter Fields 542 543- **title**: Display title of the article 544- **date**: Publication date (Month DD, YYYY format) 545- **readTime**: Estimated reading time 546- **image**: Filename of image in \`/src/assets/news/\` (e.g., "academy_24_news.jpeg", "2026_open.jpg") 547- **excerpt**: Brief description for previews 548- **category**: One of: Events, Awards, Announcements, Research, Partnerships, Programs 549 550## ð¯ Content Guidelines 551 552- **First paragraph**: Will be automatically extracted as intro text 553- **Headings**: Use \`#\` for main sections, \`##\` for subsections 554- **Formatting**: Standard markdown (bold, italic, links, lists) 555- **Line breaks**: Use double line breaks for new paragraphs 556 557## ð Automatic Discovery & Sorting 558 559The system uses Vite's glob imports to automatically find and load all \`.md\` files in this directory, excluding: 560- Files starting with \`_\` (like \`_template.md\`) 561- Files containing "readme" (case-insensitive) 562 563**Sorting**: Articles are automatically sorted by publication date (newest first) on both the homepage and news page. 564 565## Example Article 566 567See any existing \`.md\` file for a complete example of the structure. 568`,__vite_glob_1_3=`--- 569title: "Your Article Title Here" 570date: "Month DD, YYYY" 571readTime: "X min read" 572image: "your_image.jpg" # Filename from /src/assets/news/ 573excerpt: "Brief description for previews and social sharing" 574category: "Events" # Events, Awards, Announcements, Research, Partnerships, Programs 575--- 576 577Your opening paragraph goes here. This will be automatically extracted as the intro text that appears after the hero image and before the main content. 578 579# First Section Heading 580 581Your first section content goes here. You can use all standard markdown formatting: 582 583- Bullet points 584- **Bold text** 585- *Italic text* 586- [Links](https://example.com) 587 588# Another Section 589 590More content for your article. You can have as many sections as you need. 591 592## Subsection 593 594You can also use subsections (h2, h3, etc.) to organize your content. 595 596Your closing paragraph or conclusion goes here. 597`,__vite_glob_1_4=`--- 598title: "Mittenwald Academy 2024" 599date: "January 11, 2025" 600readTime: "7 min read" 601image: "academy_24_news.webp" 602excerpt: "Our inaugural academy in the Bavarian Alps, centered on digital democracy, intelligence, and modern diplomacy." 603category: "Academies" 604subtitle: "The Future of European Democracy" 605location: "Mittenwald, Germany" 606participants: "16 Fellows" 607theme: "Digital Democracy & European Security" 608canonicalPath: "/academies/2024/report" 609--- 610 611<div class="report-card"> 612 <div class="report-card-content"> 613 <div class="eyebrow">Seminar 1</div> 614 <h2 id="seminar-digital-democracy">Digital Democracy</h2> 615 <p>The Digital Democracy seminar was led by <a href="https://coss.ethz.ch/people/helbing.html">Prof. Dirk Helbing</a> from ETH Zurich. Across the sessions, fellows worked through the central problem of democracy in a digital society: how institutions can use data, AI, and participatory tools without turning citizens into passive data points.</p> 616 <p>
616The seminar asked fellows to imagine democratic renewal as a design problem as well as a constitutional one. Rather than treating technology as either a threat or a shortcut, the discussions focused on the conditions under which digital tools can support deliberation, decentralization, transparency, and civic agency.</p> 617 <p>The topic became less abstract over the course of the week: fellows were not only asking what digital democracy is, but what responsibility technically literate citizens have in shaping it.</p> 618 <div class="report-led-by"> 619 <div class="eyebrow">Led by</div> 620 <div class="report-person-row"> 621 <a class="report-avatar" href="https://coss.ethz.ch/people/helbing.html"> 622 <img src="https://commons.wikimedia.org/wiki/Special:FilePath/Dirk_Helbing_portrait_by_Jannick_Timm_(cropped).png" alt="Dirk Helbing" /> 623 </a> 624 <div> 625 <div class="report-person-name">Prof. Dirk Helbing</div> 626 <div class="report-person-role">Computational Social Science, ETH Zurich</div> 627 </div> 628 </div> 629 </div> 630 </div> 631</div> 632 633<div class="report-card report-card-talk"> 634 <div class="report-card-content"> 635 <div class="eyebrow">Evening Talk</div> 636 <h2 id="talk-intelligence-diplomacy-and-security">Intelligence, Diplomacy, and Security</h2> 637 <p>We were also honored to host <a href="https://www.cassis.uni-bonn.de/en/about-us/all-employees/vonloringhoven">Dr. Arndt Freytag von Loringhoven</a>, former German Ambassador to Poland and former NATO Assistant Secretary General for Intelligence and Security. His talk brought the academy from democratic design into the world of intelligence services, diplomacy, and European security.</p> 638 <p>His session gave fellows a rare practitioner's view of how states understand threats, how intelligence is communicated to political decision-makers, and how diplomacy operates when trust between governments is fragile.</p> 639 <p>The discussion made the academy's democratic theme more concrete: resilient democracies depend not only on participation and legitimacy, but also on institutions capable of understanding information warfare, security risks, and geopolitical pressure.</p> 640 <div class="report-led-by"> 641 <div class="eyebrow">Guest speaker</div> 642 <div class="report-person-row"> 643 <a class="report-avatar" href="https://www.cassis.uni-bonn.de/en/about-us/all-employees/vonloringhoven"> 644 <img src="https://www.cassis.uni-bonn.de/medien/mitarbeiter/17020110-1.jpg" alt="Arndt Freytag von Loringhoven" /> 645 </a> 646 <div> 647 <div class="report-person-name">Dr. Arndt Freytag von Loringhoven</div> 648 <div class="report-person-role">Diplomat and former NATO Assistant Secretary General</div> 649 </div> 650 </div> 651 </div> 652 </div> 653</div> 654 655<div class="report-card report-card-community"> 656 <div class="report-card-content"> 657 <div class="eyebrow">Community</div> 658 <h2>Beyond the Classroom</h2> 659 <p>Beyond the classroom, we explored the local culture with a visit to the famous <a href="https://www.geigenbaumuseum.de/">Geigenbaumuseum</a> and took advantage of the stunning Alps with several hikes, some spontaneously organized by the fellows themselves. For the early risers, a running group braved the winter air each morning.</p> 660 <p>It was a week of firsts: the first EAF academy, the first shared kitchen chaos, and the first proof that a small group of fellows can turn demanding intellectual work into a genuine community.</p> 661 </div> 662</div> 663`,__vite_glob_1_5=`--- 664title: "Benediktbeuern Academy 2025" 665date: "September 20, 2025" 666readTime: "8 min read" 667image: "academy_25_news.webp" 668excerpt: "Creative Coding, International Relations, and AI entrepreneurship in a historic monastery setting." 669category: "Academies" 670subtitle: "Creative Coding & International Relations" 671location: "Benediktbeuern, Bavaria, Germany" 672participants: "15 Fellows" 673theme: "Technology, Creativity, Diplomacy & AI Entrepreneurship" 674canonicalPath: "/academies/2025/report" 675--- 676 677<div class="report-card"> 678 <div class="report-card-content"> 679 <div class="eyebrow">Seminar 1</div> 680 <h2 id="seminar-international-relations">International Relations</h2> 681 <p>The International Relations seminar was led by <a href="https://www.soas.ac.uk/about/chris-deacon">Dr. Chris Deacon</a>, Lecturer in Politics and International Relations at SOAS University of London. His sessions gave fellows a rigorous but accessible way into the discipline: how states construct interests, how historical memory shapes political behavior, and why international conflict cannot al
681ways be reduced to material incentives alone.</p> 682 <p>For the fellows, the seminar opened up a more subtle vocabulary for global politics. We discussed how states tell stories about themselves, how societies remember conflict, and how identity can harden diplomatic disputes even when material interests point toward cooperation. The result was a track that felt both theoretical and intensely current.</p> 683 <div class="report-led-by"> 684 <div class="eyebrow">Led by</div> 685 <div class="report-person-row"> 686 <a class="report-avatar" href="https://www.soas.ac.uk/about/chris-deacon"> 687 <img src="https://www.soas.ac.uk/sites/default/files/styles/uncropped_large/public/2024-11/Chris%20Deacon%20CD40%20Headshot%20%28c%29%20Mike%20Skelton.jpg" alt="Chris Deacon" /> 688 </a> 689 <div> 690 <div class="report-person-name">Dr. Chris Deacon</div> 691 <div class="report-person-role">Politics and International Relations, SOAS University of London</div> 692 </div> 693 </div> 694 </div> 695 </div> 696</div> 697 698<div class="report-card"> 699 <div class="report-card-content"> 700 <div class="eyebrow">Seminar 2</div> 701 <h2 id="seminar-creative-coding">Creative Coding</h2> 702 <p>The Creative Coding seminar was led by <a href="https://vvolhejn.com/">Václav Volhejn</a>, a researcher and creative technologist whose work moves between algorithms, machine learning, games, audio, visual experiments, and public-facing coding projects. Over five days, fellows treated code less as a purely technical skill and more as a medium for exploration.</p> 703 <p>The seminar emphasized fast prototyping, visual feedback, and the joy of making small systems that surprise their creators. Fellows experimented with generative sketches and interactive pieces, learning how constraints can become a source of creativity. Václav later wrote <a href="https://vvolhejn.com/2025/09/11/creative-coding-seminar.html">a detailed post about the seminar and the fellows' projects</a>.</p> 704 <div class="report-led-by"> 705 <div class="eyebrow">Led by</div> 706 <div class="report-person-row"> 707 <a class="report-avatar" href="https://vvolhejn.com/2025/09/11/creative-coding-seminar.html"> 708 <img src="https://vvolhejn.com/_next/image?q=75&url=%2Fassets%2Fimages%2Fportret-zmrzlina-20220801-crop.jpg&w=3840" alt="Václav Volhejn" /> 709 </a> 710 <div> 711 <div class="report-person-name">Václav Volhejn</div> 712 <div class="report-person-role">Researcher and creative technologist</div> 713 </div> 714 </div> 715 </div> 716 </div> 717</div> 718 719<div class="report-card report-card-talk"> 720 <div class="report-card-content"> 721 <div class="eyebrow">Evening Talk</div> 722 <h2 id="talk-building-lovable">Building Lovable</h2> 723 <p>We also welcomed <a href="https://techcrunch.com/2025/09/17/lovable-ceo-anton-osika-on-building-one-of-the-fastest-growing-startups-in-history-at-techcrunch-disrupt-2025/">Anton Osika</a>, co-founder and CEO of Lovable, for a talk on AI, software creation, and entrepreneurship. Lovable is an AI app-building platform that lets people create apps and websites by describing what they want in natural language.</p> 724 <p>His talk resonated strongly with the rest of the academy. After a week spent thinking about politics, code, creativity, and institutions, Lovable became a case study in how quickly technical interfaces can change who gets to build. The conversation with fellows ranged from product taste and startup speed to Europe's place in AI, the changing meaning of technical literacy, and the responsibility that comes with making powerful tools feel easy.</p> 725 <div class="report-led-by"> 726 <div class="eyebrow">Guest speaker</div> 727 <div class="report-person-row"> 728 <a class="report-avatar" href="https://techcrunch.com/2025/09/17/lovable-ceo-anton-osika-on-building-one-of-the-fastest-growing-startups-in-history-at-techcrunch-disrupt-2025/"> 729 <img src="https://techcrunch.com/wp-content/uploads/2025/08/Anton-Osika-e1756746220840.jpg" alt="Anton Osika" /> 730 </a> 731 <div> 732 <div class="report-person-name">Anton Osika</div> 733 <div class="report-person-role">
733Co-founder and CEO, Lovable</div> 734 </div> 735 </div> 736 </div> 737 </div> 738</div> 739 740<div class="report-card report-card-community"> 741 <div class="report-card-content"> 742 <div class="eyebrow">Community</div> 743 <h2>Beyond the Classroom</h2> 744 <p>The monastery grounds offered their own magic, from a guided tour of the historic complex to walks in the surrounding nature and even a dip in the "experimental" swimming pool. The fellows truly made the week their own, organizing a presentation night to share their personal passions and research topics, and even leading a baroque dance workshop that had us all stepping back in time. It was a charming blend of discipline, creativity, and community.</p> 745 </div> 746</div> 747`;function L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var O=L();function G(e){O=e}var E={exec:()=>null};function h(e,s=""){let a=typeof e=="string"?e:e.source,c={replace:(g,et)=>{let rt=typeof et=="string"?et:et.source;return rt=rt.replace(m.caret,"$1"),a=a.replace(g,rt),c},getRegex:()=>new RegExp(a,s)};return c}var m={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>new RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>new RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},xe=/^(?:[ \t]*(?:\n|$))+/,be=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,C=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Oe=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,j=/(?:[*+-]|\d{1,9}[.)])/,se=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,ie=h(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Te=h(se).replace(/bull/g,j).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),F=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,we=/^[^\n]+/,Q=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,ye=h(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Q).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),Pe=h(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,j).getRegex(),v="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",U=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Se=h("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>
747)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",U).replace("tag",v).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),oe=h(F).replace("hr",C).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex(),$e=h(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",oe).getRegex(),K={blockquote:$e,code:be,def:ye,fences:Re,heading:Oe,hr:C,html:Se,lheading:ie,list:Pe,newline:xe,paragraph:oe,table:E,text:we},re=h("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",C).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex(),_e={...K,lheading:Te,table:re,paragraph:h(F).replace("hr",C).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",re).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",v).getRegex()},Le={...K,html:h(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",U).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:E,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:h(F).replace("hr",C).replace("heading",` *#{1,6} *[^ 748]`).replace("lheading",ie).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},Me=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,ze=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ae=/^( {2,}|\\)\n(?!\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,D=/[\p{P}\p{S}]/u,W=/[\s\p{P}\p{S}]/u,le=/[^\s\p{P}\p{S}]/u,Ee=h(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,W).getRegex(),ue=/(?!~)[\p{P}\p{S}]/u,Ce=/(?!~)[\s\p{P}\p{S}]/u,Ie=/(?:[^\s\p{P}\p{S}]|~)/u,Be=/\[[^\[\]]*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)|`[^`]*?`|<(?! )[^<>]*?>/g,pe=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,qe=h(pe,"u").replace(/punct/g,D).getRegex(),ve=h(pe,"u").replace(/punct/g,ue).getRegex(),ce="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",De=h(ce,"gu").replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),He=h(ce,"gu").replace(/notPunctSpace/g,Ie).replace(/punctSpace/g,Ce).replace(/punct/g,ue).getRegex(),Ze=h("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,le).replace(/punctSpace/g,W).replace(/punct/g,D).getRegex(),Ge=h(/\\(punct)/,"gu").replace(/punct/g,D).getRegex(),Ne=h(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),je=h(U).replace("(?:-->|$)","-->").getRegex(),Fe=h("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",je).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),q=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,Qe=h(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",q).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),he
vendor: 29,444 bytes, lines 748-805
748=h(/^!?\[(label)\]\[(ref)\]/).replace("label",q).replace("ref",Q).getRegex(),de=h(/^!?\[(ref)\](?:\[\])?/).replace("ref",Q).getRegex(),Ue=h("reflink|nolink(?!\\()","g").replace("reflink",he).replace("nolink",de).getRegex(),X={_backpedal:E,anyPunctuation:Ge,autolink:Ne,blockSkip:Be,br:ae,code:ze,del:E,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ze,escape:Me,link:Qe,nolink:de,punctuation:Ee,reflink:he,reflinkSearch:Ue,tag:Fe,text:Ae,url:E},Ke={...X,link:h(/^!?\[(label)\]\((.*?)\)/).replace("label",q).getRegex(),reflink:h(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",q).getRegex()},N={...X,emStrongRDelimAst:He,emStrongLDelim:ve,url:h(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},We={...N,br:h(ae).replace("{2,}","*").getRegex(),text:h(N.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},I={normal:K,gfm:_e,pedantic:Le},M={normal:X,gfm:N,breaks:We,pedantic:Ke},Xe={"&":"&","<":"<",">":">",'"':""","'":"'"},ke=e=>Xe[e];function w(e,s){if(s){if(m.escapeTest.test(e))return e.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(e))return e.replace(m.escapeReplaceNoEncode,ke);return e}function J(e){try{e=encodeURI(e).replace(m.percentDecode,"%")}catch{return null}return e}function V(e,s){var et;let a=e.replace(m.findPipe,(rt,nt,st)=>{let at=!1,it=nt;for(;--it>=0&&st[it]==="\\";)at=!at;return at?"|":" |"}),c=a.split(m.splitPipe),g=0;if(c[0].trim()||c.shift(),c.length>0&&!((et=c.at(-1))!=null&&et.trim())&&c.pop(),s)if(c.length>s)c.splice(s);else for(;c.length<s;)c.push("");for(;g<c.length;g++)c[g]=c[g].trim().replace(m.slashPipe,"|");return c}function z(e,s,a){let c=e.length;if(c===0)return"";let g=0;for(;g<c;){let et=e.charAt(c-g-1);if(et===s&&!a)g++;else if(et!==s&&a)g++;else break}return e.slice(0,c-g)}function ge(e,s){if(e.indexOf(s[1])===-1)return-1;let a=0;for(let c=0;c<e.length;c++)if(e[c]==="\\")c++;else if(e[c]===s[0])a++;else if(e[c]===s[1]&&(a--,a<0))return c;return a>0?-2:-1}function fe(e,s,a,c,g){let et=s.href,rt=s.title||null,nt=e[1].replace(g.other.outputLinkReplace,"$1");c.state.inLink=!0;let st={type:e[0].charAt(0)==="!"?"image":"link",raw:a,href:et,title:rt,text:nt,tokens:c.inlineTokens(nt)};return c.state.inLink=!1,st}function Je(e,s,a){let c=e.match(a.other.indentCodeCompensation);if(c===null)return s;let g=c[1];return s.split(` 749`).map(et=>{let rt=et.match(a.other.beginningSpace);if(rt===null)return et;let[nt]=rt;return nt.length>=g.length?et.slice(g.length):et}).join(` 750`)}var y=class{constructor(e){Hr(this,"options");Hr(this,"rules");Hr(this,"lexer");this.options=e||O}space(e){let s=this.rules.block.newline.exec(e);if(s&&s[0].length>0)return{type:"space",raw:s[0]}}code(e){let s=this.rules.block.code.exec(e);if(s){let a=s[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:s[0],codeBlockStyle:"indented",text:this.options.pedantic?a:z(a,` 751`)}}}fences(e){let s=this.rules.block.fences.exec(e);if(s){let a=s[0],c=Je(a,s[3]||"",this.rules);return{type:"code",raw:a,lang:s[2]?s[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):s[2],text:c}}}heading(e){let s=this.rules.block.heading.exec(e);if(s){let a=s[2].trim();if(this.rules.other.endingHash.test(a)){let c=z(a,"#");(this.options.pedantic||!c||this.rules.other.endingSpaceChar.test(c))&&(a=c.trim())}return{type:"heading",raw:s[0],depth:s[1].length,text:a,tokens:this.lexer.inline(a)}}}hr(e){let s=this.rules.block.hr.exec(e);if(s)return{type:"hr",raw:z(s[0],` 752`)}}blockquote(e){let s=this.rules.block.blockquote.exec(e);if(s){let a=z(s[0],` 753`).split(` 754`),c="",g="",et=[];for(;a.length>0;){let rt=!1,nt=[],st;for(st=0;st<a.length;st++)if(this.rules.other.blockquoteStart.test(a[st]))nt.push(a[st]),rt=!0;else if(!rt)nt.push(a[st]);else break;a=a.slice(st);let at=nt.join(` 755`),it=at.replace(this.rules.other.blockquoteSetextReplace,` 756 $1`).replace(this.rules.other.blockquoteSetextReplace2,"");c=c?`${c} 757${at}`:at,g=g?`${g} 758${it}`:it;let ot=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(it,et,!0),this.lexer.state.top=ot,a.length===0)break;let lt=et.at(-1);if((lt==null?void 0:lt.type)==="code")break;if((lt==null?void 0:lt.type)==="blockquote"){let ct=lt,dt=ct.raw+` 759`+a.join(` 760`),ut=this.blockquote(dt);et[et.length-1]=ut,c=c.substring(0,c.length-ct.raw.length)+ut.raw,g=g.substring(0,g.length-ct.text.length)+ut.text;break}else if((lt==null?void 0:lt.type)==="list"){let ct=lt,dt=ct.raw+` 761`+a.join(` 762`),ut=this.list(dt);et[et.length-1]=ut,c=c.substring(0,c.length-lt.raw.length)+ut.raw,g=g.substring(0,g.length-ct.raw.length)+ut.raw,a=dt.substring(et.at(-1).raw.length).split(` 763`);continue}}return{type:"blockquote",raw:c,tokens:et,text:g}}}list(e){let s=this.rules.block.list.exec(e);if(s){let a=s[1].trim(),c=a.length>1,g={type:"list",raw:"",ordered:c,start:c?+a.slice(0,-1):"",loose:!1,items:[]};a=c?`\\d{1,9}\\${a.slice(-1)}`:`\\${a}`,this.options.pedantic&&(a=c?a:"[*+-]");let et=this.rules.other.listItemRegex(a),rt=!1;for(;e;){let st=!1,at="",it="";if(!(s=et.exec(e))||this.rules.block.hr.test(e))break;at=s[0],e=e.substring(at.length);let ot=s[2].split(` 764`,1)[0].replace(this.rules.other.listReplaceTabs,gt=>" ".repeat(3*gt.length)),lt=e.split(` 765`,1)[0],ct=!ot.trim(),dt=0;if(this.options.pedantic?(dt=2,it=ot.trimStart()):ct?dt=s[1].length+1:(dt=s[2].search(this.rules.other.nonSpaceChar),dt=dt>4?1:dt,it=ot.slice(dt),dt+=s[1].length),ct&&this.rules.other.blankLine.test(lt)&&(at+=lt+` 766`,e=e.substring(lt.length+1),st=!0),!st){let gt=this.rules.other.nextBulletRegex(dt),ht=this.rules.other.hrRegex(dt),mt=this.rules.other.fencesBeginRegex(dt),kt=this.rules.other.headingBeginRegex(dt),Ct=this.rules.other.htmlBeginRegex(dt);for(;e;){let Tt=e.split(` 767`,1)[0],Pt;if(lt=Tt,this.options.pedantic?(lt=lt.replace(this.rules.other.listReplaceNesting," "),Pt=lt):Pt=lt.replace(this.rules.other.tabCharGlobal," "),mt.test(lt)||kt.test(lt)||Ct.test(lt)||gt.test(lt)||ht.test(lt))break;if(Pt.search(this.rules.other.nonSpaceChar)>=dt||!lt.trim())it+=` 768`+Pt.slice(dt);else{if(ct||ot.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||mt.test(ot)||kt.test(ot)||ht.test(ot))break;it+=` 769`+lt}!ct&&!lt.trim()&&(ct=!0),at+=Tt+` 770`,e=e.substring(Tt.length+1),ot=Pt.slice(dt)}}g.loose||(rt?g.loose=!0:this.rules.other.doubleBlankLine.test(at)&&(rt=!0));let ut=null,xt;this.options.gfm&&(ut=this.rules.other.listIsTask.exec(it),ut&&(xt=ut[0]!=="[ ] ",it=it.replace(this.rules.other.listReplaceTask,""))),g.items.push({type:"list_item",raw:at,task:!!ut,checked:xt,loose:!1,text:it,tokens:[]}),g.raw+=at}let nt=g.items.at(-1);if(nt)nt.raw=nt.raw.trimEnd(),nt.text=nt.text.trimEnd();else return;g.raw=g.raw.trimEnd();for(let st=0;st<g.items.length;st++)if(this.lexer.state.top=!1,g.items[st].tokens=this.lexer.blockTokens(g.items[st].text,[]),!g.loose){let at=g.items[st].tokens.filter(ot=>ot.type==="space"),it=at.length>0&&at.some(ot=>this.rules.other.anyLine.test(ot.raw));g.loose=it}if(g.loose)for(let st=0;st<g.items.length;st++)g.items[st].loose=!0;return g}}html(e){let s=this.rules.block.html.exec(e);if(s)return{type:"html",block:!0,raw:s[0],pre:s[1]==="pre"||s[1]==="script"||s[1]==="style",text:s[0]}}def(e){let s=this.rules.block.def.exec(e);if(s){let a=s[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),c=s[2]?s[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",g=s[3]?s[3].substring(1,s[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):s[3];return{type:"def",tag:a,raw:s[0],href:c,title:g}}}table(e){var rt;let s=this.rules.block.table.exec(e);if(!s||!this.rules.other.tableDelimiter.test(s[2]))return;let a=V(s[1]),c=s[2].replace(this.rules.other.tableAlignChars,"").split("|"),g=(rt=s[3])!=null&&rt.trim()?s[3].replace(this.rules.other.tableRowBlankLine,"").split(` 771`):[],et={type:"table",raw:s[0],header:[],align:[],rows:[]};if(a.length===c.length){for(let nt of c)this.rules.other.tableAlignRight.test(nt)?et.align.push("right"):this.rules.other.tableAlignCenter.test(nt)?et.align.push("center"):this.rules.other.tableAlignLeft.test(nt)?et.align.push("left"):et.align.push(null);for(let nt=0;nt<a.length;nt++)et.header.push({text:a[nt],tokens:this.lexer.inline(a[nt]),header:!0,align:et.align[nt]});for(let nt of g)et.rows.push(V(nt,et.header.length).map((st,at)=>({text:st,tokens:this.lexer.inline(st),header:!1,align:et.align[at]})));return et}}lheading(e){let s=this.rules.block.lheading.exec(e);if(s)return{type:"heading",raw:s[0],depth:s[2].charAt(0)==="="?1:2,text:s[1],tokens:this.lexer.inline(s[1])}}paragraph(e){let s=this.rules.block.paragraph.exec(e);if(s){let a=s[1].charAt(s[1].length-1)===` 772`?s[1].slice(0,-1):s[1];return{type:"paragraph",raw:s[0],text:a,tokens:this.lexer.inline(a)}}}text(e){let s=this.rules.block.text.exec(e);if(s)return{type:"text",raw:s[0],text:s[0],tokens:this.lexer.inline(s[0])}}escape(e){let s=this.rules.inline.escape.exec(e);if(s)return{type:"escape",raw:s[0],text:s[1]}}tag(e){let s=this.rules.inline.tag.exec(e);if(s)return!this.lexer.state.inLink&&this.rules.other.startATag.test(s[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(s[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(s[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(s[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:s[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:s[0]}}link(e){let s=this.rules.inline.link.exec(e);if(s){let a=s[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(a)){if(!this.rules.other.endAngleBracket.test(a))return;let et=z(a.slice(0,-1),"\\");if((a.length-et.length)%2===0)return}else{let et=ge(s[2],"()");if(et===-2)return;if(et>-1){let rt=(s[0].indexOf("!")===0?5:4)+s[1].length+et;s[2]=s[2].substring(0,et),s[0]=s[0].substring(0,rt).trim(),s[3]=""}}let c=s[2],g="";if(this.options.pedantic){let et=this.rules.other.pedanticHrefTitle.exec(c);et&&(c=et[1],g=et[3])}else g=s[3]?s[3].slice(1,-1):"";return c=c.trim(),this.rules.other.startAngleBracket.test(c)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(a)?c=c.slice(1):c=c.slice(1,-1)),fe(s,{href:c&&c.replace(this.rules.inline.anyPunctuation,"$1"),title:g&&g.replace(this.rules.inline.anyPunctuation,"$1")},s[0],this.lexer,this.rules)}}reflink(e,s){let a;if((a=this.rules.inline.reflink.exec(e))||(a=this.rules.inline.nolink.exec(e))){let c=(a[2]||a[1]).replace(this.rules.other.multipleSpaceGlobal," "),g=s[c.toLowerCase()];if(!g){let et=a[0].charAt(0);return{type:"text",raw:et,text:et}}return fe(a,g,a[0],this.lexer,this.rules)}}emStrong(e,s,a=""){let c=this.rules.inline.emStrongLDelim.exec(e);if(!(!c||c[3]&&a.match(this.rules.other.unicodeAlphaNumeric))&&(!(c[1]||c[2])||!a||this.rules.inline.punctuation.exec(a))){let g=[...c[0]].length-1,et,rt,nt=g,st=0,at=c[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(at.lastIndex=0,s=s.slice(-1*e.length+g);(c=at.exec(s))!=null;){if(et=c[1]||c[2]||c[3]||c[4]||c[5]||c[6],!et)continue;if(rt=[...et].length,c[3]||c[4]){nt+=rt;continue}else if((c[5]||c[6])&&g%3&&!((g+rt)%3)){st+=rt;continue}if(nt-=rt,nt>0)continue;rt=Math.min(rt,rt+nt+st);let it=[...c[0]][0].length,ot=e.slice(0,g+c.index+it+rt);if(Math.min(g,rt)%2){let ct=ot.slice(1,-1);return{type:"em",raw:ot,text:ct,tokens:this.lexer.inlineTokens(ct)}}let lt=ot.slice(2,-2);return{type:"strong",raw:ot,text:lt,tokens:this.lexer.inlineTokens(lt)}}}}codespan(e){let s=this.rules.inline.code.exec(e);if(s){let a=s[2].replace(this.rules.other.newLineCharGlobal," "),c=this.rules.other.nonSpaceChar.test(a),g=this.rules.other.startingSpaceChar.test(a)&&this.rules.other.endingSpaceChar.test(a);return c&&g&&(a=a.substring(1,a.length-1)),{type:"codespan",raw:s[0],text:a}}}br(e){let s=this.rules.inline.br.exec(e);if(s)return{type:"br",raw:s[0]}}del(e){let s=this.rules.inline.del.exec(e);if(s)return{type:"del",raw:s[0],text:s[2],tokens:this.lexer.inlineTokens(s[2])}}autolink(e){let s=this.rules.inline.autolink.exec(e);if(s){let a,c;return s[2]==="@"?(a=s[1],c="mailto:"+a):(a=s[1],c=a),{type:"link",raw:s[0],text:a,href:c,tokens:[{type:"text",raw:a,text:a}]}}}url(e){var a;let s;if(s=this.rules.inline.url.exec(e)){let c,g;if(s[2]==="@")c=s[0],g="mailto:"+c;else{let et;do et=s[0],s[0]=((a=this.rules.inline._backpedal.exec(s[0]))==null?void 0:a[0])??"";while(et!==s[0]);c=s[0],s[1]==="www."?g="http://"+s[0]:g=s[0]}return{type:"link",raw:s[0],text:c,href:g,tokens:[{type:"text",raw:c,text:c}]}}}inlineText(e){let s=this.rules.inline.text.exec(e);if(s){let a=this.lexer.state.inRawBlock;return{type:"text",raw:s[0],text:s[0],escaped:a}}}},b=class ds{constructor(s){Hr(this,"tokens");Hr(this,"options");Hr(this,"state");Hr(this,"tokenizer");Hr(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=s||O,this.options.tokenizer=this.options.tokenizer||new y,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let a={other:m,block:I.normal,inline:M.normal};this.options.pedantic?(a.block=I.pedantic,a.inline=M.pedantic):this.options.gfm&&(a.block=I.gfm,this.options.breaks?a.inline=M.breaks:a.inline=M.gfm),this.tokenizer.rules=a}static get rules(){return{block:I,inline:M}}static lex(s,a){return new ds(a).lex(s)}static lexInline(s,a){return new ds(a).inlineTokens(s)}lex(s){s=s.replace(m.carriageReturn,` 773`),this.blockTokens(s,this.tokens);for(let a=0;a<this.inlineQueue.length;a++){let c=this.inlineQueue[a];this.inlineTokens(c.src,c.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(s,a=[],c=!1){var g,et,rt;for(this.options.pedantic&&(s=s.replace(m.tabCharGlobal," ").replace(m.spaceLine,""));s;){let nt;if((et=(g=this.options.extensions)==null?void 0:g.block)!=null&&et.some(at=>(nt=at.call({lexer:this},s,a))?(s=s.substring(nt.raw.length),a.push(nt),!0):!1))continue;if(nt=this.tokenizer.space(s)){s=s.substring(nt.raw.length);let at=a.at(-1);nt.raw.length===1&&at!==void 0?at.raw+=` 774`:a.push(nt);continue}if(nt=this.tokenizer.code(s)){s=s.substring(nt.raw.length);let at=a.at(-1);(at==null?void 0:at.type)==="paragraph"||(at==null?void 0:at.type)==="text"?(at.raw+=(at.raw.endsWith(` 775`)?"":` 776`)+nt.raw,at.text+=` 777`+nt.text,this.inlineQueue.at(-1).src=at.text):a.push(nt);continue}if(nt=this.tokenizer.fences(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.heading(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.hr(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.blockquote(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.list(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.html(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.def(s)){s=s.substring(nt.raw.length);let at=a.at(-1);(at==null?void 0:at.type)==="paragraph"||(at==null?void 0:at.type)==="text"?(at.raw+=(at.raw.endsWith(` 778`)?"":` 779`)+nt.raw,at.text+=` 780`+nt.raw,this.inlineQueue.at(-1).src=at.text):this.tokens.links[nt.tag]||(this.tokens.links[nt.tag]={href:nt.href,title:nt.title},a.push(nt));continue}if(nt=this.tokenizer.table(s)){s=s.substring(nt.raw.length),a.push(nt);continue}if(nt=this.tokenizer.lheading(s)){s=s.substring(nt.raw.length),a.push(nt);continue}let st=s;if((rt=this.options.extensions)!=null&&rt.startBlock){let at=1/0,it=s.slice(1),ot;this.options.extensions.startBlock.forEach(lt=>{ot=lt.call({lexer:this},it),typeof ot=="number"&&ot>=0&&(at=Math.min(at,ot))}),at<1/0&&at>=0&&(st=s.substring(0,at+1))}if(this.state.top&&(nt=this.tokenizer.paragraph(st))){let at=a.at(-1);c&&(at==null?void 0:at.type)==="paragraph"?(at.raw+=(at.raw.endsWith(` 781`)?"":` 782`)+nt.raw,at.text+=` 783`+nt.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=at.text):a.push(nt),c=st.length!==s.length,s=s.substring(nt.raw.length);continue}if(nt=this.tokenizer.text(s)){s=s.substring(nt.raw.length);let at=a.at(-1);(at==null?void 0:at.type)==="text"?(at.raw+=(at.raw.endsWith(` 784`)?"":` 785`)+nt.raw,at.text+=` 786`+nt.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=at.text):a.push(nt);continue}if(s){let at="Infinite loop on byte: "+s.charCodeAt(0);if(this.options.silent){console.error(at);break}else throw new Error(at)}}return this.state.top=!0,a}inline(s,a=[]){return this.inlineQueue.push({src:s,tokens:a}),a}inlineTokens(s,a=[]){var nt,st,at,it,ot;let c=s,g=null;if(this.tokens.links){let lt=Object.keys(this.tokens.links);if(lt.length>0)for(;(g=this.tokenizer.rules.inline.reflinkSearch.exec(c))!=null;)lt.includes(g[0].slice(g[0].lastIndexOf("[")+1,-1))&&(c=c.slice(0,g.index)+"["+"a".repeat(g[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(g=this.tokenizer.rules.inline.anyPunctuation.exec(c))!=null;)c=c.slice(0,g.index)+"++"+c.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(g=this.tokenizer.rules.inline.blockSkip.exec(c))!=null;)c=c.slice(0,g.index)+"["+"a".repeat(g[0].length-2)+"]"+c.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);c=((st=(nt=this.options.hooks)==null?void 0:nt.emStrongMask)==null?void 0:st.call({lexer:this},c))??c;let et=!1,rt="";for(;s;){et||(rt=""),et=!1;let lt;if((it=(at=this.options.extensions)==null?void 0:at.inline)!=null&&it.some(dt=>(lt=dt.call({lexer:this},s,a))?(s=s.substring(lt.raw.length),a.push(lt),!0):!1))continue;if(lt=this.tokenizer.escape(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.tag(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.link(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.reflink(s,this.tokens.links)){s=s.substring(lt.raw.length);let dt=a.at(-1);lt.type==="text"&&(dt==null?void 0:dt.type)==="text"?(dt.raw+=lt.raw,dt.text+=lt.text):a.push(lt);continue}if(lt=this.tokenizer.emStrong(s,c,rt)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.codespan(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.br(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.del(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(lt=this.tokenizer.autolink(s)){s=s.substring(lt.raw.length),a.push(lt);continue}if(!this.state.inLink&&(lt=this.tokenizer.url(s))){s=s.substring(lt.raw.length),a.push(lt);continue}let ct=s;if((ot=this.options.extensions)!=null&&ot.startInline){let dt=1/0,ut=s.slice(1),xt;this.options.extensions.startInline.forEach(gt=>{xt=gt.call({lexer:this},ut),typeof xt=="number"&&xt>=0&&(dt=Math.min(dt,xt))}),dt<1/0&&dt>=0&&(ct=s.substring(0,dt+1))}if(lt=this.tokenizer.inlineText(ct)){s=s.substring(lt.raw.length),lt.raw.slice(-1)!=="_"&&(rt=lt.raw.slice(-1)),et=!0;let dt=a.at(-1);(dt==null?void 0:dt.type)==="text"?(dt.raw+=lt.raw,dt.text+=lt.text):a.push(lt);continue}if(s){let dt="Infinite loop on byte: "+s.charCodeAt(0);if(this.options.silent){console.error(dt);break}else throw new Error(dt)}}return a}},P=class{constructor(e){Hr(this,"options");Hr(this,"parser");this.options=e||O}space(e){return""}code({text:e,lang:s,escaped:a}){var et;let c=(et=(s||"").match(m.notSpaceStart))==null?void 0:et[0],g=e.replace(m.endingNewline,"")+` 787`;return c?'<pre><code class="language-'+w(c)+'">'+(a?g:w(g,!0))+`</code></pre> 788`:"<pre><code>"+(a?g:w(g,!0))+`</code></pre> 789`}blockquote({tokens:e}){return`<blockquote> 790${this.parser.parse(e)}</blockquote> 791`}html({text:e}){return e}def(e){return""}heading({tokens:e,depth:s}){return`<h${s}>${this.parser.parseInline(e)}</h${s}> 792`}hr(e){return`<hr> 793`}list(e){let s=e.ordered,a=e.start,c="";for(let rt=0;rt<e.items.length;rt++){let nt=e.items[rt];c+=this.listitem(nt)}let g=s?"ol":"ul",et=s&&a!==1?' start="'+a+'"':"";return"<"+g+et+`> 794`+c+"</"+g+`> 795`}listitem(e){var a;let s="";if(e.task){let c=this.checkbox({checked:!!e.checked});e.loose?((a=e.tokens[0])==null?void 0:a.type)==="paragraph"?(e.tokens[0].text=c+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=c+" "+w(e.tokens[0].tokens[0].text),e.tokens[0].tokens[0].escaped=!0)):e.tokens.unshift({type:"text",raw:c+" ",text:c+" ",escaped:!0}):s+=c+" "}return s+=this.parser.parse(e.tokens,!!e.loose),`<li>${s}</li> 796`}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p> 797`}table(e){let s="",a="";for(let g=0;g<e.header.length;g++)a+=this.tablecell(e.header[g]);s+=this.tablerow({text:a});let c="";for(let g=0;g<e.rows.length;g++){let et=e.rows[g];a="";for(let rt=0;rt<et.length;rt++)a+=this.tablecell(et[rt]);c+=this.tablerow({text:a})}return c&&(c=`<tbody>${c}</tbody>`),`<table> 798<thead> 799`+s+`</thead> 800`+c+`</table> 801`}tablerow({text:e}){return`<tr> 802${e}</tr> 803`}tablecell(e){let s=this.parser.parseInline(e.tokens),a=e.header?"th":"td";return(e.align?`<${a} align="${e.align}">`:`<${a}>`)+s+`</${a}> 804`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${w(e,!0)}</code>`}br(e){return"<br>"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:s,tokens:a}){let c=this.parser.parseInline(a),g=J(e);if(g===null)return c;e=g;let et='<a href="'+e+'"';return s&&(et+=' title="'+w(s)+'"'),et+=">"+c+"</a>",et}image({href:e,title:s,text:a,tokens:c}){c&&(a=this.parser.parseInline(c,this.parser.textRenderer));let g=J(e);if(g===null)return w(a);e=g;let et=`<img src="${e}" alt="${a}"`;return s&&(et+=` title="${w(s)}"`),et+=">",et}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):"escaped"in e&&e.escaped?e.text:w(e.text)}},$=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}},R=class ps{constructor(s){Hr(this,"options");Hr(this,"renderer");Hr(this,"textRenderer");this.options=s||O,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(s,a){return new ps(a).parse(s)}static parseInline(s,a){return new ps(a).parseInline(s)}parse(s,a=!0){var g,et;let c="";for(let rt=0;rt<s.length;rt++){let nt=s[rt];if((et=(g=this.options.extensions)==null?void 0:g.renderers)!=null&&et[nt.type]){let at=nt,it=this.options.extensions.renderers[at.type].call({parser:this},at);if(it!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(at.type)){c+=it||"";continue}}let st=nt;switch(st.type){case"space":{c+=this.renderer.space(st);continue}case"hr":{c+=this.renderer.hr(st);continue}case"heading":{c+=this.renderer.heading(st);continue}case"code":{c+=this.renderer.code(st);continue}case"table":{c+=this.renderer.table(st);continue}case"blockquote":{c+=this.renderer.blockquote(st);continue}case"list":{c+=this.renderer.list(st);continue}case"html":{c+=this.renderer.html(st);continue}case"def":{c+=this.renderer.def(st);continue}case"paragraph":{c+=this.renderer.paragraph(st);continue}case"text":{let at=st,it=this.renderer.text(at);for(;rt+1<s.length&&s[rt+1].type==="text";)at=s[++rt],it+=` 805`+this.renderer.text(at);a?c+=this.renderer.paragraph({type:"paragraph",raw:it,text:it,tokens:[{type:"text",raw:it,text:it,escaped:!0}]}):c+=it;continue}default:{let at='Token with "'+st.type+'" type was not found.';if(this.options.silent)return console.error(at),"";throw new Error(at)}}}return c}parseInline(s,a=this.renderer){var g,et;let c="";for(let rt=0;rt<s.length;rt++){let nt=s[rt];if((et=(g=this.options.extensions)==null?void 0:g.renderers)!=null&&et[nt.type]){let at=this.options.extensions.renderers[nt.type].call({parser:this},nt);if(at!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(nt.type)){c+=at||"";continue}}let st=nt;switch(st.type){case"escape":{c+=a.text(st);break}case"html":{c+=a.html(st);break}case"link":{c+=a.link(st);break}case"image":{c+=a.image(st);break}case"strong":{c+=a.strong(st);break}case"em":{c+=a.em(st);break}case"codespan":{c+=a.codespan(st);break}case"br":{c+=a.br(st);break}case"del":{c+=a.del(st);break}case"text":{c+=a.text(st);break}default:{let at='Token with "'+st.type+'" type was not found.';if(this.options.silent)return console.error(at),"";throw new Error(at)}}}return c}},es,S=(es=class{constructor(e){Hr(this,"options");Hr(this,"block");this.options=e||O}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?b.lex:b.lexInline}provideParser(){return this.block?R.parse:R.parseInline}},Hr(es,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),Hr(es,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),es),B=class{constructor(...e){Hr(this,"defaults",L());Hr(this,"options",this.setOptions);Hr(this,"parse",this.parseMarkdown(!0));Hr(this,"parseInline",this.parseMarkdown(!1));Hr(this,"Parser",R);Hr(this,"Renderer",P);Hr(this,"TextRenderer",$);Hr(this,"Lexer",b);Hr(this,"Tokenizer",y);Hr(this,"Hooks",S);this.use(...e)}walkTokens(e,s){var c,g;let a=[];for(let et of e)switch(a=a.concat(s.call(this,et)),et.type){case"table":{let rt=et;for(let nt of rt.header)a=a.concat(this.walkTokens(nt.tokens,s));for(let nt of rt.rows)for(let st of nt)a=a.concat(this.walkTokens(st.tokens,s));break}case"list":{let rt=et;a=a.concat(this.walkTokens(rt.items,s));break}default:{let rt=et;(g=(c=this.defaults.extensions)==null?void 0:c.childTokens)!=null&&g[rt.type]?this.defaults.extensions.childTokens[rt.type].forEach(nt=>{let st=rt[nt].flat(1/0);a=a.concat(this.walkTokens(st,s))}):rt.tokens&&(a=a.concat(this.walkTokens(rt.tokens,s)))}}return a}use(...e){let s=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(a=>{let c={...a};if(c.async=this.defaults.async||c.async||!1,a.extensions&&(a.extensions.forEach(g=>{if(!g.name)throw new Error("extension name required");if("renderer"in g){let et=s.renderers[g.name];et?s.renderers[g.name]=function(...rt){let nt=g.renderer.apply(this,rt);return nt===!1&&(nt=et.apply(this,rt)),nt}:s.renderers[g.name]=g.renderer}if("tokenizer"in g){if(!g.level||g.level!=="block"&&g.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let et=s[g.level];et?et.unshift(g.tokenizer):s[g.level]=[g.tokenizer],g.start&&(g.level==="block"?s.startBlock?s.startBlock.push(g.start):s.startBlock=[g.start]:g.level==="inline"&&(s.startInline?s.startInline.push(g.start):s.startInline=[g.start]))}"childTokens"in g&&g.childTokens&&(s.childTokens[g.name]=g.childTokens)}),c.extensions=s),a.renderer){let g=this.defaults.renderer||new P(this.defaults);for(let et in a.renderer){if(!(et in g))throw new Error(`renderer '${et}' does not exist`);if(["options","parser"].includes(et))continue;let rt=et,nt=a.renderer[rt],st=g[rt];g[rt]=(...at)=>{let it=nt.apply(g,at);return it===!1&&(it=st.apply(g,at)),it||""}}c.renderer=g}if(a.tokenizer){let g=this.defaults.tokenizer||new y(this.defaults);for(let et in a.tokenizer){if(!(et in g))throw new Error(`tokenizer '${et}' does not exist`);if(["options","rules","lexer"].includes(et))continue;let rt=et,nt=a.tokenizer[rt],st=g[rt];g[rt]=(...at)=>{let it=nt.apply(g,at);return it===!1&&(it=st.apply(g,at)),it}}c.tokenizer=g}if(a.hooks){let g=this.defaults.hooks||new S;for(let et in a.hooks){if(!(et in g))throw new Error(`hook '${et}' does not exist`);if(["options","block"].includes(et))continue;let rt=et,nt=a.hooks[rt],st=g[rt];S.passThroughHooks.has(et)?g[rt]=at=>{if(this.defaults.async&&S.passThroughHooksRespectAsync.has(et))return Promise.resolve(nt.call(g,at)).then(ot=>st.call(g,ot));let it=nt.call(g,at);return st.call(g,it)}:g[rt]=(...at)=>{let it=nt.apply(g,at);return it===!1&&(it=st.apply(g,at)),it}}c.hooks=g}if(a.walkTokens){let g=this.defaults.walkTokens,et=a.walkTokens;c.walkTokens=function(rt){let nt=[];return nt.push(et.call(this,rt)),g&&(nt=nt.concat(g.call(this,rt))),nt}}this.defaults={...this.defaults,...c}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,s){return b.lex(e,s??this.defaults)}parser(e,s){return R.parse(e,s??this.defaults)}parseMarkdown(e){return(s,a)=>{let c={...a},g={...this.defaults,...c},et=this.onError(!!g.silent,!!g.async);if(this.defaults.async===!0&&c.async===!1)return et(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof s>"u"||s===null)return et(new Error("marked(): input parameter is undefined or null"));
805if(typeof s!="string")return et(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(s)+", string expected"));g.hooks&&(g.hooks.options=g,g.hooks.block=e);let rt=g.hooks?g.hooks.provideLexer():e?b.lex:b.lexInline,nt=g.hooks?g.hooks.provideParser():e?R.parse:R.parseInline;if(g.async)return Promise.resolve(g.hooks?g.hooks.preprocess(s):s).then(st=>rt(st,g)).then(st=>g.hooks?g.hooks.processAllTokens(st):st).then(st=>g.walkTokens?Promise.all(this.walkTokens(st,g.walkTokens)).then(()=>st):st).then(st=>nt(st,g)).then(st=>g.hooks?g.hooks.postprocess(st):st).catch(et);try{g.hooks&&(s=g.hooks.preprocess(s));let st=rt(s,g);g.hooks&&(st=g.hooks.processAllTokens(st)),g.walkTokens&&this.walkTokens(st,g.walkTokens);let at=nt(st,g);return g.hooks&&(at=g.hooks.postprocess(at)),at}catch(st){return et(st)}}}onError(e,s){return a=>{if(a.message+=` 806Please report this to https://github.com/markedjs/marked.`,e){let c="<p>An error occurred:</p><pre>"+w(a.message+"",!0)+"</pre>";return s?Promise.resolve(c):c}if(s)return Promise.reject(a);throw a}}},_=new B;function d(e,s){return _.parse(e,s)}d.options=d.setOptions=function(e){return _.setOptions(e),d.defaults=_.defaults,G(d.defaults),d};d.getDefaults=L;d.defaults=O;d.use=function(...e){return _.use(...e),d.defaults=_.defaults,G(d.defaults),d};d.walkTokens=function(e,s){return _.walkTokens(e,s)};d.parseInline=_.parseInline;d.Parser=R;d.parser=R.parse;d.Renderer=P;d.TextRenderer=$;d.Lexer=b;d.lexer=b.lex;d.Tokenizer=y;d.Hooks=S;d.parse=d;d.options;d.setOptions;d.use;d.walkTokens;d.parseInline;R.parse;b.lex;const __viteBrowserExternal={},__viteBrowserExternal$1=Object.freeze(Object.defineProperty({__proto__:null,default:__viteBrowserExternal},Symbol.toStringTag,{value:"Module"})),require$$0=getAugmentedNamespace(__viteBrowserExternal$1);var toString=Object.prototype.toString,kindOf=function(s){if(s===void 0)return"undefined";if(s===null)return"null";var a=typeof s;if(a==="boolean")return"boolean";if(a==="string")return"string";if(a==="number")return"number";if(a==="symbol")return"symbol";if(a==="function")return isGeneratorFn(s)?"generatorfunction":"function";if(isArray(s))return"array";if(isBuffer$1(s))return"buffer";if(isArguments(s))return"arguments";if(isDate$1(s))return"date";if(isError(s))return"error";if(isRegexp(s))return"regexp";switch(ctorName(s)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if(isGeneratorObj(s))return"generator";switch(a=toString.call(s),a){case"[object Object]":return"object";case"[object Map Iterator]":return"mapiterator";case"[object Set Iterator]":return"setiterator";case"[object String Iterator]":return"stringiterator";case"[object Array Iterator]":return"arrayiterator"}return a.slice(8,-1).toLowerCase().replace(/\s/g,"")};function ctorName(e){return typeof e.constructor=="function"?e.constructor.name:null}function isArray(e){return Array.isArray?Array.isArray(e):e instanceof Array}function isError(e){return e instanceof Error||typeof e.message=="string"&&e.constructor&&typeof e.constructor.stackTraceLimit=="number"}function isDate$1(e){return e instanceof Date?!0:typeof e.toDateString=="function"&&typeof e.getDate=="function"&&typeof e.setDate=="function"}function isRegexp(e){return e instanceof RegExp?!0:typeof e.flags=="string"&&typeof e.ignoreCase=="boolean"&&typeof e.multiline=="boolean"&&typeof e.global=="boolean"}function isGeneratorFn(e,s){return ctorName(e)==="GeneratorFunction"}function isGeneratorObj(e){return typeof e.throw=="function"&&typeof e.return=="function"&&typeof e.next=="function"}function isArguments(e){try{if(typeof e.length=="number"&&typeof e.callee=="function")return!0}catch(s){if(s.message.indexOf("callee")!==-1)return!0}return!1}function isBuffer$1(e){return e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}/*! 807 * is-extendable <https://github.com/jonschlinkert/is-extendable> 808 * 809 * Copyright (c) 2015, Jon Schlinkert.
810 * Licensed under the MIT License. 811 */var isExtendable=function(s){return typeof s<"u"&&s!==null&&(typeof s=="object"||typeof s=="function")},isObject$1=isExtendable,extendShallow=function(s){isObject$1(s)||(s={});for(var a=arguments.length,c=1;c<a;c++){var g=arguments[c];isObject$1(g)&&assign(s,g)}return s};function assign(e,s){for(var a in s)hasOwn(s,a)&&(e[a]=s[a])}function hasOwn(e,s){return Object.prototype.hasOwnProperty.call(e,s)}var typeOf$2=kindOf,extend$1=extendShallow,sectionMatter=function(e,s){typeof s=="function"&&(s={parse:s});var a=toObject(e),c={section_delimiter:"---",parse:identity},g=extend$1({},c,s),et=g.section_delimiter,rt=a.content.split(/\r?\n/),nt=null,st=createSection(),at=[],it=[];function ot(gt){a.content=gt,nt=[],at=[]}function lt(gt){it.length&&(st.key=getKey(it[0],et),st.content=gt,g.parse(st,nt),nt.push(st),st=createSection(),at=[],it=[])}for(var ct=0;ct<rt.length;ct++){var dt=rt[ct],ut=it.length,xt=dt.trim();if(isDelimiter(xt,et)){if(xt.length===3&&ct!==0){if(ut===0||ut===2){at.push(dt);continue}it.push(xt),st.data=at.join(` 812`),at=[];continue}nt===null&&ot(at.join(` 813`)),ut===2&<(at.join(` 814`)),it.push(xt);continue}at.push(dt)}return nt===null?ot(at.join(` 815`)):lt(at.join(` 816`)),a.sections=nt,a};function isDelimiter(e,s){return!(e.slice(0,s.length)!==s||e.charAt(s.length+1)===s.slice(-1))}function toObject(e){if(typeOf$2(e)!=="object"&&(e={content:e}),typeof e.content!="string"&&!isBuffer(e.content))throw new TypeError("expected a buffer or string");return e.content=e.content.toString(),e.sections=[],e}function getKey(e,s){return e?e.slice(s.length).trim():""}function createSection(){return{key:"",data:"",content:""}}function identity(e){return e}function isBuffer(e){return e&&e.constructor&&typeof e.constructor.isBuffer=="function"?e.constructor.isBuffer(e):!1}var engines$2={exports:{}},jsYaml$1={},loader$1={},common$6={};function isNothing(e){return typeof e>"u"||e===null}function isObject(e){return typeof e=="object"&&e!==null}function toArray(e){return Array.isArray(e)?e:isNothing(e)?[]:[e]}function extend(e,s){var a,c,g,et;if(s)for(et=Object.keys(s),a=0,c=et.length;a<c;a+=1)g=et[a],e[g]=s[g];return e}function repeat(e,s){var a="",c;for(c=0;c<s;c+=1)a+=e;return a}function isNegativeZero(e){return e===0&&Number.NEGATIVE_INFINITY===1/e}common$6.isNothing=isNothing;common$6.isObject=isObject;common$6.toArray=toArray;common$6.repeat=repeat;common$6.isNegativeZero=isNegativeZero;common$6.extend=extend;function YAMLException$4(e,s){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=s,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}YAMLException$4.prototype=Object.create(Error.prototype);YAMLException$4.prototype.constructor=YAMLException$4;YAMLException$4.prototype.toString=function(s){var a=this.name+": ";return a+=this.reason||"(unknown reason)",!s&&this.mark&&(a+=" "+this.mark.toString()),a};var exception=YAMLException$4,common$5=common$6;function Mark$1(e,s,a,c,g){this.name=e,this.buffer=s,this.position=a,this.line=c,this.column=g}Mark$1.prototype.getSnippet=function(s,a){var c,g,et,rt,nt;if(!this.buffer)return null;for(s=s||4,a=a||75,c="",g=this.position;g>0&&`\0\r 817Â \u2028\u2029`.indexOf(this.buffer.charAt(g-1))===-1;)if(g-=1,this.position-g>a/2-1){c=" ... ",g+=5;break}for(et="",rt=this.position;rt<this.buffer.length&&`\0\r 818Â \u2028\u2029`.indexOf(this.buffer.charAt(rt))===-1;)if(rt+=1,rt-this.position>a/2-1){et=" ... ",rt-=5;break}return nt=this.buffer.slice(g,rt),common$5.repeat(" ",s)+c+nt+et+` 819`+common$5.repeat(" ",s+this.position-g+c.length)+"^"};Mark$1.prototype.toString=function(s){var a,c="";return this.name&&(c+='in "'+this.name+'" '),c+="at line "+(this.line+1)+", column "+(this.column+1),s||(a=this.getSnippet(),a&&(c+=`: 820`+a)),c};var mark=Mark$1,YAMLException$3=exception,TYPE_CONSTRUCTOR_OPTIONS=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],YAML_NODE_KINDS=["scalar","sequence","mapping"];function compileStyleAliases(e){var s={};
vendor: 46,867 bytes, lines 820-845
820return e!==null&&Object.keys(e).forEach(function(a){e[a].forEach(function(c){s[String(c)]=a})}),s}function Type$h(e,s){if(s=s||{},Object.keys(s).forEach(function(a){if(TYPE_CONSTRUCTOR_OPTIONS.indexOf(a)===-1)throw new YAMLException$3('Unknown option "'+a+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=s.kind||null,this.resolve=s.resolve||function(){return!0},this.construct=s.construct||function(a){return a},this.instanceOf=s.instanceOf||null,this.predicate=s.predicate||null,this.represent=s.represent||null,this.defaultStyle=s.defaultStyle||null,this.styleAliases=compileStyleAliases(s.styleAliases||null),YAML_NODE_KINDS.indexOf(this.kind)===-1)throw new YAMLException$3('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}var type=Type$h,common$4=common$6,YAMLException$2=exception,Type$g=type;function compileList(e,s,a){var c=[];return e.include.forEach(function(g){a=compileList(g,s,a)}),e[s].forEach(function(g){a.forEach(function(et,rt){et.tag===g.tag&&et.kind===g.kind&&c.push(rt)}),a.push(g)}),a.filter(function(g,et){return c.indexOf(et)===-1})}function compileMap(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},s,a;function c(g){e[g.kind][g.tag]=e.fallback[g.tag]=g}for(s=0,a=arguments.length;s<a;s+=1)arguments[s].forEach(c);return e}function Schema$5(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(s){if(s.loadKind&&s.loadKind!=="scalar")throw new YAMLException$2("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=compileList(this,"implicit",[]),this.compiledExplicit=compileList(this,"explicit",[]),this.compiledTypeMap=compileMap(this.compiledImplicit,this.compiledExplicit)}Schema$5.DEFAULT=null;Schema$5.create=function(){var s,a;switch(arguments.length){case 1:s=Schema$5.DEFAULT,a=arguments[0];break;case 2:s=arguments[0],a=arguments[1];break;default:throw new YAMLException$2("Wrong number of arguments for Schema.create function")}if(s=common$4.toArray(s),a=common$4.toArray(a),!s.every(function(c){return c instanceof Schema$5}))throw new YAMLException$2("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!a.every(function(c){return c instanceof Type$g}))throw new YAMLException$2("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new Schema$5({include:s,explicit:a})};var schema=Schema$5,Type$f=type,str=new Type$f("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),Type$e=type,seq=new Type$e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Type$d=type,map=new Type$d("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),Schema$4=schema,failsafe=new Schema$4({explicit:[str,seq,map]}),Type$c=type;function resolveYamlNull(e){if(e===null)return!0;var s=e.length;return s===1&&e==="~"||s===4&&(e==="null"||e==="Null"||e==="NULL")}function constructYamlNull(){return null}function isNull(e){return e===null}var _null=new Type$c("tag:yaml.org,2002:null",{kind:"scalar",resolve:resolveYamlNull,construct:constructYamlNull,predicate:isNull,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"}),Type$b=type;function resolveYamlBoolean(e){if(e===null)return!1;var s=e.length;return s===4&&(e==="true"||e==="True"||e==="TRUE")||s===5&&(e==="false"||e==="False"||e==="FALSE")}function constructYamlBoolean(e){return e==="true"||e==="True"||e==="TRUE"}function isBoolean(e){return Object.prototype.toString.call(e)==="[object Boolean]"}var bool=new Type$b("tag:yaml.org,2002:bool",{kind:"scalar",resolve:resolveYamlBoolean,construct:constructYamlBoolean,predicate:isBoolean,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"}),common$3=common$6,Type$a=type;function isHexCode(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function isOctCode(e){return 48<=e&&e<=55}function isDecCode(e){return 48<=e&&e<=57}function resolveYamlInteger(e){if(e===null)return!1;var s=e.length,a=0,c=!1,g;if(!s)return!1;if(g=e[a],(g==="-"||g==="+")&&(g=e[++a]),g==="0"){if(a+1===s)return!0;if(g=e[++a],g==="b"){for(a++;a<s;a++)if(g=e[a],g!=="_"){if(g!=="0"&&g!=="1")return!1;c=!0}return c&&g!=="_"}if(g==="x"){for(a++;a<s;a++)if(g=e[a],g!=="_"){if(!isHexCode(e.charCodeAt(a)))return!1;c=!0}return c&&g!=="_"}for(;a<s;a++)if(g=e[a],g!=="_"){if(!isOctCode(e.charCodeAt(a)))return!1;c=!0}return c&&g!=="_"}if(g==="_")return!1;for(;a<s;a++)if(g=e[a],g!=="_"){if(g===":")break;if(!isDecCode(e.charCodeAt(a)))return!1;c=!0}return!c||g==="_"?!1:g!==":"?!0:/^(:[0-5]?[0-9])+$/.test(e.slice(a))}function constructYamlInteger(e){var s=e,a=1,c,g,et=[];return s.indexOf("_")!==-1&&(s=s.replace(/_/g,"")),c=s[0],(c==="-"||c==="+")&&(c==="-"&&(a=-1),s=s.slice(1),c=s[0]),s==="0"?0:c==="0"?s[1]==="b"?a*parseInt(s.slice(2),2):s[1]==="x"?a*parseInt(s,16):a*parseInt(s,8):s.indexOf(":")!==-1?(s.split(":").forEach(function(rt){et.unshift(parseInt(rt,10))}),s=0,g=1,et.forEach(function(rt){s+=rt*g,g*=60}),a*s):a*parseInt(s,10)}function isInteger(e){return Object.prototype.toString.call(e)==="[object Number]"&&e%1===0&&!common$3.isNegativeZero(e)}var int=new Type$a("tag:yaml.org,2002:int",{kind:"scalar",resolve:resolveYamlInteger,construct:constructYamlInteger,predicate:isInteger,represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),common$2=common$6,Type$9=type,YAML_FLOAT_PATTERN=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function resolveYamlFloat(e){return!(e===null||!YAML_FLOAT_PATTERN.test(e)||e[e.length-1]==="_")}function constructYamlFloat(e){var s,a,c,g;return s=e.replace(/_/g,"").toLowerCase(),a=s[0]==="-"?-1:1,g=[],"+-".indexOf(s[0])>=0&&(s=s.slice(1)),s===".inf"?a===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:s===".nan"?NaN:s.indexOf(":")>=0?(s.split(":").forEach(function(et){g.unshift(parseFloat(et,10))}),s=0,c=1,g.forEach(function(et){s+=et*c,c*=60}),a*s):a*parseFloat(s,10)}var SCIENTIFIC_WITHOUT_DOT=/^[-+]?[0-9]+e/;function representYamlFloat(e,s){var a;if(isNaN(e))switch(s){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(s){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(s){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(common$2.isNegativeZero(e))return"-0.0";return a=e.toString(10),SCIENTIFIC_WITHOUT_DOT.test(a)?a.replace("e",".e"):a}function isFloat(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||common$2.isNegativeZero(e))}var float=new Type$9("tag:yaml.org,2002:float",{kind:"scalar",resolve:resolveYamlFloat,construct:constructYamlFloat,predicate:isFloat,represent:representYamlFloat,defaultStyle:"lowercase"}),Schema$3=schema,json=new Schema$3({include:[failsafe],implicit:[_null,bool,int,float]}),Schema$2=schema,core=new Schema$2({include:[json]}),Type$8=type,YAML_DATE_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),YAML_TIMESTAMP_REGEXP=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function resolveYamlTimestamp(e){return e===null?!1:YAML_DATE_REGEXP.exec(e)!==null||YAML_TIMESTAMP_REGEXP.exec(e)!==null}function constructYamlTimestamp(e){var s,a,c,g,et,rt,nt,st=0,at=null,it,ot,lt;if(s=YAML_DATE_REGEXP.exec(e),s===null&&(s=YAML_TIMESTAMP_REGEXP.exec(e)),s===null)throw new Error("Date resolve error");if(a=+s[1],c=+s[2]-1,g=+s[3],!s[4])return new Date(Date.UTC(a,c,g));if(et=+s[4],rt=+s[5],nt=+s[6],s[7]){for(st=s[7].slice(0,3);st.length<3;)st+="0";st=+st}return s[9]&&(it=+s[10],ot=+(s[11]||0),at=(it*60+ot)*6e4,s[9]==="-"&&(at=-at)),lt=new Date(Date.UTC(a,c,g,et,rt,nt,st)),at&<.setTime(lt.getTime()-at),lt}function representYamlTimestamp(e){return e.toISOString()}var timestamp=new Type$8("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:resolveYamlTimestamp,construct:constructYamlTimestamp,instanceOf:Date,represent:representYamlTimestamp}),Type$7=type;function resolveYamlMerge(e){return e==="<<"||e===null}var merge=new Type$7("tag:yaml.org,2002:merge",{kind:"scalar",resolve:resolveYamlMerge});function commonjsRequire(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var NodeBuffer;try{var _require$1=commonjsRequire;NodeBuffer=_require$1("buffer").Buffer}catch{}var Type$6=type,BASE64_MAP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= 821\r`;function resolveYamlBinary(e){if(e===null)return!1;var s,a,c=0,g=e.length,et=BASE64_MAP;for(a=0;a<g;a++)if(s=et.indexOf(e.charAt(a)),!(s>64)){if(s<0)return!1;c+=6}return c%8===0}function constructYamlBinary(e){var s,a,c=e.replace(/[\r\n=]/g,""),g=c.length,et=BASE64_MAP,rt=0,nt=[];for(s=0;s<g;s++)s%4===0&&s&&(nt.push(rt>>16&255),nt.push(rt>>8&255),nt.push(rt&255)),rt=rt<<6|et.indexOf(c.charAt(s));return a=g%4*6,a===0?(nt.push(rt>>16&255),nt.push(rt>>8&255),nt.push(rt&255)):a===18?(nt.push(rt>>10&255),nt.push(rt>>2&255)):a===12&&nt.push(rt>>4&255),NodeBuffer?NodeBuffer.from?NodeBuffer.from(nt):new NodeBuffer(nt):nt}function representYamlBinary(e){var s="",a=0,c,g,et=e.length,rt=BASE64_MAP;for(c=0;c<et;c++)c%3===0&&c&&(s+=rt[a>>18&63],s+=rt[a>>12&63],s+=rt[a>>6&63],s+=rt[a&63]),a=(a<<8)+e[c];return g=et%3,g===0?(s+=rt[a>>18&63],s+=rt[a>>12&63],s+=rt[a>>6&63],s+=rt[a&63]):g===2?(s+=rt[a>>10&63],s+=rt[a>>4&63],s+=rt[a<<2&63],s+=rt[64]):g===1&&(s+=rt[a>>2&63],s+=rt[a<<4&63],s+=rt[64],s+=rt[64]),s}function isBinary(e){return NodeBuffer&&NodeBuffer.isBuffer(e)}var binary=new Type$6("tag:yaml.org,2002:binary",{kind:"scalar",resolve:resolveYamlBinary,construct:constructYamlBinary,predicate:isBinary,represent:representYamlBinary}),Type$5=type,_hasOwnProperty$3=Object.prototype.hasOwnProperty,_toString$2=Object.prototype.toString;function resolveYamlOmap(e){if(e===null)return!0;var s=[],a,c,g,et,rt,nt=e;for(a=0,c=nt.length;a<c;a+=1){if(g=nt[a],rt=!1,_toString$2.call(g)!=="[object Object]")return!1;for(et in g)if(_hasOwnProperty$3.call(g,et))if(!rt)rt=!0;else return!1;if(!rt)return!1;if(s.indexOf(et)===-1)s.push(et);else return!1}return!0}function constructYamlOmap(e){return e!==null?e:[]}var omap=new Type$5("tag:yaml.org,2002:omap",{kind:"sequence",resolve:resolveYamlOmap,construct:constructYamlOmap}),Type$4=type,_toString$1=Object.prototype.toString;function resolveYamlPairs(e){if(e===null)return!0;var s,a,c,g,et,rt=e;for(et=new Array(rt.length),s=0,a=rt.length;s<a;s+=1){if(c=rt[s],_toString$1.call(c)!=="[object Object]"||(g=Object.keys(c),g.length!==1))return!1;et[s]=[g[0],c[g[0]]]}return!0}function constructYamlPairs(e){if(e===null)return[];var s,a,c,g,et,rt=e;for(et=new Array(rt.length),s=0,a=rt.length;s<a;s+=1)c=rt[s],g=Object.keys(c),et[s]=[g[0],c[g[0]]];return et}var pairs=new Type$4("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:resolveYamlPairs,construct:constructYamlPairs}),Type$3=type,_hasOwnProperty$2=Object.prototype.hasOwnProperty;function resolveYamlSet(e){if(e===null)return!0;var s,a=e;for(s in a)if(_hasOwnProperty$2.call(a,s)&&a[s]!==null)return!1;return!0}function constructYamlSet(e){return e!==null?e:{}}var set=new Type$3("tag:yaml.org,2002:set",{kind:"mapping",resolve:resolveYamlSet,construct:constructYamlSet}),Schema$1=schema,default_safe=new Schema$1({include:[core],implicit:[timestamp,merge],explicit:[binary,omap,pairs,set]}),Type$2=type;function resolveJavascriptUndefined(){return!0}function constructJavascriptUndefined(){}function representJavascriptUndefined(){return""}function isUndefined(e){return typeof e>"u"}var _undefined=new Type$2("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:resolveJavascriptUndefined,construct:constructJavascriptUndefined,predicate:isUndefined,represent:representJavascriptUndefined}),Type$1=type;function resolveJavascriptRegExp(e){if(e===null||e.length===0)return!1;var s=e,a=/\/([gim]*)$/.exec(e),c="";return!(s[0]==="/"&&(a&&(c=a[1]),c.length>3||s[s.length-c.length-1]!=="/"))}function constructJavascriptRegExp(e){var s=e,a=/\/([gim]*)$/.exec(e),c="";return s[0]==="/"&&(a&&(c=a[1]),s=s.slice(1,s.length-c.length-1)),new RegExp(s,c)}function representJavascriptRegExp(e){var s="/"+e.source+"/";return e.global&&(s+="g"),e.multiline&&(s+="m"),e.ignoreCase&&(s+="i"),s}function isRegExp(e){return Object.prototype.toString.call(e)==="[object RegExp]"}var regexp=new Type$1("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:resolveJavascriptRegExp,construct:constructJavascriptRegExp,predicate:isRegExp,represent:representJavascriptRegExp}),esprima;try{var _require=commonjsRequire;esprima=_require("esprima")}catch{typeof window<"u"&&(esprima=window.esprima)}var Type=type;function resolveJavascriptFunction(e){if(e===null)return!1;try{var s="("+e+")",a=esprima.parse(s,{range:!0});return!(a.type!=="Program"||a.body.length!==1||a.body[0].type!=="ExpressionStatement"||a.body[0].expression.type!=="ArrowFunctionExpression"&&a.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function constructJavascriptFunction(e){var s="("+e+")",a=esprima.parse(s,{range:!0}),c=[],g;if(a.type!=="Program"||a.body.length!==1||a.body[0].type!=="ExpressionStatement"||a.body[0].expression.type!=="ArrowFunctionExpression"&&a.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return a.body[0].expression.params.forEach(function(et){c.push(et.name)}),g=a.body[0].expression.body.range,a.body[0].expression.body.type==="BlockStatement"?new Function(c,s.slice(g[0]+1,g[1]-1)):new Function(c,"return "+s.slice(g[0],g[1]))}function representJavascriptFunction(e){return e.toString()}function isFunction$1(e){return Object.prototype.toString.call(e)==="[object Function]"}var _function=new Type("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:resolveJavascriptFunction,construct:constructJavascriptFunction,predicate:isFunction$1,represent:representJavascriptFunction}),Schema=schema,default_full=Schema.DEFAULT=new Schema({include:[default_safe],explicit:[_undefined,regexp,_function]}),common$1=common$6,YAMLException$1=exception,Mark=mark,DEFAULT_SAFE_SCHEMA$1=default_safe,DEFAULT_FULL_SCHEMA$1=default_full,_hasOwnProperty$1=Object.prototype.hasOwnProperty,CONTEXT_FLOW_IN=1,CONTEXT_FLOW_OUT=2,CONTEXT_BLOCK_IN=3,CONTEXT_BLOCK_OUT=4,CHOMPING_CLIP=1,CHOMPING_STRIP=2,CHOMPING_KEEP=3,PATTERN_NON_PRINTABLE=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,PATTERN_NON_ASCII_LINE_BREAKS=/[\x85\u2028\u2029]/,PATTERN_FLOW_INDICATORS=/[,\[\]\{\}]/,PATTERN_TAG_HANDLE=/^(?:!|!!|![a-z\-]+!)$/i,PATTERN_TAG_URI=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function _class(e){return Object.prototype.toString.call(e)}function is_EOL(e){return e===10||e===13}function is_WHITE_SPACE(e){return e===9||e===32}function is_WS_OR_EOL(e){return e===9||e===32||e===10||e===13}function is_FLOW_INDICATOR(e){return e===44||e===91||e===93||e===123||e===125}function fromHexCode(e){var s;return 48<=e&&e<=57?e-48:(s=e|32,97<=s&&s<=102?s-97+10:-1)}function escapedHexLen(e){return e===120?2:e===117?4:e===85?8:0}function fromDecimalCode(e){return 48<=e&&e<=57?e-48:-1}function simpleEscapeSequence(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` 822`:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"Â ":e===95?"Â ":e===76?"\u2028":e===80?"\u2029":""}function charFromCodepoint(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var simpleEscapeCheck=new Array(256),simpleEscapeMap=new Array(256);for(var i$1=0;i$1<256;i$1++)simpleEscapeCheck[i$1]=simpleEscapeSequence(i$1)?1:0,simpleEscapeMap[i$1]=simpleEscapeSequence(i$1);function State$1(e,s){this.input=e,this.filename=s.filename||null,this.schema=s.schema||DEFAULT_FULL_SCHEMA$1,this.onWarning=s.onWarning||null,this.legacy=s.legacy||!1,this.json=s.json||!1,this.listener=s.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function generateError(e,s){return new YAMLException$1(s,new Mark(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function throwError(e,s){throw generateError(e,s)}function throwWarning(e,s){e.onWarning&&e.onWarning.call(null,generateError(e,s))}var directiveHandlers={YAML:function(s,a,c){var g,et,rt;s.version!==null&&throwError(s,"duplication of %YAML directive"),c.length!==1&&throwError(s,"YAML directive accepts exactly one argument"),g=/^([0-9]+)\.([0-9]+)$/.exec(c[0]),g===null&&throwError(s,"ill-formed argument of the YAML directive"),et=parseInt(g[1],10),rt=parseInt(g[2],10),et!==1&&throwError(s,"unacceptable YAML version of the document"),s.version=c[0],s.checkLineBreaks=rt<2,rt!==1&&rt!==2&&throwWarning(s,"unsupported YAML version of the document")},TAG:function(s,a,c){var g,et;c.length!==2&&throwError(s,"TAG directive accepts exactly two arguments"),g=c[0],et=c[1],PATTERN_TAG_HANDLE.test(g)||throwError(s,"ill-formed tag handle (first argument) of the TAG directive"),_hasOwnProperty$1.call(s.tagMap,g)&&throwError(s,'there is a previously declared suffix for "'+g+'" tag handle'),PATTERN_TAG_URI.test(et)||throwError(s,"ill-formed tag prefix (second argument) of the TAG directive"),s.tagMap[g]=et}};function captureSegment(e,s,a,c){var g,et,rt,nt;if(s<a){if(nt=e.input.slice(s,a),c)for(g=0,et=nt.length;g<et;g+=1)rt=nt.charCodeAt(g),rt===9||32<=rt&&rt<=1114111||throwError(e,"expected valid JSON character");else PATTERN_NON_PRINTABLE.test(nt)&&throwError(e,"the stream contains non-printable characters");e.result+=nt}}function mergeMappings(e,s,a,c){var g,et,rt,nt;for(common$1.isObject(a)||throwError(e,"cannot merge mappings; the provided source object is unacceptable"),g=Object.keys(a),rt=0,nt=g.length;rt<nt;rt+=1)et=g[rt],_hasOwnProperty$1.call(s,et)||(s[et]=a[et],c[et]=!0)}function storeMappingPair(e,s,a,c,g,et,rt,nt){var st,at;if(Array.isArray(g))for(g=Array.prototype.slice.call(g),st=0,at=g.length;st<at;st+=1)Array.isArray(g[st])&&throwError(e,"nested arrays are not supported inside keys"),typeof g=="object"&&_class(g[st])==="[object Object]"&&(g[st]="[object Object]");if(typeof g=="object"&&_class(g)==="[object Object]"&&(g="[object Object]"),g=String(g),s===null&&(s={}),c==="tag:yaml.org,2002:merge")if(Array.isArray(et))for(st=0,at=et.length;st<at;st+=1)mergeMappings(e,s,et[st],a);else mergeMappings(e,s,et,a);else!e.json&&!_hasOwnProperty$1.call(a,g)&&_hasOwnProperty$1.call(s,g)&&(e.line=rt||e.line,e.position=nt||e.position,throwError(e,"duplicated mapping key")),s[g]=et,delete a[g];return s}function readLineBreak(e){var s;s=e.input.charCodeAt(e.position),s===10?e.position++:s===13?(e.position++,e.input.charCodeAt(e.position)===10&&e.position++):throwError(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function skipSeparationSpace(e,s,a){for(var c=0,g=e.input.charCodeAt(e.position);g!==0;){for(;is_WHITE_SPACE(g);)g=e.input.charCodeAt(++e.position);if(s&&g===35)do g=e.input.charCodeAt(++e.position);while(g!==10&&g!==13&&g!==0);if(is_EOL(g))for(readLineBreak(e),g=e.input.charCodeAt(e.position),c++,e.lineIndent=0;g===32;)e.lineIndent++,g=e.input.charCodeAt(++e.position);else break}return a!==-1&&c!==0&&e.lineIndent<a&&throwWarning(e,"deficient indentation"),c}function testDocumentSeparator(e){var s=e.position,a;return a=e.input.charCodeAt(s),!!((a===45||a===46)&&a===e.input.charCodeAt(s+1)&&a===e.input.charCodeAt(s+2)&&(s+=3,a=e.input.charCodeAt(s),a===0||is_WS_OR_EOL(a)))}function writeFoldedLines(e,s){s===1?e.result+=" ":s>1&&(e.result+=common$1.repeat(` 823`,s-1))}function readPlainScalar(e,s,a){var c,g,et,rt,nt,st,at,it,ot=e.kind,lt=e.result,ct;if(ct=e.input.charCodeAt(e.position),is_WS_OR_EOL(ct)||is_FLOW_INDICATOR(ct)||ct===35||ct===38||ct===42||ct===33||ct===124||ct===62||ct===39||ct===34||ct===37||ct===64||ct===96||(ct===63||ct===45)&&(g=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(g)||a&&is_FLOW_INDICATOR(g)))return!1;for(e.kind="scalar",e.result="",et=rt=e.position,nt=!1;ct!==0;){if(ct===58){if(g=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(g)||a&&is_FLOW_INDICATOR(g))break}else if(ct===35){if(c=e.input.charCodeAt(e.position-1),is_WS_OR_EOL(c))break}else{if(e.position===e.lineStart&&testDocumentSeparator(e)||a&&is_FLOW_INDICATOR(ct))break;if(is_EOL(ct))if(st=e.line,at=e.lineStart,it=e.lineIndent,skipSeparationSpace(e,!1,-1),e.lineIndent>=s){nt=!0,ct=e.input.charCodeAt(e.position);continue}else{e.position=rt,e.line=st,e.lineStart=at,e.lineIndent=it;break}}nt&&(captureSegment(e,et,rt,!1),writeFoldedLines(e,e.line-st),et=rt=e.position,nt=!1),is_WHITE_SPACE(ct)||(rt=e.position+1),ct=e.input.charCodeAt(++e.position)}return captureSegment(e,et,rt,!1),e.result?!0:(e.kind=ot,e.result=lt,!1)}function readSingleQuotedScalar(e,s){var a,c,g;if(a=e.input.charCodeAt(e.position),a!==39)return!1;for(e.kind="scalar",e.result="",e.position++,c=g=e.position;(a=e.input.charCodeAt(e.position))!==0;)if(a===39)if(captureSegment(e,c,e.position,!0),a=e.input.charCodeAt(++e.position),a===39)c=e.position,e.position++,g=e.position;else return!0;else is_EOL(a)?(captureSegment(e,c,g,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,s)),c=g=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a single quoted scalar"):(e.position++,g=e.position);throwError(e,"unexpected end of the stream within a single quoted scalar")}function readDoubleQuotedScalar(e,s){var a,c,g,et,rt,nt;if(nt=e.input.charCodeAt(e.position),nt!==34)return!1;for(e.kind="scalar",e.result="",e.position++,a=c=e.position;(nt=e.input.charCodeAt(e.position))!==0;){if(nt===34)return captureSegment(e,a,e.position,!0),e.position++,!0;if(nt===92){if(captureSegment(e,a,e.position,!0),nt=e.input.charCodeAt(++e.position),is_EOL(nt))skipSeparationSpace(e,!1,s);else if(nt<256&&simpleEscapeCheck[nt])e.result+=simpleEscapeMap[nt],e.position++;else if((rt=escapedHexLen(nt))>0){for(g=rt,et=0;g>0;g--)nt=e.input.charCodeAt(++e.position),(rt=fromHexCode(nt))>=0?et=(et<<4)+rt:throwError(e,"expected hexadecimal character");e.result+=charFromCodepoint(et),e.position++}else throwError(e,"unknown escape sequence");a=c=e.position}else is_EOL(nt)?(captureSegment(e,a,c,!0),writeFoldedLines(e,skipSeparationSpace(e,!1,s)),a=c=e.position):e.position===e.lineStart&&testDocumentSeparator(e)?throwError(e,"unexpected end of the document within a double quoted scalar"):(e.position++,c=e.position)}throwError(e,"unexpected end of the stream within a double quoted scalar")}function readFlowCollection(e,s){var a=!0,c,g=e.tag,et,rt=e.anchor,nt,st,at,it,ot,lt={},ct,dt,ut,xt;if(xt=e.input.charCodeAt(e.position),xt===91)st=93,ot=!1,et=[];else if(xt===123)st=125,ot=!0,et={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=et),xt=e.input.charCodeAt(++e.position);xt!==0;){if(skipSeparationSpace(e,!0,s),xt=e.input.charCodeAt(e.position),xt===st)return e.position++,e.tag=g,e.anchor=rt,e.kind=ot?"mapping":"sequence",e.result=et,!0;a||throwError(e,"missed comma between flow collection entries"),dt=ct=ut=null,at=it=!1,xt===63&&(nt=e.input.charCodeAt(e.position+1),is_WS_OR_EOL(nt)&&(at=it=!0,e.position++,skipSeparationSpace(e,!0,s))),c=e.line,composeNode(e,s,CONTEXT_FLOW_IN,!1,!0),dt=e.tag,ct=e.result,skipSeparationSpace(e,!0,s),xt=e.input.charCodeAt(e.position),(it||e.line===c)&&xt===58&&(at=!0,xt=e.input.charCodeAt(++e.position),skipSeparationSpace(e,!0,s),composeNode(e,s,CONTEXT_FLOW_IN,!1,!0),ut=e.result),ot?storeMappingPair(e,et,lt,dt,ct,ut):at?et.push(storeMappingPair(e,null,lt,dt,ct,ut)):et.push(ct),skipSeparationSpace(e,!0,s),xt=e.input.charCodeAt(e.position),xt===44?(a=!0,xt=e.input.charCodeAt(++e.position)):a=!1}throwError(e,"unexpected end of the stream within a flow collection")}function readBlockScalar(e,s){var a,c,g=CHOMPING_CLIP,et=!1,rt=!1,nt=s,st=0,at=!1,it,ot;if(ot=e.input.charCodeAt(e.position),ot===124)c=!1;else if(ot===62)c=!0;else return!1;for(e.kind="scalar",e.result="";ot!==0;)if(ot=e.input.charCodeAt(++e.position),ot===43||ot===45)CHOMPING_CLIP===g?g=ot===43?CHOMPING_KEEP:CHOMPING_STRIP:throwError(e,"repeat of a chomping mode identifier");else if((it=fromDecimalCode(ot))>=0)it===0?throwError(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):rt?throwError(e,"repeat of an indentation width identifier"):(nt=s+it-1,rt=!0);else break;if(is_WHITE_SPACE(ot)){do ot=e.input.charCodeAt(++e.position);while(is_WHITE_SPACE(ot));if(ot===35)do ot=e.input.charCodeAt(++e.position);while(!is_EOL(ot)&&ot!==0)}for(;ot!==0;){for(readLineBreak(e),e.lineIndent=0,ot=e.input.charCodeAt(e.position);(!rt||e.lineIndent<nt)&&ot===32;)e.lineIndent++,ot=e.input.charCodeAt(++e.position);if(!rt&&e.lineIndent>nt&&(nt=e.lineIndent),is_EOL(ot)){st++;continue}if(e.lineIndent<nt){g===CHOMPING_KEEP?e.result+=common$1.repeat(` 824`,et?1+st:st):g===CHOMPING_CLIP&&et&&(e.result+=` 825`);break}for(c?is_WHITE_SPACE(ot)?(at=!0,e.result+=common$1.repeat(` 826`,et?1+st:st)):at?(at=!1,e.result+=common$1.repeat(` 827`,st+1)):st===0?et&&(e.result+=" "):e.result+=common$1.repeat(` 828`,st):e.result+=common$1.repeat(` 829`,et?1+st:st),et=!0,rt=!0,st=0,a=e.position;!is_EOL(ot)&&ot!==0;)ot=e.input.charCodeAt(++e.position);captureSegment(e,a,e.position,!1)}return!0}function readBlockSequence(e,s){var a,c=e.tag,g=e.anchor,et=[],rt,nt=!1,st;for(e.anchor!==null&&(e.anchorMap[e.anchor]=et),st=e.input.charCodeAt(e.position);st!==0&&!(st!==45||(rt=e.input.charCodeAt(e.position+1),!is_WS_OR_EOL(rt)));){if(nt=!0,e.position++,skipSeparationSpace(e,!0,-1)&&e.lineIndent<=s){et.push(null),st=e.input.charCodeAt(e.position);continue}if(a=e.line,composeNode(e,s,CONTEXT_BLOCK_IN,!1,!0),et.push(e.result),skipSeparationSpace(e,!0,-1),st=e.input.charCodeAt(e.position),(e.line===a||e.lineIndent>s)&&st!==0)throwError(e,"bad indentation of a sequence entry");else if(e.lineIndent<s)break}return nt?(e.tag=c,e.anchor=g,e.kind="sequence",e.result=et,!0):!1}function readBlockMapping(e,s,a){var c,g,et,rt,nt=e.tag,st=e.anchor,at={},it={},ot=null,lt=null,ct=null,dt=!1,ut=!1,xt;for(e.anchor!==null&&(e.anchorMap[e.anchor]=at),xt=e.input.charCodeAt(e.position);xt!==0;){if(c=e.input.charCodeAt(e.position+1),et=e.line,rt=e.position,(xt===63||xt===58)&&is_WS_OR_EOL(c))xt===63?(dt&&(storeMappingPair(e,at,it,ot,lt,null),ot=lt=ct=null),ut=!0,dt=!0,g=!0):dt?(dt=!1,g=!0):throwError(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,xt=c;else if(composeNode(e,a,CONTEXT_FLOW_OUT,!1,!0))if(e.line===et){for(xt=e.input.charCodeAt(e.position);is_WHITE_SPACE(xt);)xt=e.input.charCodeAt(++e.position);if(xt===58)xt=e.input.charCodeAt(++e.position),is_WS_OR_EOL(xt)||throwError(e,"a whitespace character is expected after the key-value separator within a block mapping"),dt&&(storeMappingPair(e,at,it,ot,lt,null),ot=lt=ct=null),ut=!0,dt=!1,g=!1,ot=e.tag,lt=e.result;else if(ut)throwError(e,"can not read an implicit mapping pair; a colon is missed");else return e.tag=nt,e.anchor=st,!0}else if(ut)throwError(e,"can not read a block mapping entry; a multiline key may not be an implicit key");else return e.tag=nt,e.anchor=st,!0;else break;if((e.line===et||e.lineIndent>s)&&(composeNode(e,s,CONTEXT_BLOCK_OUT,!0,g)&&(dt?lt=e.result:ct=e.result),dt||(storeMappingPair(e,at,it,ot,lt,ct,et,rt),ot=lt=ct=null),skipSeparationSpace(e,!0,-1),xt=e.input.charCodeAt(e.position)),e.lineIndent>s&&xt!==0)throwError(e,"bad indentation of a mapping entry");else if(e.lineIndent<s)break}return dt&&storeMappingPair(e,at,it,ot,lt,null),ut&&(e.tag=nt,e.anchor=st,e.kind="mapping",e.result=at),ut}function readTagProperty(e){var s,a=!1,c=!1,g,et,rt;if(rt=e.input.charCodeAt(e.position),rt!==33)return!1;if(e.tag!==null&&throwError(e,"duplication of a tag property"),rt=e.input.charCodeAt(++e.position),rt===60?(a=!0,rt=e.input.charCodeAt(++e.position)):rt===33?(c=!0,g="!!",rt=e.input.charCodeAt(++e.position)):g="!",s=e.position,a){do rt=e.input.charCodeAt(++e.position);while(rt!==0&&rt!==62);e.position<e.length?(et=e.input.slice(s,e.position),rt=e.input.charCodeAt(++e.position)):throwError(e,"unexpected end of the stream within a verbatim tag")}else{for(;rt!==0&&!is_WS_OR_EOL(rt);)rt===33&&(c?throwError(e,"tag suffix cannot contain exclamation marks"):(g=e.input.slice(s-1,e.position+1),PATTERN_TAG_HANDLE.test(g)||throwError(e,"named tag handle cannot contain such characters"),c=!0,s=e.position+1)),rt=e.input.charCodeAt(++e.position);et=e.input.slice(s,e.position),PATTERN_FLOW_INDICATORS.test(et)&&throwError(e,"tag suffix cannot contain flow indicator characters")}return et&&!PATTERN_TAG_URI.test(et)&&throwError(e,"tag name cannot contain such characters: "+et),a?e.tag=et:_hasOwnProperty$1.call(e.tagMap,g)?e.tag=e.tagMap[g]+et:g==="!"?e.tag="!"+et:g==="!!"?e.tag="tag:yaml.org,2002:"+et:throwError(e,'undeclared tag handle "'+g+'"'),!0}function readAnchorProperty(e){var s,a;if(a=e.input.charCodeAt(e.position),a!==38)return!1;for(e.anchor!==null&&throwError(e,"duplication of an anchor property"),a=e.input.charCodeAt(++e.position),s=e.position;a!==0&&!is_WS_OR_EOL(a)&&!is_FLOW_INDICATOR(a);)a=e.input.charCodeAt(++e.position);return e.position===s&&throwError(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(s,e.position),!0}function readAlias(e){var s,a,c;if(c=e.input.charCodeAt(e.position),c!==42)return!1;for(c=e.input.charCodeAt(++e.position),s=e.position;c!==0&&!is_WS_OR_EOL(c)&&!is_FLOW_INDICATOR(c);)c=e.input.charCodeAt(++e.position);return e.position===s&&throwError(e,"name of an alias node must contain at least one character"),a=e.input.slice(s,e.position),_hasOwnProperty$1.call(e.anchorMap,a)||throwError(e,'unidentified alias "'+a+'"'),e.result=e.anchorMap[a],skipSeparationSpace(e,!0,-1),!0}function composeNode(e,s,a,c,g){var et,rt,nt,st=1,at=!1,it=!1,ot,lt,ct,dt,ut;if(e.listener!==null&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,et=rt=nt=CONTEXT_BLOCK_OUT===a||CONTEXT_BLOCK_IN===a,c&&skipSeparationSpace(e,!0,-1)&&(at=!0,e.lineIndent>s?st=1:e.lineIndent===s?st=0:e.lineIndent<s&&(st=-1)),st===1)for(;readTagProperty(e)||readAnchorProperty(e);)skipSeparationSpace(e,!0,-1)?(at=!0,nt=et,e.lineIndent>s?st=1:e.lineIndent===s?st=0:e.lineIndent<s&&(st=-1)):nt=!1;if(nt&&(nt=at||g),(st===1||CONTEXT_BLOCK_OUT===a)&&(CONTEXT_FLOW_IN===a||CONTEXT_FLOW_OUT===a?dt=s:dt=s+1,ut=e.position-e.lineStart,st===1?nt&&(readBlockSequence(e,ut)||readBlockMapping(e,ut,dt))||readFlowCollection(e,dt)?it=!0:(rt&&readBlockScalar(e,dt)||readSingleQuotedScalar(e,dt)||readDoubleQuotedScalar(e,dt)?it=!0:readAlias(e)?(it=!0,(e.tag!==null||e.anchor!==null)&&throwError(e,"alias node should not have any properties")):readPlainScalar(e,dt,CONTEXT_FLOW_IN===a)&&(it=!0,e.tag===null&&(e.tag="?")),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):st===0&&(it=nt&&readBlockSequence(e,ut))),e.tag!==null&&e.tag!=="!")if(e.tag==="?"){for(e.result!==null&&e.kind!=="scalar"&&throwError(e,'unacceptable node kind for !<?> tag; it should be "scalar", not "'+e.kind+'"'),ot=0,lt=e.implicitTypes.length;ot<lt;ot+=1)if(ct=e.implicitTypes[ot],ct.resolve(e.result)){e.result=ct.construct(e.result),e.tag=ct.tag,e.anchor!==null&&(e.anchorMap[e.anchor]=e.result);break}}else _hasOwnProperty$1.call(e.typeMap[e.kind||"fallback"],e.tag)?(ct=e.typeMap[e.kind||"fallback"][e.tag],e.result!==null&&ct.kind!==e.kind&&throwError(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+ct.kind+'", not "'+e.kind+'"'),ct.resolve(e.result)?(e.result=ct.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):throwError(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):throwError(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||it}function readDocument(e){var s=e.position,a,c,g,et=!1,rt;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(rt=e.input.charCodeAt(e.position))!==0&&(skipSeparationSpace(e,!0,-1),rt=e.input.charCodeAt(e.position),!(e.lineIndent>0||rt!==37));){for(et=!0,rt=e.input.charCodeAt(++e.position),a=e.position;rt!==0&&!is_WS_OR_EOL(rt);)rt=e.input.charCodeAt(++e.position);for(c=e.input.slice(a,e.position),g=[],c.length<1&&throwError(e,"directive name must not be less than one character in length");rt!==0;){for(;is_WHITE_SPACE(rt);)rt=e.input.charCodeAt(++e.position);if(rt===35){do rt=e.input.charCodeAt(++e.position);while(rt!==0&&!is_EOL(rt));break}if(is_EOL(rt))break;for(a=e.position;rt!==0&&!is_WS_OR_EOL(rt);)rt=e.input.charCodeAt(++e.position);g.push(e.input.slice(a,e.position))}rt!==0&&readLineBreak(e),_hasOwnProperty$1.call(directiveHandlers,c)?directiveHandlers[c](e,c,g):throwWarning(e,'unknown document directive "'+c+'"')}if(skipSeparationSpace(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,skipSeparationSpace(e,!0,-1)):et&&throwError(e,"directives end mark is expected"),composeNode(e,e.lineIndent-1,CONTEXT_BLOCK_OUT,!1,!0),skipSeparationSpace(e,!0,-1),e.checkLineBreaks&&PATTERN_NON_ASCII_LINE_BREAKS.test(e.input.slice(s,e.position))&&throwWarning(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&testDocumentSeparator(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,skipSeparationSpace(e,!0,-1));return}if(e.position<e.length-1)throwError(e,"end of the stream or a document separator is expected");else return}function loadDocuments(e,s){e=String(e),s=s||{},e.length!==0&&(e.charCodeAt(e.length-1)!==10&&e.charCodeAt(e.length-1)!==13&&(e+=` 830`),e.charCodeAt(0)===65279&&(e=e.slice(1)));var a=new State$1(e,s),c=e.indexOf("\0");for(c!==-1&&(a.position=c,throwError(a,"null byte is not allowed in input")),a.input+="\0";a.input.charCodeAt(a.position)===32;)a.lineIndent+=1,a.position+=1;for(;a.position<a.length-1;)readDocument(a);return a.documents}function loadAll(e,s,a){s!==null&&typeof s=="object"&&typeof a>"u"&&(a=s,s=null);var c=loadDocuments(e,a);if(typeof s!="function")return c;for(var g=0,et=c.length;g<et;g+=1)s(c[g])}function load(e,s){var a=loadDocuments(e,s);if(a.length!==0){if(a.length===1)return a[0];throw new YAMLException$1("expected a single document in the stream, but found more")}}function safeLoadAll(e,s,a){return typeof s=="object"&&s!==null&&typeof a>"u"&&(a=s,s=null),loadAll(e,s,common$1.extend({schema:DEFAULT_SAFE_SCHEMA$1},a))}function safeLoad(e,s){return load(e,common$1.extend({schema:DEFAULT_SAFE_SCHEMA$1},s))}loader$1.loadAll=loadAll;loader$1.load=load;loader$1.safeLoadAll=safeLoadAll;loader$1.safeLoad=safeLoad;var dumper$1={},common=common$6,YAMLException=exception,DEFAULT_FULL_SCHEMA=default_full,DEFAULT_SAFE_SCHEMA=default_safe,_toString=Object.prototype.toString,_hasOwnProperty=Object.prototype.hasOwnProperty,CHAR_TAB=9,CHAR_LINE_FEED=10,CHAR_CARRIAGE_RETURN=13,CHAR_SPACE=32,CHAR_EXCLAMATION=33,CHAR_DOUBLE_QUOTE=34,CHAR_SHARP=35,CHAR_PERCENT=37,CHAR_AMPERSAND=38,CHAR_SINGLE_QUOTE=39,CHAR_ASTERISK=42,CHAR_COMMA=44,CHAR_MINUS=45,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_GREATER_THAN=62,CHAR_QUESTION=63,CHAR_COMMERCIAL_AT=64,CHAR_LEFT_SQUARE_BRACKET=91,CHAR_RIGHT_SQUARE_BRACKET=93,CHAR_GRAVE_ACCENT=96,CHAR_LEFT_CURLY_BRACKET=123,CHAR_VERTICAL_LINE=124,CHAR_RIGHT_CURLY_BRACKET=125,ESCAPE_SEQUENCES={};ESCAPE_SEQUENCES[0]="\\0";ESCAPE_SEQUENCES[7]="\\a";ESCAPE_SEQUENCES[8]="\\b";ESCAPE_SEQUENCES[9]="\\t";ESCAPE_SEQUENCES[10]="\\n";ESCAPE_SEQUENCES[11]="\\v";ESCAPE_SEQUENCES[12]="\\f";ESCAPE_SEQUENCES[13]="\\r";ESCAPE_SEQUENCES[27]="\\e";ESCAPE_SEQUENCES[34]='\\"';ESCAPE_SEQUENCES[92]="\\\\";ESCAPE_SEQUENCES[133]="\\N";ESCAPE_SEQUENCES[160]="\\_";ESCAPE_SEQUENCES[8232]="\\L";ESCAPE_SEQUENCES[8233]="\\P";var DEPRECATED_BOOLEANS_SYNTAX=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function compileStyleMap(e,s){var a,c,g,et,rt,nt,st;if(s===null)return{};for(a={},c=Object.keys(s),g=0,et=c.length;g<et;g+=1)rt=c[g],nt=String(s[rt]),rt.slice(0,2)==="!!"&&(rt="tag:yaml.org,2002:"+rt.slice(2)),st=e.compiledTypeMap.fallback[rt],st&&_hasOwnProperty.call(st.styleAliases,nt)&&(nt=st.styleAliases[nt]),a[rt]=nt;return a}function encodeHex(e){var s,a,c;if(s=e.toString(16).toUpperCase(),e<=255)a="x",c=2;else if(e<=65535)a="u",c=4;else if(e<=4294967295)a="U",c=8;else throw new YAMLException("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+a+common.repeat("0",c-s.length)+s}function State(e){this.schema=e.schema||DEFAULT_FULL_SCHEMA,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=common.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=compileStyleMap(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function indentString(e,s){for(var a=common.repeat(" ",s),c=0,g=-1,et="",rt,nt=e.length;c<nt;)g=e.indexOf(` 831`,c),g===-1?(rt=e.slice(c),c=nt):(rt=e.slice(c,g+1),c=g+1),rt.length&&rt!==` 832`&&(et+=a),et+=rt;return et}function generateNextLine(e,s){return` 833`+common.repeat(" ",e.indent*s)}function testImplicitResolving(e,s){var a,c,g;for(a=0,c=e.implicitTypes.length;a<c;a+=1)if(g=e.implicitTypes[a],g.resolve(s))return!0;return!1}function isWhitespace(e){return e===CHAR_SPACE||e===CHAR_TAB}function isPrintable(e){return 32<=e&&e<=126||161<=e&&e<=55295&&e!==8232&&e!==8233||57344<=e&&e<=65533&&e!==65279||65536<=e&&e<=1114111}function isNsChar(e){return isPrintable(e)&&!isWhitespace(e)&&e!==65279&&e!==CHAR_CARRIAGE_RETURN&&e!==CHAR_LINE_FEED}function isPlainSafe(e,s){return isPrintable(e)&&e!==65279&&e!==CHAR_COMMA&&e!==CHAR_LEFT_SQUARE_BRACKET&&e!==CHAR_RIGHT_SQUARE_BRACKET&&e!==CHAR_LEFT_CURLY_BRACKET&&e!==CHAR_RIGHT_CURLY_BRACKET&&e!==CHAR_COLON&&(e!==CHAR_SHARP||s&&isNsChar(s))}function isPlainSafeFirst(e){return isPrintable(e)&&e!==65279&&!isWhitespace(e)&&e!==CHAR_MINUS&&e!==CHAR_QUESTION&&e!==CHAR_COLON&&e!==CHAR_COMMA&&e!==CHAR_LEFT_SQUARE_BRACKET&&e!==CHAR_RIGHT_SQUARE_BRACKET&&e!==CHAR_LEFT_CURLY_BRACKET&&e!==CHAR_RIGHT_CURLY_BRACKET&&e!==CHAR_SHARP&&e!==CHAR_AMPERSAND&&e!==CHAR_ASTERISK&&e!==CHAR_EXCLAMATION&&e!==CHAR_VERTICAL_LINE&&e!==CHAR_EQUALS&&e!==CHAR_GREATER_THAN&&e!==CHAR_SINGLE_QUOTE&&e!==CHAR_DOUBLE_QUOTE&&e!==CHAR_PERCENT&&e!==CHAR_COMMERCIAL_AT&&e!==CHAR_GRAVE_ACCENT}function needIndentIndicator(e){var s=/^\n* /;return s.test(e)}var STYLE_PLAIN=1,STYLE_SINGLE=2,STYLE_LITERAL=3,STYLE_FOLDED=4,STYLE_DOUBLE=5;function chooseScalarStyle(e,s,a,c,g){var et,rt,nt,st=!1,at=!1,it=c!==-1,ot=-1,lt=isPlainSafeFirst(e.charCodeAt(0))&&!isWhitespace(e.charCodeAt(e.length-1));if(s)for(et=0;et<e.length;et++){if(rt=e.charCodeAt(et),!isPrintable(rt))return STYLE_DOUBLE;nt=et>0?e.charCodeAt(et-1):null,lt=lt&&isPlainSafe(rt,nt)}else{for(et=0;et<e.length;et++){if(rt=e.charCodeAt(et),rt===CHAR_LINE_FEED)st=!0,it&&(at=at||et-ot-1>c&&e[ot+1]!==" ",ot=et);else if(!isPrintable(rt))return STYLE_DOUBLE;nt=et>0?e.charCodeAt(et-1):null,lt=lt&&isPlainSafe(rt,nt)}at=at||it&&et-ot-1>c&&e[ot+1]!==" "}return!st&&!at?lt&&!g(e)?STYLE_PLAIN:STYLE_SINGLE:a>9&&needIndentIndicator(e)?STYLE_DOUBLE:at?STYLE_FOLDED:STYLE_LITERAL}function writeScalar(e,s,a,c){e.dump=function(){if(s.length===0)return"''";if(!e.noCompatMode&&DEPRECATED_BOOLEANS_SYNTAX.indexOf(s)!==-1)return"'"+s+"'";var g=e.indent*Math.max(1,a),et=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-g),rt=c||e.flowLevel>-1&&a>=e.flowLevel;function nt(st){return testImplicitResolving(e,st)}switch(chooseScalarStyle(s,rt,e.indent,et,nt)){case STYLE_PLAIN:return s;case STYLE_SINGLE:return"'"+s.replace(/'/g,"''")+"'";case STYLE_LITERAL:return"|"+blockHeader(s,e.indent)+dropEndingNewline(indentString(s,g));case STYLE_FOLDED:return">"+blockHeader(s,e.indent)+dropEndingNewline(indentString(foldString(s,et),g));case STYLE_DOUBLE:return'"'+escapeString(s)+'"';default:throw new YAMLException("impossible error: invalid scalar style")}}()}function blockHeader(e,s){var a=needIndentIndicator(e)?String(s):"",c=e[e.length-1]===` 834`,g=c&&(e[e.length-2]===` 835`||e===` 836`),et=g?"+":c?"":"-";return a+et+` 837`}function dropEndingNewline(e){return e[e.length-1]===` 838`?e.slice(0,-1):e}function foldString(e,s){for(var a=/(\n+)([^\n]*)/g,c=function(){var at=e.indexOf(` 839`);return at=at!==-1?at:e.length,a.lastIndex=at,foldLine(e.slice(0,at),s)}(),g=e[0]===` 840`||e[0]===" ",et,rt;rt=a.exec(e);){var nt=rt[1],st=rt[2];et=st[0]===" ",c+=nt+(!g&&!et&&st!==""?` 841`:"")+foldLine(st,s),g=et}return c}function foldLine(e,s){if(e===""||e[0]===" ")return e;for(var a=/ [^ ]/g,c,g=0,et,rt=0,nt=0,st="";c=a.exec(e);)nt=c.index,nt-g>s&&(et=rt>g?rt:nt,st+=` 842`+e.slice(g,et),g=et+1),rt=nt;return st+=` 843`,e.length-g>s&&rt>g?st+=e.slice(g,rt)+` 844`+e.slice(rt+1):st+=e.slice(g),st.slice(1)}function escapeString(e){for(var s="",a,c,g,et=0;et<e.length;et++){if(a=e.charCodeAt(et),a>=55296&&a<=56319&&(c=e.charCodeAt(et+1),c>=56320&&c<=57343)){s+=encodeHex((a-55296)*1024+c-56320+65536),et++;continue}g=ESCAPE_SEQUENCES[a],s+=!g&&isPrintable(a)?e[et]:g||encodeHex(a)}return s}function writeFlowSequence(e,s,a){var c="",g=e.tag,et,rt;for(et=0,rt=a.length;et<rt;et+=1)writeNode(e,s,a[et],!1,!1)&&(et!==0&&(c+=","+(e.condenseFlow?"":" ")),c+=e.dump);e.tag=g,e.dump="["+c+"]"}function writeBlockSequence(e,s,a,c){var g="",et=e.tag,rt,nt;for(rt=0,nt=a.length;rt<nt;rt+=1)writeNode(e,s+1,a[rt],!0,!0)&&((!c||rt!==0)&&(g+=generateNextLine(e,s)),e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?g+="-":g+="- ",g+=e.dump);e.tag=et,e.dump=g||"[]"}function writeFlowMapping(e,s,a){var c="",g=e.tag,et=Object.keys(a),rt,nt,st,at,it;for(rt=0,nt=et.length;rt<nt;rt+=1)it="",rt!==0&&(it+=", "),e.condenseFlow&&(it+='"'),st=et[rt],at=a[st],writeNode(e,s,st,!1,!1)&&(e.dump.length>1024&&(it+="? "),it+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),writeNode(e,s,at,!1,!1)&&(it+=e.dump,c+=it));e.tag=g,e.dump="{"+c+"}"}function writeBlockMapping(e,s,a,c){var g="",et=e.tag,rt=Object.keys(a),nt,st,at,it,ot,lt;if(e.sortKeys===!0)rt.sort();else if(typeof e.sortKeys=="function")rt.sort(e.sortKeys);else if(e.sortKeys)throw new YAMLException("sortKeys must be a boolean or a function");for(nt=0,st=rt.length;nt<st;nt+=1)lt="",(!c||nt!==0)&&(lt+=generateNextLine(e,s)),at=rt[nt],it=a[at],writeNode(e,s+1,at,!0,!0,!0)&&(ot=e.tag!==null&&e.tag!=="?"||e.dump&&e.dump.length>1024,ot&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?lt+="?":lt+="? "),lt+=e.dump,ot&&(lt+=generateNextLine(e,s)),writeNode(e,s+1,it,!0,ot)&&(e.dump&&CHAR_LINE_FEED===e.dump.charCodeAt(0)?lt+=":":lt+=": ",lt+=e.dump,g+=lt));e.tag=et,e.dump=g||"{}"}function detectType(e,s,a){var c,g,et,rt,nt,st;for(g=a?e.explicitTypes:e.implicitTypes,et=0,rt=g.length;et<rt;et+=1)if(nt=g[et],(nt.instanceOf||nt.predicate)&&(!nt.instanceOf||typeof s=="object"&&s instanceof nt.instanceOf)&&(!nt.predicate||nt.predicate(s))){if(e.tag=a?nt.tag:"?",nt.represent){if(st=e.styleMap[nt.tag]||nt.defaultStyle,_toString.call(nt.represent)==="[object Function]")c=nt.represent(s,st);else if(_hasOwnProperty.call(nt.represent,st))c=nt.represent[st](s,st);else throw new YAMLException("!<"+nt.tag+'> tag resolver accepts not "'+st+'" style');e.dump=c}return!0}return!1}function writeNode(e,s,a,c,g,et){e.tag=null,e.dump=a,detectType(e,a,!1)||detectType(e,a,!0);var rt=_toString.call(e.dump);c&&(c=e.flowLevel<0||e.flowLevel>s);var nt=rt==="[object Object]"||rt==="[object Array]",st,at;if(nt&&(st=e.duplicates.indexOf(a),at=st!==-1),(e.tag!==null&&e.tag!=="?"||at||e.indent!==2&&s>0)&&(g=!1),at&&e.usedDuplicates[st])e.dump="*ref_"+st;else{if(nt&&at&&!e.usedDuplicates[st]&&(e.usedDuplicates[st]=!0),rt==="[object Object]")c&&Object.keys(e.dump).length!==0?(writeBlockMapping(e,s,e.dump,g),at&&(e.dump="&ref_"+st+e.dump)):(writeFlowMapping(e,s,e.dump),at&&(e.dump="&ref_"+st+" "+e.dump));else if(rt==="[object Array]"){var it=e.noArrayIndent&&s>0?s-1:s;c&&e.dump.length!==0?(writeBlockSequence(e,it,e.dump,g),at&&(e.dump="&ref_"+st+e.dump)):(writeFlowSequence(e,it,e.dump),at&&(e.dump="&ref_"+st+" "+e.dump))}else if(rt==="[object String]")e.tag!=="?"&&writeScalar(e,e.dump,s,et);else{if(e.skipInvalid)return!1;throw new YAMLException("unacceptable kind of an object to dump "+rt)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function getDuplicateReferences(e,s){var a=[],c=[],g,et;for(inspectNode(e,a,c),g=0,et=c.length;g<et;g+=1)s.duplicates.push(a[c[g]]);s.usedDuplicates=new Array(et)}function inspectNode(e,s,a){var c,g,et;if(e!==null&&typeof e=="object")if(g=s.indexOf(e),g!==-1)a.indexOf(g)===-1&&a.push(g);else if(s.push(e),Array.isArray(e))for(g=0,et=e.length;g<et;g+=1)inspectNode(e[g],s,a);else for(c=Object.keys(e),g=0,et=c.length;g<et;g+=1)inspectNode(e[c[g]],s,a)}function dump(e,s){s=s||{};var a=new State(s);return a.noRefs||getDuplicateReferences(e,a),writeNode(a,0,e,!0,!0)?a.dump+` 845`:""}function safeDump(e,s){return dump(e,common.extend({schema:DEFAULT_SAFE_SCHEMA},s))}dumper$1.dump=dump;dumper$1.safeDump=safeDump;var loader=loader$1,dumper=dumper$1;function deprecated(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}jsYaml$1.Type=type;jsYaml$1.Schema=schema;jsYaml$1.FAILSAFE_SCHEMA=failsafe;jsYaml$1.JSON_SCHEMA=json;jsYaml$1.CORE_SCHEMA=core;jsYaml$1.DEFAULT_SAFE_SCHEMA=default_safe;
845jsYaml$1.DEFAULT_FULL_SCHEMA=default_full;jsYaml$1.load=loader.load;jsYaml$1.loadAll=loader.loadAll;jsYaml$1.safeLoad=loader.safeLoad;jsYaml$1.safeLoadAll=loader.safeLoadAll;jsYaml$1.dump=dumper.dump;jsYaml$1.safeDump=dumper.safeDump;jsYaml$1.YAMLException=exception;jsYaml$1.MINIMAL_SCHEMA=failsafe;jsYaml$1.SAFE_SCHEMA=default_safe;jsYaml$1.DEFAULT_SCHEMA=default_full;jsYaml$1.scan=deprecated("scan");jsYaml$1.parse=deprecated("parse");jsYaml$1.compose=deprecated("compose");jsYaml$1.addConstructor=deprecated("addConstructor");var yaml=jsYaml$1,jsYaml=yaml;(function(module,exports){const yaml=jsYaml,engines=module.exports;engines.yaml={parse:yaml.safeLoad.bind(yaml),stringify:yaml.safeDump.bind(yaml)},engines.json={parse:JSON.parse.bind(JSON),stringify:function(e,s){const a=Object.assign({replacer:null,space:2},s);return JSON.stringify(e,a.replacer,a.space)}},engines.javascript={parse:function parse(str,options,wrap){try{return wrap!==!1&&(str=`(function() { 846return `+str.trim()+`; 847}());`),eval(str)||{}}catch(e){if(wrap!==!1&&/(unexpected|identifier)/i.test(e.message))return parse(str,options,!1);throw new SyntaxError(e)}},stringify:function(){throw new Error("stringifying JavaScript is not supported")}}})(engines$2);var enginesExports=engines$2.exports,utils$3={};/*! 848 * strip-bom-string <https://github.com/jonschlinkert/strip-bom-string> 849 * 850 * Copyright (c) 2015, 2017, Jon Schlinkert. 851 * Released under the MIT License. 852 */var stripBomString=function(e){return typeof e=="string"&&e.charAt(0)==="\uFEFF"?e.slice(1):e};(function(e){const s=stripBomString,a=kindOf;e.define=function(c,g,et){Reflect.defineProperty(c,g,{enumerable:!1,configurable:!0,writable:!0,value:et})},e.isBuffer=function(c){return a(c)==="buffer"},e.isObject=function(c){return a(c)==="object"},e.toBuffer=function(c){return typeof c=="string"?Buffer.from(c):c},e.toString=function(c){if(e.isBuffer(c))return s(String(c));if(typeof c!="string")throw new TypeError("expected input to be a string or buffer");return s(c)},e.arrayify=function(c){return c?Array.isArray(c)?c:[c]:[]},e.startsWith=function(c,g,et){return typeof et!="number"&&(et=g.length),c.slice(0,et)===g}})(utils$3);const engines$1=enginesExports,utils$2=utils$3;var defaults$4=function(e){const s=Object.assign({},e);return s.delimiters=utils$2.arrayify(s.delims||s.delimiters||"---"),s.delimiters.length===1&&s.delimiters.push(s.delimiters[0]),s.language=(s.language||s.lang||"yaml").toLowerCase(),s.engines=Object.assign({},engines$1,s.parsers,s.engines),s},engine=function(e,s){let a=s.engines[e]||s.engines[aliase(e)];if(typeof a>"u")throw new Error('gray-matter engine "'+e+'" is not registered');return typeof a=="function"&&(a={parse:a}),a};function aliase(e){switch(e.toLowerCase()){case"js":case"javascript":return"javascript";case"coffee":case"coffeescript":case"cson":return"coffee";case"yaml":case"yml":return"yaml";default:return e}}const typeOf$1=kindOf,getEngine$1=engine,defaults$3=defaults$4;var stringify$2=function(e,s,a){if(s==null&&a==null)switch(typeOf$1(e)){case"object":s=e.data,a={};break;case"string":return e;default:throw new TypeError("expected file to be a string or object")}const c=e.content,g=defaults$3(a);if(s==null){if(!g.data)return e;s=g.data}const et=e.language||g.language,rt=getEngine$1(et,g);if(typeof rt.stringify!="function")throw new TypeError('expected "'+et+'.stringify" to be a function');s=Object.assign({},e.data,s);const nt=g.delimiters[0],st=g.delimiters[1],at=rt.stringify(s,a).trim();let it="";return at!=="{}"&&(it=newline(nt)+newline(at)+newline(st)),typeof e.excerpt=="string"&&e.excerpt!==""&&c.indexOf(e.excerpt.trim())===-1&&(it+=newline(e.excerpt)+newline(st)),it+newline(c)};function newline(e){return e.slice(-1)!==` 853`?e+` 854`:e}const defaults$2=defaults$4;var excerpt$1=function(e,s){const a=defaults$2(s);if(e.data==null&&(e.data={}),typeof a.excerpt=="function")return a.excerpt(e,a);const c=e.data.excerpt_separator||a.excerpt_separator;if(c==null&&(a.excerpt===!1||a.excerpt==null))return e;const g=typeof a.excerpt=="string"?a.excerpt:c||a.delimiters[0],et=e.content.indexOf(g);return et!==-1&&(e.excerpt=e.content.slice(0,et)),e};const typeOf=kindOf,stringify$1=stringify$2,utils$1=utils$3;var toFile$1=function(e){return typeOf(e)!=="object"&&(e={content:e}),typeOf(e.data)!=="object"&&(e.data={}),e.contents&&e.content==null&&(e.content=e.contents),utils$1.define(e,"orig",utils$1.toBuffer(e.content)),utils$1.define(e,"language",e.language||""),utils$1.define(e,"matter",e.matter||""),utils$1.define(e,"stringify",function(s,a){return a&&a.language&&(e.language=a.language),stringify$1(e,s,a)}),e.content=utils$1.toString(e.content),e.isEmpty=!1,e.excerpt="",e};const getEngine=engine,defaults$1=defaults$4;var parse$2=function(e,s,a){const c=defaults$1(a),g=getEngine(e,c);if(typeof g.parse!="function")throw new TypeError('expected "'+e+'.parse" to be a function');return g.parse(s,c)};const fs=require$$0,sections$1=sectionMatter,defaults=defaults$4,stringify=stringify$2,excerpt=excerpt$1,engines=enginesExports,toFile=toFile$1,parse$1=parse$2,utils=utils$3;function matter(e,s){if(e==="")return{data:{},content:e,excerpt:"",orig:e};let a=toFile(e);const c=matter.cache[a.content];if(!s){if(c)return a=Object.assign({},c),a.orig=c.orig,a;matter.cache[a.content]=a}return parseMatter(a,s)}function parseMatter(e,s){const a=defaults(s),c=a.delimiters[0],g=` 855`+a.delimiters[1];let et=e.content;a.language&&(e.language=a.language);const rt=c.length;if(!utils.startsWith(et,c,rt))return excerpt(e,a),e;if(et.charAt(rt)===c.slice(-1))return e;et=et.slice(rt);const nt=et.length,st=matter.language(et,a);st.name&&(e.language=st.name,et=et.slice(st.raw.length));let at=et.indexOf(g);return at===-1&&(at=nt),e.matter=et.slice(0,at),e.matter.replace(/^\s*#[^\n]+/gm,"").trim()===""?(e.isEmpty=!0,e.empty=e.content,e.data={}):e.data=parse$1(e.language,e.matter,a),at===nt?e.content="":(e.content=et.slice(at+g.length),e.content[0]==="\r"&&(e.content=e.content.slice(1)),e.content[0]===` 856`&&(e.content=e.content.slice(1))),excerpt(e,a),(a.sections===!0||typeof a.section=="function")&§ions$1(e,a.section),e}matter.engines=engines;matter.stringify=function(e,s,a){return typeof e=="string"&&(e=matter(e,a)),stringify(e,s,a)};matter.read=function(e,s){const a=fs.readFileSync(e,"utf8"),c=matter(a,s);return c.path=e,c};matter.test=function(e,s){return utils.startsWith(e,defaults(s).delimiters[0])};matter.language=function(e,s){const c=defaults(s).delimiters[0];matter.test(e)&&(e=e.slice(c.length));const g=e.slice(0,e.search(/\r?\n/));return{raw:g,name:g?g.trim():""}};matter.cache={};matter.clearCache=function(){matter.cache={}};var grayMatter=matter;const matter$1=getDefaultExportFromCjs(grayMatter);var buffer={},base64Js={};base64Js.byteLength=byteLength;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
vendor: 26,641 bytes, lines 856-861
856+/";for(var i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;revLookup[45]=62;revLookup[95]=63;function getLens(e){var s=e.length;if(s%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var a=e.indexOf("=");a===-1&&(a=s);var c=a===s?0:4-a%4;return[a,c]}function byteLength(e){var s=getLens(e),a=s[0],c=s[1];return(a+c)*3/4-c}function _byteLength(e,s,a){return(s+a)*3/4-a}function toByteArray(e){var s,a=getLens(e),c=a[0],g=a[1],et=new Arr(_byteLength(e,c,g)),rt=0,nt=g>0?c-4:c,st;for(st=0;st<nt;st+=4)s=revLookup[e.charCodeAt(st)]<<18|revLookup[e.charCodeAt(st+1)]<<12|revLookup[e.charCodeAt(st+2)]<<6|revLookup[e.charCodeAt(st+3)],et[rt++]=s>>16&255,et[rt++]=s>>8&255,et[rt++]=s&255;return g===2&&(s=revLookup[e.charCodeAt(st)]<<2|revLookup[e.charCodeAt(st+1)]>>4,et[rt++]=s&255),g===1&&(s=revLookup[e.charCodeAt(st)]<<10|revLookup[e.charCodeAt(st+1)]<<4|revLookup[e.charCodeAt(st+2)]>>2,et[rt++]=s>>8&255,et[rt++]=s&255),et}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,s,a){for(var c,g=[],et=s;et<a;et+=3)c=(e[et]<<16&16711680)+(e[et+1]<<8&65280)+(e[et+2]&255),g.push(tripletToBase64(c));return g.join("")}function fromByteArray(e){for(var s,a=e.length,c=a%3,g=[],et=16383,rt=0,nt=a-c;rt<nt;rt+=et)g.push(encodeChunk(e,rt,rt+et>nt?nt:rt+et));return c===1?(s=e[a-1],g.push(lookup[s>>2]+lookup[s<<4&63]+"==")):c===2&&(s=(e[a-2]<<8)+e[a-1],g.push(lookup[s>>10]+lookup[s>>4&63]+lookup[s<<2&63]+"=")),g.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */ieee754.read=function(e,s,a,c,g){var et,rt,nt=g*8-c-1,st=(1<<nt)-1,at=st>>1,it=-7,ot=a?g-1:0,lt=a?-1:1,ct=e[s+ot];for(ot+=lt,et=ct&(1<<-it)-1,ct>>=-it,it+=nt;it>0;et=et*256+e[s+ot],ot+=lt,it-=8);for(rt=et&(1<<-it)-1,et>>=-it,it+=c;it>0;rt=rt*256+e[s+ot],ot+=lt,it-=8);if(et===0)et=1-at;else{if(et===st)return rt?NaN:(ct?-1:1)*(1/0);rt=rt+Math.pow(2,c),et=et-at}return(ct?-1:1)*rt*Math.pow(2,et-c)};ieee754.write=function(e,s,a,c,g,et){var rt,nt,st,at=et*8-g-1,it=(1<<at)-1,ot=it>>1,lt=g===23?Math.pow(2,-24)-Math.pow(2,-77):0,ct=c?0:et-1,dt=c?1:-1,ut=s<0||s===0&&1/s<0?1:0;for(s=Math.abs(s),isNaN(s)||s===1/0?(nt=isNaN(s)?1:0,rt=it):(rt=Math.floor(Math.log(s)/Math.LN2),s*(st=Math.pow(2,-rt))<1&&(rt--,st*=2),rt+ot>=1?s+=lt/st:s+=lt*Math.pow(2,1-ot),s*st>=2&&(rt++,st/=2),rt+ot>=it?(nt=0,rt=it):rt+ot>=1?(nt=(s*st-1)*Math.pow(2,g),rt=rt+ot):(nt=s*Math.pow(2,ot-1)*Math.pow(2,g),rt=0));g>=8;e[a+ct]=nt&255,ct+=dt,nt/=256,g-=8);for(rt=rt<<g|nt,at+=g;at>0;e[a+ct]=rt&255,ct+=dt,rt/=256,at-=8);e[a+ct-dt]|=ut*128};/*! 857 * The buffer module from node.js, for the browser. 858 * 859 * @author Feross Aboukhadijeh <https://feross.org> 860 * @license MIT 861 */(function(e){const s=base64Js,a=ieee754,c=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=nt,e.SlowBuffer=ht,e.INSPECT_MAX_BYTES=50;const g=2147483647;e.kMaxLength=g,nt.TYPED_ARRAY_SUPPORT=et(),!nt.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function et(){try{const St=new Uint8Array(1),ft={foo:function(){return 42}};return Object.setPrototypeOf(ft,Uint8Array.prototype),Object.setPrototypeOf(St,ft),St.foo()===42}catch{return!1}}Object.defineProperty(nt.prototype,"parent",{enumerable:!0,get:function(){if(nt.isBuffer(this))return this.buffer}}),Object.defineProperty(nt.prototype,"offset",{enumerable:!0,get:function(){if(nt.isBuffer(this))return this.byteOffset}});function rt(St){if(St>g)throw new RangeError('The value "'+St+'" is invalid for option "size"');const ft=new Uint8Array(St);return Object.setPrototypeOf(ft,nt.prototype),ft}function nt(St,ft,pt){if(typeof St=="number"){if(typeof ft=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return ot(St)}return st(St,ft,pt)}nt.poolSize=8192;function st(St,ft,pt){if(typeof St=="string")return lt(St,ft);if(ArrayBuffer.isView(St))return dt(St);if(St==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof St);if(Tr(St,ArrayBuffer)||St&&Tr(St.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Tr(St,SharedArrayBuffer)||St&&Tr(St.buffer,SharedArrayBuffer)))return ut(St,ft,pt);if(typeof St=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const Nt=St.valueOf&&St.valueOf();if(Nt!=null&&Nt!==St)return nt.from(Nt,ft,pt);const Rt=xt(St);if(Rt)return Rt;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof St[Symbol.toPrimitive]=="function")return nt.from(St[Symbol.toPrimitive]("string"),ft,pt);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof St)}nt.from=function(St,ft,pt){return st(St,ft,pt)},Object.setPrototypeOf(nt.prototype,Uint8Array.prototype),Object.setPrototypeOf(nt,Uint8Array);function at(St){if(typeof St!="number")throw new TypeError('"size" argument must be of type number');if(St<0)throw new RangeError('The value "'+St+'" is invalid for option "size"')}function it(St,ft,pt){return at(St),St<=0?rt(St):ft!==void 0?typeof pt=="string"?rt(St).fill(ft,pt):rt(St).fill(ft):rt(St)}nt.alloc=function(St,ft,pt){return it(St,ft,pt)};function ot(St){return at(St),rt(St<0?0:gt(St)|0)}nt.allocUnsafe=function(St){return ot(St)},nt.allocUnsafeSlow=function(St){return ot(St)};function lt(St,ft){if((typeof ft!="string"||ft==="")&&(ft="utf8"),!nt.isEncoding(ft))throw new TypeError("Unknown encoding: "+ft);const pt=mt(St,ft)|0;let Nt=rt(pt);const Rt=Nt.write(St,ft);return Rt!==pt&&(Nt=Nt.slice(0,Rt)),Nt}function ct(St){const ft=St.length<0?0:gt(St.length)|0,pt=rt(ft);for(let Nt=0;Nt<ft;Nt+=1)pt[Nt]=St[Nt]&255;return pt}function dt(St){if(Tr(St,Uint8Array)){const ft=new Uint8Array(St);return ut(ft.buffer,ft.byteOffset,ft.byteLength)}return ct(St)}function ut(St,ft,pt){if(ft<0||St.byteLength<ft)throw new RangeError('"offset" is outside of buffer bounds');if(St.byteLength<ft+(pt||0))throw new RangeError('"length" is outside of buffer bounds');let Nt;return ft===void 0&&pt===void 0?Nt=new Uint8Array(St):pt===void 0?Nt=new Uint8Array(St,ft):Nt=new Uint8Array(St,ft,pt),Object.setPrototypeOf(Nt,nt.prototype),Nt}function xt(St){if(nt.isBuffer(St)){const ft=gt(St.length)|0,pt=rt(ft);return pt.length===0||St.copy(pt,0,0,ft),pt}if(St.length!==void 0)return typeof St.length!="number"||fr(St.length)?rt(0):ct(St);if(St.type==="Buffer"&&Array.isArray(St.data))return ct(St.data)}function gt(St){if(St>=g)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+g.toString(16)+" bytes");return St|0}function ht(St){return+St!=St&&(St=0),nt.alloc(+St)}nt.isBuffer=function(ft){return ft!=null&&ft._isBuffer===!0&&ft!==nt.prototype},nt.compare=function(ft,pt){if(Tr(ft,Uint8Array)&&(ft=nt.from(ft,ft.offset,ft.byteLength)),Tr(pt,Uint8Array)&&(pt=nt.from(pt,pt.offset,pt.byteLength)),!nt.isBuffer(ft)||!nt.isBuffer(pt))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(ft===pt)return 0;let Nt=ft.length,Rt=pt.length;for(let $t=0,Qt=Math.min(Nt,Rt);$t<Qt;++$t)if(ft[$t]!==pt[$t]){Nt=ft[$t],Rt=pt[$t];break}return Nt<Rt?-1:Rt<Nt?1:0},nt.isEncoding=function(ft){switch(String(ft).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},nt.concat=function(ft,pt){if(!Array.isArray(ft))throw new TypeError('"list" argument must be an Array of Buffers');if(ft.length===0)return nt.alloc(0);let Nt;if(pt===void 0)for(pt=0,Nt=0;Nt<ft.length;++Nt)pt+=ft[Nt].length;const Rt=nt.allocUnsafe(pt);let $t=0;for(Nt=0;Nt<ft.length;++Nt){let Qt=ft[Nt];if(Tr(Qt,Uint8Array))$t+Qt.length>Rt.length?(nt.isBuffer(Qt)||(Qt=nt.from(Qt)),Qt.copy(Rt,$t)):Uint8Array.prototype.set.call(Rt,Qt,$t);else if(nt.isBuffer(Qt))Qt.copy(Rt,$t);else throw new TypeError('"list" argument must be an Array of Buffers');$t+=Qt.length}return Rt};function mt(St,ft){if(nt.isBuffer(St))return St.length;if(ArrayBuffer.isView(St)||Tr(St,ArrayBuffer))return St.byteLength;if(typeof St!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof St);const pt=St.length,Nt=arguments.length>2&&arguments[2]===!0;if(!Nt&&pt===0)return 0;let Rt=!1;for(;;)switch(ft){case"ascii":case"latin1":case"binary":return pt;case"utf8":case"utf-8":return kr(St).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pt*2;case"hex":return pt>>>1;case"base64":return Vr(St).length;default:if(Rt)return Nt?-1:kr(St).length;ft=(""+ft).toLowerCase(),Rt=!0}}nt.byteLength=mt;function kt(St,ft,pt){let Nt=!1;if((ft===void 0||ft<0)&&(ft=0),ft>this.length||((pt===void 0||pt>this.length)&&(pt=this.length),pt<=0)||(pt>>>=0,ft>>>=0,pt<=ft))return"";for(St||(St="utf8");;)switch(St){case"hex":return Ht(this,ft,pt);case"utf8":case"utf-8":return er(this,ft,pt);case"ascii":return or(this,ft,pt);case"latin1":case"binary":return Dt(this,ft,pt);case"base64":return nr(this,ft,pt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Xt(this,ft,pt);default:if(Nt)throw new TypeError("Unknown encoding: "+St);St=(St+"").toLowerCase(),Nt=!0}}nt.prototype._isBuffer=!0;function Ct(St,ft,pt){const Nt=St[ft];St[ft]=St[pt],St[pt]=Nt}nt.prototype.swap16=function(){const ft=this.length;if(ft%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let pt=0;pt<ft;pt+=2)Ct(this,pt,pt+1);return this},nt.prototype.swap32=function(){const ft=this.length;if(ft%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let pt=0;pt<ft;pt+=4)Ct(this,pt,pt+3),Ct(this,pt+1,pt+2);return this},nt.prototype.swap64=function(){const ft=this.length;if(ft%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let pt=0;pt<ft;pt+=8)Ct(this,pt,pt+7),Ct(this,pt+1,pt+6),Ct(this,pt+2,pt+5),Ct(this,pt+3,pt+4);return this},nt.prototype.toString=function(){const ft=this.length;return ft===0?"":arguments.length===0?er(this,0,ft):kt.apply(this,arguments)},nt.prototype.toLocaleString=nt.prototype.toString,nt.prototype.equals=function(ft){if(!nt.isBuffer(ft))throw new TypeError("Argument must be a Buffer");return this===ft?!0:nt.compare(this,ft)===0},nt.prototype.inspect=function(){let ft="";const pt=e.INSPECT_MAX_BYTES;return ft=this.toString("hex",0,pt).replace(/(.{2})/g,"$1 ").trim(),this.length>pt&&(ft+=" ... "),"<Buffer "+ft+">"},c&&(nt.prototype[c]=nt.prototype.inspect),nt.prototype.compare=function(ft,pt,Nt,Rt,$t){if(Tr(ft,Uint8Array)&&(ft=nt.from(ft,ft.offset,ft.byteLength)),!nt.isBuffer(ft))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof ft);if(pt===void 0&&(pt=0),Nt===void 0&&(Nt=ft?ft.length:0),Rt===void 0&&(Rt=0),$t===void 0&&($t=this.length),pt<0||Nt>ft.length||Rt<0||$t>this.length)throw new RangeError("out of range index");if(Rt>=$t&&pt>=Nt)return 0;if(Rt>=$t)return-1;if(pt>=Nt)return 1;if(pt>>>=0,Nt>>>=0,Rt>>>=0,$t>>>=0,this===ft)return 0;let Qt=$t-Rt,gr=Nt-pt;const Nr=Math.min(Qt,gr),vr=this.slice(Rt,$t),Cr=ft.slice(pt,Nt);for(let dr=0;dr<Nr;++dr)if(vr[dr]!==Cr[dr]){Qt=vr[dr],gr=Cr[dr];break}return Qt<gr?-1:gr<Qt?1:0};function Tt(St,ft,pt,Nt,Rt){if(St.length===0)return-1;if(typeof pt=="string"?(Nt=pt,pt=0):pt>2147483647?pt=2147483647:pt<-2147483648&&(pt=-2147483648),pt=+pt,fr(pt)&&(pt=Rt?0:St.length-1),pt<0&&(pt=St.length+pt),pt>=St.length){if(Rt)return-1;pt=St.length-1}else if(pt<0)if(Rt)pt=0;else return-1;if(typeof ft=="string"&&(ft=nt.from(ft,Nt)),nt.isBuffer(ft))return ft.length===0?-1:Pt(St,ft,pt,Nt,Rt);if(typeof ft=="number")return ft=ft&255,typeof Uint8Array.prototype.indexOf=="function"?Rt?Uint8Array.prototype.indexOf.call(St,ft,pt):Uint8Array.prototype.lastIndexOf.call(St,ft,pt):Pt(St,[ft],pt,Nt,Rt);throw new TypeError("val must be string, number or Buffer")}function Pt(St,ft,pt,Nt,Rt){let $t=1,Qt=St.length,gr=ft.length;if(Nt!==void 0&&(Nt=String(Nt).toLowerCase(),Nt==="ucs2"||Nt==="ucs-2"||Nt==="utf16le"||Nt==="utf-16le")){if(St.length<2||ft.length<2)return-1;$t=2,Qt/=2,gr/=2,pt/=2}function Nr(Cr,dr){return $t===1?Cr[dr]:Cr.readUInt16BE(dr*$t)}let vr;if(Rt){let Cr=-1;for(vr=pt;vr<Qt;vr++)if(Nr(St,vr)===Nr(ft,Cr===-1?0:vr-Cr)){if(Cr===-1&&(Cr=vr),vr-Cr+1===gr)return Cr*$t}else Cr!==-1&&(vr-=vr-Cr),Cr=-1}else for(pt+gr>Qt&&(pt=Qt-gr),vr=pt;vr>=0;vr--){let Cr=!0;for(let dr=0;dr<gr;dr++)if(Nr(St,vr+dr)!==Nr(ft,dr)){Cr=!1;break}if(Cr)return vr}return-1}nt.prototype.includes=function(ft,pt,Nt){return this.indexOf(ft,pt,Nt)!==-1},nt.prototype.indexOf=function(ft,pt,Nt){return Tt(this,ft,pt,Nt,!0)},nt.prototype.lastIndexOf=function(ft,pt,Nt){return Tt(this,ft,pt,Nt,!1)};function At(St,ft,pt,Nt){pt=Number(pt)||0;const Rt=St.length-pt;Nt?(Nt=Number(Nt),Nt>Rt&&(Nt=Rt)):Nt=Rt;const $t=ft.length;Nt>$t/2&&(Nt=$t/2);let Qt;for(Qt=0;Qt<Nt;++Qt){const gr=parseInt(ft.substr(Qt*2,2),16);if(fr(gr))return Qt;St[pt+Qt]=gr}return Qt}function Gt(St,ft,pt,Nt){return Rr(kr(ft,St.length-pt),St,pt,Nt)}function Mt(St,ft,pt,Nt){return Rr(Pr(ft),St,pt,Nt)}function zt(St,ft,pt,Nt){return Rr(Vr(ft),St,pt,Nt)}function Jt(St,ft,pt,Nt){return Rr(Dr(ft,St.length-pt),St,pt,Nt)}nt.prototype.write=function(ft,pt,Nt,Rt){if(pt===void 0)Rt="utf8",Nt=this.length,pt=0;else if(Nt===void 0&&typeof pt=="string")Rt=pt,Nt=this.length,pt=0;else if(isFinite(pt))pt=pt>>>0,isFinite(Nt)?(Nt=Nt>>>0,Rt===void 0&&(Rt="utf8")):(Rt=Nt,Nt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const $t=this.length-pt;if((Nt===void 0||Nt>$t)&&(Nt=$t),ft.length>0&&(Nt<0||pt<0)||pt>this.length)throw new RangeError("Attempt to write outside buffer bounds");Rt||(Rt="utf8");let Qt=!1;for(;;)switch(Rt){case"hex":return At(this,ft,pt,Nt);case"utf8":case"utf-8":return Gt(this,ft,pt,Nt);case"ascii":case"latin1":case"binary":return Mt(this,ft,pt,Nt);case"base64":return zt(this,ft,pt,Nt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Jt(this,ft,pt,Nt);default:if(Qt)throw new TypeError("Unknown encoding: "+Rt);Rt=(""+Rt).toLowerCase(),Qt=!0}},nt.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function nr(St,ft,pt){return ft===0&&pt===St.length?s.fromByteArray(St):s.fromByteArray(St.slice(ft,pt))}function er(St,ft,pt){pt=Math.min(St.length,pt);const Nt=[];let Rt=ft;for(;Rt<pt;){const $t=St[Rt];let Qt=null,gr=$t>239?4:$t>223?3:$t>191?2:1;if(Rt+gr<=pt){let Nr,vr,Cr,dr;switch(gr){case 1:$t<128&&(Qt=$t);break;case 2:Nr=St[Rt+1],(Nr&192)===128&&(dr=($t&31)<<6|Nr&63,dr>127&&(Qt=dr));break;case 3:Nr=St[Rt+1],vr=St[Rt+2],(Nr&192)===128&&(vr&192)===128&&(dr=($t&15)<<12|(Nr&63)<<6|vr&63,dr>2047&&(dr<55296||dr>57343)&&(Qt=dr));break;case 4:Nr=St[Rt+1],vr=St[Rt+2],Cr=St[Rt+3],(Nr&192)===128&&(vr&192)===128&&(Cr&192)===128&&(dr=($t&15)<<18|(Nr&63)<<12|(vr&63)<<6|Cr&63,dr>65535&&dr<1114112&&(Qt=dr))}}Qt===null?(Qt=65533,gr=1):Qt>65535&&(Qt-=65536,Nt.push(Qt>>>10&1023|55296),Qt=56320|Qt&1023),Nt.push(Qt),Rt+=gr}return qt(Nt)}const ur=4096;function qt(St){const ft=St.length;if(ft<=ur)return String.fromCharCode.apply(String,St);let pt="",Nt=0;for(;Nt<ft;)pt+=String.fromCharCode.apply(String,St.slice(Nt,Nt+=ur));return pt}function or(St,ft,pt){let Nt="";pt=Math.min(St.length,pt);for(let Rt=ft;Rt<pt;++Rt)Nt+=String.fromCharCode(St[Rt]&127);return Nt}function Dt(St,ft,pt){let Nt="";pt=Math.min(St.length,pt);for(let Rt=ft;Rt<pt;++Rt)Nt+=String.fromCharCode(St[Rt]);return Nt}function Ht(St,ft,pt){const Nt=St.length;(!ft||ft<0)&&(ft=0),(!pt||pt<0||pt>Nt)&&(pt=Nt);let Rt="";for(let $t=ft;$t<pt;++$t)Rt+=Gr[St[$t]];return Rt}function Xt(St,ft,pt){const Nt=St.slice(ft,pt);let Rt="";for(let $t=0;$t<Nt.length-1;$t+=2)Rt+=String.fromCharCode(Nt[$t]+Nt[$t+1]*256);return Rt}nt.prototype.slice=function(ft,pt){const Nt=this.length;ft=~~ft,pt=pt===void 0?Nt:~~pt,ft<0?(ft+=Nt,ft<0&&(ft=0)):ft>Nt&&(ft=Nt),pt<0?(pt+=Nt,pt<0&&(pt=0)):pt>Nt&&(pt=Nt),pt<ft&&(pt=ft);const Rt=this.subarray(ft,pt);return Object.setPrototypeOf(Rt,nt.prototype),Rt};function Zt(St,ft,pt){if(St%1!==0||St<0)throw new RangeError("offset is not uint");if(St+ft>pt)throw new RangeError("Trying to access beyond buffer length")}nt.prototype.readUintLE=nt.prototype.readUIntLE=function(ft,pt,Nt){ft=ft>>>0,pt=pt>>>0,Nt||Zt(ft,pt,this.length);let Rt=this[ft],$t=1,Qt=0;for(;++Qt<pt&&($t*=256);)Rt+=this[ft+Qt]*$t;return Rt},nt.prototype.readUintBE=nt.prototype.readUIntBE=function(ft,pt,Nt){ft=ft>>>0,pt=pt>>>0,Nt||Zt(ft,pt,this.length);let Rt=this[ft+--pt],$t=1;for(;pt>0&&($t*=256);)Rt+=this[ft+--pt]*$t;return Rt},nt.prototype.readUint8=nt.prototype.readUInt8=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,1,this.length),this[ft]},nt.prototype.readUint16LE=nt.prototype.readUInt16LE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,2,this.length),this[ft]|this[ft+1]<<8},nt.prototype.readUint16BE=nt.prototype.readUInt16BE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,2,this.length),this[ft]<<8|this[ft+1]},nt.prototype.readUint32LE=nt.prototype.readUInt32LE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),(this[ft]|this[ft+1]<<8|this[ft+2]<<16)+this[ft+3]*16777216},nt.prototype.readUint32BE=nt.prototype.readUInt32BE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),this[ft]*16777216+(this[ft+1]<<16|this[ft+2]<<8|this[ft+3])},nt.prototype.readBigUInt64LE=Mr(function(ft){ft=ft>>>0,mr(ft,"offset");const pt=this[ft],Nt=this[ft+7];(pt===void 0||Nt===void 0)&&xr(ft,this.length-8);const Rt=pt+this[++ft]*2**8+this[++ft]*2**16+this[++ft]*2**24,$t=this[++ft]+this[++ft]*2**8+this[++ft]*2**16+Nt*2**24;return BigInt(Rt)+(BigInt($t)<<BigInt(32))}),nt.prototype.readBigUInt64BE=Mr(function(ft){ft=ft>>>0,mr(ft,"offset");const pt=this[ft],Nt=this[ft+7];(pt===void 0||Nt===void 0)&&xr(ft,this.length-8);const Rt=pt*2**24+this[++ft]*2**16+this[++ft]*2**8+this[++ft],$t=this[++ft]*2**24+this[++ft]*2**16+this[++ft]*2**8+Nt;return(BigInt(Rt)<<BigInt(32))+BigInt($t)}),nt.prototype.readIntLE=function(ft,pt,Nt){ft=ft>>>0,pt=pt>>>0,Nt||Zt(ft,pt,this.length);let Rt=this[ft],$t=1,Qt=0;for(;++Qt<pt&&($t*=256);)Rt+=this[ft+Qt]*$t;return $t*=128,Rt>=$t&&(Rt-=Math.pow(2,8*pt)),Rt},nt.prototype.readIntBE=function(ft,pt,Nt){ft=ft>>>0,pt=pt>>>0,Nt||Zt(ft,pt,this.length);let Rt=pt,$t=1,Qt=this[ft+--Rt];for(;Rt>0&&($t*=256);)Qt+=this[ft+--Rt]*$t;return $t*=128,Qt>=$t&&(Qt-=Math.pow(2,8*pt)),Qt},nt.prototype.readInt8=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,1,this.length),this[ft]&128?(255-this[ft]+1)*-1:this[ft]},nt.prototype.readInt16LE=function(ft,pt){ft=ft>>>0,pt||Zt(ft,2,this.length);const Nt=this[ft]|this[ft+1]<<8;return Nt&32768?Nt|4294901760:Nt},nt.prototype.readInt16BE=function(ft,pt){ft=ft>>>0,pt||Zt(ft,2,this.length);const Nt=this[ft+1]|this[ft]<<8;return Nt&32768?Nt|4294901760:Nt},nt.prototype.readInt32LE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),this[ft]|this[ft+1]<<8|this[ft+2]<<16|this[ft+3]<<24},nt.prototype.readInt32BE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),this[ft]<<24|this[ft+1]<<16|this[ft+2]<<8|this[ft+3]},nt.prototype.readBigInt64LE=Mr(function(ft){ft=ft>>>0,mr(ft,"offset");const pt=this[ft],Nt=this[ft+7];(pt===void 0||Nt===void 0)&&xr(ft,this.length-8);const Rt=this[ft+4]+this[ft+5]*2**8+this[ft+6]*2**16+(Nt<<24);return(BigInt(Rt)<<BigInt(32))+BigInt(pt+this[++ft]*2**8+this[++ft]*2**16+this[++ft]*2**24)}),nt.prototype.readBigInt64BE=Mr(function(ft){ft=ft>>>0,mr(ft,"offset");const pt=this[ft],Nt=this[ft+7];(pt===void 0||Nt===void 0)&&xr(ft,this.length-8);const Rt=(pt<<24)+this[++ft]*2**16+this[++ft]*2**8+this[++ft];return(BigInt(Rt)<<BigInt(32))+BigInt(this[++ft]*2**24+this[++ft]*2**16+this[++ft]*2**8+Nt)}),nt.prototype.readFloatLE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),a.read(this,ft,!0,23,4)},nt.prototype.readFloatBE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,4,this.length),a.read(this,ft,!1,23,4)},nt.prototype.readDoubleLE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,8,this.length),a.read(this,ft,!0,52,8)},nt.prototype.readDoubleBE=function(ft,pt){return ft=ft>>>0,pt||Zt(ft,8,this.length),a.read(this,ft,!1,52,8)};function It(St,ft,pt,Nt,Rt,$t){if(!nt.isBuffer(St))throw new TypeError('"buffer" argument must be a Buffer instance');if(ft>Rt||ft<$t)throw new RangeError('"value" argument is out of bounds');if(pt+Nt>St.length)throw new RangeError("Index out of range")}nt.prototype.writeUintLE=nt.prototype.writeUIntLE=function(ft,pt,Nt,Rt){if(ft=+ft,pt=pt>>>0,Nt=Nt>>>0,!Rt){const gr=Math.pow(2,8*Nt)-1;It(this,ft,pt,Nt,gr,0)}let $t=1,Qt=0;for(this[pt]=ft&255;++Qt<Nt&&($t*=256);)this[pt+Qt]=ft/$t&255;return pt+Nt},nt.prototype.writeUintBE=nt.prototype.writeUIntBE=function(ft,pt,Nt,Rt){if(ft=+ft,pt=pt>>>0,Nt=Nt>>>0,!Rt){const gr=Math.pow(2,8*Nt)-1;It(this,ft,pt,Nt,gr,0)}let $t=Nt-1,Qt=1;for(this[pt+$t]=ft&255;--$t>=0&&(Qt*=256);)this[pt+$t]=ft/Qt&255;return pt+Nt},nt.prototype.writeUint8=nt.prototype.writeUInt8=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,1,255,0),this[pt]=ft&255,pt+1},nt.prototype.writeUint16LE=nt.prototype.writeUInt16LE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,2,65535,0),this[pt]=ft&255,this[pt+1]=ft>>>8,pt+2},nt.prototype.writeUint16BE=nt.prototype.writeUInt16BE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,2,65535,0),this[pt]=ft>>>8,this[pt+1]=ft&255,pt+2},nt.prototype.writeUint32LE=nt.prototype.writeUInt32LE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,4,4294967295,0),this[pt+3]=ft>>>24,this[pt+2]=ft>>>16,this[pt+1]=ft>>>8,this[pt]=ft&255,pt+4},nt.prototype.writeUint32BE=nt.prototype.writeUInt32BE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,4,4294967295,0),this[pt]=ft>>>24,this[pt+1]=ft>>>16,this[pt+2]=ft>>>8,this[pt+3]=ft&255,pt+4};function Bt(St,ft,pt,Nt,Rt){Kt(ft,Nt,Rt,St,pt,7);let $t=Number(ft&BigInt(4294967295));St[pt++]=$t,$t=$t>>8,St[pt++]=$t,$t=$t>>8,St[pt++]=$t,$t=$t>>8,St[pt++]=$t;let Qt=Number(ft>>BigInt(32)&BigInt(4294967295));return St[pt++]=Qt,Qt=Qt>>8,St[pt++]=Qt,Qt=Qt>>8,St[pt++]=Qt,Qt=Qt>>8,St[pt++]=Qt,pt}function rr(St,ft,pt,Nt,Rt){Kt(ft,Nt,Rt,St,pt,7);let $t=Number(ft&BigInt(4294967295));St[pt+7]=$t,$t=$t>>8,St[pt+6]=$t,$t=$t>>8,St[pt+5]=$t,$t=$t>>8,St[pt+4]=$t;let Qt=Number(ft>>BigInt(32)&BigInt(4294967295));return St[pt+3]=Qt,Qt=Qt>>8,St[pt+2]=Qt,Qt=Qt>>8,St[pt+1]=Qt,Qt=Qt>>8,St[pt]=Qt,pt+8}nt.prototype.writeBigUInt64LE=Mr(function(ft,pt=0){return Bt(this,ft,pt,BigInt(0),BigInt("0xffffffffffffffff"))}),nt.prototype.writeBigUInt64BE=Mr(function(ft,pt=0){return rr(this,ft,pt,BigInt(0),BigInt("0xffffffffffffffff"))}),nt.prototype.writeIntLE=function(ft,pt,Nt,Rt){if(ft=+ft,pt=pt>>>0,!Rt){const Nr=Math.pow(2,8*Nt-1);It(this,ft,pt,Nt,Nr-1,-Nr)}let $t=0,Qt=1,gr=0;for(this[pt]=ft&255;++$t<Nt&&(Qt*=256);)ft<0&&gr===0&&this[pt+$t-1]!==0&&(gr=1),this[pt+$t]=(ft/Qt>>0)-gr&255;return pt+Nt},nt.prototype.writeIntBE=function(ft,pt,Nt,Rt){if(ft=+ft,pt=pt>>>0,!Rt){const Nr=Math.pow(2,8*Nt-1);It(this,ft,pt,Nt,Nr-1,-Nr)}let $t=Nt-1,Qt=1,gr=0;for(this[pt+$t]=ft&255;--$t>=0&&(Qt*=256);)ft<0&&gr===0&&this[pt+$t+1]!==0&&(gr=1),this[pt+$t]=(ft/Qt>>0)-gr&255;return pt+Nt},nt.prototype.writeInt8=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,1,127,-128),ft<0&&(ft=255+ft+1),this[pt]=ft&255,pt+1},nt.prototype.writeInt16LE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,2,32767,-32768),this[pt]=ft&255,this[pt+1]=ft>>>8,pt+2},nt.prototype.writeInt16BE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,2,32767,-32768),this[pt]=ft>>>8,this[pt+1]=ft&255,pt+2},nt.prototype.writeInt32LE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,4,2147483647,-2147483648),this[pt]=ft&255,this[pt+1]=ft>>>8,this[pt+2]=ft>>>16,this[pt+3]=ft>>>24,pt+4},nt.prototype.writeInt32BE=function(ft,pt,Nt){return ft=+ft,pt=pt>>>0,Nt||It(this,ft,pt,4,2147483647,-2147483648),ft<0&&(ft=4294967295+ft+1),this[pt]=ft>>>24,this[pt+1]=ft>>>16,this[pt+2]=ft>>>8,this[pt+3]=ft&255,pt+4},nt.prototype.writeBigInt64LE=Mr(function(ft,pt=0){return Bt(this,ft,pt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),nt.prototype.writeBigInt64BE=Mr(function(ft,pt=0){return rr(this,ft,pt,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function lr(St,ft,pt,Nt,Rt,$t){if(pt+Nt>St.length)throw new RangeError("Index out of range");if(pt<0)throw new RangeError("Index out of range")}function pr(St,ft,pt,Nt,Rt){return ft=+ft,pt=pt>>>0,Rt||lr(St,ft,pt,4),a.write(St,ft,pt,Nt,23,4),pt+4}nt.prototype.writeFloatLE=function(ft,pt,Nt){return pr(this,ft,pt,!0,Nt)},nt.prototype.writeFloatBE=function(ft,pt,Nt){return pr(this,ft,pt,!1,Nt)};function tr(St,ft,pt,Nt,Rt){return ft=+ft,pt=pt>>>0,Rt||lr(St,ft,pt,8),a.write(St,ft,pt,Nt,52,8),pt+8}nt.prototype.writeDoubleLE=function(ft,pt,Nt){return tr(this,ft,pt,!0,Nt)},nt.prototype.writeDoubleBE=function(ft,pt,Nt){return tr(this,ft,pt,!1,Nt)},nt.prototype.copy=function(ft,pt,Nt,Rt){if(!nt.isBuffer(ft))throw new TypeError("argument should be a Buffer");if(Nt||(Nt=0),!Rt&&Rt!==0&&(Rt=this.length),pt>=ft.length&&(pt=ft.length),pt||(pt=0),Rt>0&&Rt<Nt&&(Rt=Nt),Rt===Nt||ft.length===0||this.length===0)return 0;if(pt<0)throw new RangeError("targetStart out of bounds");if(Nt<0||Nt>=this.length)throw new RangeError("Index out of range");if(Rt<0)throw new RangeError("sourceEnd out of bounds");Rt>this.length&&(Rt=this.length),ft.length-pt<Rt-Nt&&(Rt=ft.length-pt+Nt);const $t=Rt-Nt;return this===ft&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(pt,Nt,Rt):Uint8Array.prototype.set.call(ft,this.subarray(Nt,Rt),pt),$t},nt.prototype.fill=function(ft,pt,Nt,Rt){if(typeof ft=="string"){if(typeof pt=="string"?(Rt=pt,pt=0,Nt=this.length):typeof Nt=="string"&&(Rt=Nt,Nt=this.length),Rt!==void 0&&typeof Rt!="string")throw new TypeError("encoding must be a string");if(typeof Rt=="string"&&!nt.isEncoding(Rt))throw new TypeError("Unknown encoding: "+Rt);if(ft.length===1){const Qt=ft.charCodeAt(0);(Rt==="utf8"&&Qt<128||Rt==="latin1")&&(ft=Qt)}}else typeof ft=="number"?ft=ft&255:typeof ft=="boolean"&&(ft=Number(ft));if(pt<0||this.length<pt||this.length<Nt)throw new RangeError("Out of range index");if(Nt<=pt)return this;pt=pt>>>0,Nt=Nt===void 0?this.length:Nt>>>0,ft||(ft=0);let $t;if(typeof ft=="number")for($t=pt;$t<Nt;++$t)this[$t]=ft;else{const Qt=nt.isBuffer(ft)?ft:nt.from(ft,Rt),gr=Qt.length;
vendor: 4,710 bytes, line 861
861if(gr===0)throw new TypeError('The value "'+ft+'" is invalid for argument "value"');for($t=0;$t<Nt-pt;++$t)this[$t+pt]=Qt[$t%gr]}return this};const hr={};function Vt(St,ft,pt){hr[St]=class extends pt{constructor(){super(),Object.defineProperty(this,"message",{value:ft.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${St}]`,this.stack,delete this.name}get code(){return St}set code(Rt){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:Rt,writable:!0})}toString(){return`${this.name} [${St}]: ${this.message}`}}}Vt("ERR_BUFFER_OUT_OF_BOUNDS",function(St){return St?`${St} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Vt("ERR_INVALID_ARG_TYPE",function(St,ft){return`The "${St}" argument must be of type number. Received type ${typeof ft}`},TypeError),Vt("ERR_OUT_OF_RANGE",function(St,ft,pt){let Nt=`The value of "${St}" is out of range.`,Rt=pt;return Number.isInteger(pt)&&Math.abs(pt)>2**32?Rt=sr(String(pt)):typeof pt=="bigint"&&(Rt=String(pt),(pt>BigInt(2)**BigInt(32)||pt<-(BigInt(2)**BigInt(32)))&&(Rt=sr(Rt)),Rt+="n"),Nt+=` It must be ${ft}. Received ${Rt}`,Nt},RangeError);function sr(St){let ft="",pt=St.length;const Nt=St[0]==="-"?1:0;for(;pt>=Nt+4;pt-=3)ft=`_${St.slice(pt-3,pt)}${ft}`;return`${St.slice(0,pt)}${ft}`}function Lt(St,ft,pt){mr(ft,"offset"),(St[ft]===void 0||St[ft+pt]===void 0)&&xr(ft,St.length-(pt+1))}function Kt(St,ft,pt,Nt,Rt,$t){if(St>pt||St<ft){const Qt=typeof ft=="bigint"?"n":"";let gr;throw ft===0||ft===BigInt(0)?gr=`>= 0${Qt} and < 2${Qt} ** ${($t+1)*8}${Qt}`:gr=`>= -(2${Qt} ** ${($t+1)*8-1}${Qt}) and < 2 ** ${($t+1)*8-1}${Qt}`,new hr.ERR_OUT_OF_RANGE("value",gr,St)}Lt(Nt,Rt,$t)}function mr(St,ft){if(typeof St!="number")throw new hr.ERR_INVALID_ARG_TYPE(ft,"number",St)}function xr(St,ft,pt){throw Math.floor(St)!==St?(mr(St,pt),new hr.ERR_OUT_OF_RANGE("offset","an integer",St)):ft<0?new hr.ERR_BUFFER_OUT_OF_BOUNDS:new hr.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${ft}`,St)}const cr=/[^+/0-9A-Za-z-_]/g;function jr(St){if(St=St.split("=")[0],St=St.trim().replace(cr,""),St.length<2)return"";for(;St.length%4!==0;)St=St+"=";return St}function kr(St,ft){ft=ft||1/0;let pt;const Nt=St.length;let Rt=null;const $t=[];for(let Qt=0;Qt<Nt;++Qt){if(pt=St.charCodeAt(Qt),pt>55295&&pt<57344){if(!Rt){if(pt>56319){(ft-=3)>-1&&$t.push(239,191,189);continue}else if(Qt+1===Nt){(ft-=3)>-1&&$t.push(239,191,189);continue}Rt=pt;continue}if(pt<56320){(ft-=3)>-1&&$t.push(239,191,189),Rt=pt;continue}pt=(Rt-55296<<10|pt-56320)+65536}else Rt&&(ft-=3)>-1&&$t.push(239,191,189);if(Rt=null,pt<128){if((ft-=1)<0)break;$t.push(pt)}else if(pt<2048){if((ft-=2)<0)break;$t.push(pt>>6|192,pt&63|128)}else if(pt<65536){if((ft-=3)<0)break;$t.push(pt>>12|224,pt>>6&63|128,pt&63|128)}else if(pt<1114112){if((ft-=4)<0)break;$t.push(pt>>18|240,pt>>12&63|128,pt>>6&63|128,pt&63|128)}else throw new Error("Invalid code point")}return $t}function Pr(St){const ft=[];for(let pt=0;pt<St.length;++pt)ft.push(St.charCodeAt(pt)&255);return ft}function Dr(St,ft){let pt,Nt,Rt;const $t=[];for(let Qt=0;Qt<St.length&&!((ft-=2)<0);++Qt)pt=St.charCodeAt(Qt),Nt=pt>>8,Rt=pt%256,$t.push(Rt),$t.push(Nt);return $t}function Vr(St){return s.toByteArray(jr(St))}function Rr(St,ft,pt,Nt){let Rt;for(Rt=0;Rt<Nt&&!(Rt+pt>=ft.length||Rt>=St.length);++Rt)ft[Rt+pt]=St[Rt];return Rt}function Tr(St,ft){return St instanceof ft||St!=null&&St.constructor!=null&&St.constructor.name!=null&&St.constructor.name===ft.name}function fr(St){return St!==St}const Gr=function(){const St="0123456789abcdef",ft=new Array(256);for(let pt=0;pt<16;++pt){const Nt=pt*16;for(let Rt=0;Rt<16;++Rt)ft[Nt+Rt]=St[pt]+St[Rt]}return ft}();function Mr(St){return typeof BigInt>"u"?Fr:St}function Fr(){throw new Error("BigInt not supported")}})(buffer);window.Buffer=buffer.Buffer;const newsImageModules=Object.assign({"/src/assets/news/2026_apply.webp":__vite_glob_0_0$1,"/src/assets/news/2026_open.webp":__vite_glob_0_1$1,"/src/assets/news/academy_24_news.webp":__vite_glob_0_2$1,"/src/assets/news/academy_25_news.webp":__vite_glob_0_3$1}),getImageUrl=e=>{const s=e.replace(/\.(?:jpe?g|png)$/i,".webp"),a=newsImageModules[`/src/assets/news/${s}`];return a||console.warn(`Could not load image: ${e}`),a??""},articleModules=Object.assign({"/src/pages/articles/2026_apply.md":__vite_glob_1_0,"/src/pages/articles/2027_applications_open.md":__vite_glob_1_1,"/src/pages/articles/README.md":__vite_glob_1_2,"/src/pages/articles/_template.md":__vite_glob_1_3,"/src/pages/articles/academy_2024.md":__vite_glob_1_4,"/src/pages/articles/academy_2025.md":__vite_glob_1_5}),parseArticles=()=>{const e=[];console.log("Found article files:",Object.keys(articleModules));
861try{Object.entries(articleModules).forEach(([s,a])=>{var g;const c=((g=s.split("/").pop())==null?void 0:g.replace(".md",""))||"";if(c.startsWith("_")||c.toLowerCase().includes("readme")){console.log(`Skipping ${c}`);return}console.log(`Processing article: ${c}, content length: ${typeof a=="string"?a.length:0}`);try{const{data:et,content:rt}=matter$1(a);if(et.hidden)return;if(!et.title||!et.date||!et.excerpt){console.warn(`Article ${c} missing required frontmatter fields`);return}e.push({id:c,slug:c,title:et.title,date:et.date,readTime:et.readTime||"3 min read",image:getImageUrl(et.image),excerpt:et.excerpt,category:et.category||"General",content:rt,subtitle:et.subtitle,location:et.location,participants:et.participants,theme:et.theme,canonicalPath:et.canonicalPath})}catch(et){console.error(`Error parsing article ${c}:`,et)}})}catch(s){console.error("Error loading articles:",s)}return e.sort((s,a)=>new Date(a.date).getTime()-new Date(s.date).getTime())},newsArticles=parseArticles();console.log("Loaded articles:",newsArticles.length);newsArticles.forEach(e=>{console.log("Article:",e.title,"Date:",e.date)});const getLatestArticles=(e=2)=>newsArticles.slice(0,e),getArticleBySlug=e=>newsArticles.find(s=>s.slug===e),getArticlePath=e=>e.canonicalPath||`/news/${e.slug}`,slugifyHeading=e=>e.toLowerCase().replace(/&/g,"and").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,""),getArticleHTMLContent=e=>{const s=newsArticles.find(c=>c.id===e);if(!s||!s.content)return"<p>Content not found.</p>";const a=new P;return a.heading=({tokens:c,depth:g})=>{const et=a.parser.parseInline(c),rt=slugifyHeading(et.replace(/<[^>]*>/g,""));return`<h${g} id="${rt}">${et}</h${g}>`},d(s.content,{renderer:a})},eafConnect="data:image/svg+xml,%3csvg%20enable-background='new%200%200%2064%2064'%20height='512'%20viewBox='0%200%2064%2064'%20width='512'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Layer_3'%3e%3cg%3e%3cg%20id='ARC_424_'%3e%3cg%3e%3cpath%20d='m14.186%2042.406c-.047%200-.095-.003-.144-.01-2.285-.33-4.477-1.047-6.513-2.132-.487-.26-.672-.866-.412-1.354.261-.486.864-.671%201.354-.412%201.83.977%203.801%201.621%205.856%201.917.547.079.926.586.848%201.133-.072.499-.5.858-.989.858z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_423_'%3e%3cg%3e%3cpath%20d='m49.814%2042.406c-.489%200-.917-.359-.989-.857-.078-.547.301-1.054.848-1.133%202.056-.296%204.026-.94%205.856-1.917.491-.259%201.093-.074%201.354.412.26.487.075%201.094-.412%201.354-2.036%201.085-4.228%201.802-6.513%202.132-.049.006-.097.009-.144.009z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_422_'%3e%3cg%3e%3cpath%20d='m39.354%2033.429c-.188%200-.377-.053-.545-.162-.463-.302-.594-.921-.292-1.384%201.417-2.173%203.811-3.471%206.405-3.471.553%200%201%20.447%201%201s-.447%201-1%201c-1.916%200-3.684.958-4.729%202.563-.191.294-.511.454-.839.454z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='CIRCLE_38_'%3e%3cg%3e%3cpath%20d='m47.139%2030.412c-3.545%200-6.539-2.994-6.539-6.538s2.994-6.538%206.539-6.538c3.544%200%206.538%202.994%206.538%206.538s-2.994%206.538-6.538%206.538zm0-11.076c-2.46%200-4.539%202.078-4.539%204.538s2.079%204.538%204.539%204.538%204.538-2.078%204.538-4.538-2.078-4.538-4.538-4.538z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_421_'%3e%3cg%3e%3cpath%20d='m56%2037.059c-.553%200-1-.447-1-1%200-3.113-2.533-5.646-5.646-5.646-.553%200-1-.447-1-1s.447-1%201-1c4.216%200%207.646%203.431%207.646%207.646%200%20.552-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_818_'%3e%3cg%3e%3cpath%20d='m49.354%2030.412h-4.431c-.553%200-1-.447-1-1s.447-1%201-1h4.431c.553%200%201%20.447%201%201s-.448%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_817_'%3e%3cg%3e%3cpath%20d='m56%2040.382c-.553%200-1-.447-1-1v-3.323c0-.553.447-1%201-1s1%20.447%201%201v3.323c0%20.553-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_420_'%3e%3cg%3e%3cpath%20d='m20.185%2041.12c-.553%200-1-.447-1-1%200-5.438%204.424-9.861%209.861-9.861.553%200%201%20.447%201%201s-.447%201-1%201c-4.335%200-7.861%203.526-7.861%207.861%200%20.553-.448%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_816_'%3e%3cg%3e%3cpath%20d='m34.954%2032.259h-5.908c-.553%200-1-.447-1-1s.447-1%201-1h5.908c.553%200%201%20.447%201%201s-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_419_'%3e%3cg%3e%3cpath%20d='m24.646%2033.429c-.327%200-.647-.16-.839-.454-1.046-1.604-2.813-2.563-4.729-2.563-.553%200-1-.447-1-1s.447-1%201-1c2.595%200%204.988%201.298%206.405%203.471.302.463.171%201.082-.292%201.384-.169.109-.358.162-.545.162z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_815_'%3e%3cg%3e%3cpath%20d='m20.185%2045.551c-.553%200-1-.447-1-1v-4.431c0-.553.447-1%201-1s1%20.447%201%201v4.431c0%20.553-.448%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='CIRCLE_37_'%3e%3cg%3e%3cpath%20d='m32%2032.259c-4.545%200-8.385-3.84-8.385-8.385s3.84-8.385%208.385-8.385%208.385%203.84%208.385%208.385-3.84%208.385-8.385%208.385zm0-14.77c-3.461%200-6.385%202.924-6.385%206.385s2.924%206.385%206.385%206.385%206.385-2.924%206.385-6.385-2.924-6.385-6.385-6.385z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_418_'%3e%3cg%3e%3cpath%20d='m43.815%2041.12c-.553%200-1-.447-1-1%200-4.335-3.526-7.861-7.861-7.861-.553%200-1-.447-1-1s.447-1%201-1c5.438%200%209.861%204.424%209.8
86161%209.861%200%20.553-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_814_'%3e%3cg%3e%3cpath%20d='m43.815%2045.551c-.553%200-1-.447-1-1v-4.431c0-.553.447-1%201-1s1%20.447%201%201v4.431c0%20.553-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_417_'%3e%3cg%3e%3cpath%20d='m32%2048.511c-4.22%200-8.439-1.026-12.286-3.077-.487-.261-.672-.866-.412-1.354.261-.486.863-.671%201.354-.412%207.104%203.789%2015.586%203.789%2022.689%200%20.49-.259%201.094-.074%201.354.412.26.487.075%201.093-.412%201.354-3.848%202.05-8.067%203.077-12.287%203.077z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='CIRCLE_36_'%3e%3cg%3e%3cpath%20d='m16.861%2030.412c-3.544%200-6.538-2.994-6.538-6.538s2.994-6.538%206.538-6.538%206.538%202.994%206.538%206.538-2.994%206.538-6.538%206.538zm0-11.076c-2.46%200-4.538%202.078-4.538%204.538s2.078%204.538%204.538%204.538%204.538-2.078%204.538-4.538-2.078-4.538-4.538-4.538z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='ARC_416_'%3e%3cg%3e%3cpath%20d='m8%2037.059c-.553%200-1-.447-1-1%200-4.216%203.431-7.646%207.646-7.646.553%200%201%20.447%201%201s-.447%201-1%201c-3.113-.001-5.646%202.532-5.646%205.646%200%20.552-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_813_'%3e%3cg%3e%3cpath%20d='m19.077%2030.412h-4.431c-.553%200-1-.447-1-1s.447-1%201-1h4.431c.553%200%201%20.447%201%201s-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3cg%20id='LINE_812_'%3e%3cg%3e%3cpath%20d='m8%2040.382c-.553%200-1-.447-1-1v-3.323c0-.553.447-1%201-1s1%20.447%201%201v3.323c0%20.553-.447%201-1%201z'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",eafSpread="/assets/eaf_spread-C5CPm14K.svg",academy2025Image="/assets/2025_academy_preview-C6ZpIopN.webp",mentorsBackdrop="/assets/mentors_backdrop-BhM3lBFa.webp",applyBackdrop="/assets/apply_backdrop-DnKKL6kB.webp",pillars=[{number:"I",title:"Academic Retreats",body:"Regular, fully funded academic retreats that allow fellows to broaden their horizons and meet other fellows from across Europe.",Icon:Compass,image:academy2025Image},{number:"II",title:"Mentorship",body:"Meaningful mentorship by pairing fellows with world-class academics who provide close guidance and support throughout their studies.",Icon:Users,image:mentorsBackdrop},{number:"III",title:"Financial Support",body:"Project-based financial support so fellows can pursue joint initiatives, plus grants that promote equal access to academic opportunities.",Icon:Sprout,image:applyBackdrop}],Home=()=>{const e=getLatestArticles(3),[s,a]=reactExports.useState(0),c=pillars[s];return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas",children:[jsxRuntimeExports.jsx(Hero,{}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"About the Foundation",subtitle:"We connect and support exceptional students from across Europe."}),jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 lg:gap-16 items-center",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-5 md:space-y-6",children:[jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-base md:text-xl leading-relaxed text-ink/80",children:"The European Academic Foundation (EAF) is a volunteer-run non-profit organization that connects and supports outstanding individuals through its fellowship program."}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-base md:text-xl leading-relaxed text-ink/80",children:"This effort rests on the belief that groups of exceptional individuals can make outsized positive contributions to society, and we work to help our fellows realize that potential."}),jsxRuntimeExports.jsxs(Link,{to:"/about",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 w-fit transition-colors",children:["Learn more about us",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid sm:grid-cols-2 gap-5 md:gap-6",children:[jsxRuntimeExports.jsx(EditorialTile,{icon:eafConnect,label:"Connected Europe",body:"We create a close network to exchange experiences and ideas."}),jsxRuntimeExports.jsx(EditorialTile,{icon:eafSpread,label:"Multiplied Impact",body:"We empower exceptional individuals to make outsized positive change."})]})]})]}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"The Fellowship Program",subtitle:"Three pillars of support for exceptional students across all disciplines"}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-5 ga
861p-8 md:gap-10 lg:gap-14 items-stretch",children:[jsxRuntimeExports.jsx("ul",{className:"md:col-span-2 flex flex-col border-t border-border",children:pillars.map((g,et)=>{const rt=et===s;return jsxRuntimeExports.jsx("li",{className:"border-b border-border",children:jsxRuntimeExports.jsxs("button",{type:"button",onMouseEnter:()=>a(et),onFocus:()=>a(et),onClick:()=>a(et),className:`w-full flex items-center justify-between gap-3 py-5 md:py-6 text-left transition-colors ${rt?"text-ink":"text-ink/50 hover:text-ink/80"}`,"aria-pressed":rt,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 sm:gap-5 min-w-0",children:[jsxRuntimeExports.jsx("span",{className:"text-[11px] tracking-[0.18em] uppercase text-ink/40 w-5 sm:w-6 flex-shrink-0",children:g.number}),jsxRuntimeExports.jsx(g.Icon,{className:`h-5 w-5 flex-shrink-0 transition-colors ${rt?"text-ink/70":"text-ink/30"}`,strokeWidth:1.25}),jsxRuntimeExports.jsx("span",{className:"font-serif text-xl sm:text-2xl md:text-[1.75rem] leading-[1.15]",children:g.title})]}),jsxRuntimeExports.jsx(ArrowRight,{className:`h-4 w-4 flex-shrink-0 transition-all ${rt?"opacity-100 translate-x-0":"opacity-0 -translate-x-2"}`})]})},g.title)})}),jsxRuntimeExports.jsxs("div",{className:"md:col-span-3 relative aspect-[4/3] md:aspect-auto md:h-full overflow-hidden bg-canvas-deep",children:[pillars.map((g,et)=>jsxRuntimeExports.jsx("img",{src:g.image,alt:g.title,loading:"lazy",className:`absolute inset-0 w-full h-full object-cover transition-opacity duration-300 ${et===s?"opacity-100":"opacity-0"}`,style:{zIndex:1}},g.title)),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 pointer-events-none",style:{zIndex:2,backgroundColor:"hsl(var(--canvas) / 0.72)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:3,opacity:.85}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-10 flex flex-col justify-end p-6 sm:p-8 md:p-10",children:jsxRuntimeExports.jsx("p",{className:"text-sm sm:text-base md:text-lg text-ink/75 leading-relaxed max-w-md",children:c.body})})]})]}),jsxRuntimeExports.jsx("div",{className:"text-center mt-12 md:mt-16",children:jsxRuntimeExports.jsxs(Link,{to:"/fellowship",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Explore the Fellowship",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})})]}),jsxRuntimeExports.jsxs(Section,{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-end justify-between mb-10 md:mb-14 flex-wrap gap-6",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl md:text-4xl lg:text-5xl leading-[1.08] tracking-tight",children:"News from the EAF"}),jsxRuntimeExports.jsx(Button,{variant:"link",asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/news",className:"flex items-center gap-2",children:["View All ",jsxRuntimeExports.jsx(ArrowRight,{className:"h-4 w-4"})]})})]}),jsxRuntimeExports.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-8 md:gap-10",children:e.map(g=>jsxRuntimeExports.jsxs(Link,{to:getArticlePath(g),className:"group flex flex-col gap-5",children:[jsxRuntimeExports.jsx("div",{className:"aspect-[4/3] overflow-hidden bg-canvas-soft relative grain-heavy",children:jsxRuntimeExports.jsx("img",{src:g.image,alt:g.title,className:"w-full h-full object-cover transition-all duration-150"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4 text-xs tracking-[0.12em] uppercase text-ink/50 mb-3",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-3 w-3"})," ",g.date]}),jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(Clock,{className:"h-3 w-3"})," ",g.readTime]})]}),jsxRuntimeExports.jsx("h3",{className:"font-serif font-normal text-2xl leading-[1.15] text-ink group-hover:text-ink/70 transition-colors",children:g.title}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm text-ink/60 leading-relaxed line-clamp-3",children:g.excerpt})]})]},g.slug))})]}),jsxRuntimeExports.jsx(Section,{variant:"primary",grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl leading-[1.05] tracking-tight",children:"Ready to Join Our Community?"}),jsxRuntimeExports.jsx("p",{className:"mt-6 md:mt-8 text-base md:text-xl text-canvas/70 leading-relaxed",children:"Applications for the 2027 cohort are now open. Join Europe's most talented and ambitious students in shaping the future of our continent."}),jsxRuntimeExports.jsxs("div",{className:"mt-10 md:mt-12 flex flex-col sm:flex-row gap-6 sm:gap-8 justify-center items-center",children:[jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas border-b border-canvas/50 hover:border-canvas pb-1 transition-colors",children:["Apply Now",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]}),jsxRuntimeExports.jsxs(Link,{to:"/cohorts",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas/80 border-b border-canvas/30 hover:border-canvas/70 hover:text-canvas pb-1 transition-colors",children:["Meet Our Fellows",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})})]})},EditorialTile=({icon:e,label:s,body:a})=>jsxRuntimeExports.jsxs("div",{className:"relative bg-canvas border border-border p-8 flex flex-col gap-4 shadow-card",children:[jsxRuntimeExports.jsx("img",{src:e,alt:"",className:"h-12 w-12",style:{filter:"invert(9%) sepia(77%) saturate(3568%) hue-rotate(221deg) brightness(40%) contrast(110%)"}}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl text-ink",children:s}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60 leading-relaxed",children:a})]});var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=reactExports.forwardRef((e,s)=>{const{loop:a=!1,trapped:c=!1,onMountAutoFocus:g,onUnmountAutoFocus:et,...rt}=e,[nt,st]=reactExports.useState(null),at=useCallbackRef$1(g),it=useCallbackRef$1(et),ot=reactExports.useRef(null),lt=useComposedRefs(s,ut=>st(ut)),ct=reactExports.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;reactExports.useEffect(()=>{if(c){let ut=function(mt){if(ct.paused||!nt)return;const kt=mt.target;nt.contains(kt)?ot.current=kt:focus(ot.current,{select:!0})},xt=function(mt){if(ct.paused||!nt)return;const kt=mt.relatedTarget;kt!==null&&(nt.contains(kt)||focus(ot.current,{select:!0}))},gt=function(mt){if(document.activeElement===document.body)for(const Ct of mt)Ct.removedNodes.length>0&&focus(nt)};document.addEventListener("focusin",ut),document.addEventListener("focusout",xt);const ht=new MutationObserver(gt);return nt&&ht.observe(nt,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",ut),document.removeEventListener("focusout",xt),ht.disconnect()}}},[c,nt,ct.paused]),reactExports.useEffect(()=>
vendor: 5,589 bytes, line 861
861{if(nt){focusScopesStack.add(ct);const ut=document.activeElement;if(!nt.contains(ut)){const gt=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS);nt.addEventListener(AUTOFOCUS_ON_MOUNT,at),nt.dispatchEvent(gt),gt.defaultPrevented||(focusFirst(removeLinks(getTabbableCandidates(nt)),{select:!0}),document.activeElement===ut&&focus(nt))}return()=>{nt.removeEventListener(AUTOFOCUS_ON_MOUNT,at),setTimeout(()=>{const gt=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS);nt.addEventListener(AUTOFOCUS_ON_UNMOUNT,it),nt.dispatchEvent(gt),gt.defaultPrevented||focus(ut??document.body,{select:!0}),nt.removeEventListener(AUTOFOCUS_ON_UNMOUNT,it),focusScopesStack.remove(ct)},0)}}},[nt,at,it,ct]);const dt=reactExports.useCallback(ut=>{if(!a&&!c||ct.paused)return;const xt=ut.key==="Tab"&&!ut.altKey&&!ut.ctrlKey&&!ut.metaKey,gt=document.activeElement;if(xt&>){const ht=ut.currentTarget,[mt,kt]=getTabbableEdges(ht);mt&&kt?!ut.shiftKey&>===kt?(ut.preventDefault(),a&&focus(mt,{select:!0})):ut.shiftKey&>===mt&&(ut.preventDefault(),a&&focus(kt,{select:!0})):gt===ht&&ut.preventDefault()}},[a,c,ct.paused]);return jsxRuntimeExports.jsx(Primitive.div,{tabIndex:-1,...rt,ref:lt,onKeyDown:dt})});FocusScope.displayName=FOCUS_SCOPE_NAME;function focusFirst(e,{select:s=!1}={}){const a=document.activeElement;for(const c of e)if(focus(c,{select:s}),document.activeElement!==a)return}function getTabbableEdges(e){const s=getTabbableCandidates(e),a=findVisible(s,e),c=findVisible(s.reverse(),e);return[a,c]}function getTabbableCandidates(e){const s=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:c=>{const g=c.tagName==="INPUT"&&c.type==="hidden";return c.disabled||c.hidden||g?NodeFilter.FILTER_SKIP:c.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)s.push(a.currentNode);return s}function findVisible(e,s){for(const a of e)if(!isHidden(a,{upTo:s}))return a}function isHidden(e,{upTo:s}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(s!==void 0&&e===s)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function isSelectableInput(e){return e instanceof HTMLInputElement&&"select"in e}function focus(e,{select:s=!1}={}){if(e&&e.focus){const a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&isSelectableInput(e)&&s&&e.select()}}var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let e=[];return{add(s){const a=e[0];s!==a&&(a==null||a.pause()),e=arrayRemove(e,s),e.unshift(s)},remove(s){var a;e=arrayRemove(e,s),(a=e[0])==null||a.resume()}}}function arrayRemove(e,s){const a=[...e],c=a.indexOf(s);return c!==-1&&a.splice(c,1),a}function removeLinks(e){return e.filter(s=>s.tagName!=="A")}var count=0;function useFocusGuards(){reactExports.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??createFocusGuard()),document.body.insertAdjacentElement("beforeend",e[1]??createFocusGuard()),count++,()=>{count===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(s=>s.remove()),count--}},[])}function createFocusGuard(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var zeroRightClassName="right-scroll-bar-position",fullWidthClassName="width-before-scroll-bar",noScrollbarsClassName="with-scroll-bars-hidden",removedBarSizeVariable="--removed-body-scroll-bar-size";function assignRef(e,s){return typeof e=="function"?e(s):e&&(e.current=s),e}function useCallbackRef(e,s){var a=reactExports.useState(function(){return{value:e,callback:s,facade:{get current(){return a.value},set current(c){var g=a.value;g!==c&&(a.value=c,a.callback(c,g))}}}})[0];return a.callback=s,a.facade}var useIsomorphicLayoutEffect=typeof window<"u"?reactExports.useLayoutEffect:reactExports.useEffect,currentValues=new WeakMap;function useMergeRefs(e,s){var a=useCallbackRef(null,function(c){return e.forEach(function(g){return assignRef(g,c)})});return useIsomorphicLayoutEffect(function(){var c=currentValues.get(a);if(c){var g=new Set(c),et=new Set(e),rt=a.current;g.forEach(function(nt){et.has(nt)||assignRef(nt,null)}),et.forEach(function(nt){g.has(nt)||assignRef(nt,rt)})}currentValues.set(a,e)},[e]),a}function ItoI(e){return e}function innerCreateMedium(e,s){s===void 0&&(s=ItoI);var a=[],c=!1,g={read:function(){if(c)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return a.length?a[a.length-1]:e},useMedium:function(et){var rt=s(et,c);return a.push(rt),function(){a=a.filter(function(nt){return nt!==rt})}},assignSyncMedium:function(et){for(c=!0;a.length;){var rt=a;a=[],rt.forEach(et)}a={push:function(nt){return et(nt)},filter:function(){return a}}},assignMedium:function(et){c=!0;var rt=[];if(a.length){var nt=a;a=[],nt.forEach(et),rt=a}var st=function(){var it=rt;rt=[],it.forEach(et)},at=function(){return Promise.resolve().then(st)};at(),a={push:function(it){rt.push(it),at()},filter:function(it){return rt=rt.filter(it),a}}}};return g}function createSidecarMedium(e){e===void 0&&(e={});var s=innerCreateMedium(null);return s.options=__assign({async:!0,ssr:!1},e),s}var SideCar$1=function(e){var s=e.sideCar,a=__rest(e,["sideCar"]);if(!s)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var c=s.read();if(!c)throw new Error("Sidecar medium not found");return reactExports.createElement(c,__assign({},a))};
vendor: 4,810 bytes, lines 861-898
861SideCar$1.isSideCarExport=!0;function exportSidecar(e,s){return e.useMedium(s),SideCar$1}var effectCar=createSidecarMedium(),nothing=function(){},RemoveScroll=reactExports.forwardRef(function(e,s){var a=reactExports.useRef(null),c=reactExports.useState({onScrollCapture:nothing,onWheelCapture:nothing,onTouchMoveCapture:nothing}),g=c[0],et=c[1],rt=e.forwardProps,nt=e.children,st=e.className,at=e.removeScrollBar,it=e.enabled,ot=e.shards,lt=e.sideCar,ct=e.noRelative,dt=e.noIsolation,ut=e.inert,xt=e.allowPinchZoom,gt=e.as,ht=gt===void 0?"div":gt,mt=e.gapMode,kt=__rest(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),Ct=lt,Tt=useMergeRefs([a,s]),Pt=__assign(__assign({},kt),g);return reactExports.createElement(reactExports.Fragment,null,it&&reactExports.createElement(Ct,{sideCar:effectCar,removeScrollBar:at,shards:ot,noRelative:ct,noIsolation:dt,inert:ut,setCallbacks:et,allowPinchZoom:!!xt,lockRef:a,gapMode:mt}),rt?reactExports.cloneElement(reactExports.Children.only(nt),__assign(__assign({},Pt),{ref:Tt})):reactExports.createElement(ht,__assign({},Pt,{className:st,ref:Tt}),nt))});RemoveScroll.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};RemoveScroll.classNames={fullWidth:fullWidthClassName,zeroRight:zeroRightClassName};var getNonce=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function makeStyleTag(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var s=getNonce();return s&&e.setAttribute("nonce",s),e}function injectStyles(e,s){e.styleSheet?e.styleSheet.cssText=s:e.appendChild(document.createTextNode(s))}function insertStyleTag(e){var s=document.head||document.getElementsByTagName("head")[0];s.appendChild(e)}var stylesheetSingleton=function(){var e=0,s=null;return{add:function(a){e==0&&(s=makeStyleTag())&&(injectStyles(s,a),insertStyleTag(s)),e++},remove:function(){e--,!e&&s&&(s.parentNode&&s.parentNode.removeChild(s),s=null)}}},styleHookSingleton=function(){var e=stylesheetSingleton();return function(s,a){reactExports.useEffect(function(){return e.add(s),function(){e.remove()}},[s&&a])}},styleSingleton=function(){var e=styleHookSingleton(),s=function(a){var c=a.styles,g=a.dynamic;return e(c,g),null};return s},zeroGap={left:0,top:0,right:0,gap:0},parse=function(e){return parseInt(e||"",10)||0},getOffset=function(e){var s=window.getComputedStyle(document.body),a=s[e==="padding"?"paddingLeft":"marginLeft"],c=s[e==="padding"?"paddingTop":"marginTop"],g=s[e==="padding"?"paddingRight":"marginRight"];return[parse(a),parse(c),parse(g)]},getGapWidth=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return zeroGap;var s=getOffset(e),a=document.documentElement.clientWidth,c=window.innerWidth;return{left:s[0],top:s[1],right:s[2],gap:Math.max(0,c-a+s[2]-s[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(e,s,a,c){var g=e.left,et=e.top,rt=e.right,nt=e.gap;return a===void 0&&(a="margin"),` 862 .`.concat(noScrollbarsClassName,` { 863 overflow: hidden `).concat(c,`; 864 padding-right: `).concat(nt,"px ").concat(c,`; 865 } 866 body[`).concat(lockAttribute,`] { 867 overflow: hidden `).concat(c,`; 868 overscroll-behavior: contain; 869 `).concat([s&&"position: relative ".concat(c,";"),a==="margin"&&` 870 padding-left: `.concat(g,`px; 871 padding-top: `).concat(et,`px; 872 padding-right: `).concat(rt,`px; 873 margin-left:0; 874 margin-top:0; 875 margin-right: `).concat(nt,"px ").concat(c,`; 876 `),a==="padding"&&"padding-right: ".concat(nt,"px ").concat(c,";")].filter(Boolean).join(""),` 877 } 878 879 .`).concat(zeroRightClassName,` { 880 right: `).concat(nt,"px ").concat(c,`; 881 } 882 883 .`).concat(fullWidthClassName,` { 884 margin-right: `).concat(nt,"px ").concat(c,`; 885 } 886 887 .`).concat(zeroRightClassName," .").concat(zeroRightClassName,` { 888 right: 0 `).concat(c,`; 889 } 890 891 .`).concat(fullWidthClassName," .").concat(fullWidthClassName,` { 892 margin-right: 0 `).concat(c,`; 893 } 894 895 body[`).concat(lockAttribute,`] { 896 `).concat(removedBarSizeVariable,": ").concat(nt,`px; 897 } 898`)},getCurrentUseCounter=function(){var e=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(e)?e:0},useLockAttribute=function(){reactExports.useEffect(function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var e=getCurrentUseCounter()-1;e<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,e.toString())}},[])},RemoveScrollBar=function(e){var s=e.noRelative,a=e.noImportant,c=e.gapMode,g=c===void 0?"margin":c;useLockAttribute();var et=reactExports.useMemo(function(){return getGapWidth(g)},[g]);return reactExports.createElement(Style,{styles:getStyles(et,!s,g,a?""
vendor: 3,491 bytes, lines 898-901
898:"!important")})},passiveSupported=!1;if(typeof window<"u")try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch{passiveSupported=!1}var nonPassive=passiveSupported?{passive:!1}:!1,alwaysContainsScroll=function(e){return e.tagName==="TEXTAREA"},elementCanBeScrolled=function(e,s){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return a[s]!=="hidden"&&!(a.overflowY===a.overflowX&&!alwaysContainsScroll(e)&&a[s]==="visible")},elementCouldBeVScrolled=function(e){return elementCanBeScrolled(e,"overflowY")},elementCouldBeHScrolled=function(e){return elementCanBeScrolled(e,"overflowX")},locationCouldBeScrolled=function(e,s){var a=s.ownerDocument,c=s;do{typeof ShadowRoot<"u"&&c instanceof ShadowRoot&&(c=c.host);var g=elementCouldBeScrolled(e,c);if(g){var et=getScrollVariables(e,c),rt=et[1],nt=et[2];if(rt>nt)return!0}c=c.parentNode}while(c&&c!==a.body);return!1},getVScrollVariables=function(e){var s=e.scrollTop,a=e.scrollHeight,c=e.clientHeight;return[s,a,c]},getHScrollVariables=function(e){var s=e.scrollLeft,a=e.scrollWidth,c=e.clientWidth;return[s,a,c]},elementCouldBeScrolled=function(e,s){return e==="v"?elementCouldBeVScrolled(s):elementCouldBeHScrolled(s)},getScrollVariables=function(e,s){return e==="v"?getVScrollVariables(s):getHScrollVariables(s)},getDirectionFactor=function(e,s){return e==="h"&&s==="rtl"?-1:1},handleScroll=function(e,s,a,c,g){var et=getDirectionFactor(e,window.getComputedStyle(s).direction),rt=et*c,nt=a.target,st=s.contains(nt),at=!1,it=rt>0,ot=0,lt=0;do{if(!nt)break;var ct=getScrollVariables(e,nt),dt=ct[0],ut=ct[1],xt=ct[2],gt=ut-xt-et*dt;(dt||gt)&&elementCouldBeScrolled(e,nt)&&(ot+=gt,lt+=dt);var ht=nt.parentNode;nt=ht&&ht.nodeType===Node.DOCUMENT_FRAGMENT_NODE?ht.host:ht}while(!st&&nt!==document.body||st&&(s.contains(nt)||s===nt));return(it&&(Math.abs(ot)<1||!g)||!it&&(Math.abs(lt)<1||!g))&&(at=!0),at},getTouchXY=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(e){return[e.deltaX,e.deltaY]},extractRef=function(e){return e&&"current"in e?e.current:e},deltaCompare=function(e,s){return e[0]===s[0]&&e[1]===s[1]},generateStyle=function(e){return` 899 .block-interactivity-`.concat(e,` {pointer-events: none;} 900 .allow-interactivity-`).concat(e,` {pointer-events: all;} 901`)},idCounter=0,lockStack=[];function RemoveScrollSideCar(e){var s=reactExports.useRef([]),a=reactExports.useRef([0,0]),c=reactExports.useRef(),g=reactExports.useState(idCounter++)[0],et=reactExports.useState(styleSingleton)[0],rt=reactExports.useRef(e);reactExports.useEffect(function(){rt.current=e},[e]),reactExports.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(g));var ut=__spreadArray([e.lockRef.current],(e.shards||[]).map(extractRef),!0).filter(Boolean);return ut.forEach(function(xt){return xt.classList.add("allow-interactivity-".concat(g))}),function(){document.body.classList.remove("block-interactivity-".concat(g)),ut.forEach(function(xt){return xt.classList.remove("allow-interactivity-".concat(g))})}}},[e.inert,e.lockRef.current,e.shards]);var nt=reactExports.useCallback(function(ut,xt){if("touches"in ut&&ut.touches.length===2||ut.type==="wheel"&&ut.ctrlKey)return!rt.current.allowPinchZoom;var gt=getTouchXY(ut),ht=a.current,mt="deltaX"in ut?ut.deltaX:ht[0]-gt[0],
vendor: 5,118 bytes, line 901
901kt="deltaY"in ut?ut.deltaY:ht[1]-gt[1],Ct,Tt=ut.target,Pt=Math.abs(mt)>Math.abs(kt)?"h":"v";if("touches"in ut&&Pt==="h"&&Tt.type==="range")return!1;var At=locationCouldBeScrolled(Pt,Tt);if(!At)return!0;if(At?Ct=Pt:(Ct=Pt==="v"?"h":"v",At=locationCouldBeScrolled(Pt,Tt)),!At)return!1;if(!c.current&&"changedTouches"in ut&&(mt||kt)&&(c.current=Ct),!Ct)return!0;var Gt=c.current||Ct;return handleScroll(Gt,xt,ut,Gt==="h"?mt:kt,!0)},[]),st=reactExports.useCallback(function(ut){var xt=ut;if(!(!lockStack.length||lockStack[lockStack.length-1]!==et)){var gt="deltaY"in xt?getDeltaXY(xt):getTouchXY(xt),ht=s.current.filter(function(Ct){return Ct.name===xt.type&&(Ct.target===xt.target||xt.target===Ct.shadowParent)&&deltaCompare(Ct.delta,gt)})[0];if(ht&&ht.should){xt.cancelable&&xt.preventDefault();return}if(!ht){var mt=(rt.current.shards||[]).map(extractRef).filter(Boolean).filter(function(Ct){return Ct.contains(xt.target)}),kt=mt.length>0?nt(xt,mt[0]):!rt.current.noIsolation;kt&&xt.cancelable&&xt.preventDefault()}}},[]),at=reactExports.useCallback(function(ut,xt,gt,ht){var mt={name:ut,delta:xt,target:gt,should:ht,shadowParent:getOutermostShadowParent(gt)};s.current.push(mt),setTimeout(function(){s.current=s.current.filter(function(kt){return kt!==mt})},1)},[]),it=reactExports.useCallback(function(ut){a.current=getTouchXY(ut),c.current=void 0},[]),ot=reactExports.useCallback(function(ut){at(ut.type,getDeltaXY(ut),ut.target,nt(ut,e.lockRef.current))},[]),lt=reactExports.useCallback(function(ut){at(ut.type,getTouchXY(ut),ut.target,nt(ut,e.lockRef.current))},[]);reactExports.useEffect(function(){return lockStack.push(et),e.setCallbacks({onScrollCapture:ot,onWheelCapture:ot,onTouchMoveCapture:lt}),document.addEventListener("wheel",st,nonPassive),document.addEventListener("touchmove",st,nonPassive),document.addEventListener("touchstart",it,nonPassive),function(){lockStack=lockStack.filter(function(ut){return ut!==et}),document.removeEventListener("wheel",st,nonPassive),document.removeEventListener("touchmove",st,nonPassive),document.removeEventListener("touchstart",it,nonPassive)}},[]);var ct=e.removeScrollBar,dt=e.inert;return reactExports.createElement(reactExports.Fragment,null,dt?reactExports.createElement(et,{styles:generateStyle(g)}):null,ct?reactExports.createElement(RemoveScrollBar,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function getOutermostShadowParent(e){for(var s=null;e!==null;)e instanceof ShadowRoot&&(s=e.host,e=e.host),e=e.parentNode;return s}const SideCar=exportSidecar(effectCar,RemoveScrollSideCar);var ReactRemoveScroll=reactExports.forwardRef(function(e,s){return reactExports.createElement(RemoveScroll,__assign({},e,{ref:s,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var getDefaultParent=function(e){if(typeof document>"u")return null;var s=Array.isArray(e)?e[0]:e;return s.ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(e){return e&&(e.host||unwrapHost(e.parentNode))},correctTargets=function(e,s){return s.map(function(a){if(e.contains(a))return a;var c=unwrapHost(a);return c&&e.contains(c)?c:(console.error("aria-hidden",a,"in not contained inside",e,". Doing nothing"),null)}).filter(function(a){return!!a})},applyAttributeToOthers=function(e,s,a,c){var g=correctTargets(s,Array.isArray(e)?e:[e]);markerMap[a]||(markerMap[a]=new WeakMap);var et=markerMap[a],rt=[],nt=new Set,st=new Set(g),at=function(ot){!ot||nt.has(ot)||(nt.add(ot),at(ot.parentNode))};g.forEach(at);var it=function(ot){!ot||st.has(ot)||Array.prototype.forEach.call(ot.children,function(lt){if(nt.has(lt))it(lt);else try{var ct=lt.getAttribute(c),dt=ct!==null&&ct!=="false",ut=(counterMap.get(lt)||0)+1,xt=(et.get(lt)||0)+1;counterMap.set(lt,ut),et.set(lt,xt),rt.push(lt),ut===1&&dt&&uncontrolledNodes.set(lt,!0),xt===1&<.setAttribute(a,"true"),dt||lt.setAttribute(c,"true")}catch(gt){console.error("aria-hidden: cannot operate on ",lt,gt)}})};return it(s),nt.clear(),lockCount++,function(){rt.forEach(function(ot){var lt=counterMap.get(ot)-1,ct=et.get(ot)-1;counterMap.set(ot,lt),et.set(ot,ct),lt||(uncontrolledNodes.has(ot)||ot.removeAttribute(c),uncontrolledNodes.delete(ot)),ct||ot.removeAttribute(a)}),lockCount--,lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(e,s,a){a===void 0&&(a="data-aria-hidden");var c=Array.from(Array.isArray(e)?e:[e]),g=getDefaultParent(e);return g?(c.push.apply(c,Array.from(g.querySelectorAll("[aria-live]"))),applyAttributeToOthers(c,g,a,"aria-hidden")):function(){return null}},DIALOG_NAME="Dialog",[createDialogContext,createDialogScope]=createContextScope(DIALOG_NAME),[DialogProvider,useDialogContext]=createDialogContext(DIALOG_NAME),Dialog$1=e=>{const{__scopeDialog:s,children:a,open:c,defaultOpen:g,onOpenChange:et,modal:rt=!0}=e,nt=reactExports.useRef(null),st=reactExports.useRef(null),[at,it]=useControllableState({prop:c,defaultProp:g??!1,onChange:et,caller:DIALOG_NAME});return jsxRuntimeExports.jsx(DialogProvider,{scope:s,triggerRef:nt,contentRef:st,contentId:u
vendor: 8,233 bytes, lines 901-905
901seId(),titleId:useId(),descriptionId:useId(),open:at,onOpenChange:it,onOpenToggle:reactExports.useCallback(()=>it(ot=>!ot),[it]),modal:rt,children:a})};Dialog$1.displayName=DIALOG_NAME;var TRIGGER_NAME$2="DialogTrigger",DialogTrigger$1=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,...c}=e,g=useDialogContext(TRIGGER_NAME$2,a),et=useComposedRefs(s,g.triggerRef);return jsxRuntimeExports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":g.open,"aria-controls":g.contentId,"data-state":getState$1(g.open),...c,ref:et,onClick:composeEventHandlers(e.onClick,g.onOpenToggle)})});DialogTrigger$1.displayName=TRIGGER_NAME$2;var PORTAL_NAME$1="DialogPortal",[PortalProvider,usePortalContext]=createDialogContext(PORTAL_NAME$1,{forceMount:void 0}),DialogPortal$1=e=>{const{__scopeDialog:s,forceMount:a,children:c,container:g}=e,et=useDialogContext(PORTAL_NAME$1,s);return jsxRuntimeExports.jsx(PortalProvider,{scope:s,forceMount:a,children:reactExports.Children.map(c,rt=>jsxRuntimeExports.jsx(Presence,{present:a||et.open,children:jsxRuntimeExports.jsx(Portal$2,{asChild:!0,container:g,children:rt})}))})};DialogPortal$1.displayName=PORTAL_NAME$1;var OVERLAY_NAME="DialogOverlay",DialogOverlay$1=reactExports.forwardRef((e,s)=>{const a=usePortalContext(OVERLAY_NAME,e.__scopeDialog),{forceMount:c=a.forceMount,...g}=e,et=useDialogContext(OVERLAY_NAME,e.__scopeDialog);return et.modal?jsxRuntimeExports.jsx(Presence,{present:c||et.open,children:jsxRuntimeExports.jsx(DialogOverlayImpl,{...g,ref:s})}):null});DialogOverlay$1.displayName=OVERLAY_NAME;var Slot$1=createSlot("DialogOverlay.RemoveScroll"),DialogOverlayImpl=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,...c}=e,g=useDialogContext(OVERLAY_NAME,a);return jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot$1,allowPinchZoom:!0,shards:[g.contentRef],children:jsxRuntimeExports.jsx(Primitive.div,{"data-state":getState$1(g.open),...c,ref:s,style:{pointerEvents:"auto",...c.style}})})}),CONTENT_NAME$1="DialogContent",DialogContent$1=reactExports.forwardRef((e,s)=>{const a=usePortalContext(CONTENT_NAME$1,e.__scopeDialog),{forceMount:c=a.forceMount,...g}=e,et=useDialogContext(CONTENT_NAME$1,e.__scopeDialog);return jsxRuntimeExports.jsx(Presence,{present:c||et.open,children:et.modal?jsxRuntimeExports.jsx(DialogContentModal,{...g,ref:s}):jsxRuntimeExports.jsx(DialogContentNonModal,{...g,ref:s})})});DialogContent$1.displayName=CONTENT_NAME$1;var DialogContentModal=reactExports.forwardRef((e,s)=>{const a=useDialogContext(CONTENT_NAME$1,e.__scopeDialog),c=reactExports.useRef(null),g=useComposedRefs(s,a.contentRef,c);return reactExports.useEffect(()=>{const et=c.current;if(et)return hideOthers(et)},[]),jsxRuntimeExports.jsx(DialogContentImpl,{...e,ref:g,trapFocus:a.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(e.onCloseAutoFocus,et=>{var rt;et.preventDefault(),(rt=a.triggerRef.current)==null||rt.focus()}),onPointerDownOutside:composeEventHandlers(e.onPointerDownOutside,et=>{const rt=et.detail.originalEvent,nt=rt.button===0&&rt.ctrlKey===!0;(rt.button===2||nt)&&et.preventDefault()}),onFocusOutside:composeEventHandlers(e.onFocusOutside,et=>et.preventDefault())})}),DialogContentNonModal=reactExports.forwardRef((e,s)=>{const a=useDialogContext(CONTENT_NAME$1,e.__scopeDialog),c=reactExports.useRef(!1),g=reactExports.useRef(!1);return jsxRuntimeExports.jsx(DialogContentImpl,{...e,ref:s,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:et=>{var rt,nt;(rt=e.onCloseAutoFocus)==null||rt.call(e,et),et.defaultPrevented||(c.current||(nt=a.triggerRef.current)==null||nt.focus(),et.preventDefault()),c.current=!1,g.current=!1},onInteractOutside:et=>{var st,at;(st=e.onInteractOutside)==null||st.call(e,et),et.defaultPrevented||(c.current=!0,et.detail.originalEvent.type==="pointerdown"&&(g.current=!0));const rt=et.target;((at=a.triggerRef.current)==null?void 0:at.contains(rt))&&et.preventDefault(),et.detail.originalEvent.type==="focusin"&&g.current&&et.preventDefault()}})}),DialogContentImpl=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,trapFocus:c,onOpenAutoFocus:g,onCloseAutoFocus:et,...rt}=e,nt=useDialogContext(CONTENT_NAME$1,a),st=reactExports.useRef(null),at=useComposedRefs(s,st);return useFocusGuards(),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:c,onMountAutoFocus:g,onUnmountAutoFocus:et,children:jsxRuntimeExports.jsx(DismissableLayer,{role:"dialog",id:nt.contentId,"aria-describedby":nt.descriptionId,"aria-labelledby":nt.titleId,"data-state":getState$1(nt.open),...rt,ref:at,onDismiss:()=>nt.onOpenChange(!1)})}),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TitleWarning,{titleId:nt.titleId}),jsxRuntimeExports.jsx(DescriptionWarning,{contentRef:st,descriptionId:nt.descriptionId})]})]})}),TITLE_NAME="DialogTitle",DialogTitle$1=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,...c}=e,g=useDialogContext(TITLE_NAME,a);return jsxRuntimeExports.jsx(Primitive.h2,{id:g.titleId,...c,ref:s})});DialogTitle$1.displayName=TITLE_NAME;var DESCRIPTION_NAME="DialogDescription",DialogDescription$1=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,...c}=e,g=useDialogContext(DESCRIPTION_NAME,a);return jsxRuntimeExports.jsx(Primitive.p,{id:g.descriptionId,...c,ref:s})});DialogDescription$1.displayName=DESCRIPTION_NAME;var CLOSE_NAME="DialogClose",DialogClose=reactExports.forwardRef((e,s)=>{const{__scopeDialog:a,...c}=e,g=useDialogContext(CLOSE_NAME,a);return jsxRuntimeExports.jsx(Primitive.button,{type:"button",...c,ref:s,onClick:composeEventHandlers(e.onClick,()=>g.onOpenChange(!1))})});DialogClose.displayName=CLOSE_NAME;function getState$1(e){return e?"open":"closed"}var TITLE_WARNING_NAME="DialogTitleWarning",[WarningProvider,useWarningContext]=createContext2(TITLE_WARNING_NAME,{contentName:CONTENT_NAME$1,titleName:TITLE_NAME,docsSlug:"dialog"}),TitleWarning=({titleId:e})=>{const s=useWarningContext(TITLE_WARNING_NAME),a=`\`${s.contentName}\` requires a \`${s.titleName}\` for the component to be accessible for screen reader users. 902 903If you want to hide the \`${s.titleName}\`, you can wrap it with our VisuallyHidden component. 904 905For more information, see https://radix-ui.com/primitives/docs/components/${s.docsSlug}`;return reactExports.useEffect(()=>{e&&(document.getElementById(e)||console.error(a))},[a,e]),null},DESCRIPTION_WARNING_NAME="DialogDescriptionWarning",DescriptionWarning=({contentRef:e,descriptionId:s})=>{const c=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${useWarningContext(DESCRIPTION_WARNING_NAME).contentName}}.`;return reactExports.useEffect(()=>{var et;const g=(et=e.current)==null?void 0:et.getAttribute("aria-describedby");s&&g&&(document.getElementById(s)||console.warn(c))},[c,e,s]),null},Root$2=Dialog$1,Trigger$1=DialogTrigger$1,Portal$1=DialogPortal$1,Overlay=DialogOverlay$1,Content=DialogContent$1,Title=DialogTitle$1,Description=DialogDescription$1,Close=DialogClose;const Dialog=Root$2,DialogTrigger=Trigger$1,DialogPortal=Portal$1,DialogOverlay=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Overlay,{ref:a,className:cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...s}));DialogOverlay.displayName=Overlay.displayName;const DialogContent=reactExports.forwardRef(({className:e,children:s,...a},c)=>jsxRuntimeExports.jsxs(DialogPortal,{children:[jsxRuntimeExports.jsx(DialogOverlay,{}),jsxRuntimeExports.jsxs(Content,{ref:c,className:cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...a,children:[s,jsxRuntimeExports.jsxs(Close,{className:"absolute right-4 top-4 roun
905ded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));DialogContent.displayName=Content.displayName;const DialogHeader=({className:e,...s})=>jsxRuntimeExports.jsx("div",{className:cn("flex flex-col space-y-1.5 text-center sm:text-left",e),...s});DialogHeader.displayName="DialogHeader";const DialogTitle=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Title,{ref:a,className:cn("text-lg font-semibold leading-none tracking-tight",e),...s}));DialogTitle.displayName=Title.displayName;const DialogDescription=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Description,{ref:a,className:cn("text-sm text-muted-foreground",e),...s}));DialogDescription.displayName=Description.displayName;const PageHero=({eyebrow:e,title:s,subtitle:a,image:c,children:g,align:et="center",minHeight:rt="52vh",nextBg:nt="canvas-soft"})=>{const st=et==="left",at=nt==="canvas"?"bg-canvas":nt==="canvas-deep"?"bg-canvas-deep":"bg-canvas-soft";return jsxRuntimeExports.jsxs("section",{className:`relative overflow-hidden grain ${at} text-ink`,style:{minHeight:rt},children:[c&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("img",{src:c,alt:"","aria-hidden":!0,loading:"eager",className:"absolute inset-0 w-full h-full object-cover object-center",style:{zIndex:2}}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 pointer-events-none",style:{zIndex:3,backgroundColor:"hsl(var(--canvas) / 0.65)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:4,opacity:.95})]}),jsxRuntimeExports.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-6 sm:px-8 py-20 md:py-32 flex items-center",style:{minHeight:rt},children:jsxRuntimeExports.jsxs("div",{className:st?"max-w-3xl animate-fade-in":"max-w-3xl mx-auto text-center animate-fade-in",children:[e&&jsxRuntimeExports.jsx("div",{className:"eyebrow mb-6",children:e}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-normal text-ink leading-[1.05] tracking-tight text-[clamp(2.25rem,6vw,5.25rem)]",children:s}),a&&jsxRuntimeExports.jsx("p",{className:`mt-6 md:mt-8 text-base md:text-xl text-ink/65 leading-relaxed ${st?"":"mx-auto"} max-w-3xl`,children:a}),g&&jsxRuntimeExports.jsx("div",{className:"mt-8 md:mt-10",children:g})]})})]})},aboutBackdrop="/assets/about_backdrop-f1sGHptm.webp",__vite_glob_0_0="/assets/2024_academy_preview-DstiKOFp.webp",__vite_glob_0_1="/assets/2025_academy_preview-C6ZpIopN.webp",__vite_glob_0_2="/assets/academy_2026_preview-DkVwccm7.webp",__vite_glob_0_3="/assets/torino_villa-Dbf018Dj.webp",__vite_glob_0_4="/assets/about_backdrop-f1sGHptm.webp",__vite_glob_0_5="/assets/academies_backdrop-BlmyrADE.webp",__vite_glob_0_6="/assets/apply_backdrop-DnKKL6kB.webp",__vite_glob_0_7="/assets/contact_backdrop-DdZd2uBG.webp",__vite_glob_0_8="/assets/fellowship_backdrop-YbN_7znw.webp",__vite_glob_0_9="/assets/home_backdrop-DYIMhWYb.webp",__vite_glob_0_10="/assets/mentors_backdrop-BhM3lBFa.webp",__vite_glob_0_11="/assets/news_backdrop-D-2XvNXg.webp",__vite_glob_0_12="/assets/w24_beloslava-BE94BA7k.webp",__vite_glob_0_13="/assets/w24_boris-DnLuYg5d.webp",__vite_glob_0_14="/assets/w24_elias-Cs9w2eNO.webp",__vite_glob_0_15="/assets/w24_emir-BDAsxwVN.webp",__vite_glob_0_16="/assets/w24_georgios-UU53587w.webp",__vite_glob_0_17="/assets/w24_jacqueline-A3CdRhEo.webp",__vite_glob_0_18="/assets/w24_konstantine-VgwlgpLS.webp",__vite_glob_0_19="/assets/w24_lina-B39VZudA.webp",__vite_glob_0_20="/assets/w24_matej-rwuAb1Yq.webp",__vite_glob_0_21="/assets/w24_meda-iD7gy4m1.webp",__vite_glob_0_22="/assets/w24_nea-BglQRBHQ.webp",__vite_glob_0_23="/assets/w24_niels-DUBFQFuQ.webp",__vite_glob_0_24="/assets/w24_oleksandra-DfRu4h5p.webp",__vite_glob_0_25="/assets/w24_oscar-Btrc5YOm.webp",__vite_glob_0_26="/assets/w24_sara-AY2Di_a2.webp",__vite_glob_0_27="/assets/w24_tomas-DY64jmlC.webp",__vite_glob_0_28="/assets/2025_alexandru-Cpqf-YxE.webp",__vite_glob_0_29="/assets/2025_beloslava-CKQaejWi.webp",__vite_glob_0_30="/assets/2025_benedikt-DAGJj6D8.webp",__vite_glob_0_31="/assets/2025_chiara-oHvsVXyG.webp",__vite_glob_0_32="/assets/2025_david-C-7Znd7H.webp",__vite_glob_0_33="/assets/2025_dion-C9xSPMTz.webp",__vite_glob_0_34="/assets/2025_elias-DC6s23XT.webp",__vite_glob_0_35="/assets/2025_finn-JN071aj8.webp",__vite_glob_0_36="/assets/2025_janko-DQ5b36Zm.webp",__vite_glob_0_37="/assets/2025_kseniia-SgAMHOsh.webp",__vite_glob_0_38="/assets/2025_matas-Btczxnr6.webp",__vite_glob_0_39="/assets/2025_pablo-BVU51SPD.webp",__vite_glob_0_40="/assets/2025_tina-iDyvSh9T.webp",__vite_glob_0_41="/assets/2025_tudor-3vHkoLHD.webp",__vite_glob_0_42="/assets/2025_valeriia-c1If-SAl.webp",__vite_glob_0_43="/assets/2025_yevhenii-DMwhiLwN.webp",__vite_glob_0_44="/assets/2024-bpdNcGfQ.webp",__vite_glob_0_45="/assets/2025-ZJCGaIIj.webp",__vite_glob_0_46="/assets/2026-CVjdyn8r.webp",__vite_glob_0_47="/assets/2026_apply-BG56sJDS.webp",__vite_glob_0_48="/assets/EAF_WHITE-Bu1LufeJ.webp",__vite_glob_0_49="/assets/Niki-BMt_yOjA.webp",__vite_glob_0_50="/assets/alexander-tashevski-beckwith-CU8ErMxs.webp",__vite_glob_0_51="/assets/benjamin-iF7K9esP.webp",__vite_glob_0_52="/assets/carlotta-salerno-BFN6O2n1.webp",__vite_glob_0_53="/assets/caua-C_nh_VSS.webp",__vite_glob_0_54="/assets/debora-comini-CtUkQjNm.webp",__vite_glob_0_55="/assets/dominika-DGm8vm1K.webp",__vite_glob_0_56="/assets/gisela-DED0lN__.webp",__vite_glob_0_57="/assets/guido-DYoCOEWS.webp",__vite_glob_0_58="/assets/ingo-CBjOM7L2.
905webp",__vite_glob_0_59="/assets/joshua-sammet-CjWikNUq.webp",__vite_glob_0_60="/assets/kornelia-J32kQUJ7.webp",__vite_glob_0_61="/assets/marta-JOrDIVy9.webp",__vite_glob_0_62="/assets/sven-DSCWwSBi.webp",__vite_glob_0_63="/assets/test-fellow-CV6gS0Kk.webp",__vite_glob_0_64="/assets/carlmaxmoog-Ck5OEMhC.webp",__vite_glob_0_65="/assets/duc-academy-B4cViiHJ.webp",__vite_glob_0_66="/assets/duc-D-RzZ_sN.webp",__vite_glob_0_67="/assets/finn-D52WjEjC.webp",__vite_glob_0_68="/assets/frido-DzaYC_tP.webp",__vite_glob_0_69="/assets/friedrich-academy-CLYk3AiK.webp",__vite_glob_0_70="/assets/ilan-DaqjbhjD.webp",__vite_glob_0_71="/assets/lucas-PgWTDKNQ.webp",__vite_glob_0_72="/assets/marlo-xkWH4JOj.webp",__vite_glob_0_73="/assets/max-academy-CHM526WR.webp",__vite_glob_0_74="/assets/michael-vLcJQuHC.webp",__vite_glob_0_75="/assets/rebecca-BAIAqiKs.webp";let pulseDirectoryCache=null,publicPeopleCache=null;const publicImageModules=Object.assign({"/src/assets/images/academies/2024_academy_preview.webp":__vite_glob_0_0,"/src/assets/images/academies/2025_academy_preview.webp":__vite_glob_0_1,"/src/assets/images/academies/academy_2026_preview.webp":__vite_glob_0_2,"/src/assets/images/academies/torino_villa.webp":__vite_glob_0_3,"/src/assets/images/backdrops/about_backdrop.webp":__vite_glob_0_4,"/src/assets/images/backdrops/academies_backdrop.webp":__vite_glob_0_5,"/src/assets/images/backdrops/apply_backdrop.webp":__vite_glob_0_6,"/src/assets/images/backdrops/contact_backdrop.webp":__vite_glob_0_7,"/src/assets/images/backdrops/fellowship_backdrop.webp":__vite_glob_0_8,"/src/assets/images/backdrops/home_backdrop.webp":__vite_glob_0_9,"/src/assets/images/backdrops/mentors_backdrop.webp":__vite_glob_0_10,"/src/assets/images/backdrops/news_backdrop.webp":__vite_glob_0_11,"/src/assets/images/fellows_2024/w24_beloslava.webp":__vite_glob_0_12,"/src/assets/images/fellows_2024/w24_boris.webp":__vite_glob_0_13,"/src/assets/images/fellows_2024/w24_elias.webp":__vite_glob_0_14,"/src/assets/images/fellows_2024/w24_emir.webp":__vite_glob_0_15,"/src/assets/images/fellows_2024/w24_georgios.webp":__vite_glob_0_16,"/src/assets/images/fellows_2024/w24_jacqueline.webp":__vite_glob_0_17,"/src/assets/images/fellows_2024/w24_konstantine.webp":__vite_glob_0_18,"/src/assets/images/fellows_2024/w24_lina.webp":__vite_glob_0_19,"/src/assets/images/fellows_2024/w24_matej.webp":__vite_glob_0_20,"/src/assets/images/fellows_2024/w24_meda.webp":__vite_glob_0_21,"/src/assets/images/fellows_2024/w24_nea.webp":__vite_glob_0_22,"/src/assets/images/fellows_2024/w24_niels.webp":__vite_glob_0_23,"/src/assets/images/fellows_2024/w24_oleksandra.webp":__vite_glob_0_24,"/src/assets/images/fellows_2024/w24_oscar.webp":__vite_glob_0_25,"/src/assets/images/fellows_2024/w24_sara.webp":__vite_glob_0_26,"/src/assets/images/fellows_2024/w24_tomas.webp":__vite_glob_0_27,"/src/assets/images/fellows_2025/2025_alexandru.webp":__vite_glob_0_28,"/src/assets/images/fellows_2025/2025_beloslava.webp":__vite_glob_0_29,"/src/assets/images/fellows_2025/2025_benedikt.webp":__vite_glob_0_30,"/src/assets/images/fellows_2025/2025_chiara.webp":__vite_glob_0_31,"/src/assets/images/fellows_2025/2025_david.webp":__vite_glob_0_32,"/src/assets/images/fellows_2025/2025_dion.webp":__vite_glob_0_33,"/src/assets/images/fellows_2025/2025_elias.webp":__vite_glob_0_34,"/src/assets/images/fellows_2025/2025_finn.webp":__vite_glob_0_35,"/src/assets/images/fellows_2025/2025_janko.webp":__vite_glob_0_36,"/src/assets/images/fellows_2025/2025_kseniia.webp":__vite_glob_0_37,"/src/assets/images/fellows_2025/2025_matas.webp":__vite_glob_0_38,"/src/assets/images/fellows_2025/2025_pablo.webp":__vite_glob_0_39,"/src/assets/images/fellows_2025/2025_tina.webp":__vite_glob_0_40,"/src/assets/images/fellows_2025/2025_tudor.webp":__vite_glob_0_41,"/src/assets/images/fellows_2025/2025_valeriia.webp":__vite_glob_0_42,"/src/assets/images/fellows_2025/2025_yevhenii.webp":__vite_glob_0_43,"/src/assets/images/general/2024.webp":__vite_glob_0_44,"/src/assets/images/general/2025.webp":__vite_glob_0_45,"/src/assets/images/general/2026.webp":__vite_glob_0_46,"/src/assets/images/general/2026_poster.webp":__vite_glob_0_47,"/src/assets/images/general/EAF_WHITE.webp":__vite_glob_0_48,"/src/assets/images/mentors/Niki.webp":__vite_glob_0_49,"/src/assets/images/mentors/alexander-tashevski-beckwith.webp":__vite_glob_0_50,"/src/assets/images/mentors/benjamin.webp":__vite_glob_0_51,"/src/assets/images/mentors/carlotta-salerno.webp":__vite_glob_0_52,"/src/assets/images/mentors/caua.webp":__vite_glob_0_53,"/src/assets/images/mentors/debora-comini.webp":__vite_glob_0_54,"/src/assets/images/mentors/dominika.webp":__vite_glob_0_55,"/src/assets/images/mentors/gisela.webp":__vite_glob_0_56,"/src/assets/images/mentors/guido.webp":__vite_glob_0_57,"/src/assets/images/mentors/ingo.webp":__vite_glob_0_58,"/src/assets/images/mentors/joshua-sammet.webp":__vite_glob_0_59,"/src/assets/images/mentors/kornelia.webp":__vite_glob_0_60,"/src/assets/images/mentors/marta.webp":__vite_glob_0_61,"/src/assets/images/mentors/sven.webp":__vite_glob_0_62,"/src/assets/images/pulse/test-fellow.webp":__vite_glob_0_63,"/src/assets/images/team/carlmaxmoog.webp":__vite_glob_0_64,"/src/assets/images/team/duc-academy.webp":__vite_glob_0_65,"/src/assets/images/team/duc.webp":__vite_glob_0_66,"/src/assets/images/team/finn.webp":__vite_glob_0_67,"/src/assets/images/team/frido.webp":__vite_glob_0_68,"/src/assets/images/team/friedrich-academy.webp":__vite_glob_0_69,"/src/assets/images/team/ilan.webp":__vite_glob_0_70,"/src/assets/images/team/lucas.webp":__vite_glob_0_71,"/src/assets/images/team/marlo.webp":__vite_glob_0_72,"/src/assets/images/team/max-academy.webp":__vite_glob_0_73,"/src/assets/images/team/michael.webp":__vite_glob_0_74,"/src/assets/images/team/rebecca.webp":__vite_glob_0_75}),getCachedPulseDirectory=()=>pulseDirectoryCache,resolvePublicImageUrl=e=>{if(!e)return null;if(/^(https?:|data:)/.test(e))return e;const s=e.startsWith("/")?e:e.startsWith("src/")?`/${e}
905`:`/src/assets/images/${e}`,a=s.replace(/\.(?:jpe?g|png)$/i,".webp");return publicImageModules[a]??publicImageModules[s]??e},requireSupabase$2=()=>{if(!supabase)throw new Error("Supabase is not configured. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY.");return supabase},listPulseDirectory=async()=>{const e=requireSupabase$2(),{data:s,error:a}=await e.from("people").select("*, pulse_profiles(*), pulse_person_documents(*), pulse_member_contacts(*)").order("cohort",{ascending:!1}).order("full_name",{ascending:!0});if(a)throw new Error(a.message);return pulseDirectoryCache=s??[],pulseDirectoryCache},listPublicPeople=async()=>{if(publicPeopleCache)return publicPeopleCache;if(!supabase)return[];const{data:e,error:s}=await supabase.from("people").select("id, slug, full_name, role, cohort, current_institution, field, country, public_bio, public_image_url, is_public").eq("is_public",!0).order("cohort",{ascending:!1}).order("full_name",{ascending:!0});if(s)throw new Error(s.message);return publicPeopleCache=e??[],publicPeopleCache},patchPeopleCaches=e=>{pulseDirectoryCache=(pulseDirectoryCache==null?void 0:pulseDirectoryCache.map(s=>s.id===e.id?e:s))??null,publicPeopleCache=(publicPeopleCache==null?void 0:publicPeopleCache.filter(s=>s.id!==e.id).concat(e.is_public?[e]:[]).sort((s,a)=>a.cohort.localeCompare(s.cohort)||s.full_name.localeCompare(a.full_name)))??null},updatePulsePerson=async(e,s)=>{const a=requireSupabase$2(),{data:c,error:g}=await a.from("people").update(s).eq("id",e).select("*, pulse_profiles(*), pulse_person_documents(*), pulse_member_contacts(*)").single();if(g)throw new Error(g.message);const et=c;return patchPeopleCaches(et),et},updateOwnPulsePerson=async e=>{const s=requireSupabase$2(),{data:a,error:c}=await s.rpc("update_own_pulse_person",{p_current_institution:e.current_institution??null,p_previous_institutions:e.previous_institutions??null,p_field:e.field??null,p_other_fields:e.other_fields??null,p_country:e.country??null,p_public_bio:e.public_bio??null,p_community_intro:e.community_intro??null}).single();if(c)throw new Error(c.message);const g=a,et=pulseDirectoryCache==null?void 0:pulseDirectoryCache.find(nt=>nt.id===g.id),rt={...et,...g,pulse_profiles:(et==null?void 0:et.pulse_profiles)??null,pulse_person_documents:(et==null?void 0:et.pulse_person_documents)??[],pulse_member_contacts:(et==null?void 0:et.pulse_member_contacts)??null};return patchPeopleCaches(rt),rt},updatePulseMemberContact=async(e,s)=>{const a=requireSupabase$2(),{data:c,error:g}=await a.from("pulse_member_contacts").upsert({person_id:e,...s},{onConflict:"person_id"}).select().single();if(g)throw new Error(g.message);return c},createPulsePersonDocumentUrl=async e=>{const s=requireSupabase$2(),{data:a,error:c}=await s.storage.from(e.bucket_id).createSignedUrl(e.object_path,60*10);if(c)throw new Error(c.message);return a.signedUrl},createPulseClaimLink=async e=>{const s=requireSupabase$2(),{data:a,error:c}=await s.functions.invoke("create-pulse-claim-link",{body:{personId:e}});if(c)throw new Error(c.message);if(!(a!=null&&a.claimUrl))throw new Error("Claim link function did not return a link.");return pulseDirectoryCache=(pulseDirectoryCache==null?void 0:pulseDirectoryCache.map(g=>g.id===e?{...g,pulse_profiles:{person_id:g.id,user_id:null,private_email:null,phone:null,location:null,internal_note:null,is_admin:!1,...g.pulse_profiles,account_status:"invited"}}:g))??null,a},claimPulseProfile=async({token:e,email:s,password:a})=>{const c=requireSupabase$2(),{data:g,error:et}=await c.functions.invoke("claim-pulse-profile",{body:{token:e,email:s,password:a}});if(et)throw new Error(et.message);if(!(g!=null&&g.ok))throw new Error("Could not claim profile.");return g},finnImage$1="/assets/finn-D52WjEjC.webp",maxImage="/assets/carlmaxmoog-Ck5OEMhC.webp",ducImage="/assets/duc-D-RzZ_sN.webp",fridoImage="/assets/frido-DzaYC_tP.webp",rebeccaImage="/assets/rebecca-BAIAqiKs.webp",fallbackTeamMembers=[{name:"Finn Richmann",image:finnImage$1,bio:"Finn has a background in Economic Psychology and International Relations from Ruhr-University Bochum as well as the London School of Economics and Political Science. After his studies he joined BCG as a strategy consultant."},{name:"Max Moog",image:maxImage,bio:"Carl Max Moog is pursuing a master's degree in political science at the University of Oxford, specialising in political behavior, Euroscepticism, and quantitative methods. He previously studied at the London School of Economics and gained practical experience through political volunteering and working at a corporate law firm."},{name:"Duc Hoang",image:ducImage,bio:"Duc studied mathematics and statistics at Ulm University, the University of Florida and at the Berlin Mathematical School. He is currently working towards a PhD in mathematics at the Humboldt University of Berlin with a focus on the theoretical foundations of scientific machine learning."},{name:"Friedrich Wicke",image:fridoImage,bio:"Friedrich studied Mathematics, Computer Science and Economics at TU Berlin, Harvard and ETH Zurich. He's currently working at a Start-Up."},{name:"Rebecca Obst",image:rebeccaImage,bio:"Rebecca studied Law at the University of Göttingen and the University of Galway. She is currently a PhD student focusing on reproductive medicine law and works as a research assistant at the Chair for German and European Private Law."}],teamMemberFromPulse=e=>({name:e.full_name,image:resolvePublicImageUrl(e.public_image_url),bio:e.public_bio??""}),initialsFor$2=e=>
905e.split(" ").filter(Boolean).slice(0,2).map(s=>s[0]).join("").toUpperCase(),About=()=>{const[e,s]=reactExports.useState(fallbackTeamMembers);return reactExports.useEffect(()=>{listPublicPeople().then(a=>{const c=a.filter(g=>g.role==="team").map(teamMemberFromPulse);c.length>0&&s(c)}).catch(()=>{s(fallbackTeamMembers)})},[]),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"About us",subtitle:"Fostering intellectual excellence and meaningful connections across Europe",image:aboutBackdrop,nextBg:"canvas"}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Our Mission",subtitle:"We connect and support exceptional students from across Europe."}),jsxRuntimeExports.jsx("div",{className:"max-w-4xl mx-auto",children:jsxRuntimeExports.jsxs("p",{className:"font-serif font-light text-xl md:text-2xl leading-relaxed text-ink/85 text-justify",children:["The European Academic Foundation (EAF) is a non-profit organization that empowers outstanding students across Europe to make meaningful contributions to society. Through our"," ",jsxRuntimeExports.jsx(Link,{to:"/fellowship",className:"underline decoration-ink/30 underline-offset-4 hover:decoration-ink",children:"fellowship program"}),", we connect exceptional talent across disciplines and provide comprehensive support throughout their academic journeys."]})}),jsxRuntimeExports.jsx("div",{className:"text-center mt-16",children:jsxRuntimeExports.jsxs(Link,{to:"/contact",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Get in Touch",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})})]}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Our Team",subtitle:"Meet the people behind the European Academic Foundation"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap justify-center gap-6",children:e.map(a=>jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("button",{className:"group text-center focus:outline-none w-[calc(50%-0.75rem)] md:w-[calc(25%-1.125rem)] lg:w-[calc(20%-1.2rem)]",children:[jsxRuntimeExports.jsx("div",{className:"relative w-full aspect-square overflow-hidden bg-canvas-deep mb-3 grain-heavy",children:a.image?jsxRuntimeExports.jsx("img",{src:a.image,alt:a.name,loading:"lazy",className:"w-full h-full object-cover grayscale-[0.2] opacity-95 mix-blend-multiply group-hover:grayscale-0 group-hover:opacity-100 group-hover:mix-blend-normal transition-all duration-150"}):jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-ink/10 font-serif text-4xl text-ink/35",children:initialsFor$2(a.name)})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-sm md:text-base text-ink leading-tight",children:a.name})]})}),jsxRuntimeExports.jsxs(DialogContent,{className:"max-w-2xl",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 overflow-hidden",children:a.image?jsxRuntimeExports.jsx("img",{src:a.image,alt:a.name,className:"w-full h-full object-cover"}):jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-ink/10 font-serif text-lg text-ink/35",children:initialsFor$2(a.name)})}),jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-2xl",children:a.name})})]})}),jsxRuntimeExports.jsx("p",{className:"text-ink/70 leading-relaxed",children:a.bio})]})]},a.name))})]})]})},PillarCard=({title:e,body:s,image:a,Icon:c})=>jsxRuntimeExports.jsxs("div",{className:"relative flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-baseline justify-between mb-6 gap-4",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl md:text-[1.75rem] leading-[1.15] text-ink",children:e}),c&&jsxRuntimeExports.jsx(c,{className:"h-5 w-5 text-ink/45 flex-shrink-0",strokeWidth:1.25})]}),a&&jsxRuntimeExports.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep",children:[jsxRuntimeExports.jsx("img",{src:a,alt:e,loading:"lazy",className:"absolute inset-0 w-full h-full object-cover",style:{zIndex:1}}
905),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 pointer-events-none",style:{zIndex:2,backgroundColor:"hsl(var(--canvas) / 0.72)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:3,opacity:.85}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 z-10 flex flex-col justify-end p-8 md:p-10",children:jsxRuntimeExports.jsx("p",{className:"text-base text-ink/75 leading-relaxed",children:s})})]})]}),fellowshipBackdrop="/assets/fellowship_backdrop-YbN_7znw.webp",Fellowship=()=>{const e=[{title:"Personal Excellence",description:"Pursue outstanding achievement in your chosen field. We value individuals who are dedicated to mastering their craft, demonstrating intellectual curiosity, and realizing their full potential through continuous personal and professional growth."},{title:"Community Engagement",description:"Actively participate in and contribute to the EAF network. Whether through sharing insights, mentoring peers, or organizing initiatives, your engagement strengthens our internal community and fosters a culture of mutual support and collaboration."},{title:"Societal Impact",description:"Leverage the collective power of the EAF community to create meaningful positive change. By combining your unique talents with our network's resources, you can drive initiatives that address broader societal challenges and make a lasting difference in the world."}],s=[{number:"I",title:"Academic Retreats",body:"We organize regular, fully funded academic retreats that allow Fellows to broaden their horizons and meet other Fellows from across Europe.",Icon:Compass,image:academy2025Image},{number:"II",title:"Mentorship",body:"We provide meaningful mentorship by pairing Fellows with world-class academics and practitioners who guide and support them throughout their academic journey.",Icon:Users,image:mentorsBackdrop},{number:"III",title:"Financial Support",body:"We offer project-based financial support to enable Fellows to initiate and engage in joint projects. We plan to also offer grants to support individual students.",Icon:Sprout,image:applyBackdrop}];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"Fellowship",subtitle:"Supporting exceptional university students from all disciplines",image:fellowshipBackdrop,children:jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/70 leading-relaxed max-w-3xl mx-auto",children:"The EAF Fellowship program spans the duration of the Fellows' studies and includes three main components designed to foster academic excellence, meaningful interpersonal connections and a spirit of service for the betterment of society."})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Three Pillars of Support",subtitle:"Comprehensive Support tailored to each Fellow's academic journey"}),jsxRuntimeExports.jsx("div",{className:"grid lg:grid-cols-3 gap-16 lg:gap-20",children:s.map(a=>jsxRuntimeExports.jsx(PillarCard,{title:a.title,body:a.body,image:a.image,Icon:a.Icon},a.number))})]}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Fellow Expectations",subtitle:"What we expect from our fellows"}),jsxRuntimeExports.jsx("div",{className:"max-w-4xl mx-auto space-y-6",children:e.map((a,c)=>jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-6 p-8 bg-canvas-soft border border-border",children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-4xl text-ink/25 flex-shrink-0 pt-1 w-12",children:String(c+1).padStart(2,"0")}),jsxRuntimeExports.jsxs("div",{className:"flex-1 space-y-3",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl text-ink",children:a.title}),jsxRuntimeExports.jsx("p",{className:"text-ink/65 leading-relaxed",children:a.description})]})]},a.title))}),jsxRuntimeExports.jsxs("div",{className:"text-center mt-20",children:[jsxRuntimeExports.jsx("p",{className:"font-serif text-xl md:text-2xl text-ink/70 mb-10 max-w-2xl mx-auto leading-relaxed",children:"Ready to join our community of exceptional Fellows and contribute to European society?"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col sm:flex-row gap-8 justify-center items-center",children:[jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Apply for 2027",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]}),jsxRuntimeExports.jsxs(Link,{to:"/cohorts",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink/70 border-b border-ink/25 hover:border-ink/60 hover:text-ink pb-1 transition-colors",children:["Meet Current Fellows",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]})]})},badgeVariants=cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Badge({className:e,variant:s,...a}){return jsxRuntimeExports.jsx("div",{className:cn(badgeVariants({variant:s}),e),...a})}const emojiToIso=e=>{const s=Array.from(e).map(g=>g.codePointAt(0)??0),a=127462,c=97;return s.filter(g=>g>
905=a&&g<a+26).map(g=>String.fromCharCode(g-a+c)).join("")},Flag=({emoji:e,className:s=""})=>{const a=emojiToIso(e);return a?jsxRuntimeExports.jsx("img",{src:`https://flagcdn.com/w40/${a}.png`,srcSet:`https://flagcdn.com/w80/${a}.png 2x`,alt:"","aria-hidden":!0,loading:"lazy",className:`inline-block h-[1em] w-auto align-[-0.15em] ${s}`}):jsxRuntimeExports.jsx("span",{className:s,children:e})},cohort2026Image="/assets/2026_apply-BG56sJDS.webp",retreatImage="/assets/2025-ZJCGaIIj.webp",cohort2024Image="/assets/2024-bpdNcGfQ.webp",nextAcademyImage="/assets/2026_open-C3JmizKQ.webp",neaImage="/assets/w24_nea-BglQRBHQ.webp",tomasImage="/assets/w24_tomas-DY64jmlC.webp",yevheniiImage="/assets/2025_yevhenii-DMwhiLwN.webp",beloslavaImage="/assets/2025_beloslava-CKQaejWi.webp",Cohorts=()=>{const e=[{year:"2027",status:"Applications Open",description:"",fellowsCount:"Applications now open",isApplications:!0,image:nextAcademyImage},{year:"2026",status:"Applications Closed",description:"",fellowsCount:"Applications closed",isApplications:!1,image:cohort2026Image,announcementDate:"September 1, 2026"},{year:"2025",status:"Active",description:"",fellowsCount:"16 Fellows",isApplications:!1,image:retreatImage},{year:"2024",status:"Active",description:"",fellowsCount:"15 Fellows",isApplications:!1,image:cohort2024Image}],s=[{name:"Nea Metohu",nationality:"Albanian",field:"Mathematics",university:"Various",bio:"Nea is a young mathematician, who won an honorable mention at the International Mathematical Olympiad. She volunteers as a Math tutor, Club leader and has academic as well as industry experience in the field of Machine Learning.",image:neaImage,flags:["ð¦ð±"]},{name:"Tomas Babelis",nationality:"Lithuanian-French",field:"Multiple Sciences",university:"Ãcole Polytechnique",bio:"Tomas is an exceptionally versatile scientist who has won medals across multiple disciplines - Physics, Mathematics, Chemistry, and Economics Olympiads. He now studies at Ãcole Polytechnique while giving back through teaching and mentoring younger students in mathematical olympiad preparation.",image:tomasImage,flags:["ð±ð¹","ð«ð·"]},{name:"Yevhenii Hohin",nationality:"Ukrainian-Polish",field:"Multiple Sciences",university:"Various",bio:"Yevhenii is a Ukrainian student and Olympiad medalist, having won silver at the International Junior Science Olympiad and distinctions in national competitions in physics, computer science, and linguistics. He is also committed to educational volunteering, creating math courses for displaced students and managing large-scale tutoring programs for over 1000 students. His research spans physics, linguistics, and AI, and he actively engages in projects that combine scientific innovation with social impact.",image:yevheniiImage,flags:["ðºð¦","ðµð±"]},{name:"Beloslava Malakova",nationality:"Bulgarian-Dutch",field:"Data Science",university:"Eindhoven University of Technology",bio:"Beloslava is a data scientist from Bulgaria studying at Eindhoven University of Technology. She has conducted research at the Bulgarian Academy of Sciences and received awards for her work in quantitative finance and machine learning. A former student of Sofia High School of Mathematics, she is now part of the TU/e Honors Academy, where she pursues research in graph theory and AI. She also mentors younger students and contributes to predictive analytics and applied computational modeling.",image:beloslavaImage,flags:["ð§ð¬","ð³ð±"]}];return jsxRuntimeExports.jsxs("div",{className:"pt-12 bg-canvas",children:[jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Cohorts",subtitle:"Meet the fellows of the European Academic Foundation"}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-16",children:e.map(a=>jsxRuntimeExports.jsx(CohortCard,{cohort:a},a.year))})]}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Meet Our Fellows",subtitle:"Some students from our current cohorts"}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-6 max-w-4xl mx-auto",children:s.map(a=>{var c,g;return jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("button",{className:"group text-left focus:outline-none",children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-square overflow-hidden bg-canvas-deep mb-4 grain-heavy",children:a.image?jsxRuntimeExports.jsx("img",{src:a.image,alt:a.name,loading:"lazy",className:"w-full h-full object-cover grayscale-[0.15] opacity-95 mix-blend-multiply group-hover:grayscale-0 group-hover:opacity-100 group-hover:mix-blend-normal transition-all duration-150"}):jsxRuntimeExports.jsx("div",{className:"w-full h-full bg-ink/10 flex items-center justify-center",children:jsxRuntimeExports.jsx("span",{className:"font-serif text-4xl text-ink/40",children:a.name.split(" ").map(et=>et[0]).join("")})})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5 text-base mb-1 min-h-[1.25em]",children:(c=a.flags)==null?void 0:c.map((et,rt)=>jsxRuntimeExports.jsx(Flag,{emoji:et},rt))}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-lg text-ink leading-tight group-hover:text-ink/70 transition-colors truncate",title:a.name,children:a.name}),jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.14em] uppercase text-ink/50 mt-1.5 truncate",title:a.field,children:a.field})]})}),jsxRuntimeExports.jsxs(DialogContent,{className:"max-w-md",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsxs(DialogTitle,{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("div",{className:"w-12 h-12 overflow-hidden",children:a.image&&jsxRuntimeExports.jsx("img",{src:a.image,alt:a.name,className:"w-full h-full object-cover"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-xl text-ink",children:a.name}),jsxRuntimeExports.jsxs("div",{className:"text-xs tracking-[0.14em] uppercase text-ink/50 mt-0.5 flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"flex items-center gap-1 text-base",children:(g=a.flags)==null?void 0:g.map((et,rt)=>jsxRuntimeExports.jsx(Flag,{emoji:et},rt))}),"⢠",a.field]})]})]})}
905),jsxRuntimeExports.jsxs("div",{className:"space-y-4 mt-2",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-1",children:"University"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/70",children:a.university})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-1",children:"Biography"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/70 leading-relaxed",children:a.bio})]})]})]})]},a.name)})}),jsxRuntimeExports.jsxs("div",{className:"text-center mt-20",children:[jsxRuntimeExports.jsx("p",{className:"font-serif text-xl text-ink/70 mb-8",children:"Interested in joining our community of exceptional Fellows?"}),jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Apply for 2027",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]})},CohortCard=({cohort:e})=>{const s=e.isApplications?"/apply":`/cohorts/${e.year}`,a=jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep grain-heavy",children:jsxRuntimeExports.jsx("img",{src:e.image,alt:`Cohort ${e.year}`,loading:"lazy",className:"w-full h-full object-cover transition-all duration-150"})}),jsxRuntimeExports.jsxs("div",{className:"p-7 space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsxs("h3",{className:"font-serif text-2xl text-ink",children:["Cohort of ",e.year]}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`${e.isApplications?"border-ink/40 text-ink":"border-ink/20 text-ink/60"} rounded-full text-[10px] tracking-[0.14em] uppercase px-3`,children:e.status})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2 text-sm leading-5 text-ink/55",children:[e.announcementDate?jsxRuntimeExports.jsx(CalendarDays,{className:"mt-0.5 h-4 w-4 shrink-0"}):jsxRuntimeExports.jsx(Users,{className:"mt-0.5 h-4 w-4 shrink-0"}),e.announcementDate?`Weâll announce the fellows on ${e.announcementDate}.`:e.fellowsCount]}),jsxRuntimeExports.jsxs("div",{className:"pt-2 text-sm tracking-[0.12em] uppercase text-ink/70 flex items-center gap-1.5 group-hover:gap-3 transition-all",children:[e.announcementDate?"Announcement coming soon":e.isApplications?"Apply Now":"View Fellows",!e.announcementDate&&jsxRuntimeExports.jsx(ArrowRight,{className:"h-3 w-3"})]})]})]});return e.announcementDate?jsxRuntimeExports.jsx("article",{className:"block overflow-hidden border border-border bg-canvas shadow-card",children:a}):jsxRuntimeExports.jsx(Link,{to:s,className:"group block overflow-hidden border border-border bg-canvas shadow-card transition-all duration-500 hover:shadow-hover",children:a})},countryCodes$1=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PS","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"],displayNames=new Intl.DisplayNames(["en"],{type:"region"}),flagEmojiForCode=e=>e.toUpperCase()==="XK"?"ð½ð°":e.toUpperCase().split("").map(s=>String.fromCodePoint(127397+s.charCodeAt(0))).join(""),countryOptions=countryCodes$1.map(e=>({code:e,name:e==="XK"?"Kosovo":displayNames.of(e)??e,flag:flagEmojiForCode(e)})).sort((e,s)=>e.name.localeCompare(s.name)),countryCodeByName=new Map(countryOptions.map(e=>[e.name.toLowerCase(),e.code])),countryAliases={albanian:"AL",austrian:"AT",british:"GB",bulgarian:"BG",croatian:"HR",czech:"CZ",dutch:"NL",french:"FR",georgian:"GE",german:"DE",greek:"GR",irish:"IE",italian:"IT",kosovar:"XK",lithuanian:"LT",moldovan:"MD",polish:"PL",romanian:"RO",serbian:"RS",spanish:"ES",swiss:"CH",turkish:"TR",ukrainian:"UA"},countryFlagEmojis=e=>e?[...new Set(e.split(/\s*[-/,]\s*/).map(s=>{const a=s.trim().toLowerCase(),c=countryAliases[a]??countryCodeByName.get(a)??(/^[a-z]{2}$/i.test(s)?s.toUpperCase():null);return c?flagEmojiForCode(c):null}).filter(s=>!!s))]:[],georgiosImage="/assets/w24_georgios-UU53587w.webp",eliasImage="/assets/w24_elias-Cs9w2eNO.webp",borisImage="/assets/w24_boris-DnLuYg5d.webp",emirImage="/assets/w24_emir-BDAsxwVN.webp",konstantineImage="/assets/w24_konstantine-VgwlgpLS.webp",jacquelineImage="/assets/w24_jacqueline-A3CdRhEo.webp",matejImage="/assets/w24_matej-rwuAb1Yq.webp",nielsImage="/assets/w24_niels-DUBFQFuQ.webp",saraImage="/assets/w24_sara-AY2Di_a2.webp",oleksandraImage="/assets/w24_oleksandra-DfRu4h5p.webp",linaImage="/assets/w24_lina-B39VZudA.webp",oscarImage="/assets/w24_oscar-Btrc5YOm.webp",medaImage="/assets/w24_meda-iD7gy4m1.webp",kseniiaImage="/assets/2025_kseniia-SgAMHOsh.webp",chiaraImage="/assets/2025_chiara-oHvsVXyG.webp",tudorImage="/assets/2025_tudor-3vHkoLHD.webp",benediktImage="/assets/2025_benedikt-DAGJj6D8.webp",davidImage="/assets/2025_david-C-7Znd7H.webp",alexandruImage="/assets/2025_alexandru-Cpqf-YxE.webp",elias2025Image="/assets/2025_elias-DC6s23XT.webp",pabloImage="/assets/2025_pablo-BVU51SPD.webp",dionImage="/assets/2025_dion-C9xSPMTz.webp",finnImage="/assets/2025_finn-JN071aj8.webp",matasImage="/assets/2025_matas-Btczxnr6.webp",jankoImage="/assets/2025_janko-DQ5b36Zm.webp",tinaImage="/assets/2025_tina-iDyvSh9T.webp",valeriiaImage="/assets/2025_valeriia-c1If-SAl.webp",cohortSlugFromPulse=e=>e.slug.replace(/^fellow-\d{4}-/,""),fellowFromPulse=e=>({name:e.full_name,slug:cohortSlugFromPulse(e),nationality:e.country??"",field:e.field??"",university:e.current_institution??"",bio:e.public_bio??"",image:resolvePublicImageUrl(e.public_image_url)??void 0,flags:countryFlagEmojis(e.country)}),CohortFellows=()=>{var ot;const{year:e,fellowSlug:s}=useParams(),a=useNavigate(),[c,g]=reactExports.useState(null),[et,rt]=reactExports.useState(null),nt=reactExports.useMemo(()=>
905({2024:[{name:"Nea Metohu",slug:"nea-metohu",nationality:"Albanian",field:"Mathematics",university:"Various",bio:"Nea is a young mathematician, who won an honorable mention at the International Mathematical Olympiad. She volunteers as a Math tutor, Club leader and has academic as well as industry experience in the field of Machine Learning.",image:neaImage,flags:["ð¦ð±"]},{name:"Georgios Tzachristas",slug:"georgios-tzachristas",nationality:"Greek",field:"Electrical & Computer Engineering",university:"National Technical University of Athens",bio:"Georgios is a decorated mathematician, having won a Gold Medal at the International Mathematical Olympiad with the best Greek score of all time. He is studying Electrical and Computer Engineering at the National Technical University of Athens. Additionally, he is also a successful chess player, concert pianist and an athlete.",image:georgiosImage,flags:["ð¬ð·"]},{name:"Elias Hohl",slug:"elias-hohl",nationality:"Austrian-Swiss",field:"Physics",university:"Various",bio:"Elias is a decorated physicist, having won Gold Medals at the International Physics Olympiad and the EU Science Olympiad for the Austrian team, which he is now the national trainer for. He is also interested in cybersecurity, having discovered multiple vulnerabilities in commonly used software.",image:eliasImage,flags:["ð¦ð¹"]},{name:"Boris Gachevski",slug:"boris-gachevski",nationality:"Bulgarian-Swiss",field:"Mathematics",university:"Various",bio:"Boris is an accomplished mathematician, having won a Bronze Medal at the International Mathematical Olympiad and a Gold Medal at the International Zhautykov Olympiad. Outside of his studies, he contributes to STEM education for disadvantaged children and addressing public stigma around eating disorders.",image:borisImage,flags:["ð§ð¬"]},{name:"Muhsin Emir Karabag",slug:"muhsin-emir-karabag",nationality:"Turkish-French",field:"Philosophy",university:"Various",bio:"Emir is an accomplished student leader and intellectual, having received an Honorable Mention at the International Philosophy Olympiad. He serves as President of his school's Model UN Club and Editor-in-Chief of the philosophy journal. His volunteer work focuses on education for underprivileged students and those with special needs.",image:emirImage,flags:["ð¹ð·"]},{name:"Konstantine Pirtskhalaishvili",slug:"konstantine-pirtskhalaishvili",nationality:"Georgian",field:"Law",university:"Tbilisi State University",bio:"Konstantine is an exceptional law student consistently ranking top of his programme at Tbilisi State University who has already gained significant practical experience through internships at the US Embassy and BLC Law Office as well as representing NGOs. He regularly participates in moot court competitions such as the Willem C. Vis International Commercial Arbitratrion Moot. Additionally, he leads youth initiatives through EU Neighbours East and has received recognition including an Ambassadorial Award for his work.",image:konstantineImage,flags:["ð¬ðª"]},{name:"Jacqueline Maria Guitu",slug:"jacqueline-maria-guitu",nationality:"German-Moldovan-Swiss",field:"Medicine & Physics",university:"University of Zurich & ETH Zurich",bio:"Jacqueline is a multilingual medical student who has excelled in linguistics, winning multiple medals at the German Linguistics Olympiad and representing Germany at international competitions. She balances her medical studies at the University of Zurich with parallel studies in Physics at ETH Zurich while also volunteering as a tutor for refugees.",image:jacquelineImage,flags:["ð©ðª","ð²ð©"]},{name:"MatÄj Pokorný",slug:"matej-pokorny",nationality:"Czech",field:"Biology",university:"Various",bio:"MatÄj is an accomplished biologist who won multiple medals at international competitions, including two silver medals at the International Biology Olympiad. He already conducted research on prebiotic catalysis and molecular evolution while also organizing educational initiatives like the FluorescenÄnà noc weekend course for young biologists.",image:matejImage,flags:["ð¨ð¿"]},{name:"Niels van den Bosch",slug:"niels-van-den-bosch",nationality:"Dutch",field:"Chemistry",university:"Various",bio:"Niels is a chemistry student who w
905on a bronze medal at the International Chemistry Olympiad. He works as an assistant teacher and tutor while pursuing his passion for molecular science. Outside academics, he contributes to nature conservation through volunteer work.",image:nielsImage,flags:["ð³ð±"]},{name:"Sara PavloviÄ",slug:"sara-pavlovic",nationality:"Serbian",field:"Business",university:"Various",bio:"Sara is a business student and former researcher of the Petnica Science Center, where she conducted studies in technical sciences and psychology. She is active in the European Youth Parliament Network and serves as an Impact and Governance Officer for the Global Shapers Community Belgrade Hub.",image:saraImage,flags:["ð·ð¸"]},{name:"Tomas Babelis",slug:"tomas-babelis",nationality:"Lithuanian-French",field:"Multiple Sciences",university:"Ãcole Polytechnique",bio:"Tomas is an exceptionally versatile scientist who has won medals across multiple disciplines - Physics, Mathematics, Chemistry, and Economics Olympiads. He now studies at Ãcole Polytechnique while giving back through teaching and mentoring younger students in mathematical olympiad preparation.",image:tomasImage,flags:["ð±ð¹"]},{name:"Oleksandra Atamanenko",slug:"oleksandra-atamanenko",nationality:"Ukrainian-Irish",field:"Business",university:"Trinity College Dublin",bio:"Oleksandra is a Ukrainian student at Trinity College Dublin who excels in both academics and arts, having won national competitions in English and art. She actively volunteers to support Ukrainian refugees and youth initiatives while pursuing her business studies.",image:oleksandraImage,flags:["ðºð¦"]},{name:"Lina Mograby",slug:"lina-mograby",nationality:"German",field:"Medicine & Neuroscience",university:"Charité",bio:"Lina is a medical student focusing on neuroscience and psychiatry. She conducts research at Charité Mind and Brain Department and has published in Science. She has lead initiatives through High Impact Medicine and advocated for scholar interests as a Regional Speaker for the German Academic Scholarship Foundation.",image:linaImage,flags:["ð©ðª"]},{name:"Ãscar Garries",slug:"oscar-garries",nationality:"Spanish",field:"Computer Science",university:"Various",bio:"Ãscar is a talented computer scientist who interned at Google, working in Gemini. He excels in competitive programming, having won a gold medal at the Spanish National Olympiad and a silver medal at the Iberoamerican Informatics Olympiad.",image:oscarImage,flags:["ðªð¸"]},{name:"Meda SurdokaitÄ",slug:"meda-surdokaite",nationality:"Lithuanian",field:"Chemistry",university:"KTU",bio:"Meda is an accomplished chemistry researcher who is the first lithuanian girl to win medals at ISEF and EUCYS. She is determined to become an independent scientist and actively pursues opportunities in chemistry and life sciences beyond university. Currently, she conducts research at multiple institutions, including KTU's Santaka Valley and in the lab of Prof. Vytautas Getautis, while also working as a laboratory assistant and teaching assistant alongside her studies.",image:medaImage,flags:["ð±ð¹"]}],2025:[{name:"Kseniia Chumachenko",slug:"kseniia-chumachenko",nationality:"Ukrainian-Irish",field:"International Commerce",university:"University College Dublin",bio:"Kseniia is a second-year Commerce International with Chinese student at University College Dublin. Recognised as a UCD Entrance Scholar, she has strong academic and practical experience in finance, combined with fluency in five languages and a talent for working across diverse teams. Beyond her studies, she has taken on leadership and mentoring roles through University Societies and LIFT Ireland, a youth-focused program supporting personal development and goal-setting.",image:kseniiaImage,flags:["ðºð¦"]},{name:"Chiara De Piccoli",slug:"chiara-de-piccoli",nationality:"Italian",field:"Economics & Data Science",university:"Various",bio:"Chiara is an Italian economics and data science student with strong analytical and consulting interests. She has conducted research at the intersection of economics and computational methods, and contributes to projects that combine rigorous analysis with real-world applications. She is passionate about applying quantitative research to solve complex challenges.",image:chiaraImage,flags:["ð®ð¹"]},{name:"Tudor Dochia",slug:"tudor-dochia",nationality:"Romanian",field:"Political Science",university:"Various",bio:"Tudor is a Romanian political science student with a focus on European governance. He actively participates in policy debates and research projects, exploring questions of democracy and institutional development. Through his involvement in youth policy initiatives, he bridges academic study with civic engagement on European issues.",image:tudorImage,flags:["ð·ð´"]},{name:"Benedikt Meier",slug:"benedikt-meier",nationality:"German",field:"Law",university:"Heidelberg University",bio:"Benedikt is a German law student at Heidelberg University, where he combines legal studies with interdisciplinary work on sustainability and economics. He has gained experience through research at the Max Planck Institute for Comparative Public Law and Freshfields Bruckhaus Deringer. As Impact Officer of the Global Shapers He
905idelberg, he leads projects on digital inclusion and political education. He is also a classical percussionist and conductor.",image:benediktImage,flags:["ð©ðª"]},{name:"Yevhenii Hohin",slug:"yevhenii-hohin",nationality:"Ukrainian-Polish",field:"Multiple Sciences",university:"Various",bio:"Yevhenii is a Ukrainian student and Olympiad medalist, having won silver at the International Junior Science Olympiad and distinctions in national competitions in physics, computer science, and linguistics. He is also committed to educational volunteering, creating math courses for displaced students and managing large-scale tutoring programs for over 1000 students. His research spans physics, linguistics, and AI, and he actively engages in projects that combine scientific innovation with social impact.",image:yevheniiImage,flags:["ðºð¦"]},{name:"David Lang",slug:"david-lang",nationality:"Croatian",field:"Mathematics",university:"University of Zagreb",bio:"David is a young physicist and mathematician from Croatia, who won a Silver Medal at the International Mathematical Olympiad and has strong achievements in computer science competitions. He studies Mathematics at the University of Zagreb, where his research focuses on computational modeling and number theory. Beyond his own studies, he mentors younger students in competitive mathematics and contributes to outreach camps and publications.",image:davidImage,flags:["ðð·"]},{name:"Alexandru TurculeÈ",slug:"alexandru-turculet",nationality:"Romanian",field:"Computer Science & Mathematics",university:"West University of TimiÈoara",bio:"Alexandru is a Romanian student of computer science and applied mathematics, recognized with awards at EUCYS, ISEF, and other international competitions. His projects span robotics, machine learning, and engineering, including innovations in PCB assembly and paragliding safety devices. He now studies Computer Science at West University of TimiÈoara while continuing to pursue cutting-edge research and technology development.",image:alexandruImage,flags:["ð·ð´"]},{name:"Elias Koschier",slug:"elias-koschier",nationality:"Austrian-Swiss",field:"Physics",university:"ETH Zurich",bio:"Elias Koschier is a talented physicist from Austria, studying at ETH Zurich in his final year and is interested in Frontier AI for Science Research. He made it to the International Physics Olympiad (IPhO) at the age of 15 and scored top ranks at the International Young Physicists Torunament (IYPT) and Physics Cup. He enjoys teaching as much as learning, both within and outside of the academic context and founded the Astronomy Olympiad in Austria. In his free time he loves working on coding projects and has participated in Hackathons like HackMIT.",image:elias2025Image,flags:["ð¦ð¹"]},{name:"Pablo Luengo MartÃn",slug:"pablo-luengo-martin",nationality:"Spanish",field:"Medicine",university:"Various",bio:"Pablo is a Spanish medical researcher with a strong interest in translational science. He studied medicine while contributing to academic health initiatives and volunteering in community organizations. His interdisciplinary focus spans research, clinical practice, and data-driven projects in healthcare, and he actively contributes to advancing medical education and public health.",image:pabloImage,flags:["ðªð¸"]},{name:"Dion Aliu",slug:"dion-aliu",nationality:"Kosovar-British",field:"Mathematics",university:"University of York",bio:"Dion is an aspiring mathematician from Kosovo, who represented his country at the International Mathematical Olympiad for three consecutive years. He founded and coordinated Olympiad initiatives across Kosovo and Albania, creating original problems and mentoring younger students. Currently studying Mathematics at the University of York, he combines competition excellence with impactful outreach, teaching advanced number theory and combinatorics to over 50 students in schools and workshops.",image:dionImage,flags:["ð½ð°"]},{name:"Finn Gleichmann",slug:"finn-gleichmann",nationality:"German-Dutch",field:"Spatial Planning & Design",university:"University of Groningen",bio:"Finn is a civic-minded researcher with a background in spatial planning, physics, and applied mathematics. He studies Spatial Planning and Design at the University of Groningen and has conducted research in sustainability and urban development. As President of the Young European Federalists Netherlands, he leads national initiatives for youth engagement in European integration. He also co-authored academic research on sustainable development and coordinates projects on transport, climate, and civic participation.",image:finnImage,flags:["ð©ðª"]},{name:"Matas Povilaitis",slug:"matas-povilaitis",nationality:"Lithuanian",field:"Mathematics",university:"Various",bio:"Matas is a Lithuanian mathematician who represented his country at international Olympiads, including MEMO and the Baltic Way. He has authored and checked problems for textbooks and hosts a math Olympiad club for students. Spending countless hours each day on advanced problem-solving, he is preparing for the International Mathematical Olympiad 2025 while applying to Cambridge University. His dedication lies in both mastering mathematics and sharing it with others through teaching and problem design.",image:matasImage,flags:["ð±ð¹"]},{name:"Beloslava Malakova",slug:"beloslava-malakova",nationality:"Bulgarian-Dutch",field:"Data Science",university:"Eindhoven University of Technology",bio:"Beloslava is a data scientist from Bulgaria studying at Eindhoven University of Technology. She has conducted research at the Bulgarian Academy of Sciences and received awards for her work in quantitative finance and machine learning. A former student of Sofia High School of Mathematics, she is now part of the TU/e Honors Academy, where she pursues research in graph theory and AI. She also mentors younger students and contributes to predictive analytics and applied computational modeling.",image:beloslavaImage,flags:["ð§ð¬"]},{name:"Janko BuÅ¡eliÄ",slug:"janko-buselic",nationality:"Croatian",field:"Mathematics",university:"University of Zagreb",bio:"Janko is a mathematics student at the University of Zagreb. Driven by a passion for solving challenging problems, he has achieved significant success in competitive mathematics, winning Bronze medals at the International Mathematical Olympiad in both 2022 and 2023. He also secured Bronze medals at the Middle European Mathematical Olympiad in 2021. Janko actively gives back to the community by volunteering with Young Gifted Mathematicians Marin Getaldic, where he mentors students and composes problems for math competitions.",image:jankoImage,flags:["ðð·"]},{name:"Tina Ding",slug:"tina-ding",nationality:"German",field:"Mathematics",university:"University of Cambridge",bio:"Tina is a mathematician at the University of Cambridge with a distinguished record in Science Olympiads, including a 2nd place finish at the European Girls' Mathematical Olympiad and a top 16 ranking in Germany for Physics. She now takes on leadership roles in the Olympiad community, sharing her expertise through volunteering at seminars. Outside her studies, she enjoys sports and board games, which provide balance to her academic pursuits.",image:tinaImage,flags:["ð©ðª"]},{name:"Valeriia Pishchymukha",slug:"valeriia-pishchymukha",nationality:"Ukrainian",field:"Linguistics",university:"Colegiul NaÈional George CoÈbuc",bio:"Valeriia is a Ukrainian linguistics olympiad medalist educated in Kyiv and Cluj-Napoca. She won bronze medals at the International Linguistics Olympiad in 2023 and 2025, and graduated from Colegiul NaÈional George CoÈbuc with strong Bacalaureat results in mathematics and physics. Alongside fluency in Romanian and native Ukrainian and Russian, she has C1 English and German, programming experience in C++, C#, HTML, CSS, and JavaScript, and interests in illustration, European history, and foreign language learning.",image:valeriiaImage,flags:["ðºð¦"]}]}),[]);reactExports.useEffect(()=>{let lt=!0;return listPublicPeople().then(ct=>{if(!lt)return;const dt=ct.filter(ut=>ut.role==="fellow"||ut.role==="alumni").reduce((ut,xt)=>(ut[xt.cohort]=[...ut[xt.cohort]??[],fellowFromPulse(xt)],ut),{});rt(dt)}).catch(()=>{lt&&rt(null)}),()=>{lt=!1}},[]);const st=reactExports.useMemo(()=>e?(et==null?void 0:et[e])??nt[e]??[]:[],[nt,et,e]);if(reactExports.useEffect(()=>{if(s){const lt=st.find(ct=>ct.slug===s);lt?g(lt):a(`/cohorts/${e}`,{replace:!0})}else g(null)},[s,st,a,e]),!e||!nt[e])return jsxRuntimeExports.jsx(Navigate,{to:"/cohorts",replace:!0});const at=lt=>{a(`/cohorts/${e}/${lt.slug}`)},it=()=>{a(`/cohorts/${e}`)};return jsxRuntimeExports.jsxs("div",{className:"pt-12 bg-canvas",children:[jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsxs("div",{className:"mb-12",children:[jsxRuntimeExports.jsx(Button,{variant:"ghost",asChild:!0,className:"mb-6",children:jsxRuntimeExports.jsxs(Link,{to:"/cohorts",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Cohorts"]})}),jsxRuntimeExports.jsx(SectionHeader,{title:`Cohort ${e} Fellows`,subtitle:`Meet the ${st.length} exceptional students in our ${e} cohort`})]}),jsxRuntimeExports.jsx("div",{className:"grid grid-cols-4 gap-4 md:gap-6 max-w-4xl mx-auto",children:st.map((lt,ct)=>{var dt;return jsxRuntimeExports.jsxs("button",{onClick:()=>at(lt),className:"group text-left focus:outline-none",children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-square overflow-hidden bg-canvas-deep mb-4 grain-heavy",children:lt.image?jsxRuntimeExports.jsx("img",{src:lt.image,alt:lt.name,loading:"lazy",className:"w-full h-full object-cover grayscale-[0.15] opacity-95 mix-blend-multiply group-hover:grayscale-0 group-hover:opacity-100 group-hover:mix-blend-normal transition-all duration-150"}):jsxRuntimeExports.jsx("div",{className:"w-full h-full bg-ink/10 flex items-center justify-center",children:jsxRuntimeExports.jsx("span",{className:"font-serif text-4xl text-ink/40",children:lt.name.split(" ").map(ut=>ut[0]).join("")})})}),jsxRuntimeExports.jsx("div",{className:"flex items-center gap-1.5 text-base mb-1 min-h-[1.25rem]",children:(dt=lt.flags)!=null&&dt.length?lt.flags.map((ut,xt)=>jsxRuntimeExports.jsx(Flag,{emoji:ut},xt)):jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1 text-xs text-ink/55",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3 w-3"}),lt.nationality]})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-lg md:text-xl text-ink leading-tight group-hover:text-ink/70 transition-colors truncate",title:lt.name,children:lt.name}),jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.14em] uppercase text-ink/50 mt-1.5 truncate",title:lt.field,children:lt.field})]},ct)})})]}),jsxRuntimeExports.jsx(Dialog,{open:!!c,onOpenChange:lt=>!lt&&it(),children:jsxRuntimeExports.jsx(DialogContent,{className:"max-w-2xl",children:c&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-2xl text-ink",children:c.name})}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-2 gap-6 mt-4",children:[jsxRuntimeExports.jsx("div",{className:"aspect-square overflow-hidden bg-canvas-deep",children:c.image?jsxRuntimeExports.jsx("img",{src:c.image,alt:c.name,loading:"lazy",className:"w-full h-full object-cover",style:{mixBlendMode:"multiply",opacity:.98}}):jsxRuntimeExports.jsx("div",{className:"w-full h-full bg-ink/10 flex items-center justify-center",children:jsxRuntimeExports.jsx("span",{className:"font-serif text-4xl text-ink/40",children:c.name.split(" ").map(lt=>lt[0]).join("")})})}),jsxRuntimeExports.jsxs("div",{className:"space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 mb-3 text-base",children:[(ot=c.flags)!=null&&ot.length?c.flags.map((lt,ct)=>jsxRuntimeExports.jsx(Flag,{emoji:lt},ct)):jsxRuntimeExports.jsx("span",{className:"text-sm text-ink/55",children:c.nationality}),jsxRuntimeExports.jsx("span",{className:"text-ink/30",children:"·"}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"rounded-full text-[10px] tracking-[0.14em] uppercase",children:c.field})]}),jsxRuntimeExports.jsx("div",{className:"inline-flex items-center px-3 py-1 border border-border text-xs text-ink/65 bg-canvas-soft",children:c.university})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Biography"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/70 leading-relaxed",children:c.bio})]})]})]})]})})})]})},benjaminImage="/assets/benjamin-iF7K9esP.webp",svenImage="/assets/sven-DSCWwSBi.webp",korneliaImage="/assets/kornelia-J32kQUJ7.webp",nikiImage="/assets/Niki-BMt_yOjA.webp",dominikaImage="/assets/dominika-DGm8vm1K.webp",martaImage="/assets/marta-JOrDIVy9.webp",giselaImage="/assets/gisela-DED0lN__.webp",Mentors=()=>{const e=reactExports.useRef(null),s=()=>{var g;return(g=e.current)==null?void 0:g.scrollBy({left:-320,behavior:"smooth"})},a=()=>{var g;return(g=e.current)==null?void 0:g.scrollBy({left:320,behavior:"smooth"})},c=[{name:"Benjamin Arold",title:"Economics",university:"University of Cambridge",field:"Economics",bio:"Benjamin is an Assistant Professor of Economics at the University of Cambridge. He conducts research on Economics of Education, Economics of Religion and Political Economy using Causal Inference, Machine Learning and Computational Linguistics.",image:benjaminImage},{name:"Sven Wang",title:"Mathematics",university:"EPFL Lausanne",field:"Mathematics",bio:"Sven Wang is an Assistant Professor of Mathematics at EPFL Lausanne. His research focuses on Statistical Inference in Complex Systems, Mathematics of Data Science, Bayesian Inference, and Social Choice Theory. Before joining EPFL, he completed a postdoctoral fellowship at MIT (2021-2023) and earned his PhD from Cambridge University.",image:svenImage},{name:"Kornelia KoÅczal",title:"Public History",university:"University of Bielefeld",field:"History",bio:"Kornelia KoÅczal is an Assistant Professor of Public History at the University of Bielefeld. She completed her PhD at the European University Institute in Florence in 2017 and held positions at the Max-Weber-Kolleg in Erfurt, the Hannah-Arendt-Institut in Dresden, and LMU Munich. Her research focuses on European contemporary history, particularly the societal transformations around 1945 and 1989/1991, the transnational history of the humanities and social sciences since the late 19th century, and interactions between politics, society, and memory.",image:korneliaImage},{name:"Niki Kilbertus",title:"Machine Learning",university:"TU Munich",field:"Machine Learning",bio:"Niki Kilbertus is an Assistant Professor of Machine Learning at TU Munich. His research interests include Causal Inference, Algorithmic Fairness, and the intersection of Machine Learning and Causal Reasoning. He obtained his PhD from the University of Cambridge and was a postdoctoral fellow at the University of Toronto.",image:nikiImage},{name:"Dominika Wylezalek",title:"Astrophysics",university:"Heidelberg University",field:"Astrophysics",bio:"Dominika Wylezalek is a DFG-funded Emmy-Noether Research Group Leader at Heidelberg University. Her research focuses on galaxy formation and evolution, with a particular interest in supermassive black holes and their role in shaping the universe. She uses multi-wavelength observations to study active galactic nuclei, feedback mechanisms, and the formation of large-scale structures in the early universe.",image:dominikaImage},{name:"Marta Bucholc",title:"Sociology",university:"University of Warsaw",field:"Sociology",bio:"Marta Bucholc is a Professor of Sociology at the University of Warsaw and a Recurrent Visiting Professor at the Centre de recherche en science politique, Université Saint-Louis Bruxelles. Her research focuses on the sociology of law, historical sociology, social theory, and sociology of knowledge. She has published extensively on the rule of law, constitutionalism, and European integration.",image:martaImage},{name:"Gisela Kopp",title:"Evolutionary Biology",university:"University of Konstanz",field:"Evolutionary Biology",bio:"Gise
905la Kopp is an evolutionary biologist and a Research Fellow at the Zukunftskolleg, University of Konstanz. Her research is situated at the intersection of Evolutionary Biology, Animal Behaviour and Genomics, with a focus on primates.",image:giselaImage}];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"Mentors",subtitle:"World-class academics to guide and support our fellows.",image:mentorsBackdrop,nextBg:"canvas",children:jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/70 leading-relaxed max-w-3xl mx-auto",children:"Our mentorship program pairs each fellow with a distinguished academic who provides personalized guidance throughout their studies. In the semesterly meeting, mentors offer advice on academic, career and personal development matters."})}),jsxRuntimeExports.jsx(Section,{children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-4xl mx-auto",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-3xl md:text-4xl text-ink mb-6",children:"The Mentorship Experience"}),jsxRuntimeExports.jsx("p",{className:"text-lg text-ink/65 leading-relaxed mb-12 max-w-2xl mx-auto",children:"This one-on-one relationship is designed to help fellows reach their full to make meaningful contributions to European academia and society."}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-3 gap-10 text-center border-t border-border pt-10",children:[jsxRuntimeExports.jsx(Stat$1,{value:"Every semester",label:"Regular Sessions"}),jsxRuntimeExports.jsx(Stat$1,{value:"1:1",label:"Personalized Mentoring"}),jsxRuntimeExports.jsx(Stat$1,{value:"Lifetime",label:"Network Access"})]})]})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsxs("div",{className:"text-center max-w-4xl mx-auto mb-12",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl md:text-4xl lg:text-5xl text-ink mb-6 leading-[1.1]",children:"Mentors"}),jsxRuntimeExports.jsx("p",{className:"text-base md:text-lg text-ink/65 leading-relaxed",children:"Young academics and professionals who offer their guidance and support to our fellows. They provide personalized guidance, share their expertise, and help fellows navigate their academic and professional journeys. Each mentor brings cutting-edge research experience and a passion for nurturing the next generation of European leaders."})]}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Button,{variant:"outline",size:"icon",className:"absolute left-0 top-1/2 -translate-y-1/2 z-10 bg-canvas hover:bg-canvas-soft !h-10 !w-10 !p-0",onClick:s,children:jsxRuntimeExports.jsx(ChevronLeft,{className:"h-4 w-4"})}),jsxRuntimeExports.jsx("div",{ref:e,className:"flex gap-6 overflow-x-auto scrollbar-hide pb-4 px-14 scroll-smooth",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:c.map(g=>{var et;return jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("button",{className:"flex-shrink-0 w-48 group text-left focus:outline-none",children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-square overflow-hidden bg-canvas-deep mb-4 grain-heavy",children:g.image?jsxRuntimeExports.jsx("img",{src:g.image,alt:g.name,loading:"lazy",className:"w-full h-full object-cover grayscale-[0.2] opacity-95 mix-blend-multiply group-hover:grayscale-0 group-hover:opacity-100 group-hover:mix-blend-normal transition-all duration-150"}):jsxRuntimeExports.jsx("div",{className:"w-full h-full flex items-center justify-center bg-ink/10",children:jsxRuntimeExports.jsxs("span",{className:"font-serif text-4xl text-ink/40",children:[g.name.split(" ").slice(-1)[0][0],((et=g.name.split(" ")[1])==null?void 0:et[0])||""]})})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl text-ink leading-tight",children:g.name}),jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.14em] uppercase text-ink/50 mt-1.5",children:g.field}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-sm text-ink/55 mt-2",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3 w-3"}),g.university]})]})}),jsxRuntimeExports.jsxs(DialogContent,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsxs(DialogTitle,{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 overflow-hidden",children:g.image&&jsxRuntimeExports.jsx("img",{src:g.image,alt:g.name,className:"w-full h-full object-cover"})}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-2xl text-ink",children:g.name}),jsxRuntimeExports.jsx("div",{className:"text-xs tracking-[0.14em] uppercase text-ink/50 mt-1",children:g.title}),jsxRuntimeExports.jsx("div",{className:"text-xs text-ink/55 mt-0.5",children:g.university})]})]})}),jsxRuntimeExports.jsxs("div",{className:"mt-4",children:[jsxRuntimeExports.jsxs("div",{className:"eyebrow mb-2 flex items-center gap-2",children:[jsxRuntimeExports.jsx(BookOpen,{className:"h-3 w-3"})," Biography"]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/70 leading-relaxed",children:g.bio})]})]})]},g.name)}
905)}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"icon",className:"absolute right-0 top-1/2 -translate-y-1/2 z-10 bg-canvas hover:bg-canvas-soft !h-10 !w-10 !p-0",onClick:a,children:jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4"})})]})]})]})},Stat$1=({value:e,label:s})=>jsxRuntimeExports.jsxs("div",{className:"space-y-2",children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-3xl md:text-4xl text-ink",children:e}),jsxRuntimeExports.jsx("div",{className:"text-[11px] tracking-[0.18em] uppercase text-ink/50",children:s})]}),academiesBackdrop="/assets/academies_backdrop-BlmyrADE.webp",academy2026Image="/assets/2026_apply-BG56sJDS.webp",academy2024Image="/assets/2024_academy_preview-DstiKOFp.webp",Academies=()=>{const e=[{year:"2027",status:"Applications Open",title:"2027 Academy",description:"Applications are open; academy details are TBD",location:"TBD",dates:"TBD",image:nextAcademyImage,isUpcoming:!0,href:"/apply",action:"Apply for 2027"},{year:"2026",status:"Upcoming",title:"Torino Academy",description:"Applications closed",location:"Torino, Italy",dates:"August 22â29, 2026",image:academy2026Image,isUpcoming:!0,href:"/academies/2026",action:"Preview academy"},{year:"2025",status:"Completed",title:"Benediktbeuern Academy",description:"Creative Coding and International Relations seminars",location:"Benediktbeuern, Bavaria",dates:"2025",image:academy2025Image,isUpcoming:!1,href:"/academies/2025/report",action:"View report"},{year:"2024",status:"Completed",title:"Mittenwald Academy",description:"The Future of European Democracy â inaugural academy",location:"Mittenwald, Germany",dates:"January 4â11, 2025",image:academy2024Image,isUpcoming:!1,href:"/academies/2024/report",action:"View report"}];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"Academies",subtitle:"Intensive academic retreats that bring together Fellows for collaborative interdisciplinary learning and research.",image:academiesBackdrop,children:jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/70 leading-relaxed max-w-3xl mx-auto",children:"Our academies are the cornerstone of the fellowship experience - intensive, fully-funded retreats that combine rigorous academic programming with cultural exchange and networking. Each academy focuses on pressing European challenges and brings together fellows from diverse disciplines to collaborate on solutions."})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Academy Timeline",subtitle:"Past and upcoming academy opportunities"}),jsxRuntimeExports.jsx("div",{className:"max-w-6xl mx-auto",children:jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-10 md:gap-12",children:e.map(s=>jsxRuntimeExports.jsxs("div",{className:"flex flex-col",children:[jsxRuntimeExports.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep mb-6",children:[jsxRuntimeExports.jsx("img",{src:s.image,alt:s.title,loading:"lazy",className:"absolute inset-0 w-full h-full object-cover",style:{zIndex:1}}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 pointer-events-none",style:{zIndex:2,backgroundColor:s.isUpcoming?"hsl(var(--canvas) / 0.2)":"hsl(var(--canvas) / 0.4)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:3,opacity:.6}),jsxRuntimeExports.jsx("div",{className:"absolute top-4 left-4 z-10 eyebrow text-ink/80 bg-canvas/70 px-2.5 py-1",children:s.year}),s.isUpcoming&&jsxRuntimeExports.jsx("div",{className:"absolute top-4 right-4 z-10 eyebrow text-canvas bg-ink px-2.5 py-1",children:s.status})]}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl md:text-[1.6rem] text-ink leading-tight mb-3",children:s.title}),jsxRuntimeExports.jsxs("div",{className:"space-y-1.5 text-sm text-ink/65 mb-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-3.5 w-3.5 text-ink/45"}),jsxRuntimeExports.jsx("span",{children:s.dates})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3.5 w-3.5 text-ink/45"}),jsxRuntimeExports.jsx("span",{children:s.location})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55 mb-4",children:s.description}),jsxRuntimeExports.jsx("div",{className:"mt-auto pt-2",children:jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"link",size:"sm",className:"!p-0 !h-auto",children:jsxRuntimeExports.jsxs(Link,{to:s.href,children:[s.action," ",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-1 h-3 w-3"})]})})})]},s.year))})})]}),jsxRuntimeExports.jsx(Section,{variant:"primary",grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-6xl leading-[1.05] tracking-tight",children:"Join Our Next Academy"}),jsxRuntimeExports.jsx("p",{className:"mt-8 text-lg md:text-xl text-canvas/70 leading-relaxed",children:"Applications for the 2027 fellowship cohort are now open. The next academy will take place in 2027; dates and location are still to be announced."}),jsxRuntimeExports.jsxs("div",{className:"mt-12 flex flex-col sm:flex-row gap-8 justify-center items-center",children:[jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas border-b border-canvas/50 hover:border-canvas pb-1 transition-colors",children:["Apply for 2027",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]}),jsxRuntimeExports.jsxs(Link,{to:"/fellowship",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas/80 border-b border-canvas/30 hover:border-canvas/70 hover:text-canvas pb-1 transition-colors",children:["Learn About Fellowship",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})})]})},AcademyReport=()=>{const{year:e}=useParams(),s=e?`academy_${e}`:"",a=getArticleBySlug(s);if(!a)return jsxRuntimeExports.jsx("div",{className:"min-h-screen flex items-center justify-center bg-canvas text-ink",children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-md px-6",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Not Found"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl md:text-5xl text-ink mb-6",children:"Report Not Found"}),jsxRuntimeExports.jsxs("p",{className:"text-ink/65 mb-8 leading-relaxed",children:["The academy report for ",e," is not available."]}),jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/academies",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Academies"]})})]})});const c=getArticleHTMLContent(a.id);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("section",{className:"relative overflow-hidden bg-ink text-white",style:{minHeight:"62vh"},children:[a.image&&jsxRuntimeExports.jsx("img",{src:a.image,alt:"","aria-hidden":!0,
905className:"absolute inset-0 w-full h-full object-cover object-center"}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundColor:"hsl(220 96% 17% / 0.6)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:4,opacity:.18}),jsxRuntimeExports.jsxs("div",{className:"relative z-10 max-w-5xl mx-auto px-6 sm:px-8 py-24 md:py-32 text-center flex flex-col items-center",style:{minHeight:"62vh"},children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",className:"mb-8 self-center border-white/60 text-white hover:bg-white/10 hover:text-white",children:jsxRuntimeExports.jsxs(Link,{to:"/academies",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Academies"]})}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-normal text-white leading-[1.05] tracking-tight text-[clamp(2.5rem,5.5vw,4.75rem)] mb-6",children:a.title}),(a.subtitle||a.excerpt)&&jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-white/80 leading-relaxed max-w-2xl mb-10",children:a.subtitle||a.excerpt}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap justify-center gap-x-8 gap-y-3 text-[11px] tracking-[0.16em] uppercase text-white/75",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-3 w-3"}),a.date]}),a.location&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3 w-3"}),a.location]}),a.participants&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Users,{className:"h-3 w-3"}),a.participants]})]})]})]}),jsxRuntimeExports.jsx(Section,{grain:!0,className:"py-12 md:py-16 lg:py-20",children:jsxRuntimeExports.jsx("article",{className:"max-w-6xl mx-auto",children:jsxRuntimeExports.jsx("div",{className:"academy-report-prose",dangerouslySetInnerHTML:{__html:c}})})}),jsxRuntimeExports.jsx(Section,{variant:"accent",className:"py-12 md:py-16",children:jsxRuntimeExports.jsxs("div",{className:"max-w-4xl mx-auto grid gap-6 md:grid-cols-[1fr_auto] md:items-center",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Academy Archive"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl md:text-4xl text-ink leading-tight",children:"More cohorts, themes, and reports"})]}),jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"outline",children:jsxRuntimeExports.jsxs(Link,{to:"/academies",children:["View all academies ",jsxRuntimeExports.jsx(ArrowLeft,{className:"ml-2 h-4 w-4 rotate-180"})]})})]})}),jsxRuntimeExports.jsx(Section,{variant:"primary",className:"py-16 md:py-20",children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl lg:text-[3.5rem] text-primary-foreground mb-8 leading-[1.08]",children:"Join Our Next Academy"}),jsxRuntimeExports.jsx("p",{className:"text-lg md:text-xl text-primary-foreground/75 mb-10 leading-relaxed",children:"Applications for the 2027 fellowship cohort are now open. The next academy will take place in 2027, with dates and location to be announced."}),jsxRuntimeExports.jsx(Button,{asChild:!0,size:"lg",variant:"secondary",children:jsxRuntimeExports.jsx(Link,{to:"/apply",children:"Apply for 2027"})})]})})]})},cauaImg="/assets/caua-C_nh_VSS.webp",alexanderImg="/assets/alexander-tashevski-beckwith-CU8ErMxs.webp",joshuaImg="/assets/joshua-sammet-CjWikNUq.webp",deboraImg="/assets/debora-comini-CtUkQjNm.webp",carlottaImg="/assets/carlotta-salerno-BFN6O2n1.webp",matthiasImg="https://www.mds.ovgu.de/mds_media/Matthias-height-423-width-350.png",SpeakerProfile=({name:e,role:s,image:a,bio:c,imageStyle:g,thumbnailStyle:et})=>jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("button",{type:"button",className:"group flex w-full items-center gap-4 roun
905ded-sm text-left transition-opacity hover:opacity-75 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ink/40 focus-visible:ring-offset-4","aria-label":`Read more about ${e}`,children:[jsxRuntimeExports.jsx("span",{className:"h-20 w-20 shrink-0 overflow-hidden rounded-full bg-canvas-deep",children:jsxRuntimeExports.jsx("img",{src:a,alt:"",className:"h-full w-full object-cover grayscale-[0.15]",style:{mixBlendMode:"multiply",opacity:.95,...et,...g}})}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"block font-serif text-lg text-ink group-hover:underline group-hover:underline-offset-4",children:e}),jsxRuntimeExports.jsx("span",{className:"block text-sm text-ink/60",children:s}),jsxRuntimeExports.jsx("span",{className:"mt-1 block text-[11px] uppercase tracking-[0.14em] text-ink/45 print:hidden",children:"Profile"})]})]})}),jsxRuntimeExports.jsx(DialogContent,{className:"max-h-[90vh] max-w-2xl overflow-y-auto border-border bg-canvas p-0 text-ink sm:rounded-none",children:jsxRuntimeExports.jsxs("div",{className:"grid sm:grid-cols-[220px_1fr]",children:[jsxRuntimeExports.jsx("div",{className:"aspect-[4/3] overflow-hidden bg-canvas-deep sm:aspect-auto sm:min-h-[340px]",children:jsxRuntimeExports.jsx("img",{src:a,alt:e,className:"h-full w-full object-cover",style:g})}),jsxRuntimeExports.jsxs(DialogHeader,{className:"justify-center p-7 text-left sm:p-9",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Seminar leader"}),jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-3xl font-normal leading-tight text-ink",children:e}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:s}),jsxRuntimeExports.jsx(DialogDescription,{className:"pt-4 font-serif text-base leading-relaxed text-ink/75",children:c})]})]})})]}),AcademyPreview2026=()=>jsxRuntimeExports.jsxs("div",{className:"bg-canvas text-ink print:bg-white print:text-black",children:[jsxRuntimeExports.jsxs("div",{className:"hidden print:flex justify-between items-center p-8 border-b",children:[jsxRuntimeExports.jsx(EAFLogo,{height:48,tone:"ink",showWordmark:!0}),jsxRuntimeExports.jsxs("div",{className:"text-right",children:[jsxRuntimeExports.jsx("h1",{className:"font-serif text-2xl text-ink",children:"European Academic Fellowship"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:"www.eaf.eu"})]})]}),jsxRuntimeExports.jsxs("section",{"data-nav-tone":"light",className:"relative overflow-hidden bg-ink text-white min-h-[55vh] md:min-h-[62vh] print:py-12 print:min-h-0",children:[jsxRuntimeExports.jsx("img",{src:academy2026Image,alt:"","aria-hidden":!0,className:"absolute inset-0 w-full h-full object-cover object-center"}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundColor:"hsl(220 96% 17% / 0.6)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:4,opacity:.8}),jsxRuntimeExports.jsxs("div",{className:"relative z-10 max-w-5xl mx-auto px-6 sm:px-8 py-20 md:py-32 text-center",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5 md:mb-6 text-white/70",children:"Upcoming Academy"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-normal text-white leading-[1.02] tracking-tight text-[clamp(2.5rem,7vw,6rem)] mb-8 md:mb-10",children:"Torino Academy"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-center gap-4 md:gap-10 text-white/80 mb-10 md:mb-12",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-5 w-5 text-white"}),jsxRuntimeExports.jsx("span",{className:"font-serif text-base md:text-xl",children:"August 22-30, 2026"})]}),jsxRuntimeExports.jsx("div",{className:"hidden md:block w-1 h-1 rounded-full bg-white/40"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-5 w-5 text-white"}),jsxRuntimeExports.jsx("span",{className:"font-serif text-base md:text-xl",children:"Torino, Italy"})]})]}),jsxRuntimeExports.jsx("div",{className:"flex flex-col sm:flex-row gap-6 justify-center print:hidden",children:jsxRuntimeExports.jsx("span",{className:"inline-flex text-[13px] tracking-[0.16em] uppercase text-white/75 border-b border-white/30 pb-1",children:"Applications closed"})})]})]}),jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{id:"seminars",className:"max-w-5xl mx-auto
905scroll-mt-20",children:[jsxRuntimeExports.jsxs("div",{className:"text-center mb-16 print:mb-8",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Programme"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl text-ink mb-5 leading-[1.08]",children:"Academic Programme"}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/65 leading-relaxed max-w-2xl mx-auto",children:"Featuring 3 intensive seminars led by distinguished scholars"})]}),jsxRuntimeExports.jsx("div",{className:"mb-16 print:mb-12",children:jsxRuntimeExports.jsx("div",{className:"bg-canvas-soft border border-border p-6 sm:p-8 md:p-12",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col md:flex-row gap-8 md:gap-12 items-start",children:jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Seminar 1"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl sm:text-3xl md:text-4xl text-ink mb-5 md:mb-6 leading-tight",children:"Understanding AI Critically"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-base md:text-lg text-ink/70 leading-relaxed mb-8 md:mb-10",children:"Artificial intelligence is changing how knowledge is produced, evaluated, and shared. This interdisciplinary seminar approaches AI not simply as a technical toolkit, but as a social, epistemic, and political phenomenon. Fellows will build a practical understanding of how modern AI systems work, then examine algorithmic bias and competing ideas of fairness, responsible research with large language models, academic integrity, and the often-hidden labour, environmental, and economic costs of the AI economy. Short introductions, hands-on exercises, close readings, and discussion will connect technical foundations with perspectives from the humanities and social sciences. No prior programming or mathematics background is required."}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow",children:"Led by"}),jsxRuntimeExports.jsxs("div",{className:"grid sm:grid-cols-2 gap-8",children:[jsxRuntimeExports.jsx(SpeakerProfile,{name:"Prof. Kornelia KoÅczal",role:"Public History, Bielefeld University",image:korneliaImage,bio:"Kornelia KoÅczal is Junior Professor of Public History at Bielefeld University. Her research and teaching focus on European social and cultural history and on the history of the humanities and social sciences. She brings a historianâs perspective to questions of knowledge, technology, and public life."}),jsxRuntimeExports.jsx(SpeakerProfile,{name:"Matthias Busch, M. Sc.",role:"Mobile Dialog Systems, OVGU Magdeburg",image:matthiasImg,bio:"Matthias Busch is a doctoral researcher in Mobile Dialog Systems at Otto von Guericke University Magdeburg. His work focuses on dialogue systems, voice-user interfaces, and the usability of conversational technology, connecting technical foundations with the ways people encounter AI in practice."})]})]})]})})})}),jsxRuntimeExports.jsx("div",{className:"mb-16 print:mb-12",children:jsxRuntimeExports.jsx("div",{className:"bg-canvas-soft border border-border p-6 sm:p-8 md:p-12",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col md:flex-row gap-8 md:gap-12 items-start",children:jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Seminar 2"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl sm:text-3xl md:text-4xl text-ink mb-5 md:mb-6 leading-tight",children:"Engineering Life with Synthetic Biology"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-base md:text-lg text-ink/70 leading-relaxed mb-8 md:mb-10",children:"Synthetic biology brings together biology, engineering, computation, and design to understand living systems by trying to build them. During the week, fellows will explore how genetic components can be combined into functional systems, from engineered microbes and CRISPR to medicines, sustainable materials, environmental applications, and bioart. The central challenge is a compressed version of iGEM, the worldâs largest synthetic biology competition: small interdisciplinary teams will identify a problem, design a biological system, consider how it could be tested and modelled, examine safety and societal implications, and present their proposal at a mini-jamboree. The seminar welcomes participants from the life sciences, medicine, engineering, computation, and neighbouring fields."}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow",children:"Led by"}),jsxRuntimeExports.jsx("div",{className:"grid sm:grid-cols-2 gap-8",children:jsxRuntimeExports.jsx(SpeakerProfile,{name:"Caua Westmann",role:"Systems & Synthetic Evolutionary Biology, EPFL",image:cauaImg,bio:"Caua Westmann is an evolutionary and synthetic biologist studying how living systems process information through gene regulation and how those mechanisms can be re-engineered. He is launching the Systems and Synthetic Evolutionary Biology Lab at EPFL as an ELISIR Scholar, combining high-throughput experiments, synthetic biology, and evolutionary theory."})})]})]})})})}),jsxRuntimeExports.jsx("div",{className:"mb-8 print:mb-6",children:jsxRuntimeExports.jsx("div",{className:"bg-canvas-soft border border-border p-6 sm:p-8 md:p-12",children:jsxRuntimeExports.jsx("div",{className:"flex flex-col md:flex-row gap-8 md:gap-12 items-start",children:jsxRuntimeExports.jsxs("div",{className:"flex-1",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Seminar 3"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl sm:text-3xl md:text-4xl text-ink mb-5 md:mb-6 leading-tight",children:"Interpretable AI for Alzheimer's Disease"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-base md:text-lg text-ink/70 leading-relaxed mb-8 md:mb-10",children:"Artificial intelligence is becoming part of the infrastru
905cture of medicine, from biomedical discovery to clinical decision-making. Using Alzheimer's disease as a central case study, this seminar introduces the machine-learning methods behind that shift and asks how complex models can remain interpretable to researchers and clinicians. Fellows will explore applications across genomics, medical imaging, drug discovery, and psychiatry, with particular attention to causal and graph-based models, genomic foundation models, and the biological pathways that shape neurodegenerative disease. A group project will put the weekâs tools into practice, while discussions of evidence, risk, and governance will place technical advances in their clinical and societal context."}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow",children:"Led by"}),jsxRuntimeExports.jsxs("div",{className:"grid sm:grid-cols-2 gap-8",children:[jsxRuntimeExports.jsx(SpeakerProfile,{name:"Alexander Tashevski-Beckwith",role:"Causal Machine Learning, University of Oxford",image:alexanderImg,imageStyle:{objectPosition:"50% 35%"},thumbnailStyle:{transform:"scale(2.2)",transformOrigin:"50% 35%"},bio:"Alexander Tashevski-Beckwith is a DPhil student and member of the bioinformatics team in Oxfordâs Translational Neuroscience and Dementia Research Group. Trained as a clinical psychologist, he develops causal machine-learning and graph-based models to understand how biological and clinical factors contribute to Alzheimerâs disease."}),jsxRuntimeExports.jsx(SpeakerProfile,{name:"Joshua Sammet",role:"AI & Genomics, University of Oxford",image:joshuaImg,bio:"Joshua Sammet is a DPhil student in Oxfordâs Department of Psychiatry and a member of the AI team in the Computational and Molecular Neuroscience Laboratory. His research uses interpretability methods for genomic foundation models to study how genetic variation shapes cellular responses in Alzheimerâs disease, especially before clinical symptoms emerge."})]})]})]})})})}),jsxRuntimeExports.jsxs("div",{className:"mb-8 text-center",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Afternoon talks"}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg text-ink/65 leading-relaxed max-w-2xl mx-auto",children:"Conversations with leaders in public service, international development, and civic life"})]}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-2 gap-6 print:grid-cols-2",children:[jsxRuntimeExports.jsxs("article",{className:"bg-canvas-soft border border-border p-6 sm:p-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-5",children:[jsxRuntimeExports.jsx("img",{src:deboraImg,alt:"Debora Comini",className:"w-20 h-20 shrink-0 rounded-full object-cover object-center grayscale-[0.15]"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-3",children:"Afternoon talk"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl text-ink mb-1 leading-tight",children:"Ex-Centric Leadership"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:"Debora Comini · Former UNICEF Regional Director"})]})]}),jsxRuntimeExports.jsx("p",{className:"font-serif text-base text-ink/70 leading-relaxed mt-6",children:"Drawing on a 33-year United Nations career across four continents, Debora Comini will explore practical, gender-informed leadership: self-awareness, principled coherence, constructive dissent, and the human choices that shape a life in public service."})]}),jsxRuntimeExports.jsxs("article",{className:"bg-canvas-soft border border-border p-6 sm:p-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-5",children:[jsxRuntimeExports.jsx("img",{src:carlottaImg,alt:"Carlotta Salerno",className:"w-20 h-20 shrink-0 rounded-full object-cover object-[52%_center]"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-3",children:"Afternoon talk"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl text-ink mb-1 leading-tight",children:"Education, Youth & the City"}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:"Carlotta Salerno · Councillor, City of Torino"})]})]}),jsxRuntimeExports.jsx("p",{className:"font-serif text-base text-ink/70 leading-relaxed mt-6",children:"Carlotta Salerno, Turin's Councillor for education, youth policy, urban peripheries, and regeneration, will join the Academy for a conversation on the role of cities in creating opportunity for young people."})]})]})]})}),jsxRuntimeExports.jsx(Section,{variant:"accent",grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Participation"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl text-ink mb-6 leading-[1.08]",children:"Participation"}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/65 mb-12 leading-relaxed",children:"Participation in the Torino Academy is reserved for EAF fellows, and registration is now closed. Applications for the 2027 fellowship cohort are open; the next academy will take place in 2027, with details to be announced."}),jsxRuntimeExports.jsx("div",{className:"print:hidden",children:jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Apply for 2027 Cohort",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})}),jsxRuntimeExports.jsxs("div",{className:"hidden print:block text-center mt-8 pt-8 border-t border-gray-200",children:[jsxRuntimeExports.jsx("p",{className:"font-serif text-lg text-ink mb-2",children:"Apply now at"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-xl text-ink",children:"www.eaf.eu/apply"})]})]})})]}),newsBackdrop="/assets/news_backdrop-D-2XvNXg.webp",News=()=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"News & Updates",subtitle:"Stay informed about the latest developments, achievements, and initiatives from the European A
905cademic Foundation",image:newsBackdrop,nextBg:"canvas"}),jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-10",children:newsArticles.map(e=>jsxRuntimeExports.jsxs(Link,{to:getArticlePath(e),className:"group block bg-canvas border border-border shadow-card hover:shadow-hover transition-all duration-500 overflow-hidden",children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep grain-heavy",children:jsxRuntimeExports.jsx("img",{src:e.image,alt:e.title,loading:"lazy",className:"w-full h-full object-cover transition-all duration-150"})}),jsxRuntimeExports.jsxs("div",{className:"p-7 space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between text-[11px] text-ink/55",children:[jsxRuntimeExports.jsx("span",{className:"tracking-[0.14em] uppercase text-ink/65",children:e.category}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-3 w-3"}),e.date]}),jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx(Clock,{className:"h-3 w-3"}),e.readTime]})]})]}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl md:text-2xl text-ink leading-tight group-hover:text-ink/70 transition-colors line-clamp-2",children:e.title}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/65 leading-relaxed line-clamp-3",children:e.excerpt}),jsxRuntimeExports.jsxs("div",{className:"pt-2 text-[11px] tracking-[0.14em] uppercase text-ink/70 flex items-center gap-1.5 group-hover:gap-3 transition-all",children:["Read More ",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3 w-3"})]})]})]},e.slug))})})]}),NewsArticle=()=>{const{slug:e}=useParams(),s=e?getArticleBySlug(e):void 0;if(!s)return jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-2xl mx-auto",children:[jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl md:text-5xl text-ink mb-6",children:"Article Not Found"}),jsxRuntimeExports.jsx("p",{className:"text-ink/65 mb-10 leading-relaxed",children:"The article you're looking for doesn't exist."}),jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Home"]})})]})});if(s.canonicalPath)return jsxRuntimeExports.jsx(Navigate,{to:s.canonicalPath,replace:!0});const a=getArticleHTMLContent(s.id);return jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx(Button,{asChild:!0,variant:"ghost",className:"mb-10 -ml-3",children:jsxRuntimeExports.jsxs(Link,{to:"/",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back to Home"]})}),jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:s.category}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl md:text-5xl lg:text-[3.5rem] text-ink leading-[1.08] mb-8",children:s.title}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-6 text-[11px] tracking-[0.14em] uppercase text-ink/55 mb-10 pb-10 border-b border-border",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Calendar,{className:"h-3 w-3"}),jsxRuntimeExports.jsx("span",{children:s.date})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Clock,{className:"h-3 w-3"}),jsxRuntimeExports.jsx("span",{children:s.readTime})]})]}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-xl md:text-2xl text-ink/75 leading-relaxed mb-12",children:s.excerpt}),jsxRuntimeExports.jsx("div",{className:"mb-14",children:jsxRuntimeExports.jsx("img",{src:s.image,alt:s.title,className:"w-full h-[420px] object-cover"})}),jsxRuntimeExports.jsx("div",{className:"prose prose-lg max-w-none prose-headings:font-serif prose-headings:font-light prose-headings:text-ink prose-p:font-serif prose-p:text-ink/75 prose-p:leading-relaxed prose-p:mb-6 prose-h1:text-3xl prose-h2:text-2xl prose-h3:text-xl prose-a:text-ink prose-strong:text-ink",dangerouslySetInnerHTML:{__html:a}})]})})})},Apply=()=>{const[e,s]=reactExports.useState(!1),a=[{phase:"Applications Open",dates:"Open now",status:"current",description:"Submit your complete application including essays, transcripts, and recommendations"},{phase:"Application Review & Interviews",dates:"Dates to be announced",status:"upcoming",description:"Selected candidates participate in online interviews"},{phase:"Decisions",dates:"Dates to be announced",status:"upcoming",description:"Successful applicants receive their fellowship offers"},{phase:"2027 Academy",dates:"Dates and location to be announced",status:"upcoming",description:"The next academy will bring the new cohort together for a fully funded academic retreat"}],c=[{title:"Expand Your Horizon",description:"In our academies and workshops you can learn from experts alongside students from across Europe. Every participant receives 1:1 mentorship to guide their journey.",icon:Globe},{title:"Friends Across Europe",description:"Build lasting friendships and professional connections with exceptional students from all corners of Europe, creating a network that spans the continent.",icon:Users},{title:"Multiply Your Ambition",description:"Through our grants, our network of mentors and the network of incredible fellows you'll be able to make the change in the world that you want to see.",icon:Zap}],g=["High school transcript","University transcript (as applicable)","Resume / CV","Filled application form"],et=[{criterion:"Academic Achievement",description:"Grades, coursework rigor, academic honors and awards"},{criterion:"Societal Impact",description:"Anything done in service of society"},{criterion:"Personal Factors",description:"Unique challenges, special achievements, ..."}];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"Ap
905ply to the EAF",subtitle:"Join Europe's most exceptional students in shaping the future of our continent",image:applyBackdrop,children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-6",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-ink/40 text-ink bg-canvas/70 rounded-full text-[11px] tracking-[0.16em] uppercase px-4 py-1.5",children:"2027 Applications Open"}),jsxRuntimeExports.jsxs(Link,{to:"/apply/form",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Apply Now",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Why Apply?",subtitle:"The transformative benefits of joining the EAF community"}),jsxRuntimeExports.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-3 gap-8 md:gap-10 mb-12 md:mb-14",children:c.map((rt,nt)=>jsxRuntimeExports.jsxs("div",{className:"text-center",children:[jsxRuntimeExports.jsx("div",{className:"inline-flex items-center justify-center w-12 h-12 sm:w-14 sm:h-14 rounded-full border border-ink/25 bg-canvas mb-5 md:mb-6",children:jsxRuntimeExports.jsx(rt.icon,{className:"h-5 w-5 sm:h-6 sm:w-6 text-ink"})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl md:text-2xl text-ink mb-3 md:mb-4 leading-tight",children:rt.title}),jsxRuntimeExports.jsx("p",{className:"text-sm sm:text-base text-ink/65 leading-relaxed sm:text-justify",children:rt.description})]},nt))}),jsxRuntimeExports.jsx("div",{className:"text-center",children:jsxRuntimeExports.jsxs(Link,{to:"/apply/form",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["Start Your Application",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})})]}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{eyebrow:"Requirements",title:"Application Requirements",subtitle:"What you need to prepare for your application"}),jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-2 gap-8 md:gap-10",children:[jsxRuntimeExports.jsxs("div",{className:"bg-canvas border border-border shadow-card p-6 sm:p-8 md:p-10",children:[jsxRuntimeExports.jsxs("div",{className:"eyebrow mb-6 flex items-center gap-2",children:[jsxRuntimeExports.jsx(FileText,{className:"h-3 w-3"})," Requirements"]}),jsxRuntimeExports.jsx("ul",{className:"space-y-5",children:g.map((rt,nt)=>jsxRuntimeExports.jsxs("li",{className:"flex items-start gap-3",children:[jsxRuntimeExports.jsx(CircleCheckBig,{className:"h-4 w-4 text-ink mt-1.5 flex-shrink-0"}),jsxRuntimeExports.jsx("span",{className:"font-serif text-lg md:text-xl text-ink",children:rt})]},nt))})]}),jsxRuntimeExports.jsxs("div",{className:"bg-canvas border border-border shadow-card p-6 sm:p-8 md:p-10",children:[jsxRuntimeExports.jsxs("div",{className:"eyebrow mb-6 flex items-center gap-2",children:[jsxRuntimeExports.jsx(Users,{className:"h-3 w-3"})," Selection Criteria"]}),jsxRuntimeExports.jsx("div",{className:"space-y-6",children:et.map((rt,nt)=>jsxRuntimeExports.jsxs("div",{className:"border-l border-ink/25 pl-5",children:[jsxRuntimeExports.jsx("h4",{className:"font-serif text-lg md:text-xl text-ink mb-1.5",children:rt.criterion}),jsxRuntimeExports.jsx("p",{className:"text-base text-ink/65 leading-relaxed",children:rt.description})]},nt))})]})]}),jsxRuntimeExports.jsx("div",{className:"mt-14 max-w-3xl mx-auto",children:jsxRuntimeExports.jsx("div",{className:"text-base md:text-lg text-ink/75 leading-relaxed border-l-2 border-ink/30 pl-6 italic font-serif",children:"We consider each applicant carefully and individually based on where they come from, what they have achieved and how we expect them to contribute to society. We explicitly encourage people from academically underrepresented backgrounds to apply."})})]}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{eyebrow:"Timeline",title:"Ap
905plication Timeline",subtitle:"Important dates for the 2027 application cycle"}),jsxRuntimeExports.jsx("div",{className:"max-w-4xl mx-auto space-y-4",children:(()=>{const rt=a.filter(st=>st.status==="completed").length,nt=a.filter(st=>st.status!=="completed");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[rt>0&&jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>s(st=>!st),className:"w-full flex items-center justify-between gap-4 px-6 py-4 border border-border bg-canvas/40 hover:bg-canvas text-left transition-colors",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 text-ink/55"}),jsxRuntimeExports.jsxs("span",{className:"text-sm text-ink/65",children:[rt," completed ",rt===1?"phase":"phases"]})]}),jsxRuntimeExports.jsx(ChevronDown,{className:`h-4 w-4 text-ink/55 transition-transform ${e?"rotate-180":""}`})]}),e&&a.filter(st=>st.status==="completed").map((st,at)=>jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4 sm:gap-6 p-5 sm:p-6 border border-border bg-canvas/40 opacity-70",children:[jsxRuntimeExports.jsx("div",{className:"w-10 h-10 sm:w-11 sm:h-11 rounded-full flex items-center justify-center shrink-0 bg-sepia/30 text-ink/60",children:jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 sm:h-5 sm:w-5"})}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0 line-through decoration-ink/20",children:[jsxRuntimeExports.jsx("div",{className:"flex items-center gap-3 mb-1",children:jsxRuntimeExports.jsx("h3",{className:"font-serif text-lg md:text-xl text-ink no-underline",children:st.phase})}),jsxRuntimeExports.jsx("div",{className:"text-[11px] tracking-[0.16em] uppercase text-ink/60 mb-2 no-underline",children:st.dates}),jsxRuntimeExports.jsx("p",{className:"text-sm md:text-base text-ink/70 leading-relaxed italic no-underline",children:st.description})]})]},`completed-${at}`)),nt.map((st,at)=>{const it=st.status==="current";return jsxRuntimeExports.jsxs("div",{className:`flex items-start gap-4 sm:gap-6 p-5 sm:p-6 border transition-all duration-300 ${it?"border-ink/40 bg-canvas":"border-border bg-canvas/60 hover:bg-canvas"}`,children:[jsxRuntimeExports.jsx("div",{className:`w-10 h-10 sm:w-11 sm:h-11 rounded-full flex items-center justify-center shrink-0 ${it?"bg-ink text-primary-foreground":"bg-canvas-deep text-ink/60"}`,children:it?jsxRuntimeExports.jsx(Clock,{className:"h-4 w-4 sm:h-5 sm:w-5"}):jsxRuntimeExports.jsx(Calendar,{className:"h-4 w-4 sm:h-5 sm:w-5"})}),jsxRuntimeExports.jsxs("div",{className:"flex-1 min-w-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-3 mb-1 flex-wrap",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-base sm:text-lg md:text-xl text-ink",children:st.phase}),it&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-ink/40 text-ink rounded-full text-[10px] tracking-[0.14em] uppercase px-2.5",children:"Current"})]}),jsxRuntimeExports.jsx("div",{className:"text-[11px] tracking-[0.16em] uppercase text-ink/60 mb-2",children:st.dates}),jsxRuntimeExports.jsx("p",{className:"text-sm md:text-base text-ink/70 leading-relaxed italic",children:st.description})]})]},`active-${at}`)})]})})()})]}),jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"max-w-6xl mx-auto grid md:grid-cols-2 gap-8 md:gap-16 items-center",children:[jsxRuntimeExports.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep",children:[jsxRuntimeExports.jsx("img",{src:nextAcademyImage,alt:"Map of Europe",loading:"lazy",className:"absolute inset-0 w-full h-full object-cover",style:{zIndex:1}}),jsxRuntimeExports.jsx("div",{"aria-hidden":!0,className:"absolute inset-0 pointer-events-none",style:{zIndex:2,backgroundColor:"hsl(var(--canvas) / 0.2)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:3,opacity:.8})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl md:text-4xl lg:text-5xl text-ink leading-[1.08] mb-5 md:mb-6",children:"2027 Academy"}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-base md:text-lg text-ink/70 leading-relaxed mb-7 md:mb-8",children:"The 2027 cohort will c
905ome together at the 2027 Academy for a fully funded academic retreat. Dates, location, and programme details are still to be announced. The academy combines seminars, excursions, and time with fellows from across Europe."}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-x-10 gap-y-4 items-center",children:[jsxRuntimeExports.jsxs(Link,{to:"/academies",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink border-b border-ink/40 hover:border-ink pb-1 transition-colors",children:["View academy timeline",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]}),jsxRuntimeExports.jsxs(Link,{to:"/cohorts",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-ink/70 border-b border-ink/25 hover:border-ink/60 hover:text-ink pb-1 transition-colors",children:["Meet past fellows",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})]})]})]})}),jsxRuntimeExports.jsx(Section,{variant:"primary",children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl lg:text-[3.5rem] text-primary-foreground mb-8 leading-[1.08]",children:"Ready to Begin?"}),jsxRuntimeExports.jsx("p",{className:"text-lg md:text-xl text-primary-foreground/75 mb-10 leading-relaxed",children:"Take the first step towards joining Europe's most exceptional academic community. Applications for the 2027 cohort are now open."}),jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:jsxRuntimeExports.jsxs(Link,{to:"/apply/form",className:"group inline-flex items-center gap-2 text-[13px] tracking-[0.16em] uppercase text-canvas border-b border-canvas/50 hover:border-canvas pb-1 transition-colors",children:["Submit Application",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})}),jsxRuntimeExports.jsxs("div",{className:"mt-10 text-sm text-primary-foreground/60 leading-relaxed",children:["Questions about the application process? ",jsxRuntimeExports.jsx("br",{}),"Contact us at"," ",jsxRuntimeExports.jsx("a",{href:`mailto:${CONTACT_EMAIL}`,className:"underline-offset-4 hover:underline text-primary-foreground/80 hover:text-primary-foreground transition-colors",children:CONTACT_EMAIL})]})]})})]})},applicationFields=[{id:"full_name",label:"Name (Full Name)",type:"text",required:!0,section:"basic"},{id:"phone_number",label:"Phone number",type:"tel",required:!0,section:"basic"},{id:"email",label:"E-mail",type:"email",required:!0,section:"basic"},{id:"gender",label:"Gender",type:"select",required:!0,options:["Female","Male","Non-binary","Prefer not to say","Other"],section:"basic"},{id:"date_of_birth",label:"Date of Birth",type:"date",required:!0,section:"basic"},{id:"citizenship",label:"Citizenship",type:"text",required:!0,section:"basic"},{id:"degree_program",label:"Degree program",type:"text",required:!0,section:"basic"},{id:"university",label:"University",type:"text",required:!0,section:"basic"},{id:"number_of_siblings",label:"Number of siblings",type:"text",required:!0,section:"background"},{id:"guardian_1_occupation",label:"Occupation of Parent / Guardian 1",type:"text",required:!0,section:"background"},{id:"guardian_2_occupation",label:"Occupation of Parent / Guardian 2",type:"text",required:!0,section:"background"},{id:"guardian_1_education",label:"Highest Educational Qualification of Guardian 1",type:"text",required:!0,section:"background"},{id:"guardian_2_education",label:"Highest Educational Qualification of Guardian 2",type:"text",required:!0,section:"background"},{id:"household_income",label:"Total household income, including capital gains",type:"select",required:!0,options:["<40.000 EUR","40.000-80.000 EUR","80.000-120.000 EUR",">120.000 EUR","Prefer not to say"],section:"background"},{id:"impact_world",label:"Tell us how you will impact the world.",help:"We are looking for concrete plans, including, for example, intermediate steps and a timeline. Naturally, this might change a lot over time.",type:"textarea",required:!0,rows:10,section:"essays"},{id:"impact_upload",label:"Option A: Upload project material",help:"Upload a concise file that helps us understand your project, plan, or evidence of prior work. PDF, Word, or image files are accepted.",type:"file",section:"project"}
905,{id:"impact_drive_link",label:"Option B: Link to project material",help:"Paste a Google Drive, Notion, website, GitHub, video, or portfolio link. Please make sure it opens for anyone with the link.",type:"text",section:"project"},{id:"proudest_achievement",label:"Tell us about something that you have done / made / achieved, that you're most proud of.",type:"textarea",required:!0,rows:8,section:"essays"},{id:"field_problem",label:"What is the most important problem facing your field?",type:"textarea",required:!0,rows:7,section:"essays"},{id:"other_field_problem",label:"What is the most important problem facing someone else's field?",type:"textarea",required:!0,rows:7,section:"essays"},{id:"scared_of",label:"What are you scared of?",type:"textarea",required:!0,rows:4,section:"essays"},{id:"tangible_want",label:"Tell us something tangible you want.",type:"textarea",required:!0,rows:4,section:"essays"},{id:"additional_info",label:"Is there something that you would like us to know but were not able to include so far?",type:"textarea",rows:5,section:"essays"},{id:"cv",label:"CV",type:"file",required:!0,section:"files"},{id:"transcript",label:"Transcript of Records",type:"file",required:!0,section:"files"},{id:"heard_about_us",label:"How did you hear about us?",type:"text",required:!0,section:"confirmation"},{id:"important_notice",label:"Important Notice: Please ensure that you can be reached via email and that you check your inbox regularly. It is essential to respond promptly to any communications regarding the process. Failure to do so may result in losing your eligibility for consideration.",type:"checkbox",required:!0,section:"confirmation"},{id:"reviewed_application",label:"I have reviewed my application.",type:"checkbox",required:!0,section:"confirmation"},{id:"retreat_availability",label:"I understand that participation in the fully funded 2027 academic retreat in Europe is mandatory for selected fellows.",help:"The academy dates and location are still to be announced.",type:"select",required:!0,options:["Yes","No"],section:"confirmation"}
905],sectionTitles={basic:"Basic Details",background:"Background",essays:"Written Questions",project:"Project Material",files:"Required Documents",confirmation:"Final Confirmation"},sectionDescriptions={project:"Optional: share supporting material for your impact answer. Use either an upload or a link, whichever best represents the work.",files:"Upload the documents we need to review your academic background."},APPLICATION_BUCKET="application-attachments";let applicationSummaryCache=null;const applicationDetailCache=new Map,getCachedApplicationSummaries=()=>applicationSummaryCache,requireSupabase$1=()=>{if(!supabase)throw new Error("Supabase is not configured yet. Please try again later.");return supabase},cleanFileName=e=>e.replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,140),submitApplication=async({fullName:e,email:s,phone:a,answers:c,uploads:g})=>{const et=requireSupabase$1(),rt=crypto.randomUUID(),nt=[];for(const at of g){const it=`${rt}/${at.kind}-${Date.now()}-${cleanFileName(at.file.name)}`,{error:ot}=await et.storage.from(APPLICATION_BUCKET).upload(it,at.file,{cacheControl:"3600",upsert:!1});if(ot)throw new Error(ot.message);nt.push({application_id:rt,kind:at.kind,bucket_id:APPLICATION_BUCKET,object_path:it,file_name:at.file.name,mime_type:at.file.type||null,size_bytes:at.file.size})}const{error:st}=await et.from("applications").insert({id:rt,cycle:"2027",full_name:e,email:s,phone:a||null,answers:c});if(st)throw new Error(st.message);if(nt.length>0){const{error:at}=await et.from("application_files").insert(nt);if(at)throw new Error(at.message)}return rt},listApplicationSummaries=async()=>{if(applicationSummaryCache)return applicationSummaryCache;const e=requireSupabase$1(),{data:s,error:a}=await e.from("applications").select(` 906 id, 907 cycle, 908 status, 909 communication_needed, 910 communication_note, 911 communication_scheduled_at, 912 communication_updated_by, 913 communication_updated_at, 914 full_name, 915 email, 916 phone, 917 submitted_at, 918 updated_at, 919 application_admin_reviews(*), 920 application_interview_slots(*) 921 `).order("submitted_at",{ascending:!1});if(a)throw new Error(a.message);return applicationSummaryCache=s??[],applicationSummaryCache},getApplication=async e=>{const s=applicationDetailCache.get(e);if(s)return s;const a=requireSupabase$1(),{data:c,error:g}=await a.from("applications").select("*, application_files(*), application_admin_reviews(*), application_interview_slots(*), application_emails(*)").eq("id",e).single();if(g)throw new Error(g.message);const et=c;return applicationDetailCache.set(e,et),et},updateApplicationStatus=async(e,s,a)=>{const c=requireSupabase$1(),{error:g}=await c.from("applications").update({status:s,communication_needed:a}).eq("id",e);if(g)throw new Error(g.message);patchCachedApplication(e,{status:s,communication_needed:a})},upsertApplicationReview=async(e,s)=>{var st;const a=requireSupabase$1(),{data:{user:c},error:g}=await a.auth.getUser();if(g)throw new Error(g.message);if(!c)throw new Error("You must be signed in to review applications.");const{data:et,error:rt}=await a.from("application_admin_reviews").upsert({application_id:e,admin_user_id:c.id,admin_label:c.email??((st=c.user_metadata)==null?void 0:st.name)??"Admin",pre_interview_vote:s.preInterviewVote,post_interview_vote:s.postInterviewVote,comment:s.comment},{onConflict:"application_id,admin_user_id"}).select().single();if(rt)throw new Error(rt.message);const nt=et;return mergeCachedReview(e,nt),nt},updateApplicationCommunication=async(e,s)=>{const a=requireSupabase$1(),{data:{user:c},error:g}=await a.auth.getUser();if(g)throw new Error(g.message);if(!c)throw new Error("You must be signed in to update communication status.");const et={communication_needed:s.needed,communication_note:s.note||null,communication_updated_by:c.id,communication_updated_at:new Date().toISOString()},{error:rt}=await a.from("applications").update(et).eq("id",e);if(rt)throw new Error(rt.message);return patchCachedApplication(e,et),et},createApplicationFileUrl=async e=>{const s=requireSupabase$1(),{data:a,error:c}=await s.storage.from(e.bucket_id).createSignedUrl(e.object_path,60*10);if(c)throw new Error(c.message);if(!(a!=null&&a.signedUrl))throw new Error("Could not create file URL.");return a.signedUrl},appendCachedApplicationEmail=(e,s)=>{const a=applicationDetailCache.get(e);a&&applicationDetailCache.set(e,{...a,application_emails:[...a.application_emails??[],s],communication_needed:!1}),applicationSummaryCache=(applicationSummaryCache==null?void 0:applicationSummaryCache.map(c=>c.id===e?{...c,communication_needed:!1}:c))??null},patchCachedApplication=(e,s)=>{applicationSummaryCache=(applicationSummaryCache==null?void 0:applicationSummaryCache.map(c=>c.id===e?{...c,...s}:c))??null;const a=applicationDetailCache.get(e);a&&applicationDetailCache.set(e,{...a,...s})},mergeCachedReview=(e,s)=>{applicationSummaryCache=(applicationSummaryCache==null?void 0:applicationSummaryCache.map(c=>c.id===e?{...c,application_admin_reviews:mergeCachedReviews(c.application_admin_reviews,s)}:c))??null;const a=applicationDetailCache.get(e);a&&applicationDetailCache.set(e,{...a,application_admin_reviews:mergeCachedReviews(a.application_admin_reviews,s)})},mergeCachedReviews=(e,s)=>{const a=e??[];return a.some(g=>g.admin_user_id===s.admin_user_id)?a.map(g=>g.admin_user_id===s.admin_user_id?s:g):[...a,s]};function usePrevious(e){const s=reactExports.useRef({value:e,previous:e});return reactExports.useMemo(()=>(s.current.value!==e&&(s.current.previous=s.current.value,s.current.value=e),s.current.previous),[e])}var CHECKBOX_NAME="Checkbox",[createCheckboxContext,createCheckboxScope]=createContextScope(CHECKBOX_NAME),[CheckboxProvi
vendor: 5,788 bytes, line 921
921derImpl,useCheckboxContext]=createCheckboxContext(CHECKBOX_NAME);function CheckboxProvider(e){const{__scopeCheckbox:s,checked:a,children:c,defaultChecked:g,disabled:et,form:rt,name:nt,onCheckedChange:st,required:at,value:it="on",internal_do_not_use_render:ot}=e,[lt,ct]=useControllableState({prop:a,defaultProp:g??!1,onChange:st,caller:CHECKBOX_NAME}),[dt,ut]=reactExports.useState(null),[xt,gt]=reactExports.useState(null),ht=reactExports.useRef(!1),mt=dt?!!rt||!!dt.closest("form"):!0,kt={checked:lt,disabled:et,setChecked:ct,control:dt,setControl:ut,name:nt,form:rt,value:it,hasConsumerStoppedPropagationRef:ht,required:at,defaultChecked:isIndeterminate(g)?!1:g,isFormControl:mt,bubbleInput:xt,setBubbleInput:gt};return jsxRuntimeExports.jsx(CheckboxProviderImpl,{scope:s,...kt,children:isFunction(ot)?ot(kt):c})}var TRIGGER_NAME$1="CheckboxTrigger",CheckboxTrigger=reactExports.forwardRef(({__scopeCheckbox:e,onKeyDown:s,onClick:a,...c},g)=>{const{control:et,value:rt,disabled:nt,checked:st,required:at,setControl:it,setChecked:ot,hasConsumerStoppedPropagationRef:lt,isFormControl:ct,bubbleInput:dt}=useCheckboxContext(TRIGGER_NAME$1,e),ut=useComposedRefs(g,it),xt=reactExports.useRef(st);return reactExports.useEffect(()=>{const gt=et==null?void 0:et.form;if(gt){const ht=()=>ot(xt.current);return gt.addEventListener("reset",ht),()=>gt.removeEventListener("reset",ht)}},[et,ot]),jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"checkbox","aria-checked":isIndeterminate(st)?"mixed":st,"aria-required":at,"data-state":getState(st),"data-disabled":nt?"":void 0,disabled:nt,value:rt,...c,ref:ut,onKeyDown:composeEventHandlers(s,gt=>{gt.key==="Enter"&>.preventDefault()}),onClick:composeEventHandlers(a,gt=>{ot(ht=>isIndeterminate(ht)?!0:!ht),dt&&ct&&(lt.current=gt.isPropagationStopped(),lt.current||gt.stopPropagation())})})});CheckboxTrigger.displayName=TRIGGER_NAME$1;var Checkbox$1=reactExports.forwardRef((e,s)=>{const{__scopeCheckbox:a,name:c,checked:g,defaultChecked:et,required:rt,disabled:nt,value:st,onCheckedChange:at,form:it,...ot}=e;return jsxRuntimeExports.jsx(CheckboxProvider,{__scopeCheckbox:a,checked:g,defaultChecked:et,disabled:nt,required:rt,onCheckedChange:at,name:c,form:it,value:st,internal_do_not_use_render:({isFormControl:lt})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(CheckboxTrigger,{...ot,ref:s,__scopeCheckbox:a}),lt&&jsxRuntimeExports.jsx(CheckboxBubbleInput,{__scopeCheckbox:a})]})})});Checkbox$1.displayName=CHECKBOX_NAME;var INDICATOR_NAME="CheckboxIndicator",CheckboxIndicator=reactExports.forwardRef((e,s)=>{const{__scopeCheckbox:a,forceMount:c,...g}=e,et=useCheckboxContext(INDICATOR_NAME,a);return jsxRuntimeExports.jsx(Presence,{present:c||isIndeterminate(et.checked)||et.checked===!0,children:jsxRuntimeExports.jsx(Primitive.span,{"data-state":getState(et.checked),"data-disabled":et.disabled?"":void 0,...g,ref:s,style:{pointerEvents:"none",...e.style}})})});CheckboxIndicator.displayName=INDICATOR_NAME;var BUBBLE_INPUT_NAME$2="CheckboxBubbleInput",CheckboxBubbleInput=reactExports.forwardRef(({__scopeCheckbox:e,...s},a)=>{const{control:c,hasConsumerStoppedPropagationRef:g,checked:et,defaultChecked:rt,required:nt,disabled:st,name:at,value:it,form:ot,bubbleInput:lt,setBubbleInput:ct}=useCheckboxContext(BUBBLE_INPUT_NAME$2,e),dt=useComposedRefs(a,ct),ut=usePrevious(et),xt=useSize(c);reactExports.useEffect(()=>{const ht=lt;if(!ht)return;const mt=window.HTMLInputElement.prototype,Ct=Object.getOwnPropertyDescriptor(mt,"checked").set,Tt=!g.current;if(ut!==et&&Ct){const Pt=new Event("click",{bubbles:Tt});ht.indeterminate=isIndeterminate(et),Ct.call(ht,isIndeterminate(et)?!1:et),ht.dispatchEvent(Pt)}},[lt,ut,et,g]);const gt=reactExports.useRef(isIndeterminate(et)?!1:et);return jsxRuntimeExports.jsx(Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:rt??gt.current,required:nt,disabled:st,name:at,value:it,form:ot,...s,tabIndex:-1,ref:dt,style:{...s.style,...xt,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});CheckboxBubbleInput.displayName=BUBBLE_INPUT_NAME$2;function isFunction(e){return typeof e=="function"}function isIndeterminate(e){return e==="indeterminate"}function getState(e){return isIndeterminate(e)?"indeterminate":e?"checked":"unchecked"}const Checkbox=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Checkbox$1,{ref:a,className:cn("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),...s,children:jsxRuntimeExports.jsx(CheckboxIndicator,{className:cn("flex items-center justify-center text-current"),children:jsxRuntimeExports.jsx(Check,{className:"h-4 w-4"})})}));Checkbox.displayName=Checkbox$1.displayName;var NAME="Label",Label$2=reactExports.forwardRef((e,s)=>jsxRuntimeExports.jsx(Primitive.label,{...e,ref:s,onMouseDown:a=>{var g;a.target.closest("button, input, select, textarea")||((g=e.onMouseDown)==null||g.call(e,a),!a.defaultPrevented&&a.detail>1&&a.preventDefault())}}));Label$2.displayName=NAME;var Root$1=Label$2;const labelVariants=cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Label$1=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Root$1,{ref:a,className:cn(labelVariants(),e),...s}));Label$1.displayName=Root$1.displayName;function clamp(e,[s,a]){return Math.min(a,Math.max(s,e))}var DirectionContext=reactExports.createContext(void 0);function useDirection(e){const s=reactExports.useContext(DirectionContext);return e||s||"ltr"}
vendor: 6,113 bytes, line 921
921var OPEN_KEYS=[" ","Enter","ArrowUp","ArrowDown"],SELECTION_KEYS=[" ","Enter"],SELECT_NAME="Select",[Collection$1,useCollection$1,createCollectionScope$1]=createCollection(SELECT_NAME),[createSelectContext,createSelectScope]=createContextScope(SELECT_NAME,[createCollectionScope$1,createPopperScope]),usePopperScope=createPopperScope(),[SelectProvider,useSelectContext]=createSelectContext(SELECT_NAME),[SelectNativeOptionsProvider,useSelectNativeOptionsContext]=createSelectContext(SELECT_NAME),Select$1=e=>{const{__scopeSelect:s,children:a,open:c,defaultOpen:g,onOpenChange:et,value:rt,defaultValue:nt,onValueChange:st,dir:at,name:it,autoComplete:ot,disabled:lt,required:ct,form:dt}=e,ut=usePopperScope(s),[xt,gt]=reactExports.useState(null),[ht,mt]=reactExports.useState(null),[kt,Ct]=reactExports.useState(!1),Tt=useDirection(at),[Pt,At]=useControllableState({prop:c,defaultProp:g??!1,onChange:et,caller:SELECT_NAME}),[Gt,Mt]=useControllableState({prop:rt,defaultProp:nt,onChange:st,caller:SELECT_NAME}),zt=reactExports.useRef(null),Jt=xt?dt||!!xt.closest("form"):!0,[nr,er]=reactExports.useState(new Set),ur=Array.from(nr).map(qt=>qt.props.value).join(";");return jsxRuntimeExports.jsx(Root2$1,{...ut,children:jsxRuntimeExports.jsxs(SelectProvider,{required:ct,scope:s,trigger:xt,onTriggerChange:gt,valueNode:ht,onValueNodeChange:mt,valueNodeHasChildren:kt,onValueNodeHasChildrenChange:Ct,contentId:useId(),value:Gt,onValueChange:Mt,open:Pt,onOpenChange:At,dir:Tt,triggerPointerDownPosRef:zt,disabled:lt,children:[jsxRuntimeExports.jsx(Collection$1.Provider,{scope:s,children:jsxRuntimeExports.jsx(SelectNativeOptionsProvider,{scope:e.__scopeSelect,onNativeOptionAdd:reactExports.useCallback(qt=>{er(or=>new Set(or).add(qt))},[]),onNativeOptionRemove:reactExports.useCallback(qt=>{er(or=>{const Dt=new Set(or);return Dt.delete(qt),Dt})},[]),children:a})}),Jt?jsxRuntimeExports.jsxs(SelectBubbleInput,{"aria-hidden":!0,required:ct,tabIndex:-1,name:it,autoComplete:ot,value:Gt,onChange:qt=>Mt(qt.target.value),disabled:lt,form:dt,children:[Gt===void 0?jsxRuntimeExports.jsx("option",{value:""}):null,Array.from(nr)]},ur):null]})})};Select$1.displayName=SELECT_NAME;var TRIGGER_NAME="SelectTrigger",SelectTrigger$1=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,disabled:c=!1,...g}=e,et=usePopperScope(a),rt=useSelectContext(TRIGGER_NAME,a),nt=rt.disabled||c,st=useComposedRefs(s,rt.onTriggerChange),at=useCollection$1(a),it=reactExports.useRef("touch"),[ot,lt,ct]=useTypeaheadSearch(ut=>{const xt=at().filter(mt=>!mt.disabled),gt=xt.find(mt=>mt.value===rt.value),ht=findNextItem(xt,ut,gt);ht!==void 0&&rt.onValueChange(ht.value)}),dt=ut=>{nt||(rt.onOpenChange(!0),ct()),ut&&(rt.triggerPointerDownPosRef.current={x:Math.round(ut.pageX),y:Math.round(ut.pageY)})};return jsxRuntimeExports.jsx(Anchor,{asChild:!0,...et,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"combobox","aria-controls":rt.contentId,"aria-expanded":rt.open,"aria-required":rt.required,"aria-autocomplete":"none",dir:rt.dir,"data-state":rt.open?"open":"closed",disabled:nt,"data-disabled":nt?"":void 0,"data-placeholder":shouldShowPlaceholder(rt.value)?"":void 0,...g,ref:st,onClick:composeEventHandlers(g.onClick,ut=>{ut.currentTarget.focus(),it.current!=="mouse"&&dt(ut)}),onPointerDown:composeEventHandlers(g.onPointerDown,ut=>{it.current=ut.pointerType;const xt=ut.target;xt.hasPointerCapture(ut.pointerId)&&xt.releasePointerCapture(ut.pointerId),ut.button===0&&ut.ctrlKey===!1&&ut.pointerType==="mouse"&&(dt(ut),ut.preventDefault())}),onKeyDown:composeEventHandlers(g.onKeyDown,ut=>{const xt=ot.current!=="";!(ut.ctrlKey||ut.altKey||ut.metaKey)&&ut.key.length===1&<(ut.key),!(xt&&ut.key===" ")&&OPEN_KEYS.includes(ut.key)&&(dt(),ut.preventDefault())})})})});SelectTrigger$1.displayName=TRIGGER_NAME;var VALUE_NAME="SelectValue",SelectValue$1=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,className:c,style:g,children:et,placeholder:rt="",...nt}=e,st=useSelectContext(VALUE_NAME,a),{onValueNodeHasChildrenChange:at}=st,it=et!==void 0,ot=useComposedRefs(s,st.onValueNodeChange);return useLayoutEffect2(()=>{at(it)},[at,it]),jsxRuntimeExports.jsx(Primitive.span,{...nt,ref:ot,style:{pointerEvents:"none"},children:shouldShowPlaceholder(st.value)?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:rt}):et})});SelectValue$1.displayName=VALUE_NAME;var ICON_NAME="SelectIcon",SelectIcon=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,children:c,...g}=e;return jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...g,ref:s,children:c||"â¼"})});SelectIcon.displayName=ICON_NAME;var PORTAL_NAME="SelectPortal",SelectPortal=e=>jsxRuntimeExports.jsx(Portal$2,{asChild:!0,...e});SelectPortal.displayName=PORTAL_NAME;var CONTENT_NAME="SelectContent",SelectContent$1=reactExports.forwardRef((e,s)=>{const a=useSelectContext(CONTENT_NAME,e.__scopeSelect),[c,g]=reactExports.useState();if(useLayoutEffect2(()=>{g(new DocumentFragment)},[]),!a.open){const et=c;return et?reactDomExports.createPortal(jsxRuntimeExports.jsx(SelectContentProvider,{scope:e.__scopeSelect,children:jsxRuntimeExports.jsx(Collection$1.Slot,{scope:e.__scopeSelect,children:jsxRuntimeExports.jsx("div",{children:e.children})})}),et):null}return jsxRuntimeExports.jsx(SelectContentImpl,{...e,ref:s})});SelectContent$1.displayName=CONTENT_NAME;var CONTENT_MARGIN=10,[SelectContentProvider,useSelectContentContext]=createSelectContext(CONTENT_NAME),CONTENT_IMPL_NAME="SelectContentImpl",Slot=createSlot("SelectContent.RemoveScroll"),SelectContentImpl=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,position:c="item-aligned",onCloseAutoFocus:g,onEscapeKeyDown:et,onPointerDownOutside:rt,side:nt,sideOffset:st,align:at,alignOffset:it,arrowPadding:ot,collisionBoundary:lt,collisionPadding:ct,sticky:dt,hideWhenDetached:ut,avoidCollisions:xt,...gt}=e,ht=useSelectContext(CONTENT_NAME,a),[mt,kt]=reactExports.useState(null),[Ct,Tt]=reactExports.useState(null),Pt=useComposedRefs(s,tr=>kt(tr)),[At,Gt]=reactExports.useState(null),[Mt,zt]=reactExports.useState(null),Jt=useCollection$1(a),[nr,er]=reactExports.useState(!1),ur
vendor: 18,769 bytes, line 921
921=reactExports.useRef(!1);reactExports.useEffect(()=>{if(mt)return hideOthers(mt)},[mt]),useFocusGuards();const qt=reactExports.useCallback(tr=>{const[hr,...Vt]=Jt().map(Kt=>Kt.ref.current),[sr]=Vt.slice(-1),Lt=document.activeElement;for(const Kt of tr)if(Kt===Lt||(Kt==null||Kt.scrollIntoView({block:"nearest"}),Kt===hr&&Ct&&(Ct.scrollTop=0),Kt===sr&&Ct&&(Ct.scrollTop=Ct.scrollHeight),Kt==null||Kt.focus(),document.activeElement!==Lt))return},[Jt,Ct]),or=reactExports.useCallback(()=>qt([At,mt]),[qt,At,mt]);reactExports.useEffect(()=>{nr&&or()},[nr,or]);const{onOpenChange:Dt,triggerPointerDownPosRef:Ht}=ht;reactExports.useEffect(()=>{if(mt){let tr={x:0,y:0};const hr=sr=>{var Lt,Kt;tr={x:Math.abs(Math.round(sr.pageX)-(((Lt=Ht.current)==null?void 0:Lt.x)??0)),y:Math.abs(Math.round(sr.pageY)-(((Kt=Ht.current)==null?void 0:Kt.y)??0))}},Vt=sr=>{tr.x<=10&&tr.y<=10?sr.preventDefault():mt.contains(sr.target)||Dt(!1),document.removeEventListener("pointermove",hr),Ht.current=null};return Ht.current!==null&&(document.addEventListener("pointermove",hr),document.addEventListener("pointerup",Vt,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",hr),document.removeEventListener("pointerup",Vt,{capture:!0})}}},[mt,Dt,Ht]),reactExports.useEffect(()=>{const tr=()=>Dt(!1);return window.addEventListener("blur",tr),window.addEventListener("resize",tr),()=>{window.removeEventListener("blur",tr),window.removeEventListener("resize",tr)}},[Dt]);const[Xt,Zt]=useTypeaheadSearch(tr=>{const hr=Jt().filter(Lt=>!Lt.disabled),Vt=hr.find(Lt=>Lt.ref.current===document.activeElement),sr=findNextItem(hr,tr,Vt);sr&&setTimeout(()=>sr.ref.current.focus())}),It=reactExports.useCallback((tr,hr,Vt)=>{const sr=!ur.current&&!Vt;(ht.value!==void 0&&ht.value===hr||sr)&&(Gt(tr),sr&&(ur.current=!0))},[ht.value]),Bt=reactExports.useCallback(()=>mt==null?void 0:mt.focus(),[mt]),rr=reactExports.useCallback((tr,hr,Vt)=>{const sr=!ur.current&&!Vt;(ht.value!==void 0&&ht.value===hr||sr)&&zt(tr)},[ht.value]),lr=c==="popper"?SelectPopperPosition:SelectItemAlignedPosition,pr=lr===SelectPopperPosition?{side:nt,sideOffset:st,align:at,alignOffset:it,arrowPadding:ot,collisionBoundary:lt,collisionPadding:ct,sticky:dt,hideWhenDetached:ut,avoidCollisions:xt}:{};return jsxRuntimeExports.jsx(SelectContentProvider,{scope:a,content:mt,viewport:Ct,onViewportChange:Tt,itemRefCallback:It,selectedItem:At,onItemLeave:Bt,itemTextRefCallback:rr,focusSelectedItem:or,selectedItemText:Mt,position:c,isPositioned:nr,searchRef:Xt,children:jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,trapped:ht.open,onMountAutoFocus:tr=>{tr.preventDefault()},onUnmountAutoFocus:composeEventHandlers(g,tr=>{var hr;(hr=ht.trigger)==null||hr.focus({preventScroll:!0}),tr.preventDefault()}),children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:et,onPointerDownOutside:rt,onFocusOutside:tr=>tr.preventDefault(),onDismiss:()=>ht.onOpenChange(!1),children:jsxRuntimeExports.jsx(lr,{role:"listbox",id:ht.contentId,"data-state":ht.open?"open":"closed",dir:ht.dir,onContextMenu:tr=>tr.preventDefault(),...gt,...pr,onPlaced:()=>er(!0),ref:Pt,style:{display:"flex",flexDirection:"column",outline:"none",...gt.style},onKeyDown:composeEventHandlers(gt.onKeyDown,tr=>{const hr=tr.ctrlKey||tr.altKey||tr.metaKey;if(tr.key==="Tab"&&tr.preventDefault(),!hr&&tr.key.length===1&&Zt(tr.key),["ArrowUp","ArrowDown","Home","End"].includes(tr.key)){let sr=Jt().filter(Lt=>!Lt.disabled).map(Lt=>Lt.ref.current);if(["ArrowUp","End"].includes(tr.key)&&(sr=sr.slice().reverse()),["ArrowUp","ArrowDown"].includes(tr.key)){const Lt=tr.target,Kt=sr.indexOf(Lt);sr=sr.slice(Kt+1)}setTimeout(()=>qt(sr)),tr.preventDefault()}})})})})})})});SelectContentImpl.displayName=CONTENT_IMPL_NAME;var ITEM_ALIGNED_POSITION_NAME="SelectItemAlignedPosition",SelectItemAlignedPosition=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,onPlaced:c,...g}=e,et=useSelectContext(CONTENT_NAME,a),rt=useSelectContentContext(CONTENT_NAME,a),[nt,st]=reactExports.useState(null),[at,it]=reactExports.useState(null),ot=useComposedRefs(s,Pt=>it(Pt)),lt=useCollection$1(a),ct=reactExports.useRef(!1),dt=reactExports.useRef(!0),{viewport:ut,selectedItem:xt,selectedItemText:gt,focusSelectedItem:ht}=rt,mt=reactExports.useCallback(()=>{if(et.trigger&&et.valueNode&&nt&&at&&ut&&xt&>){const Pt=et.trigger.getBoundingClientRect(),At=at.getBoundingClientRect(),Gt=et.valueNode.getBoundingClientRect(),Mt=gt.getBoundingClientRect();if(et.dir!=="rtl"){const Lt=Mt.left-At.left,Kt=Gt.left-Lt,mr=Pt.left-Kt,xr=Pt.width+mr,cr=Math.max(xr,At.width),jr=window.innerWidth-CONTENT_MARGIN,kr=clamp(Kt,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,jr-cr)]);nt.style.minWidth=xr+"px",nt.style.left=kr+"px"}else{const Lt=At.right-Mt.right,Kt=window.innerWidth-Gt.right-Lt,mr=window.innerWidth-Pt.right-Kt,xr=Pt.width+mr,cr=Math.max(xr,At.width),jr=window.innerWidth-CONTENT_MARGIN,kr=clamp(Kt,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,jr-cr)]);nt.style.minWidth=xr+"px",nt.style.right=kr+"px"}const zt=lt(),Jt=window.innerHeight-CONTENT_MARGIN*2,nr=ut.scrollHeight,er=window.getComputedStyle(at),ur=parseInt(er.borderTopWidth,10),qt=parseInt(er.paddingTop,10),or=parseInt(er.borderBottomWidth,10),Dt=parseInt(er.paddingBottom,10),Ht=ur+qt+nr+Dt+or,Xt=Math.min(xt.offsetHeight*5,Ht),Zt=window.getComputedStyle(ut),It=parseInt(Zt.paddingTop,10),Bt=parseInt(Zt.paddingBottom,10),rr=Pt.top+Pt.height/2-CONTENT_MARGIN,lr=Jt-rr,pr=xt.offsetHeight/2,tr=xt.offsetTop+pr,hr=ur+qt+tr,Vt=Ht-hr;if(hr<=rr){const Lt=zt.length>0&&xt===zt[zt.length-1].ref.current;nt.style.bottom="0px";const Kt=at.clientHeight-ut.offsetTop-ut.offsetHeight,mr=Math.max(lr,pr+(Lt?Bt:0)+Kt+or),xr=hr+mr;nt.style.height=xr+"px"}else{const Lt=zt.length>0&&xt===zt[0].ref.current;nt.style.top="0px";const mr=Math.max(rr,ur+ut.offsetTop+(Lt?It:0)+pr)+Vt;nt.style.height=mr+"px",ut.scrollTop=hr-rr+ut.offsetTop}nt.style.margin=`${CONTENT_MARGIN}px 0`,nt.style.minHeight=Xt+"px",nt.style.maxHeight=Jt+"px",c==null||c(),requestAnimationFrame(()=>ct.current=!0)}},[lt,et.trigger,et.valueNode,nt,at,ut,xt,gt,et.dir,c]);useLayoutEffect2(()=>mt(),[mt]);const[kt,Ct]=reactExports.useState();useLayoutEffect2(()=>{at&&Ct(window.getComputedStyle(at).zIndex)},[at]);const Tt=reactExports.useCallback(Pt=>{Pt&&dt.current===!0&&(mt(),ht==null||ht(),dt.current=!1)},[mt,ht]);return jsxRuntimeExports.jsx(SelectViewportProvider,{scope:a,contentWrapper:nt,shouldExpandOnScrollRef:ct,onScrollButtonChange:Tt,children:jsxRuntimeExports.jsx("div",{ref:st,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:kt},children:jsxRuntimeExports.jsx(Primitive.div,{...g,ref:ot,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});SelectItemAlignedPosition.displayName=ITEM_ALIGNED_POSITION_NAME;var POPPER_POSITION_NAME="SelectPopperPosition",SelectPopperPosition=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,align:c="start",collisionPadding:g=CONTENT_MARGIN,...et}=e,rt=usePopperScope(a);return jsxRuntimeExports.jsx(Content$1,{...rt,...et,ref:s,align:c,collisionPadding:g,style:{boxSizing:"border-box",...et.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});SelectPopperPosition.displayName=POPPER_POSITION_NAME;var[SelectViewportProvider,useSelectViewportContext]=createSelectContext(CONTENT_NAME,{}),VIEWPORT_NAME="SelectViewport",SelectViewport=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,nonce:c,...g}=e,et=useSelectContentContext(VIEWPORT_NAME,a),rt=useSelectViewportContext(VIEWPORT_NAME,a),nt=useComposedRefs(s,et.onViewportChange),st=reactExports.useRef(0);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:c}),jsxRuntimeExports.jsx(Collection$1.Slot,{scope:a,children:jsxRuntimeExports.jsx(Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...g,ref:nt,style:{position:"relative",flex:1,overflow:"hidden auto",...g.style},onScroll:composeEventHandlers(g.onScroll,at=>{const it=at.currentTarget,{contentWrapper:ot,shouldExpandOnScrollRef:lt}=rt;if(lt!=null&<.current&&ot){const ct=Math.abs(st.current-it.scrollTop);if(ct>0){const dt=window.innerHeight-CONTENT_MARGIN*2,ut=parseFloat(ot.style.minHeight),xt=parseFloat(ot.style.height),gt=Math.max(ut,xt);if(gt<dt){const ht=gt+ct,mt=Math.min(dt,ht),kt=ht-mt;ot.style.height=mt+"px",ot.style.bottom==="0px"&&(it.scrollTop=kt>0?kt:0,ot.style.justifyContent="flex-end")}}}st.current=it.scrollTop})})})]})});SelectViewport.displayName=VIEWPORT_NAME;var GROUP_NAME="SelectGroup",[SelectGroupContextProvider,useSelectGroupContext]=createSelectContext(GROUP_NAME),SelectGroup=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,...c}=e,g=useId();return jsxRuntimeExports.jsx(SelectGroupContextProvider,{scope:a,id:g,children:jsxRuntimeExports.jsx(Primitive.div,{role:"group","aria-labelledby":g,...c,ref:s})})});SelectGroup.displayName=GROUP_NAME;var LABEL_NAME="SelectLabel",SelectLabel$1=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,...c}=e,g=useSelectGroupContext(LABEL_NAME,a);return jsxRuntimeExports.jsx(Primitive.div,{id:g.id,...c,ref:s})});SelectLabel$1.displayName=LABEL_NAME;var ITEM_NAME="SelectItem",[SelectItemContextProvider,useSelectItemContext]=createSelectContext(ITEM_NAME),SelectItem$1=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,value:c,disabled:g=!1,textValue:et,...rt}=e,nt=useSelectContext(ITEM_NAME,a),st=useSelectContentContext(ITEM_NAME,a),at=nt.value===c,[it,ot]=reactExports.useState(et??""),[lt,ct]=reactExports.useState(!1),dt=useComposedRefs(s,ht=>{var mt;return(mt=st.itemRefCallback)==null?void 0:mt.call(st,ht,c,g)}),ut=useId(),xt=reactExports.useRef("touch"),gt=()=>{g||(nt.onValueChange(c),nt.onOpenChange(!1))};if(c==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return jsxRuntimeExports.jsx(SelectItemContextProvider,{scope:a,value:c,disabled:g,textId:ut,isSelected:at,onItemTextChange:reactExports.useCallback(ht=>{ot(mt=>mt||((ht==null?void 0:ht.textContent)??"").trim())},[]),children:jsxRuntimeExports.jsx(Collection$1.ItemSlot,{scope:a,value:c,disabled:g,textValue:it,children:jsxRuntimeExports.jsx(Primitive.div,{role:"option","aria-labelledby":ut,"data-highlighted":lt?"":void 0,"aria-selected":at&<,"data-state":at?"checked":"unchecked","aria-disabled":g||void 0,"data-disabled":g?"":void 0,tabIndex:g?void 0:-1,...rt,ref:dt,onFocus:composeEventHandlers(rt.onFocus,()=>ct(!0)),onBlur:composeEventHandlers(rt.onBlur,()=>ct(!1)),onClick:composeEventHandlers(rt.onClick,()=>{xt.current!=="mouse"&>()}),onPointerUp:composeEventHandlers(rt.onPointerUp,()=>{xt.current==="mouse"&>()}),onPointerDown:composeEventHandlers(rt.onPointerDown,ht=>{xt.current=ht.pointerType}),onPointerMove:composeEventHandlers(rt.onPointerMove,ht=>{var mt;xt.current=ht.pointerType,g?(mt=st.onItemLeave)==null||mt.call(st):xt.current==="mouse"&&ht.currentTarget.focus({preventScroll:!0})}),onPointerLeave:composeEventHandlers(rt.onPointerLeave,ht=>{var mt;ht.currentTarget===document.activeElement&&((mt=st.onItemLeave)==null||mt.call(st))}),onKeyDown:composeEventHandlers(rt.onKeyDown,ht=>{var kt;((kt=st.searchRef)==null?void 0:kt.current)!==""&&ht.key===" "||(SELECTION_KEYS.includes(ht.key)&>(),ht.key===" "&&ht.preventDefault())})})})})});SelectItem$1.displayName=ITEM_NAME;var ITEM_TEXT_NAME="SelectItemText",SelectItemText=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,className:c,style:g,...et}=e,rt=useSelectContext(ITEM_TEXT_NAME,a),nt=useSelectContentContext(ITEM_TEXT_NAME,a),st=useSelectItemContext(ITEM_TEXT_NAME,a),at=useSelectNativeOptionsContext(ITEM_TEXT_NAME,a),[it,ot]=reactExports.useState(null),lt=useComposedRefs(s,gt=>ot(gt),st.onItemTextChange,gt=>{var ht;return(ht=nt.itemTextRefCallback)==null?void 0:ht.call(nt,gt,st.value,st.disabled)}),ct=it==null?void 0:it.textContent,dt=reactExports.useMemo(()=>jsxRuntimeExports.jsx("option",{value:st.value,disabled:st.disabled,children:ct},st.value),[st.disabled,st.value,ct]),{onNativeOptionAdd:ut,onNativeOptionRemove:xt}=at;return useLayoutEffect2(()=>(ut(dt),()=>xt(dt)),[ut,xt,dt]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Primitive.span,{id:st.textId,...et,ref:lt}),st.isSelected&&rt.valueNode&&!rt.valueNodeHasChildren?reactDomExports.createPortal(et.children,rt.valueNode):null]})});SelectItemText.displayName=ITEM_TEXT_NAME;var ITEM_INDICATOR_NAME="SelectItemIndicator",SelectItemIndicator=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,...c}=e;return useSelectItemContext(ITEM_INDICATOR_NAME,a).isSelected?jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...c,ref:s}):null});SelectItemIndicator.displayName=ITEM_INDICATOR_NAME;var SCROLL_UP_BUTTON_NAME="SelectScrollUpButton",SelectScrollUpButton$1=reactExports.forwardRef((e,s)=>{const a=useSelectContentContext(SCROLL_UP_BUTTON_NAME,e.__scopeSelect),c=useSelectViewportContext(SCROLL_UP_BUTTON_NAME,e.__scopeSelect),[g,et]=reactExports.useState(!1),rt=useComposedRefs(s,c.onScrollButtonChange);return useLayoutEffect2(()=>{if(a.viewport&&a.isPositioned){let nt=function(){const at=st.scrollTop>0;et(at)};const st=a.viewport;return nt(),st.addEventListener("scroll",nt),()=>st.removeEventListener("scroll",nt)}},[a.viewport,a.isPositioned]),g?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...e,ref:rt,onAutoScroll:()=>{const{viewport:nt,selectedItem:st}=a;nt&&st&&(nt.scrollTop=nt.scrollTop-st.offsetHeight)}}):null});SelectScrollUpButton$1.displayName=SCROLL_UP_BUTTON_NAME;var SCROLL_DOWN_BUTTON_NAME="SelectScrollDownButton",SelectScrollDownButton$1=reactExports.forwardRef((e,s)=>{const a=useSelectContentContext(SCROLL_DOWN_BUTTON_NAME,e.__scopeSelect),c=useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME,e.__scopeSelect),[g,et]=reactExports.useState(!1),rt=useComposedRefs(s,c.onScrollButtonChange);return useLayoutEffect2(()=>{if(a.viewport&&a.isPositioned){let nt=function(){const at=st.scrollHeight-st.clientHeight,it=Math.ceil(st.scrollTop)<at;et(it)};const st=a.viewport;return nt(),st.addEventListener("scroll",nt),()=>st.removeEventListener("scroll",nt)}},[a.viewport,a.isPositioned]),g?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...e,ref:rt,onAutoScroll:()=>{const{viewport:nt,selectedItem:st}=a;nt&&st&&(nt.scrollTop=nt.scrollTop+st.offsetHeight)}}):null});SelectScrollDownButton$1.displayName=SCROLL_DOWN_BUTTON_NAME;var SelectScrollButtonImpl=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,onAutoScroll:c,...g}=e,et=useSelectContentContext("SelectScrollButton",a),rt=reactExports.useRef(null),nt=useCollection$1(a),st=reactExports.useCallback(()=>{rt.current!==null&&(window.clearInterval(rt.current),rt.current=null)},[]);return reactExports.useEffect(()=>()=>st(),[st]),useLayoutEffect2(()=>{var it;const at=nt().find(ot=>ot.ref.current===document.activeElement);(it=at==null?void 0:at.ref.current)==null||it.scrollIntoView({block:"nearest"})},[nt]),jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...g,ref:s,style:{flexShrink:0,...g.style},onPointerDown:composeEventHandlers(g.onPointerDown,()=>{rt.current===null&&(rt.current=window.setInterval(c,50))}),onPointerMove:composeEventHandlers(g.onPointerMove,()=>{var at;(at=et.onItemLeave)==null||at.call(et),rt.current===null&&(rt.current=window.setInterval(c,50))}),onPointerLeave:composeEventHandlers(g.onPointerLeave,()=>{st()})})}),SEPARATOR_NAME="SelectSeparator",SelectSeparator$1=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,...c}=e;return jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...c,ref:s})});SelectSeparator$1.displayName=SEPARATOR_NAME;var ARROW_NAME="SelectArrow",SelectArrow=reactExports.forwardRef((e,s)=>{const{__scopeSelect:a,...c}=e,g=usePopperScope(a),et=useSelectContext(ARROW_NAME,a),rt=useSelectContentContext(ARROW_NAME,a);return et.open&&rt.position==="popper"?jsxRuntimeExports.jsx(Arrow,{...g,...c,ref:s}):null});SelectArrow.displayName=ARROW_NAME;var BUBBLE_INPUT_NAME$1="SelectBubbleInput",SelectBubbleInput=reactExports.forwardRef(({__scopeSelect:e,value:s,...a},c)=>{const g=reactExports.useRef(null),et=useComposedRefs(c,g),rt=usePrevious(s);return reactExports.useEffect(()=>{const nt=g.current;if(!nt)return;const st=window.HTMLSelectElement.prototype,it=Object.getOwnPropertyDescriptor(st,"value").set;if(rt!==s&&it){const ot=new Event("change",{bubbles:!0});it.call(nt,s),nt.dispatchEvent(ot)}},[rt,s]),jsxRuntimeExports.jsx(Primitive.select,{...a,style:{...VISUALLY_HIDDEN_STYLES,...a.style},ref:et,defaultValue:s})});SelectBubbleInput.displayName=BUBBLE_INPUT_NAME$1;function shouldShowPlaceholder(e){return e===""||e===void 0}function useTypeaheadSearch(e){const s=useCallbackRef$1(e),a=reactExports.useRef(""),c=reactExports.useRef(0),g=reactExports.useCallback(rt=>{const nt=a.current+rt;s(nt),function st(at){a.current=at,window.clearTimeout(c.current),at!==""&&(c.current=window.setTimeout(()=>st(""),1e3))}(nt)},[s]),et=reactExports.useCallback(()=>{a.current="",window.clearTimeout(c.current)},[]);return reactExports.useEffect(()=>()=>window.clearTimeout(c.current),[]),[a,g,et]}function findNextItem(e,s,a){const g=s.length>1&&Array.from(s).every(at=>at===s[0])?s[0]:s,et=a?e.indexOf(a):-1;let rt=wrapArray(e,Math.max(et,0));g.length===1&&(rt=rt.filter(at=>at!==a));const st=rt.find(at=>at.textValue.toLowerCase().startsWith(g.toLowerCase()));return st!==a?st:void 0}function wrapArray(e,s){return e.map((a,c)=>e[(s+c)%e.length])}var Root2=Select$1,Trigger=SelectTrigger$1,Value=SelectValue$1,Icon=SelectIcon,Portal=SelectPortal,Content2=SelectContent$1,Viewport=SelectViewport,Label=SelectLabel$1,Item=SelectItem$1,ItemText=SelectItemText,ItemIndicator=SelectItemIndicator,ScrollUpButton=SelectScrollUpButton$1,ScrollDownButton=SelectScrollDownButton$1,Separator=SelectSeparator$1;const Select=Root2,SelectValue=Value,SelectTrigger=reactExports.forwardRef(({className:e,children:s,...a},c)=>jsxRuntimeExports.jsxs(Trigger,{ref:c,className:cn("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm r
921ing-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...a,children:[s,jsxRuntimeExports.jsx(Icon,{asChild:!0,children:jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));SelectTrigger.displayName=Trigger.displayName;const SelectScrollUpButton=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(ScrollUpButton,{ref:a,className:cn("flex cursor-default items-center justify-center py-1",e),...s,children:jsxRuntimeExports.jsx(ChevronUp,{className:"h-4 w-4"})}));SelectScrollUpButton.displayName=ScrollUpButton.displayName;const SelectScrollDownButton=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(ScrollDownButton,{ref:a,className:cn("flex cursor-default items-center justify-center py-1",e),...s,children:jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4"})}));SelectScrollDownButton.displayName=ScrollDownButton.displayName;const SelectContent=reactExports.forwardRef(({className:e,children:s,position:a="popper",...c},g)=>jsxRuntimeExports.jsx(Portal,{children:jsxRuntimeExports.jsxs(Content2,{ref:g,className:cn("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:a,...c,children:[jsxRuntimeExports.jsx(SelectScrollUpButton,{}),jsxRuntimeExports.jsx(Viewport,{className:cn("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:s}),jsxRuntimeExports.jsx(SelectScrollDownButton,{})]})}));SelectContent.displayName=Content2.displayName;const SelectLabel=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Label,{ref:a,className:cn("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...s}));SelectLabel.displayName=Label.displayName;const SelectItem=reactExports.forwardRef(({className:e,children:s,...a},c)=>jsxRuntimeExports.jsxs(Item,{ref:c,className:cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",e),...a,children:[jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntimeExports.jsx(ItemIndicator,{children:jsxRuntimeExports.jsx(Check,{className:"h-4 w-4"})})}),jsxRuntimeExports.jsx(ItemText,{children:s})]}));SelectItem.displayName=Item.displayName;const SelectSeparator=reactExports.forwardRef(({className:e,...s},a)=>jsxRuntimeExports.jsx(Separator,{ref:a,className:cn("-mx-1 my-1 h-px bg-muted",e),...s}));SelectSeparator.displayName=Separator.displayName;const fileKindByField={impact_upload:"impact_upload",cv:"cv",transcript:"transcript"},sections=["basic","background","essays","project","files","confirmation"],highlightedFieldIds=new Set(["retreat_availability"]),initialValues=applicationFields.reduce((e,s)=>(e[s.id]=s.type==="checkbox"?!1:"",e),{}),ApplicationForm=()=>{const[e,s]=reactExports.useState(initialValues),[a,c]=reactExports.useState({}),[g,et]=reactExports.useState("idle"),[rt,nt]=reactExports.useState(""),st=reactExports.useMemo(()=>sections.map(ct=>({section:ct,fields:applicationFields.filter(dt=>dt.section===ct)})),[]),at=(ct,dt)=>{s(ut=>({...ut,[ct]:dt}))},it=()=>{for(const ct of applicationFields)if(ct.required){if(ct.type==="file"&&!a[ct.id])return`${ct.label} is required.`;if(ct.type==="checkbox"&&e[ct.id]!==!0)return"Please confirm the required checkboxes before submitting.";if(ct.type!=="file"&&ct.type!=="checkbox"&&!String(e[ct.id]??"").trim())return`${ct.label} is required.`}return""},ot=async ct=>{if(ct.preventDefault(),nt(""),!isSupabaseConfigured){et("error"),nt("Applications are temporarily unavailable. Please try again later.");return}const dt=it();if(dt){et("error"),nt(dt);return}const ut=Object.entries(a).filter(xt=>!!xt[1]).map(([xt,gt])=>({kind:fileKindByField[xt]??"other",file:gt}));try{et("submitting"),await submitApplication({fullName:String(e.full_name),email:String(e.email),phone:String(e.phone_number||""),answers:e,uploads:ut}
921),et("success"),nt("Application submitted. Thank you for applying to EAF."),s(initialValues),c({})}catch(xt){et("error"),nt(xt instanceof Error?xt.message:"Could not submit your application.")}},lt=ct=>{var ut,xt,gt;const dt=`application-${ct.id}`;return ct.type==="textarea"?jsxRuntimeExports.jsx(Textarea,{id:dt,required:ct.required,rows:ct.rows,value:String(e[ct.id]??""),onChange:ht=>at(ct.id,ht.target.value),className:"min-h-[150px] rounded-none border-border bg-canvas text-ink"}):ct.type==="select"?((ut=ct.options)==null?void 0:ut.length)===2?jsxRuntimeExports.jsx("div",{className:"grid gap-3 sm:grid-cols-2",children:ct.options.map(ht=>{const mt=e[ct.id]===ht;return jsxRuntimeExports.jsx("button",{type:"button","aria-pressed":mt,onClick:()=>at(ct.id,ht),className:`min-h-12 border px-4 py-3 text-left text-sm transition-colors ${mt?"border-ink bg-ink text-canvas":"border-border bg-canvas text-ink hover:border-ink/50"}`,children:jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-3",children:[jsxRuntimeExports.jsx("span",{className:`flex h-5 w-5 items-center justify-center border ${mt?"border-canvas bg-canvas text-ink":"border-ink/30"}`,children:mt&&jsxRuntimeExports.jsx(CircleCheckBig,{className:"h-3.5 w-3.5"})}),ht]})},ht)})}):jsxRuntimeExports.jsxs(Select,{value:String(e[ct.id]??""),onValueChange:ht=>at(ct.id,ht),required:ct.required,children:[jsxRuntimeExports.jsx(SelectTrigger,{id:dt,className:"rounded-none border-border bg-canvas text-ink",children:jsxRuntimeExports.jsx(SelectValue,{placeholder:"Select an option"})}),jsxRuntimeExports.jsx(SelectContent,{children:(xt=ct.options)==null?void 0:xt.map(ht=>jsxRuntimeExports.jsx(SelectItem,{value:ht,children:ht},ht))})]}):ct.type==="checkbox"?jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-3 border border-border bg-canvas p-4",children:[jsxRuntimeExports.jsx(Checkbox,{id:dt,checked:!!e[ct.id],onCheckedChange:ht=>at(ct.id,ht===!0),className:"mt-1"}),jsxRuntimeExports.jsx(Label$1,{htmlFor:dt,className:"text-sm leading-6 text-ink/75",children:ct.label})]}):ct.type==="file"?jsxRuntimeExports.jsxs("label",{htmlFor:dt,className:"flex min-h-28 cursor-pointer flex-col items-center justify-center gap-3 border border-dashed border-ink/30 bg-canvas px-4 py-6 text-center transition-colors hover:border-ink/60",children:[jsxRuntimeExports.jsx(Upload,{className:"h-5 w-5 text-ink/55"}),jsxRuntimeExports.jsx("span",{className:"text-sm text-ink/70",children:((gt=a[ct.id])==null?void 0:gt.name)??"Choose file"}),jsxRuntimeExports.jsx("input",{id:dt,type:"file",required:ct.required,accept:".pdf,.doc,.docx,.jpg,.jpeg,.png",className:"sr-only",onChange:ht=>c(mt=>{var kt;return{...mt,[ct.id]:((kt=ht.target.files)==null?void 0:kt[0])??null}})})]}):jsxRuntimeExports.jsx(Input,{id:dt,type:ct.type,required:ct.required,value:String(e[ct.id]??""),onChange:ht=>at(ct.id,ht.target.value),className:"rounded-none border-border bg-canvas text-ink"})};return g==="success"?jsxRuntimeExports.jsxs("div",{id:"application-form",className:"mx-auto max-w-5xl scroll-mt-24",children:[jsxRuntimeExports.jsxs("div",{className:"mb-8 border-l-2 border-ink/30 pl-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"Native Application"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-4xl font-light text-ink md:text-5xl",children:"Apply for the 2027 cohort"})]}),jsxRuntimeExports.jsxs("div",{className:"animate-in fade-in-0 zoom-in-95 duration-500 border border-emerald-700/25 bg-emerald-50 px-6 py-10 text-center text-emerald-950 sm:px-10",children:[jsxRuntimeExports.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-full bg-emerald-600 text-white shadow-sm",children:jsxRuntimeExports.jsx(CircleCheckBig,{className:"h-8 w-8"})}),jsxRuntimeExports.jsx("h3",{className:"mt-6 font-serif text-3xl font-light",children:"Application submitted"}),jsxRuntimeExports.jsx("p",{className:"mx-auto mt-3 max-w-xl text-sm leading-6 text-emerald-950/75",children:"Thank you for applying to EAF. Your answers and documents have been received, and the form has been cleared."})]})]}):jsxRuntimeExports.jsxs("form",{id:"application-form",onSubmit:ot,className:"mx-auto max-w-5xl scroll-mt-24",children:[jsxRuntimeExports.jsxs("div",{className:"mb-8 border-l-2 border-ink/30 pl-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"Native Application"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-4xl font-light text-ink md:text-5xl",children:"Apply for the 2027 cohort"}),jsxRuntimeExports.jsx("p",{className:"mt-4 max-w-3xl text-sm leading-6 text-ink/65",children:"Submit the same information as the current EAF application form. Your documents are uploaded directly to EAF's private application storage."})]}),jsxRuntimeExports.jsx("div",{className:"space-y-10",children:st.map(({section:ct,fields:dt})=>jsxRuntimeExports.jsxs("section",{className:"border border-border bg-canvas-soft/40 p-5 sm:p-7",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl text-ink",children:sectionTitles[ct]}),sectionDescriptions[ct]&&jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-6 text-ink/60",children:sectionDescriptions[ct]}),jsxRuntimeExports.jsx("div",{className:"mt-6 grid gap-5 md:grid-cols-2",children:dt.map(ut=>{const xt=highlightedFieldIds.has(ut.id),gt=ut.type==="textarea"||ut.type==="checkbox"||xt;return jsxRuntimeExports.jsxs("div",{className:xt?"md:col-span-2 border-2 border-ink bg-canvas px-5 py-5 shadow-sm":gt?"md:col-span-2":void 0,children:[xt&&jsxRuntimeExports.jsx("p",{className:"mb-3 text-[11px] font-medium uppercase tracking-[0.18em] text-ink",children:"Mandatory attendance confirmation"}),ut.type!=="checkbox"&&jsxRuntimeExports.jsxs(Label$1,{htmlFor:`application-${ut.id}`,className:"mb-2 block text-sm font-medium text-ink/80",children:[ut.label,ut.required&&jsxRuntimeExports.jsx("span",{className:"text-ink",children:" *"})]}),ut.help&&jsxRuntimeExports.jsx("p",{className:"mb-2 text-xs leading-5 text-ink/55",children:ut.help}),lt(ut)]},ut.id)})})]},ct))}),rt&&jsxRuntimeExports.jsx("div",{className:`mt-6 border p-4 text-sm ${g==="success"?"border-ink/30 bg-canvas text-ink":"border-destructive/40 bg-canvas text-destructive"}`,children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-2",children:[g==="success"&&jsxRuntimeExports.jsx(CircleCheckBig,{className:"mt-0.5 h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:rt})]})}),jsxRuntimeExports.jsx("div",{className:"mt-8 flex justify-end",children:jsxRuntimeExports.jsxs(Button,{type:"submit",size:"lg",disabled:g==="submitting",className:"gap-2",children:[g==="submitting"?"Submitting...":"Submit Application",jsxRuntimeExports.jsx(ArrowRight,{className:"h-4 w-4"})]})})]})},ApplicationFormPage=()=>jsxRuntimeExports.jsx("div",{className:"bg-canvas",children:jsxRuntimeExports.jsxs(Section,{grain:!0,className:"pt-12 md:pt-16",children:[jsxRuntimeExports.jsx("div",{className:"mx-auto mb-8 max-w-5xl",children:jsxRuntimeExports.jsxs(Link,{to:"/apply",className:"group inline-flex items-center gap-2 text-[12px] uppercase tracking-[0.16em] text-ink/60 transition-colors hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-3.5 w-3.5 transition-transform group-hover:-translate-x-0.5"}),"Application overview"]})}),jsxRuntimeExports.jsx(ApplicationForm,{})]})}),HowToApply=()=>{const e=[{title:"Academic Documents",items:["Request official transcripts early (they can take 2-3 weeks)","Ensure all grades are clearly visible and translated to English if needed","Include any supplementary academic achievements or certifications"],icon:FileText},{title:"Personal Statement",items:["Start writing at least 4 weeks before the deadline","Focus on your unique story and perspective","Clearly articulate your goals and how EAF fits into them","Have multiple people review and provide feedback"],icon:Lightbulb},{title:"References",items:["Contact referees at least 6 weeks before the deadline","Provide them with your CV and personal statement draft","Choose referees who know your academic and personal qual
921ities well","Follow up politely to ensure submissions are completed on time"],icon:Users}],s=["Be authentic and honest in your application - we value genuine passion over perfect presentations","Demonstrate your commitment to European values and cross-cultural understanding","Show evidence of leadership potential, even if informal or in small settings","Highlight any challenges you've overcome or unique perspectives you bring","Research our current fellows and mentors to understand the community you're joining"];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"How to Apply",subtitle:"Your comprehensive guide to preparing a successful application for the European Academic Foundation",image:applyBackdrop,minHeight:"48vh",nextBg:"canvas"}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{eyebrow:"Preparation",title:"Preparation Timeline",subtitle:"Start early for the best chance of success"}),jsxRuntimeExports.jsx("div",{className:"max-w-4xl mx-auto mb-14",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4 border-l-2 border-ink/30 pl-6 py-2",children:[jsxRuntimeExports.jsx(CircleAlert,{className:"h-5 w-5 text-ink mt-0.5 flex-shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Recommended Timeline"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-lg text-ink/75 leading-relaxed",children:"Begin your application preparation at least 2 weeks before the deadline. This gives you time for thoughtful preparation, document collection, and multiple drafts."})]})]})}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:e.map((a,c)=>jsxRuntimeExports.jsxs("div",{className:"bg-canvas border border-border shadow-card p-8",children:[jsxRuntimeExports.jsx(a.icon,{className:"h-6 w-6 text-ink mb-5"}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl md:text-2xl text-ink mb-5 leading-tight",children:a.title}),jsxRuntimeExports.jsx("ul",{className:"space-y-3",children:a.items.map((g,et)=>jsxRuntimeExports.jsxs("li",{className:"flex items-start gap-2.5",children:[jsxRuntimeExports.jsx(CircleCheckBig,{className:"h-4 w-4 text-ink mt-0.5 flex-shrink-0"}),jsxRuntimeExports.jsx("span",{className:"text-sm text-ink/65 leading-relaxed",children:g})]},et))})]},c))})]}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{eyebrow:"Tips",title:"Application Tips",subtitle:"Insights from our selection committee"}),jsxRuntimeExports.jsx("div",{className:"max-w-4xl mx-auto space-y-4",children:s.map((a,c)=>jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4 p-6 bg-canvas border-l-2 border-ink/30",children:[jsxRuntimeExports.jsx(Lightbulb,{className:"h-5 w-5 text-ink mt-0.5 flex-shrink-0"}),jsxRuntimeExports.jsx("p",{className:"text-ink/75 leading-relaxed font-serif",children:a})]},c))})]}),jsxRuntimeExports.jsx(Section,{variant:"primary",children:jsxRuntimeExports.jsxs("div",{className:"text-center max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl lg:text-[3.5rem] text-primary-foreground mb-8 leading-[1.08]",children:"Ready to Start?"}),jsxRuntimeExports.jsx("p",{className:"text-lg md:text-xl text-primary-foreground/75 mb-10 leading-relaxed",children:"Remember, we're looking for passionate individuals who will contribute to Europe's future. Your unique perspective and experiences matter."}),jsxRuntimeExports.jsx(Button,{asChild:!0,size:"lg",variant:"secondary",children:jsxRuntimeExports.jsx("a",{href:"/apply",children:"Begin Your Application"})})]})})]})},ProjectExamples=()=>{const e=[{number:"I",goal:"As a biomedical engineering student, I strive to bring down the cost of organ transports by redesigning transport boxes.",achievements:"I presented a first prototype at EUCYS 2023 and have since been working on the redesign with my biochemistry professor.",nextSteps:"We plan to carry out a testing phase with my hometown's hospital in Italy during the summer of 2026."},{number:"II",goal:"As a public health student, I strive to improve vaccination rates among migrant communities in Swede
921n by developing culturally sensitive health communication materials.",achievements:"I created multilingual informational resources in collaboration with community leaders, which were distributed across five refugee centers in Stockholm and reached over 800 families.",nextSteps:"I'm partnering with the local health department to evaluate the program's impact and expand it to Malmö and Gothenburg by autumn 2026."},{number:"III",goal:"As a first-year mathematics student, I strive to pursue a PhD in number theory, with a focus on cryptographic applications and computational methods.",achievements:"I independently studied advanced topics beyond my coursework and was selected for a competitive summer research program at my local University while in school.",nextSteps:"I plan to seek out undergraduate research opportunities with professors specializing in number theory starting in my second year, and I'm preparing to participate in the European Girls' Mathematical Olympiad as a volunteer mentor to give back to the mathematical community while building my research foundations."}];return jsxRuntimeExports.jsx("div",{className:"pt-16",children:jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"max-w-3xl mx-auto",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Examples"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl md:text-5xl text-ink mb-14 leading-[1.08]",children:"Exemplary projects"}),jsxRuntimeExports.jsx("div",{className:"space-y-16",children:e.map((s,a)=>jsxRuntimeExports.jsxs("div",{className:"space-y-6 pb-16 border-b border-border last:border-b-0 last:pb-0",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-baseline gap-4",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-3xl md:text-4xl text-ink/40",children:s.number}),jsxRuntimeExports.jsxs("h2",{className:"font-serif text-2xl md:text-3xl text-ink",children:["Example ",s.number]})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Goal"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-lg text-ink/75 leading-relaxed",children:s.goal})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Achievements"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-lg text-ink/75 leading-relaxed",children:s.achievements})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-2",children:"Next steps"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-lg text-ink/75 leading-relaxed",children:s.nextSteps})]})]})]},a))})]})})})},contactBackdrop="/assets/contact_backdrop-DdZd2uBG.webp",Contact=()=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(PageHero,{title:"Contact Us",subtitle:"Questions? Reach out to us.",image:contactBackdrop,nextBg:"canvas"}),jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"max-w-3xl mx-auto text-center space-y-10",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl text-ink leading-[1.08]",children:"Get in Touch"}),jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-xl text-ink/65 leading-relaxed max-w-3xl mx-auto",children:"Whether you're interested in applying, have questions about our program, or want to learn more about partnership opportunities, we'd love to hear from you."}),jsxRuntimeExports.jsx("div",{className:"flex flex-col items-center gap-5 pt-4",children:jsxRuntimeExports.jsxs("a",{href:`mailto:${CONTACT_EMAIL}`,className:"group inline-flex items-center gap-3 font-serif text-xl md:text-2xl text-ink border-b border-ink/30 hover:border-ink pb-2 transition-colors",children:[jsxRuntimeExports.jsx(Mail,{className:"h-5 w-5"}),CONTACT_EMAIL]})})]})})]}),fellowsImage="/assets/academy_25_news-CDQX0Qsk.webp",Donors=()=>{const e=[{name:"Prof. Dr. Benjamin Arold",title:"Assistant Professor of Economics",university:"University of Cambridge",field:"Economics & Data Science",bio:"Conducts cutting-edge research on the Economics of Education and Political Economy. His work utilizes Machine Learning and Causal Inference to understand societal transformations.",image:benjaminImage},{name:"Prof. Dr. Sven Wang",title:"Assistant Professor of Mathematics",university:"EPFL Lausanne",field:"Mathematics of Data Science",bio:"Specializes in Statistical Inference and Bayesian Inference. Previously a postdoctoral fellow at MIT, he now leads research in complex systems and s
921ocial choice theory.",image:svenImage},{name:"Prof. Dr. Niki Kilbertus",title:"Assistant Professor of Machine Learning",university:"TU Munich",field:"AI & Causal Inference",bio:"A leading voice in Algorithmic Fairness and Causal Reasoning. His research at the intersection of AI and ethics is shaping the future of responsible technology in Europe.",image:nikiImage},{name:"Prof. Dr. Dominika Wylezalek",title:"Emmy-Noether Research Group Leader",university:"Heidelberg University",field:"Astrophysics",bio:"Her research focuses on galaxy formation and evolution, with a particular interest in supermassive black holes and their role in shaping the universe.",image:dominikaImage},{name:"Prof. Dr. Kornelia KoÅczal",title:"Assistant Professor of Public History",university:"University of Bielefeld",field:"History",bio:"Her research focuses on European contemporary history, particularly societal transformations around 1945 and 1989/1991.",image:korneliaImage}],s=reactExports.useRef(null),a=()=>{var et;return(et=s.current)==null?void 0:et.scrollBy({left:-260,behavior:"smooth"})},c=()=>{var et;return(et=s.current)==null?void 0:et.scrollBy({left:260,behavior:"smooth"})},g=[{name:"Tomas Babelis",field:"Multiple Sciences",university:"Ãcole Polytechnique",bio:"Tomas is an exceptionally versatile scientist who has won medals across Physics, Mathematics, Chemistry, and Economics Olympiads. He currently studies at Ãcole Polytechnique.",image:tomasImage},{name:"Nea Metohu",field:"Mathematics & ML",university:"University of Cambridge",bio:"Nea won an honorable mention at the International Mathematical Olympiad, and worked as a Machine Learning engineer.",image:neaImage},{name:"Yevhenii Hohin",field:"Computer Science",university:"Various",bio:"Silver medalist at the International Junior Science Olympiad. In school, Yevhenii completed several inspiring projects, and created math courses for over 1000 displaced students, demonstrating both scientific excellence and exceptional social leadership.",image:yevheniiImage}];return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("section",{className:"relative overflow-hidden bg-ink text-white",style:{minHeight:"70vh"},children:[jsxRuntimeExports.jsx("img",{src:fellowsImage,alt:"","aria-hidden":!0,className:"absolute inset-0 w-full h-full object-cover object-center"}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundColor:"hsl(220 96% 17% / 0.6)"}}),jsxRuntimeExports.jsx(Grain,{zIndex:4,opacity:.18}),jsxRuntimeExports.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-6 sm:px-8 py-24 md:py-32 flex items-center",style:{minHeight:"70vh"},children:jsxRuntimeExports.jsxs("div",{className:"max-w-3xl",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-6 text-white/70",children:"Partnership Opportunity"}),jsxRuntimeExports.jsxs("h1",{className:"font-serif font-normal text-white leading-[1.05] tracking-tight text-[clamp(2.5rem,6vw,5.25rem)]",children:["Invest in Europe's ",jsxRuntimeExports.jsx("br",{}),jsxRuntimeExports.jsx("em",{className:"font-serif font-light italic text-white/85",children:"Brightest Minds"})]}),jsxRuntimeExports.jsx("p",{className:"mt-8 text-lg md:text-xl text-white/75 leading-relaxed max-w-2xl",children:"The European Academic Foundation unites the top 0.1% of students from across the continent. Your investment shapes the individuals who will define Europe's future in science, industry, and society."})]})})]}),jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-3 gap-12",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"h-12 w-12 rounded-full border border-ink/25 flex items-center justify-center text-ink mb-6",children:jsxRuntimeExports.jsx(Award,{className:"h-5 w-5"})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl md:text-3xl text-ink",children:"Proven Excellence"}),jsxRuntimeExports.jsx("p",{className:"text-ink/65 leading-relaxed",children:"Our fellows hold gold, silver, and bronze medals from International Olympiads in Mathematics, Physics, Chemistry, and Informatics. We uphold the highest standards of academic excellence."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"h-12 w-12 rounded-full border border-ink/25 flex items-center justify-center text-ink mb-6",children:jsxRuntimeExports.jsx(GraduationCap,{className:"h-5 w-5"})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl md:text-3xl text-ink",children:"Agency and Ambition"}),jsxRuntimeExports.jsx("p",{className:"text-ink/65 leading-relaxed",children:"Every fellow has demonstrated a high degree of agency through organizing academic and social initiatives or start-ups, pursuing independent research and more."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx("div",{className:"h-12 w-12 rounded-full border border-ink/25 flex items-center justify-center text-ink mb-6",children:jsxRuntimeExports.jsx(Globe,{className:"h-5 w-5"})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl md:text-3xl text-ink",children:"Talent Is Everywhere"}),jsxRuntimeExports.jsx("p",{className:"text-ink/65 leading-relaxed",children:"Exceptional ability is distributed evenly across Europe; opportunity is not. Unlike programs concentrated in a few capitals, we identify outliers across the continent."})]})]})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Some of Our Fellows",subtitle:"We invest great effort in finding and supporting the best and brightest students across Europe. Here are some of them."}),jsxRuntimeExports.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:g.map(et=>jsxRuntimeExports.jsxs(Dialog,{children:[jsxRuntimeExports.jsx(DialogTrigger,{asChild:!0,children:jsxRuntimeExports.jsxs("button",{className:"group text-left focus:outline-none",children:[jsxRuntimeExports.jsx("div",{className:"relative aspect-[3/4] overflow-hidden bg-canvas-deep mb-4 grain-heavy",children:jsxRuntimeExports.jsx("img",{src:et.image,alt:et.name,loading:"lazy",className:"w-full h-full object-cover grayscale-[0.15] opacity-95 mix-blend-multiply group-hover:grayscale-0 group-hover:opacity-100 group-hover:mix-blend-normal transition-all duration-150"})}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl text-ink leading-tight",children:et.name}),jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.14em] uppercase text-ink/50 mt-1.5",children:et.field}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-1 text-sm text-ink/55 mt-2",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3 w-3"}),et.university]})]})}),jsxRuntimeExports.jsxs(DialogContent,{className:"max-w-lg",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-2xl text-ink",children:et.name})}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/70 leading-relaxed mt-2",children:et.bio})]})]},et.name))})]}),jsxRuntimeExports.jsxs(Section,{grain:!0,children:[jsxRuntimeExports.jsx(SectionHeader,{title:"Guided by Leading Scholars",subtitle:"Faculty from Cambridge, EPFL, TU Munich, and more serve as mentors to our fellows."}),jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Button,{variant:"outline",size:"icon",className:"absolute left-0 top-1/2 -translate-y-1/2 z-10 bg-canvas hover:bg-canvas-soft !h-10 !w-10 !p-0 hidden md:flex",onClick:a,children:jsxRuntimeExports.jsx(ChevronLeft,{className:"h-4 w-4"})}),jsxRuntimeExports.jsx("div",{ref:s,className:"flex gap-10 overflow-x-auto scrollbar-hide pb-4 px-2 md:px-14 scroll-smooth",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:e.map(et=>jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center text-center space-y-3 flex-shrink-0 w-44",children:[jsxRuntimeExports.jsx("div",{className:"w-28 h-28 overflow-hidden bg-canvas-deep",children:jsxRuntimeExports.jsx("img",{src:et.image,alt:et.name,className:"w-full h-full object-cover grayscale-[0.2]",style:{mixBlendMode:"multiply",opacity:.95}})}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("h4",{className:"font-serif text-base text-ink leading-tight",children:et.name}),jsxRuntimeExports.jsx("p",{className:"text-[10px] tracking-[0.14em] uppercase text-ink/50",children:et.field}),jsxRuntimeExports.jsx("p",{className:"text-xs text-ink/55",children:et.university})]})]},et.name))}),jsxRuntimeExports.jsx(Button,{variant:"outline",size:"icon",className:"absolute right-0 top-1/2 -translate-y-1/2 z-10 bg-canvas hover:bg-canvas-soft !h-10 !w-10 !p-0 hidden md:flex",onClick:c,children:jsxRuntimeExports.jsx(ChevronRight,{className:"h-4 w-4"})})]})]}),jsxRuntimeExports.jsx(Section,{variant:"primary",children:jsxRuntimeExports.jsx("div",{className:"max-w-5xl mx-auto",children:jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-[1.05fr_0.95fr] gap-12 lg:gap-16 items-center",children:[jsxRuntimeExports.jsxs("div",{className:"space-y-7",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.18em] uppercase text-primary-foreground
921/45 mb-4",children:"Supporting EAF"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-4xl md:text-5xl text-primary-foreground mb-6 leading-[1.1]",children:"Shape Europe's Future"}),jsxRuntimeExports.jsx("p",{className:"text-lg md:text-xl text-primary-foreground/75 leading-relaxed max-w-xl",children:"An investment in the EAF is an investment in the individuals who will lead European science, technology, and society for decades to come. We invite you to join us in this mission."})]}),jsxRuntimeExports.jsx("div",{className:"h-px w-24 bg-primary-foreground/25"}),jsxRuntimeExports.jsx("p",{className:"max-w-lg text-sm md:text-base leading-relaxed text-primary-foreground/58",children:"For donation partnerships, larger gifts, or questions about supporting the foundation, you can reach us directly."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-3 w-full",children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.18em] uppercase text-primary-foreground/45",children:"Contacts"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-5 bg-primary-foreground/[0.045] border border-primary-foreground/18 p-4 sm:p-5 w-full transition-colors hover:border-primary-foreground/32 hover:bg-primary-foreground/[0.07]",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 sm:w-[4.5rem] sm:h-[4.5rem] overflow-hidden border border-primary-foreground/20 flex-shrink-0 bg-primary-foreground/5",children:jsxRuntimeExports.jsx("img",{src:fridoImage,alt:"Friedrich Wicke",className:"w-full h-full object-cover"})}),jsxRuntimeExports.jsxs("div",{className:"space-y-1 min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] text-primary-foreground/55 tracking-[0.16em] uppercase",children:"Friedrich Wicke"}),jsxRuntimeExports.jsx("a",{href:"mailto:[email protected]",className:"font-serif text-base md:text-lg text-primary-foreground hover:text-primary-foreground/80 transition-colors block truncate",title:"[email protected]",children:"[email protected]"})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-5 bg-primary-foreground/[0.045] border border-primary-foreground/18 p-4 sm:p-5 w-full transition-colors hover:border-primary-foreground/32 hover:bg-primary-foreground/[0.07]",children:[jsxRuntimeExports.jsx("div",{className:"w-16 h-16 sm:w-[4.5rem] sm:h-[4.5rem] overflow-hidden border border-primary-foreground/20 flex-shrink-0 bg-primary-foreground/5",children:jsxRuntimeExports.jsx("img",{src:rebeccaImage,alt:"Rebecca Obst",className:"w-full h-full object-cover"})}),jsxRuntimeExports.jsxs("div",{className:"space-y-1 min-w-0 flex-1",children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] text-primary-foreground/55 tracking-[0.16em] uppercase",children:"Rebecca Obst"}),jsxRuntimeExports.jsx("a",{href:"mailto:[email protected]",className:"font-serif text-base md:text-lg text-primary-foreground hover:text-primary-foreground/80 transition-colors block truncate",title:"[email protected]",children:"[email protected]"})]})]})]})]})})})]})},createDonationCheckoutSession=async({amountCents:e,mode:s,newsletterRequested:a=!1,receiptRequested:c=!1,donorName:g,donorEmail:et,donorAddress:rt,campaignRef:nt})=>{if(!supabase)throw new Error("Supabase is not configured. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY.");const{data:st,error:at}=await supabase.functions.invoke("create-donation-session",{body:{amountCents:e,mode:s,newsletterRequested:a,receiptRequested:c,donorName:g,donorEmail:et,donorAddress:rt,campaignRef:nt}});if(at)throw new Error(at.message||"Unable to start Stripe checkout.");if(!(st!=null&&st.url))throw new Error("Stripe checkout did not return a redirect URL.");return st.url},monthlyAmounts=[15,50,150],oneTimeAmounts=[50,150,300],CAMPAIGN_REF_KEY="eaf_campaign_ref",readCampaignRef=()=>{var e;try{const s=(e=new URLSearchParams(window.location.search).get("ref"))==null?void 0:e.trim().toLowerCase();return s&&/^[a-z0-9_-]{1,40}$/.test(s)?(localStorage.setItem(CAMPAIGN_REF_KEY,s),s):localStorage.getItem(CAMPAIGN_REF_KEY)??""}catch{return""}},panelReveal="overflow-hidden transition-[max-height,opacity,transform,margin-top] duration-300 ease-out",mentors=[{name:"B. Arold",field:"Economics",university:"University of Cambridge",image:benjaminImage}
921,{name:"S. Wang",field:"Mathematics",university:"EPFL Lausanne",image:svenImage},{name:"N. Kilbertus",field:"Machine Learning",university:"TU Munich",image:nikiImage},{name:"D. Wylezalek",field:"Astrophysics",university:"Heidelberg University",image:dominikaImage},{name:"K. Konczal",field:"History",university:"University of Bielefeld",image:korneliaImage},{name:"Many more",field:"All fields",university:"EAF network"}],highlightedFellows=[{name:"Nea Metohu",flags:["ð¦ð±"],body:"Nea was the first girl from Albania to receive an honorable mention at the International Mathematical Olympiad.",image:neaImage},{name:"Jacqueline Maria Guitu",flags:["ð©ðª","ð²ð©"],body:"Jacqueline studies Medicine at the University of Zurich and Physics at ETH Zurich while volunteering as a tutor for refugees.",image:jacquelineImage},{name:"Yevhenii Hohin",flags:["ðºð¦"],body:"Yevhenii organized online schooling for students in Ukraine's occupied territory while competing in international science competitions.",image:yevheniiImage}],Donate=()=>{const[e,s]=reactExports.useState("monthly"),[a,c]=reactExports.useState(50),[g,et]=reactExports.useState(!1),[rt,nt]=reactExports.useState(""),[st,at]=reactExports.useState(!1),[it,ot]=reactExports.useState("idle"),[lt,ct]=reactExports.useState(""),[dt,ut]=reactExports.useState(!1),[xt,gt]=reactExports.useState(!1),[ht,mt]=reactExports.useState(!1),[kt,Ct]=reactExports.useState(""),[Tt,Pt]=reactExports.useState(""),[At,Gt]=reactExports.useState(""),[Mt]=reactExports.useState(readCampaignRef),zt=e==="monthly"?monthlyAmounts:oneTimeAmounts,Jt=st?Number(rt):a,nr=Number.isFinite(Jt)?Math.round(Jt*100):0,er=qt=>{s(qt),c(qt==="monthly"?50:150),et(!1),nt(""),at(!1),ct(""),ot("idle"),ut(!1)},ur=async()=>{if(nr<300){ot("error"),ct("Please choose at least EUR 3.");return}if(ht&&(!kt.trim()||!Tt.trim()||!At.trim())){ot("error"),ct("Please add your name, email, and postal address for the donation receipt.");return}ot("loading"),ct("");try{const qt=await createDonationCheckoutSession({amountCents:nr,mode:e,newsletterRequested:xt,receiptRequested:ht,donorName:kt.trim(),donorEmail:Tt.trim(),donorAddress:At.trim(),campaignRef:Mt||void 0});window.location.href=qt}catch(qt){ot("error"),ct(qt instanceof Error?qt.message:"Unable to start Stripe checkout.")}};return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas",children:[jsxRuntimeExports.jsx("section",{"data-nav-tone":"dark",className:"relative overflow-hidden bg-canvas text-ink grain",children:jsxRuntimeExports.jsx("div",{className:"relative z-10 max-w-7xl mx-auto px-6 sm:px-8 pt-14 md:pt-20 lg:pt-24 pb-16 md:pb-24",children:jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-[minmax(0,1.15fr)_minmax(0,0.85fr)] gap-12 lg:gap-16 items-start",children:[jsxRuntimeExports.jsxs("div",{className:"max-w-3xl",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-6",children:"Support EAF"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl sm:text-5xl md:text-6xl lg:text-[5rem] leading-[1.03] tracking-tight",children:"Help build a European fellowship for the long term."}),jsxRuntimeExports.jsx("p",{className:"mt-7 md:mt-8 font-serif font-light text-lg md:text-2xl leading-relaxed text-ink/72 max-w-2xl",children:"Your support helps the European Academic Foundation support exceptional students from all backgrounds and remain independent. We're run by a small team of volunteers, so your money benefits the students directly."})]}),jsxRuntimeExports.jsx(DonationPanel,{mode:e,amounts:zt,amount:a,amountConfirmed:g,customAmount:rt,customAmountOpen:st,selectedAmount:Jt,checkoutStatus:it,checkoutMessage:lt,receiptDetailsOpen:dt,newsletterRequested:xt,receiptRequested:ht,donorName:kt,donorEmail:Tt,donorAddress:At,onModeChange:er,onAmountChange:qt=>{c(qt),et(!0),nt(""),at(!1),ct(""),ot("idle")},onCustomAmountChange:qt=>{nt(qt),at(!0),ct(""),ot("idle")},onCustomAmountOpenChange:qt=>{at(qt),qt&&et(!1)},onReceiptRequestedChange:qt=>{mt(qt),ct(""),ot("idle"),ut(qt)},onNewsletterRequestedChange:qt=>{gt(qt),ct(""),ot("idle")},onDonorNameChange:Ct,onDonorEmailChange:Pt,onDonorAddressChange:Gt,onAmountConfirmedChange:et,onReceiptDetailsOpenChange:ut,onContinue:ur})]})})}),jsxRuntimeExports.jsx(Section,{variant:"accent",className:"py-8 md:py-11 lg:py-14",children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-4",children:"Fellows"}),jsxRuntimeExports.jsx("h2",{className:"max-w-none font-serif font-light text-3xl sm:text-4xl md:text-5xl lg:text-[3.45rem] leading-[1.08] tracking-tight lg:whitespace-nowrap",children:"We support exceptional students across Europe."}),jsxRuntimeExports.jsxs("div",{className:"mt-7 grid gap-y-2 md:grid-cols-2 md:gap-x-10 lg:gap-x-14 [&>*:nth-child(even)]:md:border-l [&>*:nth-child(even)]:md:border-border/70 [&>*:nth-child(even)]:md:pl-8 lg:[&>*:nth-child(even)]:pl-10",children:[jsxRuntimeExports.jsx("div",{className:"py-3 md:min-h-[11rem] md:py-4",children:jsxRuntimeExports.jsx("p",{className:"max-w-2xl text-base md:text-lg leading-relaxed text-ink/70",children:"We empower the very best students to excel in their fields and use their talents to make meaningful contributions to European society."})}),highlightedFellows.map(qt=>jsxRuntimeExports.jsx(FellowHighlight,{...qt},qt.name))]})]})}),jsxRuntimeExports.jsx(Section,{className:"py-10 md:py-14 lg:py-16",children:jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-[0.85fr_1.15fr] gap-12 lg:gap-14 items-center",children:[jsxRuntimeExports.jsxs("div",{className:"max-w-xl",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Mentors"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl leading-[1.08] tracking-tight",children:"Each fellow is mentored by one professor."}),jsxRuntimeExports.jsx("p",{className:"mt-6 text-base md:text-lg leading-relaxed text-ink/66",children:"Our mentors support EAF and our fellows as a strong academic network. Their most important role is 1:1 mentoring: continuous support from the day a fellow joins."})]}),jsxRuntimeExports.jsx("div",{className:"grid gap-x-5 gap-y-5 sm:grid-cols-2 xl:grid-cols-3",children:mentors.map((qt,or)=>jsxRuntimeExports.jsx(MentorTile,{...qt,index:or},qt.name))})]})}),jsxRuntimeExports.jsxs(Section,{variant:"accent",grain:!0,className:"py-10 md:py-14 lg:py-16",children:[jsxRuntimeExports.jsxs("div",{className:"mb-8 max-w-6xl space-y-4 md:mb-10 md:space-y-5",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow",children:"Community"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl lg:text-[3.5rem] leading-[1.08] tracking-tight",children:"We're a network built to pay it forward"}),jsxRuntimeExports.jsxs("div",{className:"max-w-5xl space-y-2 font-serif font-light text-base md:text-xl text-ink/65 leading-relaxed",children:[jsxRuntimeExports.jsx("p",{children:"EAF is held together by people who give their time: organizers, professors, lecturers, and alumni."}),jsxRuntimeExports.jsx("p",{children:"Around the fellows, we are building a community that expects support to be passed on."})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-12 gap-5 md:gap-6 items-stretch",children:[jsxRuntimeExports.jsx("figure",{className:"md:col-span-7 relative min-h-[320px] md:min-
921h-[520px] overflow-hidden bg-canvas-deep grain-heavy",children:jsxRuntimeExports.jsx("img",{src:fellowsImage,alt:"EAF fellows gathered at an academic retreat",className:"absolute inset-0 w-full h-full object-cover"})}),jsxRuntimeExports.jsxs("div",{className:"md:col-span-5 grid gap-5 md:gap-6",children:[jsxRuntimeExports.jsx("figure",{className:"relative min-h-[210px] md:min-h-0 overflow-hidden bg-canvas-deep grain-heavy",children:jsxRuntimeExports.jsx("img",{src:retreatImage,alt:"European Academic Foundation retreat setting",className:"absolute inset-0 w-full h-full object-cover"})}),jsxRuntimeExports.jsx("figure",{className:"relative min-h-[210px] md:min-h-0 overflow-hidden bg-canvas-deep grain-heavy",children:jsxRuntimeExports.jsx("img",{src:academy2024Image,alt:"Fellows in conversation during an EAF academy",className:"absolute inset-0 w-full h-full object-cover"})})]})]})]}),jsxRuntimeExports.jsxs(Section,{grain:!0,className:"py-10 md:py-14 lg:py-16",children:[jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-[0.95fr_1.05fr] gap-12 lg:gap-16 items-start",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-5",children:"Why broad support matters"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl leading-[1.08] tracking-tight",children:"Independence is built through many committed supporters."})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-6",children:[jsxRuntimeExports.jsx("p",{className:"font-serif font-light text-lg md:text-2xl leading-relaxed text-ink/78",children:"EAF is volunteer-run and independent. Broad donor support lets us make decisions around fellows, mentors, and access, not around the priorities of a single funder or institution."}),jsxRuntimeExports.jsx("p",{className:"text-base md:text-lg leading-relaxed text-ink/62",children:"Recurring donations are especially valuable because they turn goodwill into continuity: the quiet capacity to reserve venues, fund travel, support projects, and keep the fellowship open to students regardless of financial background."})]})]}),jsxRuntimeExports.jsxs("div",{className:"grid md:grid-cols-3 gap-5 md:gap-6 mt-10 md:mt-12",children:[jsxRuntimeExports.jsx(SupportPrinciple,{icon:Repeat,title:"Continuity",body:"Recurring donations help EAF make careful commitments before each cohort begins."}),jsxRuntimeExports.jsx(SupportPrinciple,{icon:ShieldCheck,title:"Access",body:"Support helps ensure that participation is shaped by promise, not personal finances."}),jsxRuntimeExports.jsx(SupportPrinciple,{icon:Landmark,title:"Independence",body:"A broad donor base helps EAF stay institutionally independent and mission-led."})]})]}),jsxRuntimeExports.jsx(Section,{variant:"primary",grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"grid lg:grid-cols-[minmax(0,0.95fr)_minmax(22rem,0.78fr)] gap-10 md:gap-14 lg:gap-18 items-center",children:[jsxRuntimeExports.jsxs("div",{className:"max-w-xl",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow text-canvas/60 mb-5",children:"Next steps"}),jsxRuntimeExports.jsx("h2",{className:"font-serif font-light text-3xl sm:text-4xl md:text-5xl leading-[1.08] tracking-tight",children:"Prefer to speak first?"}),jsxRuntimeExports.jsx("p",{className:"mt-6 text-base md:text-lg leading-relaxed text-canvas/70",children:"Rebecca and Friedrich are responsible for donor questions and institutional partnerships. Write to EAF directly, or continue with the donation form above."})]}),jsxRuntimeExports.jsxs("div",{className:"w-full max-w-xl justify-self-end",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex shrink-0 gap-2",children:[jsxRuntimeExports.jsx("span",{className:"h-16 w-16 overflow-hidden bg-canvas/5",children:jsxRuntimeExports.jsx("img",{src:rebeccaImage,alt:"Rebecca Obst",className:"h-full w-full object-cover"})}),jsxRuntimeExports.jsx("span",{className:"h-16 w-16 overflow-hidden bg-canvas/5",children:jsxRuntimeExports.jsx("img",{src:fridoImage,alt:"Friedrich Wicke",className:"h-full w-full object-cover"})})]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("div",{className:"text-[11px] tracking-[0.16em] uppercase text-canvas/55",children:"Donation contacts"}),jsxRuntimeExports.jsx("div",{className:"mt-1 font-serif text-lg leading-tight text-canvas md:text-xl",children:"Rebecca Obst & Friedrich Wicke"})]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-10 flex flex-wrap gap-7 md:mt-12",children:[jsxRuntimeExports.jsxs("a",{href:"mailto:[email protected]?subject=Supporting%20EAF",className:"inline-flex items-center gap-2 border-b border-canvas/30 pb-1 text-[12px] tracking-[0.14em] uppercase text-canvas transition-colors hover:border-canvas hover:text-canvas",children:["Email us ",jsxRuntimeExports.jsx(Mail,{className:"h-3.5 w-3.5"})]}),jsxRuntimeExports.jsxs("a",{href:"#donate-form",className:"inline-flex items-center gap-2 border-b border-canvas/30 pb-1 text-[12px] tracking-[0.14em] uppercase text-canvas transition-colors hover:border-canvas hover:text-canvas",children:["Donate now ",jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5"})]})]})]})]})})]})},MentorTile=({image:e,name:s,field:a,university:c,index:g})=>jsxRuntimeExports.jsxs("div",{className:`flex min-w-0 items-center gap-4 pt-4 ${g>2?"border-t border-border":""}`,children:[jsxRuntimeExports.jsx("div",{className:"flex h-20 w-20 shrink-0 items-center justify-center overflow-hidden bg-canvas-deep",children:e?jsxRuntimeExports.jsx("img",{src:e,alt:s,loading:"lazy",className:"h-full w-full object-cover grayscale-[0.1]"}):jsxRuntimeExports.jsx("span",{className:"font-serif text-3xl leading-none text-ink/45",children:"+"})}),jsxRuntimeExports.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntimeExports.jsx("h3",{className:"whitespace-nowrap font-serif text-lg leading-tight text-ink",children:s}),jsxRuntimeExports.jsx("p",{className:"mt-1.5 text-[10px] tracking-[0.14em] uppercase text-ink/48",children:a}),jsxRuntimeExports.jsx("p",{className:"mt-1 overflow-hidden text-xs leading-snug text-ink/55 [display:-webkit-box] [-webkit-box-orient:vertical] [-webkit-line-clamp:2]",children:c})]})]}),FellowHighlight=({image:e,name:s,flags:a,body:c})=>{const g=s==="Yevhenii Hohin",et=s==="Jacqueline Maria Guitu";return jsxRuntimeExports.jsx("article",{className:`py-3 md:py-4 ${et?"md:-mt-10 lg:-mt-14":""}`,children:jsxRuntimeExports.jsxs("div",{className:`grid grid-cols-[6.5rem_minmax(0,1fr)] items-center gap-4 sm:grid-cols-[7.75rem_minmax(0,1fr)] ${g?"md:grid-cols-[minmax(0,1fr)_7.75rem]":""}`,children:[jsxRuntimeExports.jsx("div",{className:"aspect-[4/5] overflow-hidden bg-canvas-deep",children:jsxRuntimeExports.jsx("img",{src:e,alt:s,loading:"lazy",className:`h-full w-full object-cover object-top grayscale-[0.05] ${s==="Yevhenii Hohin"?"scale-[2]":""}`})}),jsxRuntimeExports.jsxs("div",{className:`min-w-0 ${g?"md:-order-1":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"flex items-center gap-1.5",children:a.map(rt=>jsxRuntimeExports.jsx(Flag,{emoji:rt,className:"text-base"},rt))}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl leading-tight text-ink md:text-2xl",children:s})]}),jsxRuntimeExports.jsx("p",{className:"mt-3 font-serif text-base italic leading-relaxed text-ink/70 md:text-[1.0625rem]",children:c})]})]})})}
921,DonationPanel=({mode:e,amounts:s,amount:a,amountConfirmed:c,customAmount:g,customAmountOpen:et,selectedAmount:rt,checkoutStatus:nt,checkoutMessage:st,receiptDetailsOpen:at,newsletterRequested:it,receiptRequested:ot,donorName:lt,donorEmail:ct,donorAddress:dt,onModeChange:ut,onAmountChange:xt,onCustomAmountChange:gt,onCustomAmountOpenChange:ht,onNewsletterRequestedChange:mt,onReceiptRequestedChange:kt,onDonorNameChange:Ct,onDonorEmailChange:Tt,onDonorAddressChange:Pt,onAmountConfirmedChange:At,onReceiptDetailsOpenChange:Gt,onContinue:Mt})=>{const zt=nt==="loading",Jt=ot&&(!lt.trim()||!ct.trim()||!dt.trim()),nr=et&&Number(g)>=3,er=()=>{if(Jt&&!at){Gt(!0);return}Mt()},ur=Jt&&!at?"Add details":zt?"Opening Stripe...":`Donate EUR ${rt} ${e==="monthly"?"monthly":"once"}`;return jsxRuntimeExports.jsxs("aside",{id:"donate-form",className:"w-full min-w-0 scroll-mt-24",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-4 border-b border-border pb-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[11px] tracking-[0.18em] uppercase text-ink/45 mb-2",children:"Donation"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl md:text-[2rem] leading-tight",children:"Make a donation"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4 text-[12px] tracking-[0.16em] uppercase",children:[jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ut("monthly"),className:`transition-colors ${e==="monthly"?"text-ink border-b border-ink":"text-ink/45 hover:text-ink"}`,children:"Monthly"}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ut("once"),className:`transition-colors ${e==="once"?"text-ink border-b border-ink":"text-ink/45 hover:text-ink"}`,children:"One-time"})]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-5 border-b border-border pb-5",children:[c?jsxRuntimeExports.jsxs("div",{className:"flex w-full min-w-0 items-center justify-between gap-4 border border-ink bg-ink px-5 py-4 text-canvas shadow-hover transition-colors duration-200",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[10px] tracking-[0.18em] uppercase text-canvas/62",children:"Ready to give"}),jsxRuntimeExports.jsxs("p",{className:"mt-1 font-serif text-2xl leading-none md:text-[1.65rem]",children:["EUR ",rt," ",e==="monthly"?"monthly":"one-time"]})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>At(!1),className:"text-[11px] tracking-[0.14em] uppercase text-canvas/62 underline decoration-canvas/30 underline-offset-4 transition-colors hover:text-canvas hover:decoration-canvas",children:"Change"})]}):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-4 text-[11px] tracking-[0.16em] uppercase text-ink/45",children:"Amount"}),jsxRuntimeExports.jsxs("div",{className:et?"flex items-stretch gap-1.5":"grid grid-cols-2 gap-2.5 sm:grid-cols-4",children:[s.map(qt=>{const or=!et&&qt===a;return jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>xt(qt),className:`min-h-12 border font-serif leading-none transition-all duration-200 ${et?"w-12 px-1.5 py-2 text-base md:w-14":"w-full px-3 py-3 text-lg md:text-xl"} ${or?"border-ink bg-ink text-canvas shadow-card":"border-border bg-canvas-soft/25 text-ink hover:border-ink/60 hover:bg-canvas-soft"}`,children:et?qt:`EUR ${qt}`},qt)}),et?jsxRuntimeExports.jsxs("div",{className:"flex min-h-11 w-44 shrink-0 items-center gap-2 border border-ink bg-transparent px-3 py-2.5 md:w-52",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Custom donation amount in euro"}),jsxRuntimeExports.jsxs("span",{className:"flex min-w-0 items-baseline gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-lg leading-none text-ink md:text-xl",children:"EUR"}
921),jsxRuntimeExports.jsx("input",{autoFocus:!0,type:"number",min:"1",step:"0.01",inputMode:"numeric",value:g,onChange:qt=>gt(qt.target.value),onKeyDown:qt=>{qt.key==="Enter"&&nr&&At(!0)},placeholder:"0000",className:"w-[6ch] min-w-[6ch] bg-transparent font-serif text-lg leading-none text-ink placeholder:text-ink/25 focus:outline-none md:text-xl"})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>At(!0),disabled:!nr,"aria-label":"Confirm custom donation amount",className:"ml-auto flex h-7 w-7 shrink-0 items-center justify-center border border-ink/35 text-ink transition-colors hover:border-ink disabled:cursor-not-allowed disabled:border-ink/15 disabled:text-ink/25",children:jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5",strokeWidth:1.8})})]}):jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ht(!0),className:"min-h-12 w-full border border-border bg-canvas-soft/25 px-3 py-3 font-serif text-lg leading-none text-ink transition-colors hover:border-ink/60 hover:bg-canvas-soft md:text-xl",children:"Custom"})]})]}),jsxRuntimeExports.jsx("div",{"aria-hidden":!c,className:`${panelReveal} ${c?"mt-4 max-h-[32rem] opacity-100 translate-y-0":"mt-0 max-h-0 opacity-0 -translate-y-2 pointer-events-none"}`,children:jsxRuntimeExports.jsxs("div",{className:"flex min-h-[21rem] flex-col sm:min-h-[18.5rem]",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-2.5",children:[jsxRuntimeExports.jsx(CheckboxRow,{label:"Newsletter",info:"Quarterly, unsubscribe anytime.",checked:it,onChange:()=>mt(!it)}),jsxRuntimeExports.jsx(CheckboxRow,{label:"Donation receipt",info:"For tax records. Email us anytime if you need it reissued.",checked:ot,onChange:()=>kt(!ot)})]}),jsxRuntimeExports.jsx("div",{"aria-hidden":!(ot&&at),className:`${panelReveal} ${ot&&at?"mt-3 max-h-56 opacity-100 translate-y-0":"mt-0 max-h-0 opacity-0 -translate-y-2 pointer-events-none"}`,children:jsxRuntimeExports.jsxs("div",{className:"grid gap-2.5 border-t border-border pt-3",children:[jsxRuntimeExports.jsxs("div",{className:"grid sm:grid-cols-2 gap-3",children:[jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Full legal name"}),jsxRuntimeExports.jsx("input",{type:"text",value:lt,onChange:qt=>Ct(qt.target.value),placeholder:"Full legal name",className:"h-10 w-full border-b border-border bg-transparent px-1 text-sm text-ink placeholder:text-ink/38 focus:outline-none focus:border-ink"})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Email address"}),jsxRuntimeExports.jsx("input",{type:"email",value:ct,onChange:qt=>Tt(qt.target.value),placeholder:"Email address",className:"h-10 w-full border-b border-border bg-transparent px-1 text-sm text-ink placeholder:text-ink/38 focus:outline-none focus:border-ink"})]})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Postal address"}),jsxRuntimeExports.jsx("input",{type:"text",value:dt,onChange:qt=>Pt(qt.target.value),placeholder:"Postal address",className:"h-10 w-full border-b border-border bg-transparent px-1 text-sm text-ink placeholder:text-ink/38 focus:outline-none focus:border-ink"})]})]})}),jsxRuntimeExports.jsx("div",{className:"mt-auto pt-5",children:jsxRuntimeExports.jsxs("button",{type:"button",onClick:er,disabled:zt,className:"group inline-flex min-h-14 w-full items-center justify-center gap-3 bg-ink px-5 py-4 text-[12px] tracking-[0.16em] uppercase text-canvas shadow-hover transition-all hover:bg-ink/90 hover:shadow-elegant disabled:cursor-wait disabled:opacity-70",children:[ur,jsxRuntimeExports.jsx(ArrowRight,{className:"h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5"})]})})]})})]}),st&&jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-destructive",children:st})]})},CheckboxRow=({label:e,info:s,checked:a,onChange:c})=>jsxRuntimeExports.jsxs("div",{className:"group relative flex min-h-12 w-full items-stretch border border-border bg-transparent text-ink transition-colors duration-200 hover:border-ink/45 hover:bg-canvas-soft/50",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:c,"aria-pressed":a,className:"flex flex-1 items-center gap-3 px-4 py-3 text-left",children:[jsxRuntimeExports.jsx("span",{className:`flex h-4 w-4 items-center justify-center border transition-colors ${a?"border-ink bg-ink text-canvas":"border-ink/35 group-hover:border-ink/65"}`,children:a&&jsxRuntimeExports.jsx(Check,{className:"h-3 w-3",strokeWidth:1.8})}),jsxRuntimeExports.jsx("span",{className:"text-[12px] tracking-[0.14em] uppercase",children:e})]}),jsxRuntimeExports.jsx("div",{className:"relative flex w-12 items-center justify-center",children:jsxRuntimeExports.jsxs("button",{type:"button","aria-label":`${e} information`,className:"group/info flex h-7 w-7 items-center justify-center text-ink/38 transition-colors hover:text-ink/70 focus:outline-none focus:text-ink/70",title:s,children:[jsxRuntimeExports.jsx(Info,{className:"h-3.5 w-3.5",
921strokeWidth:1.7}),jsxRuntimeExports.jsx("span",{className:"pointer-events-none absolute right-10 top-1/2 z-20 w-44 -translate-y-1/2 border border-border bg-canvas px-3 py-2 text-left text-[11px] leading-snug tracking-normal normal-case text-ink/70 opacity-0 shadow-card transition-opacity duration-150 group-hover/info:opacity-100 group-focus/info:opacity-100 sm:w-52",children:s})]})})]}),SupportPrinciple=({icon:e,title:s,body:a})=>jsxRuntimeExports.jsxs("div",{className:"border-t border-border pt-6",children:[jsxRuntimeExports.jsx(e,{className:"h-5 w-5 text-ink/50 mb-5",strokeWidth:1.35}),jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl text-ink leading-tight",children:s}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm md:text-base leading-relaxed text-ink/62",children:a})]}),RequireAuth=({children:e})=>{const[s,a]=reactExports.useState(null),[c,g]=reactExports.useState(""),[et,rt]=reactExports.useState(""),[nt,st]=reactExports.useState(""),[at,it]=reactExports.useState(""),[ot,lt]=reactExports.useState(!1),[ct,dt]=reactExports.useState("loading"),[ut,xt]=reactExports.useState(""),[gt,ht]=reactExports.useState(0),mt=useLocation();reactExports.useEffect(()=>{if(!supabase){dt("error"),xt("Supabase is not configured for this environment.");return}let Mt=!0,zt=null;const Jt=[];(async()=>{var ur;try{const{data:qt}=await withTimeout(supabase.auth.getSession(),8e3,"Auth session check timed out.");if(!Mt)return;zt=((ur=qt.session)==null?void 0:ur.user.id)??null,a(qt.session),qt.session&&(dt("checking"),await Ct(qt.session)),Mt&&dt("ready")}catch(qt){if(!Mt)return;a(null),dt("error"),xt(qt instanceof Error?qt.message:"Could not check your Pulse session.")}})();const{data:er}=supabase.auth.onAuthStateChange((ur,qt)=>{const or=(qt==null?void 0:qt.user.id)??null,Dt=or!==zt;if(zt=or,a(qt),!qt){lt(!1),it(""),st(""),dt("ready");return}if(!Dt&&ur!=="USER_UPDATED")return;dt("checking");const Ht=window.setTimeout(()=>{(async()=>{try{await Ct(qt),Mt&&dt("ready")}catch(Xt){if(!Mt)return;dt("error"),xt(Xt instanceof Error?Xt.message:"Could not check your Pulse security settings.")}})()},0);Jt.push(Ht)});return()=>{Mt=!1;for(const ur of Jt)window.clearTimeout(ur);er.subscription.unsubscribe()}},[gt]);const kt=()=>{xt(""),dt("loading"),ht(Mt=>Mt+1)},Ct=async Mt=>{if(!supabase)return;const zt=decodeJwtPayload(Mt.access_token),Jt=(zt==null?void 0:zt.aal)??null,nr=getVerifiedTotpFactor(Mt),er=!!(nr!=null&&nr.id),ur=Mt.user.id;if(!ur){lt(!1),it(""),st("");return}if(er&&Jt!=="aal2"&&(nr!=null&&nr.id)){lt(!1),it(nr.id);return}if(it(""),st(""),er){lt(!1);return}const{data:qt,error:or}=await withTimeout(supabase.from("pulse_profiles").select("is_admin").eq("user_id",ur).eq("account_status","active").maybeSingle(),8e3,"Pulse profile check timed out.");if(or)throw new Error(or.message);lt(!!(qt!=null&&qt.is_admin))},Tt=()=>{const Mt=c.trim();return Mt.toLowerCase()==="finn"?"[email protected]":Mt.toLowerCase()==="friedrich"?"[email protected]":Mt.toLowerCase()==="max"?"[email protected]":Mt},Pt=async Mt=>{if(Mt.preventDefault(),!supabase)return;if(!et){await Gt();return}dt("signing-in"),xt("");const{data:zt,error:Jt}=await supabase.auth.signInWithPassword({email:Tt(),password:et});if(Jt){dt("error"),xt(Jt.message);return}a(zt.session),dt("checking"),zt.session&&await Ct(zt.session),dt("ready")},At=async Mt=>{if(Mt.preventDefault(),!supabase||!at)return;dt("signing-in"),xt("");const{error:zt}=await supabase.auth.mfa.challengeAndVerify({factorId:at,code:nt});if(zt){dt("error"),xt(zt.message);return}it(""),st(""),dt("ready")},Gt=async()=>{if(!supabase)return;dt("sending"),xt("");const{error:Mt}=await supabase.auth.signInWithOtp({email:Tt(),options:{emailRedirectTo:`${window.location.origin}${pulsePath()}`}});if(Mt){dt("error"),xt(Mt.message);return}dt("sent"),xt("Check your email for a sign-in link.")};return ct==="loading"||ct==="checking"?jsxRuntimeExports.jsx(AuthShell,{children:ct==="checking"?"Checking security...":"Loading..."}):ct==="error"&&!s?jsxRuntimeExports.jsx(AuthShell,{children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Could not load Pulse"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:ut})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:kt,className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] tracking-[0.16em] uppercase text-canvas transition-colors hover:bg-ink/90",children:"Retry"})]})}):s&&ot&&mt.pathname!==pulsePath("/settings")&&mt.pathname!==pulsePath("/security")?jsxRuntimeExports.jsx(AuthShell,{children:jsxRuntimeExports.jsxs("div",{className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Secure your account"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:"Admin accounts need an authenticator app before using Pulse."})]}),jsxRuntimeExports.jsx(Link,{to:pulsePath("/settings"),className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] tracking-[0.16em] uppercase text-canvas transition-colors hover:bg-ink/90",children:"Set up authenticator"})]})}):s&&at?jsxRuntimeExports.jsx(AuthShell,{children:jsxRuntimeExports.jsxs("form",{onSubmit:At,className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Authenticator code"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:"Enter the six-digit code from your authenticator app."})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Authenticator code"}),jsxRuntimeExports.jsx("input",{type:"text",inputMode:"numeric",autoComplete:"one-time-code",required:!0,value:nt,onChange:Mt=>st(Mt.target.value),placeholder:"123456",disabled:ct==="signing-in",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsx("button",{type:"submit",disabled:ct==="signing-in",className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] tracking-[0.16em] uppercase text-canvas transition-colors hover:bg-ink/90 disabled:cursor-not-allowed disabled:opacity-50",children:ct==="signing-in"?"Verifying...":"
921Verify"}),ut&&jsxRuntimeExports.jsx("p",{className:"text-sm leading-relaxed text-ink/60",children:ut})]})}):s?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:e}):jsxRuntimeExports.jsx(AuthShell,{children:jsxRuntimeExports.jsxs("form",{onSubmit:Pt,className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Sign in"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:"Access is limited to fellows, alumni, and the EAF team."})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Email address"}),jsxRuntimeExports.jsx("input",{type:"text",required:!0,value:c,onChange:Mt=>g(Mt.target.value),placeholder:"Email address or username",disabled:!isSupabaseConfigured||ct==="sending"||ct==="signing-in",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Password"}),jsxRuntimeExports.jsx("input",{type:"password",value:et,onChange:Mt=>rt(Mt.target.value),placeholder:"Password, or leave blank for magic link",disabled:!isSupabaseConfigured||ct==="sending"||ct==="signing-in",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsx("button",{type:"submit",disabled:!isSupabaseConfigured||ct==="sending"||ct==="signing-in",className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] tracking-[0.16em] uppercase text-canvas transition-colors hover:bg-ink/90 disabled:cursor-not-allowed disabled:opacity-50",children:ct==="sending"||ct==="signing-in"?"Signing in...":et?"Sign in":"Send sign-in link"}),ut&&jsxRuntimeExports.jsx("p",{className:"text-sm leading-relaxed text-ink/60",children:ut})]})})},AuthShell=({children:e})=>jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-6 py-24 text-ink",children:jsxRuntimeExports.jsx("div",{className:"mx-auto flex min-h-[60vh] max-w-5xl items-center justify-center border-t border-ink/25",children:e})}),decodeJwtPayload=e=>{try{const s=e.split(".")[1];if(!s)return null;const a=s.replace(/-/g,"+").replace(/_/g,"/"),c=a.padEnd(Math.ceil(a.length/4)*4,"=");return JSON.parse(window.atob(c))}catch{return null}},getVerifiedTotpFactor=e=>(e.user.factors??[]).find(a=>a.factor_type==="totp"&&a.status==="verified"),withTimeout=async(e,s,a)=>{let c;try{return await Promise.race([e,new Promise((g,et)=>{c=window.setTimeout(()=>et(new Error(a)),s)})])}finally{c&&window.clearTimeout(c)}},emptyFeedbackStatus={seminarFeedbackComplete:!1,postAcademyFeedbackComplete:!1},emptyFollowUpStatus={...emptyFeedbackStatus,reimbursementSubmitted:!1},getCurrentAcademyAccess=async()=>{var at;if(!supabase)return null;const{data:e,error:s}=await supabase.auth.getSession(),a=(at=e.session)==null?void 0:at.user;if(s||!a)return null;const{data:c,error:g}=await supabase.from("pulse_profiles").select("person_id,is_admin").eq("user_id",a.id).eq("account_status","active").maybeSingle();if(g||!c)return null;const{data:et,error:rt}=await supabase.from("academy_participation").select("attendance_status").eq("academy_year","2026").eq("person_id",c.person_id).maybeSingle();if(rt)throw new Error(rt.message);const{data:nt,error:st}=await supabase.from("academy_seminar_preferences").select("id").eq("academy_year","2026").eq("person_id",c.person_id).maybeSingle();if(st)throw new Error(st.message);return{personId:c.person_id,isAdmin:!!c.is_admin,attendanceStatus:(et==null?void 0:et.attendance_status)??null,questionnaire
921Complete:!!nt}},canSeeCurrentAcademy=e=>!!(e&&(e.isAdmin||e.attendanceStatus==="attending")),getAcademy2026FeedbackStatus=async e=>{if(!supabase)return emptyFeedbackStatus;const[s,a]=await Promise.all([supabase.from("academy_seminar_feedback_completions").select("academy_year").eq("academy_year","2026").eq("person_id",e).maybeSingle(),supabase.from("academy_post_feedback_completions").select("academy_year").eq("academy_year","2026").eq("person_id",e).maybeSingle()]),c=s.error??a.error;if(c)throw new Error(c.message);return{seminarFeedbackComplete:!!s.data,postAcademyFeedbackComplete:!!a.data}},getAcademy2026FollowUpStatus=async e=>{if(!supabase)return emptyFollowUpStatus;const[s,a]=await Promise.all([getAcademy2026FeedbackStatus(e),supabase.from("academy_reimbursement_requests").select("id").eq("academy_year","2026").eq("person_id",e).limit(1).maybeSingle()]);if(a.error)throw new Error(a.error.message);return{...s,reimbursementSubmitted:!!a.data}},CountrySelect=({value:e,onChange:s,className:a=""})=>{const c=!!e&&!countryOptions.some(g=>g.name===e);return jsxRuntimeExports.jsxs("select",{value:e,onChange:g=>s(g.target.value),className:a,children:[jsxRuntimeExports.jsx("option",{value:"",children:"Choose a country"}),c&&jsxRuntimeExports.jsxs("option",{value:e,children:[e," (current value)"]}),countryOptions.map(g=>jsxRuntimeExports.jsxs("option",{value:g.name,children:[g.flag," ",g.name]},g.code))]})},roleStyles={team:"border-sky-700/25 bg-sky-50 text-sky-950",fellow:"border-emerald-700/25 bg-emerald-50 text-emerald-950",alumni:"border-amber-700/25 bg-amber-50 text-amber-950"},roleRowStyles={team:"border-l-sky-500 bg-sky-50/35",fellow:"border-l-emerald-500 bg-emerald-50/35",alumni:"border-l-amber-500 bg-amber-50/35"},filterButtonClass=e=>`border px-3 py-2 text-xs uppercase tracking-[0.14em] transition-colors ${e?"border-ink bg-ink text-canvas":"border-border bg-canvas text-ink/60 hover:border-ink/50 hover:text-ink"}`,cohortBadgeClass=e=>e==="2026"?"border-indigo-700/25 bg-indigo-50 text-indigo-950":e==="2025"?"border-emerald-700/25 bg-emerald-50 text-emerald-950":e==="2024"?"border-amber-700/25 bg-amber-50 text-amber-950":"border-ink/20 bg-canvas text-ink",Pulse=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PulseHome,{})}),PulseMembers=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PulseConsole,{})}),PulseHome=()=>jsxRuntimeExports.jsx(PulseHomeContent,{}),resolvePulseAccess=(e,s,a=8e3)=>new Promise(c=>{const g=window.setTimeout(()=>c(s),a);e.then(et=>{window.clearTimeout(g),c(et)},()=>{window.clearTimeout(g),c(s)})}),PulseHomeContent=({localPreview:e=!1})=>{const[s,a]=reactExports.useState(null),[c,g]=reactExports.useState(e),[et,rt]=reactExports.useState(e?"allowed":"loading"),[nt,st]=reactExports.useState(e),[at,it]=reactExports.useState(!1);reactExports.useEffect(()=>{if(e||!supabase)return;let dt=!1;return(async()=>{var ut,xt,gt,ht,mt;try{const{data:kt,error:Ct}=await supabase.auth.getSession();if(Ct)throw Ct;const Tt=(ut=kt.session)==null?void 0:ut.user,Pt=((xt=Tt==null?void 0:Tt.user_metadata)==null?void 0:xt.full_name)??((gt=Tt==null?void 0:Tt.user_metadata)==null?void 0:gt.name)??((mt=(ht=Tt==null?void 0:Tt.email)==null?void 0:ht.split("@")[0])==null?void 0:mt.replace(/[._-]+/g," "));if(dt||(Pt&&a(toTitleCase(firstNameForGreeting(Pt))),!Tt))return;const[At,Gt]=await Promise.all([resolvePulseAccess(getCurrentAcademyAccess(),null),resolvePulseAccess(getPulseTeamAccess(),"error")]);if(dt)return;g(!!(At!=null&&At.isAdmin)),it(!!(At||Gt==="allowed")),rt(Gt)}catch{dt||rt("error")}finally{dt||st(!0)}})(),()=>{dt=!0}},[e]);const ot=[];
921c&&ot.push({title:"Applications",to:pulsePath("/applications"),icon:FileText,accessLabel:"Team only"}),et==="allowed"&&(ot.push({title:"Planning",to:e?"/__qa/planning":pulsePath("/planning"),icon:ListTree,accessLabel:"Team only"}),ot.push({title:"Submit reimbursement",to:pulsePath("/reimbursements"),icon:FileText,accessLabel:"Team only"}),ot.push({title:"Availability",to:pulsePath("/availability"),icon:CalendarClock,accessLabel:"Team only"})),ot.push({title:"People",to:pulsePath("/members"),icon:Users}),ot.push({title:"Academies",to:pulsePath("/academies"),icon:BookOpen}),at&&et!=="allowed"&&ot.push({title:"1:1s",to:pulsePath("/one-to-ones"),icon:CalendarClock}),c||ot.push({title:"My profile",to:pulsePath("/profile"),icon:UserRound}),ot.push({title:"Demos",to:pulsePath("/demos"),icon:Presentation}),ot.push({title:"Settings",to:pulsePath("/settings"),icon:Settings});const lt=ot.filter(dt=>!dt.accessLabel),ct=ot.filter(dt=>dt.accessLabel).sort((dt,ut)=>+(ut.title==="Planning")-+(dt.title==="Planning"));return jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-5xl",children:[jsxRuntimeExports.jsxs("div",{className:"mb-8 flex items-center justify-between gap-6 border-b border-border pb-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsxs("h1",{className:"font-serif text-4xl font-light leading-tight sm:text-5xl",children:[greetingForNow(),s?`, ${s}`:"","."]})]}),jsxRuntimeExports.jsx(EAFLogo,{height:76,showWordmark:!1,className:"shrink-0"})]}),e&&jsxRuntimeExports.jsx("p",{className:"mb-6 text-xs text-ink/50",children:"Local preview of the Pulse team home. Planning is editable locally; existing private areas keep their normal sign-in."}),nt?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-5",children:lt.map(dt=>jsxRuntimeExports.jsx(PulseHomeLink,{...dt},dt.to))}),ct.length>0&&jsxRuntimeExports.jsxs("section",{className:"mt-8 border border-red-800/25 bg-red-50/20","aria-label":"Team tools",children:[jsxRuntimeExports.jsx("h2",{className:"bg-red-800 px-5 py-3 text-xs font-semibold uppercase tracking-[0.16em] text-white",children:"Team only"}),jsxRuntimeExports.jsx("div",{className:"grid gap-3 p-4",children:ct.map(dt=>jsxRuntimeExports.jsxs(Link,{to:dt.to,className:"flex items-center gap-3 border border-border bg-canvas-soft/40 px-5 py-4 text-sm transition-colors hover:bg-canvas-soft",children:[jsxRuntimeExports.jsx(dt.icon,{className:"h-5 w-5 text-ink/55"}),dt.title,jsxRuntimeExports.jsx(ArrowRight,{className:"ml-auto h-4 w-4 text-ink/40"})]},dt.to))})]})]}):jsxRuntimeExports.jsxs("div",{className:"grid gap-3","aria-label":"Loading Pulse navigation",children:[jsxRuntimeExports.jsx("div",{className:"min-h-[60
921px] animate-pulse border border-border bg-canvas-soft/35"}),jsxRuntimeExports.jsx("div",{className:"min-h-[60px] animate-pulse border border-border bg-canvas-soft/35"})]})]})})},PulseHomeLink=({title:e,to:s,icon:a})=>jsxRuntimeExports.jsxs(Link,{to:s,className:"group flex min-h-[190px] w-full flex-col items-center justify-center gap-7 border border-border bg-canvas-soft/50 p-6 text-center transition-colors hover:border-ink/30 hover:bg-canvas focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ink/30",children:[jsxRuntimeExports.jsx(a,{className:"h-16 w-16 stroke-[1.15] text-ink/60"}),jsxRuntimeExports.jsx("span",{className:"text-[13px] font-medium uppercase tracking-[0.18em] text-ink/65",children:e})]}),AccountStatusMarker=({person:e})=>{var a;return((a=e.pulse_profiles)==null?void 0:a.account_status)==="active"?null:jsxRuntimeExports.jsx("span",{title:"Invited: this person does not have an active Pulse account yet. Copy/send a claim link if needed.",className:"inline-flex h-5 w-5 shrink-0 items-center justify-center text-rose-700","aria-label":"Invited account is not active yet",children:jsxRuntimeExports.jsx(CircleAlert,{className:"h-4 w-4"})})},initialsFor$1=e=>e.split(" ").filter(Boolean).slice(0,2).map(s=>s[0]).join("").toUpperCase(),PersonAvatar=({person:e,size:s="md",defer:a=!1})=>{const c=resolvePublicImageUrl(e.public_image_url),g=s==="lg"?"h-16 w-16 text-lg":"h-9 w-9 text-xs",[et,rt]=reactExports.useState(!a),nt=reactExports.useRef(null);return reactExports.useEffect(()=>{if(!a||et)return;const st=nt.current;if(!st)return;let at=null,it=null;const ot=()=>{if("requestIdleCallback"in window){it=window.requestIdleCallback(()=>rt(!0),{timeout:1200});return}at=window.setTimeout(()=>rt(!0),250)},lt=new IntersectionObserver(([ct])=>{ct.isIntersecting&&(ot(),lt.disconnect())},{rootMargin:"160px"});return lt.observe(st),()=>{lt.disconnect(),at!==null&&window.clearTimeout(at),it!==null&&"cancelIdleCallback"in window&&window.cancelIdleCallback(it)}},[a,et]),jsxRuntimeExports.jsx("span",{ref:nt,className:`inline-flex shrink-0 items-center justify-center overflow-hidden bg-ink/10 text-ink/45 ${g}`,children:c&&et?jsxRuntimeExports.jsx("img",{src:c,alt:e.full_name,loading:"lazy",decoding:"async",className:"h-full w-full object-cover"}):initialsFor$1(e.full_name)})},PulseConsole=()=>{var Bt,rr,lr,pr,tr,hr;const[e,s]=reactExports.useState([]),[a,c]=reactExports.useState("loading"),[g,et]=reactExports.useState(!1),[rt,nt]=reactExports.useState(""),[st,at]=reactExports.useState(!1),[it,ot]=reactExports.useState(null),[lt,ct]=reactExports.useState(null),[dt,ut]=reactExports.useState(null),[xt,gt]=reactExports.useState("cohort"),[ht,mt]=reactExports.useState("desc"),[kt,Ct]=reactExports.useState(""),[Tt,Pt]=reactExports.useState(null),[At,Gt]=reactExports.useState(null),[Mt,zt]=reactExports.useState(null),[Jt,nr]=reactExports.useState(!1);reactExports.useEffect(()=>{if(!isSupabaseConfigured){c("error"),nt("Supabase is not configured. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY to .env.local.");return}listPulseDirectory().then(Vt=>{s(Vt),c("ready")}).catch(Vt=>{c("error"),nt(Vt instanceof Error?Vt.message:"Could not load Pulse.")}),supabase==null||supabase.auth.getUser().then(async({data:Vt})=>{if(!Vt.user||!supabase){et(!0);return}const{data:sr}=await supabase.from("pulse_profiles").select("is_admin, person_id").eq("user_id",Vt.user.id).maybeSingle();at(!!(sr!=null&&sr.is_admin)),ot((sr==null?void 0:sr.person_id)??null),et(!0)})},[]);const er=async Vt=>{try{const{claimUrl:sr}=await createPulseClaimLink(Vt);await navigator.clipboard.writeText(sr),s(getCachedPulseDirectory()??e),nt("Claim link copied.")}catch(sr){nt(sr instanceof Error?sr.message:"Could not create claim link.")}},ur=async Vt=>{try{const sr=await createPulsePersonDocumentUrl(Vt),Lt=window.document.createElement("a");Lt.href=sr,Lt.target="_blank",Lt.rel="noopener noreferrer",Lt.click()}catch(sr){nt(sr instanceof Error?sr.message:"Could not open document.")}},qt=reactExports.useMemo(()=>Array.from(new Set(e.map(Vt=>
921Vt.cohort).filter(Boolean))).sort((Vt,sr)=>sr.localeCompare(Vt)),[e]),or=reactExports.useMemo(()=>{const Vt=sr=>sr[xt]??"";return e.filter(sr=>{const Lt=kt.trim().toLowerCase(),Kt=!lt||sr.role===lt,mr=!dt||sr.cohort===dt,xr=!Lt||[sr.full_name,sr.current_institution,sr.previous_institutions,sr.field,sr.other_fields,sr.country,sr.cohort].filter(Boolean).some(cr=>String(cr).toLowerCase().includes(Lt));return Kt&&mr&&xr}).sort((sr,Lt)=>{if(sr.role==="team"&&Lt.role!=="team")return 1;if(sr.role!=="team"&&Lt.role==="team")return-1;const Kt=String(Vt(sr)).localeCompare(String(Vt(Lt)),void 0,{numeric:!0,sensitivity:"base"});return ht==="asc"?Kt:-Kt})},[dt,e,lt,kt,ht,xt]),Dt=Vt=>{if(xt===Vt){mt(sr=>sr==="asc"?"desc":"asc");return}gt(Vt),mt(Vt==="cohort"?"desc":"asc")},Ht=Vt=>{var sr,Lt,Kt,mr;Pt(null),Gt(Vt),zt({full_name:Vt.full_name,role:Vt.role,cohort:Vt.cohort,current_institution:Vt.current_institution??"",previous_institutions:Vt.previous_institutions??"",field:Vt.field??"",other_fields:Vt.other_fields??"",country:Vt.country??"",public_bio:Vt.public_bio??"",public_image_url:Vt.public_image_url??"",public_linkedin_url:"",public_website_url:"",public_email:"",contact_email:((sr=Vt.pulse_member_contacts)==null?void 0:sr.email)??"",contact_phone:((Lt=Vt.pulse_member_contacts)==null?void 0:Lt.phone)??"",contact_linkedin_url:((Kt=Vt.pulse_member_contacts)==null?void 0:Kt.linkedin_url)??"",contact_website_url:((mr=Vt.pulse_member_contacts)==null?void 0:mr.website_url)??"",is_public:Vt.is_public,is_pulse_directory_visible:Vt.is_pulse_directory_visible,community_intro:Vt.community_intro??""})},Xt=(Vt,sr)=>{zt(Lt=>Lt&&{...Lt,[Vt]:sr})},Zt=async()=>{if(!At||!Mt)return;const Vt=sr=>String(sr??"").trim()||null;nr(!0);try{const sr={current_institution:Vt(Mt.current_institution),previous_institutions:Vt(Mt.previous_institutions),field:Vt(Mt.field),other_fields:Vt(Mt.other_fields),country:Vt(Mt.country),public_bio:Vt(Mt.public_bio),community_intro:Vt(Mt.community_intro)},Lt=await updatePulsePerson(At.id,{full_name:Mt.full_name.trim(),role:Mt.role,cohort:Mt.cohort.trim(),...sr,public_image_url:Vt(Mt.public_image_url),is_public:Mt.is_public,is_pulse_directory_visible:Mt.is_pulse_directory_visible}),Kt=await updatePulseMemberContact(At.id,{email:Vt(Mt.contact_email),phone:Vt(Mt.contact_phone),linkedin_url:Vt(Mt.contact_linkedin_url),website_url:Vt(Mt.contact_website_url)}),mr={...Lt,pulse_member_contacts:Kt};s(xr=>xr.map(cr=>cr.id===mr.id?mr:cr)),Pt(xr=>(xr==null?void 0:xr.id)===mr.id?mr:xr),Gt(null),zt(null),nt("Member saved. The public Fellows and Team pages now use this profile data.")}catch(sr){nt(sr instanceof Error?sr.message:"Could not save member.")}finally{nr(!1)}},It=({label:Vt,column:sr})=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Dt(sr),className:"inline-flex items-center gap-1 text-left transition-colors hover:text-ink",children:[Vt,jsxRuntimeExports.jsx("span",{className:"text-ink/35",children:xt===sr?ht==="asc"?"â":"â":"â"})]});return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:[jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-7xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("div",{className:"mb-8 border-b border-border pb-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-5xl font-light",children:"People"}),jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-3xl text-sm leading-6 text-ink/60",children:st?"Browse shared people data, Pulse account status, and profile claim links.":"Browse fellows, alumni, and the EAF team."})]}),rt&&jsxRuntimeExports.jsx("div",{className:"mb-4 border border-border bg-canvas-soft p-3 text-sm text-ink/70",children:rt}),(a==="loading"||!g)&&jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:"Loading Pulse data..."}),a==="ready"&&g&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"mb-5 border border-border bg-canvas-soft/45 p-4",children:jsxRuntimeExports.jsxs("div",{className:"grid gap-4 xl:grid-cols-[1fr_auto_auto] xl:items-end",children:[jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-[11px] uppercase tracking-[0.14em] text-ink/45",children:"Search"}),jsxRuntimeExports.jsx("input",{type:"search",value:kt,onChange:Vt=>Ct(Vt.target.value),placeholder:"Name, institution, field, country...",className:"h-11 w-full border border-border bg-canvas px-3 text-sm text-ink placeholder:text-ink/35 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:"Role"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:["team","fellow","alumni"].map(Vt=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ct(sr=>
921sr===Vt?null:Vt),className:filterButtonClass(lt===Vt),children:Vt},Vt))})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:"Cohort"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:qt.map(Vt=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>ut(sr=>sr===Vt?null:Vt),className:filterButtonClass(dt===Vt),children:Vt},Vt))})]})]})}),jsxRuntimeExports.jsx("div",{className:"overflow-x-auto border border-border bg-canvas-soft/50",children:jsxRuntimeExports.jsxs("div",{className:"min-w-[1100px]",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[1.7fr_100px_90px_1.15fr_1.15fr_220px] gap-3 border-b border-border px-4 py-3 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:[jsxRuntimeExports.jsx(It,{label:"Name",column:"full_name"}),jsxRuntimeExports.jsx(It,{label:"Role",column:"role"}),jsxRuntimeExports.jsx(It,{label:"Cohort",column:"cohort"}),jsxRuntimeExports.jsx(It,{label:"Institution",column:"current_institution"}),jsxRuntimeExports.jsx(It,{label:"Field",column:"field"}),jsxRuntimeExports.jsx("span",{children:"Actions"})]}),or.map(Vt=>{var sr;return jsxRuntimeExports.jsxs("div",{className:`grid grid-cols-[1.7fr_100px_90px_1.15fr_1.15fr_220px] items-center gap-3 border-b border-l-4 border-border px-4 py-3 text-sm last:border-b-0 ${roleRowStyles[Vt.role]}`,children:[jsxRuntimeExports.jsxs("span",{className:"flex min-w-0 items-center gap-2 font-medium",children:[jsxRuntimeExports.jsx(PersonAvatar,{person:Vt,defer:!0}),jsxRuntimeExports.jsxs("span",{className:"min-w-0",children:[jsxRuntimeExports.jsx("span",{className:"block truncate",children:Vt.full_name}),st&&!Vt.is_public&&jsxRuntimeExports.jsx("span",{className:"block text-[10px] uppercase tracking-[0.14em] text-ink/35",children:"Public website hidden"}),!Vt.is_pulse_directory_visible&&(st||Vt.id===it)&&jsxRuntimeExports.jsx("span",{className:"block text-[10px] uppercase tracking-[0.14em] text-ink/35",children:"Directory hidden"})]}),st&&jsxRuntimeExports.jsx(AccountStatusMarker,{person:Vt})]}),jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`capitalize ${roleStyles[Vt.role]}`,children:Vt.role})}),jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cohortBadgeClass(Vt.cohort),children:Vt.cohort})}),jsxRuntimeExports.jsx("span",{className:"truncate",children:Vt.current_institution||"-"}),jsxRuntimeExports.jsx("span",{className:"truncate",children:Vt.field||"-"}),jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsxs(Button,{type:"button",size:"sm",variant:"outline",onClick:()=>Pt(Vt),children:[jsxRuntimeExports.jsx(Eye,{className:"mr-1 h-4 w-4"}),"View"]}),st&&(((sr=Vt.pulse_profiles)==null?void 0:sr.account_status)==="active"?jsxRuntimeExports.jsx("span",{className:"text-xs uppercase tracking-[0.14em] text-ink/35",children:"Active"}):jsxRuntimeExports.jsx(Button,{type:"button",size:"sm",variant:"outline",onClick:()=>er(Vt.id),children:"Claim link"}))]})]},Vt.id)}),or.length===0&&jsxRuntimeExports.jsx("div",{className:"px-4 py-8 text-sm text-ink/55",children:"No people match the current filters."})]})})]})]}),jsxRuntimeExports.jsx(Dialog,{open:!!Tt,onOpenChange:Vt=>!Vt&&Pt(null),children:jsxRuntimeExports.jsx(DialogContent,{className:"max-h-[90vh] max-w-3xl overflow-y-auto",children:Tt&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(PersonAvatar,{person:Tt,size:"lg"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-2xl",children:Tt.full_name}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`capitalize ${roleStyles[Tt.role]}`,children:Tt.role}),jsxRuntimeExports.jsx(Badge,{variant:"outline",className:cohortBadgeClass(Tt.cohort),children:Tt.cohort}),st&&!Tt.is_public&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-ink/20 bg-canvas text-ink/55",children:"Public website hidden"}),!Tt.is_pulse_directory_visible&&(st||Tt.id===it)&&jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-ink/20 bg-canvas text-ink/55",children:"Directory hidden"})]})]})]}),st?jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>Ht(Tt),children:[jsxRuntimeExports.jsx(PenLine,{className:"mr-1 h-4 w-4"}),"Edit"]}):Tt.id===it?jsxRuntimeExports.jsx(Button,{asChild:!0,type:"button",variant:"outline",size:"sm",children:jsxRuntimeExports.jsxs(Link,{to:pulsePath("/profile"),children:[jsxRuntimeExports.jsx(PenLine,{className:"mr-1 h-4 w-4"}),"Edit"]})}):null]})}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 py-2 md:grid-cols-2",children:[jsxRuntimeExports.jsx(DetailField,{label:"Institution",value:Tt.current_institution}),jsxRuntimeExports.jsx(DetailField,{label:"Previous institutions",value:Tt.previous_institutions}),jsxRuntimeExports.jsx(DetailField,{label:"Field",value:Tt.field}),jsxRuntimeExports.jsx(DetailField,{label:"Other fields",value:Tt.other_fields}),jsxRuntimeExports.jsx(DetailField,{label:"Country",value:Tt.country}),jsxRuntimeExports.jsx(DetailField,{label:"Email · EAF only",value:((Bt=Tt.pulse_member_contacts)==null?void 0:Bt.email)??null}),jsxRuntimeExports.jsx(DetailField,{label:"Phone · EAF only",value:((rr=Tt.pulse_member_contacts)==null?void 0:rr.phone)??null}),jsxRuntimeExports.jsx(DetailField,{label:"LinkedIn · EAF only",value:((lr=Tt.pulse_member_contacts)==null?void 0:lr.linkedin_url)??null}),jsxRuntimeExports.jsx(DetailField,{label:"Website · EAF only",value:((pr=Tt.pulse_member_contacts)==null?void 0:pr.website_url)??null}),jsxRuntimeExports.jsx(DetailField,{label:"About me & how I can help",value:Tt.community_intro,className:"md:col-span-2",multiline:!0}),st&&jsxRuntimeExports.jsx(DetailField,{label:"Image path",value:Tt.public_image_url,className:"md:col-span-2"}),jsxRuntimeExports.jsx(DetailField,{label:"Bio",value:Tt.public_bio,className:"md:col-span-2",multiline:!0}),!!((tr=Tt.pulse_person_documents)!=null&&tr.length)&&jsxRuntimeExports.jsxs("div",{className:"md:col-span-2",children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:"CV"}),jsxRuntimeExports.jsx("div",{className:"flex min-h-11 flex-wrap items-center gap-2 border border-border bg-canvas-soft/50 px-3 py-2",children:(hr=Tt.pulse_person_documents)!=null&&hr.length?Tt.pulse_person_documents.map(Vt=>jsxRuntimeExports.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsxs(Button,{type:"button",size:"sm",variant:"outline",onClick:()=>ur(Vt),children:[jsxRuntimeExports.jsx(FileText,{className:"mr-1 h-4 w-4"}),"Open ",Vt.document_type.toUpperCase()]}),st&&jsxRuntimeExports.jsxs("span",{className:"text-xs text-ink/45",children:[Vt.share_with_fellows?"Shared with fellows":"Not shared with fellows",Vt.share_with_partners?" · Partner sharing allowed":" · No partner sharing"]})]},Vt.id)):jsxRuntimeExports.jsx("span",{className:"text-sm text-ink/45",children:"No CV shared."})})]})]})]})})}),jsxRuntimeExports.jsx(Dialog,{open:!!At,onOpenChange:Vt=>!Vt&&Gt(null),children:jsxRuntimeExports.jsx(DialogContent,{className:"max-h-[90vh] max-w-3xl overflow-y-auto",children:At&&Mt&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[jsxRuntimeExports.jsx(PersonAvatar,{person:At,size:"lg"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-2xl",children:"Edit profile"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/55",children:st?"These fields feed Pulse and the public website.":"Update the information shown in the Pulse directory and, when published, on the public website."})]})]})}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 py-2 md:grid-cols-2",children:[st&&jsxRuntimeExports.jsx(ProfileField,{label:"Name",children:jsxRuntimeExports.jsx("input",{value:Mt.full_name,onChange:Vt=>Xt("full_name",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),st&&jsxRuntimeExports.jsx(ProfileField,{label:"Role",children:jsxRuntimeExports.jsxs("select",{value:Mt.role,onChange:Vt=>Xt("role",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none",children:[jsxRuntimeExports.jsx("option",{value:"team",children:"Team"}),jsxRuntimeExports.jsx("option",{value:"fellow",children:"Fellow"}),jsxRuntimeExports.jsx("option",{value:"alumni",children:"Alumni"})]})}),st&&jsxRuntimeExports.jsx(ProfileField,{label:"Cohort",children:jsxRuntimeExports.jsx("input",{value:Mt.cohort,onChange:Vt=>Xt("cohort",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Country",children:jsxRuntimeExports.jsx(CountrySelect,{value:Mt.country??"",onChange:Vt=>Xt("country",Vt),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Institution",children:jsxRuntimeExports.jsx("input",{value:Mt.current_institution??"",onChange:Vt=>Xt("current_institution",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Previous institutions",children:jsxRuntimeExports.jsx("input",{value:Mt.previous_institutions??"",onChange:Vt=>Xt("previous_institutions",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Field",children:jsxRuntimeExports.jsx("input",{value:Mt.field??"",onChange:Vt=>Xt("field",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Other fields",children:jsxRuntimeExports.jsx("input",{value:Mt.other_fields??"",onChange:Vt=>Xt("other_fields",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),st&&jsxRuntimeExports.jsx(ProfileField,{label:"Image URL or asset path",children:jsxRuntimeExports.jsx("input",{value:Mt.public_image_url??"",onChange:Vt=>Xt("public_image_url",Vt.target.value),placeholder:"src/assets/images/...",className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Email · EAF only",children:jsxRuntimeExports.jsx("input",{value:Mt.contact_email,onChange:Vt=>Xt("contact_email",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Phone · EAF only",children:jsxRuntimeExports.jsx("input",{value:Mt.contact_phone,onChange:Vt=>Xt("contact_phone",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"LinkedIn · EAF only",children:jsxRuntimeExports.jsx("input",{value:Mt.contact_linkedin_url,onChange:Vt=>Xt("contact_linkedin_url",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"Website · EAF only",children:jsxRuntimeExports.jsx("input",{value:Mt.contact_website_url,onChange:Vt=>Xt("contact_website_url",Vt.target.value),className:"h-10 w-full border border-border bg-canvas px-3 text-sm focus:border-ink focus:outline-none"})}),st&&jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-3 border border-border bg-canvas-soft/60 px-3 py-3 text-sm md:col-span-2",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:Mt.is_public,onChange:Vt=>Xt("is_public",Vt.target.checked)}),"Show this person on the public website"]}),st&&jsxRuntimeExports.jsxs("label",{className:"flex items-center gap-3 border border-border bg-canvas-soft/60 px-3 py-3 text-sm md:col-span-2",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:Mt.is_pulse_directory_visible,onChange:Vt=>Xt("is_pulse_directory_visible",Vt.target.checked)}),"Show this person to other fellows and alumni in the Pulse directory"]}),jsxRuntimeExports.jsx(ProfileField,{label:"Bio",className:"md:col-span-2",children:jsxRuntimeExports.jsx("textarea",{value:Mt.public_bio??"",onChange:Vt=>Xt("public_bio",Vt.target.value),rows:6,className:"w-full border border-border bg-canvas px-3 py-2 text-sm leading-6 focus:border-ink focus:outline-none"})}),jsxRuntimeExports.jsx(ProfileField,{label:"About me & how I can help",className:"md:col-span-2",children:jsxRuntimeExports.jsx("textarea",{value:Mt.community_intro??"",onChange:Vt=>Xt("community_intro",Vt.target.value),rows:6,className:"w-full border border-border bg-canvas px-3 py-2 text-sm leading-6 focus:border-ink focus:outline-none"})})]}),jsxRuntimeExports.jsxs("div",{className:"flex justify-end gap-2 border-t border-border pt-4",children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>Gt(null),children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:Zt,disabled:Jt||!Mt.full_name.trim(),children:Jt?"Saving...":"Save"})]})]})})})]})},ProfileField=({label:e,children:s,className:a=""})=>jsxRuntimeExports.jsxs("label",{className:`block ${a}`,children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-[11px] uppercase tracking-[0.14em] text-ink/45",children:e}),s]}),DetailField=({label:e,value:s,className:a="",multiline:c=!1})=>jsxRuntimeExports.jsxs("div",{className:a,children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:e}),jsxRuntimeExports.jsx("div",{className:`border border-border bg-canvas-soft/50 px-3 py-2 text-sm text-ink/70 ${c?"leading-6":"truncate"}`,children:s||"-"})]}),greetingForNow=()=>{const e=new Date().getHours();return e<12?"Good morning":e<18?"Good afternoon":"Good evening"},firstNameForGreeting=e=>e.trim().split(/\s+/)[0]??"",toTitleCase=e=>
921e.split(" ").filter(Boolean).map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" "),MIN_INTERVIEWERS_PER_SLOT=2,requireSupabase=()=>{if(!supabase)throw new Error("Supabase is not configured. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY.");return supabase},listTeamAvailability=async(e,s)=>{const a=requireSupabase(),{data:c,error:g}=await a.from("interview_availability").select("*").gte("slot_start",e).lt("slot_start",s).order("slot_start",{ascending:!0});if(g)throw new Error(g.message);return c??[]},applyMyAvailabilityChanges=async(e,s)=>{const a=requireSupabase(),{data:{user:c},error:g}=await a.auth.getUser();if(g)throw new Error(g.message);if(!c)throw new Error("You must be signed in to set availability.");if(s.length>0){const{error:et}=await a.from("interview_availability").delete().eq("user_id",c.id).in("slot_start",s);if(et)throw new Error(et.message)}if(e.length>0){const et=c.email??"Admin",{error:rt}=await a.from("interview_availability").upsert(e.map(nt=>({user_id:c.id,admin_label:et,slot_start:nt})),{onConflict:"user_id,slot_start",ignoreDuplicates:!0});if(rt)throw new Error(rt.message)}},listUpcomingInterviews=async()=>{const e=requireSupabase(),{data:s,error:a}=await e.from("application_interview_slots").select("id, applicant_name, scheduled_start_at, scheduled_end_at, interviewer_1, interviewer_2, status").gte("scheduled_start_at",new Date(Date.now()-60*60*1e3).toISOString()).order("scheduled_start_at",{ascending:!0});if(a)throw new Error(a.message);return s??[]},createInterviewInvite=async e=>{const s=requireSupabase(),{data:a,error:c}=await s.functions.invoke("create-interview-invite",{body:{applicationId:e}});if(c)throw new Error(c.message);if(!(a!=null&&a.bookingUrl))throw new Error("Invite function did not return a booking link.");return a},sendApplicationEmail=async(e,s)=>{const a=requireSupabase();let c;if(s.attachment){const rt=await fetch(s.attachment.url);if(!rt.ok)throw new Error("Could not load the email attachment.");const nt=new Uint8Array(await rt.arrayBuffer());let st="";for(let at=0;at<nt.length;at+=32768)st+=String.fromCharCode(...nt.subarray(at,at+32768));c={filename:s.attachment.filename,contentType:s.attachment.contentType,contentBase64:btoa(st)}}const{data:g,error:et}=await a.functions.invoke("send-application-email",{body:{applicationId:e,subject:s.subject,body:s.body,kind:s.kind??"manual",attachment:c}});if(et)throw new Error(et.message);if(!(g!=null&&g.ok)||!g.email)throw new Error("Email could not be sent.");return g.email},invokeBooking=async e=>{const s=requireSupabase(),{data:a,error:c}=await s.functions.invoke("interview-booking",{body:e});if(c){const g=c.context;if(g)try{const et=await g.json();if(et!=null&&et.error)throw new Error(et.error)}catch(et){if(et instanceof Error&&et.message!=="Unexpected end of JSON input")throw et}throw new Error(c.message)}if(!a)throw new Error("No response from the booking service.");return a},fetchBookingPage=e=>invokeBooking({action:"list",token:e}),bookInterviewSlot=(e,s)=>invokeBooking({action:"book",token:e,slotStart:s}),travelGuidePdfUrl="/assets/EAF-Travel-Guide-Academy-2026-Bb1lCxas.pdf",statuses=["applied","interview_invite","interview_scheduled","interview_done","accepted","waitlisted","not_invited","rejected_after_interview"],preVoteMeta={invite:{label:"Invite",letter:"I",className:"border-emerald-700 bg-emerald-100 text-emerald-900"},reject:{label:"Reject",letter:"R",className:"border-rose-700 bg-rose-100 text-rose-900"}},postVoteMeta={accept:{label:"Accept",letter:"A",className:"border-emerald-700 bg-emerald-100 text-emerald-900"},waitlist:{label:"Waitlist",letter:"W",className:"border-amber-700 bg-amber-100 text-amber-900"},reject:{label:"Reject",letter:"R",className:"border-rose-700 bg-rose-100 text-rose-900"}},statusClass={applied:"border-blue-400 bg-blue-100 text-blue-900",interview_invite:"border-violet-300 bg-violet-50 text-violet-900",interview_scheduled:"border-violet-400 bg-violet-100 text-violet-900",interview_done:"border-violet-500 bg-violet-200 text-violet-900",accepted:"border-emerald-500 bg-emerald-100 text-emerald-900",waitlisted:"border-amber-500 bg-amber-100 text-amber-900",not_invited:"border-zinc-600 bg-zinc-300 text-zinc-900",rejected_after_interview:"border-zinc-500 bg-zinc-200 text-zinc-800"},emptyReviewDraft={preInterviewVote:null,postInterviewVote:null,comment:""},nextStatuses={applied:["interview_invite","not_invited"],interview_invite:["interview_scheduled"],interview_scheduled:["interview_done"],interview_done:["accepted","waitlisted","rejected_after_interview"],waitlisted:["accepted","rejected_after_interview"],accepted:[],not_invited:[],rejected_after_interview:[]},statusActionLabels={applied:"Back to applied",interview_invite:"Invite to interview",interview_scheduled:"Mark scheduled",interview_done:"Mark interview done",accepted:"Accept",waitlisted:"Waitlist",not_invited:"Desk reject",rejected_after_interview:"Reject"},PulseApplications=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PulseApplicationsConsole,{})}),PulseApplicationsConsole=()=>{const e=getCachedApplicationSummaries(),[s,a]=reactExports.useState(e??[]),[c,g]=reactExports.useState(null),[et,rt]=reactExports.useState(null),[nt,st]=reactExports.useState(null),[at,it]=reactExports.useState(emptyReviewDraft),[ot,lt]=reactExports.useState({needed:!1,note:""}),[ct,dt]=reactExports.useState(null),[ut,xt]=reactExports.useState(!1),[gt,ht]=reactExports.useState(e?"ready":"loading"),[mt,kt]=reactExports.useState(""),[Ct,Tt]=reactExports.useState(!1),[Pt,At]=reactExports.useState(!1),[Gt,Mt]=reactExports.useState(null),[zt,Jt]=reactExports.useState(!1),[nr,er]=reactExports.useState(!1),ur
921=async()=>{if(!isSupabaseConfigured){ht("error"),kt("Supabase is not configured. Add VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY to .env.local.");return}try{e||ht("loading");const Lt=await listApplicationSummaries();a(Lt),ht("ready"),kt("")}catch(Lt){ht("error"),kt(Lt instanceof Error?Lt.message:"Could not load applications.")}};reactExports.useEffect(()=>{ur()},[e]),reactExports.useEffect(()=>{supabase&&supabase.auth.getUser().then(({data:Lt})=>{var Kt;rt(((Kt=Lt.user)==null?void 0:Kt.id)??null)})},[]),reactExports.useEffect(()=>{var Kt;if(!c)return;const Lt=(Kt=c.application_admin_reviews)==null?void 0:Kt.find(mr=>mr.admin_user_id===et);it(Lt?{preInterviewVote:Lt.pre_interview_vote,postInterviewVote:Lt.post_interview_vote,comment:Lt.comment}:emptyReviewDraft),lt({needed:c.communication_needed,note:c.communication_note??""})},[et,c]);const qt=reactExports.useMemo(()=>s.filter(Lt=>Lt.communication_needed).length,[s]),or=reactExports.useMemo(()=>{const Lt=new Map;for(const Kt of statuses)Lt.set(Kt,0);for(const Kt of s)Lt.set(Kt.status,(Lt.get(Kt.status)??0)+1);return Lt},[s]),Dt=reactExports.useMemo(()=>[...s].filter(Lt=>!ct||Lt.status===ct).filter(Lt=>!ut||Lt.communication_needed).sort(compareApplications),[s,ut,ct]),Ht=(Lt,Kt)=>{a(mr=>mr.map(xr=>xr.id===Lt?{...xr,...Kt}:xr)),g(mr=>(mr==null?void 0:mr.id)===Lt?{...mr,...Kt}:mr)},Xt=(Lt,Kt)=>{const mr=xr=>{const cr=xr??[];return cr.some(kr=>kr.admin_user_id===Kt.admin_user_id)?cr.map(kr=>kr.admin_user_id===Kt.admin_user_id?Kt:kr):[...cr,Kt]};a(xr=>xr.map(cr=>cr.id===Lt?{...cr,application_admin_reviews:mr(cr.application_admin_reviews)}:cr)),g(xr=>(xr==null?void 0:xr.id)===Lt?{...xr,application_admin_reviews:mr(xr.application_admin_reviews)}:xr)},Zt=async(Lt,Kt)=>{const mr=getDefaultCommunicationNeeded(Kt,Lt.status,Lt.communication_needed);await updateApplicationStatus(Lt.id,Kt,mr),Ht(Lt.id,{status:Kt,communication_needed:mr}),lt(xr=>({...xr,needed:mr}))},It=async Lt=>{if(!(!c||c.status===Lt))try{await Zt(c,Lt)}catch(Kt){ue$1.error(Kt instanceof Error?Kt.message:"Could not change the status.")}},Bt=async Lt=>{try{st(Lt.id),kt(""),g(await getApplication(Lt.id))}catch(Kt){kt(Kt instanceof Error?Kt.message:"Could not load application.")}finally{st(null)}},rr=async()=>{if(c)try{Tt(!0);const Lt=await upsertApplicationReview(c.id,at);Xt(c.id,Lt),kt("Vote saved.")}catch(Lt){kt(Lt instanceof Error?Lt.message:"Could not save review.")}finally{Tt(!1)}},lr=async()=>{if(c)try{At(!0);const Lt=await updateApplicationCommunication(c.id,{needed:ot.needed,note:ot.note});Ht(c.id,Lt),kt("Communication setting saved.")}catch(Lt){kt(Lt instanceof Error?Lt.message:"Could not save communication status.")}finally{At(!1)}},pr=async Lt=>{const Kt=await createApplicationFileUrl(Lt);window.open(Kt,"_blank","noopener,noreferrer")},tr=()=>{c&&Mt({subject:"EAF | ",body:emailGreeting(c.full_name),kind:"manual"})},hr=()=>{if(!c)return;if(c.status==="applied"||c.status==="interview_invite"){Vt();return}const Lt=decisionEmailTemplate(c.status,c.full_name);Lt?Mt(Lt):tr()},Vt=async()=>{if(c)try{er(!0),kt("");const{bookingUrl:Lt,expiresAt:Kt}
921=await createInterviewInvite(c.id);Mt({subject:"EAF | Interview Invitation",body:interviewInviteTemplate(c.full_name,Lt,Kt),kind:"interview_invite"})}catch(Lt){kt(Lt instanceof Error?Lt.message:"Could not create the interview booking link.")}finally{er(!1)}},sr=async()=>{if(!(!c||!Gt))try{Jt(!0);const Lt=await sendApplicationEmail(c.id,Gt);appendCachedApplicationEmail(c.id,Lt),Ht(c.id,{communication_needed:!1,application_emails:[...c.application_emails??[],Lt]}),lt(Kt=>({...Kt,needed:!1})),Gt.kind==="interview_invite"&&c.status==="applied"&&(await updateApplicationStatus(c.id,"interview_invite",!1),Ht(c.id,{status:"interview_invite",communication_needed:!1})),Mt(null),ue$1.success(`Email sent to ${Lt.to_email}`,{description:"The candidate has been informed."})}catch(Lt){ue$1.error(Lt instanceof Error?Lt.message:"Could not send the email.")}finally{Jt(!1)}};return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:[jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-7xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsx("div",{className:"mb-8 border-b border-border pb-6",children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-5xl font-light",children:"Applications"})]})}),mt&&jsxRuntimeExports.jsx("div",{className:"mb-4 border border-border bg-canvas-soft p-3 text-sm text-ink/70",children:mt}),jsxRuntimeExports.jsxs("div",{className:"mb-5 flex flex-wrap items-end gap-x-8 gap-y-4",children:[jsxRuntimeExports.jsx(FilterGroup,{label:"Status",children:statuses.map(Lt=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>dt(Kt=>Kt===Lt?null:Lt),className:`inline-flex min-h-9 items-center gap-2 border px-2.5 transition ${statusSwatchClass(Lt,ct===Lt)}`,children:[jsxRuntimeExports.jsx("span",{className:"text-[10px] uppercase tracking-[0.14em]",children:formatStatus$1(Lt)}),jsxRuntimeExports.jsx("span",{className:"font-serif text-lg",children:or.get(Lt)??0})]},Lt))}),jsxRuntimeExports.jsx(FilterGroup,{label:"Communication",children:jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>xt(Lt=>!Lt),"aria-pressed":ut,className:`inline-flex min-h-9 items-center gap-2 border px-2.5 transition ${ut?"border-red-500 bg-red-100 text-red-950":"border-red-300 bg-red-50 text-red-900 hover:border-red-400"}`,children:[jsxRuntimeExports.jsx("span",{className:"h-2.5 w-2.5 rounded-full bg-red-500","aria-hidden":"true"}),jsxRuntimeExports.jsx("span",{className:"text-[10px] uppercase tracking-[0.14em]",children:"Needed"}),jsxRuntimeExports.jsx("span",{className:"font-serif text-lg",children:qt})]})})]}),gt==="loading"&&jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:"Loading applications..."}),gt==="ready"&&s.length===0&&jsxRuntimeExports.jsx("div",{className:"border border-border bg-canvas-soft/50 p-8 text-sm text-ink/60",children:"No applications yet."}),gt==="ready"&&s.length>0&&Dt.length===0&&jsxRuntimeExports.jsx("div",{className:"border border-border bg-canvas-soft/50 p-8 text-sm text-ink/60",children:"No applications in this view."}),gt==="ready"&&Dt.length>0&&jsxRuntimeExports.jsx("div",{className:"border border-border bg-canvas-soft/50",children:jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[minmax(130px,1.2fr)_minmax(190px,1.5fr)_110px_150px_minmax(150px,1fr)_90px] gap-3 border-b border-border px-4 py-3 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:[jsxRuntimeExports.jsx("span",{children:"Name"}),jsxRuntimeExports.jsx("span",{children:"Email"}),jsxRuntimeExports.jsx("span",{children:"Submitted"}),jsxRuntimeExports.jsx("span",{children:"Status"}),jsxRuntimeExports.jsx("span",{children:"Interviewers"}),jsxRuntimeExports.jsx("span",{children:"Vote"})]}),Dt.map(Lt=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>Bt(Lt),title:communicationTooltip(Lt),className:`grid w-full grid-cols-[minmax(130px,1.2fr)_minmax(190px,1.5fr)_110px_150px_minmax(150px,1fr)_90px] items-center gap-3 border-b px-4 py-3 text-left text-sm transition-colors last:border-b-0 ${applicationRowClass(Lt)}`,children:[jsxRuntimeExports.jsx("span",{className:"truncate font-medium",children:nt===Lt.id?"Loading...":Lt.full_name}),jsxRuntimeExports.jsx("span",{className:"truncate",children:Lt.email}),jsxRuntimeExports.jsx("span",{children:new Date(Lt.submitted_at).toLocaleDateString()}),jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:`capitalize ${statusClass[Lt.status]}`,children:formatStatus$1(Lt.status)})}
921),jsxRuntimeExports.jsx(InterviewersSummary,{slots:Lt.application_interview_slots??[]}),jsxRuntimeExports.jsx(VoteSummary,{reviews:Lt.application_admin_reviews??[]})]},Lt.id))]})})]}),jsxRuntimeExports.jsx(Dialog,{open:!!c,onOpenChange:Lt=>!Lt&&g(null),children:jsxRuntimeExports.jsx(DialogContent,{className:"max-h-[86vh] max-w-6xl overflow-y-auto rounded-none bg-canvas text-ink",children:c&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-3xl font-light",children:c.full_name})}),jsxRuntimeExports.jsxs("div",{className:"grid gap-4 border-y border-border py-5 md:grid-cols-2",children:[jsxRuntimeExports.jsx(Meta,{label:"Email",value:c.email}),jsxRuntimeExports.jsx(Meta,{label:"Phone",value:c.phone||"-"})]}),jsxRuntimeExports.jsx("section",{className:"border-b border-border py-5",children:jsxRuntimeExports.jsxs("div",{className:"grid gap-5 lg:grid-cols-[1.1fr_0.9fr]",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl",children:"Your vote"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-xs text-ink/50",children:"Your personal vote â it does not decide the outcome. To decide, change the decision above."}),jsxRuntimeExports.jsxs("div",{className:"mt-4 grid gap-4 md:grid-cols-2",children:[jsxRuntimeExports.jsx(VotePicker,{label:"Pre-interview vote",options:preVoteMeta,value:at.preInterviewVote,onChange:Lt=>it(Kt=>({...Kt,preInterviewVote:Lt}))}),jsxRuntimeExports.jsx(VotePicker,{label:"Post-interview vote",options:postVoteMeta,value:at.postInterviewVote,onChange:Lt=>it(Kt=>({...Kt,postInterviewVote:Lt}))})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4",children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Comment"}),jsxRuntimeExports.jsx(Textarea,{value:at.comment,onChange:Lt=>it(Kt=>({...Kt,comment:Lt.target.value})),className:"min-h-[120px] rounded-none border-border bg-canvas",placeholder:"Add your private admin comment for this application."})]}),jsxRuntimeExports.jsx(Button,{type:"button",className:"mt-4",onClick:rr,disabled:Ct||!et,children:Ct?"Saving...":"Save vote"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl",children:"All votes"}),jsxRuntimeExports.jsxs("div",{className:"mt-4 space-y-3",children:[(c.application_admin_reviews??[]).length===0&&jsxRuntimeExports.jsx("div",{className:"border border-border bg-canvas-soft/40 p-4 text-sm text-ink/55",children:"No admin votes yet."}),(c.application_admin_reviews??[]).map(Lt=>jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/40 p-4",children:[jsxRuntimeExports.jsx("div",{className:"truncate text-sm font-medium",children:Lt.admin_label||shortId(Lt.admin_user_id)}),jsxRuntimeExports.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[jsxRuntimeExports.jsx(ReviewVoteBadge,{label:"Pre",value:Lt.pre_interview_vote,meta:preVoteMeta}),jsxRuntimeExports.jsx(ReviewVoteBadge,{label:"Post",value:Lt.post_interview_vote,meta:postVoteMeta})]}),Lt.comment&&jsxRuntimeExports.jsx("p",{className:"mt-3 whitespace-pre-wrap text-sm leading-6 text-ink/70",children:Lt.comment})]},Lt.admin_user_id))]})]})]})}),jsxRuntimeExports.jsxs("section",{className:"border-b border-border py-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl",children:"Decision"}),jsxRuntimeExports.jsx(InformedBadge,{application:c})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("span",{className:`inline-flex min-h-11 items-center border px-4 text-base font-medium ${statusClass[c.status]}`,children:formatStatus$1(c.status)}),nextStatuses[c.status].length>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"text-ink/35","aria-hidden":"true",children:"â"}),nextStatuses[c.status].map(Lt=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>It(Lt),className:`inline-flex min-h-11 items-center border px-4 text-sm transition ${statusSwatchClass(Lt,!1)}`,children:statusActionLabels[Lt]},Lt))]}),jsxRuntimeExports.jsx("div",{className:"ml-auto",children:jsxRuntimeExports.jsx(Button,{type:"button",variant:c.communication_needed?"default":"outline",onClick:hr,disabled:nr,children:nr?"Creating link...":"Inform applicant"})})]}),jsxRuntimeExports.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-2 text-xs text-ink/50",children:[jsxRuntimeExports.jsx("span",{children:'"Inform applicant" opens an email matching this decision. Or set any status:'}),jsxRuntimeExports.jsxs(Select,{value:c.status,onValueChange:Lt=>It(Lt),children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"h-8 w-[190px] rounded-none border-border bg-canvas text-xs",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsx(SelectContent,{children:statuses.map(Lt=>jsxRuntimeExports.jsx(SelectItem,{value:Lt,children:formatStatus$1(Lt)},Lt))})]})]}),isInterviewRelevant(c)&&jsxRuntimeExports.jsxs("div",{className:"mt-5",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Interview"}),(c.application_interview_slots??[]).length>0?jsxRuntimeExports.jsx(InterviewSlots,{slots:c.application_interview_slots??[]}):jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-ink/55",children:"No slot booked yet â the candidate picks a time via the invitation link."})]})]}),jsxRuntimeExports.jsxs("section",{className:"border-b border-border py-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl",children:"Communication"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:tr,children:"Compose email"})]}),jsxRuntimeExports.jsx(EmailHistory,{emails:c.application_emails??[]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 grid gap-4 md:grid-cols-[220px_1fr]",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Needed"}),jsxRuntimeExports.jsxs(Select,{value:ot.needed?"yes":"no",onValueChange:Lt=>lt(Kt=>({...Kt,needed:Lt==="yes"})),children:[jsxRuntimeExports.jsx(SelectTrigger,{className:"rounded-none border-border bg-canvas",children:jsxRuntimeExports.jsx(SelectValue,{})}),jsxRuntimeExports.jsxs(SelectContent,{children:[jsxRuntimeExports.jsx(SelectItem,{value:"yes",children:"Yes"}),jsxRuntimeExports.jsx(SelectItem,{value:"no",children:"No"})]})]})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Note"}),jsxRuntimeExports.jsx("input",{value:ot.note,onChange:Lt=>lt(Kt=>({...Kt,note:Lt.target.value})),className:"h-10 w-full rounded-none border border-border bg-canvas px-3 text-sm",placeholder:"Optional context for the team"})]})]}),jsxRuntimeExports.jsx(Button,{type:"button",className:"mt-4",variant:"outline",onClick:lr,disabled:Pt,children:Pt?"Saving...":"Save communication"})]}),c.application_files&&c.application_files.length>0&&jsxRuntimeExports.jsxs("section",{className:"border-b border-border py-5",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-2xl",children:"Files"}),jsxRuntimeExports.jsx("div",{className:"mt-4 grid gap-3 md:grid-cols-3",children:c.application_files.map(Lt=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>pr(Lt),className:"flex items-center justify-between gap-3 border border-border bg-canvas-soft/60 p-4 text-left text-sm hover:bg-canvas",children:[jsxRuntimeExports.jsxs("span",{className:"min-w-0",children:[jsxRuntimeExports.jsx("span",{className:"block truncate font-medium",children:Lt.file_name}),jsxRuntimeExports.jsx("span",{className:"block text-xs capitalize text-ink/50",children:Lt.kind.replace("_"," ")})]}),jsxRuntimeExports.jsx(Download,{className:"h-4 w-4 shrink-0 text-ink/55"})]},Lt.id))})]}),jsxRuntimeExports.jsx("div",{className:"space-y-7 py-5",children:["basic","background","essays","files","confirmation"].map(Lt=>jsxRuntimeExports.jsxs("section",{children:[jsxRuntimeExports.jsx("h3",{className:"mb-4 font-serif text-2xl",children:sectionTitles[Lt]}),jsxRuntimeExports.jsx("div",{className:"space-y-3",children:applicationFields.filter(Kt=>Kt.section===Lt&&Kt.type!=="file").map(Kt=>{var mr;return jsxRuntimeExports.jsx(Answer,{label:Kt.label,value:(mr=c.answers)==null?void 0:mr[Kt.id]},Kt.id)})})]},Lt))})]})})}),jsxRuntimeExports.jsx(Dialog,{open:!!Gt,onOpenChange:Lt=>!Lt&&!zt&&Mt(null),children:jsxRuntimeExports.jsx(DialogContent,{className:"max-w-2xl rounded-none bg-canvas text-ink",children:Gt&&c&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{className:"font-serif text-3xl font-light",children:Gt.kind==="interview_invite"?"Interview invitation":Gt.kind==="status_update"?"Inform applicant":"Compose email"})}),jsxRuntimeExports.jsxs("div",{className:"space-y-4",children:[jsxRuntimeExports.jsx(Meta,{label:"To",value:`${c.full_name} <${c.email}>`}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Subject"}),jsxRuntimeExports.jsx("input",{value:Gt.subject,onChange:Lt=>Mt(Kt=>Kt&&{...Kt,subject:Lt.target.value}),className:"h-10 w-full rounded-none border border-border bg-canvas px-3 text-sm"})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Message"}),jsxRuntimeExports.jsx(Textarea,{value:Gt.body,onChange:Lt=>Mt(Kt=>Kt&&{...Kt,body:Lt.target.value}),className:"min-h-[280px] rounded-none border-border bg-canvas font-mono text-sm"})]}),Gt.attachment&&jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-4 border border-border bg-canvas-soft/60 p-3",children:[jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Attachment"}),jsxRuntimeExports.jsx("div",{className:"truncate text-sm font-medium",children:Gt.attachment.filename})]}),jsxRuntimeExports.jsx("a",{href:Gt.attachment.url,target:"_blank",rel:"noreferrer",className:"shrink-0 text-xs text-ink/65 underline underline-offset-4 hover:text-ink",children:"Preview PDF"})]}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{className:"text-xs text-ink/50",children:"Sent from [email protected]"}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>Mt(null),disabled:zt,children:"Cancel"}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:sr,disabled:zt||!Gt.subject.trim()||!Gt.body.trim(),children:zt?"Sending...":"Send email"})]})]})]})]})})})]})},EmailHistory=({emails:e})=>e.length===0?null:jsxRuntimeExports.jsx("div",{className:"mt-4 space-y-2",children:[...e].sort((s,a)=>new Date(a.created_at).getTime()-new Date(s.created_at).getTime()).map(s=>jsxRuntimeExports.jsxs("details",{className:"border border-border bg-canvas-soft/40",children:[jsxRuntimeExports.jsxs("summary",{className:"flex cursor-pointer flex-wrap items-center gap-3 p-3 text-sm",children:[jsxRuntimeExports.jsx(Badge,{variant:"outline",className:s.status==="sent"?"border-emerald-700 bg-emerald-100 text-emerald-900":"border-rose-700 bg-rose-100 text-rose-900",children:s.status==="sent"?"Sent":"Failed"}),jsxRuntimeExports.jsx("span",{className:"font-medium",children:s.subject}),jsxRuntimeExports.jsx("span",{className:"ml-auto text-xs text-ink/50",children:new Date(s.created_at).toLocaleStr
921ing(void 0,{day:"numeric",month:"short",year:"numeric",hour:"2-digit",minute:"2-digit"})})]}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border p-3",children:[s.error&&jsxRuntimeExports.jsxs("p",{className:"mb-2 text-sm text-rose-800",children:["Error: ",s.error]}),jsxRuntimeExports.jsx("p",{className:"whitespace-pre-wrap text-sm leading-6 text-ink/70",children:s.body_text})]})]},s.id))}),InformedBadge=({application:e})=>{if(e.communication_needed)return jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2 border border-red-300 bg-red-50 px-2.5 py-1 text-[10px] uppercase tracking-[0.14em] text-red-900",children:[jsxRuntimeExports.jsx("span",{className:"h-2 w-2 rounded-full bg-red-500","aria-hidden":"true"}),"Applicant not informed"]});const s=(e.application_emails??[]).filter(a=>a.status==="sent"&&a.to_email===e.email).sort((a,c)=>new Date(c.created_at).getTime()-new Date(a.created_at).getTime())[0];return s?jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2 border border-emerald-300 bg-emerald-50 px-2.5 py-1 text-[10px] uppercase tracking-[0.14em] text-emerald-900",children:[jsxRuntimeExports.jsx("span",{className:"h-2 w-2 rounded-full bg-emerald-500","aria-hidden":"true"}),"Applicant informed ·"," ",new Date(s.created_at).toLocaleString(void 0,{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"})]}):null},interviewStatuses=new Set(["interview_invite","interview_scheduled","interview_done"]),isInterviewRelevant=e=>(e.application_interview_slots??[]).length>0||interviewStatuses.has(e.status),Meta=({label:e,value:s})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-1 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:e}),jsxRuntimeExports.jsx("div",{className:"truncate text-sm text-ink/75",children:s})]}),FilterGroup=({label:e,children:s})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:e}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:s})]}),InterviewSummary=({slots:e})=>{const s=getLatestInterviewSlot(e);if(!s)return jsxRuntimeExports.jsx(Badge,{variant:"outline",className:"border-border text-ink/60",children:"None"});const a=s.status==="completed"?"Done":"Booked",c=s.status==="completed"?"border-emerald-700 bg-emerald-100 text-emerald-900":"border-sky-700 bg-sky-100 text-sky-900";return jsxRuntimeExports.jsx(Badge,{variant:"outline",className:c,children:a})},InterviewersSummary=({slots:e})=>{const s=getLatestInterviewSlot(e),a=s?[s.interviewer_1,s.interviewer_2].filter(Boolean):[];return jsxRuntimeExports.jsx("span",{className:"truncate text-sm text-ink/70",children:a.join(" + ")||"â"})},InterviewSlots=({slots:e})=>e.length===0?jsxRuntimeExports.jsx("div",{className:"mt-4 border border-border bg-canvas-soft/40 p-4 text-sm text-ink/55",children:"No interview slot found."}):jsxRuntimeExports.jsx("div",{className:"mt-4 space-y-3",children:[...e].sort(compareInterviewSlots).map(s=>jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/40 p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx(InterviewSummary,{slots:[s]}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:formatInterviewSlotTime(s)})]}),jsxRuntimeExports.jsx("div",{className:"mt-2 text-sm text-ink/65",children:[s.interviewer_1,s.interviewer_2].filter(Boolean).join(" + ")||"No interviewers listed"}),s.verdict&&jsxRuntimeExports.jsxs("div",{className:"mt-2 text-sm text-ink/70",children:["Verdict: ",s.verdict]})]},s.id))}),VoteSummary=({reviews:e})=>{const a=e.some(rt=>rt.post_interview_vote)?"post":"pre",c=e.filter(rt=>a==="pre"?rt.pre_interview_vote:rt.post_interview_vote),g=a==="pre"?preVoteMeta:postVoteMeta,et=a==="pre"?"Pre-interview":"Post-interview";return jsxRuntimeExports.jsxs("span",{className:"flex min-h-8 items-center gap-1 text-left",children:[c.length===0&&jsxRuntimeExports.jsx("span",{className:"text-ink/35",children:"-"}),c.map(rt=>{const nt=a==="pre"?rt.pre_interview_vote:rt.post_interview_vote;return nt?jsxRuntimeExports.jsx("span",{title:`${et}: ${rt.admin_label||shortId(rt.admin_user_id)}: ${g[nt].label}`,className:`inline-flex h-7 w-7 items-center justify-center border text-[11px] font-semibold ${g[nt].className}`,children:g[nt].letter},`${rt.admin_user_id}-${nt}`):null})]})},VotePicker=({label:e,options:s,value:a,onChange:c})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:e}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:Object.entries(s).map(([g,et])=>{const rt=g,nt=a===rt;return jsxRuntimeExports.jsxs("button",{type:"button","aria-pressed":nt,onClick:()=>c(nt?null:rt),className:`inline-flex min-h-10 items-center gap-2 border border-dashed px-3 text-sm transition ${nt?`border-solid ${et.className}`:"border-border bg-canvas text-ink/65 hover:bg-canvas-soft"}`,children:[jsxRuntimeExports.jsx("span",{className:"font-semibold",children:nt?"â":et.letter}),et.label]},g)})})]}),ReviewVoteBadge=({label:e,value:s,meta:a})=>s?jsxRuntimeExports.jsxs("span",{className:`inline-flex h-8 items-center gap-2 border px-2 text-xs ${a[s].className}`,children:[e,": ",jsxRuntimeExports.jsx("strong",{children:a[s].label})]}):jsxRuntimeExports.jsxs("span",{className:"inline-flex h-8 items-center border border-border px-2 text-xs text-ink/45",children:[e,": -"]}),Answer=({label:e,value:s})=>jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/40 p-4",children:[jsxRuntimeExports.jsx("div",{className:"mb-2 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:e}),jsxRuntimeExports.jsx("div",{className:"whitespace-pre-wrap text-sm leading-6 text-ink/75",children:String(s??"-")})]}),statusRank={applied:0,interview_invite:1,interview_scheduled:2,interview_done:3,waitlisted:4,accepted:5,not_invited:6,rejected_after_interview:7},compareApplications=(e,s)=>{const a=statusRank[e.status]-statusRank[s.status];return a!==0?a:new Date(s.submitted_at).getTime()-new Date(e.submitted_at).getTime()},rowTintClass={applied:"bg-blue-50/40 hover:bg-blue-50",interview_invite:"bg-violet-50/40 hover:bg-violet-50",interview_scheduled:"bg-violet-50/70 hover:bg-violet-100/70",interview_done:"bg-violet-100/50 hover:bg-violet-100",accepted:"bg-emerald-50/50 hover:bg-emerald-50",waitlisted:"bg-amber-50/50 hover:bg-amber-50",not_invited:"bg-zinc-200/50 hover:bg-zinc-200",rejected_after_interview:"bg-zinc-100 hover:bg-zinc-200"},applicationRowClass=e=>{const s=e.communication_needed?"border-l-4 border-l-red-500":"";return`border-border text-ink ${rowTintClass[e.status]} ${s}`},communicationTooltip=e=>{if(e.communication_needed)return e.communication_note?`Communication needed â ${e.communication_note}`:"Communication needed"},statusSwatchClass=(e,s)=>{const a=s?"ring-1 ring-ink ring-offset-1 ring-offset-canvas":"";return`${{applied:"border-blue-300 bg-blue-100 text-blue-900 hover:bg-blue-200",interview_invite:"border-violet-200 bg-vi
921olet-50 text-violet-900 hover:bg-violet-100",interview_scheduled:"border-violet-300 bg-violet-100 text-violet-900 hover:bg-violet-200",interview_done:"border-violet-400 bg-violet-200 text-violet-900 hover:bg-violet-300",accepted:"border-emerald-300 bg-emerald-100 text-emerald-900 hover:bg-emerald-200",waitlisted:"border-amber-300 bg-amber-100 text-amber-900 hover:bg-amber-200",not_invited:"border-zinc-500 bg-zinc-300 text-zinc-900 hover:bg-zinc-400",rejected_after_interview:"border-zinc-400 bg-zinc-200 text-zinc-800 hover:bg-zinc-300"}[e]} ${a}`},getDefaultCommunicationNeeded=(e,s,a)=>e===s?a:statusesThatNeedCommunication.has(e),statusesThatNeedCommunication=new Set(["interview_invite","accepted","waitlisted","not_invited","rejected_after_interview"]),getLatestInterviewSlot=e=>[...e].sort(compareInterviewSlots)[0]??null,compareInterviewSlots=(e,s)=>interviewSlotTime(s)-interviewSlotTime(e),interviewSlotTime=e=>e.scheduled_start_at?new Date(e.scheduled_start_at).getTime():0,formatInterviewSlotTime=e=>{if(!e.scheduled_start_at)return e.weekday??"Date missing";const s=new Date(e.scheduled_start_at),a=e.scheduled_end_at?new Date(e.scheduled_end_at):null,c=s.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"}),g=s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),et=a==null?void 0:a.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"});return`${c}, ${g}${et?`-${et}`:""}`},formatStatus$1=e=>({applied:"Applied",interview_invite:"Interview Invite",interview_scheduled:"Interview Scheduled",interview_done:"Interview Done",accepted:"Accepted",waitlisted:"Waitlisted",not_invited:"Rejected (D)",rejected_after_interview:"Rejected (I)"})[e],shortId=e=>e.slice(0,8),emailFirstName=e=>e.trim().split(/\s+/)[0]||e,emailGreeting=e=>`Dear ${emailFirstName(e)}, 922 923 924 925Warm regards, 926The EAF Team 927`,decisionEmailTemplate=(e,s)=>{const a=`Dear ${emailFirstName(s)},`,c=`Warm regards, 928The EAF Team 929`;switch(e){case"accepted":return{subject:"EAF | Your Fellowship Offer",kind:"status_update",body:`${a} 930 931We are delighted to offer you a place in the 2026 European Academic Foundation Fellowship â congratulations! 932 933We greatly enjoyed our conversation and were impressed by your application. We would be very happy to welcome you to this year's cohort and to the Academy in Turin from 22 to 30 August 2026. 934 935Please find the travel booking instructions attached. Kindly send us your proposed itinerary by 27 July 2026 before making any booking; we will review it and confirm whether you may proceed. All travel expenses approved by us in advance will be reimbursed after the Academy. 936 937Please reply to confirm that you would like to accept your place. If you have any questions, or if covering the travel costs upfront would be difficult, simply let us know. 938 939We are looking forward to welcoming you to Turin. 940 941${c}`,attachment:{filename:"EAF-Travel-Guide-Academy-2026.pdf",contentType:"application/pdf",url:travelGuidePdfUrl}};case"waitlisted":return{subject:"EAF | Update on Your Application",kind:"status_update",body:`${a} 942 943Thank you for your application and for taking the time to speak with us. We are not able to offer you a place at this moment, but we would like to keep you on our waitlist and will get back to you as soon as a place opens up. 944 945If you have any questions, simply reply to this email. 946 947${c}`};case"not_invited":return{subject:"EAF | Update on Your Application",kind:"status_update",body:`${a} 948 949Thank you for your application to the European Academic Foundation fellowship. After careful consideration, we are unfortunately unable to invite you to an interview this time. We received many strong applications and had to make difficult choices. 950 951We wish you all the best for your academic path. 952 953${c}`};case"rejected_after_interview":return{subject:"EAF | Update on Your Application",kind:"status_update",body:`${a} 954 955Thank you for your application and for taking the time to speak with us â we enjoyed the conversation. After careful consideration, we are unfortunately unable to offer you a place in the fellowship this time. 956 957We wish you all the best for what's ahead. 958 959Best regards, 960The EAF Team 961`};default:return null}},interviewInviteTemplate=(e,s,a)=>{const c=new Date(a).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"});return`Dear ${emailFirstName(e)}, 962
963Thank you for your application to the European Academic Foundation fellowship. We were impressed by your application and would like to invite you to an interview with our team. 964 965Please pick a time that works for you here: 966${s} 967 968Once you have chosen a slot, you will receive a confirmation email with the video call link. The booking link is valid until ${c}. If none of the offered times work for you, simply reply to this email. 969 970We look forward to speaking with you! 971 972Warm regards, 973The EAF Team 974`},invoke=async e=>{if(!supabase)throw new Error("Supabase is not configured.");const{data:s,error:a}=await supabase.functions.invoke("one-to-one-booking",{body:e});if(a){const c=a.context;if(c instanceof Response)try{const g=await c.json();if(g!=null&&g.error)throw new Error(g.error)}catch(g){if(g instanceof Error&&g.message!=="Unexpected end of JSON input")throw g}throw new Error(a.message||"Could not reach the 1:1 booking service.")}if(!s)throw new Error("No response from the 1:1 booking service.");return s},loadOneToOnes=(e,s)=>invoke({action:"list",from:e,to:s}),bookOneToOne=(e,s)=>invoke({action:"book",slotStart:e,teamMemberUserId:s}),DAYS_PER_PAGE=7,START_HOUR=7,END_HOUR=20,SLOT_MINUTES=15,PulseAvailability=()=>jsxRuntimeExports.jsx(RequireTeamMember,{children:jsxRuntimeExports.jsx(AvailabilityConsole,{})}),AvailabilityConsole=()=>{const[e,s]=reactExports.useState(0),[a,c]=reactExports.useState([]),[g,et]=reactExports.useState(new Set),[rt,nt]=reactExports.useState(null),[st,at]=reactExports.useState("idle"),[it,ot]=reactExports.useState(""),[lt,ct]=reactExports.useState(null),[dt,ut]=reactExports.useState([]),[xt,gt]=reactExports.useState([]),ht=reactExports.useMemo(()=>buildDays(e),[e]),mt=reactExports.useMemo(buildTimes,[]),kt=ht[0].toISOString(),Ct=addDays$1(ht[ht.length-1],1).toISOString(),Tt=reactExports.useRef(new Set),Pt=reactExports.useRef(new Set),At=reactExports.useRef(null),Gt=reactExports.useRef(!1),Mt=reactExports.useCallback(async()=>{if(Gt.current)return;const Ht=[...Tt.current],Xt=[...Pt.current];if(!(Ht.length===0&&Xt.length===0)){Tt.current.clear(),Pt.current.clear(),Gt.current=!0,at("saving");try{await applyMyAvailabilityChanges(Ht,Xt),at("saved"),ot("")}catch(Zt){for(const It of Ht)Pt.current.has(It)||Tt.current.add(It);for(const It of Xt)Tt.current.has(It)||Pt.current.add(It);at("error"),ot(Zt instanceof Error?Zt.message:"Could not save availability.")}finally{Gt.current=!1,(Tt.current.size>0||Pt.current.size>0)&&(At.current&&clearTimeout(At.current),At.current=setTimeout(()=>void Mt(),3e3))}}},[]),zt=reactExports.useCallback(()=>{At.current&&clearTimeout(At.current),At.current=setTimeout(()=>void Mt(),600)},[Mt]);reactExports.useEffect(()=>{const Ht=()=>void Mt();return window.addEventListener("beforeunload",Ht),()=>{window.removeEventListener("beforeunload",Ht),Mt()}},[Mt]),reactExports.useEffect(()=>{supabase&&supabase.auth.getUser().then(({data:Ht})=>{var Xt;return nt(((Xt=Ht.user)==null?void 0:Xt.id)??null)})},[]),reactExports.useEffect(()=>{if(!rt)return;let Ht=!1;return listTeamAvailability(kt,Ct).then(Xt=>{Ht||(c(Xt),et(new Set(Xt.filter(Zt=>Zt.user_id===rt).map(Zt=>isoKey(Zt.slot_start)))),ot(""))}).catch(Xt=>ot(Xt instanceof Error?Xt.message:"Could not load availability.")),()=>{Ht=!0}},[rt,kt,Ct]),reactExports.useEffect(()=>{const Ht=()=>ct(null);return window.addEventListener("mouseup",Ht),()=>window.removeEventListener("mouseup",Ht)},[]),reactExports.useEffect(()=>{rt&&Promise.all([listUpcomingInterviews(),loadOneToOnes()]).then(([Ht,Xt])=>{ut(Ht),Xt.role==="team"&>(Xt.bookings)}).catch(()=>{})},[rt]);const Jt=reactExports.useMemo(()=>{const Ht=new Map;for(const Xt of a){if(Xt.user_id===rt)continue;const Zt=isoKey(Xt.slot_start);Ht.set(Zt,[...Ht.get(Zt)??[],Xt.admin_label])}return Ht},[a,rt]),nr=reactExports.useMemo(()=>{const Ht=new Map;for(const Xt of a){const Zt=isoKey(Xt.slot_start),It=Ht.get(Zt)??new Set;It.add(Xt.user_id),Ht.set(Zt,It)}return Ht},[a]),er=(Ht,Xt)=>{et(Zt=>{if(Xt==="add"?Zt.has(Ht):!Zt.has(Ht))return Zt;const It=new Set(Zt);return Xt==="add"?It.add(Ht):It.delete(Ht),It}),Xt==="add"?(Pt.current.delete(Ht),Tt.current.add(Ht)):(Tt.current.delete(Ht),Pt.current.add(Ht)),zt()},ur=Ht=>{const Xt=g.has(Ht)?"remove":"add";ct(Xt),er(Ht,Xt)},qt=Ht=>{const Xt=mt.map(({hour:It,minute:Bt})=>{const rr=new Date(Ht);return rr.setHours(It,Bt,0,0),rr}).filter(It=>It.getTime()>=Date.now()).map(It=>It.toISOString());if(Xt.length===0)return;const Zt=Xt.every(It=>g.has(It));for(const It of Xt)er(It,Zt?"remove":"add")},or=Ht=>{Mt(),s(Xt=>Xt+Ht)},Dt=Intl.DateTimeFormat().resolvedOptions().timeZone;return jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-7xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("div",{className:"mb-8 flex flex-wrap items-end justify-between gap-4 border-b border-border pb-6",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-5xl font-light",children:"Availability"}),jsxRuntimeExports.jsxs("p",{className:"mt-3 max-w-2xl text-sm leading-6 text-ink/65",children:["Mark your availability once for interviews and member 1:1s. One available team member opens a 1:1 slot; at least ",MIN_INTERVIEWERS_PER_SLOT," open an interview slot. Click a day header to toggle the whole day, or click and drag individual slots. Times shown in your timezone (",Dt,")."]})]}),jsxRuntimeExports.jsxs("div",{className:"text-xs text-ink/50","aria-live":"polite",children:[st==="saving"&&"Saving...",st==="saved"&&"All changes saved",st==="error"&&jsxRuntimeExports.jsx("span",{className:"text-rose-700",children:"Save failed â retrying"}),st==="idle"&&"Changes save automatically"]})]}),it&&jsxRuntimeExports.jsx("div",{className:"mb-4 border border-border bg-canvas-soft p-3 text-sm text-ink/70",children:it}),jsxRuntimeExports.jsxs("div",{className:"mb-4 flex flex-wrap items-center justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>or(-1),disabled:e===0,children:"Previous week"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>or(1),children:"Next week"})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-xs text-ink/60",children:[jsxRuntimeExports.jsx(LegendSwatch,{className:"border-emerald-300 bg-emerald-200",label:"1:1 available"}),jsxRuntimeExports.jsx(LegendSwatch,{className:"border-sky-200 bg-sky-100",label:"Teammates only"}),jsxRuntimeExports.jsx(LegendSwatch,{className:"border-emerald-700 bg-emerald-600",label:"Interview + 1:1 available"})]})]}),jsxRuntimeExports.jsx("div",{className:"overflow-x-auto border border-border bg-canvas-soft/50 select-none",children:jsxRuntimeExports.jsxs("table",{className:"w-full border-collapse text-xs",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"w-16 border-b border-border p-2"}),ht.map(Ht=>jsxRuntimeExports.jsx("th",{className:"border-b border-l border-border p-0 text-center font-normal",children:jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>qt(Ht),title:"Toggle the whole day",className:"w-full p-2 transition-colors hover:bg-emerald-50",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:Ht.toLocaleDateString(void 0,{weekday:"short"})}),jsxRuntimeExports.jsx("div",{className:"mt-1 font-serif text-base",children:Ht.toLocaleDateString(void 0,{month:"short",day:"numeric"})})]})},Ht.toISOString()))]})}),jsxRuntimeExports.jsx("tbody",{children:mt.map(({hour:Ht,minute:Xt,label:Zt},It)=>jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:"border-b border-border/40 p-1 pr-2 text-right al
974ign-top text-[11px] text-ink/50",children:Xt===0?Zt:""}),ht.map(Bt=>{const rr=new Date(Bt);rr.setHours(Ht,Xt,0,0);const lr=rr.toISOString(),pr=g.has(lr),tr=Jt.get(lr)??[],hr=tr.length+(pr?1:0),Vt=new Date(rr.getTime()+SLOT_MINUTES*60*1e3).toISOString(),sr=new Set(nr.get(lr)??[]),Lt=new Set(nr.get(Vt)??[]);rt&&(pr?sr.add(rt):sr.delete(rt),g.has(Vt)?Lt.add(rt):Lt.delete(rt));const mr=[...sr].filter(cr=>Lt.has(cr)).length>=MIN_INTERVIEWERS_PER_SLOT,xr=rr.getTime()<Date.now();return jsxRuntimeExports.jsxs("td",{onMouseDown:()=>!xr&&ur(lr),onMouseEnter:()=>!xr&<&&er(lr,lt),className:`group relative h-7 border-b border-l border-border/40 text-center align-middle text-[11px] ${cellClass(pr,tr.length,mr,xr)}`,children:[hr>0?hr:"",!xr&&hr>0&&jsxRuntimeExports.jsx("div",{className:`pointer-events-none invisible absolute left-1/2 z-20 -translate-x-1/2 whitespace-nowrap bg-ink px-2.5 py-1.5 text-[11px] font-normal text-canvas opacity-0 shadow-sm transition-opacity delay-75 group-hover:visible group-hover:opacity-100 ${It<3?"top-full mt-1":"bottom-full mb-1"}`,children:cellTooltip(pr,tr,mr)})]},lr)})]},Zt))})]})}),jsxRuntimeExports.jsxs("section",{className:"mt-10",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl font-light",children:"Upcoming interviews"}),dt.length===0?jsxRuntimeExports.jsx("div",{className:"mt-4 border border-border bg-canvas-soft/50 p-6 text-sm text-ink/60",children:"No interviews scheduled yet."}):jsxRuntimeExports.jsxs("div",{className:"mt-4 border border-border bg-canvas-soft/50",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[180px_1fr_1fr_100px] gap-3 border-b border-border px-4 py-3 text-[11px] uppercase tracking-[0.14em] text-ink/45",children:[jsxRuntimeExports.jsx("span",{children:"When"}),jsxRuntimeExports.jsx("span",{children:"Candidate"}),jsxRuntimeExports.jsx("span",{children:"Interviewers"}),jsxRuntimeExports.jsx("span",{children:"Status"})]}),dt.map(Ht=>jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[180px_1fr_1fr_100px] items-center gap-3 border-b border-border px-4 py-3 text-sm last:border-b-0",children:[jsxRuntimeExports.jsx("span",{children:formatInterviewTime(Ht)}),jsxRuntimeExports.jsx("span",{className:"truncate font-medium",children:Ht.applicant_name}),jsxRuntimeExports.jsx("span",{className:"truncate text-ink/70",children:[Ht.interviewer_1,Ht.interviewer_2].filter(Boolean).join(", ")||"-"}),jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:Ht.status==="completed"?"border-emerald-700 bg-emerald-100 text-emerald-900":"border-sky-700 bg-sky-100 text-sky-900",children:Ht.status==="completed"?"Done":"Booked"})})]},Ht.id))]})]}),jsxRuntimeExports.jsx(OneToOneBookings,{bookings:xt})]})})},OneToOneBookings=({bookings:e})=>jsxRuntimeExports.jsxs("section",{className:"mt-10",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl font-light",children:"Upcoming 1:1s"}),e.length===0?jsxRuntimeExports.jsx("div",{className:"mt-4 border border-border bg-canvas-soft/50 p-6 text-sm text-ink/60",children:"No 1:1s booked yet."}):jsxRuntimeExports.jsx("div",{className:"mt-4 overflow-x-auto border border-border bg-canvas-soft/50",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[760px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{className:"border-b border-border text-[11px] uppercase tracking-[0.14em] text-ink/45",children:[jsxRuntimeExports.jsx("th",{className:"p-4 font-normal",children:"When"}),jsxRuntimeExports.jsx("th",{className:"p-4 font-normal",children:"Member"}),jsxRuntimeExports.jsx("th",{className:"p-4 font-normal",children:"Team member"}),jsxRuntimeExports.jsx("th",{className:"p-4 font-normal",children:"Notifications"})]})}),jsxRuntimeExports.jsx("tbody",{children:e.map(s=>{const a=s.member_email_status==="sent"&&s.team_email_status==="sent";return jsxRuntimeExports.jsxs("tr",{className:"border-b border-border last:border-0",children:[jsxRuntimeExports.jsx("td",{className:"p-4",children:formatOneToOneTime(s)}),jsxRuntimeExports.jsxs("td",{className:"p-4",children:[jsxRuntimeExports.jsx("span",{className:"font-medium",children:s.member_name}),jsxRuntimeExports.jsx("span",{className:"block text-xs text-ink/50",children:s.member_email})]}),jsxRuntimeExports.jsx("td",{className:"p-4",children:s.team_member_name}),jsxRuntimeExports.jsx("td",{className:"p-4",children:jsxRuntimeExports.jsx(Badge,{variant:"outline",className:a?"border-emerald-600 bg-emerald-50 text-emerald-900":"border-amber-600 bg-amber-50 text-amber-900",children:a?"Both informed":"Email issue"})})]},s.id)})})]})})]}),formatOneToOneTime=e=>{const s=new Date(e.scheduled_start_at),a=new Date(e.scheduled_end_at),
974c=s.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),g=s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),et=a.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"});return`${c}, ${g}-${et}`},formatInterviewTime=e=>{if(!e.scheduled_start_at)return"-";const s=new Date(e.scheduled_start_at),a=e.scheduled_end_at?new Date(e.scheduled_end_at):null,c=s.toLocaleDateString(void 0,{weekday:"short",month:"short",day:"numeric"}),g=s.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),et=a==null?void 0:a.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"});return`${c}, ${g}${et?`-${et}`:""}`},LegendSwatch=({className:e,label:s})=>jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:`inline-block h-4 w-4 border ${e}`,"aria-hidden":"true"}),s]}),cellClass=(e,s,a,c)=>c?"cursor-not-allowed bg-zinc-100/70 text-zinc-300":a?"cursor-pointer bg-emerald-600 font-medium text-white hover:bg-emerald-500":e?"cursor-pointer bg-emerald-200 text-emerald-900 hover:bg-emerald-300":s>0?"cursor-pointer bg-sky-100 text-sky-800 hover:bg-sky-200":"cursor-pointer text-transparent hover:bg-emerald-50",displayName=e=>{const s=e.split("@")[0];return s.charAt(0).toUpperCase()+s.slice(1)},cellTooltip=(e,s,a)=>{const c=[...e?["You"]:[],...s.map(displayName)],g=a?" · interview + 1:1 available":" · 1:1 available";return`${c.join(", ")}${g}`},buildDays=e=>{const s=new Date;return s.setHours(0,0,0,0),s.setDate(s.getDate()+e*DAYS_PER_PAGE),Array.from({length:DAYS_PER_PAGE},(a,c)=>addDays$1(s,c))},buildTimes=()=>{const e=[];for(let s=START_HOUR;s<END_HOUR;s+=1)for(let a=0;a<60;a+=SLOT_MINUTES)e.push({hour:s,minute:a,label:`${String(s).padStart(2,"0")}:${String(a).padStart(2,"0")}`});return e},addDays$1=(e,s)=>{const a=new Date(e);return a.setDate(a.getDate()+s),a},isoKey=e=>new Date(e).toISOString(),InterviewBooking=()=>{const[e]=useSearchParams(),s=e.get("token")??"",[a,c]=reactExports.useState({phase:"loading"}),[g,et]=reactExports.useState(null),[rt,nt]=reactExports.useState(!1),[st,at]=reactExports.useState("");reactExports.useEffect(()=>{if(!s){c({phase:"invalid",message:"This booking link is missing its token."});return}fetchBookingPage(s).then(ot=>{ot.booked?c({phase:"booked",data:ot,emailSent:!0}):c({phase:"choose",data:ot})}).catch(ot=>c({phase:"invalid",message:ot instanceof Error?ot.message:"This booking link is not valid."}))},[s]);const it=async()=>{if(!(!g||a.phase!=="choose"))try{nt(!0),at("");const ot=await bookInterviewSlot(s,g);c({phase:"booked",data:{...a.data,booked:ot.booked,meetUrl:ot.meetUrl,slotMinutes:ot.slotMinutes},emailSent:ot.emailSent})}catch(ot){at(ot instanceof Error?ot.message:"Could not book this slot. Please try another one."),fetchBookingPage(s).then(lt=>c({phase:"choose",data:lt})).catch(()=>{}),et(null)}finally{nt(!1)}};return jsxRuntimeExports.jsx(Section,{grain:!0,children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-3xl",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Fellowship"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-4xl md:text-5xl text-ink leading-[1.08]",children:"Schedule Your Interview"}),a.phase==="loading"&&jsxRuntimeExports.jsx("p",{className:"mt-8 text-ink/60",children:"Loading available times..."}),a.phase==="invalid"&&jsxRuntimeExports.jsxs("div",{className:"mt-8 space-y-4",children:[jsxRuntimeExports.jsx("p",{className:"text-ink/75",children:a.message}),jsxRuntimeExports.jsxs("p",{className:"text-ink/60",children:["If you believe this is a mistake, please contact us at"," ",jsxRuntimeExports.jsx("a",{href:`mailto:${CONTACT_EMAIL}`,className:"border-b border-ink/30 hover:border-ink",children:CONTACT_EMAIL}),"."]})]}),a.phase==="choose"&&jsxRuntimeExports.jsx(SlotPicker,{data:a.data,selectedSlot:g,onSelect:et,onConfirm:it,booking:rt,message:st}),a.phase==="booked"&&a.data.booked&&jsxRuntimeExports.jsx(Confirmation,{data:a.data,emailSent:a.emailSent})]})})},SlotPicker=({data:e,selectedSlot:s,onSelect:a,onConfirm:c,booking:g,message:et})=>{const rt=Intl.DateTimeFormat().resolvedOptions().timeZone,nt=reactExports.useMemo(()=>groupSlotsByWeek(e.slots??[]),[e.slots]),[st,at]=reactExports.useState(0),it=nt[Math.min(st,Math.max(nt.length-1,0))],ot=reactExports.useMemo(()=>buildSlotGrid((it==null?void 0:it.slots)??[]),[it]);return jsxRuntimeExports.jsxs("div",{className:"mt-6",children:[jsxRuntimeExports.jsxs("p",{className:"text-ink/70 leading-relaxed",children:["Hi ",firstName$2(e.applicantName),"! Please pick a time for your ",e.slotMinutes,"-minute interview with the EAF team. All times are shown in your timezone (",rt,")."]}),et&&jsxRuntimeExports.jsx("div",{className:"mt-6 border border-border bg-canvas-soft p-3 text-sm text-ink/75",children:et}),nt.length===0&&jsxRuntimeExports.jsxs("div",{className:"mt-8 border border-border bg-canvas-soft/50 p-6 text-ink/65",children:["There are currently no open interview slots. Please check back soon, or contact us at"," ",jsxRuntimeExports.jsx("a",{href:`mailto:${CONTACT_EMAIL}`,className:"border-b border-ink/30 hover:border-ink",children:CONTACT_EMAIL})," ","if none of the upcoming times work for you."]}),nt.length>0&&jsxRuntimeExports.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-xl text-ink",children:it.label}),nt.length>1&&jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>at(lt=>Math.max(lt-1,0)),disabled:st===0,children:"Previous week"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>at(lt=>Math.min(lt+1,nt.length-1)),disabled:st>=nt.length-1,children:"Next week"})]})]}),ot.days.length>0&&jsxRuntimeExports.jsx("div",{className:"mt-4 overflow-x-auto border border-border bg-canvas-soft/30",children:jsxRuntimeExports.jsxs("table",{className:"w-full border-collapse",children:[jsxRuntimeExports.jsx("thead",{children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"w-16 border-b border-border/40 p-2"}),ot.days.map(lt=>jsxRuntimeExports.jsxs("th",{className:"border-b border-l border-border/40 p-2 text-center font-normal",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:lt.weekday}),jsxRuntimeExports.jsx("div",{className:"mt-1 font-serif text-base text-ink",children:lt.label})]},lt.key))]})}),jsxRuntimeExports.jsx("tbody",{children:ot.times.map(({minutes:lt,label:ct})=>jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("td",{className:"border-b border-border/40 p-1 pr-2 text-right al
974ign-middle text-[11px] text-ink/50",children:ct}),ot.days.map(dt=>{const ut=ot.cells.get(`${dt.key}|${lt}`);if(!ut)return jsxRuntimeExports.jsx("td",{className:"border-b border-l border-border/40 bg-canvas-soft/60"},dt.key);const xt=s===ut;return jsxRuntimeExports.jsx("td",{className:"border-b border-l border-border/40 p-0",children:jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>a(ut),className:`h-9 w-full text-sm transition-colors ${xt?"bg-ink font-medium text-canvas":"bg-emerald-50 text-ink/75 hover:bg-emerald-100"}`,children:ct})},dt.key)})]},lt))})]})}),s&&jsxRuntimeExports.jsxs("div",{className:"mt-10 border-t border-border pt-6",children:[jsxRuntimeExports.jsxs("p",{className:"text-ink/75",children:["Selected: ",jsxRuntimeExports.jsx("strong",{children:formatDay$1(s)})," at ",jsxRuntimeExports.jsx("strong",{children:formatTime$1(s)})]}),jsxRuntimeExports.jsx(Button,{type:"button",className:"mt-4",onClick:c,disabled:g,children:g?"Booking...":"Confirm this time"})]})]})},Confirmation=({data:e,emailSent:s})=>{const a=e.booked.scheduled_start_at;return jsxRuntimeExports.jsxs("div",{className:"mt-8 space-y-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4 border border-border bg-canvas-soft/50 p-6",children:[jsxRuntimeExports.jsx(CalendarCheck,{className:"mt-1 h-6 w-6 shrink-0 text-ink/70"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl text-ink",children:"Your interview is confirmed"}),jsxRuntimeExports.jsxs("p",{className:"mt-2 text-ink/75",children:[jsxRuntimeExports.jsx("strong",{children:formatDay$1(a)})," at ",jsxRuntimeExports.jsx("strong",{children:formatTime$1(a)})," (your local time)"]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-sm text-ink/60",children:["Duration: ",e.slotMinutes," minutes"]})]})]}),e.meetUrl&&jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4 border border-border bg-canvas-soft/50 p-6",children:[jsxRuntimeExports.jsx(Video,{className:"mt-1 h-6 w-6 shrink-0 text-ink/70"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl text-ink",children:"Google Meet"}),jsxRuntimeExports.jsx("a",{href:e.meetUrl,target:"_blank",rel:"noopener noreferrer",className:"mt-2 inline-block border-b border-ink/30 text-ink/80 hover:border-ink",children:e.meetUrl})]})]}),jsxRuntimeExports.jsxs("p",{className:"text-ink/65",children:[s?"A confirmation email with all details is on its way to your inbox.":"We could not send the confirmation email automatically, but your booking is saved. You will hear from us shortly."," ","If you can no longer make this time, please contact us at"," ",jsxRuntimeExports.jsx("a",{href:`mailto:${CONTACT_EMAIL}`,className:"border-b border-ink/30 hover:border-ink",children:CONTACT_EMAIL}),"."]})]})},firstName$2=e=>e.trim().split(/\s+/)[0]||e,formatDay$1=e=>new Date(e).toLocaleDateString(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}),formatTime$1=e=>new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),startOfWeek$1=e=>{const s=new Date(e);return s.setHours(0,0,0,0),s.setDate(s.getDate()-(s.getDay()+6)%7),s},groupSlotsByWeek=e=>{const s=new Map;for(const c of[...e].sort()){const g=startOfWeek$1(new Date(c)),et=s.get(g.getTime())??{start:g,slots:[]};et.slots.push(c),s.set(g.getTime(),et)}const a=c=>c.toLocaleDateString(void 0,{month:"short",day:"numeric"});return[...s.values()].sort((c,g)=>c.start.getTime()-g.start.getTime()).map(({start:c,slots:g})=>{const et=new Date(c);return et.setDate(et.getDate()+6),{label:`${a(c)} â ${a(et)}`,slots:g}})},buildSlotGrid=e=>{const s=new Map,a=new Map,c=new Map;for(const g of[...e].sort()){const et=new Date(g),rt=`${et.getFullYear()}-${et.getMonth()}-${et.getDate()}`,nt=et.getHours()*60+et.getMinutes();s.has(rt)||s.set(rt,{key:rt,weekday:et.toLocaleDateString(void 0,{weekday:"short"}),label:et.toLocaleDateString(void 0,{month:"short",day:"numeric"})}),a.set(nt,formatTime$1(g)),c.set(`${rt}|${nt}`,g)}return{days:[...s.values()],times:[...a.entries()].sort(([g],[et])=>g-et).map(([g,et])=>({minutes:g,label:et})),cells:c}},PulseOneToOnes=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(OneToOnePage,{})}),OneToOnePage=()=>{const[e,s]=reactExports.useState(null),[a,c]=reactExports.useState("");return reactExports.useEffect(()=>{loadOneToOnes().then(s).catch(g=>c(g instanceof Error?g.message:"Could not load 1:1 scheduling."))},[]),(e==null?void 0:e.role)==="team"?jsxRuntimeExports.jsx(Navigate,{to:pulsePath("/availability"),replace:!0}):jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-4xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("header",{className:"mb-8 border-b border-border pb-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-4xl font-light sm:text-5xl",children:"1:1s"}),jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-2xl text-sm leading-6 text-ink/60",children:"Choose a 15-minute c
974onversation with an EAF team member."})]}),!e&&!a&&jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading available timesâ¦"}),a&&jsxRuntimeExports.jsx("div",{className:"mb-5 border border-rose-300 bg-rose-50 p-4 text-sm text-rose-900",children:a}),(e==null?void 0:e.role)==="member"&&jsxRuntimeExports.jsx(MemberBooking,{data:e,onBooked:s})]})})},MemberBooking=({data:e,onBooked:s})=>{const[a,c]=reactExports.useState(null),[g,et]=reactExports.useState(!1),[rt,nt]=reactExports.useState(""),st=reactExports.useMemo(()=>groupSlotsByTeamMember(e.slots),[e.slots]);return e.booking?jsxRuntimeExports.jsx(BookingConfirmation,{booking:e.booking,slotMinutes:e.slotMinutes,meetUrl:e.meetUrl}):jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("p",{className:"mb-6 text-sm text-ink/65",children:["Hi ",e.name.split(/\s+/)[0],"! Choose who you would like to meet, then pick one of their open times. Times are shown in your timezone (",Intl.DateTimeFormat().resolvedOptions().timeZone,")."]}),e.slots.length===0&&jsxRuntimeExports.jsx("div",{className:"border border-border bg-canvas-soft/50 p-6 text-sm text-ink/60",children:"No 1:1 times are open yet. Please check back soon."}),jsxRuntimeExports.jsx("div",{className:"grid gap-5 md:grid-cols-2",children:st.map(at=>jsxRuntimeExports.jsxs("section",{className:"border border-border bg-canvas-soft/35 p-5",children:[jsxRuntimeExports.jsxs("div",{className:"mb-5 border-b border-border pb-4",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl font-light",children:at.name}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-xs text-ink/45",children:[at.starts.length," open ",at.starts.length===1?"time":"times"]})]}),jsxRuntimeExports.jsx("div",{className:"space-y-5",children:[...groupStartsByDay(at.starts).entries()].map(([it,ot])=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"mb-2 text-[11px] uppercase tracking-[0.12em] text-ink/50",children:formatDay(ot[0])}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",children:ot.map(lt=>{const ct=(a==null?void 0:a.start)===lt&&a.userId===at.userId;return jsxRuntimeExports.jsx("button",{type:"button","aria-label":`Book ${at.name} on ${formatDay(lt)} at ${formatTime(lt)}`,onClick:()=>c({start:lt,userId:at.userId,name:at.name}),className:`min-w-[74px] border px-3 py-2 text-sm transition-colors ${ct?"border-ink bg-ink text-canvas":"border-border bg-canvas hover:border-ink/40"}`,children:formatTime(lt)},lt)})})]},it))})]},at.userId))}),rt&&jsxRuntimeExports.jsx("div",{className:"mt-6 border border-rose-300 bg-rose-50 p-3 text-sm text-rose-900",children:rt}),a&&jsxRuntimeExports.jsxs("div",{className:"mt-8 border-t border-border pt-5",children:[jsxRuntimeExports.jsxs("p",{className:"text-sm text-ink/70",children:["Selected: ",jsxRuntimeExports.jsx("strong",{children:a.name}),", ",jsxRuntimeExports.jsx("strong",{children:formatDay(a.start)})," at ",jsxRuntimeExports.jsx("strong",{children:formatTime(a.start)})]}),jsxRuntimeExports.jsx(Button,{className:"mt-4",disabled:g,onClick:async()=>{try{et(!0),nt("");const at=await bookOneToOne(a.start,a.userId);s({...e,slots:[],booking:at.booking,meetUrl:at.meetUrl})}catch(at){nt(at instanceof Error?at.message:"Could not book this time."),c(null)}finally{et(!1)}},children:g?"Bookingâ¦":"Confirm this 1:1"})]})]})},BookingConfirmation=({booking:e,slotMinutes:s,meetUrl:a})=>jsxRuntimeExports.jsxs("div",{className:"max-w-3xl space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-4 border border-border bg-canvas-soft/50 p-6",children:[jsxRuntimeExports.jsx(CalendarCheck,{className:"mt-1 h-6 w-6 shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Your 1:1 is confirmed"}),jsxRuntimeExports.jsxs("p",{className:"mt-2 text-ink/70",children:[jsxRuntimeExports.jsx("strong",{children:formatDay(e.scheduled_start_at)})," at ",jsxRuntimeExports.jsx("strong",{children:formatTime(e.scheduled_start_at)})]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-sm text-ink/55",children:["With ",e.team_member_name," · ",s," minutes"]})]})]}),a&&jsxRuntimeExports.jsxs("div",{className:"flex gap-4 border border-border bg-canvas-soft/50 p-6",children:[jsxRuntimeExports.jsx(Video,{className:"mt-1 h-6 w-6 shrink-0"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl",children:"Google Meet"}),jsxRuntimeExports.jsx("a",{className:"mt-2 inline-block border-b border-ink/30",href:a,target:"_blank",rel:"noreferrer",children:a})]})]}),jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/60",children:e.member_email_status==="failed"?"Your booking is saved, but we could not send the confirmation email automatically.":"A confirmation email has been sent to you and your EAF team member."})]}),dayKey=e=>
974new Date(e).toLocaleDateString("en-CA"),groupSlotsByTeamMember=e=>{const s=new Map;return e.forEach(a=>a.teamMembers.forEach(c=>{const g=s.get(c.userId)??{...c,starts:[]};g.starts.includes(a.start)||g.starts.push(a.start),s.set(c.userId,g)})),[...s.values()].map(a=>({...a,starts:a.starts.sort()})).sort((a,c)=>a.name.localeCompare(c.name))},groupStartsByDay=e=>{const s=new Map;return e.forEach(a=>s.set(dayKey(a),[...s.get(dayKey(a))??[],a])),s},formatDay=e=>new Date(e).toLocaleDateString(void 0,{weekday:"long",day:"numeric",month:"long",year:"numeric"}),formatTime=e=>new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}),PulseClaim=()=>{const[e]=useSearchParams(),s=reactExports.useMemo(()=>e.get("token")??"",[e]),[a,c]=reactExports.useState(""),[g,et]=reactExports.useState(""),[rt,nt]=reactExports.useState(""),[st,at]=reactExports.useState("idle"),[it,ot]=reactExports.useState(""),lt=async ct=>{if(ct.preventDefault(),g!==rt){at("error"),ot("Passwords do not match. Please enter the same password twice.");return}at("submitting"),ot("");try{await claimPulseProfile({token:s,email:a.trim(),password:g}),at("success")}catch(dt){at("error"),ot(dt instanceof Error?dt.message:"Could not claim your Pulse profile.")}};return jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-6 py-24 text-ink",children:jsxRuntimeExports.jsx("div",{className:"mx-auto flex min-h-[60vh] max-w-5xl items-center justify-center border-t border-ink/25",children:st==="success"?jsxRuntimeExports.jsxs("div",{className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsx(CircleCheckBig,{className:"h-10 w-10 text-emerald-700"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Profile claimed"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:"Your Pulse account is ready. You can now sign in with your email and password."})]}),jsxRuntimeExports.jsx(Link,{to:pulsePath(),className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] uppercase tracking-[0.16em] text-canvas transition-colors hover:bg-ink/90",children:"Sign in"})]}):jsxRuntimeExports.jsxs("form",{onSubmit:lt,className:"w-full max-w-sm space-y-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl leading-tight text-ink",children:"Claim your profile"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-relaxed text-ink/60",children:"Create your Pulse login using the email address you want attached to your profile, then set a new password for your account."})]}),!s&&jsxRuntimeExports.jsx("p",{className:"border border-destructive/40 p-3 text-sm text-destructive",children:"This claim link is missing a token. Please ask EAF for a new link."}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Email address"}),jsxRuntimeExports.jsx("input",{type:"email",required:!0,value:a,onChange:ct=>c(ct.target.value),placeholder:"Email address",disabled:!s||st==="submitting",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-1 block text-xs font-medium uppercase tracking-[0.12em] text-ink/60",children:"New password"}),jsxRuntimeExports.jsx("input",{type:"password",required:!0,minLength:8,autoComplete:"new-password",value:g,onChange:ct=>{et(ct.target.value),st==="error"&&ot("")},placeholder:"At least 8 characters",disabled:!s||st==="submitting",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-1 block text-xs font-medium uppercase tracking-[0.12em] text-ink/60",children:"Confirm new password"}),jsxRuntimeExports.jsx("input",{type:"password",required:!0,minLength:8,autoComplete:"new-password",value:rt,onChange:ct=>{nt(ct.target.value),st==="error"&&ot("")},placeholder:"Enter your new password again",disabled:!s||st==="submitting",className:"h-12 w-full border-b border-border bg-transparent text-sm text-ink placeholder:text-ink/38 focus:border-ink focus:outline-none"})]}),jsxRuntimeExports.jsx("button",{type:"submit",disabled:!s||st==="submitting",className:"inline-flex min-h-11 items-center bg-ink px-5 py-3 text-[12px] uppercase tracking-[0.16em] text-canvas transition-colors hover:bg-ink/90 disabled:cursor-not-allowed disabled:opacity-50",children:st==="submitting"?"Creating account...":"Claim profile"}),it&&jsxRuntimeExports.jsx("p",{className:"text-sm leading-relaxed text-destructive",children:it})]})})})};
974function usePlanningWorkspace(e,s){const[a,c]=reactExports.useState(e),[g,et]=reactExports.useState(!s),[rt,nt]=reactExports.useState(""),[st,at]=reactExports.useState(!1),it=reactExports.useRef(a),ot=reactExports.useRef(""),lt=reactExports.useRef(0),ct=reactExports.useRef(!1),dt=reactExports.useRef(!1);it.current=a;const ut=reactExports.useCallback(async()=>{if(!s||!supabase)return;const gt=JSON.stringify(it.current),{data:ht,error:mt}=await supabase.from("pulse_planning_workspace").select("data,version").eq("id","team").single();if(mt||!ht){nt("Could not load the team plan. Check your team access and retry.");return}ot.current&&(JSON.stringify(it.current)!==gt||ht.version<lt.current)||(ot.current=JSON.stringify(ht.data),lt.current=ht.version,dt.current=!1,nt(""),c(ht.data),et(!0))},[s]);return reactExports.useEffect(()=>{s&&ut()},[ut,s]),reactExports.useEffect(()=>{if(!s||!g||!supabase||dt.current)return;const gt=window.setTimeout(async()=>{if(!(ct.current||dt.current)){ct.current=!0;try{for(;JSON.stringify(it.current)!==ot.current;){at(!0);const ht=it.current,mt=JSON.stringify(ht),{data:kt,error:Ct}=await supabase.rpc("save_pulse_planning",{expected_version:lt.current,next_data:ht});if(Ct||typeof kt!="number"){dt.current=!0,nt(Ct!=null&&Ct.message.includes("conflict")?"Another team member changed the plan. Export your unsaved edits before reloading the latest version.":"Changes have not been saved. Export your edits before reloading and retrying.");break}lt.current=kt,ot.current=mt}}finally{ct.current=!1,at(!1)}}},500);return()=>window.clearTimeout(gt)},[a,g,s]),reactExports.useEffect(()=>{if(!s||!g)return;const gt=window.setInterval(()=>{!ct.current&&!dt.current&&JSON.stringify(it.current)===ot.current&&ut()},15e3),ht=mt=>{JSON.stringify(it.current)!==ot.current&&(mt.preventDefault(),mt.returnValue="")};return window.addEventListener("beforeunload",ht),()=>{window.clearInterval(gt),window.removeEventListener("beforeunload",ht)}},[s,g,ut]),{data:a,setData:c,ready:g,message:rt,saving:st,reload:ut,exportDraft:()=>{const gt=URL.createObjectURL(new Blob([JSON.stringify(it.current,null,2)],{type:"application/json"})),ht=document.createElement("a");ht.href=gt,ht.download="eaf-planning-unsaved.json",ht.click(),window.setTimeout(()=>URL.revokeObjectURL(gt),1e3)}}}function PlanningAvailability(){const[e,s]=reactExports.useState("");return reactExports.useEffect(()=>{let a=!1;return(async()=>{if(!supabase)return;const{data:{user:g}}=await supabase.auth.getUser();if(!g)return;const{data:et}=await supabase.from("pulse_profiles").select("person_id").eq("user_id",g.id).eq("is_admin",!0).eq("account_status","active").maybeSingle();a||s((et==null?void 0:et.person_id)||"")})(),()=>{a=!0}},[]),e?jsxRuntimeExports.jsx(AvailabilityDates,{personId:e}):null}function AvailabilityDates({personId:e}){const{data:s,setData:a,ready:c,saving:g,message:et,reload:rt,exportDraft:nt}=usePlanningWorkspace(()=>({people:[]}),!0),st=s.people.find(it=>it.id===e),at=it=>a(ot=>({...ot,people:ot.people.map(lt=>lt.id===e?{...lt,...it}:lt)}));return jsxRuntimeExports.jsxs("section",{className:"p-6",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Availability"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-ink/60",children:"Set a passive period to show yourself as Away in meeting tables. Leave the end date blank for an open-ended break."}),c&&st?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"mt-4 flex flex-wrap gap-4",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm",children:["Away from",jsxRuntimeExports.jsx("input",{className:"mt-1 block rounded border border-border bg-transparent p-2",type:"date",value:st.from||"",max:st.until||void 0,onChange:it=>at({from:it.target.value,until:!it.target.value||st.until&&st.until<it.target.value?"":st.until})})]}),jsxRuntimeExports.jsxs("label",{className:"text-sm",children:["Until (inclusive, optional)",jsxRuntimeExports.jsx("input",{className:"mt-1 block rounded border border-border bg-transparent p-2",type:"date",value:st.until||"",disabled:!st.from,min:st.from||void 0,onChange:it=>at({until:it.target.value})})]})]}),st.from&&jsxRuntimeExports.jsx("button",{className:"mt-3 text-sm underline",onClick:()=>at({from:"",until:""}),children:"Clear away period"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-ink/60",children:g?"Savingâ¦":"Changes save automatically."})]}):jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm",children:c?"Open Planning once to initialize your team profile.":"Loading availabilityâ¦"}),et&&jsxRuntimeExports.jsxs("div",{role:"alert",className:"mt-3 text-sm",children:[et," ",jsxRuntimeExports.jsx("button",{onClick:nt,children:"Export edits"})," ",jsxRuntimeExports.jsx("button",{onClick:()=>void rt(),children:"Reload"})]})]})}const PulseSecurity=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PulseSecurityConsole,{})}),PulseSecurityConsole=()=>{const[e,s]=reactExports.useState(!1),[a,c]=reactExports.useState([]),[g,et]=reactExports.useState(null),[rt,nt]=reactExports.useState(!1),[st,at]=reactExports.useState(""),[it,ot]=reactExports.useState(""),[lt,ct]=reactExports.useState(""),[dt,ut]=reactExports.useState(!1),[xt,gt]=reactExports.useState(!1),[ht,mt]=reactExports.useState(""),[kt,Ct]=reactExports.useState(""),[Tt,Pt]=reactExports.useState(""),[At,Gt]=reactExports.useState(""),[Mt,zt]=reactExports.useState(""),[Jt,nr]=reactExports.useState("loading"),[er,ur]=reactExports.useState("idle"),[qt,or]=reactExports.useState("idle"),Dt=async()=>{var sr;if(!supabase)return;const[{data:lr,error:pr},{data:tr,error:hr}]=await Promise.all([supabase.auth.getUser(),supabase.auth.mfa.listFactors()]);if(pr){nr("error"),Pt(pr.message);return}if((sr=lr.user)!=null&&sr.email&&(ot(lr.user.email),ct(lr.user.email)),hr){nr("error"),Pt(hr.message);return}const Vt=tr.totp??[];c(Vt.map(Lt=>Lt.id)),s(!!Vt.length),nr("ready")},Ht=async lr=>{if(!supabase)return;const{data:pr,error:tr}=await supabase.auth.getUser();if(tr)throw tr;if(!pr.user)throw new Error("Could not load the current user.");const{error:hr}=await supabase.from("pulse_profiles").update({private_email:lr}).eq("user_id",pr.user.id).eq("account_status","active");if(hr)throw hr};reactExports.useEffect(()=>{Dt()},[]);const Xt=async lr=>{var Vt;if(lr.preventDefault(),!supabase)return;const pr=lt.trim();if(!pr){ur("error"),Gt("Enter an email address.");return}if(pr.toLowerCase()===it.toLowerCase()){ur("error"),Gt("This is already your account email.");return}ur("working"),Gt("");const{data:tr,error:hr}=await supabase.auth.updateUser({email:pr},{emailRedirectTo:`${window.location.origin}${pulsePath("/settings")}`});if(hr){ur("error"),Gt(hr.message);return}try{await Ht(pr)}catch(sr){ur("error"),Gt(sr instanceof Error?sr.message:"Email changed, but Pulse profile sync failed.");return}ot(tr.user.email??pr),ct(tr.user.email??pr),ut(!1),ur("success"),Gt(((Vt=tr.user.email)==null?void 0:Vt.toLowerCase())===pr.toLowerCase()?"Email address updated.":"Check your new email address to confirm the change.")},Zt=async lr=>{if(lr.preventDefault(),!supabase)return;if(ht.length<8){or("error"),zt("Password must be at least 8 characters.");return}if(ht!==kt){or("error"),zt("Passwords do not match.");return}or("working"),zt("");const{error:pr}=await supabase.auth.updateUser({password:ht});if(pr){or("error"),zt(pr.message);return}mt(""),Ct(""),gt(!1),or("success"),zt("Password updated.")},It=async(lr=!1)=>
974{if(!supabase)return;nr("working"),Pt(""),nt(lr);const{data:pr,error:tr}=await supabase.auth.mfa.enroll({factorType:"totp",friendlyName:lr?`EAF Pulse ${Date.now()}`:"EAF Pulse"});if(tr){nr("error"),Pt(tr.message),nt(!1);return}et({id:pr.id,qrCode:pr.totp.qr_code,secret:pr.totp.secret}),nr("ready")},Bt=async()=>{supabase&&g&&await supabase.auth.mfa.unenroll({factorId:g.id}),et(null),nt(!1),at(""),Pt(""),nr("ready")},rr=async lr=>{if(lr.preventDefault(),!supabase||!g)return;nr("working"),Pt("");const{error:pr}=await supabase.auth.mfa.challengeAndVerify({factorId:g.id,code:st});if(pr){nr("error"),Pt(pr.message);return}if(rt){for(const tr of a)if(tr!==g.id){const{error:hr}=await supabase.auth.mfa.unenroll({factorId:tr});if(hr){nr("error"),Pt(hr.message);return}}}et(null),nt(!1),at(""),s(!0),nr("ready"),Pt(rt?"Authenticator app changed.":"Authenticator app enabled."),await Dt()};return jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-3xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("div",{className:"mb-8 border-b border-border pb-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-5xl font-light",children:"Settings"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-6 text-ink/60",children:"Manage your availability, Pulse login and account security."})]}),jsxRuntimeExports.jsxs("div",{className:"divide-y divide-border border border-border bg-canvas-soft/50",children:[jsxRuntimeExports.jsx(PlanningAvailability,{}),jsxRuntimeExports.jsxs("section",{className:"p-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-5 sm:flex-row sm:items-start sm:justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-4",children:[jsxRuntimeExports.jsx(Mail,{className:"mt-1 h-5 w-5 shrink-0 text-ink/55"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Email address"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/60",children:it||"Loading account email..."})]})]}),!dt&&jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>{ut(!0),ct(it),Gt(""),ur("idle")},children:"Change email"})]}),dt&&jsxRuntimeExports.jsxs("form",{onSubmit:Xt,className:"mt-5 grid gap-3 sm:grid-cols-[1fr_auto_auto]",children:[jsxRuntimeExports.jsx(Input,{type:"email",value:lt,onChange:lr=>ct(lr.target.value),required:!0,autoComplete:"email",placeholder:"[email protected]",className:"rounded-none border-border bg-canvas"}),jsxRuntimeExports.jsx(Button,{type:"submit",disabled:er==="working"||Jt==="loading",children:er==="working"?"Saving...":"Save"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"ghost",onClick:()=>{ut(!1),ct(it),Gt(""),ur("idle")},children:"Cancel"})]}),At&&jsxRuntimeExports.jsx("p",{className:`mt-4 text-sm ${er==="error"?"text-destructive":"text-ink/65"}`,children:At})]}),jsxRuntimeExports.jsxs("section",{className:"p-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-5 sm:flex-row sm:items-start sm:justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-4",children:[jsxRuntimeExports.jsx(KeyRound,{className:"mt-1 h-5 w-5 shrink-0 text-ink/55"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Password"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/60",children:"Last changed password is never shown."})]})]}),!xt&&jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>{gt(!0),zt(""),or("idle")},children:"Change password"})]}),xt&&jsxRuntimeExports.jsxs("form",{onSubmit:Zt,className:"mt-5 space-y-4",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[jsxRuntimeExports.jsx(Input,{type:"password",value:ht,onChange:lr=>mt(lr.target.value),required:!0,minLength:8,autoComplete:"new-password",placeholder:"New password",className:"rounded-none border-border bg-canvas"}),jsxRuntimeExports.jsx(Input,{type:"password",value:kt,onChange:lr=>Ct(lr.target.value),required:!0,minLength:8,autoComplete:"new-password",placeholder:"Confirm new password",className:"rounded-none border-border bg-canvas"})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"submit",disabled:qt==="working",children:qt==="working"?"Saving...":"Save password"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"ghost",onClick:()=>{gt(!1),mt(""),Ct(""),zt(""),or("idle")},children:"Cancel"})]})]}),Mt&&jsxRuntimeExports.jsx("p",{className:`mt-4 text-sm ${qt==="error"?"text-destructive":"text-ink/65"}`,children:Mt})]}),jsxRuntimeExports.jsxs("section",{className:"p-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-5 sm:flex-row sm:items-start sm:justify-between",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-4",children:[jsxRuntimeExports.jsx(ShieldCheck,{className:"mt-1 h-5 w-5 shrink-0 text-ink/55"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Authenticator app"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/60",children:e?"Enabled":"Not enabled"})]})]}),!g&&jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>It(e),disabled:Jt==="working",children:Jt==="working"?"Starting...":e?"Change authenticator":"Set up authenticator"})]}),g&&jsxRuntimeExports.jsxs("form",{onSubmit:rr,className:"mt-5 space-y-5",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-5 md:grid-cols-[180px_1fr]",children:[jsxRuntimeExports.jsx("img",{src:g.qrCode,alt:"Authenticator QR code",className:"h-44 w-44 border border-border bg-white p-3"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Manual setup key"}),jsxRuntimeExports.jsx("div",{className:"mt-2 break-all border border-border bg-canvas p-3 font-mono text-sm",children:g.secret}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm leading-6 text-ink/60",children:rt?"Add this new setup key to your authenticator app. Your current authenticator stays active until this code verifies.":"Scan the QR code or enter the setup key in your authenticator app, then enter the six-digit code below."})]})]}),jsxRuntimeExports.jsx(Input,{value:st,onChange:lr=>at(lr.target.value),required:!0,inputMode:"numeric",autoComplete:"one-time-code",placeholder:"123456",className:"rounded-none border-border bg-canvas"}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"submit",disabled:Jt==="working",children:Jt==="working"?"Verifying...":rt?"Verify and replace":"Verify and enable"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"ghost",onClick:Bt,disabled:Jt==="working",children:"Cancel"})]})]}),Tt&&jsxRuntimeExports.jsx("p",{className:`mt-4 text-sm ${Jt==="error"?"text-destructive":"text-ink/65"}`,children:Tt})]})]})]})})},PulseProfile=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PulseProfilePage,{})}),PulseProfilePage=()=>{const[e,s]=reactExports.useState(null),[a,c]=reactExports.useState(null),[g,et]=reactExports.useState(null),[rt,nt]=reactExports.useState(null),[st,at]=reactExports.useState(!0),[it,ot]=reactExports.useState(!0),[lt,ct]=reactExports.useState("loading"),[dt,ut]=reactExports.useState(!1),[xt,gt]=reactExports.useState(!1),[ht,mt]=reactExports.useState(""),kt=reactExports.useRef(null);reactExports.useEffect(()=>{supabase&&(async()=>{var zt;try{const{data:Jt,error:nr}=await supabase.auth.getUser();if(nr||!Jt.user)throw new Error((nr==null?void 0:nr.message)??"Could not identify your account.");const{data:er,error:ur}=await supabase.from("pulse_profiles").select("person_id").eq("user_id",Jt.user.id).eq("account_status","active").single();if(ur)throw new Error(ur.message);const{data:qt,error:or}=await supabase.from("people").select("*, pulse_profiles(*), pulse_person_documents(*), pulse_member_contacts(*)").eq("id",er.person_id).single();if(or)throw new Error(or.message);const Dt=qt,Ht=((zt=Dt.pulse_person_documents)==null?void 0:zt.find(Xt=>Xt.document_type==="cv"))??null;s(Dt),c(toDraft(Dt)),et(Ht),at((Ht==null?void 0:Ht.share_with_fellows)??!0),ot((Ht==null?void 0:Ht.share_with_partners)??!0),ct("ready")}catch(Jt){ct("error"),mt(Jt instanceof Error?Jt.message:"Could not load your profile.")}})()},[]);const Ct=(zt,Jt)=>{c(nr=>nr&&{...nr,[zt]:Jt})},Tt=async zt=>{if(zt.preventDefault(),!!a){ut(!0),mt("");try{const Jt=await updateOwnPulsePerson({current_institution:clean(a.current_institution),previous_institutions:clean(a.previous_institutions),field:clean(a.field),other_fields:clean(a.other_fields),country:clean(a.country),public_bio:clean(a.public_bio),community_intro:clean(a.community_intro)}),nr=await updatePulseMemberContact(e.id,{email:clean(a.public_email),phone:clean(a.phone),linkedin_url:clean(a.public_linkedin_url),website_url:clean(a.public_website_url)}),er={...Jt,pulse_member_contacts:nr};s(er),c(toDraft(er)),mt("Profile saved.")}catch(Jt){mt(Jt instanceof Error?Jt.message:"Could not save your profile.")}finally{ut(!1)}}},Pt=async()=>
974{if(!(!supabase||!e)){if(!g&&!rt){mt("Choose a PDF to upload first.");return}gt(!0),mt("");try{let zt=g;if(rt){if(rt.type!=="application/pdf"&&!rt.name.toLowerCase().endsWith(".pdf"))throw new Error("Please choose a PDF file.");if(rt.size>20*1024*1024)throw new Error("CVs must be 20 MB or smaller.");const Jt=`${e.id}/cv.pdf`,{error:nr}=await supabase.storage.from("pulse-private-documents").upload(Jt,rt,{upsert:!0,contentType:"application/pdf"});if(nr)throw new Error(nr.message);const{data:er,error:ur}=await supabase.from("pulse_person_documents").upsert({person_id:e.id,document_type:"cv",bucket_id:"pulse-private-documents",object_path:Jt,file_name:rt.name,mime_type:"application/pdf",size_bytes:rt.size,share_with_fellows:st,share_with_partners:it},{onConflict:"person_id,document_type"}).select().single();if(ur)throw new Error(ur.message);zt=er}else if(g){const{data:Jt,error:nr}=await supabase.from("pulse_person_documents").update({share_with_fellows:st,share_with_partners:it}).eq("id",g.id).select().single();if(nr)throw new Error(nr.message);zt=Jt}et(zt),nt(null),kt.current&&(kt.current.value=""),mt(rt?"CV uploaded.":"CV sharing preferences saved.")}catch(zt){mt(zt instanceof Error?zt.message:"Could not save your CV.")}finally{gt(!1)}}},At=async()=>{if(g)try{const zt=await createPulsePersonDocumentUrl(g);window.open(zt,"_blank","noopener,noreferrer")}catch(zt){mt(zt instanceof Error?zt.message:"Could not open your CV.")}},Gt=async()=>{if(!(!supabase||!e||!g||!window.confirm("Remove this CV from your Pulse profile?"))){gt(!0),mt("");try{if(g.object_path.startsWith(`${e.id}/`)){const{error:Jt}=await supabase.storage.from(g.bucket_id).remove([g.object_path]);if(Jt)throw new Error(Jt.message)}const{error:zt}=await supabase.from("pulse_person_documents").delete().eq("id",g.id);if(zt)throw new Error(zt.message);et(null),nt(null),at(!0),ot(!0),kt.current&&(kt.current.value=""),mt("CV removed.")}catch(zt){mt(zt instanceof Error?zt.message:"Could not remove your CV.")}finally{gt(!1)}}};if(lt==="loading")return jsxRuntimeExports.jsx(ProfileShell,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading your profileâ¦"})});if(lt==="error"||!e||!a)return jsxRuntimeExports.jsx(ProfileShell,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-rose-700",children:ht})});const Mt=resolvePublicImageUrl(e.public_image_url);return jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-10 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-5xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("header",{className:"mb-8 flex items-center gap-5 border-b border-border pb-6",children:[jsxRuntimeExports.jsx("div",{className:"flex h-20 w-20 shrink-0 items-center justify-center overflow-hidden bg-ink/10 font-serif text-xl text-ink/45",children:Mt?jsxRuntimeExports.jsx("img",{src:Mt,alt:"",className:"h-full w-full object-cover"}):initialsFor(e.full_name)}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"EAF Pulse · My profile"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-4xl font-light sm:text-5xl",children:e.full_name}),jsxRuntimeExports.jsxs("p",{className:"mt-2 text-sm text-ink/55",children:[e.role," · ",e.cohort]})]})]}),ht&&jsxRuntimeExports.jsx("div",{className:"mb-6 border border-border bg-canvas-soft p-3 text-sm text-ink/70",children:ht}),jsxRuntimeExports.jsxs("form",{onSubmit:Tt,className:"space-y-8",children:[jsxRuntimeExports.jsx(ProfileSection,{title:"Public profile",description:"These details are visible on eaf.eu when your public profile is published. They also appear in the Pulse directory.",tone:"public",visibilityLabel:"Visible on the web",children:jsxRuntimeExports.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[jsxRuntimeExports.jsx(ProfileInput,{label:"Institution",value:a.current_institution,onChange:zt=>Ct("current_institution",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"Field",value:a.field,onChange:zt=>Ct("field",zt)}),jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-sm font-medium",children:"Country"}),jsxRuntimeExports.jsx(CountrySelect,{value:a.country,onChange:zt=>Ct("country",zt),className:"flex h-10 w-full border border-input bg-background px-3 py-2 text-sm text-ink focus:border-ink focus:outline-none"}),jsxRuntimeExports.jsx("span",{className:"mt-1.5 block text-xs text-ink/50",children:"Shown with its flag on your public profile."})]}),jsxRuntimeExports.jsxs("label",{className:"block md:col-span-2",children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-sm font-medium",children:"Public bio"}),jsxRuntimeExports.jsx(Textarea,{value:a.public_bio,onChange:zt=>Ct("public_bio",zt.target.value),rows:6})]})]})}),jsxRuntimeExports.jsx(ProfileSection,{title:"Internal Pulse profile",description:"Visible only to signed-in EAF fellows, alumni and team members â never on the public website.",tone
974:"internal",visibilityLabel:"EAF community only",children:jsxRuntimeExports.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[jsxRuntimeExports.jsxs("label",{className:"block md:col-span-2",children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-sm font-medium",children:"About me & how I can help"}),jsxRuntimeExports.jsx("p",{className:"mb-3 text-xs leading-5 text-ink/55",children:"Share what you are working on, what interests you, and what other fellows can contact you about."}),jsxRuntimeExports.jsx(Textarea,{value:a.community_intro,onChange:zt=>Ct("community_intro",zt.target.value),rows:6,placeholder:"Iâm working on⦠You can contact me about⦠Iâd be happy to help withâ¦"})]}),jsxRuntimeExports.jsx(ProfileInput,{label:"Previous institutions",value:a.previous_institutions,onChange:zt=>Ct("previous_institutions",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"Other fields",value:a.other_fields,onChange:zt=>Ct("other_fields",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"Email",type:"email",value:a.public_email,onChange:zt=>Ct("public_email",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"Phone number",type:"tel",value:a.phone,onChange:zt=>Ct("phone",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"LinkedIn",type:"url",value:a.public_linkedin_url,onChange:zt=>Ct("public_linkedin_url",zt)}),jsxRuntimeExports.jsx(ProfileInput,{label:"Website",type:"url",value:a.public_website_url,onChange:zt=>Ct("public_website_url",zt)})]})}),jsxRuntimeExports.jsx("div",{className:"flex justify-end border-t border-border pt-5",children:jsxRuntimeExports.jsx(Button,{type:"submit",disabled:dt,children:dt?"Savingâ¦":"Save profile"})})]}),jsxRuntimeExports.jsx("div",{className:"mt-8",children:jsxRuntimeExports.jsxs(ProfileSection,{title:"Current CV",description:"Your CV is never public on the web. Upload a current PDF and choose exactly how EAF may share it.",tone:"private",visibilityLabel:"Private · you control sharing",children:[g&&jsxRuntimeExports.jsxs("div",{className:"mb-5 flex flex-wrap items-center justify-between gap-4 border border-border bg-canvas px-4 py-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[jsxRuntimeExports.jsx(FileText,{className:"h-5 w-5 shrink-0 text-ink/55"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("div",{className:"truncate text-sm font-medium",children:g.file_name}),jsxRuntimeExports.jsx("div",{className:"text-xs text-ink/45",children:formatBytes(g.size_bytes)})]})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-2",children:[jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",size:"sm",onClick:At,children:[jsxRuntimeExports.jsx(Download,{className:"mr-1 h-4 w-4"}),"Open"]}),jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",size:"sm",onClick:Gt,disabled:xt,children:[jsxRuntimeExports.jsx(X$1,{className:"mr-1 h-4 w-4"}),"Remove"]})]})]}),jsxRuntimeExports.jsxs("label",{className:"block border border-dashed border-border bg-canvas px-4 py-5",children:[jsxRuntimeExports.jsxs("span",{className:"mb-2 flex items-center gap-2 text-sm font-medium",children:[jsxRuntimeExports.jsx(Upload,{className:"h-4 w-4"}),g?"Replace CV":"Upload CV"]}),jsxRuntimeExports.jsx("input",{ref:kt,type:"file",accept:"application/pdf,.pdf",onChange:zt=>{var Jt;return nt(((Jt=zt.target.files)==null?void 0:Jt[0])??null)},className:"block w-full text-sm text-ink/60 file:mr-4 file:border-0 file:bg-ink file:px-4 file:py-2 file:text-xs file:uppercase file:tracking-[0.14em] file:text-canvas"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-ink/45",children:"PDF only, up to 20 MB."})]}),jsxRuntimeExports.jsxs("div",{className:"mt-5 grid gap-3 sm:grid-cols-2",children:[jsxRuntimeExports.jsx(SharingOption,{checked:st,onChange:at,title:"Share with other EAF fellows",body:"Other signed-in fellows and alumni can open this CV from your profile."}),jsxRuntimeExports.jsx(SharingOption,{checked:it,onChange:ot,title:"Allow EAF to share with trusted partners",body:"EAF may send your CV selectively to trusted organisations for relevant opportunities. Partners do not receive direct Pulse access."})]}),jsxRuntimeExports.jsx("div",{className:"mt-5 flex justify-end",children:jsxRuntimeExports.jsx(Button,{type:"button",onClick:Pt,disabled:xt,children:xt?"Savingâ¦":rt?"Upload CV":"Save CV settings"})})]})})]})})},ProfileShell=({children:e})=>jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-6 py-24 text-ink",children:jsxRuntimeExports.jsx("div",{className:"mx-auto max-w-5xl",children:e})}),profileSectionStyles={default:{section:"border-border bg-canvas-soft/45",badge:"border-border bg-canvas text-ink/60",icon:null},public:{section:"border-sky-300/80 bg-sky-50/55",badge:"border-sky-300 bg-sky-100 text-sky-900",icon:jsxRuntimeExports.jsx(Earth,{className:"h-4 w-4"})},internal:{section:"border-amber-300/80 bg-amber-50/55",badge:"border-amber-300 bg-amber-100 text-amber-950",icon:jsxRuntimeExports.jsx(LockKeyhole,{className:"h-4 w-4"})},private:{section:"border-violet-300/80 bg-violet-50/45",badge:"border-violet-300 bg-vi
974olet-100 text-violet-950",icon:jsxRuntimeExports.jsx(ShieldCheck,{className:"h-4 w-4"})}},ProfileSection=({title:e,description:s,children:a,tone:c="default",visibilityLabel:g})=>{const et=profileSectionStyles[c];return jsxRuntimeExports.jsxs("section",{className:`border p-5 sm:p-7 ${et.section}`,children:[jsxRuntimeExports.jsxs("div",{className:"mb-6 border-b border-current/10 pb-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:e}),g&&jsxRuntimeExports.jsxs("span",{className:`inline-flex items-center gap-2 border px-3 py-1.5 text-[0.68rem] font-semibold uppercase tracking-[0.13em] ${et.badge}`,children:[et.icon,g]})]}),jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-6 text-ink/60",children:s})]}),a]})},ProfileInput=({label:e,value:s,onChange:a,type:c="text",hint:g})=>jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-2 block text-sm font-medium",children:e}),jsxRuntimeExports.jsx(Input,{type:c,value:s,onChange:et=>a(et.target.value)}),g&&jsxRuntimeExports.jsx("span",{className:"mt-1.5 block text-xs text-ink/50",children:g})]}),SharingOption=({checked:e,onChange:s,title:a,body:c})=>jsxRuntimeExports.jsxs("label",{className:"flex cursor-pointer items-start gap-3 border border-border bg-canvas px-4 py-3",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:e,onChange:g=>s(g.target.checked),className:"mt-1"}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"block text-sm font-medium",children:a}),jsxRuntimeExports.jsx("span",{className:"mt-1 block text-xs leading-5 text-ink/50",children:c})]})]}),clean=e=>e.trim()||null,toDraft=e=>{var s,a,c,g;return{current_institution:e.current_institution??"",previous_institutions:e.previous_institutions??"",field:e.field??"",other_fields:e.other_fields??"",country:e.country??"",public_bio:e.public_bio??"",public_email:((s=e.pulse_member_contacts)==null?void 0:s.email)??"",public_linkedin_url:((a=e.pulse_member_contacts)==null?void 0:a.linkedin_url)??"",public_website_url:((c=e.pulse_member_contacts)==null?void 0:c.website_url)??"",phone:((g=e.pulse_member_contacts)==null?void 0:g.phone)??"",community_intro:e.community_intro??""}},initialsFor=e=>e.split(" ").filter(Boolean).slice(0,2).map(s=>s[0]).join("").toUpperCase(),formatBytes=e=>e?e<1024*1024?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/1024/1024).toFixed(1)} MB`:"PDF",reports=[["Academy feedback","torino-2026-academy-feedback.pdf"],["Seminar feedback: Synthetic biology","torino-2026-synthetic-biology-feedback.pdf"],["Seminar feedback: Interpretable AI for Alzheimerâs","torino-2026-interpretable-ai-alzheimers-feedback.pdf"],["Seminar feedback: Understanding AI critically","torino-2026-understanding-ai-critically-feedback.pdf"],["Academy cost estimate","academy-2026-cost-estimate.pdf"]];function AcademyAdminReports(){const[e,s]=reactExports.useState(null),[a,c]=reactExports.useState(null),[g,et]=reactExports.useState("");reactExports.useEffect(()=>()=>{e&&URL.revokeObjectURL(e.url)},[e]);const rt=async(nt,st)=>{if(!(!supabase||a)){c(st),et("");try{const{data:at,error:it}=await supabase.storage.from("academy-admin-reports").download(`2026/2026-09-13/${st}`);if(it||!at)throw new Error("Could not open this report. Sign in as an active admin and complete MFA, then retry.");s({title:nt,url:URL.createObjectURL(at)})}catch(at){et(at instanceof Error?at.message:"Could not open report.")}finally{c(null)}}};return jsxRuntimeExports.jsxs("section",{className:"mt-12 border-t border-border pt-8","aria-label":"Admin reports",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admins only"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Academy reports"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-ink/50",children:"One-page summaries · 13 September 2026"}),jsxRuntimeExports.jsx("div",{className:"mt-5 divide-y divide-border border border-border",children:reports.map(([nt,st])=>jsxRuntimeExports.jsxs("button",{disabled:!!a,onClick:()=>void rt(nt,st),className:"flex w-full items-center gap-3 px-5 py-4 text-left text-sm hover:bg-canvas-soft disabled:opacity-60",children:[a===st?jsxRuntimeExports.jsx(LoaderCircle,{className:"h-4 w-4 animate-spin"}):jsxRuntimeExports.jsx(FileText,{className:"h-4 w-4"}),jsxRuntimeExports.jsx("span",{children:nt}),jsxRuntimeExports.jsx("span",{className:"ml-auto text-xs text-ink/45",children:"View PDF"})]},st))}),g&&jsxRuntimeExports.jsx("p",{role:"alert",className:"mt-3 text-sm text-red-800",children:g}),jsxRuntimeExports.jsx(Dialog,{open:!!e,onOpenChange:nt=>{nt||s(null)},children:jsxRuntimeExports.jsxs(DialogContent,{className:"max-w-5xl",children:[jsxRuntimeExports.jsx(DialogHeader,{children:jsxRuntimeExports.jsx(DialogTitle,{children:e==null?void 0:e.title})}),e&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("iframe",{title:e.title,src:e.url,className:"h-[72vh] w-full border-0"}),jsxRuntimeExports.jsx("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"text-sm underline",children:"Open PDF in a new tab"})]})]})})]})}const maxAcademyImage="/assets/max-academy-CHM526WR.webp",ducAcademyImage="/assets/duc-academy-B4cViiHJ.webp",friedrichAcademyImage="/assets/friedrich-academy-CLYk3AiK.webp",marloImage="/assets/marlo-xkWH4JOj.webp",seminars2026=[{id:"understanding-ai-critically",title:"Understanding AI Critically",leaders:"Prof. Kornelia KoÅczal & Matthias Busch",summary:"How AI systems workâand how bias, fairness, academic integrity, hidden labour, and environmental costs shape their use."},{id:"synthetic-biology",title:"Engineering Life with Synthetic Biology",leaders:"Caua Westmann",summary:"Design biological systems in an interdisciplinary mini-iGEM format spanning engineering, computation, ethics, and communication."},{id:"interpretable-ai-alzheimers",title:"Interpretable AI for Alzheimerâs Disease",leaders:"Alexander Tashevski-Beckwith & Joshua Sammet",summary:"Explore interpretable machine learning across genomics, medical imaging, drug discovery, and neurodegenerative disease."}],seminar2026ById=e=>seminars2026.find(s=>s.id===e),academies=[{year:"2026",title:"Torino Academy",meta:"22â30 August · Torino, Italy",status:"Schedule available",active:!0,image:academy2026Image}
974,{year:"2025",title:"Benediktbeuern Academy",meta:"Benediktbeuern, Bavaria",status:"Past academy",active:!1,image:academy2025Image},{year:"2024",title:"Mittenwald Academy",meta:"Mittenwald, Germany",status:"Past academy",active:!1,image:academy2024Image}],organizerContacts=[{name:"Max",phone:"+49 1512 4012642",phoneHref:"+4915124012642",image:maxAcademyImage},{name:"Duc",phone:"+49 170 7561591",phoneHref:"+491707561591",image:ducAcademyImage},{name:"Marlo",phone:"+41 78 666 79 95",phoneHref:"+41786667995",image:marloImage},{name:"Friedrich",phone:"+49 15229676216",phoneHref:"+4915229676216",image:friedrichAcademyImage}],PulseAcademies=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(AcademiesIndex,{})}),AcademiesIndex=()=>{const[e,s]=reactExports.useState(null);return reactExports.useEffect(()=>{getCurrentAcademyAccess().then(a=>s(canSeeCurrentAcademy(a))).catch(()=>s(!1))},[]),jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("header",{className:"mb-8 border-b border-border pb-6",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"EAF Pulse"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-4xl font-light sm:text-5xl",children:"Academies"}),jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-2xl text-sm leading-6 text-ink/55",children:"Academy information, participant actions, and seminar preferences."})]}),e===null?jsxRuntimeExports.jsx("div",{className:"h-28 animate-pulse border-y border-border bg-canvas-soft/35"}):jsxRuntimeExports.jsx("div",{className:"border-y border-border",children:academies.filter(a=>!a.active||e).map(a=>{const c=jsxRuntimeExports.jsxs("div",{className:"grid w-full grid-cols-[88px_1fr_auto] items-center gap-4 sm:grid-cols-[132px_90px_1fr_auto] sm:gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"relative aspect-[4/3] overflow-hidden bg-canvas-deep",children:[jsxRuntimeExports.jsx("img",{src:a.image,alt:"",className:"h-full w-full object-cover",loading:"lazy",decoding:"async"}),!a.active&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-canvas/35"})]}),jsxRuntimeExports.jsx("div",{className:"hidden font-serif text-3xl font-light text-ink/40 sm:block",children:a.year}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("div",{className:`mb-1 text-[10px] uppercase tracking-[0.14em] ${a.active?"text-emerald-800":"text-ink/35"}`,children:a.status}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-xl leading-tight sm:text-2xl",children:a.title}),jsxRuntimeExports.jsx("p",{className:"mt-1 truncate text-xs text-ink/50 sm:text-sm",children:a.meta})]}),a.active?jsxRuntimeExports.jsx(ArrowRight,{className:"h-5 w-5 text-ink/45 transition-transform group-hover:translate-x-1"}):jsxRuntimeExports.jsx(BookOpen,{className:"h-5 w-5 text-ink/20"})]});return a.active?jsxRuntimeExports.jsx(Link,{to:pulsePath("/academies/2026"),className:"group flex border-b border-border py-4 transition-colors last:border-b-0 hover:bg-canvas-soft/45 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ink/30 sm:px-4",children:c},a.year):jsxRuntimeExports.jsx("div",{"aria-disabled":"true",className:"flex border-b border-border py-4 text-ink/55 last:border-b-0 sm:px-4",children:c},a.year)})})]})},PulseAcademy2026=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(Academy2026Home,{})}),PulseAcademy2026Questionnaire=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(Academy2026Questionnaire,{})}),Academy2026Home=()=>{const[e,s]=reactExports.useState(!0),[a,c]=reactExports.useState(""),[g,et]=reactExports.useState(!1),[rt,nt]=reactExports.useState(null),[st,at]=reactExports.useState(null),[it,ot]=reactExports.useState(!1),[lt,ct]=reactExports.useState(!1),[dt,ut]=reactExports.useState(!1),[xt,gt]=reactExports.useState(!1),[ht,mt]=reactExports.useState(!1),[kt,Ct]=reactExports.useState([]),[Tt,Pt]=reactExports.useState([]),[At,Gt]=reactExports.useState(null),[Mt,zt]=reactExports.useState(null),[Jt,nr]=reactExports.useState(!1),[er,ur]=reactExports.useState(""),[qt,or]=reactExports.useState(!1);if(reactExports.useEffect(()=>{supabase&&(async()=>{try{const Bt=await getCurrentAcademyAccess();if(!Bt)throw new Error("Could not identify your Academy access.");
974if(et(Bt.isAdmin),nt(Bt.personId),at(Bt.attendanceStatus),Bt.isAdmin||Bt.attendanceStatus==="attending"){const{data:rr,error:lr}=await supabase.from("academy_schedule_items").select("*").eq("academy_year","2026").order("sort_order");if(lr)throw new Error(lr.message);Pt(rr??[])}if(Bt.attendanceStatus==="attending"){const{data:rr,error:lr}=await supabase.from("academy_seminar_preferences").select("id").eq("academy_year","2026").eq("person_id",Bt.personId).maybeSingle();if(lr)throw new Error(lr.message);ot(!!rr);const pr=await getAcademy2026FollowUpStatus(Bt.personId);ct(pr.seminarFeedbackComplete),ut(pr.postAcademyFeedbackComplete),gt(pr.reimbursementSubmitted);const{data:tr,error:hr}=await supabase.from("pulse_person_documents").select("id,person_id,document_type,bucket_id,object_path,file_name,mime_type,size_bytes").eq("person_id",Bt.personId).eq("document_type","passport").maybeSingle();if(hr)throw new Error(hr.message);Gt(tr??null),or(!tr)}else Bt.attendanceStatus==="not_attending"&&ot(!0);if(Bt.isAdmin){const{data:rr,error:lr}=await supabase.from("academy_participation").select("*").eq("academy_year","2026").order("submitted_at",{ascending:!1});if(lr)throw new Error(lr.message);const pr=rr??[];if(pr.length>0){const{data:tr,error:hr}=await supabase.from("people").select("id,full_name,cohort").in("id",pr.map(Rr=>Rr.person_id));if(hr)throw new Error(hr.message);const{data:Vt,error:sr}=await supabase.from("pulse_person_documents").select("person_id").eq("document_type","passport").in("person_id",pr.map(Rr=>Rr.person_id));if(sr)throw new Error(sr.message);const Lt=pr.filter(Rr=>Rr.attendance_status==="attending").map(Rr=>Rr.person_id),[Kt,mr,xr]=Lt.length>0?await Promise.all([supabase.from("academy_seminar_feedback_completions").select("person_id").eq("academy_year","2026").in("person_id",Lt),supabase.from("academy_post_feedback_completions").select("person_id").eq("academy_year","2026").in("person_id",Lt),supabase.from("academy_reimbursement_requests").select("person_id").eq("academy_year","2026").in("person_id",Lt)]):[{data:[],error:null},{data:[],error:null},{data:[],error:null}],cr=Kt.error??mr.error??xr.error;if(cr)throw new Error(cr.message);const jr=new Map((tr??[]).map(Rr=>[Rr.id,Rr])),kr=new Set((Vt??[]).map(Rr=>Rr.person_id)),Pr=new Set((Kt.data??[]).map(Rr=>Rr.person_id)),Dr=new Set((mr.data??[]).map(Rr=>Rr.person_id)),Vr=new Set((xr.data??[]).map(Rr=>Rr.person_id));Ct(pr.map(Rr=>{var Tr,fr;return{...Rr,personName:((Tr=jr.get(Rr.person_id))==null?void 0:Tr.full_name)??"Unknown fellow",cohort:((fr=jr.get(Rr.person_id))==null?void 0:fr.cohort)??"â",passportUploaded:kr.has(Rr.person_id),seminarFeedbackComplete:Pr.has(Rr.person_id),postAcademyFeedbackComplete:Dr.has(Rr.person_id),reimbursementSubmitted:Vr.has(Rr.person_id)}}))}}}catch(Bt){c(Bt instanceof Error?Bt.message:"Could not load the Academy home.")}finally{s(!1)}})()},[]),e)return jsxRuntimeExports.jsx(PulsePage,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading the 2026 Academyâ¦"})});if(!g&&st==="not_attending")return jsxRuntimeExports.jsx(Navigate,{to:pulsePath(),replace:!0});const Dt=kt.filter(Bt=>Bt.attendance_status==="attending").length,Ht=kt.filter(Bt=>Bt.attendance_status==="not_attending").length,Xt=kt.filter(Bt=>Bt.attendance_status==="attending").sort((Bt,rr)=>Bt.personName.localeCompare(rr.personName)),Zt=Tt.reduce((Bt,rr)=>{const lr=Bt.at(-1);return(lr==null?void 0:lr.date)===rr.event_date?lr.items.push(rr):Bt.push({date:rr.event_date,day:rr.day_label,items:[rr]}),Bt},[]),It=async()=>{if(!(!supabase||!rt||!Mt)){nr(!0),ur("");try{const Bt=Mt.name.toLowerCase().split(".").pop(),rr=Mt.type||(Bt==="pdf"?"application/pdf":Bt==="png"?"image/png":"image/jpeg");if(!new Set(["application/pdf","image/jpeg","image/png"]).has(rr)||!Bt||!["pdf","jpg","jpeg","png"].includes(Bt))throw new Error("Please choose a PDF, JPG or PNG file.");if(Mt.size>20*1024*1024)throw new Error("Passport files must be 20 MB or smaller.");const pr=`${rt}/passport.${Bt==="jpeg"?"jpg":Bt}`,tr=At==null?void 0:At.object_path,{error:hr}=await supabase.storage.from("pulse-private-documents").upload(pr,Mt,{upsert:!0,contentType:rr});if(hr)throw new Error(hr.message);const{data:Vt,error:sr}=await supabase.from("pulse_person_documents").upsert({person_id:rt,document_type:"passport",bucket_id:"pulse-private-documents",object_path:pr,file_name:Mt.name,mime_type:rr,size_bytes:Mt.size,share_with_fellows:!1,share_with_partners:!1},{onConflict:"person_id,document_type"}).select("id,person_id,document_type,bucket_id,object_path,file_name,mime_type,size_bytes").single();if(sr)throw new Error(sr.message);tr&&tr!==pr&&await supabase.storage.from("pulse-private-documents").remove([tr]),Gt(Vt),zt(null),ur("Passport copy uploaded securely."),or(!1)}catch(Bt){ur(Bt instanceof Error?Bt.message:"Could not upload the passport copy.")}finally{nr(!1)}}};return jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden border border-border",children:jsxRuntimeExports.jsxs("div",{className:"relative h-56 sm:h-72",children:[jsxRuntimeExports.jsx("img",{src:academy2026Image,alt:"Torino Academy 2026",className:"h-full w-full object-cover"}),jsxRuntimeExports.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-ink/65 via-ink/5 to-transparent"}),jsxRuntimeExports.jsxs("div",{className:"absolute inset-x-0 bottom-0 p-6 text-white sm:p-8",children:[jsxRuntimeExports.jsx("p",{className:"text-[10px] uppercase tracking-[0.18em] text-white/75",children:"Current academy · 22â30 August 2026"}),jsxRuntimeExports.jsx("h1",{className:"mt-2 font-serif text-4xl font-light sm:text-5xl",children:"Torino 2026"})]})]})}),a&&jsxRuntimeExports.jsx("div",{className:"mt-5 border border-rose-300 bg-rose-50 p-4 text-sm text-rose-800",children:a}),jsxRuntimeExports.jsxs("section",{className:"mt-8",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"Organizer contacts"}),jsxRuntimeExports.jsx("div",{className:"grid border-y border-border sm:grid-cols-2 lg:grid-cols-4",children:organizerContacts.map(Bt=>jsxRuntimeExports.jsxs("article",{className:"flex items-center gap-4 border-b border-border py-4 last:border-b-0 sm:border-r sm:px-4 sm:[&:nth-last-child(-n+2)]:border-b-0 lg:border-b-0 lg:last:border-r-0",children:[jsxRuntimeExports.jsx("img",{src:Bt.image,alt:Bt.name,className:"h-16 w-16 shrink-0 object-cover"}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-xl",children:Bt.name}),jsxRuntimeExports.jsx("a",{href:`tel:${Bt.phoneHref}`,className:"mt-1 block whitespace-nowrap text-sm text-ink/55 underline-offset-4 hover:text-ink hover:underline",children:Bt.phone})]})]},Bt.name))})]}),jsxRuntimeExports.jsxs("section",{className:"mt-10",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-3",children:"Your Academy"}),jsxRuntimeExports.jsxs("div",{className:"border-y border-border",children:[jsxRuntimeExports.jsxs("div",{"aria-disabled":"true",className:"grid gap-4 border-b border-border bg-ink/[0.025] py-5 text-ink/35 sm:grid-cols-[48px_1fr_auto] sm:items-center sm:px-4",children:[jsxRuntimeExports.jsx(ClipboardCheck,{className:"hidden h-7 w-7 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Pre-Academy Questionnaire"}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em]",children:[it&&jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),it?"Submitted · closed":"Closed"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm",children:"Seminar choices, food, health and support needs, emergency contact, and travel."})]})]}),jsxRuntimeExports.jsxs("div",{className:"border-b border-border py-5 sm:px-4",children:[jsxRuntimeExports.jsxs("button",{type:"button","aria-expanded":ht,onClick:()=>mt(Bt=>!Bt),className:"group grid w-full gap-4 text-left sm:grid-cols-[48px_1fr_auto] sm:items-center",children:[jsxRuntimeExports.jsx(CalendarDays,{className:"hidden h-7 w-7 text-ink/35 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Program"}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em] text-emerald-800",children:[jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),"Available"]})]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-sm text-ink/50",children:["All times are local Torino time. ",ht?"Hide the full schedule.":"Open the full schedule."]})]}),jsxRuntimeExports.jsx(ChevronDown,{className:`h-5 w-5 text-ink/40 transition-transform group-hover:text-ink ${ht?"rotate-180":""}`})]}),ht&&jsxRuntimeExports.jsx("div",{className:"mt-5 border-t border-border",children:Zt.map(Bt=>jsxRuntimeExports.jsxs("div",{className:"grid gap-2 border-b border-border py-4 last:border-b-0 sm:grid-cols-[150px_1fr]",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-lg",children:formatScheduleDate(Bt.date)}),jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/40",children:Bt.day})]}),jsxRuntimeExports.jsx("div",{className:"space-y-2",children:Bt.items.map(rr=>jsxRuntimeExports.jsxs("div",{className:"grid gap-1 text-sm sm:grid-cols-[110px_1fr]",children:[jsxRuntimeExports.jsx("span",{className:"font-medium text-ink/65",children:rr.time_label}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"text-ink",children:rr.title}),rr.detail?jsxRuntimeExports.jsxs("span",{className:"text-ink/50",children:[" · ",rr.detail]}):null]})]},rr.id))})]},Bt.date))})]}),st==="attending"&&jsxRuntimeExports.jsxs("div",{className:"grid gap-4 border-b border-border py-5 sm:grid-cols-[48px_1fr] sm:px-4",children:[At?jsxRuntimeExports.jsx(FileCheck2,{className:"hidden h-7 w-7 text-emerald-700 sm:block"}):jsxRuntimeExports.jsx(FileUp,{className:"hidden h-7 w-7 text-amber-700 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Passport copy"}),At?jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em] text-emerald-800",children:[jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),"Uploaded"]}):jsxRuntimeExports.jsx("span",{className:"text-[10px] uppercase tracking-[0.14em] text-rose-700",children:"Urgent · needed for check-in"})]}),At&&!qt&&jsxRuntimeExports.jsxs("p",{className:"mt-1 text-xs text-ink/45",children:[At.file_name," · stored securely"]})]}),At&&jsxRuntimeExports.jsxs("button",{type:"button","aria-expanded":qt,onClick:()=>{or(Bt=>!Bt),zt(null),ur("")},className:"group inline-flex shrink-0 items-center gap-2 text-[10px] uppercase tracking-[0.14em] text-ink/55 transition-colors hover:text-ink",children:["Replace",jsxRuntimeExports.jsx(ChevronDown,{className:`h-4 w-4 transition-transform ${qt?"rotate-180":""}`})]})]}),(!At||qt)&&jsxRuntimeExports.jsxs("div",{className:At?"mt-4 border-t border-border pt-4":"",children:[jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/50",children:"Upload a clear photo or PDF of the identity page. It is private and visible only to you and EAF administrators."}),jsxRuntimeExports.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx(Input,{type:"file",accept:"application/pdf,image/jpeg,image/png,.pdf,.jpg,.jpeg,.png",onCh
974ange:Bt=>{var rr;return zt(((rr=Bt.target.files)==null?void 0:rr[0])??null)},className:"max-w-md"}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:It,disabled:!Mt||Jt,children:Jt?"Uploadingâ¦":At?"Replace passport copy":"Upload passport copy"})]})]}),er&&jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-ink/60",children:er})]})]}),jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/seminar-feedback"),className:"group grid gap-4 border-b border-border bg-emerald-50/45 py-5 transition-colors hover:bg-emerald-50/75 sm:grid-cols-[48px_1fr_auto] sm:items-center sm:px-4",children:[jsxRuntimeExports.jsx(MessageSquareText,{className:"hidden h-7 w-7 text-emerald-800 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Post-Seminar Feedback"}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em] text-emerald-800",children:[lt&&jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),g&&st!=="attending"?"View responses":lt?"Submitted":"Due 14 September"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:g&&st!=="attending"?"Review anonymous feedback on the seminars.":lt?"Share anonymous feedback on your assigned seminar, what helped you learn, and what could be improved.":"Please complete by 14 September. Share what helped you learn and what could be improved."})]}),jsxRuntimeExports.jsx(ArrowRight,{className:"h-5 w-5 text-ink/40 transition-transform group-hover:translate-x-1"})]}),jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/post-academy-feedback"),className:"group grid gap-4 border-b border-border bg-emerald-50/45 py-5 transition-colors hover:bg-emerald-50/75 sm:grid-cols-[48px_1fr_auto] sm:items-center sm:px-4",children:[jsxRuntimeExports.jsx(ClipboardCheck,{className:"hidden h-7 w-7 text-emerald-800 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Post-Academy Feedback"}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em] text-emerald-800",children:[dt&&jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),g&&st!=="attending"?"View responses":dt?"Submitted":"Due 14 September"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:g&&st!=="attending"?"Review anonymous feedback on the programme, community, and personal impact.":dt?"Share anonymous feedback on the programme, community, personal impact, and future Academies.":"Please complete by 14 September. Share feedback on the programme, community, and personal impact."})]}),jsxRuntimeExports.jsx(ArrowRight,{className:"h-5 w-5 text-ink/40 transition-transform group-hover:translate-x-1"})]}),xt||lt&&dt||g?jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/reimbursement"),className:"group grid gap-4 bg-emerald-50/45 py-5 transition-colors hover:bg-emerald-50/75 sm:grid-cols-[48px_1fr_auto] sm:items-center sm:px-4",children:[jsxRuntimeExports.jsx(Receipt,{className:"hidden h-7 w-7 text-emerald-800 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Submit reimbursement"}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] uppercase tracking-[0.14em] text-emerald-800",children:[xt&&jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),xt?"Submitted":"Open now"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:"Add your travel expenses and choose whether to donate part of the reimbursement."})]}),jsxRuntimeExports.jsx(ArrowRight,{className:"h-5 w-5 text-ink/40 transition-transform group-hover:translate-x-1"})]}):jsxRuntimeExports.jsxs("div",{className:"grid gap-4 py-5 text-ink/35 sm:grid-cols-[48px_1fr_auto] sm:items-center sm:px-4",children:[jsxRuntimeExports.jsx(Receipt,{className:"hidden h-7 w-7 sm:block"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Submit reimbursement"}),jsxRuntimeExports.jsx("span",{className:"text-[10px] uppercase tracking-[0.14em]",children:"Complete feedback first"})]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm",children:"The reimbursement form unlocks after you submit both feedback questionnaires."})]})]})]})]}),g&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(AcademyAdminReports,{}),jsxRuntimeExports.jsxs("section",{className:"mt-12 border-t border-border pt-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Follow-up completion"})]}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap gap-4 text-sm text-ink/55",children:[jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Xt.filter(Bt=>Bt.seminarFeedbackComplete).length})," seminar"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Xt.filter(Bt=>Bt.postAcademyFeedbackComplete).length})," Academy"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Xt.filter(Bt=>Bt.reimbursementSubmitted).length})," reimbursement"]})]})]}),jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-3xl text-sm leading-6 text-ink/55",children:"Completion markers show who submitted each form, but are stored separately from anonymous feedback answers."}),jsxRuntimeExports.jsx("div",{className:"mt-5 overflow-x-auto border border-border",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{className:"border-b border-border bg-canvas-soft/55 text-[11px] uppercase tracking-[0.12em] text-ink/45",children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Fellow"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Cohort"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Post-Seminar"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Post-Academy"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Reimbursement"})]})}),jsxRuntimeExports.jsx("tbody",{children:Xt.map(Bt=>jsxRuntimeExports.jsxs("tr",{className:"border-b border-border last:border-0",children:[jsxRuntimeExports.jsx("td",{className:"px-4 py-3 font-medium",children:Bt.personName}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:Bt.cohort}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:jsxRuntimeExports.jsx(CompletionStatus,{complete:Bt.seminarFeedbackComplete})}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:jsxRuntimeExports.jsx(CompletionStatus,{complete:Bt.postAcademyFeedbackComplete})}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:jsxRuntimeExports.jsx(CompletionStatus,{complete:Bt.reimbursementSubmitted})})]},Bt.id))})]})})]}),jsxRuntimeExports.jsxs("section",{className:"mt-12 border-t border-border pt-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Attendance"})]}),jsxRuntimeExports.jsxs("div",{className:"flex gap-5 text-sm text-ink/55",children:[jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Dt})," attending"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Ht})," not attending"]})]})]}),kt.length>0?jsxRuntimeExports.jsx("div",{className:"mt-5 overflow-x-auto border border-border",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[1500px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{className:"border-b border-border bg-canvas-soft/55 text-[11px] uppercase tracking-[0.12em] text-ink/45",children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Person"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Cohort"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Status"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Passport"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Food"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Allergies / notes"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Health & support needs"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Emergency contact"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Arrival"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Departure"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Pickup"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Travel note"})]})}),jsxRuntimeExports.jsx("tbody",{children:kt.map(Bt=>jsxRuntimeExports.jsxs("tr",{className:"border-b border-border last:border-0",children:[jsxRuntimeExports.jsx("td",{className:"px-4 py-3 font-medium",children:Bt.personName}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:Bt.cohort}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:Bt.attendance_status==="attending"?"Attending":"Not attending"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:Bt.passportUploaded?"Uploaded":"Missing"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:foodPreferenceLabel(Bt.food_preference)}),jsxRuntimeExports.jsx("td",{className:"max-w-xs px-4 py-3 text-ink/55",children:[Bt.allergies,Bt.food_notes].filter(
974Boolean).join(" · ")||"â"}),jsxRuntimeExports.jsx("td",{className:"max-w-xs px-4 py-3 text-ink/55",children:combineSupportNeeds(Bt)||"â"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:Bt.emergency_contact_name?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[Bt.emergency_contact_name,Bt.emergency_contact_relationship?` (${Bt.emergency_contact_relationship})`:"",jsxRuntimeExports.jsx("br",{}),Bt.emergency_contact_phone]}):"â"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:formatAcademyDateTime(Bt.arrival_at)}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:formatAcademyDateTime(Bt.departure_at)}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:Bt.needs_airport_pickup==null?"â":Bt.needs_airport_pickup?"Yes":"No"}),jsxRuntimeExports.jsx("td",{className:"max-w-xs px-4 py-3 text-ink/55",children:Bt.travel_notes||"â"})]},Bt.id))})]})}):jsxRuntimeExports.jsx("p",{className:"mt-5 text-sm text-ink/50",children:"No attendance responses yet."})]})]})]})},CompletionStatus=({complete:e})=>jsxRuntimeExports.jsxs("span",{className:`inline-flex items-center gap-1.5 text-xs ${e?"text-emerald-800":"text-ink/40"}`,children:[e&&jsxRuntimeExports.jsx(Check,{className:"h-3.5 w-3.5"}),e?"Submitted":"Not yet"]}),Academy2026Questionnaire=()=>{const e=useNavigate(),[s,a]=reactExports.useState(null),[c,g]=reactExports.useState(!1),[et,rt]=reactExports.useState(null),[nt,st]=reactExports.useState(null),[at,it]=reactExports.useState(null),[ot,lt]=reactExports.useState(null),[ct,dt]=reactExports.useState(""),[ut,xt]=reactExports.useState(""),[gt,ht]=reactExports.useState(null),[mt,kt]=reactExports.useState(""),[Ct,Tt]=reactExports.useState(""),[Pt,At]=reactExports.useState(""),[Gt,Mt]=reactExports.useState(""),[zt,Jt]=reactExports.useState(""),[nr,er]=reactExports.useState(""),[ur,qt]=reactExports.useState(null),[or,Dt]=reactExports.useState(""),[Ht,Xt]=reactExports.useState(""),[Zt,It]=reactExports.useState([]),[Bt,rr]=reactExports.useState("loading"),[lr,pr]=reactExports.useState(""),[tr,hr]=reactExports.useState(!1);reactExports.useEffect(()=>{supabase&&(async()=>{try{const{data:cr,error:jr}=await supabase.auth.getUser();if(jr||!cr.user)throw new Error((jr==null?void 0:jr.message)??"Could not identify your account.");const{data:kr,error:Pr}=await supabase.from("pulse_profiles").select("person_id,is_admin").eq("user_id",cr.user.id).eq("account_status","active").single();if(Pr)throw new Error(Pr.message);a(kr.person_id),g(!!kr.is_admin);const{data:Dr,error:Vr}=await supabase.from("academy_participation").select("*").eq("academy_year","2026").eq("person_id",kr.person_id).maybeSingle();if(Vr)throw new Error(Vr.message);if(Dr){const Mr=Dr;rt(Mr.attendance_status),xt(Mr.allergies??""),ht(Mr.food_preference),kt(Mr.food_notes??""),Tt(Mr.emergency_contact_name??""),At(Mr.emergency_contact_relationship??""),Mt(Mr.emergency_contact_phone??""),Jt(toLocalDateTimeInput(Mr.arrival_at)),er(toLocalDateTimeInput(Mr.departure_at)),qt(Mr.needs_airport_pickup),Dt(Mr.travel_notes??""),Xt(combineSupportNeeds(Mr))}const{data:Rr,error:Tr}=await supabase.from("academy_seminar_preferences").select("*").eq("academy_year","2026").order("updated_at",{ascending:!1});if(Tr)throw new Error(Tr.message);const fr=Rr??[],Gr=fr.find(Mr=>Mr.person_id===kr.person_id);if(Gr&&(hr(!0),st(Gr.first_choice),it(Gr.second_choice),lt(Gr.third_choice),dt(Gr.preference_note??"")),kr.is_admin&&fr.length>0){const Mr=[...new Set(fr.map(pt=>pt.person_id))],{data:Fr,error:St}=await supabase.from("people").select("id,full_name,cohort").in("id",Mr);if(St)throw new Error(St.message);const ft=new Map((Fr??[]).map(pt=>[pt.id,pt]));It(fr.map(pt=>{var Nt,Rt;return{...pt,personName:((Nt=ft.get(pt.person_id))==null?void 0:Nt.full_name)??"Unknown fellow",cohort:((Rt=ft.get(pt.person_id))==null?void 0:Rt.cohort)??"â"}}))}rr("ready")}catch(cr){rr("error"),pr(cr instanceof Error?cr.message:"Could not load seminar preferences.")}})()},[]);const Vt=(cr,jr)=>{var Rr,Tr;pr("");const kr={first:nt,second:at,third:ot},Pr=kr[jr],Dr=(Rr=Object.entries(kr).find(([,fr])=>fr===cr))==null?void 0:Rr[0],Vr={...kr,[jr]:cr};if(Dr&&Dr!==jr)Vr[Dr]=Pr;else if(!Dr&&Pr){const fr=(Tr=Object.entries(kr).find(([Gr,Mr])=>Gr!==jr&&Mr===null))==null?void 0:Tr[0];fr&&(Vr[fr]=Pr)}
974st(Vr.first),it(Vr.second),lt(Vr.third)},sr=async()=>{if(!(!supabase||!s||et!=="attending")){rr("saving"),pr("");try{if(!nt||!at||!ot||!gt||!ut.trim()||!Ct.trim()||!Gt.trim()||!zt||!nr||ur===null){rr("error"),pr("Please complete every required field before submitting.");return}const{error:cr}=await supabase.from("academy_seminar_preferences").upsert({academy_year:"2026",person_id:s,first_choice:nt,second_choice:at,third_choice:ot,preference_note:ct.trim()||null},{onConflict:"academy_year,person_id"});if(cr)throw new Error(cr.message);const{error:jr}=await supabase.from("academy_participation").upsert({academy_year:"2026",person_id:s,attendance_status:"attending",allergies:ut.trim(),food_preference:gt,food_notes:mt.trim()||null,emergency_contact_name:Ct.trim(),emergency_contact_relationship:Pt.trim()||null,emergency_contact_phone:Gt.trim(),arrival_at:new Date(zt).toISOString(),departure_at:new Date(nr).toISOString(),needs_airport_pickup:ur,travel_notes:or.trim()||null,medical_needs:Ht.trim()||null,accessibility_needs:null,other_support_needs:null,submitted_at:new Date().toISOString()},{onConflict:"academy_year,person_id"});if(jr)throw new Error(jr.message);e(pulsePath(),{replace:!0})}catch(cr){rr("error"),pr(cr instanceof Error?cr.message:"Could not save the questionnaire.")}}},Lt=reactExports.useMemo(()=>seminars2026.map(cr=>({...cr,first:Zt.filter(jr=>jr.first_choice===cr.id).length,second:Zt.filter(jr=>jr.second_choice===cr.id).length,third:Zt.filter(jr=>jr.third_choice===cr.id).length})),[Zt]),Kt=[{rank:"first",number:"1",label:"First choice",value:nt},{rank:"second",number:"2",label:"Second choice",value:at},{rank:"third",number:"3",label:"Third choice",value:ot}],mr=!!(nt&&at&&ot&&ut.trim()&>&&Ct.trim()&&Gt.trim()&&zt&&nr&&ur!==null),xr=et==="attending"&&mr;return Bt==="loading"?jsxRuntimeExports.jsx(PulsePage,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading the 2026 Academyâ¦"})}):!c&&et!=="attending"?jsxRuntimeExports.jsx(Navigate,{to:pulsePath(),replace:!0}):jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsx(PulseFormHeader,{title:"Pre-Academy Questionnaire",submitted:tr,children:jsxRuntimeExports.jsx("p",{className:"mt-3 text-sm text-ink/50",children:"Please submit by Wednesday, 19 August. You can update your answers until then."})}),jsxRuntimeExports.jsxs("div",{className:"max-w-3xl",children:[et==="attending"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(QuestionnaireSection,{number:"1",title:"Seminar preferences",children:[jsxRuntimeExports.jsx("p",{className:"mb-4 text-sm text-ink/55",children:"Rank all three seminars in order of preference."}),jsxRuntimeExports.jsx("div",{className:"border-y border-border",children:Kt.map(cr=>jsxRuntimeExports.jsxs("label",{className:"grid grid-cols-[32px_1fr] gap-x-3 gap-y-2 border-b border-border py-3 last:border-b-0 sm:grid-cols-[36px_120px_1fr] sm:items-center",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-2xl font-light text-ink/30",children:cr.number}),jsxRuntimeExports.jsx("span",{className:"self-center text-[10px] uppercase tracking-[0.14em] text-ink/50",children:cr.label}),jsxRuntimeExports.jsxs("select",{value:cr.value??"",onChange:jr=>{jr.target.value&&Vt(jr.target.value,cr.rank)},className:"col-span-2 min-h-11 w-full border border-border bg-canvas px-3 text-sm text-ink outline-none transition-colors focus:border-ink/50 sm:col-span-1","aria-label":cr.label,children:[jsxRuntimeExports.jsx("option",{value:"",children:"Choose a seminar"}),seminars2026.map(jr=>jsxRuntimeExports.jsx("option",{value:jr.id,children:jr.title},jr.id))]})]},cr.rank))}),jsxRuntimeExports.jsxs("a",{href:isPulseHost()?"https://eaf.eu/academies/2026#seminars":"/academies/2026#seminars",target:"_blank",rel:"noreferrer",className:"flex items-center justify-between border-b border-border py-4 text-sm text-ink/65 transition-colors hover:text-ink",children:["Seminar descriptions ",jsxRuntimeExports.jsx(ArrowRight,{className:"h-4 w-4"})]}),jsxRuntimeExports.jsxs("label",{className:"mt-5 block",children:[jsxRuntimeExports.jsxs(FieldLabel,{children:["Seminar note ",jsxRuntimeExports.jsx(Optional,{})]}),jsxRuntimeExports.jsx(Textarea,{value:ct,onChange:cr=>dt(cr.target.value),rows:3,maxLength:2e3,placeholder:"A strong reason to takeâor not takeâa seminarâ¦",className:"mt-2"})]})]}),jsxRuntimeExports.jsxs(QuestionnaireSection,{number:"2",title:"Food",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-5 sm:grid-cols-2",children:[jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Food preference"}),jsxRuntimeExports.jsxs("select",{value:gt??"",onChange:cr=>ht(cr.target.value||null),className:"mt-2 min-h-10 w-full rounded-md border border-input bg-background px-3 text-sm text-ink",children:[jsxRuntimeExports.jsx("option",{value:"",children:"Select one"}),jsxRuntimeExports.jsx("option",{value:"no_preference",children:"No preference"}),jsxRuntimeExports.jsx("option",{value:"vegetarian",children:"Vegetarian"}),jsxRuntimeExports.jsx("option",{value:"vegan",children:"Vegan"}),jsxRuntimeExports.jsx("option",{value:"pescatarian",children:"Pescatarian"}),jsxRuntimeExports.jsx("option",{value:"other",children:"Other"})]})]}),jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Allergies"}),jsxRuntimeExports.jsx(Input,{value:ut,onChange:cr=>xt(cr.target.value),maxLength:1e3,placeholder:"None, or list them here",className:"mt-2"})]})]}),jsxRuntimeExports.jsxs("label",{className:"mt-5 block",children:[jsxRuntimeExports.jsxs(FieldLabel,{children:["Anything else we should know? ",jsxRuntimeExports.jsx(Optional,{})]}),jsxRuntimeExports.jsx(Textarea,{value:mt,onChange:cr=>kt(cr.target.value),rows:2,maxLength:1e3,className:"mt-2"})]})]}),jsxRuntimeExports.jsx(QuestionnaireSection,{number:"3",title:"Health, accessibility & other needs",children:jsxRuntimeExports.jsxs("label",{className:"block",children:[jsxRuntimeExports.jsxs(FieldLabel,{children:["Anything we should know? ",jsxRuntimeExports.jsx(Optional,{})]}),jsxRuntimeExports.jsx(Textarea,{value:Ht,onChange:cr=>Xt(cr.target.value),rows:5,maxLength:2e3,placeholder:"Medical situations, medication or storage requirements, accessibility or accommodation needs, or anything else that would help you participate comfortablyâ¦",className:"mt-2"})]})}),jsxRuntimeExports.jsxs(QuestionnaireSection,{number:"4",title:"Emergency contact",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-5 sm:grid-cols-2",children:[jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Name"}),jsxRuntimeExports.jsx(Input,{value:Ct,onChange:cr=>Tt(cr.target.value),maxLength:200,className:"mt-2"})]}),jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Phone number"}
974),jsxRuntimeExports.jsx(Input,{type:"tel",value:Gt,onChange:cr=>Mt(cr.target.value),maxLength:100,className:"mt-2"})]})]}),jsxRuntimeExports.jsxs("label",{className:"mt-5 block sm:max-w-[calc(50%-0.625rem)]",children:[jsxRuntimeExports.jsxs(FieldLabel,{children:["Relationship ",jsxRuntimeExports.jsx(Optional,{})]}),jsxRuntimeExports.jsx(Input,{value:Pt,onChange:cr=>At(cr.target.value),maxLength:200,placeholder:"e.g. parent, partner, friend",className:"mt-2"})]})]}),jsxRuntimeExports.jsxs(QuestionnaireSection,{number:"5",title:"Travel",children:[jsxRuntimeExports.jsxs("div",{className:"grid gap-5 sm:grid-cols-2",children:[jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Estimated arrival"}),jsxRuntimeExports.jsx(Input,{type:"datetime-local",value:zt,onChange:cr=>Jt(cr.target.value),className:"mt-2"})]}),jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Estimated departure"}),jsxRuntimeExports.jsx(Input,{type:"datetime-local",value:nr,onChange:cr=>er(cr.target.value),className:"mt-2"})]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-5",children:[jsxRuntimeExports.jsx(FieldLabel,{children:"Do you need airport pickup?"}),jsxRuntimeExports.jsx(PulseChoiceGroup,{className:"mt-2 sm:max-w-md",columns:2,value:ur===null?null:ur?"yes":"no",onChange:cr=>qt(cr==="yes"),options:[{value:"yes",label:"Yes"},{value:"no",label:"No"}]})]}),jsxRuntimeExports.jsxs("label",{className:"mt-5 block",children:[jsxRuntimeExports.jsxs(FieldLabel,{children:["Travel note ",jsxRuntimeExports.jsx(Optional,{})]}),jsxRuntimeExports.jsx(Textarea,{value:or,onChange:cr=>Dt(cr.target.value),rows:3,maxLength:1e3,placeholder:"Flight or train details, pickup context, delays, or anything else we should knowâ¦",className:"mt-2"})]})]})]}),lr&&jsxRuntimeExports.jsx(PulseFormMessage,{className:"mt-5",tone:Bt==="error"?"error":"success",children:lr}),jsxRuntimeExports.jsxs("div",{className:"mt-6 flex flex-wrap items-center justify-between gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-ink/45",children:"Required fields must be completed before submission."}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:sr,disabled:!xr||Bt==="saving",children:Bt==="saving"?"Savingâ¦":"Submit questionnaire"})]})]}),c&&jsxRuntimeExports.jsxs("section",{className:"mt-12 border-t border-border pt-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Voting results"})]}),jsxRuntimeExports.jsxs("span",{className:"text-sm text-ink/50",children:[Zt.length," response",Zt.length===1?"":"s"]})]}),jsxRuntimeExports.jsx("div",{className:"mt-6 grid gap-3 md:grid-cols-3",children:Lt.map(cr=>jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/35 p-4",children:[jsxRuntimeExports.jsx("div",{className:"text-sm font-medium leading-5",children:cr.title}),jsxRuntimeExports.jsxs("div",{className:"mt-4 flex gap-5 text-sm text-ink/60",children:[jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:cr.first})," first"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:cr.second})," second"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:cr.third})," third"]})]})]},cr.id))}),Zt.length>0&&jsxRuntimeExports.jsx("div",{className:"mt-5 overflow-x-auto border border-border",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[1000px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{className:"border-b border-border bg-canvas-soft/55 text-[11px] uppercase tracking-[0.12em] text-ink/45",children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Fellow"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Cohort"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"First"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Second"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Third"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Note"})]})}),jsxRuntimeExports.jsx("tbody",{children:Zt.map(cr=>jsxRuntimeExports.jsxs("tr",{className:"border-b border-border last:border-0",children:[jsxRuntimeExports.jsx("td",{className:"px-4 py-3 font-medium",children:cr.personName}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:cr.cohort}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:seminarTitle(cr.first_choice)}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/65",children:seminarTitle(cr.second_choice)}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:seminarTitle(cr.third_choice)}),jsxRuntimeExports.jsx("td",{className:"max-w-xs px-4 py-3 text-ink/55",children:cr.preference_note||"â"})]},cr.id))})]})})]})]})},QuestionnaireSection=({number:e,title:s,children:a})=>jsxRuntimeExports.jsxs("section",{className:"border-b border-border py-7 first:pt-0",children:[jsxRuntimeExports.jsxs("div",{className:"mb-5 flex items-baseline gap-3",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-2xl font-light text-ink/25",children:e}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl font-light",children:s})]}),a]}),FieldLabel=({children:e})=>jsxRuntimeExports.jsx("span",{className:"block text-[11px] uppercase tracking-[0.12em] text-ink/55",children:e}),Optional=()=>jsxRuntimeExports.jsx("span",{className:"ml-1 text-[9px] text-ink/35",children:"Optional"}),toLocalDateTimeInput=e=>{if(!e)return"";const s=new Date(e);return new Date(s.getTime()-s.getTimezoneOffset()*6e4).toISOString().slice(0,16)},formatAcademyDateTime=e=>e?new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"short",hour:"2-digit",minute:"2-digit"}).format(new Date(e)):"â",formatScheduleDate=e=>new Intl.DateTimeFormat("en-GB",{day:"numeric",month:"short"}).format(new Date(`${e}T12:00:00`)),combineSupportNeeds=e=>[e.medical_needs,e.accessibility_needs,e.other_support_needs].map(s=>
974s==null?void 0:s.trim()).filter(Boolean).join(` 975 976`),foodPreferenceLabel=e=>e?{no_preference:"No preference",vegetarian:"Vegetarian",vegan:"Vegan",pescatarian:"Pescatarian",other:"Other"}[e]:"â",seminarTitle=e=>{var s;return((s=seminars2026.find(a=>a.id===e))==null?void 0:s.title)??e},learningValueLabels=["Low","Limited","Useful","Very useful","Exceptional"],levelFitLabels=["Very poor fit","Poor fit","Mixed fit","Good fit","Excellent fit"],PulseAcademy2026SeminarFeedback=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(Academy2026SeminarFeedback,{})}),Academy2026SeminarFeedback=()=>{const[e,s]=reactExports.useState(!1),[a,c]=reactExports.useState(!0),[g,et]=reactExports.useState(null),[rt,nt]=reactExports.useState([]),[st,at]=reactExports.useState(null),[it,ot]=reactExports.useState(null),[lt,ct]=reactExports.useState(""),[dt,ut]=reactExports.useState(""),[xt,gt]=reactExports.useState(""),[ht,mt]=reactExports.useState(""),[kt,Ct]=reactExports.useState(""),[Tt,Pt]=reactExports.useState(""),[At,Gt]=reactExports.useState(!1),[Mt,zt]=reactExports.useState("loading"),[Jt,nr]=reactExports.useState("");reactExports.useEffect(()=>{supabase&&(async()=>{try{const Dt=await getCurrentAcademyAccess();if(!Dt||!Dt.isAdmin&&Dt.attendanceStatus!=="attending"){c(!1);return}if(s(Dt.isAdmin),Dt.attendanceStatus==="attending"){const rr=await getAcademy2026FeedbackStatus(Dt.personId);Gt(rr.seminarFeedbackComplete)}const{data:Ht,error:Xt}=await supabase.from("academy_seminar_assignments").select("person_id,seminar_id").eq("academy_year","2026").eq("person_id",Dt.personId).maybeSingle();if(Xt)throw new Error(Xt.message);et(Ht??null);const{data:Zt,error:It}=await supabase.from("academy_seminar_feedback").select("*").eq("academy_year","2026").order("submitted_at",{ascending:!1});if(It)throw new Error(It.message);const Bt=Zt??[];Dt.isAdmin&&nt(Bt)}catch(Dt){zt("error"),nr(Dt instanceof Error?Dt.message:"Could not load the questionnaire.");return}zt("ready")})()},[]);const er=async()=>{if(!(!supabase||!g||!st||!it)){zt("saving"),nr("");try{const{error:Dt}=await supabase.from("academy_seminar_feedback").insert({academy_year:"2026",seminar_id:g.seminar_id,learning_value:st,level_fit:it,key_learning:lt.trim(),helpful_element:dt.trim(),suggested_change:xt.trim(),point_needing_clarity:ht.trim()||null,topic_for_more_time:kt.trim()||null,additional_comments:Tt.trim()||null,submitted_at:new Date().toISOString()});if(Dt)throw new Error(Dt.message);Gt(!0),zt("ready"),nr("Thank youâyour anonymous feedback has been submitted.")}catch(Dt){zt("error"),nr(Dt instanceof Error?Dt.message:"Could not save your feedback.")}}},ur=!!(g&&st&&it&<.trim()&&dt.trim()&&xt.trim()&&ht.trim()&&kt.trim()&&Tt.trim()),qt=g?seminar2026ById(g.seminar_id):null,or=reactExports.useMemo(()=>seminars2026.map(Dt=>{const Ht=rt.filter(It=>It.seminar_id===Dt.id),Xt=Ht.length?Ht.reduce((It,Bt)=>It+Bt.learning_value,0)/Ht.length:null,Zt=Ht.filter(It=>It.level_fit>=4).length;return{...Dt,responses:Ht.length,averageValue:Xt,goodFit:Zt}}),[rt]);return Mt==="loading"?jsxRuntimeExports.jsx(PulsePage,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading seminar feedbackâ¦"})}):a?jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsxs(PulseFormHeader,{title:"Post-Seminar Feedback",submitted:At,children:[!At&&!e&&jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-2xl text-sm font-medium leading-6 text-ink/75",children:"Please complete by 14 September."}),jsxRuntimeExports.jsx("p",{className:"mt-1 max-w-2xl text-sm leading-6 text-ink/50",children:"About 6 minutes. Your answers are stored without your name, person ID, or Pulse profile link. EAF administrators can read responses but cannot see who submitted them."})]}),qt?jsxRuntimeExports.jsxs("div",{className:"max-w-3xl",children:[jsxRuntimeExports.jsxs("div",{className:"border-y border-border py-5",children:[jsxRuntimeExports.jsx("p",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Your seminar"}),jsxRuntimeExports.jsx("h2",{className:"mt-1 font-serif text-2xl",children:qt.title}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:qt.leaders})]}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"1",prompt:`How valuable was ${qt.title} for your learning?`,children:jsxRuntimeExports.jsx(PulseRatingScale,{value:st,onChange:at,labels:learningValueLabels,ariaLabel:"Seminar learning value"})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"2",prompt:"How well did the seminarâs assumed background fit the knowledge and experience you brought?",children:jsxRuntimeExports.jsx(PulseRatingScale,{value:it,onChange:ot,labels:levelFitLabels,ariaLabel:"Seminar background fit"})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"3",prompt:`Name one idea, method, or question from ${qt.title} that you expect to remember or use. What made it matter to you?`,children:jsxRuntimeExports.jsx(Textarea,{value:lt,onChange:Dt=>ct(Dt.target.value),maxLength:1500,rows:4,placeholder:"Be specific: name the idea and describe why it stayed with youâ¦"})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"4",prompt:"Name the specific activity, discussion, example, or explanation that helped you learn most. How did it help?",children:jsxRuntimeExports.jsx(Textarea,{value:dt,onChange:Dt=>ut(Dt.target.value),maxLength:1500,rows:4,placeholder:"For example: a particular exercise clarified⦠becauseâ¦"})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"5",prompt:`If ${qt.leaders} ran this seminar again, what one concrete change would improve it?`,children:jsxRuntimeExports.jsx(Textarea,{value:xt,onChange:Dt=>gt(Dt.target.value),maxLength:1500,rows:4,placeholder:"Name the topic, activity, pacing, or explanationâand what you would do instead. Write âNo changeâ if none."})}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border",children:[jsxRuntimeExports.jsx(PulseFormQuestion,{number:"6",prompt:"Where, if anywhere, did your background and the seminarâs assumptions not line up? Name any concepts or skills that felt already fam
976iliar, or difficult to access, and what would have helped.",children:jsxRuntimeExports.jsx(Textarea,{value:ht,onChange:Dt=>mt(Dt.target.value),maxLength:1500,rows:4,placeholder:"For example: the mathematical tools were familiar, but I needed more context for the biological concepts⦠Write âNo mismatchâ if none."})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"7",prompt:"What question, topic, or activity deserved more time? What would you have liked to do with that time?",children:jsxRuntimeExports.jsx(Textarea,{value:kt,onChange:Dt=>Ct(Dt.target.value),maxLength:1500,rows:4,placeholder:"Write âNothingâ if the allocation felt right."})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"8",prompt:"Is there anything else the seminar team should know that the questions above did not capture?",children:jsxRuntimeExports.jsx(Textarea,{value:Tt,onChange:Dt=>Pt(Dt.target.value),maxLength:1500,rows:4,placeholder:"Write âNothing elseâ if everything important is covered."})})]}),Jt&&jsxRuntimeExports.jsx(PulseFormMessage,{className:"mt-5",tone:Mt==="error"?"error":"success",children:Jt}),jsxRuntimeExports.jsxs("div",{className:"mt-6 flex flex-wrap items-center justify-between gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-xs text-ink/45",children:"All eight answers are required. Anonymous submissions cannot be edited later."}),jsxRuntimeExports.jsx(Button,{type:"button",onClick:er,disabled:!ur||Mt==="saving"||At,children:Mt==="saving"?"Submittingâ¦":At?"Submitted":"Submit anonymous feedback"})]})]}):e?null:jsxRuntimeExports.jsx("div",{className:"border border-amber-300 bg-amber-50 p-4 text-sm text-amber-900",children:"We could not find your seminar assignment. Contact an EAF organizer so we can correct it."}),e&&jsxRuntimeExports.jsxs("section",{className:`${qt?"mt-12":""} border-t border-border pt-8`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Seminar feedback"})]}),jsxRuntimeExports.jsxs("span",{className:"text-sm text-ink/50",children:[rt.length," response",rt.length===1?"":"s"]})]}),jsxRuntimeExports.jsx("div",{className:"mt-6 grid gap-3 md:grid-cols-3",children:or.map(Dt=>{var Ht;return jsxRuntimeExports.jsxs("article",{className:"border border-border bg-canvas-soft/35 p-4",children:[jsxRuntimeExports.jsx("h3",{className:"text-sm font-medium leading-5",children:Dt.title}),jsxRuntimeExports.jsxs("div",{className:"mt-4 flex gap-5 text-sm text-ink/60",children:[jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:((Ht=Dt.averageValue)==null?void 0:Ht.toFixed(1))??"â"})," / 5 value"]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:Dt.goodFit})," good fit"]})]}),jsxRuntimeExports.jsxs("p",{className:"mt-3 text-xs text-ink/45",children:[Dt.responses," response",Dt.responses===1?"":"s"]})]},Dt.id)})}),rt.length>0&&jsxRuntimeExports.jsx("div",{className:"mt-5 overflow-x-auto border border-border",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[1500px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{className:"border-b border-border bg-canvas-soft/55 text-[11px] uppercase tracking-[0.12em] text-ink/45",children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Response"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Seminar"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Value"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Backgroun
976d fit"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Key learning"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"What helped"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Change"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Further detail"})]})}),jsxRuntimeExports.jsx("tbody",{children:rt.map(Dt=>{var Ht;return jsxRuntimeExports.jsxs("tr",{className:"border-b border-border align-top last:border-0",children:[jsxRuntimeExports.jsx("td",{className:"px-4 py-3 font-medium",children:"Anonymous"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/65",children:(Ht=seminar2026ById(Dt.seminar_id))==null?void 0:Ht.title}),jsxRuntimeExports.jsxs("td",{className:"px-4 py-3",children:[Dt.learning_value,"/5"]}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3 text-ink/55",children:levelFitLabels[Dt.level_fit-1]}),jsxRuntimeExports.jsx("td",{className:"max-w-xs whitespace-pre-wrap px-4 py-3 text-ink/55",children:Dt.key_learning}),jsxRuntimeExports.jsx("td",{className:"max-w-xs whitespace-pre-wrap px-4 py-3 text-ink/55",children:Dt.helpful_element}),jsxRuntimeExports.jsx("td",{className:"max-w-xs whitespace-pre-wrap px-4 py-3 text-ink/55",children:Dt.suggested_change}),jsxRuntimeExports.jsx("td",{className:"max-w-xs whitespace-pre-wrap px-4 py-3 text-ink/55",children:[Dt.point_needing_clarity,Dt.topic_for_more_time,Dt.additional_comments].filter(Boolean).join(` 977 978`)||"â"})]},Dt.id)})})]})})]})]}):jsxRuntimeExports.jsx(Navigate,{to:pulsePath(),replace:!0})},programmeItems=[{id:"seminar",label:"Your seminar"},{id:"guided_city_tour",label:"Guided tour of Torino"},{id:"leadership_workshop",label:"Leadership workshop with Debora Comini"},{id:"city_hall_visit",label:"Turin City Hall visit"},{id:"lecturer_qa",label:"Q&A with the lecturers"},{id:"museum_visit",label:"Egyptian Museum visit"},{id:"reggia_day_trip",label:"Reggia di Venaria and Reggia Garden day trip"},{id:"free_time",label:"Informal/free time"}],communityItems=[{id:"welcome",label:"I felt welcome at the Academy."},{id:"myself",label:"I felt able to be myself."},{id:"safe",label:"I felt safe during the Academy."},{id:"different_opinion",label:"I felt comfortable expressing a different or unpopular opinion."},{id:"lasting_relationships",label:"I formed relationships I expect to continue after the Academy."}],teamItems=[{id:"approachable",label:"The EAF team was approachable."},{id:"respectful",label:"The EAF team treated participants with respect."},{id:"knew_whom_to_approach",label:"I knew whom to approach if I needed help."},{id:"received_support",label:"When I asked for help, I received the support I needed."},{id:"had_information",label:"I had the information I needed to take part in the Academy."}],ratingLabels=["Very poor","Poor","Neither poor nor good","Good","Excellent"],agreementLabels=["Strongly disagree","Disagree","Neither disagree nor agree","Agree","Strongly agree"],yesNoUnsureOptions=[{value:"no",label:"No"},{value:"not_sure",label:"Not sure"},{value:"yes",label:"Yes"}],createRatings=e=>Object.fromEntries(e.map(s=>[s.id,null])),initialState={overallRating:null,mostValuable:"",suggestedImprovement:"",programmeRatings:createRatings(programmeItems),afternoonAmount:null,structuredFreeBalance:null,missingFromProgramme:"",programmeComments:"",communityRatings:createRatings(communityItems),teamRatings:createRatings(teamItems),safetyResponse:null,safetyDetails:"",communitySupportComments:"",optionsInfluenced:null,optionsInfluencedDetails:"",achievementScopeChange:null,achievementScopeDetails:"",applicationMotivation:"",applicationHesitation:null,applicationHesitationDetails:"",futureCommunities:"",attendedPreviousAcademy:null,previousAcademyComparison:null,betterThisTime:"",betterBefore:"",quantCareerLikelihoodChange:null,quantViewChange:"",afternoonTooLong:null,afternoonTooLongDetails:"",potentialCollaborator:null,potentialCollaboratorDetails:"",pursuitPrioritiesChanged:null,pursuitPrioritiesDetails:"",worthwhileChanged:null,worthwhileChangedDetails:"",admiredSomeone:null,admiredQuality:"",desiredQualityOrHabit:"",acceleratedAction:null,nextThreeMonths:"",websiteClarity:""},textOrNull=e=>e.trim()||null,allAnswered=e=>Object.values(e).every(s=>s!==null),PulseAcademy2026PostFeedback=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(PostAcademyFeedback,{})}),PostAcademyFeedback=({preview:e=!1})=>{const[s,a]=reactExports.useState(initialState),[c,g]=reactExports.useState("core"),[et,rt]=reactExports.useState(!1),[nt,st]=reactExports.useState(e),[at,it]=reactExports.useState(!0),[ot,lt]=reactExports.useState([]),[ct,dt]=reactExports.useState(!1),[ut,xt]=reactExports.useState(e?"ready":"loading"),[gt,ht]=reactExports.useState("");reactExports.useEffect(()=>{e||supabase&&(async()=>{try{const At=await getCurrentAcademyAccess();if(!At||!At.isAdmin&&At.attendanceStatus!=="attending"){it(!1),xt("ready");return}if(rt(At.isAdmin),st(At.attendanceStatus==="attending"),At.attendanceStatus==="attending"){const{data:Gt,error:Mt}=await supabase.from("academy_post_feedback_completions").select("academy_year").eq("academy_year","2026").eq("person_id",At.personId).maybeSingle();if(Mt)throw new Error(Mt.message);dt(!!Gt)}if(At.isAdmin){const{data:Gt,error:Mt}=await supabase.from("academy_post_feedback").select("*").eq("academy_year","2026").order("submitted_at",{ascending:!1});if(Mt)throw new Error(Mt.message);lt(Gt??[])}xt("ready")}catch(At){xt("error"),ht(At instanceof Error?At.message:"Could not load the questionnaire.")}})()},[e]);const mt=(At,Gt)=>{a(Mt=>({...Mt,[At]:Gt}))},kt=(At,Gt,Mt)=>{a(zt=>({...zt,[At]:{...zt[At],[Gt]:Mt}}))},Ct=!!(s.overallRating&&allAnswered(s.programmeRatings)&&s.afternoonAmount&&s.structuredFreeBalance&&allAnswered(s.communityRatings)&&allAnswered(s.teamRatings)&&s.safetyResponse&&s.optionsInfluenced&&s.achievementScopeChange&&s.attendedPreviousAcademy!==null&&(s.attendedPreviousAcademy?s.previousAcademyComparison:s.applicationHesitation)&&s.quantCareerLikelihoodChange),Tt=async At=>{if(!(!supabase||!Ct||!nt)){xt("saving"),ht("");try{const{error:Gt}=await supabase.from("academy_post_feedback").insert({academy_year:"2026",overall_rating:s.overallRating,most_valuable:textOrNull(s.mostValuable),suggested_improvement:textOrNull(s.suggestedImprovement),programme_ratings:s.programmeRatings,afternoon_amount:s.afternoonAmount,structured_free_balance:s.structuredFreeBalance,missing_from_programme:textOrNull(s.missingFromProgramme),programme_comments:textOrNull(s.programmeComments),community_ratings:s.communityRatings,team_ratings:s.teamRatings,safety_response:s.safetyResponse,s
978afety_details:textOrNull(s.safetyDetails),community_support_comments:textOrNull(s.communitySupportComments),options_influenced:s.optionsInfluenced,options_influenced_details:textOrNull(s.optionsInfluencedDetails),achievement_scope_change:s.achievementScopeChange,achievement_scope_details:textOrNull(s.achievementScopeDetails),application_motivation:s.attendedPreviousAcademy===!1?textOrNull(s.applicationMotivation):null,application_hesitation:s.attendedPreviousAcademy===!1?s.applicationHesitation:"no",application_hesitation_details:s.attendedPreviousAcademy===!1?textOrNull(s.applicationHesitationDetails):null,future_communities:textOrNull(s.futureCommunities),attended_previous_academy:s.attendedPreviousAcademy,previous_academy_comparison:s.attendedPreviousAcademy?s.previousAcademyComparison:null,better_this_time:s.attendedPreviousAcademy?textOrNull(s.betterThisTime):null,better_before:s.attendedPreviousAcademy?textOrNull(s.betterBefore):null,attended_gresearch:!0,quant_career_likelihood_change:s.quantCareerLikelihoodChange,quant_view_change:textOrNull(s.quantViewChange),extended_completed:At,afternoon_too_long:At?s.afternoonTooLong:null,afternoon_too_long_details:At?textOrNull(s.afternoonTooLongDetails):null,continuing_connections:At?s.potentialCollaborator:null,continuing_connections_details:At?textOrNull(s.potentialCollaboratorDetails):null,pursuit_priorities_changed:At?s.pursuitPrioritiesChanged:null,pursuit_priorities_details:At?textOrNull(s.pursuitPrioritiesDetails):null,worthwhile_changed:At?s.worthwhileChanged:null,worthwhile_changed_details:At?textOrNull(s.worthwhileChangedDetails):null,admired_someone:At?s.admiredSomeone:null,admired_quality:At?textOrNull(s.admiredQuality):null,desired_quality_or_habit:At?textOrNull(s.desiredQualityOrHabit):null,accelerated_action:At?s.acceleratedAction:null,next_three_months:At?textOrNull(s.nextThreeMonths):null,website_clarity:At?textOrNull(s.websiteClarity):null,submitted_at:new Date().toISOString()});if(Gt)throw new Error(Gt.message);dt(!0),xt("ready"),ht("Thank youâyour anonymous feedback has been submitted."),window.scrollTo({top:0,behavior:"smooth"})}catch(Gt){xt("error"),ht(Gt instanceof Error?Gt.message:"Could not save your feedback.")}}},Pt=reactExports.useMemo(()=>{const At=ot.length?ot.reduce((zt,Jt)=>zt+Jt.overall_rating,0)/ot.length:null,Gt=ot.filter(zt=>["a_little_greater","much_greater"].includes(zt.achievement_scope_change)).length,Mt=ot.filter(zt=>["a_little_more_likely","much_more_likely"].includes(zt.quant_career_likelihood_change??"")).length;return{average:At,greaterScope:Gt,moreLikelyQuant:Mt}},[ot]);return ut==="loading"?jsxRuntimeExports.jsx(PulsePage,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading post-Academy feedbackâ¦"})}):at?jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsx(PulseFormHeader,{title:"Post-Academy Feedback",submitted:ct,children:!ct&&nt&&(c==="core"||c==="choice")&&jsxRuntimeExports.jsxs("div",{className:"mt-5 max-w-3xl border-l-4 border-ink bg-ink/[0.04] px-4 py-3 text-sm leading-6 text-ink/80",children:[jsxRuntimeExports.jsx("p",{className:"font-medium",children:"Please complete by 14 September."}),jsxRuntimeExports.jsx("p",{children:c==="core"?"All feedback is anonymous. The required section takes 5â7 minutes; written answers are optional. Pulse records only completion so it can unlock reimbursement.":"All feedbackâincluding the optional reflectionâis anonymous. Pulse records only completion so it can unlock reimbursement."})]})}),ct&&nt?jsxRuntimeExports.jsxs("div",{className:"max-w-3xl border border-emerald-300 bg-emerald-50 p-6 text-emerald-950",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Thank you for your feedback."}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm leading-6",children:"Your response has been submitted anonymously."}),jsxRuntimeExports.jsx(Button,{asChild:!0,className:"mt-5",children:jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/reimbursement"),children:["Request reimbursement ",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-2 h-4 w-4"})]})})]}):nt?jsxRuntimeExports.jsxs("div",{className:"max-w-3xl",children:[c==="core"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Overall impression"}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"1",prompt:"Overall, how would you rate the Academy?",children:jsxRuntimeExports.jsx(PulseRatingScale,{value:s.overallRating,onChange:At=>mt("overallRating",At),labels:ratingLabels,ariaLabel:"Overall Academy rating"})}),jsxRuntimeExports.jsx(TextQuestion,{number:"2",prompt:"What was the most valuable part of the Academy for you?",value:s.mostValuable,onChange:At=>
978mt("mostValuable",At)}),jsxRuntimeExports.jsx(TextQuestion,{number:"3",prompt:"What is the one change that would most improve the next Academy?",value:s.suggestedImprovement,onChange:At=>mt("suggestedImprovement",At)}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Programme and activities"}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"4",prompt:"Please rate the following parts and activities of the Academy.",children:jsxRuntimeExports.jsx(MatrixScale,{items:programmeItems,ratings:s.programmeRatings,onChange:(At,Gt)=>kt("programmeRatings",At,Gt),labels:ratingLabels,zeroLabel:"Did not attend or use"})}),jsxRuntimeExports.jsx(ScaleChoiceQuestion,{number:"5",prompt:"Thinking specifically about the afternoon programme, how did the amount of scheduled content feel?",value:s.afternoonAmount,onChange:At=>mt("afternoonAmount",At),options:[{value:"much_too_little",label:"Much too little"},{value:"a_little_too_little",label:"A little too little"},{value:"about_right",label:"About right"},{value:"a_little_too_much",label:"A little too much"},{value:"much_too_much",label:"Much too much"}],secondaryOption:{value:"did_not_attend",label:"Did not attend"}}),jsxRuntimeExports.jsx(ScaleChoiceQuestion,{number:"6",prompt:"How did the balance between structured activities and free time feel?",value:s.structuredFreeBalance,onChange:At=>mt("structuredFreeBalance",At),options:[{value:"much_too_structured",label:"Much too much structured time"},{value:"a_little_too_structured",label:"A little too much structured time"},{value:"about_right",label:"About right"},{value:"a_little_too_much_free",label:"A little too much free time"},{value:"much_too_much_free",label:"Much too much free time"}]}),jsxRuntimeExports.jsx(TextQuestion,{number:"7",prompt:"What, if anything, was missing from the programme?",value:s.missingFromProgramme,onChange:At=>mt("missingFromProgramme",At)}),jsxRuntimeExports.jsx(TextQuestion,{prompt:"Is there anything else about the programme or individual activities that your ratings did not capture?",value:s.programmeComments,onChange:At=>mt("programmeComments",At),placeholder:"For example, something especially effective, frustrating, too short or long, or worth repeating."}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Community and support"}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"8",prompt:"How much do you agree with the following statements about the Academy community?",children:jsxRuntimeExports.jsx(MatrixScale,{items:communityItems,ratings:s.communityRatings,onChange:(At,Gt)=>kt("communityRatings",At,Gt),labels:agreementLabels})}),jsxRuntimeExports.jsx(PulseFormQuestion,{number:"9",prompt:"How much do you agree with the following statements about the EAF team?",children:jsxRuntimeExports.jsx(MatrixScale,{items:teamItems,ratings:s.teamRatings,onChange:(At,Gt)=>kt("teamRatings",At,Gt),labels:agreementLabels,zeroLabel:"Not applicable"})}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"10",prompt:"Was there any time during the Academy when you did not feel safe?",value:s.safetyResponse,onChange:At=>mt("safetyResponse",At),options:[{value:"no",label:"No"},{value:"yes",label:"Yes"},{value:"prefer_not_to_say",label:"Prefer not to say"}],children:s.safetyResponse&&s.safetyResponse!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.safetyDetails,onChange:At=>mt("safetyDetails",At),placeholder:"If you would like to tell us what happened, you can do so hereâ¦"})}),jsxRuntimeExports.jsx(TextQuestion,{prompt:"Is there anything else about the atmosphere, community, or support from the EAF team that the questions above did not capture?",value:s.communitySupportComments,onChange:At=>mt("communitySupportComments",At),placeholder:"For example, a moment when you felt particularly welcome, excluded, supported, or unsure whom to approach."}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Influence and outlook"}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"11",prompt:"Has the Academy influenced any options you are considering for your studies, research, career, or a project you might pursue?",value:s.optionsInfluenced,onChange:At=>mt("optionsInfluenced",At),options:yesNoUnsureOptions,children:s.optionsInfluenced&&s.optionsInfluenced!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.optionsInfluencedDetails,onChange:At=>mt("optionsInfluencedDetails",At),placeholder:"Which options are you now considering, and how did the Academy influence this?"})}),jsxRuntimeExports.jsx(ScaleChoiceQuestion,{number:"12",prompt:"Compared with before the Academy, how ambitious are the goals or projects you would seriously consider pursuing now?",value:s.achievementScopeChange,onChange:At=>mt("achievementScopeChange",At),options:[{value:"much_smaller",label:"Much less ambitious"},{value:"a_little_smaller",label:"A little less ambitious"},{value:"about_the_same",label:"About the same"},{value:"a_little_greater",label:"A little more ambitious"},{value:"much_greater",label:"Much more ambitious"}],secondaryOption:{value:"not_sure",label:"Not sure"},children:jsxRuntimeExports.jsx(OptionalTextarea,{value:s.achievementScopeDetails,onChange:At=>mt("achievementScopeDetails",At),placeholder:"Optional: What changed? You can name a goal or project you would now considerâor no longer considerâand what made the difference."})}),jsxRuntimeExports.jsx(ScaleChoiceQuestion,{number:"13",prompt:"Compared with before the G-Research workshop, how likely are you now to consider a career or internship in quantitative finance?",value:s.quantCareerLikelihoodChange,onChange:At=>mt("quantCareerLikelihoodChange",At),options:[{value:"much_less_likely",label:"Much less likely"},{value:"a_little_less_likely",label:"A little less likely"},{value:"no_change",label:"Neither more nor less likely"},{value:"a_little_more_likely",label:"A little more likely"},{value:"much_more_likely",label:"Much more likely"}],secondaryOption:{value:"not_sure",label:"Not sure"},children:jsxRuntimeExports.jsx(OptionalTextarea,{value:s.quantViewChange,onChange:At=>mt("quantViewChange",At),placeholder:"What, if anything, changed in how you think about quantitative finance?"})}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Previous experience and applying"}),jsxRuntimeExports.jsx(ChoiceQuestion,{prompt:"Have you attended an EAF Academy before this one?",value:s.attendedPreviousAcademy===null?null:s.attendedPreviousAcademy?"yes":"no",onChange:At=>mt("attendedPreviousAcademy",At==="yes"),options:[{value:"no",label:"No"},{value:"yes",label:"Yes"}],children:s.attendedPreviousAcademy&&jsxRuntimeExports.jsxs("div",{className:"mt-5 space-y-5 border-l-2 border-border pl-4",children:[jsxRuntimeExports.jsx(ScaleChoiceQuestion,{prompt:"Compared with the most recent EAF Academy you attended, how was this Academy overall?",value:s.previousAcademyComparison,onChange:At=>mt("previousAcademyComparison",At),options:[{value:"much_worse",label:"Much worse"},{value:"a_little_worse",label:"A little worse"},{value:"about_the_same",label:"About the same"},{value:"a_little_better",label:"A little better"},{value:"much_better",label:"Much better"}]}),jsxRuntimeExports.jsx(OptionalTextarea,{value:s.betterThisTime,onChange:At=>mt("betterThisTime",At),placeholder:"What did we do better this time?"}),jsxRuntimeExports.jsx(OptionalTextarea,{value:s.betterBefore,onChange:At=>mt("betterBefore",At),placeholder:"What was better at the previous Academy?"})]})}),s.attendedPreviousAcademy===!1&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(TextQuestion,{number:"14",prompt:"What ultimately made you decide to apply to EAF?",value:s.applicationMotivation,onChange:At=>mt("applicationMotivation",At),placeholder:"If a particular person, message, deadline, or part of the programme turned interest into an application, please mention it."}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"15",prompt:"Before applying, did anything make you hesitate or feel sceptical about the Academy?",value:s.applicationHesitation,onChange:At=>mt("applicationHesitation",At),options:yesNoUnsureOptions,children:s.applicationHesitation&&s.applicationHesitation!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.applicationHesitationDetail
978s,onChange:At=>mt("applicationHesitationDetails",At),placeholder:"What gave you pause?"})})]}),jsxRuntimeExports.jsx(TextQuestion,{number:"16",prompt:"Think of one or two places or communities where you have met people who would thrive at an EAF Academy but might not currently hear about it. Where are they, and how could EAF reach them?",value:s.futureCommunities,onChange:At=>mt("futureCommunities",At),placeholder:"For example: a university, school, programme, competition, organisation, online community, region, person, or network."}),jsxRuntimeExports.jsxs("div",{className:"mt-8 border border-border bg-canvas-soft/35 p-5",children:[!Ct&&jsxRuntimeExports.jsx("p",{className:"mb-3 text-sm text-amber-800",children:"Please answer every multiple-choice question before continuing. Written answers remain optional."}),jsxRuntimeExports.jsx(Button,{type:"button",disabled:!Ct,onClick:()=>{g("choice"),window.scrollTo({top:0,behavior:"smooth"})},children:"Complete essential feedback"})]})]}),c==="choice"&&jsxRuntimeExports.jsxs("div",{className:"border-y border-border py-9",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Required part complete"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl font-light",children:"Could you give us three more minutes?"}),jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-xl text-sm leading-6 text-ink/75",children:"Weâd be very grateful if you continued with eight optional reflection questions. They help us understand what the Academy changed beyond the programme itself."}),jsxRuntimeExports.jsxs("div",{className:"mt-6 flex flex-wrap gap-3",children:[jsxRuntimeExports.jsx(Button,{type:"button",onClick:()=>{g("extended"),window.scrollTo({top:0,behavior:"smooth"})},children:"Continue to optional reflection"}),jsxRuntimeExports.jsx(Button,{type:"button",variant:"ghost",onClick:()=>void Tt(!1),disabled:ut==="saving",children:ut==="saving"?"Submittingâ¦":"Submit without optional reflection"})]})]}),c==="extended"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SurveyIntro,{title:"Optional reflection",detail:"All eight questions are optional. Brief answers are welcome."}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Experience and connections"}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"1",prompt:"Was there an afternoon session or activity that felt too long?",value:s.afternoonTooLong,onChange:At=>mt("afternoonTooLong",At),options:yesNoUnsureOptions,children:s.afternoonTooLong==="yes"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.afternoonTooLongDetails,onChange:At=>mt("afternoonTooLongDetails",At),placeholder:"Which one?"})}),jsxRuntimeExports.jsx(ScaleChoiceQuestion,{number:"2",prompt:"Did you meet someone at the Academy you would seriously consider building, researching, or working on a difficult problem with?",value:s.potentialCollaborator,onChange:At=>mt("potentialCollaborator",At),options:[{value:"no",label:"No"},{value:"maybe",label:"Maybe"},{value:"yes",label:"Yes"}],children:s.potentialCollaborator&&s.potentialCollaborator!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.potentialCollaboratorDetails,onChange:At=>mt("potentialCollaboratorDetails",At),placeholder:"Optional: What kind of work or collaboration could you imagine? Naming the person is not necessary."})}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Direction, character, and action"}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"3",prompt:"Did the Academy change which problems or opportunities you consider worth pursuing?",value:s.pursuitPrioritiesChanged,onChange:At=>mt("pursuitPrioritiesChanged",At),options:yesNoUnsureOptions,children:s.pursuitPrioritiesChanged&&s.pursuitPrioritiesChanged!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.pursuitPrioritiesDetails,onChange:At=>mt("pursuitPrioritiesDetails",At),placeholder:"What seems more or less worth pursuing now, and why?"})}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"4",prompt:"Did the Academy change how you think about what makes an achievement, career, or project worthwhile?",value:s.worthwhileChanged,onChange:At=>mt("worthwhileChanged",At),options:yesNoUnsureOptions,children:s.worthwhileChanged&&s.worthwhileChanged!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.worthwhileChangedDetail
978s,onChange:At=>mt("worthwhileChangedDetails",At),placeholder:"What changed?"})}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"5",prompt:"Was there someone at the Academy whose way of thinking or acting you particularly admired?",value:s.admiredSomeone,onChange:At=>mt("admiredSomeone",At),options:yesNoUnsureOptions,children:s.admiredSomeone==="yes"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.admiredQuality,onChange:At=>mt("admiredQuality",At),placeholder:"What did you admire? Naming the person is optional."})}),jsxRuntimeExports.jsx(TextQuestion,{number:"6",prompt:"Is there a quality, habit, or way of acting that you would like to develop after the Academy? Why that one?",value:s.desiredQualityOrHabit,onChange:At=>mt("desiredQualityOrHabit",At)}),jsxRuntimeExports.jsx(ChoiceQuestion,{number:"7",prompt:"Is there something you now expect to start, decide, or pursue sooner because of the Academy?",value:s.acceleratedAction,onChange:At=>mt("acceleratedAction",At),options:yesNoUnsureOptions,children:s.acceleratedAction&&s.acceleratedAction!=="no"&&jsxRuntimeExports.jsx(OptionalTextarea,{value:s.nextThreeMonths,onChange:At=>mt("nextThreeMonths",At),placeholder:"Optional: What is it, and what is the first step you could take?"})}),jsxRuntimeExports.jsx(SurveySectionHeading,{title:"Future applicants"}),jsxRuntimeExports.jsx(TextQuestion,{number:"8",prompt:"Now that you have attended, whatâif anythingâshould the EAF website explain or show more clearly to future applicants?",value:s.websiteClarity,onChange:At=>mt("websiteClarity",At),placeholder:"What would help someone understand what the Academy is really like and decide whether applying is worth their time?"}),jsxRuntimeExports.jsxs("div",{className:"mt-8 flex flex-wrap items-center gap-3 border-t border-border pt-6",children:[jsxRuntimeExports.jsx(Button,{type:"button",onClick:()=>void Tt(!0),disabled:ut==="saving",children:ut==="saving"?"Submittingâ¦":"Submit anonymous feedback"}),jsxRuntimeExports.jsxs(Button,{type:"button",variant:"ghost",onClick:()=>g("choice"),children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Back"]})]})]}),gt&&jsxRuntimeExports.jsx(PulseFormMessage,{className:"mt-5",tone:ut==="error"?"error":"success",children:gt})]}):null,et&&jsxRuntimeExports.jsx(AdminResults,{results:ot,summary:Pt,className:nt?"mt-14":""})]}):jsxRuntimeExports.jsx(Navigate,{to:pulsePath(),replace:!0})},SurveyIntro=({title:e,detail:s})=>jsxRuntimeExports.jsxs("div",{className:"border-l-4 border-ink bg-ink/[0.04] px-5 py-4",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl font-light text-ink",children:e}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm leading-6 text-ink/80",children:s})]}),SurveySectionHeading=({title:e})=>jsxRuntimeExports.jsx("div",{className:"mt-10 bg-ink px-4 py-3 text-canvas",children:jsxRuntimeExports.jsx("h2",{className:"font-sans text-sm font-semibold uppercase tracking-[0.12em]",children:e})}),TextQuestion=({number:e,prompt:s,value:a,onChange:c,placeholder:g="Optional; one or two sentencesâ¦"})=>jsxRuntimeExports.jsx(PulseFormQuestion,{number:e,prompt:s,children:jsxRuntimeExports.jsx(OptionalTextarea,{value:a,onChange:c,placeholder:g})}),OptionalTextarea=({value:e,onChange:s,placeholder:a})=>jsxRuntimeExports.jsx(Textarea,{value:e,onChange:c=>s(c.target.value),rows:3,maxLength:2e3,placeholder:a,className:"mt-3 border-ink/30 text-ink placeholder:text-ink/55 focus-visible:ring-ink/40"}),ChoiceQuestion=({number:e,prompt:s,value:a,onChange:c,options:g,children:et,compact:rt=!1})=>jsxRuntimeExports.jsxs(PulseFormQuestion,{number:e,prompt:s,children:[jsxRuntimeExports.jsx(PulseChoiceGroup,{value:a,onChange:c,options:g,columns:rt?2:3}),et]}),ScaleChoiceQuestion=({number:e,prompt:s,value:a,onChange:c,options:g,secondaryOption:et,children:rt})=>{const nt=[...g,...et?[et]:[]].find(at=>at.value===a),st=g.findIndex(at=>at.value===a)+1;return jsxRuntimeExports.jsxs(PulseFormQuestion,{number:e,prompt:s,children:[jsxRuntimeExports.jsxs("div",{className:"py-1",children:[jsxRuntimeExports.jsx("div",{className:"mb-4 flex min-h-5 items-center justify-end",children:jsxRuntimeExports.jsx("span",{className:`text-xs ${nt?"font-semibold text-ink":"text-ink/70"}`,children:(nt==null?void 0:nt.label)??"Choose a response"})}),jsxRuntimeExports.jsx(PulseSliderScale,{position:st>0?st:null,onChange:at=>c(g[at-1].value),labels:g.map(at=>at.label),ariaLabel:s}),et&&jsxRuntimeExports.jsx("div",{className:"mt-4 flex justify-end",children:jsxRuntimeExports.jsx("button",{type:"button","aria-pressed":a===et.value,onClick:()=>c(et.value),className:`min-h-9 w-full border px-4 py-2 text-center text-xs leading-4 transition-colors sm:w-auto ${a===et.value?"border-ink bg-ink text-canvas":"border-ink/40 bg-canvas text-ink/80 hover:border-ink/70"}`,children:et.label})})]}),rt]}
978)},MatrixScale=({items:e,ratings:s,onChange:a,labels:c,zeroLabel:g})=>jsxRuntimeExports.jsx("div",{className:"space-y-8",children:e.map(et=>{const rt=s[et.id],nt=rt===0?g:rt?c[rt-1]:null;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex min-h-5 items-baseline justify-between gap-4",children:[jsxRuntimeExports.jsx("p",{className:"text-sm font-medium leading-5 text-ink",children:et.label}),jsxRuntimeExports.jsx("span",{className:`shrink-0 text-right text-xs leading-4 ${nt?"font-semibold text-ink":"text-ink/70"}`,children:nt??"Choose a rating"})]}),jsxRuntimeExports.jsxs("div",{className:`mt-4 grid items-start gap-4 ${g?"sm:grid-cols-[minmax(0,1fr)_auto]":""}`,children:[jsxRuntimeExports.jsx(PulseSliderScale,{position:rt&&rt>0?rt:null,onChange:st=>a(et.id,st),labels:c,ariaLabel:et.label}),g&&jsxRuntimeExports.jsx("button",{type:"button","aria-pressed":rt===0,onClick:()=>a(et.id,0),className:`min-h-9 border px-3 py-2 text-center text-xs leading-4 transition-colors sm:mt-0 ${rt===0?"border-ink bg-ink text-canvas":"border-ink/40 bg-canvas text-ink/80 hover:border-ink/70"}`,children:g})]})]},et.id)})}),AdminResults=({results:e,summary:s,className:a})=>{var et;const[c,g]=reactExports.useState("questions");return jsxRuntimeExports.jsxs("section",{className:`${a??""} border-t border-border pt-8`,children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Post-Academy feedback"})]}),jsxRuntimeExports.jsxs("span",{className:"text-sm text-ink/50",children:[e.length," anonymous response",e.length===1?"":"s"]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-6 grid gap-3 sm:grid-cols-3",children:[jsxRuntimeExports.jsx(SummaryCard,{value:((et=s.average)==null?void 0:et.toFixed(1))??"â",label:"Average overall rating",detail:"out of 5"}),jsxRuntimeExports.jsx(SummaryCard,{value:String(s.greaterScope),label:"More ambitious goals",detail
978:`of ${e.length} responses`}),jsxRuntimeExports.jsx(SummaryCard,{value:String(s.moreLikelyQuant),label:"More likely to consider quant",detail:`of ${e.length} responses`})]}),jsxRuntimeExports.jsx("div",{className:"mt-7 inline-flex border border-ink/25 p-1","aria-label":"Feedback result view",children:["questions","submissions"].map(rt=>jsxRuntimeExports.jsx("button",{type:"button","aria-pressed":c===rt,onClick:()=>g(rt),className:`px-4 py-2 text-xs font-medium uppercase tracking-[0.12em] transition-colors ${c===rt?"bg-ink text-canvas":"text-ink/60 hover:text-ink"}`,children:rt==="questions"?"By question":"By submission"},rt))}),c==="questions"?jsxRuntimeExports.jsx(QuestionResults,{results:e}):jsxRuntimeExports.jsx(SubmissionResults,{results:e})]})},SubmissionResults=({results:e})=>jsxRuntimeExports.jsxs("div",{className:"mt-7 space-y-4",children:[e.map((s,a)=>jsxRuntimeExports.jsxs("article",{className:"border border-border bg-canvas-soft/20 p-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-b border-border pb-3",children:[jsxRuntimeExports.jsxs("h3",{className:"font-serif text-xl",children:["Anonymous response ",e.length-a]}),jsxRuntimeExports.jsx("span",{className:"text-xs text-ink/40",children:new Intl.DateTimeFormat("en-GB",{dateStyle:"medium",timeStyle:"short"}).format(new Date(s.submitted_at))})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 grid gap-4 text-sm md:grid-cols-2",children:[jsxRuntimeExports.jsx(Response$1,{label:"Overall",value:`${s.overall_rating}/5`}),jsxRuntimeExports.jsx(Response$1,{label:"Afternoon amount",value:formatValue(s.afternoon_amount)}),jsxRuntimeExports.jsx(Response$1,{label:"Structured / free balance",value:formatValue(s.structured_free_balance)}),jsxRuntimeExports.jsx(Response$1,{label:"Ambition of goals considered",value:formatValue(s.achievement_scope_change)}),jsxRuntimeExports.jsx(Response$1,{label:"Most valuable",value:s.most_valuable}),jsxRuntimeExports.jsx(Response$1,{label:"One improvement",value:s.suggested_improvement}),jsxRuntimeExports.jsx(Response$1,{label:"Missing",value:s.missing_from_programme}),jsxRuntimeExports.jsx(Response$1,{label:"Additional programme comments",value:s.programme_comments}),jsxRuntimeExports.jsx(Response$1,{label:"Community and support comments",value:s.community_support_comments}),jsxRuntimeExports.jsx(Response$1,{label:"Study / career / project influence",value:joinAnswer(s.options_influenced,s.options_influenced_details)}),jsxRuntimeExports.jsx(Response$1,{label:"What changed their ambition",value:s.achievement_scope_details}),!s.attended_previous_academy&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Response$1,{label:"Why they applied",value:s.application_motivation}),jsxRuntimeExports.jsx(Response$1,{label:"Application hesitation",value:joinAnswer(s.application_hesitation,s.application_hesitation_details)})]}),jsxRuntimeExports.jsx(Response$1,{label:"Where to reach future fellows",value:s.future_communities}),s.attended_previous_academy&&jsxRuntimeExports.jsx(Response$1,{label:"Compared with previous Academy",value:[formatValue(s.previous_academy_comparison),s.better_this_time&&`Better now: ${s.better_this_time}`,s.better_before&&`Better before: ${s.better_before}`].filter(Boolean).join(` 979`)}),jsxRuntimeExports.jsx(Response$1,{label:"G-Research",value:[formatValue(s.quant_career_likelihood_change),s.quant_view_change].filter(Boolean).join(` 980`)}),s.extended_completed&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Response$1,{label:"Afternoon session too long",value:joinAnswer(s.afternoon_too_long,s.afternoon_too_long_details)}),jsxRuntimeExports.jsx(Response$1,{label:"Potential collaborator",value:joinAnswer(s.continuing_connections,s.continuing_connections_details)}),jsxRuntimeExports.jsx(Response$1,{label:"Problems or opportunities worth pursuing",value:joinAnswer(s.pursuit_priorities_changed,s.pursuit_priorities_details)}),jsxRuntimeExports.jsx(Response$1,{label:"What makes work worthwhile",value:joinAnswer(s.worthwhile_changed,s.worthwhile_changed_details)}),jsxRuntimeExports.jsx(Response$1,{label:"Admired quality or behaviour",value:joinAnswer(s.admired_someone,s.admired_quality)}),jsxRuntimeExports.jsx(Response$1,{label:"Quality or habit to develop",value:s.desired_quality_or_habit}),jsxRuntimeExports.jsx(Response$1,{label:"Accelerated action",value:joinAnswer(s.accelerated_action,s.next_three_months)}),jsxRuntimeExports.jsx(Response$1,{label:"Website clarity",value:s.website_clarity})]})]}),jsxRuntimeExports.jsxs("details",{className:"mt-5 border-t border-border pt-3 text-xs text-ink/50",children:[jsxRuntimeExports.jsx("summary",{className:"cursor-pointer",children:"Show rating matrices"}),jsxRuntimeExports.jsxs("div",{className:"mt-3 grid gap-3 md:grid-cols-3",children:[jsxRuntimeExports.jsx(Response$1,{label:"Programme",value:formatRatings(s.programme_ratings)}),jsxRuntimeExports.jsx(Response$1,{label:"Community",value:formatRatings(s.community_ratings)}),jsxRuntimeExports.jsx(Response$1,{label:"EAF team",value:formatRatings(s.team_ratings)})]})]})]},s.id)),e.length===0&&jsxRuntimeExports.jsx("p",{className:"border-y border-border py-6 text-sm text-ink/50",children:"No responses yet."})]}),QuestionResults=({results:e})=>{const s=e.filter(a=>a.extended_completed);return jsxRuntimeExports.jsxs("div",{className:"mt-7 space-y-9",children:[jsxRuntimeExports.jsxs(ResultGroup,{title:"Overall impression",children:[jsxRuntimeExports.jsx(ScoreResult,{title:"Overall Academy rating",values:e.map(a=>a.overall_rating),labels:ratingLabels}),jsxRuntimeExports.jsx(TextResult,{title:"Most valuable part",values:e.map(a=>a.most_valuable)}),jsxRuntimeExports.jsx(TextResult,{title:"One improvement",values:e.map(a=>a.suggested_improvement)})]}),jsxRuntimeExports.jsxs(ResultGroup,{title:"Programme and activities",children:[programmeItems.map(a=>jsxRuntimeExports.jsx(ScoreResult,{title:a.label,values:e.map(c=>{var g;return((g=c.programme_ratings)==null?void 0:g[a.id])??null}),labels:ratingLabels,zeroLabel:"Did not attend or use"},a.id)),jsxRuntimeExports.jsx(OrdinalResult,{title:"Amount of scheduled afternoon content",values:e.map(a=>a.afternoon_amount),options:afternoonAmountResultOptions}),jsxRuntimeExports.jsx(OrdinalResult,{title:"Balance between structured activities and free time",values:e.map(a=>
980a.structured_free_balance),options:structuredFreeResultOptions}),jsxRuntimeExports.jsx(TextResult,{title:"What was missing from the programme",values:e.map(a=>a.missing_from_programme)}),jsxRuntimeExports.jsx(TextResult,{title:"Additional programme comments",values:e.map(a=>a.programme_comments)})]}),jsxRuntimeExports.jsxs(ResultGroup,{title:"Community and support",children:[communityItems.map(a=>jsxRuntimeExports.jsx(ScoreResult,{title:a.label,values:e.map(c=>{var g;return((g=c.community_ratings)==null?void 0:g[a.id])??null}),labels:agreementLabels},a.id)),teamItems.map(a=>jsxRuntimeExports.jsx(ScoreResult,{title:a.label,values:e.map(c=>{var g;return((g=c.team_ratings)==null?void 0:g[a.id])??null}),labels:agreementLabels,zeroLabel:"Not applicable"},a.id)),jsxRuntimeExports.jsx(ChoiceResult,{title:"Did not feel safe during the Academy",values:e.map(a=>a.safety_response)}),jsxRuntimeExports.jsx(TextResult,{title:"Safety details",values:e.map(a=>a.safety_details)}),jsxRuntimeExports.jsx(TextResult,{title:"Additional community and support comments",values:e.map(a=>a.community_support_comments)})]}),jsxRuntimeExports.jsxs(ResultGroup,{title:"Influence and outlook",children:[jsxRuntimeExports.jsx(ChoiceResult,{title:"Influenced study, research, career, or project options",values:e.map(a=>a.options_influenced)}),jsxRuntimeExports.jsx(TextResult,{title:"Options now being considered",values:e.map(a=>a.options_influenced_details)}),jsxRuntimeExports.jsx(OrdinalResult,{title:"Ambition of goals or projects seriously considered",values:e.map(a=>a.achievement_scope_change),options:ambitionResultOptions}),jsxRuntimeExports.jsx(TextResult,{title:"What changed their ambition",values:e.map(a=>a.achievement_scope_details)}),jsxRuntimeExports.jsx(OrdinalResult,{title:"Likelihood of considering quantitative finance",values:e.map(a=>a.quant_career_likelihood_change),options:quantResultOptions}),jsxRuntimeExports.jsx(TextResult,{title:"What changed their view of quantitative finance",values:e.map(a=>a.quant_view_change)})]}),jsxRuntimeExports.jsxs(ResultGroup,{title:"Previous experience and applying",children:[jsxRuntimeExports.jsx(ChoiceResult,{title:"Attended an EAF Academy before",values:e.map(a=>a.attended_previous_academy?"yes":"no")}),jsxRuntimeExports.jsx(OrdinalResult,{title:"Comparison with the previous Academy",values:e.map(a=>a.previous_academy_comparison),options:previousAcademyResultOptions}),jsxRuntimeExports.jsx(TextResult,{title:"What was better this time",values:e.map(a=>a.better_this_time)}),jsxRuntimeExports.jsx(TextResult,{title:"What was better before",values:e.map(a=>a.better_before)}),jsxRuntimeExports.jsx(TextResult,{title:"What made first-time attendees apply",values:e.map(a=>a.application_motivation)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Hesitated or felt sceptical before applying",values:e.filter(a=>!a.attended_previous_academy).map(a=>a.application_hesitation)}),jsxRuntimeExports.jsx(TextResult,{title:"What gave them pause",values:e.map(a=>a.application_hesitation_details)}),jsxRuntimeExports.jsx(TextResult,{title:"Where EAF could reach future fellows",values:e.map(a=>a.future_communities)})]}),jsxRuntimeExports.jsxs(ResultGroup,{title:`Optional reflection · ${s.length} completed`,children:[jsxRuntimeExports.jsx(ChoiceResult,{title:"Afternoon session or activity felt too long",values:s.map(a=>a.afternoon_too_long)}),jsxRuntimeExports.jsx(TextResult,{title:"Which afternoon activity felt too long",values:s.map(a=>a.afternoon_too_long_details)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Met a potential collaborator",values:s.map(a=>a.continuing_connections)}),jsxRuntimeExports.jsx(TextResult,{title:"Potential collaboration",values:s.map(a=>a.continuing_connections_details)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Changed which problems or opportunities seem worth pursuing",values:s.map(a=>a.pursuit_priorities_changed)}),jsxRuntimeExports.jsx(TextResult,{title:"Problems or opportunities now seen differently",values:s.map(a=>a.pursuit_priorities_details)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Changed what makes an achievement, career, or project worthwhile",values:s.map(a=>a.worthwhile_changed)}),jsxRuntimeExports.jsx(TextResult,{title:"What now seems worthwhile",values:s.map(a=>a.worthwhile_changed_details)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Admired someoneâs way of thinking or acting",values:s.map(a=>a.admired_someone)}),jsxRuntimeExports.jsx(TextResult,{title:"Quality or behaviour admired",values:s.map(a=>a.admired_quality)}),jsxRuntimeExports.jsx(TextResult,{title:"Quality or habit they want to develop",values:s.map(a=>a.desired_quality_or_habit)}),jsxRuntimeExports.jsx(ChoiceResult,{title:"Expect to act sooner because of the Academy",values:s.map(a=>a.accelerated_action)}),jsxRuntimeExports.jsx(TextResult,{title:"Action and first step",values:s.map(a=>a.next_three_months)}),jsxRuntimeExports.jsx(TextResult,{title:"What the website should explain more clearly",values:s.map(a=>a.website_clarity)})]})]})},afternoonAmountResultOptions=[{value:"much_too_little",label:"Much too little",score:1},{value:"a_little_too_little",label:"A little too little",score:2},{value:"about_right",label:"About right",score:3},{value:"a_little_too_much",label:"A little too much",score:4},{value:"much_too_much",label:"Much too much",score:5},{value:"did_not_attend",label:"Did not attend",score:null}],structuredFreeResultOptions=[{value:"much_too_structured",label:"Much too much structured time",score:1},{value:"a_little_too_structured",label:"A little too much structured time",score:2},{value:"about_right",label:"About right",score:3},{value:"a_little_too_much_free",label:"A little too much free time",score:4},{value:"much_too_much_free",label:"Much too much free time",score:5}],ambitionResultOptions=[{value:"much_smaller",label:"Much less ambitious",score:1},{value:"a_little_smaller",label:"A little less ambitious",score:2},{value:"about_the_same",label:"About the same",score:3},{value:"a_little_greater",label:"A little more ambitious",score:4},{value:"much_greater",label:"Much more ambitious",score:5},{value:"not_sure",label:"Not sure",score:null}],quantResultOptions=[{value:"much_less_likely",label:"Much less likely",score:1},{value:"a_little_less_likely",label:"A little less likely",score:2},{value:"no_change",label:"Neither more nor less likely",score:3},{value:"a_little_more_likely",label:"A little more likely",score:4},{value:"much_more_likely",label:"Much more likely",score:5},{value:"not_sure",label:"Not sure",score:null}],previousAcademyResultOptions=[{value:"much_worse",label:"Much worse",score:1},{value:"a_little_worse",label:"A little worse",score:2},{value:"about_the_same",label:"About the same",score:3},{value:"a_little_better",label:"A little better",score:4},{value:"much_better",label:"Much better",score:5}],ResultGroup=({title:e,children:s})=>jsxRuntimeExports.jsxs("section",{children:[jsxRuntimeExports.jsx("h3",{className:"border-b-2 border-ink pb-2 text-sm font-semibold uppercase tracking-[0.12em]",children:e}),jsxRuntimeExports.jsx("div",{className:"mt-4 grid gap-4 lg:grid-cols-2",children:s})]}),ResultCard=({title:e,children:s})=>jsxRuntimeExports.jsxs("article",{className:"border border-border bg-canvas-soft/20 p-4",children:[jsxRuntimeExports.jsx("h4",{className:"text-sm font-medium leading-5",children:e}),jsxRuntimeExports.jsx("div",{className:"mt-3",children:s})]}),ScoreResult=({title:e,values:s,labels:a,zeroLabel:c})=>{const g=s.filter(nt=>nt!=null),et=g.filter(nt=>nt>0),rt=et.length?et.reduce((nt,st)=>nt+st,0)/et.length:null;return jsxRuntimeExports.jsxs(ResultCard,{title:e,children:[jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-3xl font-normal",children:(rt==null?void 0:rt.toFixed(1))??"â"}),jsxRuntimeExports.jsxs("span",{className:"ml-1 text-xs text-ink/45",children:["/ 5 average · ",g.length," answer",g.length===1?"":"s"]})]}),jsxRuntimeExports.jsxs("div",{className:"mt-3 space-y-1 text-xs text-ink/60",children:[a.map((nt,st)=>jsxRuntimeExports.jsxs("p",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{children:nt}),jsxRuntimeExports.jsx("strong",{className:"font-medium text-ink",children:g.filter(at=>at===st+1).length})]},nt)),c&&jsxRuntimeExports.jsxs("p",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{children:c}),jsxRuntimeExports.jsx("strong",{className:"font-medium text-ink",children:g.filter(nt=>nt===0).length})]})]})]})},OrdinalResult=({title:e,values:s,options:a})=>{const c=s.filter(rt=>!!rt),g=c.flatMap(rt=>{var st;const nt=(st=a.find(at=>at.value===rt))==null?void 0:st.score;return nt==null?[]:[nt]}),et=g.length?g.reduce((rt,nt)=>rt+nt,0)/g.length:null;return jsxRuntimeExports.jsxs(ResultCard,{title:e,children:[jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-3xl font-normal",children:(et==null?void 0:et.toFixed(1))??"â"}),jsxRuntimeExports.jsxs("span",{className:"ml-1 text-xs text-ink/45",children:["/ 5 average · ",c.length," answer",c.length===1?"":"s"]})]}),jsxRuntimeExports.jsx("div",{className:"mt-3 space-y-1 text-xs text-ink/60",children:a.map(rt=>jsxRuntimeExports.jsxs("p",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{children:rt.label}),jsxRuntimeExports.jsx("strong",{className:"font-medium text-ink",children:c.filter(nt=>nt===rt.value).length})]},rt.value))})]})},ChoiceResult=({title:e,values:s})=>{const a=s.filter(g=>
980!!g),c=Array.from(new Set(a)).map(g=>({value:g,count:a.filter(et=>et===g).length}));return jsxRuntimeExports.jsxs(ResultCard,{title:e,children:[jsxRuntimeExports.jsxs("p",{className:"text-xs text-ink/45",children:[a.length," answer",a.length===1?"":"s"]}),jsxRuntimeExports.jsxs("div",{className:"mt-3 space-y-1 text-xs text-ink/60",children:[c.map(({value:g,count:et})=>jsxRuntimeExports.jsxs("p",{className:"flex justify-between gap-3",children:[jsxRuntimeExports.jsx("span",{children:formatValue(g)}),jsxRuntimeExports.jsx("strong",{className:"font-medium text-ink",children:et})]},g)),c.length===0&&jsxRuntimeExports.jsx("p",{children:"â"})]})]})},TextResult=({title:e,values:s})=>{const a=s.filter(c=>!!(c!=null&&c.trim()));return jsxRuntimeExports.jsxs(ResultCard,{title:e,children:[jsxRuntimeExports.jsxs("p",{className:"text-xs text-ink/45",children:[a.length," written answer",a.length===1?"":"s"]}),jsxRuntimeExports.jsxs("div",{className:"mt-3 space-y-3",children:[a.map((c,g)=>jsxRuntimeExports.jsx("p",{className:"whitespace-pre-wrap border-l-2 border-ink/20 pl-3 text-sm leading-6 text-ink/65",children:c},`${g}-${c.slice(0,30)}`)),a.length===0&&jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/40",children:"No written answers."})]})]})},SummaryCard=({value:e,label:s,detail:a})=>jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/35 p-4",children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-3xl font-normal",children:e}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/65",children:s}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-xs text-ink/40",children:a})]}),Response$1=({label:e,value:s})=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[10px] uppercase tracking-[0.12em] text-ink/40",children:e}),jsxRuntimeExports.jsx("p",{className:"mt-1 whitespace-pre-wrap leading-6 text-ink/65",children:s||"â"})]}),formatValue=e=>e?e.replaceAll("_"," ").replace(/^./,s=>s.toUpperCase()):"â",joinAnswer=(e,s)=>[formatValue(e),s].filter(a=>a&&a!=="â").join(` 981`),formatRatings=e=>Object.entries(e).map(([s,a])=>`${formatValue(s)}: ${a===0?"N/A":`${a}/5`}`).join(` 982`);var PAGE_KEYS=["PageUp","PageDown"],ARROW_KEYS=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],BACK_KEYS={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},SLIDER_NAME="Slider",[Collection,useCollection,createCollectionScope]=createCollection(SLIDER_NAME),[createSliderContext,createSliderScope]=createContextScope(SLIDER_NAME,[createCollectionScope]),[SliderProvider,useSliderContext]=createSliderContext(SLIDER_NAME),Slider$1=reactExports.forwardRef((e,s)=>{const{name:a,min:c=0,max:g=100,step:et=1,orientation:rt="horizontal",disabled:nt=!1,minStepsBetweenThumbs:st=0,defaultValue:at=[c],value:it,onValueChange:ot=()=>{},onValueCommit:lt=()=>{},inverted:ct=!1,form:dt,...ut}=e,xt=reactExports.useRef(new Set),gt=reactExports.useRef(0),mt=rt==="horizontal"?SliderHorizontal:SliderVertical,[kt=[],Ct]=useControllableState({prop:it,defaultProp:at,onChange:zt=>{var nr;(nr=[...xt.current][gt.current])==null||nr.focus(),ot(zt)}}),Tt=reactExports.useRef(kt);function Pt(zt){const Jt=getClosestValueIndex(kt,zt);Mt(zt,Jt)}function At(zt){Mt(zt,gt.current)}function Gt(){const zt=Tt.current[gt.current];kt[gt.current]!==zt&<(kt)}function Mt(zt,Jt,{commit:nr}={commit:!1}){const er=getDecimalCount(et),ur=roundValue(Math.round((zt-c)/et)*et+c,er),qt=clamp(ur,[c,g]);Ct((or=[])=>{const Dt=getNextSortedValues(or,qt,Jt);if(hasMinStepsBetweenValues(Dt,st*et)){gt.current=Dt.indexOf(qt);const Ht=String(Dt)!==String(or);return Ht&&nr&<(Dt),Ht?Dt:or}else return or})}return jsxRuntimeExports.jsx(SliderProvider,{scope:e.__scopeSlider,name:a,disabled:nt,min:c,max:g,valueIndexToChangeRef:gt,thumbs:xt.current,values:kt,orientation:rt,form:dt,children:jsxRuntimeExports.jsx(Collection.Provider,{scope:e.__scopeSlider,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:e.__scopeSlider,children:jsxRuntimeExports.jsx(mt,{"aria-disabled":nt,"data-disabled":nt?"":void 0,...ut,ref:s,onPointerDown:composeEventHandlers(ut.onPointerDown,()=>{nt||(Tt.current=kt)}),min:c,max:g,inverted:ct,onSlideStart:nt?void 0:Pt,onSlideMove:nt?void 0:At,onSlideEnd:nt?void 0:Gt,onHomeKeyDown:()=>!nt&&Mt(c,0,{commit:!0}),onEndKeyDown:()=>!nt&&Mt(g,kt.length-1,{commit:!0}),onStepKeyDown:({event:zt,direction:Jt})=>
982{if(!nt){const ur=PAGE_KEYS.includes(zt.key)||zt.shiftKey&&ARROW_KEYS.includes(zt.key)?10:1,qt=gt.current,or=kt[qt],Dt=et*ur*Jt;Mt(or+Dt,qt,{commit:!0})}}})})})})});Slider$1.displayName=SLIDER_NAME;var[SliderOrientationProvider,useSliderOrientationContext]=createSliderContext(SLIDER_NAME,{startEdge:"left",endEdge:"right",size:"width",direction:1}),SliderHorizontal=reactExports.forwardRef((e,s)=>{const{min:a,max:c,dir:g,inverted:et,onSlideStart:rt,onSlideMove:nt,onSlideEnd:st,onStepKeyDown:at,...it}=e,[ot,lt]=reactExports.useState(null),ct=useComposedRefs(s,mt=>lt(mt)),dt=reactExports.useRef(void 0),ut=useDirection(g),xt=ut==="ltr",gt=xt&&!et||!xt&&et;function ht(mt){const kt=dt.current||ot.getBoundingClientRect(),Ct=[0,kt.width],Pt=linearScale(Ct,gt?[a,c]:[c,a]);return dt.current=kt,Pt(mt-kt.left)}return jsxRuntimeExports.jsx(SliderOrientationProvider,{scope:e.__scopeSlider,startEdge:gt?"left":"right",endEdge:gt?"right":"left",direction:gt?1:-1,size:"width",children:jsxRuntimeExports.jsx(SliderImpl,{dir:ut,"data-orientation":"horizontal",...it,ref:ct,style:{...it.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:mt=>{const kt=ht(mt.clientX);rt==null||rt(kt)},onSlideMove:mt=>{const kt=ht(mt.clientX);nt==null||nt(kt)},onSlideEnd:()=>{dt.current=void 0,st==null||st()},onStepKeyDown:mt=>{const Ct=BACK_KEYS[gt?"from-left":"from-right"].includes(mt.key);at==null||at({event:mt,direction:Ct?-1:1})}})})}),SliderVertical=reactExports.forwardRef((e,s)=>{const{min:a,max:c,inverted:g,onSlideStart:et,onSlideMove:rt,onSlideEnd:nt,onStepKeyDown:st,...at}=e,it=reactExports.useRef(null),ot=useComposedRefs(s,it),lt=reactExports.useRef(void 0),ct=!g;function dt(ut){const xt=lt.current||it.current.getBoundingClientRect(),gt=[0,xt.height],mt=linearScale(gt,ct?[c,a]:[a,c]);return lt.current=xt,mt(ut-xt.top)}return jsxRuntimeExports.jsx(SliderOrientationProvider,{scope:e.__scopeSlider,startEdge:ct?"bottom":"top",endEdge:ct?"top":"bottom",size:"height",direction:ct?1:-1,children:jsxRuntimeExports.jsx(SliderImpl,{"data-orientation":"vertical",...at,ref:ot,style:{...at.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:ut=>{const xt=dt(ut.clientY);et==null||et(xt)},onSlideMove:ut=>{const xt=dt(ut.clientY);rt==null||rt(xt)},onSlideEnd:()=>{lt.current=void 0,nt==null||nt()},onStepKeyDown:ut=>{const gt=BACK_KEYS[ct?"from-bottom":"from-top"].includes(ut.key);st==null||st({event:ut,direction:gt?-1:1})}})})}),SliderImpl=reactExports.forwardRef((e,s)=>{const{__scopeSlider:a,onSlideStart:c,onSlideMove:g,onSlideEnd:et,onHomeKeyDown:rt,onEndKeyDown:nt,onStepKeyDown:st,...at}=e,it=useSliderContext(SLIDER_NAME,a);return jsxRuntimeExports.jsx(Primitive.span,{...at,ref:s,onKeyDown:composeEventHandlers(e.onKeyDown,ot=>{ot.key==="Home"?(rt(ot),ot.preventDefault()):ot.key==="End"?(nt(ot),ot.preventDefault()):PAGE_KEYS.concat(ARROW_KEYS).includes(ot.key)&&(st(ot),ot.preventDefault())}),onPointerDown:composeEventHandlers(e.onPointerDown,ot=>{const lt=ot.target;lt.setPointerCapture(ot.pointerId),ot.preventDefault(),it.thumbs.has(lt)?lt.focus():c(ot)}),onPointerMove:composeEventHandlers(e.onPointerMove,ot=>{ot.target.hasPointerCapture(ot.pointerId)&&g(ot)}),onPointerUp:composeEventHandlers(e.onPointerUp,ot=>{const lt=ot.target;lt.hasPointerCapture(ot.pointerId)&&(lt.releasePointerCapture(ot.pointerId),et(ot))})})}),TRACK_NAME="SliderTrack",SliderTrack=reactExports.forwardRef((e,s)=>{const{__scopeSlider:a,...c}=e,g=useSliderContext(TRACK_NAME,a);return jsxRuntimeExports.jsx(Primitive.span,{"data-disabled":g.disabled?"":void 0,"data-orientation":g.orientation,...c,ref:s})});SliderTrack.displayName=TRACK_NAME;var RANGE_NAME="SliderRange",SliderRange=reactExports.forwardRef((e,s)=>{const{__scopeSlider:a,...c}=e,g=useSliderContext(RANGE_NAME,a),et=useSliderOrientationContext(RANGE_NAME,a),rt=reactExports.useRef(null),nt=useComposedRefs(s,rt),st=g.values.length,at=g.values.map(lt=>convertValueToPercentage(lt,g.min,g.max)),it=st>1?Math.min(...at):0,ot=100-Math.max(...at);return jsxRuntimeExports.jsx(Primitive.span,{"data-orientation":g.orientation,"data-disabled":g.disabled?"":void 0,...c,ref:nt,style:{...e.style,[et.startEdge]:it+"%",[et.endEdge]:ot+"%"}})});SliderRange.displayName=RANGE_NAME;var THUMB_NAME="SliderThumb",SliderThumb=reactExports.forwardRef((e,s)=>{const a=useCollection(e.__scopeSlider),[c,g]=reactExports.useState(null),et=useComposedRefs(s,nt=>g(nt)),rt=reactExports.useMemo(()=>c?a().findIndex(nt=>nt.ref.current===c):-1,[a,c]);return jsxRuntimeExports.jsx(SliderThumbImpl,{...e,ref:et,index:rt})}),SliderThumbImpl=reactExports.forwardRef((e,s)=>{const{__scopeSlider:a,index:c,name:g,...et}=e,rt=useSliderContext(THUMB_NAME,a),nt=useSliderOrientationContext(THUMB_NAME,a),[st,at]=reactExports.useState(null),it=useComposedRefs(s,ht=>at(ht)),ot=st?rt.form||!!st.closest("form"):!0,lt=useSize(st),ct=rt.values[c],dt=ct===void 0?0:convertValueToPercentage(ct,rt.min,rt.max),ut=getLabel(c,rt.values.length),xt=lt==null?void 0:lt[nt.size],gt=xt?getThumbInBoundsOffset(xt,dt,nt.direction):0;return reactExports.useEffect(()=>{if(st)return rt.thumbs.add(st),()=>{rt.thumbs.delete(st)}},[st,rt.thumbs]),jsxRuntimeExports.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[nt.startEdge]:`calc(${dt}% + ${gt}px)`},children:[jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:e.__scopeSlider,children:jsxRuntimeExports.jsx(Primitive.span,{role:"slider","aria-label":e["aria-label"]||ut,"aria-valuemin":rt.min,"aria-valuenow":ct,"aria-valuemax":rt.max,"aria-orientation":rt.orientation,"data-orientation":rt.orientation,"data-disabled":rt.disabled?"":void 0,tabIndex:rt.disabled?void 0:0,...et,ref:it,style:ct===void 0?{display:"none"}:e.style,onFocus:composeEventHandlers(e.onFocus,()=>{rt.valueIndexToChangeRef.current=c})})}),ot&&jsxRuntimeExports.jsx(SliderBubbleInput,{name:g??(rt.name?rt.name+(rt.values.length>1?"[]":""):void 0),form:rt.form,value:ct},c)]})});
982SliderThumb.displayName=THUMB_NAME;var BUBBLE_INPUT_NAME="RadioBubbleInput",SliderBubbleInput=reactExports.forwardRef(({__scopeSlider:e,value:s,...a},c)=>{const g=reactExports.useRef(null),et=useComposedRefs(g,c),rt=usePrevious(s);return reactExports.useEffect(()=>{const nt=g.current;if(!nt)return;const st=window.HTMLInputElement.prototype,it=Object.getOwnPropertyDescriptor(st,"value").set;if(rt!==s&&it){const ot=new Event("input",{bubbles:!0});it.call(nt,s),nt.dispatchEvent(ot)}},[rt,s]),jsxRuntimeExports.jsx(Primitive.input,{style:{display:"none"},...a,ref:et,defaultValue:s})});SliderBubbleInput.displayName=BUBBLE_INPUT_NAME;function getNextSortedValues(e=[],s,a){const c=[...e];return c[a]=s,c.sort((g,et)=>g-et)}function convertValueToPercentage(e,s,a){const et=100/(a-s)*(e-s);return clamp(et,[0,100])}function getLabel(e,s){return s>2?`Value ${e+1} of ${s}`:s===2?["Minimum","Maximum"][e]:void 0}function getClosestValueIndex(e,s){if(e.length===1)return 0;const a=e.map(g=>Math.abs(g-s)),c=Math.min(...a);return a.indexOf(c)}function getThumbInBoundsOffset(e,s,a){const c=e/2,et=linearScale([0,50],[0,c]);return(c-et(s)*a)*a}function getStepsBetweenValues(e){return e.slice(0,-1).map((s,a)=>e[a+1]-s)}function hasMinStepsBetweenValues(e,s){if(s>0){const a=getStepsBetweenValues(e);return Math.min(...a)>=s}return!0}function linearScale(e,s){return a=>{if(e[0]===e[1]||s[0]===s[1])return s[0];const c=(s[1]-s[0])/(e[1]-e[0]);return s[0]+c*(a-e[0])}}function getDecimalCount(e){return(String(e).split(".")[1]||"").length}function roundValue(e,s){const a=Math.pow(10,s);return Math.round(e*a)/a}var Root=Slider$1,Track=SliderTrack,Range=SliderRange,Thumb=SliderThumb;const Slider=reactExports.forwardRef(({className:e,unselected:s=!1,...a},c)=>jsxRuntimeExports.jsxs(Root,{ref:c,className:cn("relative flex w-full touch-none select-none items-center",e),...a,children:[jsxRuntimeExports.jsx(Track,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary",children:jsxRuntimeExports.jsx(Range,{className:cn("absolute h-full bg-primary",s&&"opacity-0")})}),jsxRuntimeExports.jsx(Thumb,{className:cn("block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",s&&"border-dashed border-primary/50 bg-transparent")})]}));Slider.displayName=Root.displayName;const RECEIPT_BUCKET="academy-reimbursement-receipts",MAX_RECEIPT_SIZE=20*1024*1024,MAX_RECEIPTS=10,supportedReceiptMimeTypes=new Set(["application/pdf","image/jpeg","image/png"]),PulseAcademy2026Reimbursement=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(AcademyReimbursement,{})}),AcademyReimbursement=({preview:e=!1})=>{const[s,a]=reactExports.useState(!e),[c,g]=reactExports.useState(!0),[et,rt]=reactExports.useState(!1),[nt,st]=reactExports.useState(e),[at,it]=reactExports.useState(e?"preview-person":null),[ot,lt]=reactExports.useState(e),[ct,dt]=reactExports.useState(e),[ut,xt]=reactExports.useState([]),[gt,ht]=reactExports.useState(!1),mt=ut[0],[kt,Ct]=reactExports.useState([]),[Tt,Pt]=reactExports.useState([]),[At,Gt]=reactExports.useState([]),[Mt,zt]=reactExports.useState(""),[Jt,nr]=reactExports.useState(""),[er,ur]=reactExports.useState(null),[qt,or]=reactExports.useState(null),[Dt,Ht]=reactExports.useState(!1),[Xt,Zt]=reactExports.useState("");reactExports.useEffect(()=>{e||!supabase||(async()=>{try{const Kt=await getCurrentAcademyAccess();if(!Kt||!Kt.isAdmin&&Kt.attendanceStatus!=="attending"){g(!1);return}if(rt(Kt.isAdmin),st(Kt.attendanceStatus==="attending"),it(Kt.personId),Kt.attendanceStatus==="attending"){const mr=await getAcademy2026FeedbackStatus(Kt.personId);lt(mr.seminarFeedbackComplete),dt(mr.postAcademyFeedbackComplete);const xr=await loadOwnReimbursement(Kt.personId);xt(xr.requests),Ct(xr.receipts)}Kt.isAdmin&&Pt(await loadAdminReimbursements())}catch(Kt){Zt(Kt instanceof Error?Kt.message:"Could not load reimbursements.")}finally{a(!1)}})()},[e]);const It=Number(Mt),Bt=qt===null?null:100-qt,rr=Number.isFinite(It)&&It>0&&Bt!==null?Math.round(It*Bt)/100:0,lr=Number.isFinite(It)&&It>0&&qt!==null?Math.round(It*qt)/100:0,pr=Bt===0||Bt!==null&&At.length>0&&Jt.trim().length>=5,tr=Number.isFinite(It)&&It>0&&It<=1e6&&qt!==null&&pr,hr=ot&&ct,Vt=Kt=>{if(!Kt)return;const mr=Array.from(Kt),xr=[...At,...mr],cr=xr.filter((jr,kr)=>xr.findIndex(Pr=>Pr.name===jr.name&&Pr.size===jr.size&&Pr.lastModified===jr.lastModified)===kr);if(cr.length>MAX_RECEIPTS){Zt(`Please upload no more than ${MAX_RECEIPTS} receipts.`);return}try{cr.forEach(validateReceiptFile),Gt(cr),Zt("")}catch(jr){Zt(jr instanceof Error?jr.message:"One of the receipt files is not supported.")}},sr=async Kt=>
982{if(Kt.preventDefault(),!tr||!at||Dt||Bt===null)return;if(e){const cr=crypto.randomUUID();xt(jr=>[{id:cr,academy_year:"2026",person_id:at,total_expenses:It,currency:"EUR",reimbursement_percentage:Bt,requested_amount:rr,bank_account_details:Bt===0?null:Jt.trim(),status:"submitted",submitted_at:new Date().toISOString()},...jr]),ht(!1),Gt([]),Zt("Your reimbursement request has been submitted."),window.scrollTo({top:0,behavior:"smooth"});return}if(!supabase)return;Ht(!0),Zt("");const mr=crypto.randomUUID(),xr=[];try{const cr=[];for(const Pr of Bt===0?[]:At){validateReceiptFile(Pr);const Dr=getReceiptMimeType(Pr),Vr=`${at}/2026/${mr}/${crypto.randomUUID()}-${safeFileName(Pr.name)}`,{error:Rr}=await supabase.storage.from(RECEIPT_BUCKET).upload(Vr,Pr,{contentType:Dr,upsert:!1});if(Rr)throw new Error(Rr.message);xr.push(Vr),cr.push({object_path:Vr,file_name:Pr.name,mime_type:Dr,size_bytes:Pr.size})}const{error:jr}=await supabase.rpc("submit_academy_reimbursement",{p_request_id:mr,p_total_expenses:It,p_currency:"EUR",p_reimbursement_percentage:Bt,p_bank_account_details:Bt===0?null:Jt.trim(),p_receipts:cr});if(jr)throw new Error(jr.message);const kr=await loadOwnReimbursement(at);xt(kr.requests),Ct(kr.receipts),ht(!1),Gt([]),Zt("Your reimbursement request has been submitted."),window.scrollTo({top:0,behavior:"smooth"})}catch(cr){xr.length>0&&await supabase.storage.from(RECEIPT_BUCKET).remove(xr),Zt(cr instanceof Error?cr.message:"Could not submit your reimbursement request.")}finally{Ht(!1)}},Lt=async Kt=>{if(e||!supabase)return;Zt("");const{data:mr,error:xr}=await supabase.storage.from(Kt.bucket_id).createSignedUrl(Kt.object_path,60*10);if(xr){Zt(xr.message);return}const cr=document.createElement("a");cr.href=mr.signedUrl,cr.target="_blank",cr.rel="noopener noreferrer",cr.click()};return s?jsxRuntimeExports.jsx(PulsePage,{children:jsxRuntimeExports.jsx("p",{className:"text-sm text-ink/55",children:"Loading reimbursementâ¦"})}):c?jsxRuntimeExports.jsxs(PulsePage,{children:[jsxRuntimeExports.jsxs(PulseFormHeader,{title:"Travel reimbursement",submitted:!!mt,children:[jsxRuntimeExports.jsx("p",{className:"mt-3 max-w-2xl text-sm leading-6 text-ink/50",children:"Enter your travel expenses, then choose how much of the reimbursement you would like to donate."}),jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-2xl text-xs leading-5 text-ink/45",children:"Your request and receipt files are private and visible only to you and EAF administrators."})]}),Xt&&jsxRuntimeExports.jsx(PulseFormMessage,{className:"mb-6 max-w-3xl",tone:Xt==="Your reimbursement request has been submitted."?"success":"warning",children:Xt}),nt&&ut.length>0&&jsxRuntimeExports.jsxs("div",{className:"mb-8 max-w-3xl space-y-4",children:[ut.map(Kt=>jsxRuntimeExports.jsx(SubmittedRequest,{request:Kt,receipts:kt.filter(mr=>mr.request_id===Kt.id),onOpenReceipt:Lt},Kt.id)),!gt&&hr&&jsxRuntimeExports.jsx(Button,{type:"button",variant:"outline",onClick:()=>{zt(""),nr(""),ur(null),or(null),Gt([]),Zt(""),ht(!0)},children:"Submit another request"})]}),nt&&!hr?jsxRuntimeExports.jsxs("section",{className:"max-w-3xl border border-border bg-canvas-soft/45 p-6",children:[jsxRuntimeExports.jsx(LockKeyhole,{className:"h-7 w-7 text-ink/40"}),jsxRuntimeExports.jsx("h2",{className:"mt-4 font-serif text-2xl",children:"Complete both feedback questionnaires first"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm leading-6 text-ink/55",children:"Reimbursement opens after you submit both Post-Seminar Feedback and Post-Academy Feedback."}),jsxRuntimeExports.jsxs("div",{className:"mt-5 flex flex-wrap gap-3",children:[!ot&&jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/seminar-feedback"),children:["Post-Seminar Feedback ",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-2 h-4 w-4"})]})}),!ct&&jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:pulsePath("/academies/2026/post-academy-feedback"),children:["Post-Academy Feedback ",jsxRuntimeExports.jsx(ArrowRight,{className:"ml-2 h-4 w-4"})]})})]})]}):nt&&(!mt||gt)?jsxRuntimeExports.jsxs("form",{onSubmit:sr,className:"max-w-3xl space-y-8",children:[mt&&jsxRuntimeExports.jsx("p",{className:"text-sm leading-6 text-ink/60",children:"Include only additional expenses and receipts that you have not submitted before. Your previous requests remain unchanged."}),jsxRuntimeExports.jsx("section",{className:"border-t border-border pt-6",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4",children:[jsxRuntimeExports.jsx(Receipt,{className:"mt-1 h-6 w-6 shrink-0 text-ink/35"}),jsxRuntimeExports.jsxs("div",{className:"w-full",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"1. Total travel expenses"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:"Enter your approved travel expenses only, in euros."}),jsxRuntimeExports.jsx("div",{className:"mt-4 max-w-md",children:jsxRuntimeExports.jsxs("label",{className:"text-sm font-medium",children:["Travel expenses in EUR",jsxRuntimeExports.jsx(Input,{type:"number",min:"0.01",max:"1000000",step:"0.01",value:Mt,onChange:Kt=>zt(Kt.target.value),placeholder:"0.00",className:"mt-2",required:!0})]})})]})]})}),jsxRuntimeExports.jsxs("section",{className:"border border-emerald-200 bg-emerald-50/55 p-6",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"2. Would you like to donate part of your travel reimbursement to EAF?"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm leading-6 text-ink/60",children:"Donations help EAF support fellows where funds are most needed. Saying no is completely fine."}),jsxRuntimeExports.jsx(PulseChoiceGroup,{className:"mt-5 max-w-2xl",columns:2,value:er===null?null:er?"yes":"no",onChange:Kt=>{const mr=Kt==="yes";ur(mr),or(mr?null:0)},options:[{value:"yes",label:"Yes, Iâd like to donate"},{value:"no",label:"No, request the full amount"}]}),er===!0&&jsxRuntimeExports.jsxs("div",{className:"mt-7 border-t border-emerald-200 pt-6",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl",children:"How much would you like to donate?"}),jsxRuntimeExports.jsxs("div",{className:"mt-6 flex items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"font-serif text-4xl",children:qt===null?"â":`${qt}%`}),jsxRuntimeExports.jsx("div",{className:"mt-1 text-sm text-ink/50",children:qt===null?"Choose a percentage":"of your travel reimbursement"})]}),jsxRuntimeExports.jsxs("div",{className:"text-right",children:[jsxRuntimeExports.jsx("div",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/40",children:"Amount donated"}),jsxRuntimeExports.jsx("div",{className:"mt-1 font-serif text-3xl",children:qt===null?"â":formatMoney(lr,"EUR")})]})]}),jsxRuntimeExports.jsx(Slider,{value:[qt??0],onValueChange:([Kt])=>or(Kt),onPointerDownCapture:Kt=>{if(qt!==null)return;const mr=Kt.currentTarget.getBoundingClientRect(),xr=Math.round((Kt.clientX-mr.left)/mr.width*100);or(Math.max(0,Math.min(100,xr)))},min:0,max:100,step:1,unselected:qt===null,className:"mt-7","aria-label":"Percentage of travel reimbursement to donate"}),jsxRuntimeExports.jsxs("div",{className:"mt-2 flex justify-between text-[10px] text-ink/40",children:[jsxRuntimeExports.jsx("span",{children:"0%"}),jsxRuntimeExports.jsx("span",{children:"25%"}),jsxRuntimeExports.jsx("span",{children:"50%"}),jsxRuntimeExports.jsx("span",{children:"75%"}),jsxRuntimeExports.jsx("span",{children:"100%"})]})]}),qt===100&&jsxRuntimeExports.jsxs("div",{className:"mt-5 flex items-start gap-3 border-t border-emerald-200 pt-4 text-sm leading-6 text-emerald-950",children:[jsxRuntimeExports.jsx(Check,{className:"mt-1 h-4 w-4 shrink-0"}),jsxRuntimeExports.jsx("p",{children:"You are donating your full travel reimbursement, so no receipts or bank details are needed."})]})]}),qt!==null&&Bt!==null&&Bt>0&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("section",{className:"border-t border-border pt-6",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4",children:[jsxRuntimeExports.jsx(CloudUpload,{
982className:"mt-1 h-6 w-6 shrink-0 text-ink/35"}),jsxRuntimeExports.jsxs("div",{className:"w-full",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"3. Receipts"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:"Upload one or more PDF, JPG or PNG files. Maximum 20 MB per file."}),jsxRuntimeExports.jsx(Input,{type:"file",multiple:!0,accept:"application/pdf,image/jpeg,image/png,.pdf,.jpg,.jpeg,.png",onChange:Kt=>{Vt(Kt.target.files),Kt.currentTarget.value=""},className:"mt-4"}),At.length>0&&jsxRuntimeExports.jsx("div",{className:"mt-3 border border-border",children:At.map(Kt=>jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between gap-3 border-b border-border px-3 py-2 text-sm last:border-0",children:[jsxRuntimeExports.jsxs("span",{className:"min-w-0 truncate",children:[jsxRuntimeExports.jsx(FileText,{className:"mr-2 inline h-4 w-4 text-ink/35"}),Kt.name," ",jsxRuntimeExports.jsxs("span",{className:"text-ink/40",children:["· ",formatFileSize(Kt.size)]})]}),jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>Gt(mr=>mr.filter(xr=>xr!==Kt)),className:"shrink-0 text-ink/40 hover:text-rose-700","aria-label":`Remove ${Kt.name}`,children:jsxRuntimeExports.jsx(Trash2,{className:"h-4 w-4"})})]},`${Kt.name}-${Kt.size}-${Kt.lastModified}`))})]})]})}),jsxRuntimeExports.jsxs("section",{className:"border-t border-border pt-6",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"4. Bank account details"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/50",children:"Include the account holder, IBAN or account number, and BIC/SWIFT if relevant."}),jsxRuntimeExports.jsx(Textarea,{value:Jt,onChange:Kt=>nr(Kt.target.value),placeholder:`Account holder 983IBAN or account number 984BIC/SWIFT (if needed)`,maxLength:2e3,rows:5,className:"mt-4",required:!0})]})]}),qt!==null&&jsxRuntimeExports.jsxs("div",{className:"border-t border-border pt-6",children:[jsxRuntimeExports.jsx(Button,{type:"submit",disabled:!tr||Dt,children:Dt?Bt===0?"Submittingâ¦":"Uploading and submittingâ¦":Bt===0?"Confirm full donation":"Submit reimbursement request"}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-xs leading-5 text-ink/40",children:"Please check the details before submitting. Contact the EAF team if you need to correct a submitted request."})]})]}):null,et&&jsxRuntimeExports.jsx(AdminRequests,{requests:Tt,onOpenReceipt:Lt})]}):jsxRuntimeExports.jsx(Navigate,{to:pulsePath(),replace:!0})},SubmittedRequest=({request:e,receipts:s,onOpenReceipt:a})=>jsxRuntimeExports.jsx("section",{className:"max-w-3xl border border-emerald-300 bg-emerald-50 p-6 text-emerald-950",children:jsxRuntimeExports.jsxs("div",{className:"flex items-start gap-4",children:[jsxRuntimeExports.jsx(Check,{className:"mt-1 h-6 w-6 shrink-0"}),jsxRuntimeExports.jsxs("div",{className:"w-full",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Request received"}),e.reimbursement_percentage===0?jsxRuntimeExports.jsxs("p",{className:"mt-2 text-sm leading-6",children:["You donated your full travel reimbursement of ",formatMoney(e.total_expenses,e.currency),"."]}):e.reimbursement_percentage===100?jsxRuntimeExports.jsxs("p",{className:"mt-2 text-sm leading-6",children:["You requested the full ",jsxRuntimeExports.jsx("strong",{children:formatMoney(e.requested_amount,e.currency)})," reimbursement for your travel expenses."]}):jsxRuntimeExports.jsxs("p",{className:"mt-2 text-sm leading-6",children:["You requested ",jsxRuntimeExports.jsx("strong",{children:formatMoney(e.requested_amount,e.currency)})," and donated ",100-e.reimbursement_percentage,"% of your ",formatMoney(e.total_expenses,e.currency)," travel reimbursement."]}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-sm text-emerald-900/65",children:["Submitted ",formatDate(e.submitted_at)," · Status: ",formatStatus(e.status)]}),s.length>0&&jsxRuntimeExports.jsxs("div",{className:"mt-5 border-t border-emerald-300 pt-4",children:[jsxRuntimeExports.jsx("p",{className:"text-[10px] uppercase tracking-[0.14em] text-emerald-900/55",children:"Receipts"}),jsxRuntimeExports.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:s.map(c=>jsxRuntimeExports.jsxs(Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void a(c),children:[jsxRuntimeExports.jsx(FileText,{className:"mr-2 h-4 w-4"}),c.file_name]},c.id))})]})]})]})}),AdminRequests=({requests:e,onOpenReceipt:s})=>jsxRuntimeExports.jsxs("section",{className:"mt-12 border-t border-border pt-8",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Admin view"}),jsxRuntimeExports.jsx("h2",{className:"font-serif text-3xl",children:"Reimbursement requests"})]}),jsxRuntimeExports.jsxs("div",{className:"text-sm text-ink/55",children:[jsxRuntimeExports.jsx("strong",{className:"font-serif text-2xl font-normal text-ink",children:e.length})," submitted"]})]}),e.length>0?jsxRuntimeExports.jsx("div",{className:"mt-5 overflow-x-auto border border-border",children:jsxRuntimeExports.jsxs("table",{className:"w-full min-w-[1100px] text-left text-sm",children:[jsxRuntimeExports.jsx("thead",{className:"border-b border-border bg-canvas-soft/55 text-[11px] uppercase tracking-[0.12em] text-ink/45",children:jsxRuntimeExports.jsxs("tr",{children:[jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Fellow"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Travel expenses"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Request"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Bank details"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Receipts"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Status"}),jsxRuntimeExports.jsx("th",{className:"px-4 py-3 font-normal",children:"Submitted"})]})}),jsxRuntimeExports.jsx("tbody",{children:e.map(a=>jsxRuntimeExports.jsxs("tr",{className:"border-b border-border align-top last:border-0",children:[jsxRuntimeExports.jsxs("td",{className:"px-4 py-3 font-medium",children:[a.personName,jsxRuntimeExports.jsx("div",{className:"mt-1 text-xs font-normal text-ink/40",children:a.cohort})]}),jsxRuntimeExports.jsx("td",{className:"whitespace-nowrap px-4 py-3",children:formatMoney(a.total_expenses,a.currency)}),jsxRuntimeExports.jsxs("td",{className:"whitespace-nowrap px-4 py-3",children:[jsxRuntimeExports.jsx("strong",{children:formatMoney(a.requested_amount,a.currency)}),jsxRuntimeExports.jsxs("div",{className:"mt-1 text-xs text-ink/40",children:[100-a.reimbursement_percentage,"% donated"]})]}),jsxRuntimeExports.jsx("td",{className:"max-w-sm whitespace-pre-line px-4 py-3 text-ink/60",children:a.bank_account_details||"â"}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:jsxRuntimeExports.jsx("div",{className:"flex max-w-xs flex-wrap gap-2",children:a.receipts.length>0?a.receipts.map(c=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>void s(c),className:"inline-flex items-center gap-1 text-xs text-ink/60 underline underline-offset-4 hover:text-ink",children:[jsxRuntimeExports.jsx(FileText,{className:"h-3.5 w-3.5"}),c.file_name]},c.id)):"â"})}),jsxRuntimeExports.jsx("td",{className:"px-4 py-3",children:formatStatus(a.status)}),jsxRuntimeExports.jsx("td",{className:"whitespace-nowrap px-4 py-3 text-ink/50",children:formatDate(a.submitted_at)})]},a.id))})]})}):jsxRuntimeExports.jsx("p",{className:"mt-5 text-sm text-ink/50",children:"No reimbursement requests yet."})]}),loadOwnReimbursement=async e=>{if(!supabase)return{requests:[],receipts:[]};const{data:s,error:a}=await supabase.from("academy_reimbursement_requests").select("*").eq("academy_year","2026").eq("person_id",e).order("submitted_at",{ascending:!1});if(a)throw new Error(a.message);if(!(s!=null&&s.length))return{requests:[],receipts:[]};const{data:c,error:g}=await supabase.from("academy_reimbursement_receipts").select("*").in("request_id",s.map(et=>et.id)).order("created_at");if(g)throw new Error(g.message);return{requests:s,receipts:c??[]}},loadAdminReimbursements=async()=>
984{if(!supabase)return[];const{data:e,error:s}=await supabase.from("academy_reimbursement_requests").select("*").eq("academy_year","2026").order("submitted_at",{ascending:!1});if(s)throw new Error(s.message);if(!(e!=null&&e.length))return[];const a=[...new Set(e.map(it=>it.person_id))],c=e.map(it=>it.id),[{data:g,error:et},{data:rt,error:nt}]=await Promise.all([supabase.from("people").select("id,full_name,cohort").in("id",a),supabase.from("academy_reimbursement_receipts").select("*").in("request_id",c).order("created_at")]);if(et)throw new Error(et.message);if(nt)throw new Error(nt.message);const st=new Map((g??[]).map(it=>[it.id,it])),at=new Map;return(rt??[]).forEach(it=>{at.set(it.request_id,[...at.get(it.request_id)??[],it])}),e.map(it=>{var ot,lt;return{...it,personName:((ot=st.get(it.person_id))==null?void 0:ot.full_name)??"Unknown fellow",cohort:((lt=st.get(it.person_id))==null?void 0:lt.cohort)??"â",receipts:at.get(it.id)??[]}})},getReceiptMimeType=e=>{if(supportedReceiptMimeTypes.has(e.type))return e.type;const s=e.name.toLowerCase().split(".").pop();return s==="pdf"?"application/pdf":s==="png"?"image/png":s==="jpg"||s==="jpeg"?"image/jpeg":""},validateReceiptFile=e=>{if(!getReceiptMimeType(e))throw new Error("Receipts must be PDF, JPG or PNG files.");if(e.size<=0)throw new Error(`${e.name} is empty.`);if(e.size>MAX_RECEIPT_SIZE)throw new Error(`${e.name} is larger than 20 MB.`)},safeFileName=e=>e.normalize("NFKD").replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"").slice(-120)||"receipt",formatMoney=(e,s)=>{try{return new Intl.NumberFormat("en-GB",{style:"currency",currency:s,maximumFractionDigits:2}).format(e)}catch{return`${e.toFixed(2)} ${s}`}},formatFileSize=e=>e<1024*1024?`${Math.max(1,Math.round(e/1024))} KB`:`${(e/(1024*1024)).toFixed(1)} MB`,formatDate=e=>new Intl.DateTimeFormat("en-GB",{dateStyle:"medium"}).format(new Date(e)),formatStatus=e=>e.charAt(0).toUpperCase()+e.slice(1);function PulseWishlist(){const[e,s]=reactExports.useState([]),[a,c]=reactExports.useState(""),[g,et]=reactExports.useState(""),[rt,nt]=reactExports.useState("feature"),[st,at]=reactExports.useState(!0),[it,ot]=reactExports.useState(!1),[lt,ct]=reactExports.useState(!1),[dt,ut]=reactExports.useState(""),[xt,gt]=reactExports.useState("");async function ht(){at(!0),ut("");try{if(!supabase)throw new Error("Unavailable");const{data:Ct,error:Tt}=await supabase.rpc("is_pulse_member");if(Tt)throw Tt;if(ct(!!Ct),!Ct){s([]);return}const{data:Pt,error:At}=await supabase.from("pulse_feature_requests").select("id,title,description,kind,created_at").order("created_at",{ascending:!1});if(At)throw At;s(Pt??[])}catch{ut("Could not load the wishlist. Please try again.")}finally{at(!1)}}reactExports.useEffect(()=>{ht()},[]);async function mt(Ct){if(Ct.preventDefault(),!(it||!a.trim()||!g.trim()||!supabase)){ot(!0),ut(""),gt("");try{const{data:Tt,error:Pt}=await supabase.from("pulse_feature_requests").insert({title:a.trim(),description:g.trim(),kind:rt}).select("id,title,description,kind,created_at").single();if(Pt)throw Pt;s(At=>[Tt,...At]),c(""),et(""),gt("Added to the shared wishlist.")}catch{ut("Could not save your request. Your text is still here; please try again.")}finally{ot(!1)}}}const kt="mt-1 w-full border border-border bg-transparent p-3 text-sm focus:outline-none focus:ring-1 focus:ring-ink";return jsxRuntimeExports.jsxs("section",{"aria-label":"Shared wishlist",children:[jsxRuntimeExports.jsx("h2",{className:"font-serif text-2xl",children:"Wishlist & feedback"}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm text-ink/60",children:"Visible to all Pulse members. Add a feature you would like or tell us what could work better."}),st?jsxRuntimeExports.jsx("p",{role:"status",className:"py-6 text-sm",children:"Loading wishlistâ¦"}):lt?jsxRuntimeExports.jsxs("form",{onSubmit:mt,className:"my-6 grid gap-4 border border-border p-5",children:[jsxRuntimeExports.jsxs("label",{className:"text-sm",children:["Type",jsxRuntimeExports.jsxs("select",{className:kt,value:rt,onChange:Ct=>nt(Ct.target.value),disabled:it,children:[jsxRuntimeExports.jsx("option",{value:"feature",children:"Feature request"}),jsxRuntimeExports.jsx("option",{value:"feedback",children:"Feedback"})]})]}),jsxRuntimeExports.jsxs("label",{className:"text-sm",children:["Title",jsxRuntimeExports.jsx("input",{className:kt,value:a,onChange:Ct=>c(Ct.target.value),maxLength:160,required:!0,disabled:it,placeholder:"What would you like to improve?"})]}),jsxRuntimeExports.jsxs("label",{className:"text-sm",children:["Details",jsxRuntimeExports.jsx("textarea",{className:kt,value:g,onChange:Ct=>et(Ct.target.value),maxLength:5e3,rows:3,required:!0,disabled:it,placeholder:"Describe the idea or feedback and how it would help."})]}),jsxRuntimeExports.jsx("button",{className:"min-h-11 justify-self-start bg-ink px-5 py-3 text-sm text-canvas disabled:opacity-50",disabled:it||!a.trim()||!g.trim(),children:it?"Addingâ¦":"Add to wishlist"})]}):!dt&&jsxRuntimeExports.jsx("p",{className:"my-6 text-sm",children:"An active Pulse membership is required to view and add requests."}),dt&&jsxRuntimeExports.jsxs("div",{role:"alert",className:"my-4 text-sm text-red-800",children:[dt," ",jsxRuntimeExports.jsx("button",{className:"underline",onClick:()=>void ht(),children:"Reload wishlist"})]}),xt&&jsxRuntimeExports.jsx("p",{role:"status",className:"my-4 text-sm",children:xt}),!st&<&&!dt&&e.length===0&&jsxRuntimeExports.jsx("p",{className:"my-6 text-sm text-ink/60",children:"No requests yet. Share the first idea."}),jsxRuntimeExports.jsx("div",{className:"grid gap-3",children:e.map(Ct=>jsxRuntimeExports.jsxs("article",{className:"border border-border p-5",children:[jsxRuntimeExports.jsxs("div",{className:"mb-2 flex flex-wrap gap-3 text-xs text-ink/50",children:[jsxRuntimeExports.jsx("span",{children:Ct.kind==="feature"?"Feature request":"Feedback"}),jsxRuntimeExports.jsx("time",{dateTime:Ct.created_at,children:new Date(Ct.created_at).toLocaleDateString()})]}),jsxRuntimeExports.jsx("h3",{className:"break-words font-serif text-xl",children:Ct.t
984itle}),jsxRuntimeExports.jsx("p",{className:"mt-2 whitespace-pre-wrap break-words text-sm leading-6 text-ink/70",children:Ct.description})]},Ct.id))})]})}function PulseFeedback(){return jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx("main",{className:"min-h-screen bg-canvas px-5 py-8 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-3xl",children:[jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos"),className:"inline-flex min-h-11 items-center gap-2 text-sm text-ink/60 hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Demos"]}),jsxRuntimeExports.jsxs("header",{className:"mb-6 mt-5 border-b border-border pb-5",children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"EAF Pulse · Demos"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl font-light sm:text-4xl",children:"Wishlist & feedback"})]}),jsxRuntimeExports.jsx(PulseWishlist,{})]})})})}const venueDemoRegions=[{region:"Alpine & Central",venues:[["DJH Youth Hostel Nuremberg","Germany","Nuremberg",353,9,52,5,"High","https://www.jugendherberge.de/en/youth-hostels/nuernberg/",5,!0],["Burg Schwaneck","Germany","Pullach, Munich",130,11,55,5,"High","https://www.burgschwaneck.de/jugendherberge/zimmer",5,!0],["DJH Youth Hostel Lindau","Germany","Lindau, Lake Constance",244,6,52,4.7,"High","https://www.jugendherberge.de/en/youth-hostels/lindau/",4,!0],["Burg Rothenfels Youth Hostel","Germany","Rothenfels am Main",280,15,55,4.7,"High","https://www.jugendherberge.de/jugendherbergen/burg-rothenfels/",5,!0],["DJH Youth Hostel Halle","Germany","Halle (Saale)",241,8,52,4.6,"High","https://www.jugendherberge.de/en/youth-hostels/halle/",3,!0],["DJH Youth Hostel Garmisch-Partenkirchen","Germany","Garmisch-Partenkirchen",203,6,55,4.6,"Medium","https://www.jugendherberge.de/en/youth-hostels/garmisch-partenkirchen/",4,!0],["DJH Youth Hostel Heidelberg International","Germany","Heidelberg",447,15,89,4.6,"High","https://www.jugendherberge.de/en/youth-hostels/heidelberg/",3,!0],["DJH Youth Hostel Berchtesgaden","Germany","Bischofswiesen / Berchtesgaden",265,6,52,4.55,"Medium","https://www.jugendherberge.de/en/youth-hostels/berchtesgaden/",5,!0],["Jugendherberge Würzburg","Germany","Würzburg",226,6,48,4.5,"Medium","https://www.wuerzburg.de/tourismus/unterkunft-buchen/jugendherberge--hostels?detID=23",3,!0],["DJH Youth Hostel Würzburg","Germany","Würzburg, Franconia",222,7,61,4.5,"High","https://www.jugendherberge.de/en/youth-hostels/wuerzburg/",4,!0],["DJH Youth Hostel Bremen","Germany","Bremen",254,5,63,4.5,"High","https://www.jugendherberge.de/en/youth-hostels/bremen/?mobile=0",4,!0],["DJH Youth Hostel Hanover International","Germany","Hanover",306,7,63,4.5,"High","https://www.jugendherberge.de/en/youth-hostels/hannover/",4,!0],["DJH Youth Hostel Bayreuth","Germany","Bayreuth",180,5,50,4.45,"High","https://www.jugendherberge.de/en/youth-hostels/bayreuth/",4,!0],["DJH Youth Hostel Koblenz","Germany","Ehrenbreitstein Fortress, Koblenz",158,5,63,4.45,"High","https://www.jugendherberge.de/en/youth-hostels/koblenz/",5,!0],["DJH Youth Hostel Naumburg","Germany","Naumburg (Saale)",228,7,52,4.4,"High","https://www.jugendherberge.de/en/youth-hostels/naumburg/",3,!0],["DJH Youth Hostel Kassel","Germany","Kassel",213,10,54,4.4,"High","https://www.jugendherberge.de/en/youth-hostels/kassel/",2,!0],["Burg Rieneck","Germany","Rieneck, Frankfurt/Würzburg region",138,7,55,4.4,"Medium","https://www.burg-rieneck.de/",5,!1],["Jugendbildungsstätte Burg Hoheneck","Germany","Ipsheim, Nuremberg region",80,8,55,4.4,"Medium","https://www.burg-hoheneck.de/",5,!1],["DJH Youth Hostel Rothenburg ob der Tauber","Germany","Rothenburg ob der Tauber",380,16,60,4.4,"Low","https://www.jugendherberge.de/jugendherbergen/rothenburg-ob-der-tauber/",5,!0],["DJH Youth Hostel Bonn","Germany","Bonn-Venusberg",249,9,62,4.4,"Medium","https://www.djh-rheinland.de/docs/bonn/hausprospekt-jh_bonn.en.pdf",4,!0],["Tagungshaus Kloster Heiligkreuztal","Germany","Altheim-Heiligkreuztal",171,17,65,4.4,"Medium","https://www.kloster-heiligkreuztal.de/wir-ueber-uns/",5,!0],["Jugendbildungsstätte Unterfranken","Germany","Würzburg",97,10,54,4.35,"Medium","https://jubi-unterfranken.de/haus/zimmer/",3,!0],["DJH Youth Hostel Lauterbach","Germany","Lauterbach, Hesse",172,8,50,4.3,"High","https://www.jugendherberge.de/en/youth-hostels/lauterbach/",3,!0],["DJH Youth Hostel Schwäbisch Hall","Germany","Schwäbisch Hall",141,5,50,4.3,"Medium","https://www.jugendherberge.de/en/youth-hostels/schwaebisch-hall/",4,!0],["DJH Youth Hostel Bad Homburg","Germany","Bad Homburg, Frankfurt region",214,9,58,4.3,"High","https://www.jugendherberge.de/en/youth-hostels/bad-homburg/",3,!0],["DJH Youth Hostel Borgwedel","Germany","Borgwedel, Schlei fjord",286,7,58,4.3,"Medium","https://www.jugendherberge.de/en/youth-hostels/borgwedel/",5,!0],["DJH Youth Hostel Wiesbaden","Germany","Wiesbaden, Rhine-Main",223,13,60,4.3,"High","https://www.jugendherberge.de/en/youth-hostels/wiesbaden/?mobile=0",3,!0],["DJH Youth Hostel Freiburg International","Germany","Freiburg im Breisgau",350,7,61,4.3,"High","https://www.jugendherberge.de/en/youth-hostels/freiburg/",3,!0],["Haus Ohrbeck","Germany","Georgsmarienhütte near Osnabrück",104,12,62,4.3,"Medium","https://www.haus-ohrbeck.de/haus-ohrbeck/das-wichtigste-in-kuerze/alles-ueber-haus-ohrbeck",4,!0],["DJH Youth Hostel Frankfurt","Germany","Frankfurt am Main",365,12,63,4.3,"Medium","https://www.jugendherberge.de/en/youth-hostels/frankfurt/",3,!0],["Kloster Benediktbeuern","Germany","Benediktbeuern, Bavaria",133,12,72,4.3,"Medium","https://www.kloster-benediktbeuern.de/",5,!0],["DJH Youth Hostel Goslar","Germany","Goslar, Harz",171,8,59,4.25,"High","https://www.jugendherberge.de/en/youth-hostels/goslar/",5,!0],["Burg Ludwigstein","Germany","Witzenhausen, Hesse",180,10,60,4.25,"Medium","https://www.burgludwigstein.de/",5,!0],["DJH Youth Hostel Aachen","Germany","Aachen",157,10,60,4.25,"Medium","https://www.jugendherberge.de/en/youth-hostels/aachen/?xdom=false",4,!0],["DJH Youth Hostel Duisburg Landschaftspark","Germany","Duisburg-Meiderich",142,6,64,4.25,"Medium","https://www.jugendherberge.de/en/youth-hostels/duisburg-landschaftspark/",4,!0
984],["Jugendbildungsstätte Königsdorf","Germany","Königsdorf, Munich region",110,10,55,4.2,"Medium","https://jugendsiedlung-hochland.de/jugendbildungsstaette/",4,!1],["DJH Youth Hostel Bielefeld","Germany","Bielefeld",196,6,62,4.2,"High","https://www.jugendherberge.de/en/youth-hostels/bielefeld/",3,!0],["DJH Youth Hostel Speyer","Germany","Speyer, Upper Rhine",234,7,62,4.2,"High","https://www.jugendherberge.de/en/youth-hostels/speyer/",3,!0],["Bildungshaus Zeppelin & Steinberg","Germany","Goslar, Harz",133,8,64,4.2,"Medium","https://www.bildungshaus-goslar.de/",4,!0],["Haus Venusberg","Germany","Bonn",200,8,65,4.2,"Medium","https://jugendpastoral.erzbistum-koeln.de/haus-venusberg/",4,!1],["DJH Youth Hostel Munich City","Germany","Munich",402,7,70,4.2,"Medium","https://www.jugendherberge.de/en/youth-hostels/muenchen-city/",4,!0],["Kolpinghaus Salzburg","Austria","Salzburg",240,7,75,4.2,"Medium","https://www.kolpinghaus-salzburg.at/de/seminare-veranstaltungen/seminarraeume.html",4,!0],["DJH Youth Hostel Cologne-Riehl","Germany","Cologne-Riehl",506,11,78,4.2,"High","https://www.jugendherberge.de/en/youth-hostels/koeln-riehl/",4,!0],["DJH Youth Hostel Biedenkopf","Germany","Biedenkopf, Hesse",198,7,58,4.1,"Medium","https://www.jugendherberge.de/hessen/tagungshaeuser/",4,!0],["Jugendakademie Walberberg","Germany","Bornheim-Walberberg, Cologne/Bonn region",114,6,60,4.1,"Medium","https://www.jugendakademie.de/",4,!1],["DJH Youth Hostel Dachau","Germany","Dachau, Bavaria",116,7,62,4.1,"High","https://www.jugendherberge.de/en/youth-hostels/dachau/",4,!0],["Haus Altenberg","Germany","Odenthal, near Cologne",160,12,68,4.1,"High","https://www.haus-altenberg.de/",4,!0],["Bildungszentrum Kloster Roggenburg","Germany","Roggenburg, Bavaria",120,23,69,4.1,"Medium","https://www.kloster-roggenburg.de/web/de/uebernachten/uebernachten-bildungszentrum.php",5,!0],["DJH Youth Hostel Lörrach","Germany","Lörrach, Black Forest / Basel",168,5,60,4.05,"High","https://www.jugendherberge.de/en/youth-hostels/loerrach/",3,!0],["DJH Youth Hostel Göttingen","Germany","Göttingen",142,6,61,4.05,"High","https://www.jugendherberge.de/jugendherbergen/goettingen/",3,!0],["Stift Urach","Germany","Bad Urach",81,7,66,4.05,"Medium","https://stifturach.de/veranstaltungsraeume/",5,!0],["Bildungshaus St. Hippolyt","Austria","St. Pölten",99,14,68,4.05,"Medium","https://www.arge-bildungshaeuser.at/bildungshaeuser/detail/bildungshaus-st-hippolyt",4,!0],["DJH Youth Hostel Munich Park","Germany","Munich-Thalkirchen",374,5,68,4.05,"Medium","https://www.jugendherberge.de/jugendherbergen/muenchen-park/",4,!0],["Haus Sankt Ulrich","Germany","Augsburg",91,11,76,4.05,"Medium","https://www.augsburg-tourismus.de/de/veranstaltungsraum/tagungshotel-haus-sankt-ulrich",4,!0],["Jugendbildungsstätte Waldmünchen","Germany","Waldmünchen, Bavaria",165,10,56,4,"Medium","https://www.jugendbildungsstaette.org/",4,!0],["DJH Youth Hostel Dresden Jugendgästehaus","Germany","Dresden",478,5,59,4,"High","https://www.jugendherberge.de/en/youth-hostels/dresden-jugendgaestehaus/",2,!0],["DJH Youth Hostel Düsseldorf","Germany","Düsseldorf-Oberkassel",338,7,72,4,"High","https://www.jugendherberge.de/en/youth-hostels/duesseldorf/",3,!0],["Bildungshaus St. Arbogast","Austria","Götzis, Vorarlberg",125,11,78,4,"Medium","https://www.arbogast.at/portal/raum",4,!0],["DJH Youth Hostel Bad Urach","Germany","Bad Urach, Swabian Alb",135,8,58,3.95,"High","https://www.jugendherberge.de/en/youth-hostels/bad-urach/?mobile=0",3,!0],["Bildungshaus Schloss Retzhof","Austria","Wagna / Leibnitz",80,9,68,3.95,"Medium","https://www.retzhof.at/seminarraume/",5,!0],["Exerzitienhaus Himmelspforten","Germany","Würzburg",98,10,72,3.95,"Medium","https://www.veranstaltungszentrale-wuerzburg.de/locations/exerzitienhaus-himmelspforten",4,!0],["Jugendbildungsstätte Windberg","Germany","Windberg, Bavaria",100,8,58,3.9,"Medium","https://jugendbildungsstaette-windberg.de/",4,!0],["Max Mannheimer Haus","Germany","Dachau, Munich region",116,7,65,3.9,"Medium","https://www.max-mannheimer-haus.de/",3,!1],["Caritas-Pirckheimer-Haus","Germany","Nuremberg",100,19,75,3.9,"Medium","https://www.cph-nuernberg.de/",4,!1],["St. Virgil Salzburg","Austr
984ia","Salzburg",117,14,89,3.9,"High","https://www.virgil.at/en/",4,!0],["DJH Youth Hostel Hamburg Horner Rennbahn","Germany","Hamburg-Horn",423,6,66,3.85,"Medium","https://www.jugendherberge.de/en/youth-hostels/hamburg-horner-rennbahn/?mobile=0",3,!0],["DJH Youth Hostel Stuttgart International","Germany","Stuttgart",311,6,68,3.85,"Medium","https://www.jugendherberge.de/jugendherbergen/stuttgart-international/",3,!0],["Haus Werdenfels","Germany","Nittendorf near Regensburg",90,10,68,3.85,"Low","https://www.haus-werdenfels.de/5200-veranstalter-info/",4,!0],["Bildungshaus Sankt Magdalena","Austria","Linz",120,13,74,3.85,"Low","https://sanktmagdalena.at/seminar",3,!0],["Der Sunderhof","Germany","Seevetal, Hamburg region",130,8,70,3.8,"Medium","https://dersunderhof.de/",4,!1],["Bildungshaus St. Martin â Kloster Bernried","Germany","Bernried am Starnberger See, Munich region",95,7,75,3.8,"Medium","https://www.bildungshaus-bernried.de/",5,!1],["Schloss Seggau","Austria","Leibnitz, Styria",170,16,92,3.8,"Medium","https://seggau.com/en/startpage-home/",5,!0],["Kloster Irsee","Germany","Irsee, Bavaria",112,15,95,3.8,"Medium","https://www.kloster-irsee.de/",5,!0],["Château LouÄeÅ / Maxmilian Lifestyle Resort","Czechia","LouÄeÅ, Central Bohemia",140,7,113,3.8,"High","https://www.strednicechycb.cz/en/venue/loucen-castle-and-hotel-maxmilian-lifestyle-resort/",5,!0],["Bildungshaus Schloss Puchberg","Austria","Wels, Upper Austria",90,12,82,3.75,"Medium","https://schlosspuchberg.at/",5,!0],["Schönblick Christian Guest Centre","Germany","Schwäbisch Gmünd, Stuttgart region",530,23,80,3.7,"Medium","https://schoenblick.de/de/gruppen-und-tagungen",4,!1],["Kardinal Schulte Haus","Germany","Bergisch Gladbach-Bensberg",272,24,105,3.7,"Medium","https://www.fhdw.de/en/partnerunternehmen/cardinal-schulte-house",5,!0],["Evangelische Jugendbildungsstätte Neukirchen","Germany","Lautertal-Neukirchen, Coburg region",103,8,60,3.6,"Medium","https://jubi-elkb.de/",3,!1],["Jugendbildungsstätte Babenhausen","Germany","Babenhausen, Memmingen region",106,10,60,3.6,"Medium","https://www.jubi-babenhausen.de/",3,!1],["Katholisch-Soziales Institut","Germany","Siegburg, Cologne/Bonn region",120,15,95,3.6,"Medium","https://www.ksi.de/",5,!1],["Bildungshaus St. Bernhard","Germany","Rastatt, Baden-Württemberg",136,10,82,3.55,"Medium","https://www.st-bernhard-rastatt.de/ihr-tagungshaus/",4,!0],["Evangelisches Bildungszentrum Bad Bederkesa","Germany","Bad Bederkesa, Bremen/Bremerhaven region",100,11,80,3.5,"Medium","https://ev-bildungszentrum.de/",4,!1],["Arbeitnehmer-Zentrum Königswinter","Germany","Königswinter, Bonn/Cologne region",140,10,85,3.5,"Medium","https://www.azk-csp.de/",4,!1],["Haus der Kirche â Evangelische Akademie Baden","Germany","Bad Herrenalb, Karlsruhe region",100,10,95,3.4,"Medium","https://www.haus-der-kirche.ekiba.de/",4,!1],["DJH Youth Hostel Cologne-Deutz","Germany","Cologne",506,7,110,3.4,"High","https://www.jugendherberge.de/jugendherbergen/koeln-deutz/tagen/",3,!0],["Kloster NaturSinne","Austria","Bucklige Welt, Lower Austria",98,8,85,3.3,"Medium","https://klosternatursinne.at/",4,!0],["Maternushaus","Germany","Cologne",100,13,105,3.3,"Medium","https://tagen.erzbistum-koeln.de/maternushaus/start/",4,!1],["Tagungszentrum Schmerlenbach","Germany","Hösbach, Frankfurt/Aschaffenburg region",97,12,105,3.3,"Medium","https://www.schmerlenbach.de/",5,!1],["Kloster Kappel","Switzerland","Kappel am Albis, Zürich/Zug",100,18,110,3.3,"Medium","https://www.klosterkappel.ch/de",5,!1],["Evangelische Akademie Bad Boll","Germany","Bad Boll, Stuttgart region",115,16,105,3.1,"Medium","https://et-wue.de/unsere-haeuser/ev-tagungsstaette-bad-boll/",4,!1]]},{region:"France & Benelux",venues:[["Château de Villebon","France","Villebon-sur-Yvette, Paris region",90,8,40,4.95,"High","https://chateauvillebon91.sitew.fr/",5,!0],["Château de Jambville","France","Jambville, Ãle-de-France",200,27,55,4.9,"Medium","https://jambville.sgdf.fr/",5,!0],["Centre spirituel du Hautmont","France","Mouvaux, Lille",90,20,60,4.8,"High","https://www.hautmont.org/",5,!0],["Notre-Dame de lâOuÿe","France","Dourdan forest, Paris regi
984on",207,21,65,4.75,"High","https://www.notredamedelouye.fr/maison",5,!0],["Destelheide","Belgium","Dworp, near Brussels",240,12,55,4.7,"High","https://www.destelheide.be/en/stay/organising-events/",4,!0],["Emmaus Bezinningscentrum","Netherlands","Helvoirt near âs-Hertogenbosch",365,9,55,4.7,"High","https://emmausbezinningscentrum.nl/verblijf/",4,!0],["éthic étapes Côté Lac Ãvian","France","Ãvian-les-Bains",182,6,65,4.6,"Medium","https://ethic-etapes.fr/ethic-etapes-cote-lac-evian",5,!0],["Domaine de la Frayse","France","Fargues-Saint-Hilaire near Bordeaux",90,6,55,4.5,"Low","https://la-frayse.ufcv.fr/centre-du-domaine-de-la-frayse",5,!0],["Foyer Sainte-Anne","France","Montferrand-le-Château near Besançon",90,7,58,4.5,"High","https://www.foyersteanne.fr/page/1839018-nos-propositions-salles-repas-chambres",4,!0],["Centre Culturel Saint-Thomas","France","Strasbourg",176,20,97,4.5,"High","https://www.centre-st-thomas.fr/les-salles",4,!0],["La Marlagne","Belgium","Wépion near Namur",200,19,56,4.4,"Medium","https://lamarlagne.cfwb.be/occuper-nos-espaces",4,!0],["Parc d'Olhain","France","Maisnil-lès-Ruitz, Hauts-de-France",120,7,62,4.4,"Medium","https://www.parcdolhain.fr/seminaire-entreprise-bethune/",4,!0],["Domaine de Massembre","Belgium","Heer-sur-Meuse near Dinant",300,10,55,4.3,"Low","https://www.massembre.be/nl/aanbod",4,!0],["éthic étapes CIS Wogenscky","France","Saint-Ãtienne",118,6,55,4.3,"Medium","https://ethic-etapes.fr/ethic-etapes-cis-wogenscky",2,!0],["éthic étapes Lac de Maine","France","Angers",154,10,58,4.3,"High","https://ethic-etapes.fr/ethic-etapes-lac-de-maine",4,!0],["La Touraine Center","France","Longeville-sur-Mer, Vendée",261,8,58,4.3,"Medium","https://ethic-etapes.fr/en/destinations/list-centers",5,!0],["Ethic Etapes Dijon","France","Dijon",219,8,60,4.3,"Medium","https://www.cri-dijon.com/en/frequently-asked-questions",3,!0],["CISL Ethic Etapes Lyon","France","Lyon",200,10,62,4.3,"Medium","https://www.cis-lyon.com/",3,!0],["éthic étapes CIS de Narbonne","France","Narbonne",100,6,56,4.25,"Medium","https://ethic-etapes.fr/ethic-etapes-cis-de-narbonne",4,!0],["éthic étapes Val de lâHort","France","Anduze, Cévennes",140,7,56,4.25,"High","https://ethic-etapes.fr/en/ethic-etapes-val-de-lhort",5,!0],["Notre-Dame de Parménie","France","Beaucroissant, Isère",85,6,58,4.25,"Medium","https://www.parmenie.fr/hebergement-jeunes-familles-groupes-reunions-parmenie/",5,!0],["éthic étapes Relais Valrance","France","Saint-Sernin-sur-Rance, Aveyron",300,9,56,4.2,"High","https://ethic-etapes.fr/ethic-etapes-relais-valrance",5,!0],["YMCA Le Rocheton","France","La Rochette near Paris",146,14,58,4.2,"Medium","https://ymcafrance.fr/trouver-un-ymca/ymca-rocheton/",3,!0],["CIARUS Strasbourg","France","Strasbourg",295,7,70,4.2,"Medium","https://www.ciarus.com/en/",4,!0],["Domaine Lyon Saint-Joseph","France","Sainte-Foy-lès-Lyon",200,19,70,4.2,"Medium","https://www.domaine-lyon-saint-joseph.fr/the-domaine-english",4,!0],["éthic étapes Le Cart","France","Sommières, Occitanie",147,6,57,4.15,"High","https://ethic-etapes.fr/en/ethic-etapes-le-cart",4,!0],["éthic étapes Archipel Saint Cyr","France","Beaumont-Saint-Cyr, near Poitiers",140,7,59,4.15,"High","https://ethic-etapes.fr/en/destinations/list-centers",4,!0],["éthic étapes CISL Lyon","France","Lyon",187,10,60,4.15,"High","https://ethic-etapes.fr/en/ethic-etapes-cisl",3,!0],["éthic étapes Le Pont du Metty","France","La Bresse, Vosges",210,8,58,4.1,"High","https://ethic-etapes.fr/en/ethic-etapes-le-pont-du-metty",4,!0],["éthic étapes Val de Loire","France","Blois",120,6,58,4.1,"Medium","https://ethic-etapes.fr/ethic-etapes-val-de-loire",3,!0],["La Foresta","Belgium","Vaalbeek, near Leuven",180,10,72,4.1,"Low","https://www.laforesta.be/",4,!0],["éthic étapes La Roche du Trésor","France","Pierrefontaine-les-Varans, Jura",160,8,62,4.05,"Medium","https://www.ethic-etapes.fr/destinations/liste-centres",5,!0],["Château de la Plinguetière","France","Saint-Aignan-Grandlieu, Nantes",200,6,74,4.05,"Medium","https://www.plinguetiere.fr/en/",5,!0],["Maison Notre-Dame du Chant-d'Oiseau","Belgium","Brussels",110,11,78,4.05,"Medium","https://www.chant-oiseau.be/",4,!0],["éthic étapes Espace Saint Ex","France","Autun, Burgundy",108,7,55,4,"High","https://ethic-etapes.fr/en/ethic-etapes-espace-saint-ex",3,!0],["éthic étapes CPA Lathus","France","Lathus-Saint-Rémy, Vienne",200,11,60,4,"Medium","https://www.ethic-etapes.fr/destinations/liste-centres",4,!0],["éthic étapes CIS de Val Cenis","France","Val Cenis, French Alps",300,6,66,4,"Medium","https://ethic-etapes.fr/en/destinations/list-centers",5,!0],["éthic étapes Ciarus","France","Strasbourg",309,5,67,4,"High","https://www.ethic-etapes.fr/en/ethic-etapes-ciarus",3,!0],["CIS de Champagne Reims","France","Reims",203,12,68,4,"High","https://www.cis-reims.co.uk/",3,!0],["Floreal Blankenberge","Belgium","Blankenberge",300,14,70,4,"Low","https://www.florealgroup.be/en/meetings-and-events/floreal-blankenberge",3,!0],["CREPS Ãle-de
984-France","France","Châtenay-Malabry, Paris region",320,20,72,4,"High","https://www.creps-idf.fr/accueil.infos",3,!0],["Domaine du Lazaret","France","Sète",320,12,72,4,"Medium","https://www.lazaretsete.com/seminaires-bord-de-mer-reunions-congres/",4,!0],["éthic étapes Val de Loire Blois","France","Blois, Loire Valley",120,6,64,3.95,"Medium","https://www.ethic-etapes.fr/destinations/liste-centres",3,!0],["Floreal La Roche-en-Ardenne","Belgium","La Roche-en-Ardenne",300,8,68,3.9,"Low","https://www.florealgroup.be/fr/entreprises-et-organisations/floreal-la-roche-en-ardenne",5,!0],["Valpré Lyon","France","Ãcully, Lyon",220,20,85,3.9,"Medium","https://events.lyon-france.com/en/your-event/meeting-venues/valpre-lyon",4,!0],["Landgoed ISVW","Netherlands","Leusden",230,10,88,3.9,"Medium","https://www.landgoedisvw.nl/en",4,!0],["Château de Périgny","France","Vouillé, near Poitiers",100,7,90,3.9,"Low","https://www.chateau-perigny.com/en/services/your-seminar-at-the-chateau-de-perigny",5,!0],["NH Eindhoven Conference Centre Koningshof","Netherlands","Veldhoven",1018,80,94,3.9,"Medium","https://www.minorhotels.com/en/destinations/netherlands/eindhoven/nh-eindhoven-conference-centre-koningshof",4,!0],["éthic étapes Jean Monnet","France","Romorantin-Lanthenay, Sologne",166,7,58,3.85,"High","https://ethic-etapes.fr/en/ethic-etapes-jean-monnet",3,!0],["éthic étapes Domaine du Manoir dâArgueil","France","Argueil, Normandy",153,8,66,3.85,"Medium","https://www.ethic-etapes.fr/destinations/liste-centres",5,!0],["CFSR Les Rives de Sablé","France","Sablé-sur-Sarthe",104,6,58,3.8,"Medium","https://www.cfsr-sablesursarthe.fr/",3,!0],["éthic étapes CIS Besançon","France","Besançon",101,8,65,3.8,"Medium","https://www.ethic-etapes.fr/destinations/liste-centres",3,!0],["Espace Montcalm","France","Vannes, Brittany",177,16,66,3.8,"Medium","https://www.montcalm-vannes.org/fr/location-de-salles/nos-salles/",4,!0],["Irish College Leuven","Belgium","Leuven",130,8,85,3.8,"Medium","https://www.irishcollegeleuven.eu/conference/",5,!1],["Kontakt der Kontinenten","Netherlands","Soesterberg",260,25,92,3.8,"Medium","https://www.kontaktderkontinenten.nl/en/",4,!0],["Parkhotel Horst","Netherlands","Horst",156,12,92,3.8,"Medium","https://www.parkhotelhorst.nl/en/",4,!0],["Domaine de Ronchinne","Belgium","Maillen, near Namur",200,10,95,3.8,"Medium","https://en.domainederonchinne.be/espaces",5,!0],["Landgoed de Horst","Netherlands","Driebergen-Rijsenburg",240,30,96,3.8,"Low","https://www.landgoeddehorst.nl/vergaderzalen?filter=pax2",5,!0],["Hotel Ernst Sillem Hoeve","Netherlands","Den Dolder / Lage Vuursche",170,18,98,3.8,"Medium","https://esh.nl/en/",5,!0],["Oude Abdij Drongen","Belgium","Drongen, Ghent",140,12,105,3.8,"High","https://www.oudeabdij.be/english.html",5,!0],["Centre Jean XXIII Annecy","France","Annecy-le-Vieux",140,8,86,3.75,"Medium","https://en.centrejean23.com/@@search",5,!0],["FIAP Paris","France","Paris",486,26,88,3.7,"Medium","https://www.fiap.paris/en/",3,!0],["Floreal Mont-Saint-Aubert","Belgium","Mont-Saint-Aubert near Tournai",90,7,88,3.7,"Medium","https://www.florealgroup.be/fr/entreprises-et-organisations/floreal-mont-saint-aubert",5,!0],["Landgoed Mennorode","Netherlands","Elspeet",300,35,88,3.7,"Medium","https://www.mennorode.nl/",4,!0],["Woudschoten Hotel & Conference Centre","Netherlands","Zeist",278,30,118,3.7,"Medium","https://www.woudschoten.nl/en/",5,!0],["Domaine de Frémigny","France","Bouray-sur-Juine, Ãle-de-France",220,20,120,3.7,"Medium","https://domaine-de-fremigny.com/",5,!0],["De Ruwenberg","Netherlands","Sint-Michielsgestel near 's-Hertogenbosch",392,40,125,3.7,"Medium","https://ruwenberg.nl/congreslocatie/",5,!0],["Centre Port-Royal","France","Saint-Lambert-des-Bois, Ãle-de-France",70,10,92,3.65,"Medium","https://www.centreportroyal.com/",4,!0],["De Plesman","Netherlands","The Hague",204,10,120,3.65,"Medium","https://thehague.com/business/en/find-a-venue/de-plesman",5,!0],["Château de Châtenay","France","Châtenay-en-France",90,12,128,3.65,"Low","https://chateaudechatenay.fr/en/seminaire/",5,!0],["Akoesticum","Netherlands","Ede",144,13,90,3.6,"Medium","https://akoesticum.org/en/",4,!1],["Centre Sportif de Normandie â Houlgate","France","Houlgate, Normandy coast",212,8,78,3.55,"Medium","https://www.sport-normandie.fr/le-centre/le-site-de-houlgate/",3,!0],["Bovendonk","Netherlands","Hoeven, North Brabant",77,15,96,3.55,"Medium","https://www.bovendonk.nl/en-gb/meeting-events-locatie-noord-brabant",5,!0],["Bilderberg Résidence Groot Heideborgh","Netherlands","Garderen, Veluwe",170,21,125,3.45,"Medium","https://www.bilderberg.nl/en/meetings-events/residence-groot-heideborgh/meetingrooms-residence-groot-heideborgh/",5,!0],["CISP Ravel","France","Paris",220,22,85,3.4,"Medium","https://www.hotel-cis-paris-ravel.com/fr/",3,!1],["Golden Lakes Hotel & Conference Centre","Belgium","Lacs de l'Eau d'Heure",220,7,115,3.4,"Medium","https://www.goldenlakeshotel.be/fr/centre-seminaire",5,!0],["Domaine de la Forêt d'Orient","France","Rouilly-Sacey, Champagne",156,8,112,3.35,"High","https://www.domaineforetdorient.com/seminars-hotel-restaurant-spa-troyes-rouilly-sacey",5,!0],["Domaine Maritime de Beg Porz","France","Moëlan-sur-Mer, Brittany",100,6,82,3.3,"Low","https://www.begporz.bzh/%C3%A0-terre/formule-h%C3%B4teli%C3%A8re/",5,!0]]},{region:"Italy & Adriatic",venues:[["St. Stanislavâs Institution","Slovenia","Ljubljana",100,8,55,4.9,"Low","https://www.stanislav.si/dejavnosti/najem-prostorov/",5,!1],["Centro Pastorale Ambrosiano â Seveso","Italy","Seveso near Milan",300,14,60,4.85,"High","https://www.centroambrosiano.it/centro-pastorale-ambrosiano/",5,!0],["Hostel DIC","Slovenia","Ljubljana",600,10,55,4.5,"High","https://hosteldic.com/groups/",3,!1],["University of Zagreb Summer Campus","Croatia","Zagreb",1e3,10,55,4.5,"Low","https://www.unizg.hr/homepage/international-exchange/exchange-students/student-services/housing/",3,!1],["Fraterna Domus Sacrofano","Italy","Sacrofano near Rome",500,25,60,4.4,"Low","https://fraternadomus.it/dove/sacrofano/",4,!0
984],["Lužnica Manor Marijin Dvor","Croatia","Lužnica, near Zagreb",66,10,65,4.3,"Medium","https://www.meetinzagreb.hr/news/luznica-manor-a-historical-venue-just-outside-zagreb-perfect-for-inspirational-and-spiritual-events",5,!1],["CÅ OD Bohinj","Slovenia","Bohinj",85,5,50,4.25,"Medium","https://www.csod.si/dom/bohinj/bivalni-pogoji",5,!0],["Hotel Fonte Angelica","Italy","Nocera Umbra",340,7,60,4.2,"Medium","https://www.ospitalitadiocesana.com/en/hotel-fonte-angelica/",4,!0],["University of Rijeka Trsat Campus","Croatia","Rijeka",500,10,62,4.2,"Low","https://uniri.hr/sveuciliste-i-drustvo/usluge-sveucilista/",4,!1],["Monastero San Lodovico","Italy","Orvieto, Umbria",90,5,65,4.2,"Low","https://www.monasterosanlodovico.it/",5,!0],["Casa per Ferie Seraphicum","Italy","Rome EUR",180,8,58,4.15,"Medium","https://www.casaperferieseraphicum.org/it/sale",3,!0],["Dom sv. Jožef","Slovenia","Celje",92,10,60,4.15,"High","https://www.jozef.si/nastanitve/",4,!1],["Centro Giovanni XXIII Frascati","Italy","Frascati, near Rome",500,10,68,4.1,"Medium","https://centrogiovanni23.it/",4,!0],["Villa Aurelia Roma","Italy","Rome",190,10,88,4.1,"Medium","https://www.villaaureliaroma.com/en/",5,!0],["Villa Cagnola","Italy","Gazzada Schianno, Lombardy",140,10,82,4,"Medium","https://villacagnola.com/en/",5,!0],["Foresteria Santa Scolastica","Italy","Subiaco, Lazio",90,5,65,3.95,"Low","https://www.foresteria-subiaco.com/en/home-2/",5,!0],["Santuario della Verna Guesthouse","Italy","Chiusi della Verna, Tuscany",120,6,65,3.9,"High","https://www.laverna.it/en/guesthouse/",5,!0],["CAAS Dubrovnik","Croatia","Dubrovnik",70,12,75,3.9,"High","https://caas.unizg.hr/fact-sheet",5,!1],["Olympia Vodice","Croatia","Vodice",794,6,95,3.9,"Medium","https://olympiavodice.hr/en/mice",5,!0],["Hotel Casa Tra Noi","Italy","Rome",300,5,74,3.85,"Medium","https://www.hotelcasatranoiroma.com/en/meeting/",3,!0],["Domus Pacis Assisi","Italy","Santa Maria degli Angeli, Assisi",346,16,70,3.8,"Medium","https://domuspacis.it/en/meeting/",4,!0],["Terme Olimia","Slovenia","PodÄetrtek",500,7,94,3.8,"Low","https://www.terme-olimia.com/en/mice-in-terme-olimia",5,!0],["Zanhotel & Meeting Centergross","Italy","Bentivoglio, Bologna region",304,12,95,3.8,"High","https://www.zanhotel.it/en/hotel-meeting-centergross-bologna",4,!0],["Villa Tuscolana","Italy","Frascati near Rome",184,10,96,3.8,"Medium","https://www.villatuscolana.com/en/meeting-en/",5,!0],["Savoia Hotel Regency","Italy","Bologna",196,27,110,3.8,"High","https://www.savoia.eu/en/savoia-hotel-regency.html",5,!0],["Hotel Croatia Cavtat","Croatia","Cavtat",974,8,112,3.8,"Medium","https://www.croatiameetings.com/venue/hotel-croatia-cavtat/297/",5,!0],["Savoia Excelsior Palace","Italy","Trieste",288,9,118,3.8,"Medium","https://www.turismofvg.it/en/mice/our-venues/starhotels-savoia-excelsior-palace?LangSetCMS=en",5,!0],["Centro Ad Gentes Nemi","Italy","Nemi, Alban Hills",130,4,70,3.75,"Medium","https://www.adgentes.net/SVD%20Nemi%20Web%20Ad%20Gentes.html",5,!0],["Hotel Kompas Bled","Slovenia","Bled",190,5,92,3.75,"Medium","https://www.bled.si/en/accommodation/list-of-accommodations/14/hotel-kompas-bled/",5,!0],["Centro di Spiritualità Padre Pio","Italy","San Giovanni Rotondo",200,7,68,3.7,"Medium","https://www.centrospiritualepadrepio.it/en/",3,!0],["Casa per Ferie Maria Santissima Assunta","Italy","Rome",98,7,70,3.7,"Medium","https://www.ssassunta.it/",3,!1],["Hotel Medena","Croatia","Seget Donji / Trogir",950,5,78,3.7,"Low","https://www.hotelmedena.com/",3,!0],["Hotel International Zagreb","Croatia","Zagreb",414,6,82,3.7,"Medium","https://www.maistra.com/properties/hotel-international/",3,!0],["Casa La Salle Roma","Italy","Rome",220,7,85,3.7,"Medium","https://www.casalasalle.it/en/",3,!0],["Hotel AntunoviÄ Zagreb","Croatia","Zagreb",316,20,92,3.7,"High","https://antunovic.hr/",3,!0],["UNA Hotels Bologna San Lazzaro","Italy","San Lazzaro di Savena, Bologna",304,12,105,3.7,"High","https://www.unaitalianhospitality.com/en/hotels/una-hotels-bologna-san-lazzaro",5,!0],["Hotel Caesius Thermae & Spa Resort","Italy","Bardolino, Lake Garda",370,10,112,3.7,"High","https://www.caesiuscongresscenter.com/",5,!0],["TH Lazise â Hotel Parchi del Garda","Italy","Lazise, Lake Garda",466,9,112,3.7,"Medium","https://www.th-resorts.com/en/th-lazise-hotel-garda-parks-conference-center/",5,!0],["Valamar Lacroma Hotel","Croatia","Dubrovnik",802,11,120,3.7,"Medium","https://mice.valamar.com/en/hotels/valamar-lacroma-dubrovnik-hotel/",5,!0],["Grand Hotel Rimini","Italy","Rimini, Emilia-Romagna",240,14,130,3.7,"Medium","https://www.grandhotelrimini.com/en-GB/meeting",5,!0],["Hotel Habakuk","Slovenia","Maribor",280,7,132,3.7,"High","https://habakuk.si/en/",4,!0
984],["Hotel Dubrovnik Palace","Croatia","Dubrovnik, Lapad peninsula",616,11,155,3.7,"Medium","https://www.adriaticluxuryhotels.com/hotel-dubrovnik-palace/meetings-and-events/",5,!0],["Hotel Kompas Kranjska Gora","Slovenia","Kranjska Gora",312,5,86,3.65,"Medium","https://kranjska-gora.si/en/accommodation/hotel-kompas",5,!0],["Hotel Continental Rimini","Italy","Rimini, Emilia-Romagna",230,7,95,3.65,"Medium","https://www.hotelcontinentalrimini.it/en/meeting-rooms/",4,!0],["Hotel Veronesi La Torre","Italy","Dossobuono, Verona",180,11,125,3.65,"High","https://www.hotelveronesilatorre.it/en/",5,!0],["Foresteria del Monastero di Camaldoli","Italy","Camaldoli, Tuscany",154,8,70,3.6,"Medium","https://www.camaldoli.it/comunita-monastica/monastero/foresteria/",5,!0],["Hotel Well / Terme Tuhelj","Croatia","Tuheljske Toplice",528,6,92,3.6,"Medium","https://www.kongresi-well.hr/",4,!0],["Grand Hotel Adriatic","Croatia","Opatija",630,8,96,3.6,"Medium","https://www.opatija-convention.com/en/grand-hotel-adriatic/",5,!0],["Hotel Park Bled","Slovenia","Bled",400,7,96,3.6,"Medium","https://www.bled.si/en/meetings/meeting-planning/venues/2020090714242520/hotel-park-bled/",5,!0],["Grand Hotel Bernardin","Slovenia","Portorož",482,17,105,3.6,"Medium","https://admin.sava-hotels-resorts.com/en/st-bernardin-resort-portoroz/congresses-and-meetings/congresses-and-conferences/",5,!0],["LifeClass Hotels & Spa Portorož","Slovenia","Portorož",800,10,105,3.6,"Low","https://www.lifeclass.net/en/",5,!0],["Amadria Park Ivan & Convention Centre Šibenik","Croatia","Šibenik",744,11,125,3.6,"Medium","https://www.amadriapark.com/mice/sibenik/convention-centre-sibenik/",5,!0],["Du Lac et Du Parc Grand Resort","Italy","Riva del Garda, Trentino",500,11,125,3.6,"High","https://www.trentinocb.it/index.cfm/en/venues/Hotel-Du-Lac-et-Du-Parc-Riva-del-Garda/",5,!0],["FH55 Grand Hotel Mediterraneo","Italy","Florence",654,15,128,3.6,"Medium","https://www.fhhotelgroup.it/it/grand-hotel-mediterraneo-firenze/hotel-centro-congressi-firenze",4,!0],["Grand Hotel Dino","Italy","Baveno, Lake Maggi
984ore",700,36,140,3.6,"Medium","https://zaccherahotels.com/en/grand-hotel-dino/",5,!0],["Hilton Sorrento Palace","Italy","Sorrento, Campania",650,21,150,3.6,"High","https://www.hilton.com/en-gb/hotels/rrohihi-hilton-sorrento-palace/events/",5,!0],["Santuario di Picciano","Italy","Matera, Basilicata",105,5,58,3.55,"Low","https://www.santuariopicciano.it/monastero/ospitalita/",4,!0],["Bluesun Hotel Elaphusa","Croatia","Bol, BraÄ",600,5,91,3.55,"Medium","https://www.bluesunhotels.com/en/hotel-elaphusa-bol-brac",5,!0],["Hotel Sporting Rimini","Italy","Rimini",220,7,108,3.55,"High","https://www.hotelsportingrimini.com/sale-congressi",5,!0],["Towers Hotel Stabiae Sorrento Coast","Italy","Castellammare di Stabia, Campania",300,8,115,3.55,"Medium","https://www.towershotelsorrento.com/uploads/cms_apps/files/conference--banqueting-plan-towers-hotel-stabiae-sorrento-coast.pdf",5,!0],["Sheraton Lake Como Hotel","Italy","Como",270,6,155,3.55,"High","https://www.marriott.com/en-us/hotels/milsc-sheraton-lake-como-hotel/events/",5,!0],["Grand Hotel Tiziano e dei Congressi","Italy","Lecce",542,13,92,3.5,"High","https://www.grandhoteltiziano.it/it/centro-congressi/sala-tiziano",3,!0],["Park Hotel ai Cappuccini","Italy","Gubbio",184,13,98,3.5,"Medium","https://www.parkhotelaicappuccini.it/en/events-weddings/meeting/",5,!0],["Parc Hotel Peschiera del Garda","Italy","Peschiera del Garda",1500,10,105,3.5,"Medium","https://www.parchotelpeschiera.it/en/congress-meetings/",4,!0
984],["Rikli Balance Hotel","Slovenia","Bled",300,8,108,3.5,"Medium","https://www.slovenia-convention.com/upcp_product/rikli-balance-hotel/",5,!0],["Hotel Jezero","Croatia","Plitvice Lakes National Park",448,5,90,3.45,"Medium","https://np-plitvicka-jezera.hr/en/plan-your-visit/hotels-and-camps/hotel-jezero/",5,!0],["Hotel Mediterraneo Riccione","Italy","Riccione, Emilia-Romagna",206,8,98,3.45,"Medium","https://www.mediterraneoriccione.com/offerte/meeting-e-congressi-a-riccione-e-rimini",5,!0],["Hotel San Marco Verona","Italy","Verona",220,11,98,3.45,"High","https://www.sanmarco.vr.it/en/convention-and-events.htm",4,!0],["Hotel Jama","Slovenia","Postojna Cave Park",312,6,100,3.45,"Medium","https://www.postojnska-jama.eu/en/hotel-jama/conference-halls/",5,!0],["Hotel Baia Flaminia","Italy","Pesaro",240,8,108,3.45,"High","https://www.hotelbaiaflaminia.com/en/conferences.php",5,!0],["Hotel Simplon","Italy","Baveno, Lake Maggiore",226,10,125,3.45,"Medium","https://zaccherahotels.com/en/hotel-simplon/",5,!0],["Best Western CTC Hotel Verona","Italy","San Giovanni Lupatoto, Verona",406,9,85,3.4,"Medium","https://book.bestwestern.it/IT/hotel_a_Verona-San-Giovanni-Lupatoto_98326.aspx",2,!0],["Living Place Hotel Bologna","Italy","Bologna",410,9,98,3.4,"High","https://www.livingplacehotelbologna.com/en-GB/meeting_and_events",3,!0],["voco Parma & Congressi","Italy","Parma",332,7,100,3.4,"Medium","https://www.hotelparmaecongressi.com/en/",4,!0],["Grand Hotel Adriatico Florence","Italy","Florence",326,7,118,3.4,"High","https://www.hoteladriatico.it/business-hotel-florence",3,!0],["Hotel Ariston Paestum","Italy","Paestum, Campania",220,8,108,3.35,"Medium","https://hotelaristonpaestum.com/",5,!0],["Grand Hotel Toplice","Slovenia","Bled",174,9,135,3.35,"Medium","https://www.bled.si/mma/bled_brosura_isuu.pdf/2019100909592738/?m=1570607950",5,!0],["Club Hotel Dante Cervia","Italy","Cervia, Adriatic coast",488,9,105,3.3,"High","https://clubhoteldante.it/congressi/",4,!0],["Hotel Pietra di Luna","Italy","Maiori, Amalfi Coast",190,8,125,3.25,"Medium","https://www.pietradilunahotel.it/en/",5,!0]]},{region:"Iberia",venues:[["Mosteiro de Vairão","Portugal","Vila do Conde, near Porto",136,6,35,4.9,"High","https://apcc.org.pt/en/group-accommodation/mosteiro-de-vairao-2/",5,!0],["Hotel Seminário Torre dâAguilha","Portugal","São Domingos de Rana, LisbonâSintra",108,10,60,4.8,"High","https://www.aguilha.com/EN/hotel.html",4,!0],["La Salle LlÃria","Spain","LlÃria near Valencia",114,13,55,4.75,"High","https://lliria.lasalle.es/",4,!0],["Casa Cristo Rey","Spain","Pozuelo de Alarcón, Madrid",192,8,60,4.65,"Medium","https://cpcr.es/los-cooperadores/casa-cristo-rey/",4,!0],["Cova de Sant Ignasi","Spain","Manresa, Catalonia",150,12,60,4.6,"Low","https://www.covamanresa.cat/es/lugar-de-acogida-y-otras-actividades",5,!0],["Casa de Ejercicios San José","Spain","San Lorenzo de El Escorial",360,14,58,4.5,"Medium","https://www.casasanjoseescorial.es/ofrecemos/",4,!0],["Centro Pastoral Paulo VI","Portugal","Fátima",400,8,55,4.3,"High","https://www.fatima.pt/en/pages/places-for-pastoral-training",3,!0],["Centro de Espiritualidad Loyola","Spain","Azpeitia, Basque Country",152,17,58,4.2,"Medium","https://loyola.global/es/cel",4,!0],["Casa Diocesana de Vilar","Portugal","Porto",180,6,62,4.2,"Low","https://www.seminariodevilar.pt/",4,!0],["Hotel Abades Benacazón","Spain","Benacazón near Seville",390,8,74,4.2,"Low","https://www.abades.com/marketing/catalogo-abades.pdf",4,!0],["Hotel Antequera Hills","Spain","Antequera",380,8,72,4.1,"Low","https://turismo.antequera.es/de/unterkunft/hotel-antequera-hills/",4,!0],["Residencia La Salle Bonanova","Spain","Barcelona",260,10,72,4.05,"Low","https://www.residencialasalle.com/",4,!0],["INATEL Caparica","Portugal","Costa da Caparica",420,8,72,4,"Medium","https://hoteis.inatel.pt/pt/Menu/Hoteis-Alojamento/Praia/Caparica/Inatel-Caparica.aspx",3,!0],["ILUNION Alcora Sevilla","Spain","San Juan de Aznalfarache, Seville",802,17,78,4,"Medium","https://www.ilunionhotels.com/en/hotels/ilunion-alcora-sevilla",3,!0],["Hotel Cádiz BahÃa","Spain","Cádiz",562,7,92,4,"Medium","https://www.hotelcadizbahia.com/en/events.html",5,!0],["Casa Fray Luis de León","Spain","Guadarrama, Madrid region",120,7,58,3.9,"Low","https://www.casafrayluisdeleon.com/",3,!0],["Hotel dos Templários","Portugal","Tomar",354,14,82,3.9,"Medium","https://www.hoteldostemplarios.com/en/home-en/",5,!0],["Hotel Scala","Spain","Padrón, Galicia",406,6,68,3.85,"Medium","https://www.hscala.
984com/eventos",4,!0],["Hotel D. LuÃs","Portugal","Coimbra",200,5,65,3.8,"Low","https://www.meetingsinportugal.com/en/hoteis/hotel-d-luis",3,!0],["Eurostars Oasis Plaza","Portugal","Figueira da Foz",320,10,95,3.8,"High","https://www.eurostarshotels.com/eurostars-oasis-plaza/salones.html",5,!0],["Meliá Sitges","Spain","Sitges, Barcelona",609,26,110,3.8,"Medium","https://sitgescb.cat/Descargas/SITGESCB-eng-capacities.pdf",5,!0],["Parador de Alcalá de Henares","Spain","Alcalá de Henares",250,8,118,3.8,"Medium","https://paradores.es/en/parador-de-alcala-de-henares",5,!0],["Palácio Estoril Hotel","Portugal","Estoril, Lisbon coast",320,9,135,3.8,"High","https://www.palacioestorilhotel.com/events/meeting-rooms/",5,!0],["Las Arenas Balneario Resort","Spain","Valencia",510,17,145,3.8,"High","https://www.hotelvalencialasarenas.com/en/events/meeting-rooms/",5,!0],["Hotel Puerta América","Spain","Madrid",630,14,150,3.8,"High","https://www.puertamericahotel.com/en/index.html",5,!0],["Vila Galé Coimbra","Portugal","Coimbra",458,8,90,3.7,"Medium","https://www.vilagale.com/en/hotels-portugal/hotels-center-of-portugal/vila-gale-coimbra/",4,!0],["Eurostars Isla de La Toja","Spain","O Grove, Galicia",208,8,92,3.7,"Medium","https://www.eurostarshotels.com/eurostars-isla-de-la-toja/salones.html",5,!0],["Exe Rey Don Jaime","Spain","Valencia",638,10,95,3.7,"High","https://www.eurostarshotels.com/exe-rey-don-jaime/habitaciones.html",3,!0],["AR Diamante Beach","Spain","Calpe",572,8,96,3.7,"Low","https://www.ar-hotels.com/en/hotel-ar-diamante-beach/meeting-conference-rooms.html",5,!0],["Barceló Punta UmbrÃa Beach Resort","Spain","Punta UmbrÃa, Huelva",2400,22,100,3.7,"Medium","https://www.barcelo.com/en-us
984/barcelo-punta-umbria-beach-resort/meetings-and-events/",5,!0],["Vila Galé Ericeira","Portugal","Ericeira",404,9,100,3.7,"Medium","https://www.vilagale.com/en/hotels-portugal/hotels-lisbon-coast/vila-gale-ericeira/",5,!0],["Euroforum Campus Escorial","Spain","San Lorenzo de El Escorial",300,30,105,3.7,"Low","https://www.euroforum.es/campus-escorial/",5,!0],["Hotel IPV Palace & Spa","Spain","Fuengirola, Costa del Sol",570,10,105,3.7,"Medium","https://www.hotelipvpalace.com/en/",5,!0],["Hotel Solverde Spa & Wellness Center","Portugal","Vila Nova de Gaia / Espinho",350,17,108,3.7,"High","https://gruposolverde.pt/en/hotels/hotel-solverde-spa-wellness-center/",5,!0],["Parador de La Granja","Spain","La Granja de San Ildefonso",250,10,112,3.7,"Medium","https://paradores.es/en/parador-de-la-granja",5,!0],["Hilton Vilamoura As Cascatas","Portugal","Vilamoura, Algarve",352,8,125,3.7,"High","https://www.hilton.com/en/hotels/faohihi-hilton-vilamoura-as-cascatas-golf-resort-and-spa/events/",5,!0],["Dom Pedro Vilamoura","Portugal","Vilamoura, Algarve",532,11,130,3.7,"High","https://vilamoura.dompedro.com/en/meetings-events/",5,!0],["Eurostars Sitges","Spain","Sitges, Barcelona coast",520,20,130,3.7,"High","https://www.eurostarshotels.com/eurostars-sitges/salones.html",5,!0],["Onyria Quinta da Marinha Hotel","Portugal","Cascais",396,12,145,3.7,"High","https://www.quintadamarinha.com/pt/menu/reunioes-eventos/salas-reuniao.aspx",5,!0],["The Oitavos","Portugal","Cascais",284,8,145,3.7,"Medium","https://www.quintadamarinha.com/en/menu/meetings-events/events/EcoHubCascais.aspx",5,!0],["Balneario de Archena","Spain","Archena, Murcia",500,6,91,3.65,"Medium","https://balneariodearchena.com/company-events/?lang=en",5,!0],["Curia Palace Hotel","Portugal","Curia, central Portugal",200,7,92,3.65,"Medium","https://www.visitportugal.com/en/NR/exeres/73951CCB-8B35-4B85-9BD9-E71A5AE8492B",5,!0],["INATEL Albufeira","Portugal","Albufeira",654,6,78,3.6,"Medium","https://hoteis.inatel.pt/pt/Menu/Hoteis-Alojamento/Praia/Albufeira/Inatel-Albufeira-Hotel-Edificio-Principal.aspx",3,!0],["Hotel Beatriz Toledo Auditorium & Spa","Spain","Toledo",590,23,85,3.6,"Medium","https://www.beatrizhoteles.com/es/hotel-beatriz-toledo-auditorium-spa-en-toledo/convenciones/",3,!0],["Abades Nevada Palace","Spain","Granada",500,12,88,3.6,"Medium","https://www.abadeshoteles.com/en/hotel-abades-nevada-palace/",3,!0],["Hotel Monasterio de Boltaña","Spain","Boltaña, Aragonese Pyrenees",192,8,90,3.6,"Low","https://hotelmonasteriodeboltana.com/en/halls-for-corporate-events/",5,!0],["Hotel AR Golf Almerimar","Spain","Almerimar, AlmerÃa",226,10,95,3.6,"Low","https://www.hotelgolfalmerimar.com/en/events.html",4,!0],["Dolce CampoReal Lisboa","Portugal","Turcifal, Torres Vedras",302,23,105,3.6,"Medium","https://www.dolcecamporeal.com/",5,!0],["H10 Estepona Palace","Spain","Estepona, Costa del Sol",470,7,112,3.6,"High","https://www.h10hotels.com/en/costa-del-sol-hotels/h10-estepona-palace",5,!0],["Dom Pedro Lisboa","Portugal","Lisbon",526,16,140,3.6,"Medium","https://lisboa.dompedro.com/en/meetings-events/",4,!0],["Hotel Barcelona Princess","Spain","Barcelona",726,6,145,3.6,"High","https://www.princess-hotels.com/en/barcelona/barcelona-princess/events/",4,!0],["Gran Hotel Balneario de Puente Viesgo","Spain","Puente Viesgo, Cantabria",270,8,94,3.55,"Low","https://balneariodepuenteviesgo.com/en/events/congresses-and-company-meetings/",5,!0],["Hotel Deloix Aqua Center","Spain","Benidorm",388,6,95,3.55,"Medium","https://www.hoteldeloix.com/eventos-y-celebraciones/",4,!0],["Onyria Marinha Boutique Hotel","Portugal","Cascais",168,9,135,3.55,"Medium","https://www.quintadamarinha.com/en/menu/meetings-events/events/EcoHubCascais.aspx",5,!0],["Hotel Beatriz Albacete & Spa","Spain","Albacete",408,12,85,3.5,"Medium","https://mice.castillalamancha.es/node/159",3,!0],["Grande Hotel de Luso","Portugal","Luso, Mealhada",264,10,88,3.5,"Medium","https://www.hoteluso.com/pt/",4,!0],["Pestana Sintra Golf","Portugal","Sintra",274,9,100,3.5,"Medium","https://www.pestana.com/en/hotel/pestana-sintra",4,!0],["Four Points by Sheraton Costa Blanca Resort","Spain","Benidorm, Alicante",800,8,105,3.5,"High","https://www.marriott.com/en-us
984/hotels/alcfp-four-points-costa-blanca-resort/events/",4,!0],["Parador de Segovia","Spain","Segovia",226,15,105,3.5,"Medium","https://paradores.es/en/parador-de-segovia",4,!0],["Praia D'El Rey Marriott Golf & Beach Resort","Portugal","Ãbidos",354,12,125,3.5,"Medium","https://www.marriott.com/en-us/hotels/lisdr-praia-del-rey-marriott-golf-and-beach-resort/rooms/",5,!0],["Balneario de Panticosa","Spain","Panticosa, Aragonese Pyrenees",400,6,92,3.45,"Low","https://www.panticosa.com/es-ES/reuniones.aspx",5,!0],["AR Diamante Beach Spa Hotel","Spain","Calpe, Costa Blanca",572,8,110,3.45,"Medium","https://www.ar-hotels.com/en/hotel-ar-diamante-beach/meeting-conference-rooms.html",5,!0],["Hotel Barcelona Center","Spain","Barcelona",264,7,135,3.45,"High","https://www.hotelescenter.es/en/hotel-barcelona-center/events/",4,!0],["Balneario de Mondariz","Spain","Mondariz-Balneario, Galicia",380,10,96,3.4,"Medium","https://www.balneariomondariz.es/eventos",5,!0],["Hotel ChamartÃn The One","Spain","Madrid",756,13,105,3.4,"High","https://www.hotelchamartintheone.com/en/",3,!0],["Barceló Sants","Spain","Barcelona",756,19,112,3.4,"Medium","https://www.barcelo.com/en-us
984/barcelo-sants/meetings-and-events/",3,!0],["ILUNION Barcelona","Spain","Barcelona",316,13,115,3.4,"High","https://www.ilunionhotels.com/en/hotels/ilunion-barcelona",3,!0],["Hyatt Regency Hesperia Madrid","Spain","Madrid",338,9,160,3.4,"High","https://www.hyatt.com/hyatt-regency/en-US/madrm-hyatt-regency-hesperia-madrid/meetings",3,!0],["Castilla Termal Olmedo","Spain","Olmedo, Valladolid",164,6,100,3.35,"Medium","https://www.castillatermal.com/en/hotels/castile-and-leon/castilla-termal-olmedo/events/companies/",5,!0],["Hotel Monasterio de Piedra","Spain","Nuévalos, Aragón",120,6,98,3.3,"Medium","https://monasteriopiedra.com/hotel-2/",5,!0],["Hotel Carlos I Silgar","Spain","Sanxenxo, Galicia",260,10,96,3.25,"Medium","https://www.hotelcarlos.es/en/events/",5,!0],["Hotel Fuerte El Rompido","Spain","El Rompido, Huelva",596,7,98,3.25,"Medium","https://www.fuertehoteles.com/hotel-fuerte-el-rompido/tus-eventos/",5,!0],["ILUNION Málaga","Spain","Málaga, Andalusia",350,8,102,3.25,"Medium","https://www.ilunionhotels.com/hoteles/ilunion-malaga/experiencias/Eventos/eventos-corporativos/salones",3,!0],["AP Lago Montargil Conference & Spa","Portugal","Montargil, Alentejo",232,7,105,3.25,"Medium","https://ap-hotelsresorts.com/en/hotel/ap-lago-montargil/",5,!0]]},{region:"Central & Eastern",venues:[["International Youth Meeting Centre OÅwiÄcim","Poland","OÅwiÄcim near Kraków",100,5,50,4.9,"High","https://mdsm.pl/",4,!0],["Niepokalanów Pilgrim House","Poland","Niepokalanów, near Warsaw",100,8,45,4.7,"Medium","https://www.niepokalanow.pl/klasztor/dom-pielgrzyma",4,!1],["PaÅac SulisÅaw","Poland","SulisÅaw, near WrocÅaw",220,7,85,4.7,"High","https://www.palacsulislaw.pl/",5,!0],["Ráday House Conference Centre","Hungary","Budapest",116,6,55,4.65,"High","https://radaykonf.parokia.hu/cikk/mutat/kezdolap/",4,!1],["Vranov Spiritual Centre","Czechia","Vranov u Brna",140,5,55,4.6,"Medium","https://www.dc-vranov.cz/index.php/housing",5,!1],["Dobre Miejsce","Poland","Bielany, Warsaw",200,9,55,4.5,"Medium","https://warszawa.dobremiejsce.eu/oferta/",4,!1],["University of Warsaw Summer Campus","Poland","Warsaw",1e3,20,65,4.5,"Medium","https://www.uw.edu.pl/wynajem-sal-i-inne-uslugi/",4,!1],["Charles University PodÄbrady Campus","Czechia","PodÄbrady, near Prague",100,8,60,4.45,"Low","https://ujop.cuni.cz/UJOP-241.html",5,!1],["Smolenice Castle","Slovakia","Smolenice",90,7,65,4.45,"Medium","https://smolenickyzamok.sav.sk/en/",5,!0],["AGH University Student Campus","Poland","Kraków",7e3,10,55,4.4,"Low","https://home.agh.edu.pl/~marcinwo/UNESCO/UNESCO_AGH_Chair_Accommodation_Guide_2023A.pdf",2,!1],["Uroczysko Porszewice","Poland","Porszewice, near Åódź",100,5,55,4.4,"Low","https://www.uroczyskoporszewice.pl/oferta-konferencji",4,!1],["BÄdlewo Research and Conference Centre","Poland","BÄdlewo, near PoznaÅ",180,6,65,4.35,"High","https://www.palacbedlewo.pl/pokoje",5,!1],["Hotel SEN Senohraby","Czechia","Senohraby, near Prague",165,8,105,4.35,"High","https://www.hotelsen.cz/",4,!1],["Centrum Krystal","Czechia","Prague 6",100,9,75,4.3,"High","https://www.centrum-krystal.cz/en/",3,!1],["Hotel Medlov","Czechia","FryÅ¡ava pod Žákovou horou",452,6,62,4.2,"Medium","https://www.meatspace.cz/en/venues/medlov-hotel/",4,!0],["Congress Centre SAV Academia","Slovakia","Stará Lesná, High Tatras",82,8,64,4.15,"High","https://www.tatry.sk/en/congress-center-sav-academia/",5,!0],["Zámek Liblice","Czechia","Liblice near Prague",110,8,75,4.15,"Low","https://www.zamek-liblice.cz/cs/",5,!0],["Hotel Podklasztorze","Poland","Sulejów",110,6,70,4.1,"Medium","https://www.hotelpodklasztorze.pl/en/business-and-conferences/conference-offer",5,!0],["Château TÅešť","Czechia","TÅešť, VysoÄina",120,9,74,4.1,"Medium","https://www.zamek-trest.cz/en/Conferences/",5,!0],["Hotel Zamek Gniew","Poland","Gniew, Pomerania",240,10,77,4.1,"Medium","https://www.zamek-gniew.pl/en/conferences/conferences-and-trainings",5,!0],["Centrum Konferencyjno-Szkoleniowe Ossa","Poland","Ossa",600,22,78,4.1,"Medium","https://cksossa.pl/",4,!0],["PaÅac Wojanów","Poland","Wojanów, Lower Silesia",196,7,80,4.1,"Medium","https://www.palac-wojanow.pl/biznes",5,!0],["Zamek Kliczków","Poland","Kliczków, Lower Silesia",220,8,80,4.1,"Medium","https://www.kliczkow.com.pl/e
984n/",5,!0],["College of Europe Natolin Campus","Poland","Natolin, Warsaw",120,8,85,4.1,"Low","https://www.coleurope.eu/about-college/natolin-warsaw/campus-and-residences",5,!1],["Szent Adalbert Conference Centre","Hungary","Esztergom",160,7,62,4.05,"Low","https://www.szentadalbert.hu/en/",4,!0],["CEU Residence and Conference Center","Hungary","Budapest",424,12,70,4,"High","https://www.ceucenter.hu/",3,!1],["MCC Mazurkas Conference Centre & Hotel","Poland","Ożarów Mazowiecki near Warsaw",316,35,75,4,"Medium","https://www.mazurkashotel.pl/en/conference-halls-page-108081",3,!0],["OREA Resort Santon Brno","Czechia","Brno Reservoir",241,7,78,4,"Medium","https://www.brnoconvention.com/hotels-and-venues/orea-resort-santon-brno/",4,!0],["Hotel Azúr","Hungary","Siófok, Lake Balaton",440,10,79,4,"Medium","https://hotelazur.hu/rendezvenyek/konferenciatermek",4,!0],["Palace Art Hotel Pezinok","Slovakia","Pezinok",128,7,91,4,"Medium","https://www.palacearthotel.sk/",5,!0],["Novotel Kraków City West","Poland","Kraków",610,6,107,4,"High","https://all.accor.com/hotel/3407/index.en.shtml",3,!0],["Budapest Combined School Residence","Hungary","Budapest",200,5,50,3.95,"Low","https://bekk.edu.hu/new/index.php/szallaslehetoseg/",2,!1],["Hotel Skalský Dvůr","Czechia","LÃsek, VysoÄina",137,13,68,3.9,"Low","https://www.skalskydvur.cz/cs/konferencni-prostory-a-technika",4,!0],["Hotel Akademie NaháÄ","Czechia","Chocerady",260,6,70,3.9,"Low","https://www.hotelnahac.cz/firemni-akce/konferencni-prostory/",3,!0],["Cheile GrÄdiÈtei Fundata","Romania","Fundata, BraÈov County",600,8,72,3.9,"Low","https://cheilegradistei.ro/en/",5,!0],["Hotel Krasicki","Poland","Lidzbark WarmiÅski",250,14,73,3.9,"Medium","https://www.hotelkrasicki.pl/en/conferences/about-conferences",5,!0],["OREA Resort DevÄt Skal","Czechia","SnÄžné, VysoÄina",266,7,74,3.9,"Medium","https://www.visitczechia.com/en-us/venue/10809",4,!0],["Abacus Business & Wellness Hotel","Hungary","Herceghalom, near Budapest",256,10,78,3.9,"Medium","https://abacus.hu/en/",3,!0],["Hotel Sitno Forest Resort","Slovakia","Vyhne",250,12,78,3.9,"Medium","https://www.hotelsitno.sk/en/kongresy",4,!0],["Kongres Hotel Jezerka","Czechia","SeÄ, Pardubice Region",226,8,78,3.9,"Low","https://www.jezerka.cz/en/about-the-hotel",4,!0],["Hunguest Hotel Pelion","Hungary","Tapolca",456,8,80,3.9,"Medium","https://www.hotelsosto.hunguesthotels.hu/en/hotel/tapolca/hunguest_hotel_pelion/conference/",4,!0],["Qubus Hotel Kraków","Poland","Kraków",379,8,86,3.9,"High","https://www.qubushotel.com/en/conference-krakow/",4,!0],["Hotel Belvedere Zakopane","Poland","Zakopane, Tatra Mountains",340,8,92,3.9,"High","https://www.hotelbelvedere.pl/en/business/conferences",5,!0],["Ensana Esplanade Piešťany","Slovakia","Piešťany Spa Island",900,10,95,3.9,"High","https://ensanahotels.com/en/hotels/esplanade/conferencies-and-events",5,!0],["Centrum Barnabitów","Poland","Warsaw",140,6,72,3.85,"Low","https://www.centrumbarnabitow.pl/en/",3,!0],["Academic Hotel & Congress Centre","Czechia","Roztoky near Prague",102,6,75,3.85,"Medium","https://academic.cz/en/conference-en/",3,!0],["Kocierz Resort","Poland","Targanice, Beskid Mountains",200,5,78,3.85,"Medium","https://www.kocierz.pl/en/conference-rooms/",5,!0],["Academic Hotel Krakowiak","Poland","Kraków",200,4,58,3.8,"Medium","https://ach.uken.krakow.pl/en/offer/",2,!1],["Hotel Marina-Port","Hungary","Balatonkenese",148,5,78,3.8,"Medium","https://hotelmarinaport.hu/en/conference-rooms",5,!0],["Hotel Senec","Slovakia","Senec",220,7,80,3.8,"Medium","https://www.hotelsenec.sk/en/",2,!0],["Hotel Stok WisÅa","Poland","WisÅa, Silesian Beskids",450,16,82,3.8,"High","https://www.hotelstok.pl/en/conferences-in-the-mountains",5,!0],["Hotel Klimczok Szczyrk","Poland","Szczyrk, Beskid Mountains",300,9,85,3.8,"High","https://www.klimczok.pl/konferencje-w-gorach",5,!0],["Hotel Warszawianka","Poland","Jachranka, near Warsaw",700,32,92,3.8,"High","https://www.warszawianka.pl/en/business/conference-offer",4,!0],["Aquaworld Resort Budapest","Hungary","Budapest",618,15,95,3.8,"Medium","https://www.aquaworldresort.hu/en/congress_centre/meeting_conferences",4,!0
984],["Hotel Thermal Karlovy Vary","Czechia","Karlovy Vary",546,11,95,3.8,"High","https://www.thermal.cz/en/conferences",5,!0],["Mercure Szczyrk Resort","Poland","Szczyrk, Silesian Beskids",894,9,95,3.8,"Medium","https://all.accor.com/hotel/B8S1/index.en.shtml",5,!0],["Hotel International Prague","Czechia","Prague",550,14,105,3.8,"High","https://internationalprague.cz/",5,!0],["Zámek ValeÄ","Czechia","ValeÄ",300,15,151,3.8,"High","https://www.hotel-valec.cz/en/conference/",5,!0],["Danubius Hotel Annabella","Hungary","Balatonfüred",778,8,75,3.7,"Medium","https://dayholiday.hu/en/hotelpost/danubius-hotel-annabella/",3,!0],["Danubius Hotel Arena","Hungary","Budapest",758,10,82,3.7,"High","https://www.danubiushotels.com/en/our-hotels-budapest/danubius-hotel-arena/services-and-amenities",3,!0],["OREA Congress Hotel Brno","Czech Republic","Brno",750,10,82,3.7,"Medium","https://www.orea.cz/en/hotel-congress/conference",3,!0],["Ossa Conference and Training Centre","Poland","Ossa, near Warsaw",1e3,20,82,3.7,"Medium","https://cksossa.pl/",4,!0],["Vienna House Easy by Wyndham Katowice","Poland","Katowice",406,13,84,3.7,"High","https://www.wyndhamhotels.com/vienna-house/katowice-poland/vienna-house-easy-katowice/meetings",3,!0],["Hotel Partizán Tále","Slovakia","Tále, Low Tatras",300,8,88,3.7,"High","https://www.partizan.sk/en/congress-facilities",5,!0],["Aquapalace Hotel Prague","Czechia","Äestlice, Prague",462,11,90,3.7,"Medium","https://www.aquapalacehotel.cz/en/conference-rooms",3,!0],["Clarion Congress Hotel Prague","Czechia","Prague",1118,29,90,3.7,"High","https://www.clarioncongresshotelprague.com/en/hotel/",3,!0],["OREA Hotel Pyramida Prague","Czech Republic","Prague",704,12,90,3.7,"Medium","https://cms.visitczechia.com/cms/getmedia/dbb71b4d-9116-4ee7-8eb9-fcedb4d7d516/catalogue.pdf",3,!0],["Vital Hotel Nautis","Hungary","Gárdony, Lake Velence",170,9,85,3.65,"Medium","https://hotelnautis.hu/en/conference/general-information/",4,!0],["Hotel Patria Å trbské Pleso","Slovakia","Å trbské Pleso, High Tatras",310,7,94,3.65,"Medium","https://www.hotelpatria.sk/sk/o-hoteli",5,!0],["Ensana Thermal Margaret Island","Hungary","Budapest, Margaret Island",570,9,105,3.65,"Medium","https://ensanahotels.com/en/hotels/thermal-margaret-island/events",5,!0],["Aqvila Club","Romania","RucÄr, ArgeÈ",120,5,75,3.6,"Medium","https://aqvilaclub.ro/",5,!0],["Hotel Zamek Ryn","Poland","Ryn, Masuria",320,12,82,3.6,"Medium","https://www.zamekryn.pl/zamek-ryn/hotel-na-Mazurach",5,!0],["Zamek Janów Podlaski","Poland","Janów Podlaski",398,15,82,3.6,"Medium","https://www.zamekjanowpodlaski.pl/biznes/sale-konferencyjne",5,!0],["Alpin Conference Center","Romania","Poiana BraÈov",500,10,85,3.6,"Medium","https://www.alpinconference.ro/",4,!0],["Hotel Klimczok","Poland","Szczyrk, Silesian Beskids",300,9,85,3.6,"Medium","https://www.klimczok.pl/konferencje-w-gorach",4,!0],["Hotel GoÅÄbiewski WisÅa","Poland","WisÅa, Silesian Beskids",1134,26,90,3.6,"Medium","https://www.golebiewski.pl/wisla/biznes",4,!0],["Nosalowy Dwór Resort & Spa","Poland","Zakopane",1e3,23,96,3.6,"Medium","https://www.nosalowy-dwor.eu/en/conferences/business",5,!0],["Bachleda Hotel Kasprowy Zakopane","Poland","Zakopane",576,13,98,3.6,"Medium","https://www.kasprowy.pl/en/conferences-page-169260",5,!0],["InterContinental Warsaw","Poland","Warsaw",800,13,125,3.6,"High","https://warszawa.intercontinental.com/en/conference/",4,!0],["Hotel Polanica Resort & Spa","Poland","Polanica-Zdrój",190,8,75,3.55,"Low","https://www.hotelpolanica.pl/conference-rooms",4,!0],["OREA Resort Horal KrkonoÅ¡e","Czechia","Å pindlerův Mlýn",324,6,92,3.55,"Medium","https://www.orea.cz/en/resort-horal",5,!0],["DoubleTree by Hilton Åódź","Poland","Åódź",402,18,92,3.5,"High","https://www.hilton.com/en-gb/hotels/lcjdldi-doubletree-lodz/events/",3,!0],["Hotel Bania Thermal & Ski","Poland","BiaÅka TatrzaÅska",454,14,105,3.5,"Medium","https://hotelbania.pl/en/business/conference-halls",5,!0],["GrandHotel Tiffi","Poland","IÅawa, Masuria",420,8,105,3.45,"Medium","https://grandhotel.tiffi.com/en/hotel/",5,!0],["Hunguest BÃL Resort","Hungary","Balatonalmádi",420,7,82,3.4,"Medium","https://www.hunguesthotels.hu/en/hotel/balatonalmadi/hunguest_bal_resort/",3,!0],["Wellness & Spa Hotel Kaskady","Slovakia","SliaÄ, central Slovakia",150,7,82,3.4,"High","https://www.hotelkaskady.sk/eventy/pre-firmy",5,!0],["Hotel GoÅÄbiewski Karpacz","Poland","Karpacz, Karkonosze Mountains",1700,30,98,3.4,"High","https://www.golebiewski.pl/en
984/karpacz/business",5,!0],["Hotel ArÅamów","Poland","ArÅamów, Bieszczady",426,12,100,3.3,"Medium","https://www.arlamow.pl/en/conference-centre-page-180315",5,!0]]},{region:"Nordic & Baltic",venues:[["Nelijärve Holiday Centre","Estonia","Aegviidu",268,11,52,4.6,"Medium","https://www.nelijarve.ee/en/events/",4,!0],["Vilnius University Campus Package","Lithuania","Vilnius",1e3,10,65,4.6,"Low","https://www.vu.lt/patalpu-nuoma",5,!1],["Ratnieki","Latvia","LÄ«gatne / Sigulda",157,6,48,4.5,"Medium","https://www.ratnieki.lv/en/offer/accommodation-and-overnight-stay/",4,!0],["University of Tartu Campus Package","Estonia","Tartu",1e3,10,60,4.3,"Low","https://ut.ee/en/events-and-room-booking-faculty-social-sciences",5,!1],["Pajulahti Olympic & Paralympic Training Center","Finland","Nastola / Lahti",1005,10,80,4.3,"High","https://pajulahti.com/en/",5,!0],["STEP Education Lapua","Finland","Lapua",80,8,55,4.25,"Medium","https://www.visitlapua.fi/en/step-education/",4,!0],["TalTech Campus and Academic Hostel","Estonia","Tallinn",2e3,10,65,4.2,"Medium","https://taltech.ee/en/student-housing",3,!1],["Vilnius Grand Resort","Lithuania","EžeraiÄiai near Vilnius",476,25,88,4.1,"Medium","https://www.govilnius.lt/meet-in-vilnius/venue-finder/vilnius-grand-resort",5,!0],["Hagabergs Folkhögskola","Sweden","Södertälje",100,8,78,4.05,"Medium","https://hagaberg.fhsk.se/en/konferens/",4,!0],["Radisson Hotel Kaunas","Lithuania","Kaunas",400,8,78,4,"Medium","https://www.radissonhotels.com/en-us/hotels/radisson-kaunas/meeting-events",3,!0],["Västanviks Folkhögskola","Sweden","Leksand",160,14,72,3.9,"Medium","https://www.vastanviksfhs.se/vastanviks-konferens-och-gasthem/",4,!0],["LaSpa Laulasmaa","Estonia","Laulasmaa",276,7,89,3.9,"Medium","https://www.laspa.ee/meetingsevents/",5,!0],["Radisson Blu Hotel & Spa Daugava Riga","Latvia","Riga",700,10,92,3.9,"High","https://www.radissonhotels.com/en-us/hotels/radisson-blu-riga-daugava/meeting-events",4,!0],["Domus Maria","Lithuania","Vilnius Old Town",90,5,75,3.85,"Medium","https://www.govilnius.lt/meet-in-vilnius/venue-finder/domus-maria-hotel",5,!1],["Vihula Manor Country Club & Spa","Estonia","Lahemaa National Park",150,7,88,3.8,"Medium","https://www.ecb.ee/room/vihula-manor-country-club-spa/",5,!0],["Aronsborgs Konferenshotell","Sweden","BÃ¥lsta",390,22,110,3.8,"Medium","https://aronsborg.se/en/",5,!0],["Rönneberga Konferens","Sweden","Lidingö near Stockholm",198,15,112,3.8,"Medium","https://www.ronneberga.se/",5,!0],["Storebælt Sinatur Hotel & Conference","Denmark","Nyborg",230,16,115,3.8,"Medium","https://www.sinatur.dk/en/storebaelt/",5,!0],["Comwell Borupgaard","Denmark","Snekkersten",298,29,120,3.8,"Medium","https://www.comwell.com/en/hotels/comwell-hotel-borupgaard/meeting-and-conference",5,!0],["Runö Möten & Events","Sweden","Ã
kersberga, Stockholm archipelago",244,20,120,3.8,"Medium","https://www.runo.se/konferens/",5,!0],["Stora Brännbo Conference & Hotel","Sweden","Sigtuna",202,13,125,3.8,"High","https://storabrannbo.se/konferenslokaler/",5,!0],["Voksenåsen","Norway","Oslo",170,8,125,3.8,"Medium","https://voksenaasen.no/en/moter-og-eventer/",5,!0],["Scandic Grand Marina","Finland","Helsinki waterfront",900,16,135,3.8,"High","https://www.scandichotels.com/en/hotels/scandic-grand-marina",5,!0],["Clarion Hotel Post","Sweden","Gothenburg",1e3,17,140,3.8,"Medium","https://toolsapi.konferensanlaggningar.se/en/ClarionHotelPost",5,!0],["Lielupe by Semarah Hotels","Latvia","Jūrmala",520,13,87,3.7,"Medium","https://lielupe.semarahhotels.com/en/conferences/conference-center-lieupe-in-jurmala/",3,!0],["Nordic Hotel Forum","Estonia","Tallinn",500,6,88,3.7,"Medium","https://www.nordichotels.eu/en/conferences/",3,!0],["Medlefors Hotell & Konferens","Sweden","Skellefteå",156,14,95,3.7,"High","https://www.medlefors.se/massa/",4,!0],["Haikko Manor & Spa","Finland","Porvoo",424,15,112,3.7,"Low","https://www.haikko.fi/en/for-companies/business-events/corporate-events",5,!0],["Djurönäset","Sweden","Djurhamn, Stockholm Archipelago",350,23,116,3.7,"Low","https://www.djuronaset.com/en/conference/conference-rooms/",5,!0],["Aronsborg Konferenshotell","Swede
984n","BÃ¥lsta, Lake Mälaren",390,22,118,3.7,"High","https://aronsborg.se/en/",5,!0],["Hindsgavl Slot","Denmark","Middelfart, Funen",240,14,122,3.7,"Medium","https://hindsgavl.dk/business/moede-og-konferencer/lokaler-og-udstyr/",5,!0],["Scandic Aulanko","Finland","Hämeenlinna",490,16,126,3.7,"Medium","https://www.scandichotels.com/en/hotels/scandic-aulanko",5,!0],["Hotel Haikko Manor & Spa","Finland","Porvoo",400,20,128,3.7,"High","https://www.haikko.fi/en/for-companies/meetings/meeting-rooms",5,!0],["SundsgÃ¥rden Hotell & Konferens","Sweden","Rydebäck, Helsingborg",178,6,100,3.65,"Medium","https://sundsgardenkonferens.se/sv/conference-event/",5,!0],["Hotel Rantapuisto","Finland","Helsinki",140,15,102,3.65,"Medium","https://www.rantapuisto.fi/en/meetings",5,!0],["Sigtunastiftelsen","Sweden","Sigtuna",93,20,118,3.65,"Medium","https://sigtunastiftelsen.se/en/conference-and-meetings/",5,!0],["LÃ¥ngholmen Hotel & Conference","Sweden","Stockholm",224,12,140,3.65,"Medium","https://langholmen.com/en/conference/conference-rooms/",5,!0],["ESTONIA Resort Hotel & Spa","Estonia","Pärnu",212,8,85,3.6,"Medium","https://www.spaestonia.ee/resort/en/conference-centre/",4,!0],["Holiday Club Saimaan Rauha","Finland","Lappeenranta",600,6,92,3.6,"Medium","https://fcb.visitfinland.com/en/venue/323/Holiday-Club-Saimaan-Rauha/",4,!0],["Hotel Gustavelund","Finland","Tuusula",194,10,105,3.6,"Low","https://www.gustavelund.fi/en/meetings/meeting-rooms",4,!0],["Quality Hotel Sveitsi","Finland","Hyvinkää",364,33,105,3.6,"Medium","https://www.strawberry.fi/globalassets/global/hotel-pictures/quality-hotel/quality-hotel-sveitsi/offers/qh-sveitsi-factsheet-eng.pdf",4,!0],["Comwell Holte","Denmark","Holte",224,25,112,3.6,"Medium","https://www.comwell.com/en/hotels/comwell-hotel-holte",4,!0],["Varbergs Kusthotell","Sweden","Varberg",314,15,114,3.6,"Low","https://varbergskusthotell.se/en/hotel/",5,!0],["Scandic Rosendahl","Finland","Tampere",420,15,120,3.6,"High","https://www.scandichotels.com/en/hotels/scandic-rosendahl",5,!0],["Naantali Spa","Finland","Naantali near Turku",502,17,125,3.6,"Medium","https://www.naantalispa.fi/en/conference-and-corporate-services/conference-and-event-facilities/",5,!0],["Ronneby Brunn","Sweden","Ronneby, Blekinge",500,22,128,3.6,"High","https://ronnebybrunn.se/konferens-och-moten/moteslokaler/",5,!0],["SÃ¥nga Hotell & Konferens","Sweden","Ekerö, Stockholm region",290,24,130,3.6,"High","https://www.sanga-saby.se/",5,!0],["Stenungsbaden Yacht Club","Sweden","Stenungsund, West Coast",428,23,135,3.6,"Medium","https://www.stenungsbaden.se/en/meetings-goteborg/",5,!0],["Hanaholmen","Finland","Espoo near Helsinki",132,11,118,3.55,"Medium","https://hanaholmen.fi/en/meeting-services",5,!0],["Sigtunahöjden","Sweden","Sigtuna",180,20,138,3.55,"Medium","https://sigtunahojden.se/konferenslokaler/",5,!0],["Krägga HerrgÃ¥rd","Sweden","BÃ¥lsta, Lake Mälaren",99,11,145,3.55,"High","https://www.kragga.se/konferens-stockholm/konferenslokaler/",5,!0],["Hotel Korpilampi","Finland","Espoo",320,17,96,3.5,"Medium","https://www.korpilampi.fi/kokoukset-konferenssit/",4,!0],["Bymose Hegn","Denmark","Helsinge, North Zealand",224,18,98,3.5,"Medium","https://www.bymosehegn.dk/en/",4,!0],["Konventum","Denmark","Helsingør",450,29,110,3.5,"Medium","https://konventum.dk/en/",4,!0],["VINGSTED Hotel & Konferencecenter","Denmark","Vingsted near Vejle",500,20,119,3.5,"Medium","https://vingsted.com/",4,!0],["Hanasaari Swedish-Finnish Cultural Centre","Finland","Espoo / Helsinki",132,11,120,3.5,"Medium","https://www.hanaholmen.fi/en/",5,!0],["Vanajanlinna Hotel & Resort","Finland","Hämeenlinna",200,12,125,3.5,"High","https://www.vanajanlinna.fi/en/meetings-and-events",5,!0],["HimmerLand Resort","Denmark","Gatten, North Jutland",172,15,135,3.5,"High","https://himmerlandresort.dk/business/moedelokaler/",5,!0],["Marholmen","Sweden","Norrtälje archipelago",405,10,135,3.5,"High","https://marholmen.se/en/konferens/",5,!0],["Hotel Tylösand","Sweden","Tylösand near Halmstad",600,32,140,3.5,"Medium","https://www.tylosand.se/conference/80-700/congress-hall",5,!0],["Cultural Centre Sofia","Finland","Helsinki",110,8,103,3.4,"Low","https://www.sofia.fi/",5,!0],["Santaâs Hotel Santa Claus","Finland","Rovaniemi, Finnish Lapland",340,13,125,3.4,"High","https://www.santashotels.com/en/hotels/rovaniemi-hotel-santa-claus/",4,!0
984],["Scandic Infra City","Sweden","Upplands Väsby, Stockholm",640,20,125,3.4,"Medium","https://www.scandichotels.com/en/hotels/scandic-infra-city",3,!0],["Clarion Hotel Helsinki Airport","Finland","Helsinki-Vantaa Airport",1e3,21,145,3.4,"High","https://www.finavia.fi/en/airports/helsinki-airport/services/clarion-hotel-helsinki-airport",3,!0],["Gothia Towers","Sweden","Gothenburg",2400,60,145,3.4,"Medium","https://en.gothiatowers.com/meet/",3,!0],["Högbo Brukshotell & Spa","Sweden","Sandviken, Gävleborg",252,8,135,3.35,"Medium","https://www.hogbobrukshotell.se/en/om-hogbo",5,!0],["Kragerup Gods","Denmark","Ruds Vedby, West Zealand",114,10,135,3.35,"Medium","https://kragerup.dk/en/godset/konferencer/",5,!0],["SmÃ¥dalarö GÃ¥rd Hotel & Spa","Sweden","Dalarö, Stockholm archipelago",220,10,145,3.35,"Medium","https://www.smadalarogard.se/en/conference-event/conference/",5,!0],["Comwell Kolding","Denmark","Kolding",360,28,112,3.3,"Medium","https://www.comwell.com/en/hotels/comwell-hotel-kolding/meeting-and-conference",3,!0],["Friiberghs HerrgÃ¥rd","Sweden","Ãrsundsbro, Lake Mälaren",109,14,132,3.3,"Medium","https://friibergh.se/friibergh-herrgard-english/",5,!0],["Körunda Hotel & Conference Center","Sweden","Ãsmo, south of Stockholm",102,10,115,3.25,"Medium","https://korunda.se/en/konferens-stockholm/",4,!0],["Scandic Helsinki Airport","Finland","Helsinki-Vantaa Airport",300,9,135,3.25,"High","https://www.scandichotels.com/en/hotels/scandic-helsinki-airport/meetings-conferences-events",3,!0],["Nordic Light Hotel","Sweden","Stockholm",338,14,150,3.25,"Medium","https://nordiclighthotel.com/wp-content/uploads/2018/09/LightMeetings_EN.pdf",3,!0],["Spa Hotel Härmä","Finland","Ylihärmä",290,16,90,3.2,"Low","https://visitkauhava.fi/en/services/spa-hotel-harma-meeting-facilities/",3,!0],["Green Hotel Tällberg","Sweden","Tällberg, Lake Siljan",180,6,118,3.2,"Medium","https://www.greenhotel.se/en/conference/",5,!0]]},{region:"Southeast Europe",venues:[["Carmelite Hospitality Centre Ciofliceni","Romania","Ciofliceni, Snagov near Bucharest",120,5,45,5,"High","https://carmelitanisnagov.ro/manastire/dotari/",5,!1],["Bulgarian Red Cross Training Centre Lozen","Bulgaria","Lozen, near Sofia",120,10,50,4.8,"High","https://surgelearning.ifrc.org/training-facility/national-training-and-logistics-centre-bulgarian-red-cross-lozen-ntlc-lozen",4,!1],["Life Center Crikvenica","Croatia","Crikvenica, Kvarner Bay",110,5,58,4.8,"High","https://www.christusbund.de/croatia/facilities/",5,!0],["UKIM Congress Center Ohrid","North Macedonia","Ohrid / Lagadin",160,6,48,4.65,"Low","https://www.kongresencentar.com/en",5,!0],["Metropol Lake Resort","North Macedonia","Ohrid",600,6,74,4.65,"High","https://metropol-ohrid.com.mk/hotel-metropol/",5,!0],["Hotel Drim","North Macedonia","Struga",400,7,51,4.6,"High","https://drim.com.mk/",4,!0],["Orthodox Academy of Crete","Greece","Kolymbari, Crete",120,6,65,4.45,"Low","https://www.oac.gr/en/",5,!0],["BabeÈ-Bolyai University Campus","Romania","Cluj-Napoca",261,5,55,4.4,"Low","https://www.ubbcluj.ro/en/studenti/campus/spatii_cazare",4,!1],["SPORTCAMP Loutraki","Greece","Loutraki",850,12,58,4.4,"Medium","https://www.sportcamp.gr/en/node/311",4,!0],["Complex Boyana","Bulgaria","Boyana, Sofia",100,9,75,4.4,"Medium","https://travel.government.bg/kompleks-boiana/",5,!1],["Belgrade Student Centre Campus","Serbia","Belgrade",1e3,10,50,4.35,"Low","https://www.sc.rs/",3,!1],["Transilvania University BraÈov Campus","Romania","BraÈov",4e3,8,58,4.3,"Low","https://www.unitbv.ro/en/facts-and-figures",4,!1],["Romanian-American University Campus","Romania","Bucharest",360,10,60,4.3,"Medium","https://www.rau.ro/facilitati/",3,!1],["Hotel International Sinaia","Romania","Sinaia, Carpathians",360,11,80,4.2,"High","https://www.internationalsinaia.ro/",5,!0],["Hotel Intelcoop Plovdiv","Bulgaria","Plovdiv",142,7,55,4.15,"Low","https://www.visitplovdiv.com/en/node/203",2,!0],["Hotel Samokov","Bulgaria","Borovets",500,9,62,4.1,"Medium","https://samokov.com/congressional.html",3,!0],["Hotel Piatra Mare","Romania","Poiana BraÈov",370,8,78,4.1,"High","https://piatramare.ro/conferinte-de-succes-la-munte-experienta-completa-la-hotel-piatra-mare/",5,!0],["Hotel Hollywood Sarajevo","Bosnia and Herzegovina","Ilidža, Sarajevo",838,18,70,4,"Medium","https://www.hotel-hollywood.ba/meetings-events/",3,!0],["Hotel Rila Borovets","Bulgaria","Borovets",850,9,72,4,"Medium","https://www.rilaborovets.com/events/venues",4,!0],["Ramada by Wyndham Sofia City Center","Bulgaria","Sofia",1166,9,75,4,"Low","https://www.wyndhamhotels.com/ramada/sofia-bulgaria/ramada-sofia-city-center/overview",3,!0],["Imperial Plovdiv Hotel & SPA","Bulgaria","Plovdiv",380,6,80,4,"Medium","https://radissonplovdiv.bg/wp-content/uploads/2021/04/Fact-Sheet-EN.pdf",4,!0],["Grand Hotel Pomorie","Bulgaria","Pomorie, Black Sea",350,5,88,4,"High","https://grandhotelpomorie.com/en/events/",5,!0],["Izgrev Hotel Spa & Aquapark","North Macedonia","Struga, Lake Ohrid",400,7,73,3.95,"Low","https://hotelizgrev.com/en/",5,!0],["Sofia Hotel Balkan","Bulgaria","Sofia",368,5,95,3.95,"High","https://www.sofiabalkan.com/en",5,!0],["Hotel SPS Plovdiv","Bulgaria","Plovdiv",235,7,65,3.9,"Medium","https://hotelspsplovdiv.com/en/",2,!0],["Hotel Izvor","Serbia","AranÄelovac",330,6,76,3.9,"Low","https://seemice.com/objects/hotel-izvor-arandjelovac/pdf",4,!0],["Ramada Sibiu","Romania","Sibiu",256,6,78,3.9,"High","https://ramadasibiu.ro/en/evenimente-corporate/",3,!0],["Hotel Mona Plaza Belgrade","Serbia","Belgrade",340,10,82,3.9,"Medium","https://www.monaplaza.com/rs/meetings",4,!0],["Tirana International Hotel & Conference Centre","Albania","Tirana",336,15,84,3.9,"Medium","https://www.tiranainternational.com/",4,!0],["Porto Palace Hotel Thessaloniki","Greece","Thessaloniki",352,10,90,3.9,"Medium","https://thessalonikiconventionbureau.gr/hotels/",4,!0
984],["Park Hotel Moskva","Bulgaria","Sofia",300,7,68,3.8,"Low","https://parkhotelmoskva.net/en/conference-rooms/",2,!0],["Mona Plaza Zlatibor","Serbia","Zlatibor",240,8,72,3.8,"Medium","https://www.monazlatibor.com/en/conferences/",4,!0],["Aleksandar Palace","North Macedonia","Skopje",270,8,82,3.8,"Low","https://aleksandarpalace.com.mk/congress-center/",4,!0],["Ana Hotels Sport Poiana BraÈov","Romania","Poiana BraÈov",370,11,92,3.8,"Medium","https://www.anahotels.ro/en/meetings-events",5,!0],["Metropol Palace Belgrade","Serbia","Belgrade",552,9,105,3.8,"Medium","https://scb.travel/wp-content/uploads/2025/05/Serbia-Meetings-and-Events.pdf",5,!0],["Makedonia Palace","Greece","Thessaloniki",554,11,110,3.8,"Medium","https://makedoniapalace.com/meetings-and-events/",5,!0],["InterContinental Athénée Palace Bucharest","Romania","Bucharest",550,13,118,3.8,"High","https://atheneepalace.intercontinental.com/meetings-and-events/",5,!0],["Hyatt Regency Thessaloniki","Greece","Thessaloniki",304,9,120,3.8,"High","https://www.hyatt.com/hyatt-regency/en-US/thess-hyatt-regency-thessaloniki/meetings",5,!0],["Novotel Bucharest City Centre","Romania","Bucharest",516,8,85,3.75,"Medium","https://www.novotelbucharestcitycentre.com/meetings-events/",4,!0],["MAK Albania Hotel","Albania","Tirana",302,5,90,3.75,"Low","https://www.makalbania.com/business-meeting-private-event-or-host-an-intimate-wedding/",4,!0],["Hotel Junior","Serbia","Kopaonik / BrzeÄe",220,5,58,3.7,"Low","https://juniorhotel.rs/business_rs.php",4,!0],["Hotel Palisad","Serbia","Zlatibor",420,7,69,3.7,"Medium","https://palisad.rs/kongresi-i-seminari",4,!0],["Ramada Plaza by Wyndham Gevgelija","North Macedonia","Gevgelija",256,6,70,3.7,"Low","https://www.wyndhamhotels.com/ramada/gevgelija-macedonia/ramada-plaza-gevgelija/overview",3,!0],["Astoria Grand Hotel","Bulgaria","Sofia",980,5,76,3.7,"Medium","https://www.astoriagrandhotel.bg/en/astoria-events/",3,!0],["Hotel Marinela Sofia","Bulgaria","Sofia",884,10,82,3.7,"Medium","https://hotel-marinela.com/",3,!0],["Hotel Hills Sarajevo","Bosnia and Herzegovina","Ilidža, Sarajevo",660,9,84,3.7,"High","https://hotelhills.ba/congress-center/",3,!0],["Divani Meteora Hotel","Greece","Kalambaka",326,9,88,3.7,"Medium","https://divanimeteorahotel.com/events/",5,!0],["Hotel Mediteran BeÄiÄi","Montenegro","BeÄiÄi near Budva",460,6,88,3.7,"Medium","https://www.mediteran.me/en/convention-center",4,!0],["Ramada Plaza Bucharest Convention Center","Romania","Bucharest",300,10,88,3.7,"Medium","https://www.wyndhamhotels.com/en-uk/ramada/bucharest-romania/ramada-plaza-bucharest-convention-center/overview",3,!0],["INTERNATIONAL Hotel Casino & Tower Suites","Bulgaria","Golden Sands near Varna",650,11,90,3.7,"Medium","https://bgcb.eu/listing/international-hotel-casino-tower-suites/?lang=bg",4,!0],["Pullman Bucharest World Trade Centre","Romania","Bucharest",410,10,90,3.7,"High","https://pullman.accor.com/en/hotels/bucharest/1714/meetings.html",3,!0],["Rogner Hotel Tirana","Albania","Tirana",270,9,92,3.7,"Medium","https://www.hotel-europapark.com/mice/conference-rooms.html",3,!0],["Crowne Plaza Belgrade","Serbia","Belgrade",832,12,95,3.7,"Medium","https://scb.travel/wp-content/uploads/2025/05/Serbia-Meetings-and-Events.pdf",3,!0],["Crowne Plaza Bucharest","Romania","Bucharest",330,15,95,3.7,"High","https://www.cpbucharest.ro/en/meetings-events",3,!0],["King Evelthon Beach Hotel & Resort","Cyprus","Paphos",768,7,118,3.7,"High","https://www.visitcyprus.com/wp-content/uploads/files/CCB/CCB2023/Hotels_with_Conference_Facilites_updated_7_2_23.pdf",5,!0],["Grand Tornik","Serbia","Zlatibor",700,6,78,3.65,"Medium","https://grandtornik.rs/sr-pocetna-kongresi/",4,!0],["Hotel Mara Sinaia","Romania","Sinaia, Carpathians",280,8,78,3.65,"Medium","https://www.hotelmarasinaia.ro/corporate/",3,!0],["Lighthouse Golf & Spa Hotel","Bulgaria","Balchik, Black Sea coast",360,5,85,3.65,"High","https://lighthousegolfresort.com/conference-amp-meetings/conference-rooms/",5,!0],["Grand Hotel Palace","Greece","Thessaloniki",486,13,98,3.6,"Medium","https://www.grandhotelpalace.gr/en",4,!0
984],["Maritim Hotel Plaza Tirana","Albania","Tirana",380,8,100,3.6,"Medium","https://www.maritim.com/en/meetings-and-events/albania/plaza-tirana/meetings-celebrations",4,!0],["Splendid Conference & Spa Resort","Montenegro","BeÄiÄi, Budva",688,7,105,3.6,"Medium","https://www.montenegro.travel/en/poi/3623-splendid-conference-spa-resort",5,!0],["Kalimera Kriti Hotel & Village Resort","Greece","Sissi, Crete",800,8,118,3.6,"Medium","https://kalimerakriti.gr/meeting-incentives/",5,!0],["Hotel Lone Rovinj","Croatia","Rovinj, Istria",500,8,135,3.6,"High","https://www.maistra.com/properties/hotel-lone/",5,!0],["Meliá Grand Hermitage","Bulgaria","Golden Sands near Varna",1454,7,95,3.55,"Medium","https://seemice.com/objects/melia-grand-hermitage-varna/pdf",4,!0],["Grand Hotel Plovdiv","Bulgaria","Plovdiv",642,5,76,3.5,"Medium","https://grandhotelplovdiv.bg/en/",3,!0],["Aliathon Resort","Cyprus","Paphos",900,20,112,3.5,"High","https://www.aliathonresort.com/conferences/",4,!0],["Porto Carras Grand Resort","Greece","Neos Marmaras, Halkidiki",958,9,125,3.5,"Medium","https://www.portocarras.com/wp-content/uploads/2022/11/PC-Presentation-21-22-LR-1.pdf",5,!0],["Ramada Plaza by Wyndham Thraki","Greece","Alexandroupolis",298,8,92,3.45,"Medium","https://www.ramadaplazathraki.com/en/congress-center/capacities/",4,!0],["Avala Resort & Villas","Montenegro","Budva",606,8,102,3.45,"Low","https://www.avalaresort.com/events",5,!0],["Garden City Hotel Konjic","Bosnia and Herzegovina","Konjic",126,7,72,3.4,"Medium","https://www.seemice.com/Hotel/garden-city-hotel-konjic-and-resort-bih",3,!0],["Grecotel Larissa Imperial","Greece","Larissa, Thessaly",300,5,98,3.4,"High","https://www.grecotel.com/larissaimperial/events-meetings/",4,!0
984],["Hilton Belgrade","Serbia","Belgrade",484,11,105,3.4,"Medium","https://www.serbia.travel/wp-content/uploads/2025/03/05-MPG-eng.pdf",3,!0],["The Met Hotel Thessaloniki","Greece","Thessaloniki",424,13,105,3.4,"Medium","https://thessalonikiconventionbureau.gr/hotels/",3,!0],["Radisson Blu Hotel Bucharest","Romania","Bucharest",1050,11,110,3.4,"High","https://www.radissonhotels.com/en-us/hotels/radisson-blu-bucharest/meeting-events",3,!0],["Hyatt Regency Belgrade","Serbia","Belgrade",604,10,115,3.4,"Medium","https://www.hyatt.com/hyatt-regency/en-US/belgr-hyatt-regency-belgrade/meetings",3,!0],["Divani Caravel Athens","Greece","Athens",942,16,128,3.4,"Medium","https://divanicaravelhotel.com/wp-content/uploads/2025/01/DIVANI-CARAVEL-Brochure-2024.pdf",3,!0],["Qosmo BraÈov Hotel","Romania","BraÈov",260,7,88,3.35,"Medium","https://www.qosmohotels.com/",3,!0],["Alkyon Resort Hotel & Spa","Greece","Vrahati, Corinthia",349,7,96,3.25,"Medium","https://www.discovergreece.com/travel-services/accommodation/alkyon-resort-hotel-spa",4,!0],["Hotel Bellevue Mali LoÅ¡inj","Croatia","Äikat Bay, Mali LoÅ¡inj",400,7,145,3.15,"Medium","https://www.losinj-hotels.com/en/hotels-and-villas/hotel-bellevue/conferences/",5,!0]]}],venueDemoCount=venueDemoRegions.reduce((e,{venues:s})=>
984e+s.length,0),venueDemoDetails={"Abacus Business & Wellness Hotel":["Ten rooms, 128 bedrooms and only 15 minutes west of Budapest; excellent operational fit.","Coach from Budapest Airport/rail in roughly 35-50 minutes."],"Abades Nevada Palace":["Strong operational fit and Granada setting; a hotel-scale price benchmark for Spain.","Urban transport; Granada Airport nearby and Málaga Airport reachable by coach."],"Academic Hotel & Congress Centre":["Exactly scaled at 51 twin-capable rooms, with five lounges, a congress hall and restaurant near Prague.","Only 20 minutes by train from central Prague and well placed for airport transfers."],"Academic Hotel Krakowiak":["A highly practical university option with 84 year-round rooms plus 64 summer rooms, buffet meals and several training spaces.","Inside Kraków with tram connections and a short transfer to Kraków Airport."],"AGH University Student Campus":["A very large public-university campus with approximately 7,000 beds, ample teaching facilities and inexpensive campus dining.","Inside Kraków with tram access to the centre and an easy airport transfer."],Akoesticum:["A residential arts and training centre in a converted barracks with thirteen studios, 144 beds and fresh catering.","Four minutes on foot from Ede-Wageningen Intercity station; Utrecht and Schiphol are easy by rail."],"Aleksandar Palace":["A large divisible congress hall plus four smaller rooms creates eight working spaces, with ample city-hotel accommodation.","Three kilometres from central Skopje and around 25 minutes from the airport, served by many low-cost routes."],"Aliathon Resort":["A self-contained 459-unit Paphos resort with twenty multifunction rooms, nine dedicated breakouts and adaptable catering.","Around 20 minutes by coach from Paphos airport, with broad low-cost European service."],"Alkyon Resort Hotel & Spa":["A 133-room garden resort near the Gulf of Corinth with divisible halls and several smaller rooms yielding about seven spaces.","Roughly 90 minutes by charter coach from Athens airport, with suburban rail possible to Corinth."],"Alpin Conference Center":["Carpathian scenery, substantial room inventory and a dedicated conference centre.","Coach from BraÈov-Ghimbav Airport or Bucharest; rail to BraÈov."],"Alpin Resort Hotel":["A large Carpathian resort with extensive accommodation, a dedicated conference wing and enough separate workshop rooms for the full academy.","About 30 minutes from BraÈov station or airport; Bucharest requires a roughly 2.5-hour coach transfer."],"Amadria Park Ivan & Convention Centre Å ibenik":["The 372-room Ivan connects internally to an eleven-hall convention centre within a large seafront resort.","Split airport is about 55 km away and has extensive seasonal flights; a dedicated coach is needed."],"Ana Hotels Sport Poiana BraÈov":["A well-established Carpathian hotel with eleven flexible meeting rooms, terrace views, spa facilities and full conference catering.","About 30 minutes from BraÈov station and roughly 2.5 hours by coach from Bucharest airport."],"AP Lago Montargil Conference & Spa":["A 116-room lakeside resort with seven meeting rooms, attractive outdoor space and enough accommodation for a contained academy.","About 105 minutes by dedicated coach from Lisbon airport, a major low-cost European hub."],"Aquapalace Hotel Prague":["Eleven flexible conference rooms, 231 bedrooms and superb Prague access make this operationally low-risk.","Free shuttle to Prague metro, 15 minutes by road downtown and roughly 30 minutes from the airport."],"Aquaworld Resort Budapest":["A 1,400 m² conference centre divisible into 15 sections combines certainty of space with Budapest flight access.","Northern Budapest location with coach or shuttle access from the centre and airport."],"Aqvila Club":["Four villas on a private mountain estate with homemade food and buyout potential.","Coach from Bucharest or BraÈov; rural mountain transfer."],"AR Diamante Beach":["A polished 285-room beach hotel with a highly adaptable convention centre and access to Alicante's low-cost flights.","Coach transfer from Alicante airport; the beach setting adds appeal despite the final road leg."],"AR Diamante Beach Spa Hotel":["A 285-room Costa Blanca hotel with a purpose-built convention centre, extensive food service and rooms adaptable for up to 700 delegates.","Around one hour by coach from Alicante airport, a major European low-cost hub."],"Arbeitnehmer-Zentrum Königswinter":["A foundation-run residential education centre with 140 beds, ten rooms, full board and views over its park and the Rhine.","Close to Bonn and Cologne/Bonn Airport, with regional rail and tram connections."],"Aronsborg Konferenshotell":["A dedicated meeting hotel on Lake Mälaren with 196 bedrooms, 22 conference rooms, 29 group rooms and full restaurant operation.","Less than one hour from Arlanda, Stockholm and Uppsala;
984 commuter rail serves BÃ¥lsta."],"Aronsborgs Konferenshotell":["A dedicated conference campus on Lake Mälaren with 390 beds, 22 rooms and an on-site restaurant.","Less than an hour from Stockholm, Uppsala and Arlanda airport."],"Astoria Grand Hotel":["Exceptional access and value with 490 rooms, though the academy must negotiate extra small breakouts.","Central Sofia with metro and a short transfer from Sofia Airport."],"Avala Resort & Villas":["A landmark resort beside Budva's Old Town with 303 accommodation units and extensive delegate, auditorium and restaurant spaces.","Tivat Airport is the closest; Podgorica and Dubrovnik broaden the flight options with coach transfers."],"BabeÈ-Bolyai University Campus":["A major public university with substantial guest accommodation, an 80-seat restaurant serving three meals and extensive nearby teaching infrastructure.","In Cluj-Napoca, a well-connected university city with its own international airport."],"Bachleda Hotel Kasprowy Zakopane":["A 288-room mountain hotel with Tatra views, 13 conference rooms, three restaurants and large green grounds.","Coach or bus from Kraków; Kraków airport has an extensive low-cost European network."],"Balneario de Archena":["Three hotels with 253 rooms, catering and adaptable event halls in a dramatic river-valley thermal complex.","About 50 minutes from Murcia Airport and 75 minutes from Alicante Airport."],"Balneario de Mondariz":["Landmark spa architecture with a dedicated congress building and numerous rooms in a green Galician setting.","About 30 minutes from Vigo Airport; Porto Airport is roughly two hours by coach."],"Balneario de Panticosa":["A spectacular high-mountain setting with extensive accommodation, food service and a dedicated meetings offer.","Requires a group coach from Zaragoza, Huesca, Pau or Lourdes; scenery is outstanding but transport is the trade-off."],"Barceló Punta UmbrÃa Beach Resort":["A vast beachfront resort with 1,200 rooms and 22 conference rooms, including several ideal small breakouts.","Bus station 600 metres away; Seville and Faro airports are each roughly 110â120 kilometres away."],"Barceló Sants":["Nineteen meeting rooms and 378 bedrooms directly above Barcelona Sants make logistics exceptionally easy.","Direct airport train, metro, regional and international high-speed rail beneath the hotel."],"BÄdlewo Research and Conference Centre":["A neo-Gothic palace and park paired with a purpose-built academic conference centre, 180 beds and full-board operation.","About 26 kilometres south of PoznaÅ and approximately 40 minutes by group transfer from the city and airport."],"Belgrade Student Centre Campus":["Belgrade's public student centre operates a vast dormitory and restaurant network and provides hostel services to outside groups.","Within Belgrade, with good urban transport and a major regional airport."],"Best Western CTC Hotel Verona":["Nine meeting rooms, 203 bedrooms and competitive suburban economics make this a strong operational fallback near Verona.","Ten-minute transfer to Verona and close to motorway and airport; Milan, Venice and Bologna widen travel options."],"Bilderberg Résidence Groot Heideborgh":["An 85-room forest hotel with six dedicated inspiration rooms and more than fifteen additional meeting spaces.","Coach from Amersfoort or Apeldoorn rail stations; Schiphol is roughly an hour by road."],"Bildungshaus Sankt Magdalena":["A mission-aligned education house with hotel, restaurant and 13 daylight seminar rooms on Linz's green northern edge.","About 25 minutes from Linz Hauptbahnhof by tram and bus; Linz also has strong rail links."],"Bildungshaus Schloss Puchberg":["Historic moated castle run as an education house, close to a major Austrian rail junction.","Short coach/taxi from Wels Hbf; Linz Airport and Vienna/Munich rail corridors."],"Bildungshaus Schloss Retzhof":["A beautiful Styrian castle and park purpose-built for education, with exactly the right bed scale and extensive teaching space.","Near Leibnitz on the Graz-Maribor corridor; a coach transfer from Graz is the practical option."],"Bildungshaus St. Arbogast":["Purpose-built educational house with 125 beds, eleven seminar rooms, two halls and an explicit full-board operation.","Near Götzis station; reachable through Zurich, Innsbruck or Munich airports and the Rhine Valley rail line."],"Bildungshaus St. Bernhard":["A church-owned education house with 81 bedrooms, ten meeting rooms, catering, gardens and a pool in a historic complex.","Rastatt has direct regional rail links to Karlsruhe and Baden-Baden; the latter airport is about 20 minutes away."],"Bildungshaus St. Hippolyt":["A purpose-built education house with 99 beds, 14 meeting rooms and on-site dining in a compact historic city.","Central St. Pölten is on the Vienna-Salzburg main line, roughly 25 minutes by fast train from Vienna."],"Bildungshaus St. Martin â Kloster Bernried":["A beautiful Benedictine education house on Lake Starnberg with 95 beds, group rooms and its own kitchen.","Regional rail from Munich to Bernried; approximately one hour from the city."],"Bildungshaus Zeppelin & Steinberg":["Exactly eight seminar rooms, 133 beds and a green hillside setting above historic Goslar.","Rail to Goslar via Hanover; short local transfer from the station."],"Bildungszentrum Kloster Roggenburg"
984:["A close conceptual match to Benediktbeuern: monastery setting, 120 beds and 23 education rooms.","About 35 minutes by coach from Ulm; Memmingen and Munich airports are viable."],"Bluesun Hotel Elaphusa":["Large seaside resort with five conference halls and strong shoulder-season group capability.","Ferry from Split to Supetar plus coach, or seasonal catamaran/air connection to BraÄ."],Bovendonk:["Monumental former seminary, 54 rooms, extensive meeting space and strong rail/airport geography.","Between Breda and Roosendaal; rail plus bus, with Rotterdam, Eindhoven and Brussels airports viable."],"Budapest Combined School Residence":["A public school residence that explicitly accepts visiting groups, uses four-bed rooms and can arrange meals at educational-sector rates.","In Budapest's fourteenth district, about seven minutes' walk from the metro and well connected to the city centre."],"Bulgarian Red Cross Training Centre Lozen":["A mission-aligned nonprofit residential campus with 120 beds, extensive small-group teaching space and on-site catering in green surroundings.","Around 20-30 minutes from Sofia and roughly 24 kilometres from Sofia Airport."],"Burg Ludwigstein":["Romantic hilltop castle with a residential education mission and sufficient scale.","Rail to Witzenhausen/Göttingen or Kassel, then local coach."],"Burg Rieneck":["A nonprofit medieval scout castle with 138 beds, group catering and atmospheric teaching spaces.","Rail via Gemünden from Frankfurt or Würzburg; the venue offers a luggage shuttle from Rieneck station."],"Burg Rothenfels Youth Hostel":["Exceptional historic castle, large room inventory and many work rooms at youth-hostel economics.","Rail to Würzburg/Lohr plus coach; Frankfurt Airport roughly 1.5 hours by road."],"Burg Schwaneck":["Castle atmosphere, youth-education mission, 130 beds and an unusually broad room portfolio at Munich's edge.","Pullach S-Bahn; roughly 35 minutes from Munich Hauptbahnhof."],"Bymose Hegn":["Fourteen purpose-built eight-person group rooms plus plenaries in a forest park.","About one hour from Copenhagen Airport by coach/rail."],"CAAS Dubrovnik":["A beautiful university centre with twelve lecture rooms, restaurant and catering, missing the brief by only two residential places.","In Dubrovnik with the international airport approximately 25 minutes away."],"Caritas-Pirckheimer-Haus":["A centrally located Catholic academy with 100 beds, nineteen seminar rooms and its own kitchen.","In central Nuremberg, easily reached from the main station and airport."],"Carmelite Hospitality Centre Ciofliceni":["One of the closest Eastern European matches to Oasi: a beautiful independent hospitality wing with 120 beds, four meeting rooms plus a 180-seat hall, dining for 120 and a staffed kitchen.","Approximately 35-45 minutes by group transfer from Bucharest and Henri Coanda Airport."],"Casa Cristo Rey":["A religious retreat campus with 80 single or double rooms, further bunk rooms, gardens, in-house catering and spaces for both plenaries and small groups.","Only 15 km from central Madrid; a consolidated pickup from Madrid Airport or a suburban rail station is straightforward."],"Casa de Ejercicios San José":["Exceptional functional value: 144 bedrooms, up to 360 beds, fourteen rooms, auditorium, large dining hall and gardens.","CercanÃas and regional buses connect El Escorial with Madrid; Madrid Airport has excellent low-cost coverage."],"Casa Diocesana de Vilar":["Historic religious campus in central Porto with a residence model and strong city access.","Metro/taxi from Porto Airport; walkable city location."],"Casa Fray Luis de León":["Mountain setting within Madrid's transport orbit and likely strong youth-group economics.","Coach/commuter bus from Madrid; about one hour from the airport."],"Casa La Salle Roma":["Religious nonprofit mission, 130 rooms, park, Metro A and a broad meeting-room offer.","Cornelia metro station; simple connection to central Rome and both airports."],"Casa per Ferie Maria Santissima Assunta":["A Dominican guest house in Rome with 98 beds, seven conference rooms, an auditorium and an internal kitchen.","Inside Rome with public-transport connections from Termini and easy airport transfers."],"Casa per Ferie Seraphicum":["A Franciscan guesthouse in a Mediterranean park with restaurant, auditorium and at least eight meeting rooms.","Only 200 metres from Laurentina metro, with direct urban links toward central Rome and both airports."],"Casa San José":["A quiet religious retreat house with gardens and multiple teaching space
984s beside the monumental landscape of El Escorial.","Madrid Airport is roughly 50â60 minutes away by group transfer; suburban rail also connects El Escorial with Madrid."],"Castilla Termal Olmedo":["A converted twelfth-century convent with 82 rooms and six independent event spaces in Castile.","Coach from Valladolid or Madrid; the attractive rural setting trades off against the final transfer."],"Centre Culturel Saint-Thomas":["Twenty meeting spaces, 88 bedrooms, three dining rooms and a five-hectare park inside one of Europe's best-connected border cities.","City transit to Strasbourg station; fast rail to Paris, Frankfurt, Basel and other European hubs."],"Centre Jean XXIII Annecy":["A quiet, values-aligned residential centre with lake views, onsite dining and eight meeting rooms plus an amphitheatre.","Local bus from Annecy station; Geneva airport is about 50 minutes by coach."],"Centre Port-Royal":["A quiet forest setting only 45 minutes from Paris, with 55 bedrooms and ten equipped rooms.","Coach from Paris or RER connection plus transfer; easy international arrival through Paris."],"Centre spirituel du Hautmont":["A volunteer-supported Ignatian centre with 90 beds, twenty flexible rooms, restaurant service and a green park inside the Lille metropolitan area.","The centre is reachable by Lille public transport; Lilleâs two main stations connect directly to Paris, Brussels and London."],"Centre Sportif de Normandie â Houlgate":["A renovated public campus with 212 beds in a 12-hectare park, on-site restaurant and training rooms 900 metres from the sea.","Around two hours from Paris by rail and local transfer; Deauville and Caen provide nearer regional connections."],"Centro Ad Gentes Nemi":["A Society of the Divine Word centre with 100 guest rooms, full dining and a commanding Lake Nemi setting near Rome.","Coach transfer from Rome Termini or either Rome airport; the capital has excellent Europe-wide flights."],"Centro de Espiritualidad Loyola":["A remarkable Jesuit campus with capacity for 152, five classrooms, twelve small-group rooms and extensive parkland.","Coach transfer from Bilbao or San Sebastián airports; regional buses serve Azpeitia."],"Centro di Spiritualità Padre Pio":["A mission-driven centre with 100 rooms, two restaurants, seven conference rooms, an auditorium and contemplative surroundings.","Best reached by group transfer from Bari or Foggia; the final leg is the main trade-off."],"Centro Giovanni XXIII Frascati":["A Sacred Heart congregation centre in the Castelli Romani with more than 500 beds and ten meeting rooms.","Local rail and coach links to Rome; Ciampino airport is particularly close."],"Centro Pastoral Paulo VI":["Designed for residential groups, with dorms, self-service dining, major halls and many meeting spaces.","Coach from Lisbon Airport about 75-90 minutes; frequent intercity buses."],"Centro Pastorale Ambrosiano â Seveso":["An Archdiocese-owned monumental campus with more than 150 ensuite rooms, fourteen halls, two refectories, cloister, sanctuary and 4.5 hectares of park.","Seveso has frequent regional trains to Milan; dedicated pickups can connect the campus with Malpensa, Linate and Bergamo airports."],"Centrum Barnabitów":["Quiet religious centre in Warsaw with professional rooms and very easy Europe-wide access.","Urban transit; close to Warsaw Chopin Airport and central rail."],"Centrum Konferencyjno-Szkoleniowe Ossa":["A purpose-built training centre with more than 300 rooms, 22 conference rooms, restaurants and 23 hectares of nature.","Roughly an hour from Warsaw and 60 kilometres from Åódź, both useful arrival hubs."],"Centrum Krystal":["A Charles University residential conference centre with an auditorium and eight additional classrooms or salons; lodging and meeting capacity are confirmed for the exact dates.","In Prague 6 beside the metro and close to the airport, making this one of the easiest options for both flights and European rail arrivals."],"CEU Residence and Conference Center":["A mature academic conference operation with 424 air-conditioned rooms, flexible meeting space
984s for 10-280 participants and complete catering.","About 20 minutes from central Budapest with strong access to a major low-cost European air hub."],"CFSR Les Rives de Sablé":["An association-oriented centre with 104 beds, catering and numerous equipped rooms in an accessible Loire-region rail town.","TGV and regional connections via Le Mans or Angers; Paris airports remain the widest flight gateways."],"Charles University PodÄbrady Campus":["A compelling academic setting combining student accommodation with teaching in a 14th-century castle in an elegant spa town.","Direct trains reach Prague in roughly 50 minutes; Prague Airport requires a city connection or group transfer."],"Château de Châtenay":["A proper château only 15 minutes from CDG, with 12 meeting rooms and residential events up to 200.","Approximately 15 minutes by coach from Paris Charles de Gaulle Airport."],"Château de Jambville":["A highly aligned nonprofit château campus with around 200 beds, abundant group rooms and extensive grounds.","Roughly one hour west of central Paris; coach connection from Paris airports or suburban rail."],"Château de la Plinguetière":["An association-run château campus in eight wooded hectares, with 200 beds, onsite catering and multiple rooms for groups of 10 to 100.","About 15 minutes by coach from Nantes airport and 25 minutes from Nantes station."],"Château de Périgny":["A genuine château in a 35-hectare park with more than 100 beds, seven rooms and an on-site restaurant.","Around 15 minutes from Poitiers and its TGV station; transfers can be consolidated there."],"Château de Villebon":["A nonprofit Lazarist retreat centre in a château and 15-hectare park, with 90 beds and at least eight usable meeting rooms. Its published 2024 full-board rate was exceptionally low.","Twenty kilometres south of Paris; Massy-Palaiseau and Paris-Orly provide practical rail and airport pickup points."],"Château LouÄeÅ / Maxmilian Lifestyle Resort":["Baroque château and park with exactly the right bed and room scale, within Prague's catchment.","About one hour by coach from Prague airport or main station."],"Château TÅešť":["A renovated château run by the Czech Academy of Sciences, with about 55 rooms and nine meeting spaces.","Regional rail via Jihlava; Prague, Vienna and Brno are possible coach gateways."],"Cheile GrÄdiÈtei Fundata":["Dramatic Carpathian setting, extensive accommodation and established group/conference business.","Coach from BraÈov; longer transfer from Bucharest."],"CIARUS Strasbourg":["International mission, central Strasbourg location and rail reach from France, Germany and Switzerland.","Walk/transit from Strasbourg station; multiple nearby airports plus excellent high-speed rail."],"CIS de Champagne Reims":["A social-economy residential centre with 203 beds, a cafeteria and twelve meeting rooms near historic central Reims.","Walkable from Reims-Centre station and connected by tram to Champagne-Ardenne TGV, 45 minutes from Paris."],"CISL Ethic Etapes Lyon":["A nonprofit social-tourism centre with 100 bedrooms, ten modular rooms, self-service meals and a proven 80-person seminar record.","Tram access within Lyon and simple c
984onnections to Part-Dieu station and Lyon airport."],"CISP Ravel":["A City of Paris international residential centre managed by the Ligue de l'enseignement, with 108 rooms, extensive seminar space and group catering.","On the Paris metro network, with exceptional Europe-wide rail and air access."],"Clarion Congress Hotel Prague":["A 559-room congress hotel with 29 rooms, restaurants and direct metro access ten minutes from central Prague.","VysoÄanská metro station is adjacent; Prague airport and international rail links are straightforward."],"Clarion Hotel Helsinki Airport":["A new terminal-linked hotel complex with hundreds of rooms and 21 meeting rooms, eliminating nearly all ground-transfer friction.","Direct indoor access to airport and rail services; central Helsinki is around 30 minutes away."],"Clarion Hotel Post":["A converted historic post office beside Central Station with 500 rooms and seventeen meeting rooms.","Directly beside Gothenburg Central and the airport-bus terminus; strong rail links across Scandinavia."],"Club Hotel Dante Cervia":["A 244-room Adriatic hotel with nine modular conference rooms, three restaurants and year-round integrated event operations.","Walkable or a short transfer from Cervia station; Bologna airport is about 90 minutes by coach."],"College of Europe Natolin Campus":["An exceptionally aligned European academic campus in a historic palace and 120-hectare park, with residences, seminar rooms and a seven-day full-board restaurant.","Inside Warsaw with practical road and public-transport access from the city centre and Chopin Airport."],"Complex Boyana":["A government-owned architectural and park complex with a residential hotel, one large hall, seven small conference rooms and two restaurants for 100.","At the foot of Vitosha, ten kilometres south of central Sofia and within a short group transfer of the airport."],"Comwell Borupgaard":["A historic manor with 149 rooms, 29 meeting/group rooms and parkland near Copenhagen and Helsingør.","Rail from Copenhagen to Snekkersten; Copenhagen airport has exceptional European coverage."],"Comwell Holte":["A proven conference hotel with 112 rooms, 25 flexible meeting rooms, restaurant and substantial green grounds near Copenhagen.","Suburban rail and coach links to Copenhagen, whose airport has excellent Europe-wide service."],"Comwell Kolding":["A 180-room conference hotel with roughly 28 meeting rooms, including 15 group rooms.","About 15 minutes' walk from Kolding station; Billund Airport is under an hour by coach."],"Congress Centre SAV Academia":["An academic institution in the High Tatras with exactly the right residential scale and conference purpose.","About 20 minutes from Poprad Airport/rail; Kraków or KoÅ¡ice require longer coach transfers."],"Cova de Sant Ignasi":["A beautiful historic Jesuit centre with more than 75 guestrooms, dining and numerous activity rooms near Barcelona.","Frequent regional rail from Barcelona to Manresa, then a short local transfer."],"CREPS Ãle-de-France":["A public education campus in a listed park with 320 beds, 20 meeting rooms, two conference halls and seven-day catering.","RER B plus Tram 10 from central Paris and both Paris airports; about 20 minutes from the city by road outside peaks."],"Crowne Plaza Belgrade":["Twelve meeting rooms and 416 bedrooms provide a dependable large-city option with strong transport economics.","New Belgrade location with airport buses and short transfers to the main rail and bus network."],"Crowne Plaza Bucharest":["A 165-room hotel with fifteen daylight event rooms, terraces and a large pine garden close to Bucharest airport.","Roughly 15 minutes from Bucharest airport and close to Romexpo; group coach transfers are simple."],"CÅ OD Bohinj":["Spectacular Bohinj setting, exactly 85 beds and public-education economics.","Coach from Ljubljana Airport; rail/bus via Bohinjska Bistrica."],"Cultural Centre Sofia":["Seaside cultural institution with accommodation for over 100 and convenient access to both city and airport.","Approximately 20 minutes by coach from Helsinki Airport or city centre."],"Curia Palace Hotel":["A restored 1926 palace with about 100 rooms, five meeting rooms, an auditorium and ballroom in a spa-park setting.","Rail via Coimbra or Aveiro plus a short coach; Porto airport is the most practical international gateway."],"Danubius Hotel Annabella":["Eight conference rooms, 389 bedrooms and a promenade location provide high capacity at reportedly competitive Balaton pricing.","Rail from Budapest to Balatonfüred; Budapest airport is the primary international gateway."],"Danubius Hotel Arena":["A 379-room Budapest hotel with ten daylight event rooms, a restaurant and a metro station at the door.","Puskás Ferenc Stadion metro gives direct central access; Budapest airport has extensive low-cost European flights."],"De Plesman":["The restored former KLM headquarters offers 102 rooms and ten meeting rooms between The Hague's centre, forest and dunes.","Urban tram and rail connections reach Rotterdam airport and Schiphol; Brussels, Paris and Cologne are accessible by train."],"De Ruwenberg":["A 14-hectare estate with 196 bedrooms, forty meeting rooms, four independent conference wings and complete catering.","Five minutes from 's-Hertogenbosch by coach; rail links reach Schiphol, Eindhoven and major Benelux cities."],"Der Sunderhof":["A YMCA residential conference house in wooded grounds, with 130 beds, full board and multiple seminar rooms.","Approximately 35 minutes from Hamburg centre and airport by group transfer."],Destelheide:["Outstanding fit: public campus, three meals, 240 beds, extensive classrooms and Brussels access.","Coach from Brussels Midi or Brussels Airport; regional transit possible."],"Divani Caravel Athens":["A major 471-room Athens hotel with a deep meeting inventory and experienced residential-conference operation.","Central Athens with metro and airport-bus access; Athens has one of Southeast Europe's strongest flight networks."],"Divani Meteora Hotel":["World-class Meteora setting and a conference centre divisible into seven areas plus two rooms.","Rail from Athens/Thessaloniki to Kalambaka; airport transfer is longer."],"DJH Youth Hostel Aachen":["Ten conference rooms and 157 beds give a well-sized, economical academy setup near the historic university city.","Aachen is on international rail routes toward Brussels and Paris; Cologne/Bonn and Düsseldorf airports are practical gateways."],"DJH Youth Hostel Bad Homburg":["A meeting-certified 214-bed hostel with nine rooms, full board and a green spa-town setting beside Frankfurt.","About 20 km from Frankfurt airport and 1.8 km from Bad Homburg station, with S-Bahn access to Frankfurt."],"DJH Youth Hostel Bad Urach":["An attractive Swabian Alb base with 135 beds and eight rehearsal or activity rooms suitable for parallel academy groups.","Regional rail via Metzingen connects to Stuttgart Hauptbahnhof and airport; allow about 90 minutes."],"DJH Youth Hostel Bayreuth":["A striking modern hostel with 180 beds, five equal-sized seminar rooms, full board and a strong inclusion mission.","Urban buses connect to Bayreuth station; Nuremberg airport and high-speed rail are the main international gateways."],"DJH Youth Hostel Berchtesgaden":["A park-like multi-building campus with 265 beds, catering and exceptional Watzmann views near Salzburg.","Regional rail to Bischofswiesen or Berchtesgaden; Salzburg airport is the nearest useful flight hub."],"DJH Youth Hostel Biedenkopf":["Seven meeting rooms and 198 beds offer a strong low-cost residential setup in a scenic Hessian hill town.","Regional rail via Marburg; Frankfurt airport is the principal international gateway."],"DJH Youth Hostel Bielefeld":["A nonprofit educational hostel in an imaginatively converted factory, with 196 beds and six flexible meeting rooms.","About 1.5 km from Bielefeld main station, with tram access and good German rail connections."],"DJH Youth Hostel Bonn":["Nine conference rooms and 249 beds in the green Venusberg district combine nonprofit economics with metropolitan access.","Local buses connect to Bonn Hbf; Cologne/Bonn airport and Cologne's ICE station provide broad European links."],"DJH Youth Hostel Borgwedel":["A scenic fjord-side campus with 286 beds and seven separate day rooms well matched to parallel seminars.","Regional rail via Schleswig plus a short group transfer; Hamburg airport is roughly two hours away."],"DJH Youth Hostel Bremen":["A large nonprofit riverside hostel with 254 beds, five named meeting rooms and complete group catering in a handsome Hanseatic city.","Walkable or a short tram ride from Bremen Hauptbahnhof; Bremen airport is directly linked by tram."],"DJH Youth Hostel Cologne-Deutz":["A very large full-service youth hostel beside Köl
984n Messe/Deutz station, with residential conference packages and extensive group capacity.","Opposite Köln Messe/Deutz station, one local train stop from Cologne Central and directly linked to Cologne/Bonn airport."],"DJH Youth Hostel Cologne-Riehl":["A modern Rhine-side nonprofit hostel with 506 beds, 11 conference rooms, full catering and abundant common space.","Tram links to Cologne Hauptbahnhof; Cologne/Bonn airport and major European rail routes are close."],"DJH Youth Hostel Dachau":["A purpose-built educational hostel with 116 beds, six core seminar rooms plus a library and full catering near Munich.","Dachau is on Munich's S-Bahn network; transfer time from Munich airport is roughly one hour."],"DJH Youth Hostel Dresden Jugendgästehaus":["A central 478-bed nonprofit guesthouse with five equal-sized meeting rooms, full board and immediate access to Dresden's rebuilt baroque centre.","Walkable from Dresden Hauptbahnhof; Dresden airport and Berlin rail connections broaden European access."],"DJH Youth Hostel Duisburg Landschaftspark":["A distinctive hostel inside the Landschaftspark industrial monument, with 142 beds, six conference rooms and meal service.","Local transit is about 800 m away; Duisburg rail hub and several Ruhr airports are readily accessible."],"DJH Youth Hostel Düsseldorf":["A contemporary hostel beside the Rhine with 338 beds, seven bright meeting rooms and reliable full-board operation.","About 5 km from Düsseldorf Hauptbahnhof and 10 km from a major European airport."],"DJH Youth Hostel Frankfurt":["A large nonprofit hostel on the Main with 365 beds, twelve conference rooms and full meal service.","Central Frankfurt location with tram and S-Bahn access;
984 Frankfurt airport and the ICE hub are among Europe's best connected."],"DJH Youth Hostel Freiburg International":["A 350-bed nonprofit hostel with seven meeting rooms, full board and a green setting at the edge of one of Germany's prettiest university cities.","Freiburg is on the FrankfurtâBasel ICE corridor; tram and a short walk connect the hostel to the main station."],"DJH Youth Hostel Garmisch-Partenkirchen":["Six equipped rooms, 203 beds and a memorable Zugspitze setting create an unusually complete value option.","Direct regional trains from Munich; the hostel is linked to the station by local bus."],"DJH Youth Hostel Goslar":["An affordable seminar hostel at the foot of the Rammelsberg, with 171 beds and eight usable meeting spaces near UNESCO-listed Goslar.","Local bus or short coach transfer from Goslar station; Hannover airport is roughly 90 minutes away."],"DJH Youth Hostel Göttingen":["A university-town hostel with 142 beds, full board and six bright seminar rooms, including several suited to parallel workshops.","Around 2 km from Göttingen ICE station, with strong north-south rail connections."],"DJH Youth Hostel Halle":["A nonprofit, meeting-certified hostel with 241 beds, multiple divisible rooms and full-board service in a lively university city.","1.5 km from Halle main station, 100 m from the tram and about 28 km from Leipzig/Halle airport."],"DJH Youth Hostel Hamburg Horner Rennbahn":["A very large nonprofit hostel with six listed meeting areas and full catering, offering excellent transport economics.","Only five U-Bahn stops from central Hamburg; the main station and airport connect cheaply across northern Europe."],"DJH Youth Hostel Hanover International":["A 306-bed nonprofit hostel beside the Maschsee with seven daylight meeting rooms and explicit full-board service.","Close to central Hanover by tram and within easy reach of the main station and international airport."],"DJH Youth Hostel Heidelberg International":["A very safe operational fit: 447 beds, 15 meeting rooms, full board and an attractive university-city setting.","Urban public transport connects the hostel to Heidelberg station; Frankfurt airport is reachable by rail."],"DJH Youth Hostel Kassel":["Ten seminar rooms for 10â100 people, 213 beds and excellent German high-speed rail access.","Kassel-Wilhelmshöhe is a major ICE hub; local tram or bus completes the journey to the hostel."],"DJH Youth Hostel Koblenz":["A rare fortress hostel with 158 beds, five meeting rooms and full catering above the RhineâMoselle confluence.","Koblenz is an intercity rail hub; bus or cable-car connections reach Ehrenbreitstein from the centre."],"DJH Youth Hostel Lauterbach":["Eight independent rooms, 172 beds, extensive grounds and strong value in the Vogelsberg countryside.","Regional rail via Fulda or GieÃen, followed by a short local transfer; Frankfurt airport is roughly 90 minutes away."],"DJH Youth Hostel Lindau":["Affordable full board, 244 beds and six rooms near beautiful Lake Constance and Lindau's island old town.","Directly opposite Lindau-Reutin station, with rail access from Munich, Zurich and Austrian hubs."],"DJH Youth Hostel Lörrach":["A green hillside hostel with 168 beds, five meeting rooms and full board just across the border from the Basel transport hub.","Local rail connects Lörrach with Basel SBB and EuroAirport BaselâMulhouse."],"DJH Youth Hostel Munich City":["A rebuilt city hostel with 402 beds and seven conference rooms gives excellent operational certainty in Europe's best-connected southern German hub.","Metro and tram access from Munich Hauptbahnhof; the airport and rail hub have exceptional Europe-wide connectivity."],"DJH Youth Hostel Munich Park":["Five equipped rooms, a 200-seat dining hall and 374 beds combine affordability with green Isar-side surroundings.","Walkable to Thalkirchen U-Bahn, with simple links to Munich Hauptbahnhof and the airport."],"DJH Youth Hostel Naumburg":["Seven documented meeting rooms, 228 beds and inexpensive nonprofit operations near the UNESCO cathedral and Saale-Unstrut vineyards.","Regional rail links to Leipzig, Halle and Erfurt; the hostel is a short local transfer from Naumburg station."],"DJH Youth Hostel Nuremberg":["Exceptional value in the Imperial Castle's former stables, with 353 beds, nine conference rooms and full-board catering.","Five minutes on foot from the old town, with excellent national rail and a well-connected airport."],"DJH Youth Hostel Rothenburg ob der Tauber":["A highly memorable medieval setting with an unusually deep inventory of work and meeting rooms across the hostel complex.","Regional rail to Rothenburg station; practical group access is via Nuremberg or Frankfurt with one or tw
984o changes."],"DJH Youth Hostel Schwäbisch Hall":["Affordable full-board lodging with five independent rooms and views over one of southern Germany's prettiest old towns.","Regional rail connections via Heilbronn or Stuttgart; the hostel is above the historic centre."],"DJH Youth Hostel Speyer":["A 234-bed hostel with seven independent rooms, three daily meals and easy access to Speyer's Romanesque cathedral and Rhine waterfront.","Regional trains connect via Mannheim, a major ICE junction; Frankfurt airport is roughly 75 minutes away."],"DJH Youth Hostel Stuttgart International":["A large hillside hostel with city and vineyard views, 311 beds and a flexible inventory yielding about six working rooms.","Local transit reaches Stuttgart Hauptbahnhof quickly; the airport has broad European service."],"DJH Youth Hostel Wiesbaden":["A 223-bed youth hostel with thirteen meeting rooms in an elegant spa city inside the Frankfurt airport catchment.","Wiesbaden has frequent trains to Frankfurt Hauptbahnhof and airport; the hostel is reached by local bus."],"DJH Youth Hostel Würzburg":["A 222-bed nonprofit hostel on the Main with seven listed conference rooms, catering and easy access to Würzburg's UNESCO cityscape.","Würzburg is a major ICE rail junction with direct services toward Frankfurt, Munich, Hamburg and Vienna."],Djurönäset:["A purpose-built archipelago resort with abundant single rooms and a deep inventory of upgraded conference rooms.","Around one hour by coach or bus from Stockholm; European access through Arlanda."],"Dobre Miejsce":["A wooded Catholic conference campus inside Warsaw with nine meeting rooms, extensive group accommodation and catering.","Around 20â30 minutes from central Warsaw; straightforward airport and rail connections."],"Dolce CampoReal Lisboa":["A protected-landscape resort with 151 rooms and 23 meeting spaces only 30 minutes north of Lisbon.","Approximately 47 km from Lisbon airport; a dedicated coach is the practical solution."],"Dom Pedro Lisboa":["A substantial central Lisbon hotel with 1,400 square metres of event space, sixteen versatile rooms and two restaurants.","About 20 minutes from Lisbon airport, with metro and major rail links nearby."],"Dom Pedro Vilamoura":["A large Algarve resort beside an eleven-room daylight congress centre, with gardens, restaurants and Faro airport access.","About 30 minutes by coach from Faro airport, which has broad low-cost European coverage."],"Dom sv. Jožef":["A purpose-built diocesan education house with about 92 beds, ten halls and small meeting rooms, meals and peaceful grounds.","In Celje, approximately 50-60 minutes from Ljubljana by road or direct rail."],"Domaine de Frémigny":["A wooded château estate built for residential seminars, with a large bedroom inventory, restaurant service and abundant breakout spaces.","Near Bouray RER station and roughly one hour from central Paris and Orly airport."],"Domaine de la Forêt d'Orient":["A scenic 78-room hotel inside a regional nature park, with eight daylight seminar rooms and an onsite restaurant.","Around 30 minutes by coach from Troyes station and about two hours from Paris airports."],"Domaine de la Frayse":["A nonprofit education estate with a 100-seat restaurant and several 10â40-person rooms in green surroundings outside Bordeaux.","Local transfer from Bordeaux Saint-Jean and Bordeaux airport, both well connected across western Europe."],"Domaine de Massembre":["A nonprofit group centre in 140 hectares of Ardennes forest, with multiple lodging buildings and rooms for groups from 5 to 300.","Remote; use a charter coach from Brussels, Charleroi or Dinant."],"Domaine de Ronchinne":["A relaxed château estate with 80 rooms, capacity for 200 and ten-plus meeting spaces across several buildings.","Between Brussels and Luxembourg; a coach from Namur station is the practical final connection."],"Domaine du Lazaret":["A large full-board seaside domain with 162 guest rooms and twelve meeting spaces in a distinctive Mediterranean setting.","Sète has direct TGV links; Montpellier Airport and station provide broad European access."],"Domaine Lyon Saint-Joseph":["A five-hectare green campus with 100 bedrooms, roughly 20 meeting rooms and an amphitheatre just outside Lyon.","Local bus links to Lyon Perrache; Lyon is a major rail hub with extensive European flights."],"Domaine Maritime de Beg Porz":["A nonprofit three-star village on two coastal hectares with 47 hotel rooms, full board and multiple meeting and recreation rooms.","Coach from Lorient or Quimper stations and airports; Paris connections require a TGV plus local transfer."],"Domus Maria":["A handsome archdiocesan guest house in a former monastery with 48 rooms, four formal conference halls and a possible fifth closed refectory space.","In Vilnius Old Town, close to the station and roughly 15 minutes from the airport."],"Domus Pacis Assisi":["A Franciscan setting with 173 bedrooms, sixteen meeting rooms and large restaurant capacity at the foot of Assisi.","Near Assisi rail station; Perugia Airport is closest, with Rome and Florence requiring longer rail transfers."],"DoubleTree by Hilton Åódź":["A 201-room hotel built into a former film-studio complex with eighteen event venues and strong on-site catering.","Åódź has direct trains to Warsaw; Warsaw Chopin airport is around 90 minutes by coach."],"Du Lac et Du Parc Grand Resort":["A 254-room resort in a seven-hectare lakeside park with up to eleven meeting rooms and two restaurants.","Coach transfer from Verona airport takes about 75â90 minutes; Rovereto is the nearest mainline station."],"Emmaus Bezinningscentrum":["A nonprofit former mission monastery run with substantial volunteer support, offering 365 beds, multiple halls, gardens and three meals with every booking.","Helvoirt is about 15 minutes by road from âs-Hertogenbosch; station pickup provides good Dutch and international rail access."],"Ensana Esplanade Piešťany":["A parkland spa-island hotel with ten daylight meeting rooms and access to a much larger integrated bedroom inventory.","Around 60 minutes from Bratislava airport and 90 minutes from Vienna airport by coach."],"Ensana Thermal Margaret Island":["A 285-room thermal hotel in a Danube island park, with event rooms supplemented by its neighbouring sister hotel.","Frequent buses connect to central Budapest; the airport has broad low-cost European service."],"Espace Montcalm":["A former grand seminary in a two-hectare park, 177 beds, catering and 16 meeting rooms.","Walkable from central Vannes; TGV via Paris, with Nantes or Rennes airports."],"ESTONIA Resort Hotel & Spa":["A 106-room seaside resort with up to eight breakouts offers strong value midway between Tallinn and Riga.","Direct intercity buses and private coaches from Tallinn or Riga airports in roughly two hours."],"éthic étapes Archipel Saint Cyr":["A 140-bed accessible centre with seven halls in a natural lakeside setting ten minutes from Futuroscope.","Poitiers is on the ParisâBordeaux TGV line; a private coach from the station takes about 25 minutes."],"éthic étapes Ciarus":["A mission-aligned 309-bed hostel with five halls, restaurant catering and 500 square metres of meeting space near Strasbourg's historic centre.","Walkable from Strasbourg station, with TGV links to Paris, Frankfurt, Basel and other European cities."],"éthic étapes CIS Besançon":["A compact nonprofit centre with 101 beds and eight halls in a handsome, rail-connected historic city.","Besançon has TGV links via Franche-Comté TGV and regional connections from Basel, Lyon and Paris."],"éthic étapes CIS de Narbonne":["Historic southern city, TGV access and exactly six rooms at nonprofit scale.","Narbonne TGV; airports at Toulouse, Montpellier, Béziers and Perpignan."],"éthic étapes CIS de Val Cenis":["A large 300-bed mountain centre with six halls, full group catering and a dramatic high-Alpine setting.","Coach transfer from Modane TGV is about 30 minutes;
984 international rail routes run via Lyon or Chambéry."],"éthic étapes CIS Wogenscky":["Excellent rail access, six rooms and association pricing; strongest functional option in France.","Walkable/short transit from Saint-Ãtienne station; Lyon Airport via rail/coach."],"éthic étapes CISL Lyon":["An ecolabelled social-tourism centre with 187 beds, ten naturally lit meeting rooms and a 130-seat restaurant in Lyon.","Trams and metro connect to Lyon Part-Dieu; Lyon airport has strong European flights and a direct rail link."],"éthic étapes Côté Lac Ãvian":["Panoramic Lake Geneva setting with six rooms and nonprofit group economics.","Geneva Airport plus train/ferry/coach; also rail via Lausanne or Geneva."],"éthic étapes CPA Lathus":["A spacious nonprofit activity centre with 200 beds and eleven halls, offering strong value and ample breakout capacity.","Rail via Poitiers or Montmorillon followed by a pre-booked coach; Poitiers has fast TGV links."],"Ethic Etapes Dijon":["A purpose-built social-tourism association with 219 beds, eight rooms and two large self-service restaurants.","Dijon is a TGV hub with direct Paris, Lyon, Strasbourg and Swiss connections."],"éthic étapes Domaine du Manoir dâArgueil":["A sixteenth-century manor in a nine-hectare estate with 153 beds and eight halls in the nonprofit éthic étapes network.","Group coach from Rouen or Paris-Beauvais; the rural setting requires an organized final transfer."],"éthic étapes Espace Saint Ex":["A nonprofit-style centre with 108 beds, seven halls and catering in historic Autun beside the Morvan Regional Natural Park.","Coach transfer from Le Creusot TGV takes about 45 minutes; Lyon and Paris connect by high-speed rail."],"éthic étapes Jean Monnet":["A 166-bed accredited social-tourism centre whose 200-square-metre conference area divides into seven functional rooms.","Regional rail reaches Romorantin via Vierzon; charter coach from Paris-Orly takes around two hours."],"éthic étapes La Roche du Trésor":["A Jura nature centre with 160 beds and eight halls, promising the quiet, attractive residential setting EAF values.","Best reached by charter coach from Besançon, served by TGV connections through Dijon."],"éthic étapes Lac de Maine":["A nonprofit centre in a 200-hectare lake park with 154 beds, restaurant capacity for 210 and ten equipped meeting rooms.","Local bus from Angers TGV station; ParisâAngers trains take roughly 90 minutes and Nantes airport is a practical alternative."],"éthic étapes Le Cart":["A large 18th-century house with French garden, 147 beds, six activity rooms and group catering near Nîmes and Montpellier.","Around 40 minutes by coach from Montpellier airport or Nîmes TGV station."],"éthic étapes Le Pont du Metty":["A 210-bed mountain centre with eight halls, published full-board pricing and four hectares in the Ballons des Vosges regional park.","Rail to Remiremont followed by scheduled bus or a 35-minute private coach to La Bresse."],"éthic étapes Relais Valrance":["A value-led 300-bed campus in a 12-hectare park with nine rooms, private bathrooms and a published full-board rate.","About 47 km from Albi or 61 km from Millau; Toulouse airport is roughly two hours by charter coach."],"éthic étapes Val de lâHort":["A 140-bed residential centre with seven halls in a wooded Cévennes setting near the celebrated Anduze bamboo gardens.","Best reached by coach from Nîmes TGV or Montpellier airport in roughly 60â90 minutes."],"éthic étapes Val de Loire":["Exactly the right nonprofit format, six rooms, 120 beds and Loire Valley setting.","Direct trains from Paris to Blois; coach for airport transfer and excursions."],"éthic étapes Val de Loire Blois":["A 120-bed nonprofit centre with six halls in the Loire château region, sized closely to the academy.","Blois is on the ParisâTours rail corridor; Paris airports connect by train or charter coach."],"Euroforum Campus Escorial":["Purpose-built residential learning environment beside El Escorial, with huge room flexibility.","About 45-60 min from Madrid; commuter rail and coach options."],"Eurostars Isla de La Toja":["A beautiful Galician island hotel with 104 rooms, restaurant service and a deep meeting-room inventory.","About an hour from Santiago de Compostela or Vigo airports; a charter coach is advisable."],"Eurostars Oasis Plaza":["A striking 160-room oceanfront hotel with a broad portfolio of divisible halls and small classrooms suited to parallel seminars.","Rail connects via Coimbra; Porto airport is roughly 90 minutes and Lisbon about two hours by coach."],"Eurostars Sitges":["A 263-room Mediterranean resort with more than twenty meeting rooms, 2,175 square metres of event space and multiple restaurants.","Around 25â30 minutes by coach from Barcelona airport; a hotel shuttle connects to Sitges station."],"Evangelische Akademie Bad Boll":["A major Protestant academy set in a mature park, with 96 guest rooms, sixteen seminar rooms and an acclaimed sustainable kitchen.","About 40â50 minutes from Stuttgart and its airport by group transfer."],"Evangelische Jugendbildungsstätte Neukirchen":["A modern climate-neutral Protestant education house with 103 beds, eight rooms and full board.","Bus from C
984oburg ZOB; Nuremberg is the nearest major international hub."],"Evangelisches Bildungszentrum Bad Bederkesa":["A purpose-built residential education centre with 81 rooms, eleven seminar rooms, gardens and a 115-seat dining room.","Bus connection from Bremerhaven Hbf; approximately one hour from Bremen by coach."],"Exe Rey Don Jaime":["A large 319-room hotel with ten meeting rooms beside the Turia gardens and City of Arts and Sciences.","City buses and metro connect to Valencia rail stations and airport; European low-cost flight coverage is strong."],"Exerzitienhaus Himmelspforten":["A tranquil historic religious campus with roughly 98 beds and ten meeting rooms inside a highly accessible university city.","Short local transfer from Würzburg Hbf; direct ICE links toward Frankfurt, Munich, Hamburg and Vienna."],"FH55 Grand Hotel Mediterraneo":["Florence's largest hotel has 327 guestrooms and a dedicated 15-room congress centre, with strong operational depth.","Close to central Florence, high-speed rail and tram connections to the international airport."],"FIAP Paris":["Unbeatable European access and 26 rooms; use as a negotiation benchmark despite Paris pricing.","Metro in central Paris; two major airports and continental rail hubs."],"Floreal Blankenberge":["A socially oriented Belgian holiday centre with 14 modular rooms, substantial accommodation and a North Sea setting.","Direct rail to Blankenberge; Bruges and Brussels provide strong onward European connections."],"Floreal La Roche-en-Ardenne":["Eight modular rooms, flexible budget packages and a riverside Ardennes setting within a socially oriented operator.","Best reached by coach from Liège or Brussels; public transport requires a bus for the final leg."],"Floreal Mont-Saint-Aubert":["Seven meeting rooms and 45 modern rooms sit on a panoramic hilltop ten minutes from Tournai and 25 minutes from Lille.","Coach from Tournai or Lille; Lille, Brussels and Charleroi offer excellent rail and low-cost flight options."],"Foresteria del Monastero di Camaldoli":["Large historic monastery guesthouse with full board and a strong academic/spiritual tradition.","Coach from Florence or Bologna; isolated mountain location."],"Foresteria Santa Scolastica":["Monastic landscape near Rome, full restaurant service, an 80+ hall and smaller activity rooms.","About 75-90 min by coach from Rome; possible bus connection from Rome."],"Four Points by Sheraton Costa Blanca Resort":["A very large Costa Blanca campus with 300 hotel rooms, villas, eight event rooms and extensive resort catering.","About 40 minutes by coach from Alicante airport, one of Europe's best-served low-cost hubs."],"Foyer Sainte-Anne":["A Christian group house with 90 beds, seven meeting rooms, two hectares of park and seasonal food cooked onsite by its own team.","Ten kilometres from Besançon, with a local station two kilometres away and TGV connections via Besançon."],"Fraterna Domus Sacrofano":["A large green religious campus with restaurant service, an auditorium and 25 rooms for groups from 30 to 1,000.","North of Rome; coach transfer from central Rome or Fiumicino/Ciampino airports."],"Friiberghs Herrgård":["A characterful lakeside manor with 109 beds, dining for 150 and 14 meeting rooms in the main building.","About an hour from Stockholm and Arlanda by pre-booked coach; Uppsala is the closest rail hub."],"Garden City Hotel Konjic":["A green Neretva-valley complex with 53 hotel rooms plus apartments and at least seven named conference and meeting spaces.","Five minutes from Konjic bus and rail links; Sarajevo airport is about one hour by coach."],"Golden Lakes Hotel & Conference Centre":["A beautiful lake setting with 79 hotel units, villas, full catering and seven flexible meeting rooms.","Coach transfer from Brussels, Charleroi or Namur; Charleroi airport often provides inexpensive European flights."],"Gothia Towers":["A foundation-owned, fully integrated meeting complex with 1,200 hotel rooms and more than sixty meeting rooms.","Central tram hub outside; airport coach takes about 20 minutes and rail reaches Copenhagen and Oslo."],"Gran Hotel Balneario de Puente Viesgo":["A handsome green-valley spa property with substantial event infrastru
984cture and enough inventory for exclusivity.","About 30 minutes from Santander Airport and 90 minutes from Bilbao."],"Grand Hotel Adriatic":["A large Adriatic hotel with about 315 rooms and eight conference rooms in elegant Opatija.","Around 45 minutes from Rijeka airport and two hours from Zagreb; coach transfer from Rijeka station is straightforward."],"Grand Hotel Adriatico Florence":["A 129-room central Florence hotel with seven meeting rooms, 326 beds, restaurant service and walkable cultural attractions.","A short walk from Firenze Santa Maria Novella, with high-speed rail and direct tram access to the airport."],"Grand Hotel Bernardin":["A 241-room Adriatic resort with a major convention centre and at least 17 halls.","Coach transfers from Trieste are easy; Venice, Ljubljana and Zagreb provide additional flight options."],"Grand Hotel Dino":["A landmark Lake Maggiore hotel with a renowned 36-room congress centre and gardens facing the Borromean Islands.","Baveno rail station is walkable; Milan Malpensa is about 50 minutes by coach."],"Grand Hotel Palace":["A neoclassical 243-room hotel with 13 renovated multifunctional conference rooms in a major low-cost flight city.","At the western entrance to Thessaloniki, a short coach ride from the railway station and airport."],"Grand Hotel Plovdiv":["Very large 321-room hotel in a beautiful historic city, with five multifunctional conference halls and strong value potential.","Walkable to central Plovdiv; direct coach/rail links to Sofia Airport and some seasonal flights from Plovdiv."],"Grand Hotel Pomorie":["A 178-room year-round resort between the Black Sea and Pomorie Lake with five business halls, restaurants and extensive wellness facilities.","About 20 minutes by coach from Burgas airport, served by many seasonal European routes."],"Grand Hotel Rimini":["A landmark 1908 Art Nouveau hotel with fourteen conference rooms beside the Adriatic and central Rimini.","Rimini station has direct intercity trains; Bologna airport is roughly 90 minutes away by rail or coach."],"Grand Hotel Tiziano e dei Congressi":["A major 271-room conference hotel with thirteen halls and excellent capacity near Lecce's baroque historic centre.","Near Lecce station; Brindisi airport is about 35 minutes by coach."],"Grand Hotel Toplice":["A landmark hotel directly on Lake Bled with 87 rooms and nine conference rooms, offering exceptional character.","Coach from Ljubljana airport or rail via Lesce-Bled; regional airports can be compared for group transfers."],"Grand Tornik":["Large capacity and congress centre in an attractive mountain destination.","Coach from Belgrade or Sarajevo; regional rail/bus options."],"Grande Hotel de Luso":["A substantial historic spa hotel with 132 rooms, nine meeting rooms plus an auditorium, and nearby forest landscapes.","Coach or local rail connection via Coimbra/Aveiro; Porto Airport is the most practical international gateway."],"GrandHotel Tiffi":["A striking 155-room lakeside hotel with a 1,300 m² conference centre, smaller training rooms and fast intercity rail.","Pendolino trains take about 55 minutes from GdaÅsk and 100 minutes from Warsaw, enabling two-airport access."],"Grecotel Larissa Imperial":["A 150-room central-Greece hotel with five principal meeting rooms, further divisible sections, gardens, pool and full event catering.","Larissa is on the AthensâThessaloniki rail axis; Thessaloniki airport is about two hours by coach."],"Green Hotel Tällberg":["A timbered hotel high above Lake Siljan with 100 rooms, 180 beds, five main venues and an additional group room.","Tällberg has rail connections from Stockholm via Borlänge; airport arrivals can use a charter coach."],"H10 Estepona Palace":["A 237-room Andalusian-style beachfront hotel with seven equipped meeting rooms and full-board or all-inclusive operations.","About 55 minutes by private coach from Málaga airport, with extensive low-cost European flights."],"Hagabergs Folkhögskola":["Education mission, summer capacity up to 100 and strong Stockholm rail/airport access.","Commuter/intercity rail from Stockholm; airport coach via Stockholm."],"Haikko Manor & Spa":["A beautiful seaside manor and spa complex with 212 rooms and a dedicated congress centre.","Around 45 minutes by coach from Helsinki Airport; historic Porvoo is nearby."],Hanaholmen:["A mission-compatible Nordic cultural centre with 66 rooms, an auditorium, congress hall and nine further meeting rooms by the sea.","Metro/bus connection to central Helsinki; Helsinki Airport has a broad European network."],"Hanasaari Swedis
984h-Finnish Cultural Centre":["A mission-aligned Swedish-Finnish cultural institution with 66 hotel rooms and numerous meeting rooms on a beautiful Helsinki waterfront island.","Metro and bus links connect to central Helsinki; Helsinki airport is about 35 minutes by coach."],Hanenbos:["A purpose-built residential education centre surrounded by woods and parkland in the green belt south of Brussels.","Brussels Airport is around 35â45 minutes by group transfer; Brussels-Midi provides excellent international rail access."],"Haus Altenberg":["Historic abbey landscape, strong group infrastructure and unusually good access via Cologne/Düsseldorf.","About 45-60 min by coach from Cologne/Bonn; rail access via Cologne."],"Haus der Kirche â Evangelische Akademie Baden":["A green, quiet Protestant academy campus in a spa town, with substantial residential and seminar infrastructure.","Direct S-Bahn from Karlsruhe to Bad Herrenalb; the house is a short walk from the terminus."],"Haus Ohrbeck":["A nonprofit-style residential centre with 104 beds and twelve working rooms, including five seminar and five group rooms.","About 15 minutes from Osnabrück; rail connections run toward Münster, Hanover, Hamburg and the Ruhr."],"Haus Sankt Ulrich":["Ninety-one beds and a strong range of plenary and group rooms in walkable central Augsburg.","Around 700 metres from Augsburg station, with frequent fast trains to Munich and its airport connections."],"Haus Venusberg":["A large green Catholic education campus inside Bonn, with several accommodation houses, catering and extensive working space.","Local bus from Bonn centre; Cologne/Bonn Airport is approximately 30 minutes away by transfer."],"Haus Werdenfels":["A subsidised diocesan venue with meals, numerous working rooms and woodland surroundings near Regensburg.","About 2 km from Undorf station; rail connections via Regensburg to Munich and Nuremberg."],"Hilton Belgrade":["A central 242-room hotel with eleven flexible meeting rooms, a garden and a strong international brand operation.","Central city location, about 20 minutes from Belgrade airport, which has a broad European network."],"Hilton Sorrento Palace":["A 325-room hilltop hotel overlooking the Bay of Naples with 21 meeting rooms, six dedicated boardrooms and full event catering.","Naples airport is about 75 minutes by coach; regional rail and ferry alternatives reach Sorrento."],"Hilton Vilamoura As Cascatas":["A polished 176-room Algarve resort with eight meeting rooms, multiple restaurants and broad leisure infrastru
984cture.","Approximately 25 km from Faro airport, which has extensive low-cost European service; coach transfer is simple."],"HimmerLand Resort":["A scenic 86-room resort with numerous modern meeting rooms, three restaurants and large indoor and outdoor activity areas.","About 55 minutes by coach from Aalborg airport; charter transport is required."],"Hindsgavl Slot":["A beautiful coastal castle with 120 rooms and fourteen meeting spaces, centrally placed on Denmark's main rail corridor.","Short transfer from Middelfart station, with direct trains toward Copenhagen Airport, Hamburg and Jutland."],"Högbo Brukshotell & Spa":["A locally focused 126-room hotel in a historic ironworks landscape with conference facilities and estate-wide activities.","Rail to Sandviken via Gävle, then a short transfer; Stockholm Arlanda is roughly 90 minutes by coach."],"Holiday Club Saimaan Rauha":["Lake Saimaa scenery and six defined conference rooms; strong operational alternative.","Rail from Helsinki; about 2.5 hours from Helsinki Airport."],"Hostel DIC":["An extremely practical public educational campus for large groups, with up to 600 beds, classrooms and meals prepared by professional chefs.","Central Ljubljana, reachable by city transport from the rail and coach stations; airport transfers take roughly 30 minutes."],"Hotel Abades Benacazón":["A 195-room Andalusian hotel with a large convention centre, gardens and promising summer group value.","Roughly 15 minutes from Seville by road, with a nearby commuter-rail stop and extensive low-cost flights."],"Hotel Akademie NaháÄ":["A purpose-designed training hotel with six daylight rooms, full catering and easy D1 access near Prague.","Around 35 minutes by coach from Prague; the airport and main station make international arrival simple."],"Hotel Antequera Hills":["About 190 rooms, adaptable event space and an attractive historic inland town could yield strong August value.","High-speed rail at Antequera links Madrid, Málaga and Seville; Málaga Airport is the main flight gateway."],"Hotel AntunoviÄ Zagreb":["A 158-room hotel with a 20-hall convention centre, multiple restaurants and direct public transport into central Zagreb.","At Zagreb's western entrance, approximately 25 minutes from the airport and connected to the centre by tram and shuttle."],"Hotel AR Golf Almerimar":["Ten indoor event rooms across the hotel and clubhouse provide strong teaching flexibility near the Mediterranean.","Road transfer from AlmerÃa airport; Málaga offers more flights but a much longer coach leg."],"Hotel Ariston Paestum":["A 110-room garden hotel near the sea and Paestum temples, with a substantial congress centre and multiple halls.","Regional rail to Paestum or Capaccio followed by hotel transfer; Naples airport is about 90 minutes away."],"Hotel ArÅamów":["A spectacular self-contained mountain resort with 213 rooms and a 3,500-square-metre conference centre.","Remote in the Bieszczady region; a charter coach from Rzeszów is needed."],"Hotel Azúr":["Large Balaton park-and-beach site with numerous divisable section rooms and strong group economics.","Direct rail from Budapest; approximately 90 minutes from Budapest Airport by coach."],"Hotel Baia Flaminia":["A striking bayfront hotel at the foot of Monte San Bartolo, with eight conference rooms and a sea-view restaurant.","About 10 minutes by coach from Pesaro station; Bologna and Ancona airports are reachable by rail or coach."],"Hotel Bania Thermal & Ski":["A 227-room Tatra resort with 14 conference halls, several intimate VIP rooms and substantial restaurant and wellness facilities.","Around 90 minutes by group coach from Kraków airport; road transfer is the practical option."],"Hotel Barcelona Center":["A central 132-room hotel with seven event rooms sized from intimate workshops to plenary sessions.","Walkable to Passeig de Grà cia rail and metro, with a direct airport connection."],"Hotel Barcelona Princess":["An emblematic 363-room tower near the beach with six daylight meeting halls and excellent Barcelona transport.","Metro and tram access, roughly 25 minutes from Barcelona airport and the main railway stations."],"Hotel Beatriz Albacete & Spa":["A 204-room spa hotel directly linked to Albacete's congress facilities, with twelve reported meeting rooms.","High-speed and regional rail connect Albacete to Madrid, Alicante and Valencia airports."],"Hotel Beatriz Toledo Auditorium & Spa":["A large but potentially economical Spanish conference hotel with 23 rooms, gardens and easy access to monumental Toledo.","High-speed rail from Madrid plus a local transfer; Madrid airport provides extensive cheap flights."],"Hotel Bellevue Mali LoÅ¡inj":["A striking 205-room hotel in pine-fringed Äikat Bay with a multi-room event offer and excellent resort infrastru
984cture.","Requires ferry or seasonal air connection; group coach and ferry from Pula or Rijeka should be costed."],"Hotel Belvedere Zakopane":["A 170-room conference hotel beside Tatra National Park with eight conference rooms, catering and classic Zakopane atmosphere.","Around two hours by coach from Kraków airport; rail services reach Zakopane from Kraków."],"Hotel Cádiz BahÃa":["A modern beachfront base with 255 rooms, 26 apartments and seven listed event spaces in beautiful Cádiz.","Cádiz has direct trains to Seville; Jerez airport is nearer and Seville adds broader flight choice."],"Hotel Caesius Thermae & Spa Resort":["A polished 185-room Lake Garda resort with ten modular meeting rooms, extensive gardens, restaurants and wellness facilities.","About 30 minutes by coach from Verona airport and Peschiera del Garda rail station."],"Hotel Carlos I Silgar":["A polished coastal hotel with more than ten meeting rooms and over 1,400 m² of event space in Galicia's RÃas Baixas.","Coach from Vigo airport or high-speed rail at Pontevedra; Santiago airport provides wider European coverage."],"Hotel Casa Tra Noi":["Designed for school and religious groups, with full catering, four conference rooms and a 230-seat auditorium.","Near the Vatican; direct coach transfer from Rome airports and strong European rail access."],"Hotel ChamartÃn The One":["A 378-room hotel built into Madrid's main northern rail hub with thirteen versatile rooms and restaurant service.","Inside ChamartÃn-Clara Campoamor station with direct metro, suburban and long-distance trains plus airport rail links."],"Hotel Continental Rimini":["A central Adriatic hotel with seven meeting rooms, restaurant service and sufficient bedrooms for a compact residential academy.","About 20 minutes on foot or a short bus ride from Rimini station; Bologna provides the broadest flight network."],"Hotel Croatia Cavtat":["A spectacular peninsula setting, 487 rooms and eight conference rooms close to a well-connected airport.","About ten minutes from Dubrovnik Airport, which has broad seasonal low-cost coverage."],"Hotel D. LuÃs":["An affordable-looking hotel overlooking historic Coimbra with five meeting rooms and substantial group capacity.","Coimbra is on Portugal's main north-south rail axis, around 90 minutes from Porto airport."],"Hotel Deloix Aqua Center":["A 194-room hotel with tropical gardens, two divisible main halls and three independent boardrooms.","About 45 minutes by coach from Alicante airport, a major low-cost gateway."],"Hotel dos Templários":["A riverside hotel with gardens, 167 rooms, ten suites and 14 meeting rooms in historic Templar Tomar.","Direct regional rail from Lisbon; airport arrivals can consolidate for a coach transfer."],"Hotel Drim":["Published full board around â¬51, 200 rooms and a beautiful Lake Ohrid-region setting.","About 15 minutes from Ohrid Airport; coach from Skopje if flight options are better."],"Hotel Dubrovnik Palace":["All 308 rooms face the Adriatic and the hotel has eleven conference rooms, including several well-sized small breakouts.","Local bus to Dubrovnik Old Town and about 30 minutes by coach to Dubrovnik airport."],"Hotel Ernst Sillem Hoeve":["An 85-room country estate in seven hectares of parkland, with 18 meeting rooms and a strong residential-conference setup.","Free shuttle from Den Dolder station and roughly 25 minutes from Utrecht."],"Hotel Fonte Angelica":["A value-oriented diocesan property in green Umbrian hills, with 170 rooms and at least seven teaching spaces.","Rail to Nocera Umbra via Foligno, followed by a local transfer; Rome airports require a longer coach."],"Hotel Fuerte El Rompido":["A scenic resort overlooking the RÃo Piedras nature reserve, with extensive accommodation and flexible event facilities.","Group coach from Faro or Seville airport takes roughly 90 minutes; neither requires a city transfer."],"Hotel GoÅÄbiewski Karpacz":["A vast Karkonosze mountain hotel with 880 guestrooms and roughly thirty conference rooms, allowing an academy to occupy its own zone.","Around two hours by private coach from WrocÅaw airport; rail plus coach via Jelenia Góra is possible."],"Hotel GoÅÄbiewski WisÅa":["A 567-room mountain resort with 24 conference rooms, two congress halls and extensive buffet and leisure infrastru
984cture.","Rail to WisÅa via Katowice, followed by local transfer; Katowice and Kraków airports are the main gateways."],"Hotel Gustavelund":["A purpose-designed lakefront meeting hotel with a rich variety of rooms, restaurant and exceptional airport proximity.","Around 15 minutes from Helsinki airport, making international arrival unusually easy."],"Hotel Habakuk":["A handsome hotel at the forested foot of Pohorje with 280 beds and seven dedicated conference spaces.","City-bus or short coach transfer from Maribor station; Graz airport is a useful international gateway."],"Hotel Haikko Manor & Spa":["A historic seaside manor in a 14-hectare park with 211 guestrooms and more than twenty meeting rooms, including several sized for ten.","Around 35 minutes by coach from Helsinki airport and 45 minutes from central Helsinki."],"Hotel Hills Sarajevo":["A 330-room thermal resort with a divisible congress hall and at least six additional conference rooms.","Only about two kilometres from Sarajevo Airport, with low-cost and flag-carrier routes."],"Hotel Hollywood Sarajevo":["An extremely practical value option with at least 419 rooms, 18 halls and several restaurants close to S
984arajevo airport.","Only about two kilometres from the airport, with city and tram access from Ilidža."],"Hotel Intelcoop Plovdiv":["A potentially excellent-value cooperative property with 71 rooms and seven conference halls near the railway station.","Quiet district south of Plovdiv Central station and bus terminals; Sofia provides broader flights."],"Hotel International Prague":["A protected landmark hotel with 278 rooms, fourteen halls, restaurants and memorable historic interiors.","Direct public transport reaches central Prague in minutes; the airport is about 20 minutes by coach."],"Hotel International Sinaia":["A large mountain hotel with 180 rooms, eleven conference halls, three restaurants and easy access to PeleÈ Castle.","Walkable from Sinaia station on the BucharestâBraÈov line; Bucharest airport is roughly 90 minutes by coach."],"Hotel International Zagreb":["A practical 207-room hotel with six salons, restaurant and exceptional rail and airport access.","About 700 metres from Zagreb central station and 13 kilometres from the airport."],"Hotel IPV Palace & Spa":["A large beachfront hotel beside Sohail Castle with roughly 285 rooms and ten event halls.","Suburban rail connects Fuengirola to Málaga airport and the city; final local transfer is short."],"Hotel Izvor":["A substantial spa resort with 165 accommodation units and six multifunctional halls near a historic Serbian spa town.","Around 75 kilometres from Belgrade; consolidated airport coach transfer is simplest."],"Hotel Jama":["A distinctive 156-room hotel inside Postojna Cave Park, supplemented by the historic Jamski Dvorec halls.","Postojna has rail and intercity buses; Ljubljana and Trieste airports are practical gateways."],"Hotel Jezero":["Inside Plitvice Lakes National Park, with 205 rooms, 19 suites, full board and five event spaces.","Remote but coach-accessible from Zagreb or Zadar; the landscape is the compensating strength."],"Hotel Junior":["Affordable mountain campus with three formal halls and potential additional team rooms.","Coach from NiÅ¡ or Belgrade; remote mountain final leg."],"Hotel Klimczok":["Nine fully equipped conference rooms and 300 beds sit in a green mountain setting with extensive social facilities.","Coach from Bielsko-BiaÅa or Katowice; Katowice and Kraków airports are roughly 1.5â2 hours away."],"Hotel Klimczok Szczyrk":["A substantial Beskid mountain resort with 300 beds, nine conference rooms, restaurants and extensive leisure facilities.","Coach transfer from Katowice airport or rail station takes roughly 90 minutes."],"Hotel Kompas Bled":["Five conference rooms, 190 beds and immediate access to one of Europe's prettiest lake settings.","About 35 minutes from Ljubljana Airport; coach and rail connections via Ljubljana or Lesce-Bled."],"Hotel Kompas Kranjska Gora":["Large inventory, five conference rooms for 10-360 and a striking Julian Alps setting.","About one hour from Ljubljana Airport; Villach rail hub is also practical."],"Hotel Korpilampi":["More than 300 beds, an auditorium, ten numbered rooms and seven small group rooms in a peaceful lakeside setting.","About 25 minutes by coach from Helsinki Airport; public transport connects through Espoo."],"Hotel Krasicki":["A striking castle hotel with 122 rooms, capacity around 250 and seven principal plus seven additional meeting rooms.","Longer coach transfer from Olsztyn or GdaÅsk; access is the clear downside."],"Hotel Lone Rovinj":["An award-winning 248-room design hotel in a forest park by the Adriatic with a substantial multi-room convention centre.","Pula airport is about 40 minutes by coach; seasonal flights reach many European cities."],"Hotel Mara Sinaia":["A Carpathian resort hotel offering eight named conference and event rooms in one of Romania's most attractive mountain towns.","Sinaia lies on the main BucharestâBraÈov rail line; Bucharest airport is about 90 minutes by coach."],"Hotel Marina-Port":["A 74-room waterfront hotel with five conference rooms and a memorable Lake Balaton setting.","Direct regional trains from Budapest reach Balatonkenese; airport transfer is about 90 minutes."],"Hotel Marinela Sofia":["A Kisho Kurokawa-designed hotel with 442 rooms, ten meeting rooms and a Japanese garden.","Central Sofia with nearby metro access and inexpensive direct flights across Europe."],"Hotel Medena":["Huge inventory beside Trogir and Split Airport; scale creates negotiating leverage.","About 15-20 min by coach from Split Airport."],"Hotel Mediteran BeÄiÄi":["Exactly six conference rooms, 230 guestrooms, multiple restaurants and a beach setting create a clean operational fit.","About 30 minutes from Tivat Airport and roughly one hour from Podgorica; seasonal European flights are strong."],"Hotel Mediterraneo Riccione":["A central seafront hotel with 103 guestrooms and eight natural-light conference rooms, close to the station.","About 500 m from Riccione station and near Rimini airport; Bologna airport is reachable by rail."],"Hotel Medlov":["A large, value-oriented lakeside hotel in a protected landscape with six halls and capacity far above requirements.","Best reached by group coach from Brno or Prague; local rail/bus connections are slower."],"Hotel Mona Plaza Belgrade":["A stylish former chocolate factory with 170 rooms, ten conference rooms and a 2,000-square-metre convention centre.","Central Belgrade location with good airport and rail/bus connections across southeast Europe."],"Hotel Monasterio de Boltaña":["A spectacular sixteenth-century monastery with eight private rooms and multiple distinctive event spaces.","Remote Pyrenean location; a consolidated coach from Zaragoza or Barcelona is required."],"Hotel Monasterio de Piedra":["Spectacular monastery-and-waterfall setting with exactly six meeting rooms and 60 rooms.","Coach from Zaragoza or Madrid; remote final leg."],"Hotel Palisad":["Six rooms in the main congress centre plus a second hall, 420 beds and proven full-board group operations.","About three hours by coach from Belgrade; rail/bus via Užice."],"Hotel Park Bled":["Seven meeting rooms, roughly 400 beds and a landmark lake setting create a strong all-in-one academy option.","About 35 minutes from Ljubljana Airport; bus links connect Bled with Ljubljana and nearby rail stations."],"Hotel Partizán Tále":["A characterful Low Tatras hotel with over 300 beds, a wide range of named congress rooms and full event catering.","Coach transfer from Poprad-Tatry airport takes about 75 minutes; Vienna or Budapest require longer coaches."],"Hotel Patria Å trbské Pleso":["An iconic High Tatras hotel on Å trbské Pleso with 310 beds, two congress halls and five smaller salons.","Mountain rail connects to Po
984prad; Kraków, KoÅ¡ice and Poprad airports are possible gateways."],"Hotel Piatra Mare":["A large Poiana BraÈov hotel with eight versatile corporate-event spaces and sweeping Carpathian scenery.","About 30 minutes by coach from BraÈov station and roughly 2.5 hours from Bucharest airport."],"Hotel Pietra di Luna":["A panoramic Amalfi Coast hotel 30 m from the sea, with eight meeting rooms ranging from 10 to 450 people.","Dedicated coach from Naples airport or Salerno high-speed rail; the final coastal road is slower."],"Hotel Podklasztorze":["Six conference rooms inside a Cistercian complex; a direct Polish analogue to past EAF venues.","Coach from Warsaw or Åódź; central Poland road access."],"Hotel Polanica Resort & Spa":["Eight meeting rooms and a quiet spa-town setting offer a focused and potentially economical residential academy.","Rail or coach via WrocÅaw; Prague is another possible airport gateway for a chartered transfer."],"Hotel Puerta América":["An architecturally exceptional 315-room hotel with fourteen meeting spaces and a divisible five-room function floor.","Metro access near Avenida de América; Madrid airport and major rail stations are easy to reach."],"Hotel Rantapuisto":["Iconic 1960s architecture on the Baltic, 70 rooms and 15 meeting rooms within Helsinki.","About ten kilometres from central Helsinki and 20 kilometres from the airport, with city bus access."],"Hotel Rila Borovets":["Modern nine-room conference centre, mountain scenery and large twin/family room inventory.","About 75 minutes by coach from Sofia Airport."],"Hotel Samokov":["Nine halls, large inventory and low summer-season mountain pricing near Sofia.","About 75 minutes by coach from Sofia Airport."],"Hotel San Marco Verona":["A 112-room hotel with an eleven-room modular congress centre, restaurant and pools just outside Verona's historic core.","Local bus reaches Verona Porta Nuova; the airport and major north-Italian rail routes are close."],"Hotel Scala":["A large, potentially economical 203-room hotel with catering and multiple divisible halls near Santiago de Compostela.","Near Padrón rail and bus links; Santiago airport and city are a short group transfer away."],"Hotel Seminário Torre dâAguilha":["A missionary seminary on an eleven-hectare estate, with 54 ensuite double rooms, ten meeting rooms, auditoria, restaurant, church and extensive gardens.","Located between Lisbon and Sintra; Lisbon Airport is roughly 25â35 minutes away by dedicated coach outside peak traffic."],"Hotel SEN Senohraby":["A château-style hotel with 165 beds and eight possible working spaces; the venue has confirmed that its complete accommodation and conference inventory is available for the Academy dates.","Senohraby has direct suburban trains to Prague; Prague Airport is approximately 45â60 minutes away by group transfer."],"Hotel Senec":["Seven meeting rooms and lakeside setting less than 30 minutes from Bratislava Airport.","Rail from Bratislava or short airport coach; Vienna also within reach."],"Hotel Simplon":["A characterful 113-room hotel in a centuries-old park with ten modular meeting rooms and indoor access to Grand Hotel Dino.","Walkable from Baveno station and roughly 45 km from Milan Malpensa airport."],"Hotel Sitno Forest Resort":["A renovated forest resort with 121 rooms and 12 training space
984s in the Å tiavnické mountains.","Near Slovakia's central motorway corridor; coach from Bratislava or Budapest is most practical."],"Hotel Skalský Dvůr":["An affordable-looking lakeside property between Prague and Brno with two halls, five classrooms and six lounges.","Near the D1 corridor but rural; a coach from Brno or Prague is the practical solution."],"Hotel Solverde Spa & Wellness Center":["A 174-room Atlantic beachfront hotel with seventeen conference rooms, restaurants and gardens just south of Porto.","Roughly 25 minutes by coach from Porto airport; Espinho has frequent suburban trains to Porto."],"Hotel Sporting Rimini":["A polished 110-room seafront hotel with seven in-house meeting rooms and strong rail access in central Rimini.","A short walk or local bus from Rimini station; Bologna airport has direct rail connections."],"Hotel SPS Plovdiv":["A practical 235-bed business hotel with five conference rooms and two multifunction halls in historic Plovdiv.","City transport and a short transfer from Plovdiv station; Sofia airport is about two hours away."],"Hotel Stok WisÅa":["A 205-room mountain resort with sixteen conference halls, extensive grounds and published value-oriented meal-package benchmarks.","About 90 minutes by coach from Katowice airport; rail reaches WisÅa via Katowice."],"Hotel Thermal Karlovy Vary":["An iconic 273-room spa hotel with eleven individual halls, terraces and full conference catering in a UNESCO spa town.","Ten minutes from Karlovy Vary airport or about 90 minutes by coach from Prague airport; rail and coach links serve Prague."],"Hotel Tylösand":["A celebrated beach conference hotel with 230 rooms, 32 meeting rooms, extensive contemporary art and a sea-view congress hall.","Local bus from Halmstad rail station; Copenhagen and Gothenburg airports are reachable by direct rail plus transfer."],"Hotel Veronesi La Torre":["A characterful 90-room hotel in a restored 16th-century monastery, with eleven naturally lit meeting rooms and an on-site restaurant.","Beside Verona airport and about 15 minutes by coach from Verona Porta Nuova station."],"Hotel Warszawianka":["A lakeside resort with accommodation for 700, 32 conference rooms, three restaurants and 14 hectares of green grounds.","About 45 minutes by coach from Warsaw Chopin airport and central Warsaw outside peak traffic."],"Hotel Well / Terme Tuhelj":["Six halls, all services on site and only 40 km from Zagreb; may discount strongly for a weekday block.","Coach from Zagreb Airport or city, roughly 45-60 minutes."],"Hotel Zamek Gniew":["Historic brick castle, ten conference rooms and a substantial accommodation base at attractive Polish pricing.","Roughly one hour from GdaÅsk Airport by coach; rail via Tczew plus transfer."],"Hotel Zamek Ryn":["Restored fourteenth-century castle between lakes, with 161 rooms and 12 conference spaces.","Coach transfer from Warsaw, GdaÅsk or Olsztyn-Mazury; attractive but transport-intensive."],"Hunguest BÃL Resort":["Lake Balaton setting, ample rooms and a conference complex that can support parallel groups.","Rail from Budapest; airport coach roughly 1.5 hours."],"Hunguest Hotel Pelion":["A 228-room thermal hotel with eight conference rooms beside Tapolca's lake cave and near Lake Balaton.","Rail from Budapest with a final regional connection; group coach reduces friction."],"Hyatt Regency Belgrade":["A spacious 302-room hotel with ten versatile venues, natural-light breakout rooms and a tranquil internal garden.","New Belgrade location between the centre and airport, with straightforward bus, taxi and coach access."],"Hyatt Regency Hesperia Madrid":["A 169-room central Madrid hotel with nine flexible event rooms, including several genuine ten-to-thirty-person spaces.","Direct metro access and roughly 20 minutes from Madrid airport and high-speed rail hubs."],"Hyatt Regency Thessaloniki":["A 152-room oasis in extensive gardens with divisible ballrooms and six dedicated breakout rooms near the airport.","A few minutes from Thessaloniki airport; the city has strong low-cost European air links and Balkan rail/coach access."],"ILUNION Alcora Sevilla":["A social-enterprise hotel with 401 rooms, 17 halls, gardens and pool just outside one of Europe's best-connected beautiful cities.","About ten minutes from central Seville, with a major station and broad low-cost flight network."],"ILUNION Barcelona":["A social-enterprise hotel with 224 rooms, thirteen event rooms, accessible design and a rooftop pool near the beach.","Metro Line 4 and city buses connect directly; Barcelona airport is served by broad low-cost and rail networks."],"ILUNION Málaga":["A modern 179-room socially minded hotel with a broad corporate-events suite close to Málaga rail and the waterfront.","Ten minutes' walk from MarÃa Zambrano station and about 15 minutes by train or c
984oach from Málaga airport."],"Imperial Plovdiv Hotel & SPA":["A quiet garden hotel with roughly 190 rooms, six meeting rooms and strong access to Plovdiv's old town.","Short city transfer from the rail and bus stations; Plovdiv airport is close and Sofia adds flight choice."],"INATEL Albufeira":["Very large inventory, beach location and Faro's low-cost airline network.","About 35-45 min by coach from Faro Airport."],"INATEL Caparica":["Beach/forest setting beside Lisbon, large social-tourism inventory and flexible event halls.","30-40 min by coach from Lisbon Airport; city access for excursions."],"InterContinental Athénée Palace Bucharest":["A restored 1914 landmark with 283 rooms, thirteen versatile meeting rooms and strong catering opposite the Romanian Athenaeum.","Central Bucharest location with metro access; Henri CoandÄ airport is about 35 minutes by coach."],"InterContinental Warsaw":["A centrally located landmark with 414 rooms, thirteen conference rooms and panoramic city views beside Warsaw Central station.","Walkable from Warszawa Centralna; Chopin airport is about 20 minutes by rail or coach."],"INTERNATIONAL Hotel Casino & Tower Suites":["A major Black Sea property with 325 rooms and 11 halls can offer strong value when leisure demand softens.","Roughly 25 km from Varna airport, which has extensive seasonal European connections."],"International Youth Meeting Centre OÅwiÄcim":["A Polish-German nonprofit education centre with 100 beds, five seminar rooms, a 300-seat hall, library, large garden and its own kitchen.","Kraków and its airport are roughly an hour away; OÅwiÄcim also has regional rail connections for a short final transfer."],"Irish College Leuven":["A historic Franciscan educational campus with accommodation, eight meeting rooms and bespoke catering in university-city Leuven.","Direct rail from Brussels and roughly 20â25 minutes from Brussels Airport."],"Izgrev Hotel Spa & Aquapark":["Private Lake Ohrid beach, large inventory and strong value only 15 km from the airport.","About 15 minutes from Ohrid Airport and 20 minutes from Ohrid city."],"Jugendakademie Walberberg":["A nonprofit youth academy in nature between Cologne and Bonn, offering 114 beds and full board.","Reachable by public transport from both Cologne and Bonn; Cologne/Bonn Airport is nearby."],"Jugendbildungsstätte Babenhausen":["A public youth education centre with up to 106 beds, ten rooms and high-quality vegetarian full board.","Regular buses from Memmingen long-distance station; Memmingen Airport is the closest low-cost hub."],"Jugendbildungsstätte Burg Hoheneck":["A picturesque public youth education castle with 80 beds, eight rooms, full board and unusually affordable published rates.","Around 50 km from Nuremberg; regional rail to Ipsheim with local pickup options."],"Jugendbildungsstätte Königsdorf":["A nonprofit education campus with 110 indoor beds, ten rooms, full board and extensive grounds.","Bus from Bad Tölz or Wolfratshausen; roughly 45â60 minutes from Munich by coach."],"Jugendbildungsstätte Unterfranken":["Excellent functional fit: 97 guest places, ten conference rooms and a mission aligned with educational youth groups.","Within Würzburg, with excellent ICE connections and Frankfurt Airport reachable by direct rail."],"Jugendbildungsstätte Waldmünchen":["Purpose-built residential education centre with generous beds, classrooms and group-friendly catering.","Rail to Cham, then regional connection or coach; Prague and Nuremberg are the nearest major airports."],"Jugendbildungsstätte Windberg":["Very close to the EAF archetype: monastery setting, 100 beds, meals and seminar infrastructure.","Coach from Munich Airport; rail to Straubing/Bogen then local transfer."],"Jugendherberge Würzburg":["Six seminar rooms and 226 beds make the operational fit unusually clean at a likely low nonprofit rate.","City location with frequent buses to Würzburg Hbf and direct long-distance rail across Germany."],"Kalimera Kriti Hotel & Village Resort":["A substantial Cretan resort with eight meeting facilities for 10â450 people, restaurants and an attractive coastal campus.","About 40 minutes by coach from Heraklion airport, served by extensive seasonal European flights."],"Kardinal Schulte Haus":["A purpose-built church-owned conference house with 158 rooms, 24 meeting rooms and extensive parkland near Cologne.","Tram and bus links from Cologne; Cologne/Bonn airport and the ICE network provide strong European access."],"Katholisch-Soziales Institut":["An academy in a beautifully restored former Benedictine abbey, with 106 guest rooms and extensive seminar infrastru
984cture.","Siegburg has fast rail links to Cologne, Bonn and Frankfurt Airport; Cologne/Bonn Airport is close."],"King Evelthon Beach Hotel & Resort":["A 375-room Mediterranean beachfront resort with seven conference rooms, landscaped grounds and an all-inclusive catering option.","About 25 minutes by coach from Paphos airport, which has extensive low-cost European service."],"Kloster Benediktbeuern":["Proven EAF-style venue: striking monastery, rail access from Munich and purpose-built education rooms.","Direct regional rail from Munich to Benediktbeuern; straightforward airport-to-rail journey."],"Kloster Irsee":["Beautiful baroque monastery with professional conference facilities; strong fallback if negotiated.","Coach from Memmingen Airport or rail to Kaufbeuren plus short transfer."],"Kloster Kappel":["An exceptionally beautiful former Cistercian abbey with 76 guest rooms, eighteen seminar rooms and seasonal gastronomy.","Between Zürich and Zug, with bus connections from Baar and a manageable Zürich Airport transfer."],"Kloster NaturSinne":["A whole 48-room property in four hectares, with flexible seminar spaces and full-board option.","About one hour by coach from Vienna or Graz; best with organized airport coach."],"Kocierz Resort":["A distinctive highland resort with five independent conference rooms, multiple accommodation buildings and strong value near Kraków.","About 75 minutes by coach from Kraków airport; group transport is essential."],"Kolpinghaus Salzburg":["Kolping's social mission, seven seminar rooms, on-site catering and large summer-hostel inventory fit EAF strategically.","City buses connect quickly to Salzburg Hauptbahnhof; Munich airport adds broad flight choice."],"Kongres Hotel Jezerka":["A self-contained lakeside congress hotel with about 113 rooms, meals and conference capacity up to 350.","Coach connection from Pardubice or Prague; Prague remains the main international gateway."],"Kontakt der Kontinenten":["Internationalist history, forest setting and ample rooms in the centre of the Netherlands.","Rail to Amersfoort/Utrecht then coach; Schiphol about one hour."],Konventum:["Listed modernist architecture, major art collection and abundant breakout rooms near Copenhagen.","Direct rail from Copenhagen Airport to Helsingør plus short transfer."],"Körunda Hotel & Conference Center":["A meeting-focused property with 51 bedrooms, ten rooms and explicit full-board packages in peaceful countryside.","Commuter rail and short transfer from Stockholm, or a direct coach from Arlanda."],"Kragerup Gods":["A 14th-century carbon-neutral estate with 57 rooms and ten charming meeting rooms offers exceptional atmosphere.","Rail toward Slagelse plus local coach, or a direct group coach from Copenhagen airport."],"Krägga Herrgård":["A beautiful 56-room manor by Lake Mälaren with five main rooms, a villa, event hall and multiple dedicated breakout rooms.","About 45 minutes from Arlanda, Stockholm, Uppsala or Västerås; Bålsta is the nearest rail station."],"La Foresta":["Wooded former monastery campus close to Leuven and Brussels with residential conference focus.","Coach from Brussels Airport in roughly 25 minutes;
984 rail via Leuven."],"La Marlagne":["A public cultural centre with around 200 beds, nineteen work rooms, huge dining capacity and a wooded 15-hectare site.","Local bus or coach from Namur station; Brussels Airport connects by rail via Brussels."],"La Salle LlÃria":["A Lasallian education and retreat campus with an 86-bed hostel plus guest rooms, numerous classrooms and small-group rooms, gardens, pool and an onsite kitchen for 225.","Thirty kilometres from Valencia with direct motorway access; Valencia Airport and the cityâs main rail stations are practical coach pickups."],"La Touraine Center":["A 261-bed group centre with eight halls in coastal forest close to the Atlantic beaches of the Vendée.","Best reached by private coach from La Roche-sur-Yon or Nantes airport; allow 75â90 minutes."],"Landgoed de Horst":["A design-led forest campus offering more than 30 meeting spaces and substantial on-site accommodation.","Frequent bus from Driebergen-Zeist station, with easy rail access to Utrecht, Amsterdam and Schiphol."],"Landgoed ISVW":["Especially mission-aligned: a philosophy school funded by its hotel estate, with ample bedrooms, ten rooms and a restaurant.","Bus connections to Amersfoort, a major Dutch rail junction with direct Schiphol links."],"Landgoed Mennorode":["A ten-hectare Veluwe estate with 172 hotel rooms, capacity for 300 overnight guests and 35 halls.","Group transfer from Apeldoorn or Harderwijk; Amsterdam Schiphol is reachable by rail plus coach."],"LÃ¥ngholmen Hotel & Conference":["A memorable converted-prison complex on a green central Stockholm island, with hotel, hostel, restaurant and many historic meeting rooms.","Metro and bus access; direct airport coaches serve nearby Hornstull from Arlanda."],"Las Arenas Balneario Resort":["A restored historic seafront spa with 253 rooms and seventeen flexible convention rooms in highly accessible Valencia.","Tram and bus connect to the centre; Valencia airport has broad low-cost European service."],"LaSpa Laulasmaa":["Seven meeting rooms, 138 bedrooms and a pine-forest beach setting only 30 minutes from Tallinn.","Approximately 40 minutes from Tallinn Airport by coach."],"Lielupe by Semarah Hotels":["Thirteen rooms including several ten-person spaces, 264 bedrooms, beach and pine forest, 15 minutes from Riga Airport.","15 minutes from Riga Airport; local rail connects JÅ«rmala with Riga centre."],"Life Center Crikvenica":["A Christian retreat centre directly above the Adriatic, with 110 beds in 57 ensuite rooms, four group rooms, a 120-seat lecture hall and dining for 140.","Rijeka Airport on Krk is roughly 20â30 minutes away; Rijeka city and its coach network are also close."],"LifeClass Hotels & Spa Portorož":["Six adjoining hotels, ten convention halls and restaurants in an attractive Adriatic resort create abundant flexibility.","Coach transfers from Trieste are straightforward; Venice and Ljubljana are secondary gateways."],"Lighthouse Golf & Spa Hotel":["A 180-room Black Sea resort with five documented conference rooms, multiple restaurants and low room-rental costs.","About 50 minutes by coach from Varna airport, with seasonal low-cost European flights."],"Living Place Hotel Bologna":["A 205-room hotel with nine daylight meeting rooms, restaurant, pool and generous green leisure space at Bologna's edge.","Near the A14 and Bologna airport; central station and the historic centre are reachable by bus or group coach."],"Lužnica Manor Marijin Dvor":["An exceptionally attractive baroque religious manor with ten meeting halls and dining for 80, but approximately six beds short of the brief.","About 20 kilometres from central Zagreb and within roughly 30 minutes of the airport."],"Maison Notre-Dame du Chant-d'Oiseau":["A quiet Franciscan park campus with 62 bedrooms, full board and 11 meeting rooms inside Brussels.","Urban public transport to Brussels-Midi and Brussels airport; exceptionally easy by international rail."],"MAK Albania Hotel":["A 151-room central hotel beside Tirana's park, with a ballroom and four breakout rooms in a fast-growing flight hub.","Around 20 minutes from Tirana airport and walkable to central cultural sites."],"Makedonia Palace":["A landmark seafront hotel by the White Tower with 276 rooms and 11 halls in a major low-cost-flight city.","Central Thessaloniki, with easy airport transfers and regional rail and coach connections."],Marholmen:["A 34-hectare historic island with 405 beds across hotel, villas and cabins, varied conference rooms and onsite meals.","Approximately one hour by charter coach from Stockholm Arlanda airport."],"Maritim Hotel Plaza Tirana":["A polished 190-room hotel with eight flexible event rooms at the heart of increasingly well-connected Tirana.","Central beside Skanderbeg Square, with airport buses nearby and an 18-kilometre airport transfer."],Maternushaus:["The Archdiocese of Cologne's central congress house combines accommodation, thirteen conference rooms and gastronomy.","Five minutes on foot from Cologne Hauptbahnhof, with outstanding Europe-wide rail access."],"Max Mannheimer Haus":["A public foun
984dation combines a 116-bed international youth guesthouse with seven seminar rooms and a serious educational mission.","Around 30 minutes from Munich by S-Bahn plus a short local connection."],"MCC Mazurkas Conference Centre & Hotel":["A 158-room hotel with 35 halls near Warsaw offers exceptional operational flexibility and flight access.","West of Warsaw beside the A2 and S8, with easy coach transfer from both Warsaw airports."],"Medlefors Hotell & Konferens":["A mission-aligned folk-high-school campus with 78 hotel rooms, fourteen conference rooms and nature immediately outside.","A short local transfer from SkellefteÃ¥ airport and the city centre; Stockholm feeder flights are frequent."],"Meliá Grand Hermitage":["A 727-room Black Sea resort with a divisible ballroom, meeting hall and three boardrooms, yielding enough parallel spaces.","About 30 km from Varna airport, served by many seasonal European routes."],"Meliá Sitges":["A seafront-region congress hotel with 307 rooms and 26 meeting rooms only 20 minutes from Barcelona airport.","Local trains connect Sitges to Barcelona; the airport is exceptionally close by coach."],"Mercure Szczyrk Resort":["A new 447-room panoramic resort at 660 metres with nine official meeting rooms and 2,500 m² of conference space.","Reach by coach from Bielsko-BiaÅa; Katowice and Kraków airports are each around 90 minutes away."],"Metropol Lake Resort":["Lake Ohrid setting, five halls and very strong regional pricing.","About 20 minutes from Ohrid Airport; Skopje transfer possible."],"Metropol Palace Belgrade":["A protected mid-century landmark with roughly 276 rooms and nine function rooms beside TaÅ¡majdan Park.","Central tram and bus access; Belgrade airport has growing low-cost and flag-carrier coverage."],"Mona Plaza Zlatibor":["Mountain resort with professional conference infrastructure and favorable Serbian pricing.","Coach from Belgrade; rail/bus to Zlatibor region."],"Monastero San Lodovico":["Beautiful central Orvieto monastery with a 100-seat hall and multiple 15-50 seat rooms.","Rail from Rome or Florence to Orvieto, then local transfer/funicular."],"Mosteiro de Vairão":["Perhaps the closest Iberian match to Oasi: monastery, 136 beds, independent units, refectory and workshops.","About 20 minutes by coach from Porto Airport; metro/rail reaches Vila do Conde."],"Naantali Spa":["A 251-room seaside spa with seventeen modular meeting rooms and complete event and catering services.","About 17 km from Turku airport and connected by bus to Turku rail and ferry terminals."],"Nelijärve Holiday Centre":["Eleven rooms, 268 beds, lakes and rail access from Tallinn: one of the strongest value candidates.","Direct regional train from Tallinn to Aegviidu; airport connection via Tallinn."],"NH Eindhoven Conference Centre Koningshof":["A former monastery with 509 rooms and 80 meeting rooms, giving enormous flexibility at a major low-cost aviation hub.","About 15 minutes from Eindhoven and its airport; European rail access is also workable."],"Niepokalanów Pilgrim House":["A large Franciscan pilgrimage campus with several accommodation buildings, eight listed meeting rooms and meals at institutional rather than hotel scale.","Approximately 50-60 minutes west of Warsaw, with rail access through the Warsaw region."],"Nordic Hotel Forum":["Six rooms in central Tallinn with airport, ferry and Rail Baltica access; strong travel benchmark.","Tram/taxi from Tallinn Airport; ferry connections to Helsinki and Stockholm."],"Nordic Light Hotel":["A central Scandinavian design hotel with 169 rooms and 14 meeting rooms immediately beside Stockholm Central.","Steps from Central Station and the Arlanda Express, providing exceptionally easy Europe-wide access."],"Nosalowy Dwór Resort & Spa":["A Zakopane resort with 359 rooms, over 1,000 beds and 23 conference rooms including nine intimate boardrooms.","Direct academy coach from Kraków airport or rail station; regional buses also serve Zakopane."],"Notre-Dame de lâOuÿe":["A recently renovated diocesan abbey in Dourdan forest, with 207 beds, a major auditorium, large rooms and sixteen small breakout rooms plus full catering.","Around one hour from central Paris; Dourdan station provides a useful pickup point and both Paris airports are viable for a charter coach."],"Notre-Dame de Parménie":["Mountain-view Lasallian centre designed for 75-90 guests, full board and breakout teaching.","Coach from Lyon or Grenoble; regional rail to nearby stations."],"Novotel Bucharest City Centre":["A 258-room hotel behind the reconstructed National Theatre façade, steps from the old town with flexible meeting facilities.","On Calea Victoriei near metro and airport-express links; direct European flights are plentiful."],"Novotel Kraków City West":["A reliable 305-room hotel with six meeting rooms and strong group economics in one of Europe's best-connected academic cities.","Frequent buses serve central Kraków;
984 the airport and main station have extensive low-cost and international connections."],"Olympia Vodice":["Six adaptable congress halls, extensive twin accommodation and dining steps from the Dalmatian coast.","Coach transfer from Split or Zadar airports; intercity buses serve Vodice."],"Onyria Marinha Boutique Hotel":["An 84-room estate hotel with nine meeting rooms, landscaped grounds and enough capacity for a compact academy.","Roughly 35 minutes from Lisbon airport by coach and close to Cascais rail services."],"Onyria Quinta da Marinha Hotel":["A high-quality 198-room resort between Atlantic coast and pine forest, with twelve meeting rooms and strong Lisbon access.","About 35 minutes by coach from Lisbon airport; Cascais rail links serve central Lisbon."],"OREA Congress Hotel Brno":["A renovated 375-room hotel with ten air-conditioned halls, smaller daylight salons and in-house catering.","Brno has strong rail links to Vienna, Prague and Bratislava, widening the choice of international airports."],"OREA Hotel Pyramida Prague":["Twelve conference spaces and 352 rooms near Prague Castle create a highly accessible large-group fallback.","Direct tram to Prague centre and station connections; Prague airport has extensive European flights."],"OREA Resort DevÄt Skal":["A 133-room nature resort with seven halls and strong potential value in the VysoÄina highlands.","Remote; arrange a coach from Brno or Prague, or connect from ŽÄár nad Sázavou."],"OREA Resort Horal KrkonoÅ¡e":["A redesigned 162-room Giant Mountains resort with six meeting rooms, panoramic setting, terraces and full hotel catering.","Dedicated coach from Prague airport or main station takes roughly two hours."],"OREA Resort Santon Brno":["A 119-room resort at Brno Reservoir with seven listed event spaces and a manageable city connection.","Public transport connects to central Brno; Vienna, Prague and Bratislava airports are viable gateways."],"Orthodox Academy of Crete":["Academic/ecumenical mission, beautiful sea-and-mountain setting and Chania's summer flight network.","About 40 minutes by coach from Chania Airport."],"Ossa Conference and Training Centre":["A purpose-built residential conference complex with very large accommodation, training-room and catering capacity in landscaped grounds.","About 75 minutes by coach from Warsaw airport; a dedicated group transfer is essential."],"Oude Abdij Drongen":["A protected former abbey with 70â75 en-suite rooms, twelve halls, in-house catering and exceptional mission fit.","600 m from Drongen station and 5 km from central Ghent; Brussels and Lille airports are within easy reach."],"Pajulahti Olympic & Paralympic Training Center"
984:["An inclusive educational sports campus with 1,005 beds, buffet meals and varied classroom and group-room stock by a lake.","Twenty minutes from Lahti and about 90 minutes from Helsinki airport."],"PaÅac SulisÅaw":["A restored Baroque palace and park with 220 beds, seven conference rooms, restaurants, spa and extensive recreational grounds; its first EAF calculation confirms the exact dates.","Approximately 60â75 minutes by group transfer from WrocÅaw Airport, with Opole and Brzeg providing nearer rail pickup points."],"PaÅac Wojanów":["A beautiful 16-hectare palace estate with 91 rooms, 196 guest capacity and seven meeting/event rooms.","Near Jelenia Góra rail station; coach transfers are practical from WrocÅaw, Prague or Dresden."],"Palace Art Hotel Pezinok":["A restored château with 64 bedrooms and seven meeting rooms, only a short transfer from Bratislava.","About 25 minutes from Bratislava Airport and rail-connected to Bratislava city."],"Palácio Estoril Hotel":["A celebrated historic hotel with 161 bedrooms, extensive gardens and nine meeting rooms on the Lisbon coast.","Estoril rail station is beside the hotel; Lisbon airport is about 30 minutes by coach."],"Parador de Alcalá de Henares":["Restored seventeenth-century convent in a university city, close to Madrid Airport and designed for events.","About 25 minutes from Madrid Airport and served by frequent commuter rail."],"Parador de La Granja":["Exceptional royal setting with a separate convention centre and multiple halls near Madrid.","Under one hour by coach from Madrid; Segovia AVE station is nearby."],"Parador de Segovia":["Fifteen halls, World Heritage setting and high-speed rail access from Madrid.","High-speed train from Madrid plus local coach; Madrid Airport is the hub."],"Parc d'Olhain":["Public/nonprofit-style economics, 200 hectares, seven meeting rooms, accommodation and catering in one place.","15 minutes from Arras and about 50 minutes from Lille; useful Eurostar/TGV catchment."],"Parc Hotel Peschiera del Garda":["Ten modern meeting rooms, more than 700 bedrooms and extensive green leisure space create strong group capacity near Lake Garda.","Short coach transfer to Peschiera rail station; Verona airport is close and Milan, Venice and Bologna are alternatives."],"Park Hotel ai Cappuccini":["A beautifully restored 17th-century convent with 92 rooms, restaurant and 13 meeting rooms in medieval Gubbio.","Group transfer from Perugia or its airport; Rome and Florence require longer coach journeys."],"Park Hotel Moskva":["Seven halls from 20 to 550 seats beside Sofia's largest park and three minutes from the metro.","Joliot-Curie metro is three minutes away, giving simple links to central Sofia and the airport."],"Parkhotel Horst":["Seventy-eight rooms and twelve halls beside a lake create an attractive, operationally simple option.","Near Horst-Sevenum station and the A73; Eindhoven, Düsseldorf and Weeze airports widen low-cost access."],"Pestana Sintra Golf":["Nine naturally lit meeting rooms in a calm resort setting close to Sintra, Lisbon and the airport.","Coach transfer from Lisbon airport; suburban rail and local transfers connect via central Lisbon."],"Porto Carras Grand Resort":["A 479-room resort across an exceptional coastal estate, with nine event venues and Northern Greece's largest conference hall.","About 110 km by dedicated coach from Thessaloniki airport, which has extensive low-cost summer routes."],"Porto Palace Hotel Thessaloniki":["A converted industrial landmark with 176 rooms and ten meeting rooms close to Thessaloniki's centre and airport.","Fourteen kilometres from the airport and close to the rail station; Thessaloniki has many low-cost flights."],"Praia D'El Rey Marriott Golf & Beach Resort":["A dramatic Atlantic setting with 177 rooms, four main event rooms and eight additional breakout rooms.","About one hour by coach from Lisbon airport; the medieval town of Ãbidos is nearby."],"Pullman Bucharest World Trade Centre":["A 205-room convention hotel integrated with the World Trade Center near HerÄstrÄu Park and Bucharest airport.","About 15 minutes from the airport and connected to central Bucharest by bus, taxi and the nearby rail corridor."],"Qosmo BraÈov Hotel":["A modern BraÈov hotel with a seven-room conference centre and restaurant service near the historic Carpathian city.","BraÈov airport has a limited network; Bucharest airport is about 2.5 hours by coach or rail connection."],"Quality Hotel Sveitsi":["A 182-room hotel beside a nature reserve, with six large and 27 smaller meeting rooms.","About 45 minutes from Helsinki, with straightforward rail and coach access to the airport region."],"Qubus Hotel Kraków":["A 195-room riverside hotel near Kazimierz with eight conference rooms, onsite catering and strong Kraków transport.","Central tram access and around 25 minutes from Kraków airport and main
984station."],"Ráday House Conference Centre":["A church-owned academic residence offering 58 twin rooms in July and August, a restaurant and a conference operation in central Budapest.","Central Budapest location with straightforward metro and airport-bus connections."],"Radisson Blu Béke Hotel":["An elegant, fully renovated historic city hotel with daylight meeting rooms and a grand early-20th-century ballroom.","Central Budapest location near Nyugati station; the airport is normally 30â40 minutes by coach."],"Radisson Blu Hotel & Spa Daugava Riga":["A 354-room riverfront hotel with ten meeting rooms, catering and panoramic Old Town views at a comparatively attractive Baltic price.","Fifteen minutes from Riga airport and walkable across the river to the Old Town."],"Radisson Blu Hotel Bucharest":["A central 525-room hotel with eleven flexible rooms and a ballroom on elegant Calea Victoriei.","Walkable to central sights and airport-express transport; Bucharest airport has broad low-cost European coverage."],"Radisson Hotel Kaunas":["Functional, accessible and likely price-competitive with eight conference halls in central Kaunas.","Short airport bus/coach;
984 Rail Baltica and Vilnius connections improve the catchment."],"Ramada by Wyndham Sofia City Center":["A very large city-centre inventory with multiple small training rooms beside Sofia's main rail hub.","Walkable from Sofia Central station and served by metro; the airport has broad low-cost coverage."],"Ramada Plaza Bucharest Convention Center":["A modern convention hotel with ten divisible meeting rooms, two restaurants and excellent airport-side logistics.","About 15 minutes from Bucharest airport and close to Romexpo, with city buses and taxis."],"Ramada Plaza by Wyndham Gevgelija":["A large modern resort near the Greek border with substantial lodging, dining and multiple event rooms.","On the Skopje-Thessaloniki rail and motorway corridor; group transfer from Thessaloniki is most practical."],"Ramada Plaza by Wyndham Thraki":["A seafront hotel with substantial accommodation and a congress centre offering enough distinct rooms for parallel teaching.","A short coach ride from Alexandroupolis airport and station; connections commonly route through Athens."],"Ramada Sibiu":["A central 128-room hotel with five conference rooms plus a business lounge, close to Sibiu's beautiful old town.","About 10 minutes from Sibiu airport and walkable from the historic centre and railway station."],Ratnieki:["University ownership, six historic buildings, 157 beds and a scenic national-park region.","About one hour by coach from Riga; rail to Sigulda then transfer."],"Residencia La Salle Bonanova":["Large educational campus, summer residence inventory and excellent continental access.","Barcelona urban transit; direct access to a major European airport and rail hub."],"Rikli Balance Hotel":["Bled's largest hotel conference centre combines 150 rooms, eight halls and exceptional lake-and-Alps views.","Direct coach from Ljubljana airport or rail via Lesce-Bled; Venice and Zagreb can broaden flight options."],"Rogner Hotel Tirana":["Nine conference rooms, mature group operations, gardens and very easy European access in central Tirana.","Central location, roughly 25 minutes from Tirana Airport with a broad low-cost network."],"Romanian-American University Campus":["A self-contained university campus with hundreds of residential places, numerous classrooms and a 150-seat restaurant-canteen.","In Bucharest with urban public transport and straightforward transfers from the main airport."],"Rönneberga Konferens":["Union ownership, 198 beds, fifteen conference spaces and an attractive Stockholm archipelago setting make a strong Nordic lead.","Bus/taxi from central Stockholm; Arlanda has extensive European flights and direct rail to the city."],"Ronneby Brunn":["A classic southern Swedis
984h resort beside Brunnspark with 264 rooms, 22 meeting rooms, restaurant and spa.","Ronneby airport and railway station are close; Copenhagen is reachable by through rail and coach combinations."],"Runö Möten & Events":["A peninsula conference campus with 244 beds, extensive rooms, full meal packages and labour-movement roots.","Suburban rail and bus from Stockholm; Arlanda airport is reachable by consolidated coach."],"SÃ¥nga Hotell & Konferens":["A nature-oriented Stockholm-region conference hotel with 290 beds, 24 meeting rooms and locally focused food.","Roughly one hour by coach from Stockholm city and Arlanda airport."],"Santaâs Hotel Santa Claus":["A central 170-room Lapland hotel with thirteen meeting rooms, restaurants and a distinctive Arctic identity.","Ten minutes by coach from Rovaniemi airport; direct European flights are seasonal, with connections via Helsinki."],"Santuario della Verna Guesthouse":["Extraordinary sanctuary and forest setting at a published EAF-compatible price.","Coach from Florence/Bologna; rural final leg makes a charter coach important."],"Santuario di Picciano":["Over 50 internal rooms plus a separate 50-bed youth-group area, meals and conference spaces.","Coach from Bari Airport; combine with a Matera excursion."],"Savoia Excelsior Palace":["Nine meeting rooms, 144 bedrooms and a grand seafront setting directly in a well-connected rail city.","Walkable from Trieste Centrale; reachable through Trieste, Venice and Ljubljana airports."],"Savoia Hotel Regency":["An elegant park hotel with 98 rooms, an acclaimed restaurant and 27 flexible conference rooms close to Bologna's transport hub.","About 10 minutes from Bologna Centrale, 15 minutes from the airport and 5 minutes from the exhibition district."],"Scandic Aulanko":["A large spa hotel in the scenic Aulanko cultural landscape with 16 meeting rooms and full restaurant facilities.","Hämeenlinna is on the HelsinkiâTampere rail line; a local bus reaches the hotel from the station."],"Scandic Grand Marina":["A large hotel in a handsome Art Nouveau harbour warehouse with extensive meeting rooms and central Helsinki access.","Tram access to Helsinki Central; the airport rail connection makes total transfer time about 45 minutes."],"Scandic Helsinki Airport":["A 150-room terminal hotel with nine meeting rooms and effortless arrivals for a Europe-wide group.","Walk from Helsinki Airport terminals; frequent trains reach central Helsinki in about 30 minutes."],"Scandic Infra City":["A major Nordic convention hotel with a tropical atrium, extensive small and large rooms and a location between Stockholm and Arlanda.","About 15 minutes by coach from Arlanda airport and 20 minutes from central Stockholm."],"Scandic Rosendahl":["A 213-room lakeside hotel with fifteen refurbished meeting rooms, restaurant, pool and forest trails close to Tampere.","Five minutes from central Tampere; trains connect Helsinki airport and seasonal direct flights serve Tampere."],"Schloss Seggau":["A beautiful ecclesiastical castle with 16 meeting rooms and enough bedrooms for comfortable allocation.","About 40 minutes from Graz Airport; rail to Leibnitz plus short transfer."],"Schönblick Christian Guest Centre":["A substantial Christian conference campus with 530 beds, 23 event rooms, full catering and landscaped grounds.","Around 50 minutes from Stuttgart and 15 minutes from Schwäbisch Gmünd station."],"Sheraton Lake Como Hotel":["A 137-room Lake Como property with six event rooms, three breakouts, gardens, restaurants and a distinctive over-water auditorium.","About 45 minutes by coach from Milan Malpensa; Como rail links also reach Milan and Switzerland."],Sigtunahöjden:["A purpose-built meeting hotel with 98 rooms and 20 equipped conference rooms in historic, lakeside Sigtuna.","Only about 20 minutes from Stockholm Arlanda airport, with arranged coach or local public transport."],Sigtunastiftelsen:["A mission-aligned cultural foundation with monastery-inspired architecture, 93 beds and over 20 rooms.","Only 17-20 minutes from Stockholm Arlanda Airport."],"SmÃ¥dalarö GÃ¥rd Hotel & Spa":["Ten meeting space
984s and 110 rooms in a memorable Stockholm-archipelago setting make a premium but operationally strong option.","Approximately one hour by coach from central Stockholm; Arlanda has broad European service."],"Smolenice Castle":["Academic mission, romantic castle and strong Bratislava/Vienna airport catchment.","About one hour by coach from Bratislava; Vienna Airport is also usable."],"Sofia Hotel Balkan":["An iconic 184-room hotel above Roman remains with five grand meeting spaces in Sofia's absolute centre.","Directly beside Serdika metro, with a one-change airport journey and excellent Balkan rail and coach connections."],"Spa Hotel Härmä":["Four lecture rooms and ten purpose-built 8â16-person group rooms closely match the academy's teaching format.","Rail via Seinäjoki or flights to Vaasa, followed by a coach transfer."],"Splendid Conference & Spa Resort":["Seven meeting rooms, 688 beds and a private Adriatic beach close to two useful airports.","About 30 minutes from Tivat Airport or 75 minutes from Podgorica."],"SPORTCAMP Loutraki":["Youth-campus economics, 850 beds, full board and easy Athens access; excellent strategic fit.","About one hour by coach from Athens Airport; near Corinth/Loutraki."],"St. Stanislavâs Institution":["A striking Catholic educational campus that explicitly welcomes summer groups and can provide meals, classrooms, halls and extensive communal space.","Within Ljubljana, about 20 minutes from the centre and roughly 25 minutes from the airport."],"St. Virgil Salzburg":["Purpose-built, nonprofit, green campus with 14 rooms and excellent transport; price is the only drawback.","City bus from Salzburg station; Salzburg Airport nearby and Munich rail access practical."],"Stenungsbaden Yacht Club":["A saltwater-front resort with 214 rooms, 23 meeting rooms and sixteen spaces overlooking the sea.","Regional train or coach from Gothenburg; Landvetter airport is roughly one hour away."],"STEP Education Lapua":["Exactly 80 beds, classrooms, halls and campus catering at an education provider.","Rail to Lapua; flights via Vaasa or Helsinki plus rail."],"Stift Urach":["A historic former monastery in a spa town, with exactly seven seminar rooms and about 81 beds.","Regional rail reaches Bad Urach via Metzingen; Stuttgart airport is roughly one hour away."],"Stora Brännbo Conference & Hotel":["A 101-room dedicated conference centre in historic Sigtuna, with thirteen rooms and unusually easy airport access.","Around 15 minutes by coach from Stockholm Arlanda and midway between Stockholm and Uppsala."],"Storebælt Sinatur Hotel & Conference":["A highly sustainable 115-room hotel with 16 bright rooms directly on the Great Belt beach.","Nyborg sits on Denmark's main CopenhagenâOdense rail line, simplifying airport arrivals."],"SundsgÃ¥rden Hotell & Konferens":["A mission-aligned folk high school with 89 hotel rooms, full-board conference packages and Ãresund views.","Five minutes' walk from the bus; Helsingborg, Copenhagen and its airport are well connected."],"Szent Adalbert Conference Centre":["Basilica setting on the Danube, church ownership and a residential conference mission.","Rail/coach from Budapest in about 60-90 minutes."],"Tagungshaus Kloster Heiligkreuztal":["A beautiful former Cistercian monastery with 171 beds and 17 event rooms is exceptionally well matched to the academy format.","Rural Upper Swabia; group transfers would be needed from Riedlingen, Ulm or Stuttgart."],"Tagungszentrum Schmerlenbach":["A former monastery estate with 97 beds, a broad seminar-room portfolio and in-house gastronomy.","Near Aschaffenburg and roughly 45â60 minutes from Frankfurt Airport by coach."],"TalTech Campus and Academic Hostel":["A coherent university campus with an academic hostel, roughly 2,000 residential places, abundant teaching rooms and campus catering.","In Tallinn, with city transport to the centre and an airport transfer generally under 25 minutes."],"Terme Olimia":["Seven modern halls, several interconnected hotels and a landscaped thermal setting support a self-contained academy.","PodÄetrtek has regi
984onal rail; group coaches from Ljubljana, Zagreb or Graz would be simplest."],"TH Lazise â Hotel Parchi del Garda":["A 233-room green resort near Lake Garda with nine meeting rooms, three breakouts, restaurants and a major congress centre.","Near Peschiera del Garda rail station, Verona airport and the MilanâVenice transport corridor."],"The Met Hotel Thessaloniki":["Thirteen meeting areas, 212 bedrooms and a design-led harbour setting make a flexible and accessible option.","Two kilometres from the centre and rail station, and 14 km from Thessaloniki airport."],"The Oitavos":["A striking coastal property with 142 rooms, eight meeting rooms and large event capacity in the Quinta da Marinha estate.","About 35 minutes by coach from Lisbon airport; Cascais has suburban rail to Lisbon."],"Tirana International Hotel & Conference Centre":["Fifteen function rooms in the heart of Tirana, substantial accommodation and excellent low-cost flight access.","On Skanderbeg Square, about 30 minutes from Tirana Airport with direct flights across Europe."],"Towers Hotel Stabiae Sorrento Coast":["A 150-room waterfront resort on the Sorrento coast with a substantial conference and banqueting plan and on-site dining.","Around 35 minutes by coach from Naples airport outside peak traffic; regional rail serves Castellammare."],"Transilvania University BraÈov Campus":["A large university system with more than 4,000 dormitory places and eight conference rooms in its Aula, based in one of Romania's prettiest cities.","Within BraÈov, served by rail from Bucharest and an expanding local international airport."],"UKIM Congress Center Ohrid":["Academic ownership and lakeside park make it strategically aligned and likely inexpensive.","Short coach from Ohrid Airport and city."],"UNA Hotels Bologna San Lazzaro":["A 152-room hotel in Villa Cicogna's large park with five hotel rooms and a nearby seven-room congress centre.","Straightforward coach access to Bologna airport, central station and the fair district; city buses serve San Lazzaro."],"University of Rijeka Trsat Campus":["A modern university campus above the Adriatic with student accommodation, rentable teaching rooms and student-centre catering.","Within Rijeka; Rijeka Airport is about 30 minutes away and Zagreb can be reached by coach in around two hours."],"University of Tartu Campus Package":["An attractive university-city option with multiple suitable rooms and nearby public-university dormitories at likely institutional rates.","Tartu is connected to Tallinn by frequent rail and coach services; the onward journey is around two hours, so airport access is the main weakness."],"University of Warsaw Summer Campus":["Six university dormitories can be rented during summer and paired with dozens of modern or historic teaching spaces across a central academic campus.","Central Warsaw with excellent rail links and direct public transport to Chopin Airport."],"University of Zagreb Summer Campus":["A potentially inexpensive public-university solution using summer dormitory capacity, student dining and nearby teaching rooms in Croatia's main transport hub.","Within Zagreb with direct airport-bus, rail and international coach connections."],"Uroczysko Porszewice":["A church-operated residential conference centre in green surroundings just outside Åódź, with food and rooms ranging from small workshops to 120 people.","Only about five kilometres from Åódź, with Warsaw Airport reachable in roughly 90 minutes."],"Valamar Lacroma Hotel":["A major Adriatic conference property with 401 rooms and 11 meeting rooms on Dubrovnik's green Babin Kuk peninsula.","About 22 km from Dubrovnik airport, with seasonal low-cost links from many European cities."],"Valpré Lyon":["A six-hectare green estate with 110 rooms, 20 meeting spaces, restaurant and Assumptionist educational roots.","Ten minutes from central Lyon; Lyon airport and its major rail hub serve Europe broadly."],"Vanajanlinna Hotel & Resort":["A beautiful historic castle resort with beds for 200 and an unusually rich portfolio of small meeting rooms.","About 15 minutes from Hämeenlinna station and roughly 75 minutes from Helsinki airport."],"Varbergs Kusthotell":["A characterful 157-room seaside spa hotel with broad meeting capacity for groups from 2 to 220.","Varberg is on the main Gothenburg-Copenhagen rail line; Gothenburg airport is the nearest major gateway."],"Västanviks Folkhögskola":["Many 8-12 person classrooms, ample guest rooms and a lakes-region education setting.","Rail from Stockholm to Leksand; local transfer to campus."],"Vienna House Easy by Wyndham Katowice":["A 203-room central hotel with thirteen daylight event rooms, strong rail access and a substantial low-cost-airport catchment.","Walkable from Katowice station; Katowice airport is about 35 minutes away and Kraków airport is also viable."],"Vihula Manor Country Club & Spa":["One of Europe's prettiest manor campuses, with seven usable meeting venues an hour from Tallinn.","About one hour by coach from Tallinn Airport."],"Vila Galé Coimbra":["Eight multipurpose rooms and 229 bedrooms in one of Europe's classic university cities make a natural academy fit.","Frequent rail from Lisbon and Porto; both airports have strong low-cost networks."],"Vila Galé Ericeira":["An emblematic 202-room Atlantic hotel with nine multipurpose rooms and easy access to Lisbon.","About 30â40 minutes by coach from Lisbon airport, with inexpensive flights from across Europe."],"Villa Aurelia Roma":["Parkland near St Peter's, 95 bedrooms and ten naturally lit meeting rooms in one property.","Central Rome bus/taxi access; both Fiumicino and Ciampino have broad low-cost networks."],"Villa Cagnola":["Ten distinctive rooms, 70 bedrooms, art collection and park near Milan's airport system.","Near Varese; coach from Milan Malpensa in roughly 30-40 minutes."],"Villa Tuscolana":["A visually exceptional historic villa with 92 bedrooms and ten meeting rooms close to Rome's flight network.","Frascati has frequent trains to Roma Termini; Ciampino Airport is especially close."],"Vilnius Grand Resort":["A 238-room lake-and-forest resort with 25 meeting space
984s and strong value potential near Vilnius.","About 20 minutes from Vilnius and 25 kilometres from the airport, which has extensive low-cost routes."],"Vilnius University Campus Package":["One of Europe's most beautiful historic university environments, with extensive venue rentals and the potential to combine rooms, dormitories and catering.","Central Vilnius, around 15 minutes from the airport and connected by rail and low-cost flights across Europe."],"VINGSTED Hotel & Konferencecenter":["One of Denmark's strongest purpose-built residential meeting campuses, with abundant breakout and outdoor space.","13 km from Vejle rail hub and about 25 minutes from Billund Airport."],"Vital Hotel Nautis":["Nine event rooms and 85 bedrooms sit beside Lake Velence, only about 50 km from Budapest.","Direct regional rail from Budapest to Gárdony plus a short local transfer; easy airport coach access."],"voco Parma & Congressi":["A 166-room conference hotel with flexible daylight spaces, onsite catering, gardens and straightforward motorway access.","Roughly 15 minutes by coach from Parma station and airport; Milan and Bologna are accessible by fast rail."],VoksenÃ¥sen:["A culturally distinctive hilltop property with 85 rooms, eight flexible meeting rooms and panoramic Oslo views.","Metro and local transfer connect it to central Oslo; airport rail makes European arrivals simple."],"Vranov Spiritual Centre":["A beautiful religious centre with 140 ensuite beds and explicit group-booking experience very close to Brno.","Approximately 25 minutes north of Brno and around 35 minutes from Brno Airport."],"Wellness & Spa Hotel Kaskady":["A calm 79-room wellness hotel in a large green estate with multiple indoor event rooms and strong onsite catering.","About 15 minutes from Zvolen station; Budapest, Bratislava or Kraków airport transfers are long."],"Woudschoten Hotel & Conference Centre":["A purpose-built conference estate with 139 rooms, 30 flexible meeting rooms and 45 hectares of forest.","Short bus or coach transfer from Utrecht and Driebergen-Zeist; Schiphol is directly connected by rail."],"YMCA Le Rocheton":["YMCA mission fit, 146 beds, fourteen meeting rooms and restaurant capacity for 300 make this a strategic Paris-region lead.","Near Melun rail station, around 30 minutes by train from Paris plus a short local transfer."],"Zamek Janów Podlaski":["A beautifully restored castle on a 40-hectare estate with 199 rooms and 15 conference rooms.","The rural location requires a consolidated coach from Warsaw or Lublin."],"Zamek Kliczków":["Very beautiful castle with scale and multiple halls; Poland may keep a full buyout affordable.","Coach from WrocÅaw or Dresden; near the German border."],"Zámek Liblice":["A Czech Academy of Sciences baroque château with 53 rooms, about 110 beds and a purpose-built conference operation.","Around 45 minutes by coach from Prague; Prague Airport and main station have wide European links."],"Zámek ValeÄ":["A striking historic-modern castle complex with 150 rooms and an unusually deep conference-room portfolio.","Between Brno and Jihlava; best handled with a group coach from Brno."],"Zanhotel & Meeting Centergross":["A 152-room Emilia-Romagna conference hotel with twelve modular rooms, restaurant, spa and outdoor pool.","Less than 1 km from the A13 exit, about 20 minutes by coach from Bologna airport and city centre."]},religiousVenues=new Set(["Bildungshaus St. Martin â Kloster Bernried","Caritas-Pirckheimer-Haus","Casa per Ferie Maria Santissima Assunta","Dobre Miejsce","Evangelische Akademie Bad Boll","Evangelische Jugendbildungsstätte Neukirchen","Evangelisches Bildungszentrum Bad Bederkesa","Haus der Kirche â Evangelische Akademie Baden","Haus Venusberg","Jugendakademie Walberberg","Katholisch-Soziales Institut","Kloster Kappel","Maternushaus","Schönblick Christian Guest Centre","Tagungszentrum Schmerlenbach","Abbaye de La Cambre","Bildungshaus Schloss Puchberg","Bildungshaus St. Arbogast","Bildungshaus St. Bernhard","Bildungshaus St. Hippolyt","Casa Cristo Rey","Casa de Ejercicios San José","Casa per Ferie Seraphicum","Centre Culturel Saint-Thomas","Centre spirituel du Hautmont","Centro Giovanni XXIII Frascati","Centro Pastorale Ambrosiano â Seveso","Domaine Lyon Saint-Joseph","Domus Pacis Assisi","Exerzitienhaus Himmelspforten","Foyer Sainte-Anne","Fraterna Domus Sacrofano","Haus Altenberg","Haus Ohrbeck","Haus Sankt Ulrich","Hotel Seminário Torre dâAguilha","Kloster Benediktbeuern","La Salle LlÃria","Life Center Crikvenica","Notre-Dame de lâOuÿe","Notre-Dame de Parménie","Orthodox Academy of Crete","Oude Abdij Drongen","St. Virgil Salzburg","Stift Urach","Szent Adalbert Conference Centre","Tagungshaus Kloster Heiligkreuztal","Valpré Lyon","Villa Aurelia Roma","Villa Cagnola","Carmelite Hospital
984ity Centre Ciofliceni","Niepokalanów Pilgrim House","Ráday House Conference Centre","Dom sv. Jožef","St. Stanislavâs Institution","Vranov Spiritual Centre","Uroczysko Porszewice","Domus Maria","Lužnica Manor Marijin Dvor"]),nonprofitVenues=new Set(["Akoesticum","Arbeitnehmer-Zentrum Königswinter","Burg Rieneck","Der Sunderhof","Irish College Leuven","Jugendbildungsstätte Königsdorf","Burg Ludwigstein","Burg Rothenfels Youth Hostel","Burg Schwaneck","Château de Jambville","Château de Villebon","CISL Ethic Etapes Lyon","Domaine de la Frayse","Emmaus Bezinningscentrum","International Youth Meeting Centre OÅwiÄcim","Jugendbildungsstätte Unterfranken","Jugendbildungsstätte Waldmünchen","La Touraine Center","YMCA Le Rocheton","Bulgarian Red Cross Training Centre Lozen","CEU Residence and Conference Center","College of Europe Natolin Campus"]),publicVenues=new Set(["CISP Ravel","Jugendbildungsstätte Babenhausen","Jugendbildungsstätte Burg Hoheneck","Max Mannheimer Haus","Destelheide","La Marlagne","Ratnieki","UKIM Congress Center Ohrid","Västanviks Folkhögskola","Centrum Krystal","Zámek Liblice","Château TÅešť","BÄdlewo Research and Conference Centre","Hostel DIC","Complex Boyana","Academic Hotel Krakowiak","Romanian-American University Campus","University of Warsaw Summer Campus","BabeÈ-Bolyai University Campus","Transilvania University BraÈov Campus","TalTech Campus and Academic Hostel","Vilnius University Campus Package","University of Tartu Campus Package","Charles University PodÄbrady Campus","University of Rijeka Trsat Campus","University of Zagreb Summer Campus","Belgrade Student Centre Campus","Budapest Combined School Residence","AGH University Student Campus","CAAS Dubrovnik"]),venueOwnership=e=>religiousVenues.has(e)?"religious":nonprofitVenues.has(e)||/^(DJH Youth Hostel|éthic étapes|Ethic Etapes)/i.test(e)?"nonprofit":publicVenues.has(e)?"public":"commercial-or-unknown",venueOwnershipLabel={religious:"Religious nonprofit",n
984onprofit:"Nonprofit",public:"Public / academic","commercial-or-unknown":"Commercial / unverified"},extraPublic=(e,s,a,c,g,et,rt,nt,st,at,it,ot)=>({name:e,provider:s,kind:"Grant",amount:a,amountMaxK:c,volume:g,fit:et,ease:rt,burden:nt,status:st,rationale:at,condition:it,source:ot}),additionalPublicFundingCandidates=[extraPublic("Horizon Europe â Democracy and Governance","European Union · Horizon Europe","Typically â¬2mââ¬4m",4e3,5,4,1,5,"Open","Major 2026 research call on democratic governance, trust, rights and media resilience.","Research consortium required; EAF is an impact, engagement or youth-participation partner.","https://rea.ec.europa.eu/funding-and-grants/horizon-europe-cluster-2-culture-creativity-and-inclusive-society/democracy-and-governance_en"),extraPublic("Horizon Europe â Social and Economic Transformations","European Union · Horizon Europe","Typically â¬2mââ¬4m",4e3,5,3,1,5,"Annual","Research route for education, inequality, skills, inclusion and social transformation.","Requires a research-intensive consortium and exact topic match.","https://rea.ec.europa.eu/funding-and-grants/horizon-europe-cluster-2-culture-creativity-and-inclusive-society/social-and-economic-transformations_en"),extraPublic("MSCA and Citizens â European Researchersâ Night","European Union · Horizon Europe","Up to â¬600k",600,5,3,1,5,"Next call","Funds large public engagement with research and young people across Europe.","University or research consortium should lead; EAF needs a science-engagement role.","https://marie-sklodowska-curie-actions.ec.europa.eu/actions/msca-and-citizens"),extraPublic("Marie SkÅodowska-Curie Staff Exchanges","European Union · Horizon Europe","Unit-cost consortium grant",1e3,5,2,1,5,"Annual","Can fund cross-sector staff exchange between academic and non-academic partners.","Research and innovation objectives must drive the exchange, not general networking.","https://marie-sklodowska-curie-actions.ec.europa.eu/actions/staff-exchanges"),extraPublic("Digital Europe â Advanced Digital Skills","European Union · Digital Europe","Typically â¬1mââ¬3m",3e3,5,3,1,5,"Next call","Potential scale route for advanced AI, cyber or digital-skills education.","Needs a call-specific consortium and workforce-scale skills outcomes.","https://digital-strategy.ec.europa.eu/en/activities/digital-programme"),extraPublic("Creative Europe â Journalism Partnerships","European Union · Creative Europe","Up to â¬2m",2e3,5,3,1,5,"Annual","Relevant to European public-sphere, media-literacy or youth-journalism partnerships.","News-media organisations must be central and editorial independence protected.","https://digital-strategy.ec.europa.eu/en/funding/journalism-partnerships"),extraPublic("Creative Europe â Media Literacy","European Union · Creative Europe","Up to â¬500k",500,5,4,1,5,"Annual","Strong route for cross-border media literacy, critical thinking and democratic resilience.","Requires a multi-country consortium and scalable media-literacy methods.","https://digital-strategy.ec.europa.eu/en/funding/media-literacy"),extraPublic("Creative Europe â European Networks","European Union · Creative Europe","Multi-year framework grant",1e3,5,2,1,5,"Next call","Supports Europe-wide cultural networks with capacity building and transnational impact.","EAF needs a genuine cultural-network identity or should join an established network.","https://culture.ec.europa.eu/creative-europe/creative-europe-culture/european-networks"),extraPublic("Creative Europe â European Platforms","European Union · Creative Europe","Multi-year platform grant",2e3,5,2,1,5,"Next call","Supports platforms that promote emerging European cultural talent.","Cultural and creative talent must be the core, with a large member network.","https://culture.ec.europa.eu/creative-europe/creative-europe-culture/european-platforms"),extraPublic("Creative Europe â Circulation of European Literary Works","European Union · Creative Europe","Up to â¬300k",300,4,1,1,4,"Annual","Possible only for a European ideas, translation or publishing strand.","Requires publishers and eligible literary translation/circulation activity.","https://culture.ec.europa.eu/creative-europe/creative-europe-culture/circulation-of-european-literary-works"),extraPublic("CERV Daphne â Preventing Violence","European Union · CERV","Typically â¬100kââ¬1m",1e3,5,2,1,5,"Open","Funds prevention of gender-based violence and violence against children.","Only relevant with safeguarding expertise and a dedicated prevention programme.","https://citizens-equality-rights-values.campaign.europa.eu/daphne_en"),extraPublic("CERV Equality and Anti-discrimination","European Union · CERV","Typically â¬100kââ¬500k",500,5,3,1,5,"Next call","Supports equality, anti-racism and non-discrimination across Europe.","Proposal must match a specific protected-ground priority and include expert partners.","https://citizens-equality-rights-values.campaign.europa.eu/equality-rights-and-gender-equality_en"),extraPublic("CERV Gender Equality","European Union · CERV","Typically â¬100kââ¬500k",500,5,3,1,5,"Next call","Could fund a focused womenâs leadership or equal participation programme.","Gender equality must be the central, evidence-based outcome.","https://citizens-equality-rights-values.campaign.europa.eu/equality-rights-and-gender-equality_en"),extraPublic("European Urban Initiative â Innovative Actions","European Union · ERDF","Up to â¬5m",5e3,5,2,1,5,"Next call","City-led route for experimentally tackling urban inclusion, education or democracy challenges.","An eligible city must lead; EAF can only be a delivery or knowledge partner.","https://www.urban-initiative.eu/innovative-actions"),extraPublic("ESF+ Social Innovation+","European Union · ESF+","Call-dependent",1e3,5,3,1,5,"Next call","Transnational social-innovation support relevant to inclusion, skills and youth opportunity.","Calls are narrow and often intermediary-led; partnership route is essential.","https://ec.europa.eu/european-social-fund-plus/en/social-innovation-plus"),extraPublic("Interreg Europe","
984European Union · ERDF","Typically â¬1mââ¬2m",2e3,5,2,1,5,"Next call","Policy-learning route for regional education, talent and democratic participation systems.","Public authorities and policy organisations must anchor the partnership.","https://www.interregeurope.eu/next-call-for-projects"),extraPublic("Interreg Alpine Space","European Union · ERDF","Typically â¬1mââ¬3m",3e3,5,2,1,5,"Next call","Could support transnational youth opportunity or civic resilience in Alpine regions.","Requires eligible Alpine-region partners and a programme-priority match.","https://www.alpine-space.eu/for-applicants/how-to-apply/"),extraPublic("Interreg North-West Europe","European Union · ERDF","Typically â¬1mââ¬4m",4e3,5,2,1,5,"Next call","Potential route for scalable social innovation across north-west Europe.","Territorial impact and a multi-country public-interest consortium are mandatory.","https://www.nweurope.eu/call-projects"),extraPublic("Interreg Euro-MED","European Union · ERDF","Typically â¬1mââ¬3m",3e3,5,2,1,5,"Next call","Relevant to Mediterranean cooperation, governance and social innovation.","Must address an active programme mission with eligible Mediterranean partners.","https://interreg
984-euro-med.eu/en/calls-for-projects/"),extraPublic("Interreg Danube Region","European Union · ERDF","Typically â¬1mââ¬3m",3e3,5,3,1,5,"Next call","Good geographic route for talent, education and civil-society cooperation in the Danube region.","Needs a broad eligible partnership and direct territorial results.","https://interreg-danube.eu/calls-for-proposals"),extraPublic("Interreg Baltic Sea Region","European Union · ERDF","Typically â¬1mââ¬3m",3e3,5,2,1,5,"Next call","Potential platform for transnational public-service or youth innovation around the Baltic.","Regional policy impact and eligible Baltic partners are required.","https://interreg-baltic.eu/gateway/calls/"),extraPublic("European Heritage Days Stories Grant","EU · Council of Europe","Up to â¬10k",10,1,3,4,2,"Annual","Small, accessible award for a European heritage story developed into a public project.","Needs a link to a participating European Heritage Days community or site.","https://www.europeanheritagedays.com/Story"),extraPublic("Anna Lindh Foundation Civil Society Grants","EU-funded · Union for the Mediterranean","Typically â¬20kââ¬50k",50,2,4,3,3,"Next call","Strong fit for Euro-Mediterranean youth dialogue, intercultural learning and civil society cooperation.","Requires eligible network members and partners across Mediterranean countries.","https://www.annalindhfoundation.org/grants"),extraPublic("Council of Europe â Living and Building Democracy","Council of Europe · EYF","Call-specific youth grant",25,2,5,4,2,"Open","Exceptionally aligned current call for youth action on democracy, participation and disinformation.","EYF registration and youth-NGO eligibility are required.","https://www.coe.int/en/web/european-youth-foundation/calls"),extraPublic("Council of Europe â Youth Cooperation with Ukraine","Council of Europe · EYF","Call-specific youth grant",25,2,4,3,3,"Open","Funds international youth cooperation supporting young people from Ukraine, democracy and solidarity.","Ukrainian youth must be central and EYF eligibility applies.","https://www.coe.int/en/web/european-youth-foundation/calls")],publicFundingCandidates=[...additionalPublicFundingCandidates,{name:"Erasmus+ Small-scale Partnerships in Youth",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬30k / â¬60k",amountMaxK:60,volume:3,fit:5,ease:4,burden:2,status:"Annual",rationale:"The cleanest first EU grant: built for newcomers, active citizenship and small transnational youth partnerships.",condition:"Needs at least two organisations in two programme countries and a clearly European project design.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/small-scale-partnerships"},{name:"Erasmus+ Cooperation Partnerships in Youth",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬120k / â¬250k / â¬400k",amountMaxK:400,volume:5,fit:5,ease:2,burden:4,status:"Annual",rationale:"Strong route for scaling a tested European fellowship model, curriculum and partner network.",condition:"Usually requires at least three organisations in three programme countries and substantial shared outputs.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/cooperation-partnerships"},{name:"Erasmus+ Youth Participation Activities",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬60k",amountMaxK:60,volume:3,fit:5,ease:4,burden:2,status:"Annual",rationale:"Excellent fit for youth-led democratic participation, dialogue with decision-makers and European civic agency.",condition:"Participants must meaningfully shape the project; this cannot be framed as a conventional academic conference.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/youth-participation"},{name:"European Youth Together",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬500k",amountMaxK:500,volume:5,fit:5,ease:1,burden:5,status:"Next call",rationale:"Near-perfect thematic match for a durable Europe-wide youth network and cross-border civic participation.",condition:"A large multi-country consortium and mature delivery capacity are essential; pursue after smaller EU wins.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-3/youth-together"},{name:"CERV Citizensâ Engagement and Participation",provider:"European Union · CERV",kind:"Grant",amount:"Typically â¬75kââ¬500k+",amountMaxK:500,volume:5,fit:4,ease:1,burden:5,status:"Next call",rationale:"High-capacity route when EAFâs programme is framed around democratic participation and citizensâ EU policy engagement.",condition:"Competitive central call; needs a policy-specific work plan, consortium evidence, indicators and robust EU administration.",source:"https://citizens-equality-rights-values.campaign.europa.eu/citizens-engagement-and-participation_en"},{name:"European Youth Foundation â International Activity",provider:"Council of Europe",kind:"Grant",amount:"Up to â¬25k",amountMaxK:25,volume:2,fit:5,ease:3,burden:3,status:"Annual",rationale:"Very strong values fit for international youth work, democracy, human rights and European cooperation.",condition:"EAF must meet the Council of Europe youth-NGO registration criteria and use its results-based methodology.",source:"https://www.coe.int/en/web/european-youth-foundation/international-activity"},{name:"European Youth Foundation â Annual Work Plan",provider:"Council of Europe",kind:"Grant",amount:"Up to â¬60k",amountMaxK:60,volume:3,fit:5,ease:2,burden:4,status:"Annual",rationale:"A natural route for a coherent year-long sequence of academies, alumni activity and democratic youth participation.",condition:"Requires an integrated annual strategy rather than a bundle of events, plus eligible youth-NGO status.",source:"https://www.coe.int/en/web/european-youth-foundation/annual-work-plan"},{name:"European Charlemagne Youth Prize",provider:"European Parliament · Charlemagne Prize Foundation",kind:"Award",amount:"Up to â¬7.5k",amountMaxK:7.5,volume:1,fit:5,ease:5,burden:1,status:"Annual",rationale:"Low-effort, high-visibility recognition for an established youth-led project strengthening European identity and democracy.",condition:"The submitting project team must satisfy the 16â30 age and EU-residency rules; prize volume is modest.",source:"https://youth.europarl.europa.eu/more-information/charlemagne-prize/apply-now.html"},{name:"European Citizenâs Prize",provider:"European Parliament",kind:"Award",amount:"Recognition · no cash grant",amountMaxK:0,volume:1,fit:5,ease:4,burde
984n:1,status:"Annual",rationale:"Useful institutional recognition for cross-border cooperation, European values and civic impact.",condition:"Primarily a credibility and visibility play; nomination rules apply and there is no project budget.",source:"https://www.europarl.europa.eu/at-your-service/en/be-heard/prizes"},{name:"Erasmus+ Youth Exchanges",provider:"European Union · Erasmus+",kind:"Grant",amount:"Unit-cost grant",amountMaxK:80,volume:3,fit:5,ease:4,burden:2,status:"Annual",rationale:"Funds short international learning exchanges for young people, including participation, inclusion and European values.",condition:"Must be a genuine non-formal youth exchange rather than tourism, study travel or a conventional conference.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/mobility-youth"},{name:"Erasmus+ Mobility of Youth Workers",provider:"European Union · Erasmus+",kind:"Grant",amount:"Unit-cost grant",amountMaxK:60,volume:3,fit:4,ease:4,burden:2,status:"Annual",rationale:"Can fund international training and peer learning for EAF mentors, organisers and youth-work partners.",condition:"The learning design and organisational impact must be central; it cannot primarily fund fellowsâ participation.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/mobility-youth-workers"},{name:"Erasmus+ DiscoverEU Inclusion Action",provider:"European Union · Erasmus+",kind:"Grant",amount:"Unit-cost grant",amountMaxK:50,volume:2,fit:3,ease:4,burden:2,status:"Annual",rationale:"A practical route for supported European learning journeys involving 18-year-olds with fewer opportunities.",condition:"Narrow age and inclusion criteria; travel must carry a structured learning dimension.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/discovereu-inclusion"},{name:"Erasmus+ Virtual Exchanges",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬500k",amountMaxK:500,volume:5,fit:3,ease:1,burden:5,status:"Annual",rationale:"Potential scale route for facilitated intercultural academic dialogue between Europe and eligible third-country regions.",condition:"Large international consortium and eligible regional scope; a poor first application for EAF.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/virtual-exchanges"},{name:"Erasmus+ Capacity Building in Youth",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬300kââ¬450k",amountMaxK:450,volume:5,fit:3,ease:1,burden:5,status:"Annual",rationale:"Could extend EAFâs youth-development model through substantive partnerships beyond the EU.",condition:"Region-specific consortium rules and a genuine capacity-building purpose make this a later-stage route.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/capacity-building-youth"},{name:"Erasmus+ Cooperation Partnerships in Adult Education",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬120k / â¬250k / â¬400k",amountMaxK:400,volume:5,fit:3,ease:2,burden:4,status:"Annual",rationale:"Relevant if EAF packages its mentoring, civic learning or alumni curriculum for adult learners and educators.",condition:"Needs at least three organisations and a defensible adult-education rather than youth-programme framing.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/cooperation-partnerships"},{name:"Erasmus+ Small-scale Partnerships in Adult Education",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬30k / â¬60k",amountMaxK:60,volume:3,fit:3,ease:4,burden:2,status:"Annual",rationale:"Acce
984ssible pilot route for cross-border civic-learning or mentor-development work involving adults.",condition:"At least two programme-country organisations and a clear adult-learning need are required.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/small-scale-partnerships"},{name:"Erasmus+ Jean Monnet Learning EU Initiatives",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬35k",amountMaxK:35,volume:2,fit:4,ease:2,burden:3,status:"Annual",rationale:"Strong content fit for structured teaching about the EU, democracy and European integration in schools or VET.",condition:"Applicant eligibility is education-institution specific; EAF would likely participate through a school partner.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/other-fields-education-training/learning-eu"},{name:"Erasmus+ Jean Monnet Teacher Training",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬300k",amountMaxK:300,volume:5,fit:3,ease:1,burden:4,status:"Annual",rationale:"Could scale an EAF-developed European democracy curriculum through teacher training.",condition:"Must be led by an eligible teacher-training or higher-education institution, with EAF as content partner.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/other-fields-education-training/teacher-training"},{name:"Erasmus+ Jean Monnet Networks for Schools and VET",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬300k",amountMaxK:300,volume:5,fit:3,ease:1,burden:5,status:"Annual",rationale:"Useful consortium route for a cross-border network teaching European issues and democratic citizenship.",condition:"Requires a multi-country network of eligible schools or VET providers; EAF cannot lead alone.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/other-fields-education-training/networks"},{name:"European Solidarity Corps â Solidarity Projects",provider:"European Union · European Solidarity Corps",kind:"Grant",amount:"Monthly project grant",amountMaxK:15,volume:1,fit:4,ease:5,burden:2,status:"Annual",rationale:"Lightweight funding for a youth-led local initiative with solidarity and European-values impact.",condition:"Must be initiated and implemented by a group of young people; funding is modest and locally anchored.",source:"https://youth.europa.eu/solidarity/organisations/solidarity-projects_en"},{name:"European Solidarity Corps â Volunteering Projects",provider:"European Union · European Solidarity Corps",kind:"Grant",amount:"Unit-cost grant",amountMaxK:100,volume:3,fit:3,ease:2,burden:4,status:"Annual",rationale:"Can support structured European volunteering around academies, community projects or alumni initiatives.",condition:"Requires a Quality Label and compliant volunteer roles; it cannot substitute for paid operational staff.",source:"https://youth.europa.eu/solidarity/organisations/volunteering-projects_en"},{name:"CERV European Remembrance",provider:"European Union · CERV",kind:"Grant",amount:"Typically â¬50kââ¬200k+",amountMaxK:200,volume:4,fit:4,ease:2,burden:4,status:"Annual",rationale:"Good route for an academy or public programme connecting European memory, democracy and contemporary civic resilience.",condition:"Needs a precise historical theme, transnational partnership and substantial public dissemination.",source:"https://citizens-equality-rights-values.campaign.europa.eu/european-remembrance_en"},{name:"CERV Town Twinning",provider:"European Union · CERV",kind:"Grant",amount:"Lump-sum grant",amountMaxK:50,volume:2,fit:3,ease:3,burden:3,status:"Annual",rationale:"Could support a focused cross-border civic event if EAF works with municipalities hosting its academies.",condition:"A municipality or eligible twinning structure must anchor the application and citizen exchange.",source:"https://citizens-equality-rights-values.campaign.europa.eu/town-twinning_en"},{name:"CERV Networks of Towns",provider:"European Union · CERV",kind:"Grant",amount:"Typically â¬100kââ¬500k",amountMaxK:500,volume:5,fit:3,ease:1,burden:5,status:"Annual",rationale:"Potential scale route for recurring civic academies linked to a durable network of European municipalities.",condition:"Municipal consortium and sustained citizen participation are central; EAF would be a programme partner.",source:"https://citizens-equality-rights-values.campaign.europa.eu/networks-towns_en"},{name:"CERV Union Values",provider:"European Union · CERV",kind:"Grant",amount:"Regranting / operating support",amountMaxK:500,volume:5,fit:4,ease:1,burden:5,status:"Next call",rationale:"Highly aligned with civil-society capacity, rule of law, democracy and EU values.",condition:"Often implemented through large intermediaries or framework partnerships; monitor for accessible regranting calls.",source:"https://citizens-equality-rights-values.campaign.europa.eu/union-values_en"},{name:"CERV Rights of the Child and Childrenâs Participation",provider:"European Union · CERV",kind:"Grant",amount:"Typically â¬100kââ¬500k+",amountMaxK:500,volume:5,fit:3,ease:1,burden:5,status:"Next call",rationale:"Relevant for a dedicated under-18 participation programme with genuine co-design and democratic voice.",condition:"Only pursue with safeguarding capacity, child-rights expertise and a tightly matched call priority.",source:"https://citizens-equality-rights-values.campaign.europa.eu/rights-child-and-childrens-participation_en"}
984,{name:"Creative Europe â European Cooperation Projects",provider:"European Union · Creative Europe",kind:"Grant",amount:"Up to â¬200kââ¬2m",amountMaxK:2e3,volume:5,fit:2,ease:1,burden:5,status:"Annual",rationale:"High-volume option for a genuinely cultural European project combining ideas, arts and cross-border public engagement.",condition:"Needs a cultural-sector proposition and a multi-country consortium; ordinary academic programming is insufficient.",source:"https://culture.ec.europa.eu/creative-europe/creative-europe-culture/european-cooperation-projects"},{name:"Creative Europe â Culture Moves Europe Residency Hosts",provider:"European Union · Creative Europe",kind:"Grant",amount:"Per-participant support",amountMaxK:40,volume:2,fit:2,ease:3,burden:2,status:"Annual",rationale:"Could support an interdisciplinary artist or cultural-professional residency attached to an EAF academy.",condition:"Only relevant when the activity is genuinely artistic or cultural and satisfies the current host-call rules.",source:"https://culture.ec.europa.eu/creative-europe/creative-europe-culture/culture-moves-europe"},{name:"bpb Model Project Funding",provider:"Germany · Federal Agency for Civic Education",kind:"Grant",amount:"Project-based",amountMaxK:100,volume:3,fit:5,ease:3,burden:3,status:"Annual",rationale:"Excellent German public route for innovative political education and democratic participation formats.",condition:"Requires a clearly defined civic-education model, German relevance and compliance with each funding call.",source:"https://www.bpb.de/die-bpb/foerderung/"},{name:"Federal Programme âDemokratie leben!â",provider:"Germany · Federal Ministry for Education, Family, Seniors, Women and Youth",kind:"Grant",amount:"Programme-dependent",amountMaxK:200,volume:4,fit:5,ease:1,burden:5,status:"Next call",rationale:"Strong fit for democracy education, diversity and prevention work with young people in Germany.",condition:"Mostly programme- or call-bound, with demanding public-grant compliance and a substantive German delivery footprint.",source:"https://www.demokratie-leben.de/das-programm/foerderung"},{name:"GermanâFrench Youth Office Project Funding",provider:"Germany · France · DFJW/OFAJ",kind:"Grant",amount:"Unit-cost / project grant",amountMaxK:50,volume:2,fit:5,ease:4,burden:2,status:"Annual",rationale:"Highly practical funding for bilateral or trilateral youth encounters, training and civic projects.",condition:"Needs an eligible German-French partnership and compliance with programme-specific participant and format rules.",source:"https://www.dfjw.org/programme-aus-und-fortbildungen"},{name:"GermanâPolish Youth Office Project Funding",provider:"Germany · Poland · DPJW/PNWM",kind:"Grant",amount:"Unit-cost / project grant",amountMaxK:40,volume:2,fit:5,ease:4,burden:2,status:"Annual",rationale:"Acce
984ssible support for German-Polish youth encounters, seminars and trilateral exchange.",condition:"Requires eligible partner organisations and meaningful German-Polish participation.",source:"https://dpjw.org/projektfoerderung/"},{name:"Visegrad Fund â Visegrad Grants",provider:"Czechia · Hungary · Poland · Slovakia",kind:"Grant",amount:"Typically up to â¬50k",amountMaxK:50,volume:2,fit:4,ease:3,burden:3,status:"Annual",rationale:"Good regional route for an EAF project connecting academic talent, civic engagement and V4 partners.",condition:"Needs meaningful participation from at least three V4 countries and a clear regional benefit.",source:"https://www.visegradfund.org/apply/grants/visegrad-grants/"},{name:"Visegrad Fund â Strategic Grants",provider:"Czechia · Hungary · Poland · Slovakia",kind:"Grant",amount:"Typically up to â¬100k+",amountMaxK:100,volume:3,fit:4,ease:2,burden:4,status:"Annual",rationale:"Larger regional route when EAF can address an annual V4 strategic priority with a durable network.",condition:"All four V4 countries normally need representation and the proposal must match a current strategic objective.",source:"https://www.visegradfund.org/apply/grants/strategic-grants/"},{name:"EESC Civil Society Prize",provider:"European Economic and Social Committee",kind:"Award",amount:"Share of â¬50k",amountMaxK:50,volume:2,fit:4,ease:4,burden:1,status:"Annual",rationale:"Credible EU-level recognition for impactful civil-society initiatives matching the editionâs theme.",condition:"Theme changes by edition; apply only where an existing EAF project is a direct match.",source:"https://www.eesc.europa.eu/en/initiatives/civil-society-prize"},{name:"SALTO Awards",provider:"SALTO Resource Centres · Erasmus+",kind:"Award",amount:"Recognition · no cash grant",amountMaxK:0,volume:1,fit:4,ease:5,burden:1,status:"Annual",rationale:"Low-burden visibility for a strong youth project in participation, inclusion, digital transformation or sustainability.",condition:"Recognition rather than financing; best used after a demonstrably successful programme cycle.",source:"https://saltoawards.eu/"},{name:"Erasmus+ Accredited Youth Mobility Projects",provider:"European Union · Erasmus+",kind:"Grant",amount:"Annual mobility allocation",amountMaxK:150,volume:4,fit:5,ease:4,burden:3,status:"Annual",rationale:"Best long-term Erasmus route if EAF plans recurring youth exchanges and youth-worker mobility rather than one-off projects.",condition:"EAF must first obtain youth accreditation with a credible multi-year Erasmus plan and quality-management processes.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/accreditation-youth"},{name:"Erasmus+ European Partnerships for School Development",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬400k lump sum",amountMaxK:400,volume:5,fit:4,ease:1,burden:5,status:"Annual",rationale:"New high-volume route for innovative learning, EU values, active citizenship and cross-border school cooperation.",condition:"Must be led by a school authority or coordination body and include at least six organisations across two countries.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/school-development-partnerships"},{name:"Erasmus+ Not-for-profit European Sport Events",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬200kââ¬450k",amountMaxK:450,volume:5,fit:2,ease:1,burden:5,status:"Annual",rationale:"Possible route for a European inclusion, volunteering or healthy-lifestyles event with academic side programming.",condition:"Sport must be the prevailing objective, with three to ten-plus country partners depending on the event type.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/sport"},{name:"Erasmus+ Mobility of Staff in Sport",provider:"European Union · Erasmus+",kind:"Grant",amount:"Unit-cost grant",amountMaxK:30,volume:2,fit:2,ease:4,burden:2,status:"Annual",rationale:"Acce
984ssible mobility funding if EAF develops a genuine grassroots-sport strand linked to inclusion and active citizenship.",condition:"Participants must work with a sport organisation; the action funds job-shadowing or assignments, not courses or athletes.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-1/sports-staff"},{name:"Erasmus+ Capacity Building in Sport",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬200k",amountMaxK:200,volume:4,fit:2,ease:1,burden:5,status:"Annual",rationale:"Could support values, social inclusion and civil-society capacity through partners in the Western Balkans or Eastern Neighbourhood.",condition:"Requires at least four sport-active organisations across three countries, with substantial third-country participation.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/capacity-building-sport"},{name:"Erasmus+ Alliances for Innovation",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬1mââ¬4m",amountMaxK:4e3,volume:5,fit:2,ease:1,burden:5,status:"Annual",rationale:"Large consortium route if EAF contributes talent development, entrepreneurship or advanced-skills programming.",condition:"Requires major higher-education, VET and labour-market partners; EAF is plausible only as a specialist consortium member.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/alliances-innovation"},{name:"Erasmus+ Centres of Vocational Excellence",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬4m",amountMaxK:4e3,volume:5,fit:1,ease:1,burden:5,status:"Annual",rationale:"A potential partner-only route for ambitious skills ecosystems where EAF supplies mentoring or high-talent enrichment.",condition:"VET excellence and labour-market systems are central; this is not suitable for EAFâs general fellowship on its own.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/centres-vocational-excellence"},{name:"Erasmus+ Jean Monnet Modules",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬35k",amountMaxK:35,volume:2,fit:4,ease:2,burden:3,status:"Annual",rationale:"University-led route for a compact teaching programme on European integration, democracy or EU policy.",condition:"An eligible higher-education institution must apply; EAF could contribute speakers, fellows and dissemination.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/higher-education/teaching-research"},{name:"Erasmus+ Jean Monnet Chairs",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬60k",amountMaxK:60,volume:3,fit:3,ease:1,burden:4,status:"Annual",rationale:"Useful partnership route around a professor leading sustained EU-focused teaching and public engagement.",condition:"The grant is attached to a higher-education institution and a qualifying chair holder, not to EAF directly.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/higher-education/teaching-research"},{name:"Erasmus+ Jean Monnet Centres of Excellence",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬100k",amountMaxK:100,volume:3,fit:3,ease:1,burden:5,status:"Annual",rationale:"Could anchor a university partnership combining EU research, teaching, convening and civil-society outreach.",condition:"Must be led and housed by a higher-education institution with a mature multidisciplinary EU-studies base.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/jean-monnet-actions/higher-education/teaching-research"},{name:"Erasmus Mundus Design Measures",provider:"European Union · Erasmus+",kind:"Grant",amount:"â¬60k",amountMaxK:60,volume:3,fit:1,ease:1,burden:4,status:"Annual",rationale:"Partner-only possibility if universities design a joint European masterâs programme connected to EAFâs network.",condition:"Higher-education institutions lead; the output must be a fully developed joint masterâs programme.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/erasmus-mundus"},{name:"Erasmus+ Capacity Building in Higher Education",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬400kââ¬1m",amountMaxK:1e3,volume:5,fit:2,ease:1,burden:5,status:"Annual",rationale:"Partner-only route for higher-education reform, inclusion and international cooperation with eligible non-associated countries.",condition:"Higher-education institutions and eligible regional consortia must lead; EAF needs a specific capacity-building role.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/capacity-building-higher-education"},{name:"Erasmus+ Capacity Building in VET",provider:"European Union · Erasmus+",kind:"Grant",amount:"Up to â¬500k",amountMaxK:500,volume:5,fit:2,ease:1,burden:5,status:"Annual",rationale:"Could support talent, mentoring and transferable-skills work inside a wider vocational-education partnership.",condition:"Requires VET-centred partners across programme and eligible third countries;
984 EAF cannot credibly lead without that infrastructure.",source:"https://erasmus-plus.ec.europa.eu/programme-guide/part-b/key-action-2/capacity-building-vet"},{name:"Erasmus+ European Universities",provider:"European Union · Erasmus+",kind:"Grant",amount:"Multi-million-euro alliance",amountMaxK:1e4,volume:5,fit:2,ease:1,burden:5,status:"Next call",rationale:"A strategic partner route where an existing university alliance wants a civil-society talent, mentoring or civic-engagement component.",condition:"University alliances lead at very large scale; EAF should approach funded alliances, not attempt to coordinate a bid.",source:"https://education.ec.europa.eu/education-levels/higher-education/european-universities-initiative"}],publicFundingScore=e=>(e.volume+e.fit+e.ease+(6-e.burden))/4,deadlineByName={"Horizon Europe â Democracy and Governance":"23 Sep 2026","Council of Europe â Living and Building Democracy":"1 Sep 2026 · 23:59 CEST","Council of Europe â Youth Cooperation with Ukraine":"1 Sep 2026 · 23:59 CEST","Erasmus+ Small-scale Partnerships in Youth":"1 Oct 2026 · optional national round","Erasmus+ Cooperation Partnerships in Youth":"1 Oct 2026 · optional national round","Erasmus+ Youth Participation Activities":"1 Oct 2026 · 12:00 Brussels","European Youth Together":"26 Feb 2026 · closed","CERV Citizensâ Engagement and Participation":"2027 call · date TBA","European Youth Foundation â International Activity":"1 Oct 2026","European Youth Foundation â Annual Work Plan":"1 Oct 2026","European Charlemagne Youth Prize":"2027 edition · date TBA","European Citizenâs Prize":"Next nominations · date TBA","Erasmus+ Youth Exchanges":"1 Oct 2026 · 12:00 Brussels","Erasmus+ Mobility of Youth Workers":"1 Oct 2026 · 12:00 Brussels","Erasmus+ DiscoverEU Inclusion Action":"12 Feb 2026 · closed","Erasmus+ Virtual Exchanges":"26 Mar 2026 · closed","Erasmus+ Capacity Building in Youth":"26 Feb 2026 · closed","Erasmus+ Cooperation Partnerships in Adult Education":"1 Oct 2026 · optional national round","Erasmus+ Small-scale Partnerships in Adult Education":"1 Oct 2026 · optional national round","Erasmus+ Jean Monnet Learning EU Initiatives":"3 Feb 2026 · closed","Erasmus+ Jean Monnet Teacher Training":"3 Feb 2026 · closed","Erasmus+ Jean Monnet Networks for Schools and VET":"3 Feb 2026 · closed","European Solidarity Corps â Solidarity Projects":"1 Oct 2026 · 12:00 Brussels","European Solidarity Corps â Volunteering Projects":"1 Oct 2026 · optional round","CERV European Remembrance":"2027 call · date TBA","CERV Town Twinning":"2027 call · date TBA","CERV Networks of Towns":"2027 call · date TBA","CERV Union Values":"Next call · date TBA","CERV Rights of the Child and Childrenâs Participation":"2027 call · date TBA","Creative Europe â European Cooperation Projects":"2027 call · date TBA","Creative Europe â Culture Moves Europe Residency Hosts":"Next call · date TBA","bpb Model Project Funding":"Call-dependent","Federal Programme âDemokratie leben!â":"Call-dependent","GermanâFrench Youth Office Project Funding":"Usually 3 months before start","GermanâPolish Youth Office Project Funding":"Usually 3 months before start","Visegrad Fund â Visegrad Grants":"1 Oct 2026 · 12:00 CET","Visegrad Fund â Strategic Grants":"1 Oct 2026 · 12:00 CET","EESC Civil Society Prize":"Next edition · date TBA","SALTO Awards":"Next edition · date TBA","Erasmus+ Accredited Youth Mobility Projects":"29 Sep 2026 · accreditation","Erasmus+ European Partnerships for School Development":"9 Apr 2026 · closed","Erasmus+ Not-for-profit European Sport Events":"5 Mar 2026 · closed","Erasmus+ Mobility of Staff in Sport":"1 Oct 2026 · optional national round","Erasmus+ Capacity Building in Sport":"5 Mar 2026 · closed","Erasmus+ Alliances for Innovation":"10 Mar 2026 · closed","Erasmus+ Centres of Vocational Excellence":"3 Sep 2026 · 17:00 Brussels","Erasmus+ Jean Monnet Modules":"3 Feb 2026 · closed","Erasmus+ Jean Monnet Chairs":"3 Feb 2026 · closed","Erasmus+ Jean Monnet Centres of Excellence":"3 Feb 2026 · closed","Erasmus Mundus De
984sign Measures":"12 Feb 2026 · closed","Erasmus+ Capacity Building in Higher Education":"10 Feb 2026 · closed","Erasmus+ Capacity Building in VET":"26 Mar 2026 · closed","Erasmus+ European Universities":"Next call · date TBA"},publicFundingDeadline=e=>deadlineByName[e.name]??"Next call · date TBA",extraFoundation=(e,s,a,c,g,et,rt,nt,st,at,it)=>({name:e,country:s,city:a,score:c,priority:c>=8.5?"Pursue now":c>=7.8?"Build route":"Monitor",route:g,ask:et,askMaxK:rt,themes:nt,fit:st,condition:at,source:it}),additionalFoundationCandidates=[extraFoundation("ERSTE Foundation","Europe-wide","Vienna",8.5,"Next call","â¬50â200k",200,["Democracy","European exchange","Education"],"Major Central and Eastern European funder of democracy, solidarity, culture and civil-society infrastructure.","Calls are thematic and regional; EAF needs a strong CEE partnership and an open window.","https://www.erstestiftung.org/en/"),extraFoundation("King Baudouin Foundation","Europe-wide","Brussels",8.4,"Next call","â¬25â150k",150,["Education","Democracy","Access"],"Large public-benefit foundation with recurring calls and European partnerships across education, citizenship and inclusion.","Most calls have tightly bounded geography or target groups; apply only through an exact call match.","https://kbs-frb.be/en/calls-projects"),extraFoundation("Porticus","Europe-wide","Amsterdam",8.2,"Conversation","â¬100â300k",300,["Education","Access","Democracy"],"International funder of education, participation and socially inclusive systems with multi-year partnership capacity.","Relationship-led and selective; approach through a warm programme introduction with evidence of systemic impact.","https://www.porticus.com/en/what-we-do/"),extraFoundation("Jacobs Foundation","Switzerland","Zürich",8.1,"Conversation","CHF 100â300k",300,["Education","Talent","Access"],"One of Europeâs strongest education funders, focused on learning and youth development at scale.","Research-led and partner-driven; EAF needs a measurable learning proposition rather than general fellowship support.","https://jacobsfoundation.org/activity/"),extraFoundation("Fondation Botnar","Switzerland","Basel",7.8,"Next call","CHF 100â300k",300,["Education","Talent","Access"],"Funds young peopleâs wellbeing and digital participation through city-based systems and innovation.","Health and wellbeing must be substantive; a generic academic-excellence case will not qualify.","https://www.fondationbotnar.org/what-we-do/"),extraFoundation("VELUX FONDEN","Europe-wide","Copenhagen",7.9,"Local partner","â¬50â200k",200,["Democracy","Education","Access"],"Supports democratic participation, active citizenship and social initiatives with strong institutional capacity.","Primarily Danish-facing; requires a meaningful Danish applicant or implementation route.","https://veluxfonden.dk/en"),extraFoundation("Calouste Gulbenkian Foundation","Europe-wide","Lisbon",8.3,"Next call","â¬50â250k",250,["Education","European exchange","Talent"],"Major European foundation spanning education, culture, science and civic participation.","Open calls vary sharply by programme and geography; a Portuguese or cultural strand materially improves fit.","https://gulbenkian.pt/en/grants-list/"),extraFoundation("Open Society Foundations","Europe-wide","Europe",8,"Conversation","â¬100â300k",300,["Democracy","Access","Education"],"Deep alignment on open society, rights, democratic resilience and inclusive participation.","Most grantmaking is strategic and invitation-led; pursue only through a programme relationship.","https://www.opensocietyfoundations.org/grants"),extraFoundation("European Climate Foundation","Europe-wide","The Hague",7.5,"Conversation","â¬100â300k",300,["Democracy","Education","European exchange"],"Potential fit for a European youth leadership programme explicitly focused on climate governance and just transition.","Climate must be the core outcome, not a secondary academy topic; funding is largely partner-led.","https://europeanclimate.org/"),extraFoundation("IKEA Foundation","Europe-wide","Leiden",7.4,"Conversation","â¬250k+",500,["Access","Education","Talent"],"Large-scale funder of opportunity, livelihoods and climate-related systems affecting young people.","Very large, invitation-led partnerships; only relevant through a mature coalition with direct livelihood outcomes.","https://ikeafoundation.org/what-we-fund/"),extraFoundation("Oak Foundation","Europe-wide","Geneva",7.8,"Conversation","â¬100â300k",300,["Access","Education","Democracy"],"International foundation with substantial capacity across learning differences, rights and s
984ocial justice.","Programme fit must be exact and most relationships are cultivated rather than open-call driven.","https://oakfnd.org/programmes/"),extraFoundation("Fondation Leventis","Europe-wide","Geneva",7.6,"Conversation","â¬25â100k",100,["Education","Talent","European exchange"],"Supports education, culture and young people with European and Mediterranean links.","Needs a programme-specific introduction and a demonstrable geographic or cultural connection.","https://www.leventisfoundation.org/"),extraFoundation("Aga Khan Foundation","Europe-wide","Geneva",7.4,"Conversation","â¬100â300k",300,["Education","Access","Talent"],"Large education and civil-society funder with strong youth-development expertise.","Geographic priorities centre lower-income regions; EAF would need an eligible cross-regional partnership.","https://akf.org/our-work/education/"),extraFoundation("Bertelsmann Stiftung","Germany","Gütersloh",8,"Conversation","â¬75â200k",200,["Democracy","Education","Talent"],"Runs major programmes on democracy, social cohesion, education and Europe.","Operational foundation with limited unsolicited funding; pitch a research, convening or implementation partnership.","https://www.bertelsmann-stiftung.de/en/our-projects"),extraFoundation("VolkswagenStiftung","Germany","Hannover",7.7,"Next call","â¬100â500k",500,["Talent","Education","Democracy"],"Very high-capacity funder for research, academic systems and science-society dialogue.","Usually requires an eligible research institution and a current academic call; EAF is a consortium partner.","https://www.volkswagenstiftung.de/en/funding"),extraFoundation("Joachim Herz Stiftung","Germany","Hamburg",8,"Conversation","â¬50â200k",200,["Education","Talent","Access"],"Strong adjacent portfolio in economics, science education, talent and opportunity.","Primarily develops strategic partnerships; lead with a defined German education pilot and evaluation.","https://www.joachim-herz-stiftung.de/en/what-we-do"),extraFoundation("Deutsche Telekom Stiftung","Germany","Bonn",7.9,"Conversation","â¬50â200k",200,["Education","Talent","Access"],"Major STEM and digital-education foundation with a strong future-skills orientation.","EAF needs a scalable STEM or digital-learning strand with German education partners.","https://www.telekom-stiftung.de/en"),extraFoundation("Schwarzkopf Foundation Young Europe","Germany","Berlin",8.5,"Conversation","â¬25â100k",100,["European exchange","Democracy","Talent"],"Exceptionally close mission fit around young Europeans, political education, democracy and cross-border networks.","More natural as a co-programme or nomination partner than a conventional unrestricted funder.","https://schwarzkopf-stiftung.de/en/"),extraFoundation("Foundation Remembrance, Responsibility and Future (EVZ)","Germany","Berlin",8.3,"Next call","â¬50â200k",200,["Democracy","Education","European exchange"],"Open-call funder of historical-political education, democracy, rights and European remembrance.","Projects must match a live call and foreground remembrance, discrimination or democratic resilience.","https://www.stiftung-evz.de/en/what-we-support/"),extraFoundation("Gemeinnützige Hertie-Stiftung","Germany","Frankfurt",8.1,"Conversation","â¬50â200k",200,["Democracy","Talent","Education"],"Strong fit through democracy, public leadership, talent development and European policy networks.","Operational and relationship-led; seek a co-designed leadership or democracy strand.","https://www.ghst.de/en/"),extraFoundation("Vodafone Foundation Germany","Germany","Düsseldorf",7.8,"Conversation","â¬50â150k",150,["Education","Democracy","Access"],"Digital education, media literacy and youth participation offer a credible partnership route.","Needs a technology-enabled German programme with measurable reach and inclusion.","https://www.vodafone-stiftung.de/"),extraFoundation("Nando and Elsa Peretti Foundation","Italy","Rome",7.6,"Direct","â¬25â100k",100,["Education","Access","Democracy"],"International grantmaker supporting education, human rights and humanitarian initiatives.","Competition is broad and global;
984 proposal needs direct beneficiary impact and a tightly costed project.","https://www.nandoperettifound.org/en/page.php?project=1"),extraFoundation("Fondazione Bracco","Italy","Milan",7.7,"Conversation","â¬25â100k",100,["Talent","Education","Access"],"Supports young talent, scientific culture, education and womenâs empowerment.","Best fit is an Italian STEM or women-in-science strand with visible local delivery.","https://www.fondazionebracco.com/en/"),extraFoundation("Fundación Princesa de Girona","Spain","Girona",8,"Conversation","â¬25â100k",100,["Talent","Education","Access"],"Close mission adjacency in youth talent, leadership, education and social impact.","Likely partnership rather than open grant; establish a Spanish programme and nomination relationship.","https://www.fpdgi.org/en/"),extraFoundation("Fundación Telefónica","Spain","Madrid",7.8,"Conversation","â¬50â200k",200,["Education","Talent","Access"],"Large digital-skills and education platform with reach across Spain and Europe.","Requires a digital learning or employability proposition and a substantive Spanish delivery partner.","https://www.fundaciontelefonica.com/en/")],foundationCandidates=[...additionalFoundationCandidates,{name:"Hirschmann Foundation",country:"Switzerland",city:"Zug · Zürich",score:9.5,priority:"Pursue now",route:"Direct",ask:"CHF 75â150k",askMaxK:150,themes:["Education","European exchange","Talent"],fit:"Openly funds third-party, cross-border talent and education projects; comparable grants reach six figures.",condition:"A Swiss organisation is preferred, but not mandatory.",source:"https://www.hirschmann-stiftung.ch/en/sponsorship/"},{name:"Ria & Arthur Dietschweiler Stiftung",country:"Switzerland",city:"St. Gallen",score:9.4,priority:"Pursue now",route:"Direct",ask:"CHF 75â150k",askMaxK:150,themes:["Education","Talent","Democracy"],fit:"Explicit gifted-youth remit, live application route and a record of large, multi-year education grants.",condition:"Needs a substantive St. Gallen or Eastern Switzerland node.",source:"https://dietschweiler-stiftung.ch/bildung/"},{name:"Palatin Stiftung",country:"Switzerland",city:"Basel",score:9.3,priority:"Pursue now",route:"Direct",ask:"CHF 60â100k",askMaxK:100,themes:["Democracy","Education","Talent"],fit:"An unusually exact match for critical thinking, responsibility and youth participation in an open society.",condition:"Lead with a Swiss implementation pilot, credible reach and external evaluation.",source:"https://www.palatin.ch/foerderung/"},{name:"Fondation Leenaards",country:"Switzerland",city:"Lausanne",score:9,priority:"Pursue now",route:"Local partner",ask:"CHF 100â150k",askMaxK:150,themes:["Democracy","European exchange","Talent"],fit:"Open, year-round democracy program with project, structural and multi-year structural support.",condition:"Requires an authentic Swiss democracy strand and ideally a Swiss co-applicant.",source:"https://leenaards.ch/criteres/domaine-medias-democratie/"},{name:"Johann Wolfgang von Goethe-Stiftung",country:"Switzerland",city:"Basel",score:8.9,priority:"Pursue now",route:"Direct",ask:"CHF 30â60k",askMaxK:60,themes:["European exchange","Education","Talent"],fit:"Explicitly supports European unity, young people, cross-border work and long-term projects.",condition:"The project must originate in or benefit the three-country Regio Basiliensis.",source:"https://www.goethestiftungbasel.ch/foerderantrag/"},{name:"Schweizerische Gemeinnützige Gesellschaft",country:"Switzerland",city:"Zürich",score:8.8,priority:"Pursue now",route:"Direct",ask:"CHF 40â50k",askMaxK:50,themes:["Democracy","Education","Talent"],fit:"Open project funding for social cohesion, active civil society and a vibrant democratic culture.",condition:"Foreground nationwide Swiss relevance and EAF's volunteer mentor network.",source:"https://sgg-ssup.ch/gesuche/unterstuetzte-projekte/"},{name:"Movetia",country:"Switzerland",city:"Bern",score:8.8,priority:"Build route",route:"Local partner",ask:"CHF 100â150k",askMaxK:150,themes:["European exchange","Education","Democracy"],fit:"Near-purpose-built funding for Swiss-led European education cooperation, including future and political skills.",condition:"A Swiss education or youth-work organisation must lead and produce reusable system benefits.",source:"https://moveti
984a.ch/de/foerderangebote/internationale-kooperationen-fuer-zusammenarbeit-und-innovation/kooperationen-mit-schweizer-leitung"},{name:"Gebert Rüf Stiftung",country:"Switzerland",city:"Basel",score:8.8,priority:"Build route",route:"Local partner",ask:"CHF 75â100k",askMaxK:100,themes:["Education","Democracy","Talent"],fit:"Education Pioneers explicitly funds critical thinking, collaboration and scalable future-skills models.",condition:"A Swiss public-school teacher or leader must direct the project.",source:"https://www.grstiftung.ch/de/handlungsfelder/education_pioneers.html"},{name:"Veronika & Hugo Bohny Stiftung",country:"Switzerland",city:"Switzerland",score:8.7,priority:"Pursue now",route:"Local partner",ask:"CHF 50â100k",askMaxK:100,themes:["Democracy","Talent","European exchange"],fit:"Open to applications, prefers larger and multi-year work, and has relevant youth-politics grantees.",condition:"Apply through a genuinely Swiss-local project, not a nominal wrapper.",source:"https://vhbstiftung.ch/gesuchsformular/"},{name:"Dätwyler Stiftung",country:"Switzerland",city:"Altdorf · Uri",score:8.7,priority:"Build route",route:"Local partner",ask:"CHF 50â100k",askMaxK:100,themes:["Education","Talent","Democracy"],fit:"Transparent CHF 10k+ application route, high approval volume and a preference for larger sustainable projects.",condition:"Needs substantive delivery and relationships in Uri or Central Switzerland.",source:"https://www.daetwyler-stiftung.ch/foerderung/ihr-gesuch/"},{name:"Fondation Philanthropique Famille Sandoz",country:"Switzerland",city:"Pully",score:8.6,priority:"Build route",route:"Local partner",ask:"CHF 40â100k",askMaxK:100,themes:["Education","Talent","Access"],fit:"Open application process, substantial education portfolio and evidence of meaningful external awards.",condition:"Requires a Romandy applicant and durable delivery in French-speaking Switzerland.",source:"https://www.fpfs.ch/pages/deposer-une-demande"},{name:"Stiftung Mercator Schweiz",country:"Switzerland",city:"Zürich",score:8.5,priority:"Build route",route:"Local partner",ask:"CHF 150â250k",askMaxK:250,themes:["Democracy","Education","European exchange"],fit:"Invites outside project ideas and has a proven CHF 100â500k annual grant band.",condition:"A Swiss anchor and clear systems contribution are essential.",source:"https://mut.stiftung-mercator.ch/1"},{name:"Vontobel Stiftung",country:"Switzerland",city:"Zürich",score:8.5,priority:"Build route",route:"Local partner",ask:"CHF 50â100k",askMaxK:100,themes:["Democracy","Education","Talent"],fit:"Year-round requests, multi-year core funding and a strong democracy, mentoring and media-literacy record.",condition:"The organisational applicant must be a charitable Swiss institution.",source:"https://www.vontobel-stiftung.ch/de-ch/ihr-gesuch/"},{name:"Sophie und Karl Binding Stiftung",country:"Switzerland",city:"Basel",score:8.3,priority:"Pursue now",route:"Local partner",ask:"CHF 25â40k",askMaxK:40,themes:["Education","European exchange","Talent"],fit:"Application-led funder behind a close analogue: outstanding students crossing Swiss language borders.",condition:"Pitch a Swiss multilingual-cohesion module with a Swiss applicant.",source:"https://www.binding-stiftung.ch/"},{name:"Democracy Foundation Basel",country:"Switzerland",city:"Basel",score:8,priority:"Pursue now",route:"Direct",ask:"CHF 20k",askMaxK:20,themes:["Democracy","Talent"],fit:"A clean, live youth-and-democracy application with a record of project and structural grants.",condition:"The cheque is capped and democracy must be explicit.",source:"https://www.democracyfoundationbasel.org/en/fonds-jugend-und-demokratie"},{name:"Volkart Stiftung",country:"Switzerland",city:"Winterthur",score:8,priority:"Build route",route:"Local partner",ask:"CHF 40â75k",askMaxK:75,themes:["Access","Education","Democracy"],fit:"Funds education access, participation and democracy, including high-performing youth from modest backgrounds.",condition:"EAF needs an authentic access mechanism, not an elite-only proposition.",source:"https://www.volkart.ch/de/foerderantrag/"},{name:"Grütli Stiftung",country:"Switzerland",city:"Zürich",score:8,priority:"Pursue now",route:"Direct",ask:"CHF 10â25k",askMaxK:25,themes:["Education","Democracy","Talent"],fit:"Small, approachable Swiss seed funder with an open application route.",condition:"Best used for a bounded Swiss pilot or access costs.",source:"https://www.gruetli-stiftung.ch/"},{name:"Fondation Evolution GEunesse",country:"Switzerland",city:"Geneva",
984score:8,priority:"Build route",route:"Local partner",ask:"CHF 10â30k",askMaxK:30,themes:["Talent","Education","Access"],fit:"An exact talented-youth mission with quarterly decisions and support for organisations.",condition:"Geneva beneficiaries are required; capacity is not publicly proven.",source:"https://fege.ch/deposer-une-demande/"},{name:"Hasler Stiftung",country:"Switzerland",city:"Bern",score:8,priority:"Build route",route:"Local partner",ask:"CHF 40â50k",askMaxK:50,themes:["Education","Democracy","Talent"],fit:"Highly transparent open funding and proven large-scale support for digital-democracy consortia.",condition:"ICT, AI or digital public life must be genuinely central to the program.",source:"https://haslerstiftung.ch/die-fordertatigkeit-der-hasler-stiftung/freie-forderung/kleinprojekte-gesuchssumme-bis-chf-50000/"},{name:"Fondation Hans Wilsdorf",country:"Switzerland",city:"Geneva",score:7.6,priority:"Build route",route:"Local partner",ask:"CHF 50â100k",askMaxK:100,themes:["Education","Talent"],fit:"Openly accepts institutional requests and has substantial education and training capacity.",condition:"Intensely local: a meaningful Geneva partner and continuing local cohort are required.",source:"https://hanswilsdorf.ch/"},{name:"Paul Schiller Stiftung",country:"Switzerland",city:"Zürich",score:7.4,priority:"Build route",route:"Local partner",ask:"CHF 20â40k",askMaxK:40,themes:["Education","Democracy","Access"],fit:"Processes hundreds of outside requests and has relevant political-education and youth/media awards.",condition:"Position as a Swiss educational-impact co-funder, not a Europe-wide anchor.",source:"https://paul-schiller-stiftung.ch/"},{name:"ZEIT STIFTUNG BUCERIUS",country:"Germany",city:"Hamburg",score:9.2,priority:"Pursue now",route:"Direct",ask:"â¬150â250k",askMaxK:250,themes:["Democracy","European exchange","Talent"],fit:"Open outside funding in democracy, Europe and political awareness, with large multi-year awards.",condition:"Show complementarity to its own young-leader and summer-school programs.",source:"https://zeit-stiftung.de/themen/foerderrichtlinien/"},{name:"Stiftung Mercator",country:"Germany",city:"Essen · Berlin",score:9,priority:"Pursue now",route:"Direct",ask:"â¬150â300k",askMaxK:300,themes:["Education","Democracy","European exchange"],fit:"Roughly 80% external projects, year-round concept notes and routine six-figure grants.",condition:"Needs systems change, evaluation and meaningful German relevance.",source:"https://www.stiftung-mercator.de/de/wie-wir-foerdern/informationen-fuer-antragstellende/"},{name:"Allianz Foundation",country:"Germany",city:"Berlin",score:8.7,priority:"Monitor",route:"Next call",ask:"â¬120â180k",askMaxK:180,themes:["Democracy","European exchange","Talent"],fit:"European civil-society grants with a published â¬80â200k band.",condition:"The proposal must show civic-democratic action; wait for the next verified call.",source:"https://allianzfoundation.org/grants-program-2025/"},{name:"Karg-Stiftung",country:"Germany",city:"Frankfurt",score:8.7,priority:"Build route",route:"Conversation",ask:"â¬100â250k",askMaxK:250,themes:["Talent","Education","Access"],fit:"Germany's specialist gifted-youth foundation, with explicit outside model-project funding and six-figure capacity.",condition:"Co-develop a German school-system model for responsible gifted education.",source:"https://karg-stiftung.de/programme/karg-modellprojekte/"},{name:"Heidehof Stiftung",country:"Germany",city:"Stuttgart",score:8.6,priority:"Pursue now",route:"Direct",ask:"â¬75â150k",askMaxK:150,themes:["Democracy","Education","Talent"],fit:"Open pre-enquiry, no ceiling and exact criteria around debate, responsibility, exchange and participation.",condition:"Apply through EAF's German entity with observable German democratic participation.",source:"https://www.heidehof-stiftung.de/voranfrage/formular"},{name:"Baden-Württemberg Stiftung",country:"Germany",city:"Stuttgart",score:8.6,priority:"Pursue now",route:"Local partner",ask:"â¬25k",askMaxK:25,themes:["Democracy","Education","Talent"],fit:"A live youth-democracy program with finance, qualification, advice and peer exchange.",condition:"Needs a regional youth-work lead and at least three participating groups.",source:"https://www.bwstiftung.de/de/programm/wir-sind-dabei"},{name:"Harald Christ Stiftung",country:"Germany",city:"Berlin",score:8.5,priority:"Pursue now",route:"Direct",ask:"â¬100â250k",askMaxK:250,themes:["Democracy","European exchange","Education"],fit:"Open applications, democracy-and-diversity purpose and demonstrated capacity for major partnerships.",condition:"Frame a concrete democracy proposition, not a generic excellence program.",source:"https://www.demokratie-vielfalt.org/foerderung"},{name:"Ferry-Porsche-Stiftung",country:"Germany",city:"Stuttgart · Leipzig",score:8.5,priority:"Build route",route:"Direct",ask:"â¬50â100k",askMaxK:100,themes:["Education","Access","Democracy"],fit:"Open mentoring and opportunity route with meaningful grant prizes and democracy/cohesion evidence.",condition:"Delivery should sit near a Porsche location and include access for disadvantaged youth.",source:"https://ferry-porsche-stiftung.de/foerderprozess"},{name:"Stiftung Jugendaustausch Bayern",country:"Germany",city:"München",score:8.4,priority:"Build route",route:"Local partner",ask:"â¬40â75k",askMaxK:75,themes:["European exchange","Education","Access"],fit:"An exact international-youth-exchange funder actively supporting outside civil-society consortia.",condition:"A Bavarian lead must broaden access beyond already mobile, privileged students.",source:"https://jugendaustausch.bayern/wer-sind-wir/aktuelles/foerdermoeglichkeiten-fuer-schueleraustausch-jugendaustausch-fuer-mobilitaetsferne-jugendliche/"},{name:"Beisheim Stiftung Deutschland",country:"Germany",city:"München",score:8.2,priority:"Pursue now",route:"Direct",ask:"â¬75â150k",askMaxK:150,themes:["Education","Talent","Access"],fit:"Open grantmaking with a strong mentoring, talent and educational-opportunity portfolio.",condition:"Funds only projects implemented in Germany.",s
984ource:"https://www.beisheim-stiftung.com/de/de/foerderung-faq"},{name:"Deutsche Stiftung für Engagement und Ehrenamt",country:"Germany",city:"Germany-wide",score:8.2,priority:"Monitor",route:"Next call",ask:"â¬80â100k",askMaxK:100,themes:["Democracy","Talent","Access"],fit:"Funds external charitable entities to scale social-cohesion and civic-engagement models.",condition:"The current round is closed; present EAF's mentor network as civic infrastructure.",source:"https://www.deutsche-stiftung-engagement-und-ehrenamt.de/foerderung/transformd/"},{name:"One Foundation",country:"Germany",city:"Düsseldorf",score:8,priority:"Pursue now",route:"Direct",ask:"â¬50k",askMaxK:50,themes:["Education","Democracy","Access"],fit:"Explicit education, democracy and mentoring remit; first projects commonly receive about â¬50k.",condition:"Requires a real route for exceptional young people lacking money or elite networks.",source:"https://www.one-foundation.de/en/funding/"},{name:"Fondazione Unipolis",country:"Italy",city:"Bologna · Italy-wide",score:8.4,priority:"Monitor",route:"Next call",ask:"â¬75â150k",askMaxK:150,themes:["Democracy","Education","Access"],fit:"A high-value civic-opportunity call with a track record in youth citizenship.",condition:"Prepare for the next ACT round with an eligible Italian lead.",source:"https://www.fondazioneunipolis.org/site/bando/bando-act-2026/"},{name:"Fondazione CRC",country:"Italy",city:"Cuneo",score:8.3,priority:"Monitor",route:"Next call",ask:"â¬20k",askMaxK:20,themes:["Democracy","Education","Talent"],fit:"An unusually close call around critical thinking, dialogue and active citizenship.",condition:"A Cuneo school must lead a future repeat; EAF participates as specialist partner.",source:"https://fondazionecrc.it/cosafacciamo/facciamoci-delle-domande-2/"},{name:"Fondazione Cariverona",country:"Italy",city:"Verona",score:8.2,priority:"Pursue now",route:"Local partner",ask:"â¬200â300k",askMaxK:300,themes:["Democracy","Talent","Access"],fit:"Large live funding for physical youth hubs catalysing civic participation and active citizenship.",condition:"Join a territorial consortium; a real accessible space is mandatory.",source:"https://www.fondazionecariverona.org/Iniziative/facciamo-spazio/"},{name:"Fondazione San Zeno",country:"Italy",city:"Verona",score:8.2,priority:"Pursue now",route:"Direct",ask:"â¬50â100k",askMaxK:100,themes:["Education","European exchange","Access"],fit:"Open, international education funding with no published request ceiling and proven large awards.",condition:"Make the access-and-inclusion case central.",source:"https://www.fondazionesanzeno.org/eng/proposals/intro"},{name:"Fondazione del Monte di Bologna e Ravenna",country:"Italy",city:"Bologna · Ravenna",score:8.1,priority:"Build route",route:"Local partner",ask:"â¬15â45k",askMaxK:45,themes:["Democracy","Education","European exchange"],fit:"Open contribution route and external calls with civic-education and European project evidence.",condition:"Needs a Bologna or Ravenna lead and a convincing access frame.",source:"https://fondazionedelmonte.it/chiedi-un-contributo/"},{name:"Fondazione CRT",country:"Italy",city:"Torino",score:7.9,priority:"Pursue now",route:"Local partner",ask:"â¬20â50k",askMaxK:50,themes:["Education","European exchange","Talent"],fit:"Open ordinary funding accepts unsolicited education projects and has a long European-exchange record.",condition:"The project must operate in Piemonte or Valle d'Aosta through a local entity.",source:"https://www.fondazionecrt.it/bandi-progetti/ricerca-istruz-ordinarie/"},{name:"Fondazione Compagnia di San Paolo",country:"Italy",city:"Torino",score:7.8,priority:"Build route",route:"Local partner",ask:"â¬100k+",askMaxK:150,themes:["Education","Democracy","Talent"],fit:"Major external funder with calls spanning education, critical thinking and youth.",condition:"Join a Torino education consortium; territorial logic is strong.",source:"https://www.compagniadisanpaolo.it/wp-content/uploads/CSP_Bandi-Cultura_Persone_Pianeta_-gen26.pdf"},{name:"UniCredit Foundation",country:"Italy",city:"Milan · Europe",score:7.8,priority:"Monitor",route:"Next call",ask:"â¬100â300k",askMaxK:300,themes:["Education","Talent","Access"],fit:"A â¬6m education fund with â¬100k-to-â¬1m+ grant streams across European countries.",condition:"Only credible with a pre-university access pipeline for overlooked high-potential youth.",source:"https://www.unicreditfoundation.org/en/calls-archive/2025-26-ucf-edu-fund-platform-second-edition"}
984,{name:"Fundación Banco Sabadell",country:"Spain",city:"Barcelona",score:8.7,priority:"Pursue now",route:"Local partner",ask:"â¬40â75k",askMaxK:75,themes:["Talent","Education","Democracy"],fit:"Explicitly seeks durable young-talent projects and has funded mentoring, EU talent and anti-disinformation.",condition:"A Spanish nonprofit must deliver a continuing university-age program in Spain.",source:"https://fundacionbancosabadell.com/presenta-tu-proyecto/"},{name:"Fundación Caja Navarra · Innova Navarra",country:"Spain",city:"Pamplona",score:8,priority:"Build route",route:"Local partner",ask:"â¬50â75k",askMaxK:75,themes:["Education","Democracy","Access"],fit:"A â¬3m external program with multi-year projects and published five-figure social-education awards.",condition:"Requires a Navarra-rooted consortium around access, mentoring and civic cohesion.",source:"https://www.fundacioncajanavarra.es/noticias/fundacion-caja-navarra-y-fundacion-la-caixa-presentan-la-nueva-etapa-de-innova"},{name:"Fondation Hippocrène",country:"France",city:"Paris",score:9.5,priority:"Pursue now",route:"Direct",ask:"â¬25â50k",askMaxK:50,themes:["European exchange","Education","Democracy"],fit:"The cleanest French fit: year-round outside projects at the intersection of youth, education and Europe.",condition:"Ordinary grant sizes are less transparent; start with a pilot and renewal path.",source:"https://fondationhippocrene.eu/financement-de-projets/soumettre-un-projet/"},{name:"Fondation La France s'engage",country:"France",city:"Paris",score:8.2,priority:"Build route",route:"Local partner",ask:"â¬300k",askMaxK:300,themes:["Education","Democracy","Access"],fit:"A rare â¬300k, three-year scale-up route for proven social innovation.",condition:"Requires an established eligible French vehicle or lead partner and evidence of replication.",source:"https://fondationlafrancesengage.org/le-concours/"},{name:"Fondation Financière de l'Echiquier",country:"France",city:"Paris",score:7.9,priority:"Build route",route:"Direct",ask:"â¬25â30k",askMaxK:30,themes:["Talent","Education","Access"],fit:"Open year-round and runs a close talent-plus-support analogue for high-achieving low-income students.",condition:"One-off investment funding only; use for durable French-hub infrastructure.",source:"https://www.fondation-echiquier.fr/presenter-projet/"},{name:"European Youth Foundation",country:"Europe-wide",city:"Strasbourg",score:8.1,priority:"Build route",route:"Direct",ask:"â¬25â60k",askMaxK:60,themes:["European exchange","Democracy","Education"],fit:"Foundation-adjacent but exceptionally aligned: outside youth organisations, European cooperation and democracy.",condition:"EAF must meet Council of Europe youth-organisation registration and program rules.",source:"https://www.coe.int/en/web/european-youth-foundation/calls"},{name:"Robert Bosch Stiftung",country:"Germany",city:"Stuttgart · Berlin",score:8.4,priority:"Build route",route:"Conversation",ask:"â¬100â250k",askMaxK:250,themes:["Democracy","Education","European exchange"],fit:"One of Europeâs largest foundations, with major current commitments to democracy, educational opportunity and partner-led work across Europe.",condition:"No broad unsolicited project window; develop a programme relationship or respond to a tightly matched open call.",source:"https://bosch-stiftung.de/en/foundation"},{name:"Körber-Stiftung",country:"Germany",city:"Hamburg · Berlin",score:8.1,priority:"Build route",route:"Conversation",ask:"â¬50â150k",askMaxK:150,themes:["Democracy","European exchange","Talent"],fit:"Runs highly adjacent work in democracy, Europe, history education, youth talent and international dialogue.",condition:"Predominantly develops its own programmes; position EAF as a delivery or co-convening partner rather than sending a cold grant request.",source:"https://koerber-stiftung.de/en/projects/strengthening-europe/"},{name:"European Cultural Foundation",country:"Europe-wide",city:"Amsterdam",score:8.3,priority:"Monitor",route:"Next call",ask:"â¬10â50k",askMaxK:50,themes:["Democracy","European exchange","Education"],fit:"Repeatedly funds pan-European cultural initiatives that strengthen democracy, solidarity and youth engagement.",condition:"EAF needs a genuinely cultural and imaginative public-facing action; monitor for the next relevant open call.",source:"https://culturalfoundation.eu/open-calls/culture-of-solidarity-fund/"}],foundationCountries=["Switzerland","Germany","Italy","Spain","France","Europe-wide"],foundationThemes=["Education","European exchange","Democracy","Talent","Access"],venueViableShortlistEntries=[{rank:1,venue:["Hanenbos","Belgium","Dworp, near Brussels",72,6,54,4.85,"High","https://www.hanenbos.be/en/",4,!0
984],totalCost:30874,costLabel:"â¬30,874",perPersonNight:54,travelCost:165,travelTime:5.4,transfer:"Brussels Airport · 35â45 min",status:"Conditional",caveat:"Excellent exact-date full-board offer, but the provisional option expired on 17 August; reinstatement has been requested urgently."},{rank:2,venue:["Mosteiro de Vairão","Portugal","Vila do Conde, near Porto",136,6,35,4.8,"High","https://apcc.org.pt/en/group-accommodation/mosteiro-de-vairao-2/",5,!0],totalCost:20280,costLabel:"â¬20,280",perPersonNight:35,travelCost:165,travelTime:6.5,transfer:"Porto Airport · 20â25 min",status:"Conditional",caveat:"Exact nonprofit quote includes full board, six simultaneous seminar rooms, the plenary and exclusive dormitory sectors. There are no single rooms; nearby staff lodging and daily transfers would be extra."},{rank:3,venue:["Metropol Lake Resort","North Macedonia","Ohrid",600,6,74,4.8,"High","https://metropol-ohrid.com.mk/hotel-metropol/",5,!0],totalCost:42340,costLabel:"â¬42,340",perPersonNight:74,travelCost:225,travelTime:8.4,transfer:"Ohrid Airport · 20 min; Skopje · about 2h45",status:"Confirmed",caveat:"Corrected exact-date total includes full board, 30 twins, ten paid singles, two complimentary singles, a plenary and five seminar rooms. Europe-wide access is the main weakness."},{rank:2,venue:["Park Hotel Moskva","Bulgaria","Sofia",300,7,71,4.55,"High","https://parkhotelmoskva.net/en/conference-rooms/",2,!0],totalCost:40992,costLabel:"~â¬41,000",perPersonNight:71,travelCost:175,travelTime:6.4,transfer:"Sofia Airport · 20â25 min",status:"Confirmed",caveat:"New exact-date offer: breakfast, inexpensive set lunch and dinner, a plenary and five seminar rooms; confirm that the quoted zero room hire is intentional."},{rank:3,venue:["Hotel Samokov","Bulgaria","Borovets",500,7,70,4.7,"High","https://samokov.com/congressional.html",3,!0],totalCost:40032,costLabel:"~â¬40,000",perPersonNight:70,travelCost:180,travelTime:7,transfer:"Sofia Airport · 75â90 min",status:"Confirmed",caveat:"Exact dates, full board and seven halls; estimate assumes 60 students in twins and 12 staff in singles."},{rank:4,venue:["Nelijärve Holiday Centre","Estonia","Aegviidu",268,11,72,4.75,"High","https://www.nelijarve.ee/en/events/",4,!0],totalCost:41418,costLabel:"â¬41,418",perPersonNight:72,travelCost:175,travelTime:6.7,transfer:"Tallinn Airport · 55â65 min",status:"Confirmed",caveat:"Corrected 21â29 August 2027 quotation for 72: eight nights, programmed meals, seminar rooms and equipment, VAT included."},{rank:6,venue:["Congress Centre SAV Academia","Slovakia","Stará Lesná, High Tatras",82,8,73,4.45,"High","https://www.tatry.sk/en/congress-center-sav-academia/",5,!0],totalCost:42e3,costLabel:"~â¬42,000",perPersonNight:73,travelCost:175,travelTime:7.4,transfer:"Poprad · 20 min; Kraków/KoÅ¡ice · about 2h",status:"Conditional",caveat:"Exact dates, full board and the correct residential scale at an academic High Tatras venue; written confirmation of five simultaneous seminar rooms is still needed."},{rank:5,venue:["Fraterna Domus Sacrofano","Italy","Sacrofano near Rome",500,25,60,4.4,"Low","https://fraternadomus.it/dove/sacrofano/",4,!0],totalCost:43300,costLabel:"~â¬43,300",perPersonNight:75,travelCost:155,travelTime:6.5,transfer:"Rome Fiumicino · 50â60 min",status:"Conditional",caveat:"Excellent nonprofit full-board offer; awaiting confirmation that at least five workshop rooms are available simultaneously."},{rank:6,venue:["DJH Youth Hostel Heidelberg International","Germany","Heidelberg",447,15,89,4.7,"High","https://www.jugendherberge.de/en/youth-hostels/heidelberg/",3,!0],totalCost:51442,costLabel:"â¬51,442",perPersonNight:89,travelCost:140,travelTime:5.8,transfer:"Frankfurt Airport · 60â75 min",status:"Confirmed",caveat:"Contract-ready exact-date offer for 72: full board, 12 staff singles, one 72-person hall and eight 12-person rooms; the exceptional option extension runs to 4 September 2026."},{rank:7,venue:["Centre Culturel Saint-Thomas","France","Strasbourg",176,20,97,4.6,"High","https://www.centre-st-thomas.fr/les-salles",4,!0],totalCost:55982,costLabel:"Est. â¬56,000",perPersonNight:97,travelCost:120,travelTime:4.8,transfer:"Strasbourg station · 15 min",status:"Conditional",caveat:"Rate-card estimate uses the available mix of 50 singles and 11 twins, full board and full-day room hire. Operationally strong, but EAF must accept the unusually single-heavy room plan."},{rank:7,venue:["Foresteria Santa Scolastica","Italy","Subiaco, Lazio",90,5,65,3.95,"Low","https://www.foresteria-subiaco.com/en/home-2/",5,!0],totalCost:50600,costLabel:"~â¬50,600",perPersonNight:88,travelCost:165,travelTime:7.2,transfer:"Rome airports · 75â100 min",status:"Conditional",caveat:"Beautiful monastery and â¬75 full board; the six-room simultaneous setup still needs explicit confirmation."},{rank:8,venue:["Vilnius Grand Resort","Lithuania","EžeraiÄiai near Vilnius",476,25,106,4.5,"High","https://www.govilnius.lt/meet-in-vilnius/venue-finder/vilnius-grand-resort",5,!0],totalCost:61268,costLabel:"~â¬61,300",perPersonNight:106,travelCost:145,travelTime:6,transfer:"Vilnius Airport · 30â35 min",status:"Confirmed",caveat:"Updated exact-date offer: breakfast, lunch, dinner, a plenary for 80 and five equipped seminar rooms; normalized to 30 twins plus 12 singles. The provisional option is now held until 11 September 2026."},{rank:9,venue:["Novotel Kraków City West","Poland","Kraków",610,6,107,4,"High","https://all.accor.com/hotel/3407/index.en.shtml",3,!0],totalCost:61600,costLabel:"PLN 267,044 · ~â¬61,600",perPersonNight:107,travelCost:135,travelTime:5.9,transfer:"Kraków Airport · 20â25 min",status:"Conditional",caveat:"Complete discounted quote covers 30 twins, 12 singles, five seminars, a plenary, seven lunches, dinners and coffee breaks. An extension to 11 September and confirmation of breakfast and the arrival-day meal have been requested; the contact returns on Monday."},{rank:13,venue:["Château LouÄeÅ / Maxmilian Lifestyle Resort","Czechia","LouÄeÅ, Central Bohemia",140,7,113,4.8,"High","https://www.strednicechycb.cz/en/venue/loucen-castle-and-hotel-maxmilian-lifestyle-resort/",5,!0],totalCost:65140,costLabel:"~â¬65,100",perPersonNight:113,travelCost:135,travelTime:6.2,transfer:"Prague Airport · 55â70 min",status:"Confirmed",caveat:"The corrected written quote now states 21â29 August 2027 at unchanged prices, with the correct room mix, full board, five closable salons and an orangery."},{rank:9,venue:["Burg Rothenfels Youth Hostel","Germany","Rothenfels am Main",280,15,55,4.7,"High","https://www.jugendherberge.de/jugendherbergen/burg-rothenfels/",5,!0],totalCost:null,costLabel:"Quote pending",perPersonNight:null,travelCost:145,travelTime:6,transfer:"Würzburg · 35â45 min",status:"Awaiting quote",caveat:"Exact dates and suitable rooming indicated; written full-board price and exact breakout-room plan still needed."},{rank:10,venue:["OREA Hotel Pyramida Prague","Czechia","Prague",704,12,131,4.45,"High","https://www.orea.cz/en/hotel-pyramida",3,!0],totalCost:75723,costLabel:"~â¬75,700",perPersonNight:131,travelCost:130,travelTime:5.5,transfer:"Prague Airport · 15â20 min",status:"Confirmed",caveat:"New exact-date offer with a 90-person plenary, five equipped seminar rooms and full board; total adjusts the quote to 30 twins and 12 singles."},{rank:11,venue:["Château TÅešť","Czechia","TÅešť, VysoÄina",72,7,124,4.45,"High","https://www.zamek-trest.cz/en/Conferences/",5,!0],totalCost:71200,costLabel:"~â¬71,200",perPersonNight:124,travelCost:150,travelTime:7.2,transfer:"Brno · 75 min; Prague · 1h45",status:"Confirmed",caveat:"Exact dates, 72 beds, main hall and six salons; 2027 estimate includes the venue's stated 5% catering uplift."},{rank:12,venue:["Hotel Habakuk","Slovenia","Maribor",280,7,132,4.55,"High","https://habakuk.si/en/",4,!0
984],totalCost:75883,costLabel:"~â¬75,900",perPersonNight:132,travelCost:145,travelTime:6.3,transfer:"Graz Airport · 45â55 min; Maribor station · 10 min",status:"Confirmed",caveat:"Corrected exact-date full-board offer with 30 twins, 12 singles, five breakouts and a plenary for seven meeting days; room capacities and the option extension to 4 September are confirmed."},{rank:14,venue:["Smolenice Castle","Slovakia","Smolenice",79,7,137,4.35,"High","https://smolenickyzamok.sav.sk/en/",5,!0],totalCost:69e3,costLabel:"~â¬65â73k · 7 nights",perPersonNight:137,travelCost:120,travelTime:5.9,transfer:"Bratislava · 45 min; Vienna · 75 min",status:"Conditional",caveat:"Only available 22â29 August. Excellent rooms and setting, but no meaningful August nonprofit discount."},{rank:15,venue:["Hotel Marinela Sofia","Bulgaria","Sofia",884,10,138,4.25,"High","https://hotel-marinela.com/",3,!0],totalCost:79590,costLabel:"~â¬79,600",perPersonNight:138,travelCost:175,travelTime:6.2,transfer:"Sofia Airport · 20â25 min",status:"Confirmed",caveat:"New full-board room rates already include breakfast, lunch, dinner, city tax and VAT; one plenary plus five seminar rooms are quoted for the exact dates."},{rank:16,venue:["MCC Mazurkas Conference Centre & Hotel","Poland","Ożarów Mazowiecki near Warsaw",316,35,134,4.2,"Medium","https://www.mazurkashotel.pl/en/conference-halls-page-108081",3,!0],totalCost:77300,costLabel:"Est. â¬77,300",perPersonNight:134,travelCost:155,travelTime:6.3,transfer:"Warsaw Chopin · 25â35 min",status:"Conditional",caveat:"New offer has five separate workshop rooms but was calculated for 21â27 August and a 70-person plenary; total extrapolates to the complete brief pending correction."},{rank:17,venue:["Hotel Piatra Mare","Romania","Poiana BraÈov",370,6,134,3.75,"High","https://piatramare.ro/conferinte-de-succes-la-munte-experienta-completa-la-hotel-piatra-mare/",5,!0],totalCost:76880,costLabel:"Est. â¬75â77k",perPersonNight:134,travelCost:205,travelTime:8.3,transfer:"BraÈov Airport · 35 min; Bucharest · 2h30",status:"Conditional",caveat:"Excellent rooms and mountain setting, but airport access exceeds ten hours for several representative origins."},{rank:18,venue:["DoubleTree by Hilton Åódź","Poland","Åódź",402,18,145,4.15,"High","https://www.hilton.com/en-gb/hotels/lcjdldi-doubletree-lodz/events/",3,!0],totalCost:83540,costLabel:"Est. â¬83,500",perPersonNight:145,travelCost:145,travelTime:6.4,transfer:"Åódź Airport · 15 min; Warsaw · 90 min",status:"Conditional",caveat:"Revised offer confirms a 72-person ballroom and six separate workshop rooms; estimate corrects the catering rows, which still price only 60 people."},{rank:19,venue:["Vihula Manor Country Club & Spa","Estonia","Lahemaa National Park",150,7,145,4.5,"High","https://www.vihulamanor.com/",5,!0],totalCost:83466,costLabel:"~â¬83,500",perPersonNight:145,travelCost:175,travelTime:7.1,transfer:"Tallinn Airport · 60â70 min",status:"Confirmed",caveat:"New exact-date rates for lodging, two daily buffets, a plenary and five independent rooms; estimate uses seven meeting days and eight meal days."},{rank:20,venue:["Zámek ValeÄ","Czechia","ValeÄ",300,15,151,4.65,"High","https://www.hotel-valec.cz/en/conference/",5,!0],totalCost:86971,costLabel:"~â¬87,000",perPersonNight:151,travelCost:155,travelTime:7.3,transfer:"Brno · 75â90 min; Prague · about 2h",status:"Confirmed",caveat:"Exact dates are provisionally held until 4 September 2026; normalized total includes 30 twins, 12 singles, full board, five salons and the plenary-room package."},{rank:21,venue:["Villa Aurelia Roma","Italy","Rome",190,10,149,4.1,"Medium","https://www.villaaureliaroma.com/en/",5,!0],totalCost:85700,costLabel:"~â¬85,700",perPersonNight:149,travelCost:145,travelTime:5.8,transfer:"Rome Fiumicino · 30â40 min",status:"Confirmed",caveat:"Exact dates, 72 beds, plenary and seven small rooms; beautiful central setting, but meeting hire and catering make it expensive."},{rank:22,venue:["Lielupe by Semarah Hotels","Latvia","JÅ«rmala",520,13,155,4.25,"High","https://lielupe.semarahhotels.com/en/conferences/conference-center-lieupe-in-jurmala/",3,!0],totalCost:89040,costLabel:"~â¬89,000",perPersonNight:155,travelCost:150,travelTime:6,transfer:"Riga Airport · 15â20 min",status:"Confirmed",caveat:"New exact-date offer: correct room mix, breakfast, lunch, dinner, a plenary and five seminar rooms; VAT included."},{rank:23,venue:["Qubus Hotel Kraków","Poland","Kraków",379,8,143,4.2,"High","https://www.qubushotel.com/en/conference-krakow/",4,!0],totalCost:82300,costLabel:"PLN 369,612 quoted · ~â¬82,300 normalized",perPersonNight:143,travelCost:145,travelTime:6.2,transfer:"Kraków Airport · 25â30 min",status:"Confirmed",caveat:"Final reduced quote is PLN 369,612, but it uses 36 twins, nine meeting days and nine lunches/dinners. The normalized estimate uses 30 twins, 12 singles, seven meeting days and eight meal days; the hotel has been asked to confirm the corrected brief."},{rank:24,venue:["Centrum Krystal","Czechia","Prague 6",100,9,75,4.3,"High","https://www.centrum-krystal.cz/en/",3,!1],totalCost:null,costLabel:"Partial: â¬19,908 + CZK 252,000",perPersonNight:null,travelCost:130,travelTime:5.4,transfer:"Prague Airport · 10â15 min; metro nearby",status:"Awaiting quote",caveat:"Charles University confirms exact-date availability. The calculation currently covers only seven nights, six meeting days and four seminar rooms plus the plenary; catering is still pending from its separate food-service contact."},{rank:25,venue:["Hotel SEN Senohraby","Czechia","Senohraby, near Prague",165,8,105,4.35,"High","https://www.hotelsen.cz/",4,!1],totalCost:null,costLabel:"Quote pending",perPersonNight:null,travelCost:135,travelTime:6.1,transfer:"Prague Airport · 45â60 min; suburban rail",status:"Awaiting quote",caveat:"The whole hotel and conference inventory is available for 21â29 August. It can provide the correct 30-twin/12-single mix, catering for 72, a plenary and at least five simultaneous rooms; a detailed nonprofit calculation has been requested."},{rank:26,venue:["PaÅac SulisÅaw","Poland","SulisÅaw, near WrocÅaw",220,7,85,4.7,"High","https://www.palacsulislaw.pl/",5,!0],totalCost:null,costLabel:"PLN 237,710 · incomplete 60-person quote",perPersonNight:null,travelCost:155,travelTime:7,transfer:"WrocÅaw Airport · 60â75 min",status:"Awaiting quote",caveat:"Beautiful exact-date first offer includes 30 twins, five seminar rooms, meals and drinks for 60, but omits the 12 staff beds/meals and shows the plenary for only one day. A corrected 72-person total is required."},{rank:24,venue:["Novotel Bucharest City Centre","Romania","Bucharest",516,6,163,4,"Medium","https://all.accor.com/hotel/5558/index.en.shtml",3,!0],totalCost:93600,costLabel:"Est. â¬93,600",perPersonNight:163,travelCost:175,travelTime:6.4,transfer:"Bucharest Airport · 25â35 min",status:"Conditional",caveat:"New detailed rates and five workshops; the hotel must correct a date typo, confirm 72 in the 70-seat plenary and clarify whether â¬500/day covers all five small rooms."},{rank:25,venue:["Astoria Grand Hotel","Bulgaria","Sofia",980,5,76,3.7,"Medium","https://www.astoriagrandhotel.bg/en/astoria-events/",3,!0],totalCost:92400,costLabel:"~â¬92,400",perPersonNight:160,travelCost:175,travelTime:6.4,transfer:"Sofia Airport · 20â25 min",status:"Confirmed",caveat:"Exact dates and enough halls; normalized total uses five breakouts and the least expensive room and buffet choices."},{rank:26,venue:["Sofia Hotel Balkan","Bulgaria","Sofia",368,8,166,4.15,"High","https://www.sofiabalkan.com/en",5,!0],totalCost:95600,costLabel:"~â¬95,600",perPersonNight:166,travelCost:175,travelTime:6.2,transfer:"Sofia Airport · 25â30 min",status:"Confirmed",caveat:"Revised offer now covers 72 and confirms a ballroom, a divisible conference room and up to six converted syndicate rooms; estimate uses five breakouts."},{rank:27,venue:["Centrum Konferencyjno-Szkoleniowe Ossa","Poland","Ossa",600,22,78,4.1,"Medium","https://cksossa.pl/",4,!0],totalCost:79900,costLabel:"Est. â¬80,000",perPersonNight:139,travelCost:155,travelTime:7,transfer:"Warsaw · 60â75 min",status:"Awaiting quote",caveat:"Purpose-built campus with ample rooms; estimate combines quoted lodging and halls with the lowest published lunch and dinner menus."},{rank:28,venue:["Radisson Blu Hotel & Spa Daugava Riga","Latvia","Riga",700,6,148,3.8,"High","https://www.radissonhotels.com/en-us
984/hotels/radisson-blu-riga-daugava/meeting-events",4,!0],totalCost:85e3,costLabel:"Est. â¬83â88k",perPersonNight:148,travelCost:150,travelTime:5.8,transfer:"Riga Airport · 15 min",status:"Conditional",caveat:"Very easy to reach and enough rooms, but catering is not yet fixed and the likely total is poor value."},{rank:29,venue:["Ana Hotels Sport Poiana BraÈov","Romania","Poiana BraÈov",300,11,176,4,"Medium","https://www.anahotels.ro/sport",4,!0],totalCost:101200,costLabel:"Est. â¬101,200",perPersonNight:176,travelCost:205,travelTime:8.3,transfer:"BraÈov Airport · 35 min; Bucharest · 2h30",status:"Conditional",caveat:"New rate card supports the room and meeting plan, but the accommodation line was prepared for only 30 rooms/~60 people and must be reconfirmed for 72."},{rank:30,venue:["Alpin Resort Hotel","Romania","Poiana BraÈov",600,9,176,3.9,"High","https://www.hotelalpin.ro/",4,!0],totalCost:101500,costLabel:"Est. â¬101,500",perPersonNight:176,travelCost:205,travelTime:8.3,transfer:"BraÈov Airport · 35 min; Bucharest · 2h30",status:"Confirmed",caveat:"New exact-date budget has 42 rooms, full board, a plenary and up to eight workshops; normalized estimate excludes duplicate optional coffee/open-bar packages."},{rank:31,venue:["Hotel Warszawianka","Poland","Jachranka near Warsaw",600,20,172,3.85,"Medium","https://www.warszawianka.pl/en/",4,!0],totalCost:99200,costLabel:"Est. â¬99,200",perPersonNight:172,travelCost:160,travelTime:6.8,transfer:"Warsaw Modlin · 35 min; Chopin · 60 min",status:"Conditional",caveat:"New exact-date quote has a plenary and five workshops, but prices all 72 guests in twin rooms; the 12 staff singles and resulting total need correction."},{rank:32,venue:["Radisson Blu Béke Hotel","Hungary","Budapest",494,15,180,4.2,"High","https://www.radissonhotels.com/en-us/hotels/radisson-blu-budapest",3,!0],totalCost:null,costLabel:"Quote incomplete",perPersonNight:null,travelCost:115,travelTime:5.2,transfer:"Budapest Airport · 30â40 min; Nyugati station · 5 min",status:"Awaiting quote",caveat:"Central and fully equipped, but the proposal omits accommodation, prices only 60 people and includes nine meeting days; a corrected complete quotation has been requested."},{rank:34,venue:["Palace Art Hotel Pezinok","Slovakia","Pezinok",128,7,212,4.65,"High","https://www.palacearthotel.sk/",5,!0],totalCost:121880,costLabel:"Est. â¬121,900",perPersonNight:212,travelCost:120,travelTime:5.7,transfer:"Bratislava Airport · 25â35 min; Vienna · 60â70 min",status:"Conditional",caveat:"Beautiful château with enough separate rooms, but the supplied â¬81,056 quote includes only one accommodation night; corrected eight-night total is roughly â¬121,900, before staff singles."}],venueViableShortlist=venueViableShortlistEntries.map((e,s)=>({...e,rank:s+1}));function VenueComments({venueName:e}){var st;const[s,a]=reactExports.useState(""),c=useQueryClient(),g=["venue-comments",e],et=useQuery({queryKey:g,queryFn:async()=>{if(!supabase)throw new Error("Pulse is unavailable.");const at=[];for(let it=0;;it+=1e3){const{data:ot,error:lt}=await supabase.from("venue_comments").select("id,body,created_at,author:pulse_profiles(person:people(full_name))").eq("venue_name",e).order("created_at").order("id").range(it,it+999);if(lt)throw lt;if(at.push(...ot.map(ct=>{const dt=Array.isArray(ct.author)?ct.author[0]:ct.author,ut=Array.isArray(dt==null?void 0:dt.person)?dt.person[0]:dt==null?void 0:dt.person;return{id:ct.id,body:ct.body,created_at:ct.created_at,authorName:(ut==null?void 0:ut.full_name)??"Former team member"}})),ot.length<1e3)return at}},refetchInterval:3e4}),rt=useMutation({mutationFn:async at=>{if(!supabase)throw new Error("Pulse is unavailable.");const{error:it}=await supabase.from("venue_comments").insert({venue_name:e,body:at});if(it)throw it},onSuccess:()=>{a(""),c.invalidateQueries({queryKey:g})}});function nt(at){at.preventDefault(),s.trim()&&!rt.isPending&&rt.mutate(s.trim())}return jsxRuntimeExports.jsxs("section",{className:"border-t border-border pt-6","aria-label":"Venue comments",children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl",children:"Comments"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-xs text-ink/50",children:"Share notes and discuss this venue with the team."}),et.isPending&&jsxRuntimeExports.jsx("p",{role:"status",className:"mt-4 text-sm",children:"Loading commentsâ¦"}),et.isError&&jsxRuntimeExports.jsxs("p",{role:"alert",className:"mt-4 text-sm text-red-800",children:["Comments could not be loaded. ",jsxRuntimeExports.jsx("button",{className:"underline",onClick:()=>void et.refetch(),children:"Try again"})]}),et.isSuccess&&et.data.length===0&&jsxRuntimeExports.jsx("p",{className:"mt-4 text-sm text-ink/50",children:"No comments yet."}),jsxRuntimeExports.jsx("div",{className:"my-4 space-y-3",children:(st=et.data)==null?void 0:st.map(at=>jsxRuntimeExports.jsxs("article",{className:"border border-border p-3",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap justify-between gap-2 text-xs text-ink/50",children:[jsxRuntimeExports.jsx("span",{className:"font-medium text-ink",children:at.authorName}),jsxRuntimeExports.jsx("time",{dateTime:at.created_at,children:new Date(at.created_at).toLocaleStr
984ing()})]}),jsxRuntimeExports.jsx("p",{className:"mt-2 whitespace-pre-wrap break-words text-sm leading-6",children:at.body})]},at.id))}),jsxRuntimeExports.jsxs("form",{onSubmit:nt,className:"space-y-3",children:[jsxRuntimeExports.jsxs("label",{className:"block text-sm",children:["Add a comment",jsxRuntimeExports.jsx("textarea",{value:s,onChange:at=>a(at.target.value),required:!0,maxLength:5e3,rows:3,disabled:rt.isPending,className:"mt-2 w-full border border-border bg-transparent p-3 focus:outline-none focus:ring-1 focus:ring-ink",placeholder:"What should the team know about this venue?"})]}),jsxRuntimeExports.jsx("button",{disabled:rt.isPending||!s.trim(),className:"min-h-11 bg-ink px-4 py-2 text-sm text-canvas disabled:opacity-50",children:rt.isPending?"Postingâ¦":"Post comment"}),rt.isError&&jsxRuntimeExports.jsx("p",{role:"alert",className:"text-sm text-red-800",children:"Your comment could not be saved. Your text is still here; please try again."}),rt.isSuccess&&jsxRuntimeExports.jsx("p",{role:"status",className:"text-sm text-ink/60",children:"Comment posted."})]})]})}function useVenueFavorites(){const[e,s]=reactExports.useState(null),a=useQueryClient();reactExports.useEffect(()=>{if(!supabase)return;const{data:st}=supabase.auth.onAuthStateChange((at,it)=>{s((it==null?void 0:it.user.id)??null)});return()=>st.subscription.unsubscribe()},[]);const c=["venue-favorites",e],g=useQuery({queryKey:c,enabled:!!(e&&supabase),queryFn:async()=>{const st=[];for(let at=0;;at+=1e3){const{data:it,error:ot}=await supabase.from("venue_favorites").select("venue_name, user_id").order("venue_name").order("user_id").range(at,at+999);if(ot)throw ot;if(st.push(...it),it.length<1e3)return st}},refetchInterval:3e4}),et=reactExports.useMemo(()=>new Set((g.data??[]).filter(st=>st.user_id===e).map(st=>st.venue_name)),[g.data,e]),rt=reactExports.useMemo(()=>{const st=new Map;for(const at of g.data??[])st.set(at.venue_name,(st.get(at.venue_name)??0)+1);return st},[g.data]),nt=useMutation({mutationFn:async({name:st,remove:at})=>{if(!supabase||!e)throw new Error("Sign in to save favorites.");const{error:it}=at?await supabase.from("venue_favorites").delete().eq("user_id",e).eq("venue_name",st):await supabase.from("venue_favorites").upsert({user_id:e,venue_name:st},{onConflict:"user_id,venue_name",ignoreDuplicates:!0});if(it)throw it},onSuccess:(st,{name:at,remove:it})=>{a.setQueryData(c,(ot=[])=>{const lt=ot.filter(ct=>ct.user_id!==e||ct.venue_name!==at);return it?lt:[...lt,{user_id:e,venue_name:at}]}),a.invalidateQueries({queryKey:c})}});return{mine:et,team:rt,loading:g.isPending,unavailable:!e||!g.data||g.isError,saving:nt.isPending,error:g.isError?"Favorites could not be loaded. Please retry.":nt.isError?"Your favorite could not be saved. Please try again.":null,retry:()=>{nt.reset(),g.refetch()},toggle:st=>nt.mutate({name:st,remove:et.has(st)})}}const TeamOnlyPage$1=({children:e})=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(RequireTeamMember,{children:e})}),PulseDemos=()=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx("div",{className:"min-h-screen bg-canvas px-5 py-8 text-ink sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-7xl",children:[jsxRuntimeExports.jsx(PulseBackButton,{}),jsxRuntimeExports.jsxs("header",{className:"mb-6 mt-5 flex items-end justify-between gap-8 border-b border-border pb-5",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"EAF Pulse · Demos"}),jsxRuntimeExports.jsx("h1",{className:"font-serif text-3xl font-light leading-tight sm:text-4xl",children:"Demos"}),jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-2xl text-sm leading-6 text-ink/60",children:"Explore demos and share feature requests or feedback for Pulse."})]}),jsxRuntimeExports.jsx(EAFLogo,{height:54,showWordmark:!1,className:"hidden shrink-0 sm:block"})]}),jsxRuntimeExports.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos/feedback"),className:"group grid grid-cols-[40px_1fr_auto] gap-3 border border-border p-4 transition-colors hover:border-ink hover:bg-canvas-soft/45",children:[jsxRuntimeExports.jsx("span",{className:"flex h-9 w-9 items-center justify-center border border-border text-ink/40",children:jsxRuntimeExports.jsx(Sparkles,{className:"h-4 w-4"})}),jsxRuntimeExports.jsxs("span",{className:"min-w-0",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-xl font-light",children:"Wishlist & feedback"}),jsxRuntimeExports.jsx("span",{className:"mt-1.5 block text-xs leading-5 text-ink/60",children:"Share feature requests, suggest improvements, and see ideas from other Pulse members."}),jsxRuntimeExports.jsx("span",{className:"mt-2.5 block text-[9px] uppercase tracking-[0.12em] text-ink/40",children:"All Pulse members"})]}),jsxRuntimeExports.jsx(ArrowUpRight,{className:"h-4 w-4 text-ink/35 transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5 group-hover:text-ink"})]}),jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos/venues"),className:"group grid grid-cols-[40px_1fr_auto] gap-3 border border-border p-4 transition-colors hover:border-ink hover:bg-canvas-soft/45",children:[jsxRuntimeExports.jsx("span",{className:"flex h-9 w-9 items-center justify-center border border-border text-ink/40",children:jsxRuntimeExports.jsx(MapPinned,{className:"h-4 w-4"})}),jsxRuntimeExports.jsxs("span",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-xl font-light",children:"EAF 2027 venue overview"}),jsxRuntimeExports.jsx("span",{className:"border border-emerald-800/20 bg-emerald-50 px-1.5 py-0.5 text-[9px] uppercase tracking-[0.12em] text-emerald-900",children:"Ready"})]}),jsxRuntimeExports.jsx("span",{className:"mt-1.5 block text-xs leading-5 text-ink/60",children:"One complete, fully ranked and filterable European venue list, with offer details in each venue preview."}),jsxRuntimeExports.jsxs("span",{className:"mt-2.5 block text-[9px] uppercase tracking-[0.12em] text-ink/40",children:["Team only · ",venueDemoCount," researched venues · One ranking · Sortable"]})]}),jsxRuntimeExports.jsx(ArrowUpRight,{className:"h-4 w-4 text-ink/35 transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5 group-hover:text-ink"})]}),jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos/foundations"),className:"group grid grid-cols-[40px_1fr_auto] gap-3 border border-border p-4 transition-colors hover:border-ink hover:bg-canvas-soft/45",children:[jsxRuntimeExports.jsx("span",{className:"flex h-9 w-9 items-center justify-center border border-border text-ink/40",children:jsxRuntimeExports.jsx(Landmark,{className:"h-4 w-4"})}),jsxRuntimeExports.jsxs("span",{className:"min-w-0",children:[jsxRuntimeExports.jsxs("span",{className:"flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-xl font-light",children:"Funding explorer"}),jsxRuntimeExports.jsx("span",{className:"border border-emerald-800/20 bg-emerald-50 px-1.5 py-0.5 text-[9px] uppercase tracking-[0.12em] text-emerald-900",children:"Ready"})]}),jsxRuntimeExports.jsx("span",{className:"mt-1.5 block text-xs leading-5 text-ink/60",children:"Private foundations plus a shared shortlist of public grants and awards, ranked for EAF."}),jsxRuntimeExports.jsxs("span",{className:"mt-2.5 block text-[9px] uppercase tracking-[0.12em] text-ink/40",children:["Team only · ",foundationCandidates.length," foundations · ",publicFundingCandidates.length," public grants & awards · Source-backed"]})]}),jsxRuntimeExports.jsx(ArrowUpRight,{className:"h-4 w-4 text-ink/35 transition-transform group-hover:-translate-y-0.5 group-hover:translate-x-0.5 group-hover:text-ink"})]})]})]})})}),confidenceClass={High:"border-emerald-800/20 bg-emerald-50 text-emerald-900",Medium:"border-amber-800/20 bg-amber-50 text-amber-900",Low:"border-rose-800/20 bg-rose-50 text-rose-900"},shortlistStatusClass={Confirmed:"border-emerald-800/20 bg-emerald-50 text-emerald-900",Conditional:"border-amber-800/20 bg-amber-50 text-amber-900","Awaiting quote":"border-sky-800/20 bg-sky-50 text-sky-950"},ownershipOptions=["nonprofit","public","religious","commercial-or-unknown"],allRankedVenues=venueDemoRegions.flatMap(({region:e,venues:s})=>s.map(a=>({region:e,venue:a}
984))),venueSortLabels={score:"Overall score",venue:"Venue",country:"Country",price:"Full-board price",beds:"Beds",rooms:"Seminar rooms",beauty:"Beauty"},optionalNumber=e=>e.trim()===""?null:Number(e),canonicalCountry=e=>e==="Czech Republic"?"Czechia":e,PulseVenueDemo=()=>jsxRuntimeExports.jsx(TeamOnlyPage$1,{children:jsxRuntimeExports.jsx(PulseVenueDemoContent,{})}),PulseVenueDemoContent=()=>{const e=useVenueFavorites(),[s,a]=reactExports.useState("all"),[c,g]=reactExports.useState(null),[et,rt]=reactExports.useState("score"),[nt,st]=reactExports.useState("desc"),[at,it]=reactExports.useState(""),[ot,lt]=reactExports.useState("all"),[ct,dt]=reactExports.useState("all"),[ut,xt]=reactExports.useState(""),[gt,ht]=reactExports.useState(""),[mt,kt]=reactExports.useState(""),[Ct,Tt]=reactExports.useState(""),[Pt,At]=reactExports.useState(""),[Gt,Mt]=reactExports.useState(""),[zt,Jt]=reactExports.useState(!1),[nr,er]=reactExports.useState(()=>new Set(ownershipOptions)),ur=reactExports.useMemo(()=>[...new Set(allRankedVenues.map(({venue:It})=>canonicalCountry(It[1])))].sort((It,Bt)=>It.localeCompare(Bt)),[]),qt=reactExports.useCallback((It,Bt)=>{const[rr,lr,pr,tr,hr,Vt,,,,sr,Lt]=It,Kt=at.trim().toLocaleLowerCase(),mr=optionalNumber(ut),xr=optionalNumber(gt),cr=optionalNumber(mt),jr=optionalNumber(Ct),kr=optionalNumber(Pt),Pr=optionalNumber(Gt);return(!Kt||`${rr} ${lr} ${pr}`.toLocaleLowerCase().includes(Kt))&&(ot==="all"||Bt===ot)&&(ct==="all"||canonicalCountry(lr)===ct)&&(s==="all"||(s==="mine"?e.mine.has(rr):e.team.has(rr)))&&nr.has(venueOwnership(rr))&&(mr===null||Vt<=mr)&&(xr===null||tr>=xr)&&(cr===null||tr<=cr)&&(jr===null||hr>=jr)&&(kr===null||hr<=kr)&&(Pr===null||sr>=Pr)&&(!zt||Lt)},[s,e.mine,e.team,ct,zt,mt,ut,Pt,Gt,gt,Ct,nr,ot,at]),or=reactExports.useMemo(()=>{const It=nt==="asc"?1:-1;return allRankedVenues.filter(({region:Bt,venue:rr})=>qt(rr,Bt)).sort((Bt,rr)=>{const lr=({venue:Vt})=>et==="venue"?Vt[0].toLocaleLowerCase():et==="country"?Vt[1].toLocaleLowerCase():et==="price"?Vt[5]:et==="beds"?Vt[3]:et==="rooms"?Vt[4]:et==="beauty"?Vt[9]:Vt[6],pr=lr(Bt),tr=lr(rr),hr=typeof pr=="string"&&typeof tr=="string"?pr.localeCompare(tr):Number(pr)-Number(tr);return hr!==0?hr*It:Bt.venue[6]!==rr.venue[6]?rr.venue[6]-Bt.venue[6]:Bt.venue[5]!==rr.venue[5]?Bt.venue[5]-rr.venue[5]:Bt.venue[0].localeCompare(rr.venue[0])})},[qt,nt,et]),Dt=It=>{if(et===It){st(Bt=>Bt==="asc"?"desc":"asc");return}rt(It),st(It==="score"||It==="beds"||It==="rooms"||It==="beauty"?"desc":"asc")},Ht=It=>{er(Bt=>{const rr=new Set(Bt);return rr.has(It)?rr.delete(It):rr.add(It),rr})},Xt=()=>{a("all"),it(""),lt("all"),dt("all"),xt(""),ht(""),kt(""),Tt(""),At(""),Mt(""),Jt(!1),er(new Set(ownershipOptions))},Zt=(It,Bt=!1)=>jsxRuntimeExports.jsxs("button",{type:"button","aria-pressed":e.mine.has(It),"aria-label":`${e.mine.has(It)?"Remove":"Add"} ${It} ${e.mine.has(It)?"from":"to"} my favorites`,title:`${e.mine.has(It)?"Remove from":"Add to"} my favorites${e.team.get(It)?` · Favorited by ${e.team.get(It)} team member${e.team.get(It)===1?"":"s"}`:""}`,disabled:e.unavailable||e.saving,onClick:()=>e.toggle(It),className:`relative inline-flex h-11 shrink-0 items-center justify-center gap-2 border text-xs transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ink disabled:cursor-wait disabled:opacity-40 ${Bt?"w-11":"px-3"} ${e.mine.has(It)?"border-amber-700/30 bg-amber-50 text-amber-800":"border-border bg-transparent text-ink/45 hover:border-ink hover:text-ink"}`,children:[jsxRuntimeExports.jsx(Star,{"aria-hidden":"true",className:`h-4 w-4 ${e.mine.has(It)?"fill-amber-400 text-amber-700":""}`}),!Bt&&(e.mine.has(It)?"Favorited":"Favorite"),!!e.team.get(It)&&jsxRuntimeExports.jsx("span",{className:Bt?"absolute -right-1.5 -top-1.5 min-w-4 rounded-full border border-border bg-canvas px-1 text-[9px] leading-4 text-ink/60":"text-ink/45",children:Bt?e.team.get(It):`· ${e.team.get(It)} team`})]});return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas text-ink",children:[jsxRuntimeExports.jsx("div",{className:"border-b border-border px-5 py-5 sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto flex max-w-7xl items-center justify-between gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-5",children:[jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos"),className:"inline-flex shrink-0 items-center gap-2 text-[11px] uppercase tracking-[0.14em] text-ink/55 transition-colors hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Demos"]}),jsxRuntimeExports.jsx("span",{className:"hidden h-5 border-l border-border sm:block"}),jsxRuntimeExports.jsxs("div",{className:"hidden min-w-0 sm:block",children:[jsxRuntimeExports.jsx("h1",{className:"truncate font-serif text-xl font-light",children:"EAF 2027 venue overview"}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] uppercase tracking-[0.12em] text-ink/40",children:[venueDemoCount," researched · one European ranking"]})]})]}),jsxRuntimeExports.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-[0.16em] text-ink/40",children:"Team only"})]})}),jsxRuntimeExports.jsx("nav",{className:"sticky top-0 z-20 border-y border-border bg-canvas/95 px-5 py-3 backdrop-blur sm:px-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto flex max-w-7xl gap-2 overflow-x-auto",children:[jsxRuntimeExports.jsx("a",{href:"#all-venues",className:"shrink-0 border border-ink bg-ink px-3 py-2 text-[10px] uppercase tracking-[0.12em] text-canvas transition-colors hover:bg-ink/85",children:"Full ranking"}),jsxRuntimeExports.jsx("a",{href:"#methodology",className:"shrink-0 border border-border px-3 py-2 text-[10px] uppercase tracking-[0.12em] text-ink/55 transition-colors hover:border-ink hover:text-ink",children:"Methodology"})]})}),jsxRuntimeExports.jsx("main",{className:"px-5 py-10 sm:px-8 sm:py-14",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-7xl space-y-20",children:[jsxRuntimeExports.jsxs("section",{"aria-labelledby":"venue-filter-title",className:"border border-border bg-canvas-soft/25 p-4 sm:p-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-4 border-b border-border pb-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{id:"venue-filter-title",className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:"Filter the complete ranking"}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-sm text-ink/60",children:"Every active filter is combined. Blank numeric fields impose no limit."})]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:Xt,className:"inline-flex min-h-11 items-center gap-2 border border-border bg-canvas px-3 py-2 text-[10px] uppercase tracking-[0.11em] text-ink/60 transition-colors hover:border-ink hover:text-ink",children:[jsxRuntimeExports.jsx(RotateCcw,{className:"h-3.5 w-3.5"}),"Reset filters"]})]}),jsxRuntimeExports.jsx("div",{className:"mt-4 flex flex-wrap gap-2",role:"group","aria-label":"Filter by favorites",children:[["all","All venues"],["mine","My favorites"],["team","Team favorites"]].map(([It,Bt])=>jsxRuntimeExports.jsxs(FilterToggle,{active:s===It,onClick:()=>a(It),children:[Bt,!e.loading&&!e.unavailable&&It!=="all"?` (${It==="mine"?e.mine.size:e.team.size})`:""]},It))}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-xs text-ink/50",children:"Team favorites include everyoneâs picks, including yours. Favorites are shared with the EAF team."}),e.loading&&jsxRuntimeExports.jsx("p",{role:"status",className:"mt-2 text-xs text-ink/50",children:"Loading favoritesâ¦"}),e.error&&jsxRuntimeExports.jsxs("p",{role:"alert",className:"mt-2 text-sm text-rose-800",children:[e.error," ",jsxRuntimeExports.jsx("button",{type:"button",onClick:e.retry,className:"underline",children:"Retry"})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 grid gap-4 sm:grid-cols-2 xl:grid-cols-4",children:[jsxRuntimeExports.jsx(FilterField,{label:"Search venue or city",children:jsxRuntimeExports.jsxs("div",{className:"relative",children:[jsxRuntimeExports.jsx(Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-ink/35"}),jsxRuntimeExports.jsx("input",{type:"search",value:at,onChange:It=>it(It.target.value),placeholder:"e.g. monastery, Prague",className:"min-h-11 w-full border border-border bg-canvas py-2 pl-10 pr-3 text-sm outline-none transition-colors focus:border-ink"})]})}),jsxRuntimeExports.jsx(FilterField,{label:"Country group",children:jsxRuntimeExports.jsxs("select",{value:ot,onChange:It=>lt(It.target.value),className:"min-h-11 w-full border border-border bg-canvas px-3 text-sm outline-none focus:border-ink",children:[jsxRuntimeExports.jsx("option",{value:"all",children:"All country groups"}),venueDemoRegions.map(({region:It})=>jsxRuntimeExports.jsx("option",{value:It,children:It},It))]})}),jsxRuntimeExports.jsx(FilterField,{label:"Country",children:jsxRuntimeExports.jsxs("select",{value:ct,onChange:It=>dt(It.target.value),className:"min-h-11 w-full border border-border bg-canvas px-3 text-sm outline-none focus:border-ink",children:[jsxRuntimeExports.jsx("option",{value:"all",children:"All countries"}),ur.map(It=>jsxRuntimeExports.jsx("option",{value:It,children:It},It))]})}),jsxRuntimeExports.jsx(FilterField,{label:"Max full board · â¬/person/night",children:jsxRuntimeExports.jsx(NumberFilter,{value:ut,onChange:xt,placeholder:"No maximum",min:0})}),jsxRuntimeExports.jsx(FilterField,{label:"Beds · minimum / maximum",children:jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(NumberFilter,{value:gt,onCh
984ange:ht,placeholder:"Min",min:0}),jsxRuntimeExports.jsx(NumberFilter,{value:mt,onChange:kt,placeholder:"Max",min:0})]})}),jsxRuntimeExports.jsx(FilterField,{label:"Seminar rooms · minimum / maximum",children:jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[jsxRuntimeExports.jsx(NumberFilter,{value:Ct,onChange:Tt,placeholder:"Min",min:0}),jsxRuntimeExports.jsx(NumberFilter,{value:Pt,onChange:At,placeholder:"Max",min:0})]})}),jsxRuntimeExports.jsx(FilterField,{label:"Minimum beauty score",children:jsxRuntimeExports.jsxs("select",{value:Gt,onChange:It=>Mt(It.target.value),className:"min-h-11 w-full border border-border bg-canvas px-3 text-sm outline-none focus:border-ink",children:[jsxRuntimeExports.jsx("option",{value:"",children:"Any beauty score"}),jsxRuntimeExports.jsx("option",{value:"3",children:"3+ / 5"}),jsxRuntimeExports.jsx("option",{value:"4",children:"4+ / 5"}),jsxRuntimeExports.jsx("option",{value:"5",children:"5 / 5"})]})}),jsxRuntimeExports.jsx(FilterField,{label:"Visual evidence",children:jsxRuntimeExports.jsx(FilterToggle,{active:zt,onClick:()=>Jt(It=>!It),children:"Images reviewed only"})})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 border-t border-border pt-4",children:[jsxRuntimeExports.jsx("p",{className:"mb-2 text-[10px] uppercase tracking-[0.12em] text-ink/45",children:"Ownership · click to include or exclude"}),jsxRuntimeExports.jsx("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter venues by ownership",children:ownershipOptions.map(It=>jsxRuntimeExports.jsx(FilterToggle,{active:nr.has(It),onClick:()=>Ht(It),children:venueOwnershipLabel[It]},It))})]}),jsxRuntimeExports.jsxs("p",{className:"mt-4 border-t border-border pt-3 text-xs text-ink/50","aria-live":"polite",children:["Showing ",or.length," of ",venueDemoCount," researched venues."]})]}),jsxRuntimeExports.jsxs("section",{id:"all-venues","aria-labelledby":"all-venues-title",className:"scroll-mt-24",children:[jsxRuntimeExports.jsxs("div",{className:"mb-6 flex flex-wrap items-end justify-between gap-5 border-b border-ink pb-4",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"eyebrow mb-2",children:"Complete European comparison"}),jsxRuntimeExports.jsx("h2",{id:"all-venues-title",className:"font-serif text-3xl font-light sm:text-4xl",children:"Full venue ranking"}),jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-3xl text-sm leading-6 text-ink/60",children:"One ranking across every country group. Rank numbers update with the active filters and sort order."})]}),jsxRuntimeExports.jsxs("span",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/40",children:[or.length," venue",or.length===1?"":"s"," shown"]})]}),jsxRuntimeExports.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[jsxRuntimeExports.jsx("label",{htmlFor:"venue-sort",className:"text-[10px] uppercase tracking-[0.12em] text-ink/45",children:"Sort by"}),jsxRuntimeExports.jsx("select",{id:"venue-sort",value:et,onChange:It=>Dt(It.target.value),className:"min-h-11 border border-border bg-canvas px-3 text-sm text-ink",children:Object.entries(venueSortLabels).map(([It,Bt])=>jsxRuntimeExports.jsx("option",{value:It,children:Bt},It))}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>st(It=>It==="asc"?"desc":"asc"),className:"inline-flex min-h-11 items-center gap-2 border border-border px-3 text-[10px] uppercase tracking-[0.12em]",children:[jsxRuntimeExports.jsx(ArrowUpDown,{className:"h-3.5 w-3.5"}),nt==="asc"?"Ascending":"Descending"]})]}),jsxRuntimeExports.jsxs("div",{className:"hidden overflow-hidden border border-border lg:block",children:[jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[52px_1.75fr_1.15fr_76px_88px_96px_78px_44px_44px] gap-3 bg-ink px-4 py-3 text-[10px] uppercase tracking-[0.11em] text-canvas",children:[jsxRuntimeExports.jsx("span",{children:"Rank"}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Venue",sortKey:"venue",activeKey:et,direction:nt,onSort:Dt}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Location / group",sortKey:"c
984ountry",activeKey:et,direction:nt,onSort:Dt}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Beds",sortKey:"beds",activeKey:et,direction:nt,onSort:Dt,align:"right"}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Seminars",sortKey:"rooms",activeKey:et,direction:nt,onSort:Dt,align:"right"}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Full board",sortKey:"price",activeKey:et,direction:nt,onSort:Dt,align:"right"}),jsxRuntimeExports.jsx(VenueSortButton,{label:"Score",sortKey:"score",activeKey:et,direction:nt,onSort:Dt,align:"right"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Preview"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Favorite"})]}),or.map(({region:It,venue:Bt},rr)=>jsxRuntimeExports.jsx(VenueTableRow,{venue:Bt,region:It,rank:rr+1,onPreview:g,favoriteControl:Zt(Bt[0],!0)},`${It}-${Bt[0]}`))]}),jsxRuntimeExports.jsx("div",{className:"space-y-3 lg:hidden",children:or.map(({region:It,venue:Bt},rr)=>jsxRuntimeExports.jsx(VenueCard,{venue:Bt,region:It,rank:rr+1,featured:rr<3,onPreview:g,favoriteControl:Zt(Bt[0],!0)},`${It}-${Bt[0]}`))}),or.length===0&&jsxRuntimeExports.jsx("div",{className:"border border-border px-5 py-10 text-sm text-ink/55",children:s!=="all"&&e.unavailable?"Favorites are not available yet. Wait for them to load or retry above.":s==="mine"&&e.mine.size===0?"You havenât favorited any venues yet. Choose All venues and use the star to save your picks.":s==="team"&&e.team.size===0?"No team favorites yet. Choose All venues to save the first pick.":"No venue matches every active filter. Remove one constraint or reset the filters above."})]}),jsxRuntimeExports.jsx("section",{id:"methodology",className:"scroll-mt-24 border-t border-ink pt-8",children:jsxRuntimeExports.jsxs("div",{className:"grid gap-5 text-sm leading-6 text-ink/60 sm:grid-cols-3",children:[jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-ink",children:"Price"}),"Estimated euros per person per night, full board. Every venue still needs a comparable written quote."]}),jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-ink",children:"Score"}),"Weighted 30% price, 20% beauty, 15% beds, 15% seminar rooms, 10% local hub, and 10% European access. Image-reviewed candidates use the visual score shown in their preview."]}),jsxRuntimeExports.jsxs("p",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-ink",children:"Critical check"}),"Confirm 70â85 beds and five to eight simultaneous small rooms for the complete eight-night stay."]})]})})]})}),jsxRuntimeExports.jsx(VenuePreviewDialog,{favoriteControl:c?Zt(c[0]):null,venue:c,onOpenChange:It=>!It&&g(null)})]})},VenueSortButton=({label:e,sortKey:s,activeKey:a,direction:c,onSort:g,align:et="left"})=>jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>g(s),className:`flex items-center gap-1.5 transition-opacity hover:opacity-75 ${et==="right"?"justify-end text-right":"text-left"}`,"aria-label":`Sort by ${e}${a===s?`, currently ${c}`:""}`,children:[jsxRuntimeExports.jsx("span",{children:e}),jsxRuntimeExports.jsx(ArrowUpDown,{className:`h-3 w-3 ${a===s?"opacity-100":"opacity-35"}`})]}),FilterField=({label:e,children:s})=>jsxRuntimeExports.jsxs("div",{className:"block",children:[jsxRuntimeExports.jsx("span",{className:"mb-1.5 block text-[10px] uppercase tracking-[0.11em] text-ink/45",children:e}),s]}),NumberFilter=({value:e,onChange:s,placeholder:a,min:c})=>jsxRuntimeExports.jsx("input",{type:"number",inputMode:"numeric",min:c,value:e,onChange:g=>s(g.target.value),placeholder:a,className:"min-h-11 w-full border border-border bg-canvas px-3 text-sm outline-none transition-colors focus:border-ink"}),FilterToggle=({active:e,onClick:s,children:a})=>jsxRuntimeExports.jsx("button",{type:"button",onClick:s,"aria-pressed":e,className:`min-h-11 w-full border px-3 py-2 text-[10px] uppercase tracking-[0.11em] transition-colors sm:w-auto ${e?"border-ink bg-ink text-canvas":"border-border bg-canvas text-ink/60 hover:border-ink hover:text-ink"}`,children:a}),ownershipClass={religious:"border-violet-800/20 bg-violet-50 text-violet-950",nonprofit:"border-emerald-800/20 bg-emerald-50 text-emerald-950",public:"border-sky-800/20 bg-sky-50 text-sky-950","commercial-or-unknown":"border-border bg-canvas text-ink/45"},OwnershipBadge=({name:e,className:s=""})=>{const a=venueOwnership(e);return a==="commercial-or-unknown"?null:jsxRuntimeExports.jsx("span",{className:`inline-block border px-1.5 py-0.5 text-[9px] uppercase tracking-[0.1em] ${ownershipClass[a]} ${s}`,children:venueOwnershipLabel[a]})},VenueTableRow=({venue:e,region:s,rank:a,onPreview:c,favoriteControl:g})=>{const[et,rt,nt,st,at,it,ot,lt,,ct,dt]=e;return jsxRuntimeExports.jsxs("div",{className:"relative border-b border-border last:border-b-0 odd:bg-canvas-soft/30",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>c(e),className:"group grid w-full grid-cols-[52px_1.75fr_1.15fr_76px_88px_96px_78px_44px] items-center gap-3 py-4 pl-4 pr-[72px] text-left text-sm transition-colors hover:bg-canvas-soft focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-ink","aria-label":`Preview ${et}`,children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-xl text-ink/35",children:String(a).padStart(2,"0")}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"block font-medium text-ink",children:et}),jsxRuntimeExports.jsxs("span",{className:"mt-1 flex flex-wrap gap-1.5",children:[jsxRuntimeExports.jsx(OwnershipBadge,{name:et}),jsxRuntimeExports.jsxs("span",{className:`inline-block border px-1.5 py-0.5 text-[9px] uppercase tracking-[0.1em] ${confidenceClass[lt]}`,children:[lt," evidence"]}),dt&&jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 border border-sky-800/20 bg-sky-50 px-1.5 py-0.5 text-[9px] uppercase tracking-[0.1em] text-sky-950",children:[jsxRuntimeExports.jsx(Images,{className:"h-3 w-3"}),"Beauty ",ct,"/5"]})]})]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("span",{className:"block",children:nt}),jsxRuntimeExports.jsx("span",{className:"text-xs text-ink/45",children:rt}),jsxRuntimeExports.jsx("span",{className:"mt-1 block text-[9px] uppercase tracking-[0.1em] text-ink/35",children:s})]}),jsxRuntimeExports.jsx("span",{className:"text-right tabular-nums",children:st.toLocaleStr
984ing("en-GB")}),jsxRuntimeExports.jsx("span",{className:"text-right tabular-nums",children:at}),jsxRuntimeExports.jsxs("span",{className:"text-right font-medium tabular-nums",children:["â¬",it]}),jsxRuntimeExports.jsx("span",{className:"text-right font-serif text-lg tabular-nums",children:ot.toFixed(2)}),jsxRuntimeExports.jsx("span",{className:"flex h-11 w-11 items-center justify-center border border-border text-ink/45 transition-colors group-hover:border-ink group-hover:text-ink",children:jsxRuntimeExports.jsx(Eye,{className:"h-4 w-4"})})]}),jsxRuntimeExports.jsx("div",{className:"absolute right-4 top-1/2 -translate-y-1/2",children:g})]})},VenueCard=({venue:e,region:s,rank:a,featured:c,onPreview:g,favoriteControl:et})=>{const[rt,nt,st,at,it,ot,lt,ct,,dt,ut]=e;return jsxRuntimeExports.jsxs("div",{className:`relative border ${c?"border-ink/45 bg-canvas-soft/35":"border-border"}`,children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>g(e),className:"block w-full p-4 text-left transition-colors hover:bg-canvas-soft focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ink","aria-label":`Preview ${rt}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-start justify-between gap-4 pr-14",children:[jsxRuntimeExports.jsxs("div",{className:"flex gap-3",children:[jsxRuntimeExports.jsx("span",{className:"font-serif text-2xl text-ink/30",children:String(a).padStart(2,"0")}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"font-serif text-xl font-light",children:rt}),jsxRuntimeExports.jsxs("p",{className:"mt-1 flex items-center gap-1.5 text-xs text-ink/50",children:[jsxRuntimeExports.jsx(MapPinned,{className:"h-3.5 w-3.5"}),st,", ",nt]}),jsxRuntimeExports.jsx("p",{className:"mt-1 text-[9px] uppercase tracking-[0.1em] text-ink/35",children:s})]})]}),jsxRuntimeExports.jsx("span",{className:"flex h-11 w-11 shrink-0 items-center justify-center border border-border text-ink/45",children:jsxRuntimeExports.jsx(Eye,{className:"h-4 w-4"})})]}),jsxRuntimeExports.jsxs("div",{className:"mt-5 grid grid-cols-4 gap-3 border-t border-border pt-4 text-xs",children:[jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(BedDouble,{className:"h-3.5 w-3.5"}),at]}),jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5",children:[jsxRuntimeExports.jsx(DoorOpen,{className:"h-3.5 w-3.5"}),it]}),jsxRuntimeExports.jsxs("span",{className:"font-medium",children:["â¬",ot,"/night"]}),jsxRuntimeExports.jsxs("span",{className:"text-right font-medium",children:[lt.toFixed(2),"/5"]})]}),jsxRuntimeExports.jsxs("span",{className:`mt-4 inline-block border px-2 py-1 text-[9px] uppercase tracking-[0.1em] ${confidenceClass[ct]}`,children:[ct," evidence"]}),jsxRuntimeExports.jsx(OwnershipBadge,{name:rt,className:"ml-2 mt-4"}),ut&&jsxRuntimeExports.jsxs("span",{className:"ml-2 mt-4 inline-flex items-center gap-1 border border-sky-800/20 bg-sky-50 px-2 py-1 text-[9px] uppercase tracking-[0.1em] text-sky-950",children:[jsxRuntimeExports.jsx(Images,{className:"h-3 w-3"}),"Beauty ",dt,"/5"]})]}),jsxRuntimeExports.jsx("div",{className:"absolute right-4 top-4",children:et})]})},VenuePreviewDialog=({venue:e,onOpenChange:s,favoriteControl:a})=>{if(!e)return null;const[c,g,et,rt,nt,st,at,it,ot,lt,ct]=e,dt=venueViableShortlist.find(gt=>
984gt.venue[0]===c),[ut,xt]=venueDemoDetails[c]??["A promising setting with the scale and facilities needed for the academy.","Confirm the best group connection from the nearest major airport or railway hub."];return jsxRuntimeExports.jsx(Dialog,{open:!0,onOpenChange:s,children:jsxRuntimeExports.jsxs(DialogContent,{className:"max-h-[90vh] max-w-2xl overflow-y-auto border-border bg-canvas p-0 text-ink",children:[jsxRuntimeExports.jsxs(DialogHeader,{className:"border-b border-border px-6 pb-6 pt-7 pr-14 sm:px-8 sm:pt-8",children:[jsxRuntimeExports.jsxs("p",{className:"text-[10px] uppercase tracking-[0.16em] text-ink/45",children:[et," · ",g]}),jsxRuntimeExports.jsx(DialogTitle,{className:"mt-2 font-serif text-3xl font-light leading-tight sm:text-4xl",children:c}),jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center gap-2 pt-3",children:[jsxRuntimeExports.jsx(OwnershipBadge,{name:c}),jsxRuntimeExports.jsxs("span",{className:`border px-2 py-1 text-[9px] uppercase tracking-[0.1em] ${confidenceClass[it]}`,children:[it," evidence"]}),jsxRuntimeExports.jsxs("span",{className:"border border-border px-2 py-1 text-[9px] uppercase tracking-[0.1em] text-ink/50",children:["Score ",at.toFixed(2)," / 5"]}),jsxRuntimeExports.jsxs("span",{className:"inline-flex items-center gap-1 border border-sky-800/20 bg-sky-50 px-2 py-1 text-[9px] uppercase tracking-[0.1em] text-sky-950",children:[jsxRuntimeExports.jsx(Images,{className:"h-3 w-3"}),"Beauty ",lt,"/5",ct?" · image reviewed":""]})]}),jsxRuntimeExports.jsx("div",{className:"pt-3",children:a})]}),jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-3 border-b border-border",children:[jsxRuntimeExports.jsx(PreviewMetric,{icon:BedDouble,value:rt.toLocaleString("en-GB"),label:"Beds"}),jsxRuntimeExports.jsx(PreviewMetric,{icon:DoorOpen,value:String(nt),label:"Seminar rooms",borderLeft:!0}),jsxRuntimeExports.jsx(PreviewMetric,{icon:Presentation,value:`â¬${st}`,label:"Est. / person / night",borderLeft:!0})]}),jsxRuntimeExports.jsxs("div",{className:"space-y-7 px-6 py-7 sm:px-8",children:[jsxRuntimeExports.jsx(PreviewNote,{icon:Sparkles,title:"Why itâs beautiful and promising",body:ut}),jsxRuntimeExports.jsx(PreviewNote,{icon:TrainFront,title:"How to reach it",body:xt}),dt&&jsxRuntimeExports.jsxs("div",{className:"border border-border bg-canvas-soft/35 p-4",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[jsxRuntimeExports.jsx("h3",{className:"text-[11px] font-medium uppercase tracking-[0.13em]",children:"Current reply and travel model"}),jsxRuntimeExports.jsx("span",{className:`border px-2 py-1 text-[9px] uppercase tracking-[0.1em] ${shortlistStatusClass[dt.status]}`,children:dt.status})]}),jsxRuntimeExports.jsxs("div",{className:"mt-4 grid grid-cols-3 gap-3 text-sm",children:[jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-[9px] uppercase tracking-[0.1em] text-ink/40",children:"Venue total"}),dt.costLabel]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-[9px] uppercase tracking-[0.1em] text-ink/40",children:"Avg return travel"}),"~â¬",dt.travelCost]}),jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("strong",{className:"block text-[9px] uppercase tracking-[0.1em] text-ink/40",children:"Avg one-way time"}),dt.travelTime.toFixed(1),"h"]})]}),jsxRuntimeExports.jsx("p",{className:"mt-4 text-xs leading-5 text-ink/60",children:dt.caveat}),jsxRuntimeExports.jsxs("p",{className:"mt-2 text-xs leading-5 text-ink/45",children:["Pickup: ",dt.transfer]})]}),jsxRuntimeExports.jsxs("div",{className:"border-t border-border pt-6",children:[jsxRuntimeExports.jsxs("a",{href:ot,target:"_blank",rel:"noreferrer",className:"inline-flex min-h-11 items-center gap-2 bg-ink px-5 py-3 text-[11px] uppercase tracking-[0.14em] text-canvas transition-colors hover:bg-ink/90",children:["Visit venue website",jsxRuntimeExports.jsx(ExternalLink,{className:"h-3.5 w-3.5"})]}),jsxRuntimeExports.jsx("p",{className:"mt-3 text-xs leading-5 text-ink/45",children:"Price and capacity are planning estimates. Confirm the complete eight-night brief directly with the venue."})]}),jsxRuntimeExports.jsx(VenueComments,{venueName:c},c)]})]})})},PreviewMetric=({icon:e,value:s,label:a,borderLeft:c=!1})=>jsxRuntimeExports.jsxs("div",{className:`px-4 py-5 text-center ${c?"border-l border-border":""}`,children:[jsxRuntimeExports.jsx(e,{className:"mx-auto mb-2 h-4 w-4 text-ink/40"}),jsxRuntimeExports.jsx("div",{className:"font-serif text-2xl font-light",children:s}),jsxRuntimeExports.jsx("div",{className:"mt-1 text-[9px] uppercase tracking-[0.1em] text-ink/45",children:a})]}),PreviewNote=({icon:e,title:s,body:a})=>jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-[24px_1fr] gap-4",children:[jsxRuntimeExports.jsx(e,{className:"mt-0.5 h-5 w-5 text-ink/40"}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h3",{className:"text-[11px] font-medium uppercase tracking-[0.13em]",children:s}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-sm leading-6 text-ink/65",children:a})]})]}),TeamOnlyPage=({children:e})=>jsxRuntimeExports.jsx(RequireAuth,{children:jsxRuntimeExports.jsx(RequireTeamMember,{children:e})}),countryCodes={Switzerland:"CH",Germany:"DE",Italy:"IT",Spain:"ES",France:"FR","Europe-wide":"EU"},routeClass={Direct:"border-emerald-800/20 bg-emerald-50 text-emerald-950","
984Local partner":"border-sky-800/20 bg-sky-50 text-sky-950","Next call":"border-amber-800/20 bg-amber-50 text-amber-950",Conversation:"border-violet-800/20 bg-violet-50 text-violet-950"},scoreClass=e=>e>=9?"bg-ink text-canvas":e>=8.5?"border-emerald-800/20 bg-emerald-50 text-emerald-950":"border-border bg-canvas-soft/60 text-ink",PulseFoundationDemo=()=>jsxRuntimeExports.jsx(TeamOnlyPage,{children:jsxRuntimeExports.jsx(PulseFoundationDemoContent,{})}),PulseFoundationDemoContent=()=>{const[e,s]=reactExports.useState("foundations"),[a,c]=reactExports.useState("Switzerland"),[g,et]=reactExports.useState(""),[rt,nt]=reactExports.useState("All"),[st,at]=reactExports.useState("All"),[it,ot]=reactExports.useState(!1),[lt,ct]=reactExports.useState("fit"),[dt,ut]=reactExports.useState(null),xt=reactExports.useMemo(()=>{const mt=g.trim().toLowerCase();return foundationCandidates.filter(kt=>a==="All"||kt.country===a).filter(kt=>rt==="All"||kt.route===rt).filter(kt=>st==="All"||kt.themes.includes(st)).filter(kt=>!it||kt.askMaxK>=100).filter(kt=>mt?[kt.name,kt.city,kt.country,kt.fit,kt.condition,kt.themes.join(" ")].join(" ").toLowerCase().includes(mt):!0).sort((kt,Ct)=>lt==="capacity"&&Ct.askMaxK-kt.askMaxK||Ct.score-kt.score)},[a,it,g,rt,lt,st]),gt=+(a!=="Switzerland")+ +(rt!=="All")+ +(st!=="All")+Number(it)+ +!!g,ht=()=>{c("Switzerland"),et(""),nt("All"),at("All"),ot(!1),ct("fit"),ut(null)};return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-canvas text-ink",children:[jsxRuntimeExports.jsx("div",{className:"border-b border-border px-4 py-4 sm:px-6",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto flex max-w-[1500px] items-center justify-between gap-6",children:[jsxRuntimeExports.jsxs("div",{className:"flex min-w-0 items-center gap-4",children:[jsxRuntimeExports.jsxs(Link,{to:pulsePath("/demos"),className:"inline-flex shrink-0 items-center gap-2 text-[11px] uppercase tracking-[0.14em] text-ink/55 transition-colors hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"h-4 w-4"}),"Demos"]}),jsxRuntimeExports.jsx("span",{className:"hidden h-5 border-l border-border sm:block"}),jsxRuntimeExports.jsxs("div",{className:"hidden min-w-0 sm:block",children:[jsxRuntimeExports.jsx("h1",{className:"truncate font-serif text-xl font-light",children:"Funding explorer"}),jsxRuntimeExports.jsxs("p",{className:"text-[10px] uppercase tracking-[0.12em] text-ink/40",children:[foundationCandidates.length," foundations · ",publicFundingCandidates.length," public grants & awards"]})]})]}),jsxRuntimeExports.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-[0.16em] text-ink/40",children:"Team only"})]})}),jsxRuntimeExports.jsx("main",{className:"px-4 py-6 sm:px-6 sm:py-8",children:jsxRuntimeExports.jsxs("div",{className:"mx-auto max-w-[1500px]",children:[jsxRuntimeExports.jsxs("section",{className:"mb-5 grid border border-border bg-canvas-soft/20 sm:grid-cols-[1.5fr_repeat(3,minmax(120px,0.45fr))]",children:[jsxRuntimeExports.jsxs("div",{className:"border-b border-border p-4 sm:border-b-0 sm:border-r sm:p-5",children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntimeExports.jsx(Landmark,{className:"h-4 w-4 text-ink/45"}),jsxRuntimeExports.jsx("p",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:e==="foundations"?"Foundation pipeline":"Public funding pipeline"})]}),jsxRuntimeExports.jsx("p",{className:"mt-2 max-w-xl text-sm leading-5 text-ink/65",children:e==="foundations"?"Only strong thematic matches with an evidenced outside-funding route, or small foundations that appear unusually open.":"Public grants and awards screened for EAFâs European youth, education and democracy work."})]}),jsxRuntimeExports.jsx(Stat,{label:"Screened",value:(e==="foundations"?foundationCandidates:publicFundingCandidates).length.toString()}),jsxRuntimeExports.jsx(Stat,{label:e==="foundations"?"Swiss":"EU / CoE grants",value:(e==="foundations"?foundationCandidates.filter(mt=>mt.country==="Switzerland"):publicFundingCandidates.filter(mt=>mt.kind==="Grant")).length.toString()}),jsxRuntimeExports.jsx(Stat,{label:e==="foundations"?"100k+ capacity":"Awards",value:(e==="foundations"?foundationCandidates.filter(mt=>mt.askMaxK>=100):publicFundingCandidates.filter(mt=>mt.kind==="Award")).length.toString(),last:!0})]}),jsxRuntimeExports.jsxs("div",{className:"mb-5 flex border border-border",role:"tablist","aria-label":"Funding c
984ategory",children:[jsxRuntimeExports.jsxs("button",{type:"button",role:"tab","aria-selected":e==="foundations",onClick:()=>s("foundations"),className:`min-h-11 flex-1 px-4 text-[10px] uppercase tracking-[0.13em] transition-colors ${e==="foundations"?"bg-ink text-canvas":"hover:bg-canvas-soft"}`,children:["Private foundations · ",foundationCandidates.length]}),jsxRuntimeExports.jsxs("button",{type:"button",role:"tab","aria-selected":e==="public",onClick:()=>s("public"),className:`min-h-11 flex-1 border-l border-border px-4 text-[10px] uppercase tracking-[0.13em] transition-colors ${e==="public"?"bg-ink text-canvas":"hover:bg-canvas-soft"}`,children:["Public grants & awards · ",publicFundingCandidates.length]})]}),e==="public"?jsxRuntimeExports.jsx(PublicFundingList,{}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("section",{className:"sticky top-0 z-20 mb-5 border border-border bg-canvas/95 backdrop-blur",children:[jsxRuntimeExports.jsxs("div",{className:"flex flex-wrap border-b border-border",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>c("All"),className:`min-h-10 border-r border-border px-3 text-[10px] uppercase tracking-[0.12em] transition-colors ${a==="All"?"bg-ink text-canvas":"hover:bg-canvas-soft"}`,children:["All ",jsxRuntimeExports.jsx("span",{className:"ml-1 opacity-60",children:foundationCandidates.length})]}),foundationCountries.map(mt=>{const kt=foundationCandidates.filter(Ct=>Ct.country===mt).length;return jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>c(mt),className:`min-h-10 border-r border-border px-3 text-[10px] uppercase tracking-[0.12em] transition-colors ${a===mt?"bg-ink text-canvas":"hover:bg-canvas-soft"}`,children:[countryCodes[mt]," ",jsxRuntimeExports.jsx("span",{className:"ml-1 opacity-60",children:kt})]},mt)})]}),jsxRuntimeExports.jsxs("div",{className:"grid gap-px bg-border lg:grid-cols-[minmax(280px,1.2fr)_repeat(3,minmax(150px,0.55fr))_auto_auto]",children:[jsxRuntimeExports.jsxs("label",{className:"flex min-h-11 items-center gap-2 bg-canvas px-3",children:[jsxRuntimeExports.jsx(Search,{className:"h-4 w-4 shrink-0 text-ink/35"}),jsxRuntimeExports.jsx("input",{value:g,onChange:mt=>et(mt.target.value),placeholder:"Search foundation, city, fitâ¦",className:"w-full bg-transparent text-sm outline-none placeholder:text-ink/35"}),g&&jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>et(""),"aria-label":"Clear search",children:jsxRuntimeExports.jsx(X$1,{className:"h-4 w-4 text-ink/40"})})]}),jsxRuntimeExports.jsx(FilterSelect,{label:"Route",value:rt,onChange:mt=>nt(mt),options:["All","Direct","Local partner","Conversation","Next call"]}),jsxRuntimeExports.jsx(FilterSelect,{label:"Theme",value:st,onChange:mt=>at(mt),options:["All",...foundationThemes]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>ot(mt=>!mt),className:`flex min-h-11 items-center justify-between gap-3 bg-canvas px-3 text-left text-xs transition-colors hover:bg-canvas-soft ${it?"font-medium":"text-ink/65"}`,"aria-pressed":it,children:[jsxRuntimeExports.jsx("span",{children:"100k+ capacity"}),jsxRuntimeExports.jsx("span",{className:`h-4 w-4 border ${it?"border-ink bg-ink":"border-ink/30"}`,children:it&&jsxRuntimeExports.jsx("span",{className:"block h-full w-full scale-50 bg-canvas"})})]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:()=>ct(mt=>mt==="fit"?"capacity":"fit"),className:"flex min-h-11 items-center justify-center gap-2 bg-canvas px-3 text-[10px] uppercase tracking-[0.11em] text-ink/60 transition-colors hover:bg-canvas-soft hover:text-ink",children:[jsxRuntimeExports.jsx(ArrowDownUp,{className:"h-3.5 w-3.5"}),lt==="fit"?"Fit":"Capacity"]}),jsxRuntimeExports.jsxs("button",{type:"button",onClick:ht,className:"flex min-h-11 items-center justify-center gap-2 bg-canvas px-3 text-[10px] uppercase tracking-[0.11em] text-ink/45 transition-colors hover:bg-canvas-soft hover:text-ink",title:"Reset to Switzerland",children:[jsxRuntimeExports.jsx(SlidersHorizontal,{className:"h-3.5 w-3.5"}),"Reset",gt>0?` ${gt}`:""]})]})]}),jsxRuntimeExports.jsxs("div",{className:"mb-2 flex items-center justify-between gap-4",children:[jsxRuntimeExports.jsxs("p",{className:"text-[10px] uppercase tracking-[0.14em] text-ink/45",children:[xt.length," result",xt.length===1?"":"s",a!=="All"?` · ${a}`:""]}),jsxRuntimeExports.jsx("p",{className:"hidden text-[10px] text-ink/40 sm:block",children:"Select a row for rationale and caveat"})]}),jsxRuntimeExports.jsxs("section",{className:"overflow-hidden border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"hidden grid-cols-[48px_minmax(210px,1.15fr)_minmax(120px,0.65fr)_120px_115px_minmax(290px,1.5fr)_32px] gap-3 bg-ink px-3 py-2.5 text-[9px] uppercase tracking-[0.12em] text-canvas lg:grid",children:[jsxRuntimeExports.jsx("span",{children:"Fit"}),jsxRuntimeExports.jsx("span",{children:"Foundation"}),jsxRuntimeExports.jsx("span",{children:"City"}),jsxRuntimeExports.jsx("span",{children:"Route"}),jsxRuntimeExports.jsx("span",{children:"Indicative ask"}),jsxRuntimeExports.jsx("span",{children:"Why it survived"}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Open"})]}),xt.length>0?xt.map(mt=>jsxRuntimeExports.jsx(FoundationRow,{candidate:mt,open:dt===mt.name,onToggle:()=>ut(kt=>kt===mt.name?null:mt.name)},mt.name)):jsxRuntimeExports.jsxs("div",{className:"px-5 py-14 text-center",children:[jsxRuntimeExports.jsx("p",{className:"font-serif text-2xl font-light",children:"No candidate matches these filters."}),jsxRuntimeExports.jsx("button",{type:"button",onClick:ht,className:"mt-4 text-[10px] uppercase tracking-[0.14em] underline underline-offset-4",children:"Reset to Switzerland"})]})]}),jsxRuntimeExports.jsx("p",{className:"mt-4 max-w-4xl text-xs leading-5 text-ink/45",children:"Indicative asks are positioning ranges, not published commitments unless the detail says so. âLocal partnerâ means the geographic condition is substantive; EAF should not use a nominal fiscal wrapper. Source pages were reviewed for the 2026 research pipeline."})]})]})})]})},PublicFundingList=()=>{const[e,s]=reactExports.useState("overall"),[a,c]=reactExports.useState(null),g=reactExports.useMemo(()=>[...publicFundingCandidates].sort((et,rt)=>e==="burden"?et.burden-rt.burden||publicFundingScore(rt)-publicFundingScore(et):e==="overall"?publicFundingScore(rt)-publicFundingScore(et):rt[e]-et[e]||publicFundingScore(rt)-publicFundingScore(et)),[e]);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("section",{className:"sticky top-0 z-20 mb-5 grid gap-px border border-border bg-border sm:grid-cols-[1fr_repeat(5,minmax(110px,0.2fr))]",children:[jsxRuntimeExports.jsx("div",{className:"flex min-h-11 items-center bg-canvas px-3 text-xs text-ink/60",children:"Shared shortlist · official programmes"}),["overall","volume","fit","ease","burden"].map(et=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>s(et),className:`min-h-11 bg-canvas px-3 text-[10px] uppercase tracking-[0.11em] transition-colors hover:bg-canvas-soft ${e===et?"font-semibold text-ink":"text-ink/55"}`,children:et==="burden"?"Burden â":et},et))]}),jsxRuntimeExports.jsxs("div",{className:"mb-2 flex items-center justify-between gap-4 text-[10px] uppercase tracking-[0.14em] text-ink/45",children:[jsxRuntimeExports.jsxs("span",{children:[g.length," opportunities"]}
984),jsxRuntimeExports.jsx("span",{children:"Scores 1â5 · burden: 1 light, 5 heavy"})]}),jsxRuntimeExports.jsxs("section",{className:"overflow-hidden border border-border",children:[jsxRuntimeExports.jsxs("div",{className:"hidden grid-cols-[minmax(210px,1.2fr)_90px_100px_minmax(145px,0.75fr)_repeat(4,52px)_28px] gap-3 bg-ink px-3 py-2.5 text-[9px] uppercase tracking-[0.12em] text-canvas lg:grid",children:[jsxRuntimeExports.jsx("span",{children:"Programme"}),jsxRuntimeExports.jsx("span",{children:"Type"}),jsxRuntimeExports.jsx("span",{children:"Volume"}),jsxRuntimeExports.jsx("span",{children:"Deadline"}),jsxRuntimeExports.jsx("span",{children:"Vol."}),jsxRuntimeExports.jsx("span",{children:"Fit"}),jsxRuntimeExports.jsx("span",{children:"Ease"}),jsxRuntimeExports.jsx("span",{children:"Burden"}),jsxRuntimeExports.jsx("span",{})]}),g.map(et=>jsxRuntimeExports.jsx(PublicFundingRow,{candidate:et,open:a===et.name,onToggle:()=>c(rt=>rt===et.name?null:et.name)},et.name))]}),jsxRuntimeExports.jsx("p",{className:"mt-4 max-w-4xl text-xs leading-5 text-ink/45",children:"Comparative scores are an EAF prioritisation aid, not funder ratings. Volume reflects maximum useful funding; ease covers eligibility and application friction; documentation burden runs from 1 (light) to 5 (heavy). Calls and deadlines should be rechecked before work starts."})]})},PublicFundingRow=({candidate:e,open:s,onToggle:a})=>jsxRuntimeExports.jsxs("article",{className:"border-b border-border last:border-b-0 odd:bg-canvas-soft/25",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:a,"aria-expanded":s,className:"group grid w-full gap-2 px-3 py-3 text-left transition-colors hover:bg-canvas-soft/70 lg:grid-cols-[minmax(210px,1.2fr)_90px_100px_minmax(145px,0.75fr)_repeat(4,52px)_28px] lg:items-center lg:gap-3",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("h2",{className:"text-sm font-medium",children:e.name}),jsxRuntimeExports.jsxs("p",{className:"mt-1 text-[10px] text-ink/45",children:[e.provider," · ",e.status]})]}),jsxRuntimeExports.jsx("span",{className:"w-fit border border-border px-2 py-1 text-[9px] uppercase tracking-[0.09em]",children:e.kind}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium tabular-nums",children:e.amount}),jsxRuntimeExports.jsxs("span",{className:"text-xs leading-4 text-ink/65",children:[jsxRuntimeExports.jsx("span",{className:"mr-1 text-[8px] uppercase tracking-[0.1em] text-ink/35 lg:hidden",children:"Deadline"}),publicFundingDeadline(e)]}),[e.volume,e.fit,e.ease,e.burden].map((c,g)=>jsxRuntimeExports.jsx("span",{className:`inline-flex h-8 w-8 items-center justify-center border text-sm tabular-nums ${g===3&&c>=4?"border-amber-800/20 bg-amber-50":scoreClass(c+5)}`,children:c},g)),jsxRuntimeExports.jsx(ChevronDown,{className:`h-4 w-4 text-ink/35 transition-transform ${s?"rotate-180":""}`})]}),s&&jsxRuntimeExports.jsxs("div",{className:"grid gap-5 border-t border-border bg-canvas-soft/45 px-4 py-4 sm:grid-cols-[1fr_1fr_auto]",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[9px] uppercase tracking-[0.13em] text-ink/40",children:"Why it fits"}),jsxRuntimeExports.jsx("p",{className:"mt-1.5 text-sm leading-6 text-ink/75",children:e.rationale})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[9px] uppercase tracking-[0.13em] text-ink/40",children:"Critical condition"}),jsxRuntimeExports.jsx("p",{className:"mt-1.5 text-sm leading-6 text-ink/75",children:e.condition})]}),jsxRuntimeExports.jsxs("a",{href:e.source,target:"_blank",rel:"noreferrer",className:"inline-flex min-h-10 items-center gap-2 self-start border border-ink px-3 py-2 text-[10px] uppercase tracking-[0.12em] hover:bg-ink hover:text-canvas",children:["Official source",jsxRuntimeExports.jsx(ExternalLink,{className:"h-3.5 w-3.5"})]})]})]}),Stat=({label:e,value:s,last:a=!1})=>jsxRuntimeExports.jsxs("div",{className:`p-4 sm:p-5 ${a?"":"border-b border-border sm:border-b-0 sm:border-r"}`,children:[jsxRuntimeExports.jsx("p",{className:"font-serif text-3xl font-light leading-none",children:s}),jsxRuntimeExports.jsx("p",{className:"mt-2 text-[9px] uppercase tracking-[0.13em] text-ink/45",children:e})]}),FilterSelect=({label:e,value:s,options:a,onChange:c})=>jsxRuntimeExports.jsxs("label",{className:"relative flex min-h-11 items-center bg-canvas px-3",children:[jsxRuntimeExports.jsx("span",{className:"mr-2 text-[9px] uppercase tracking-[0.12em] text-ink/35",children:e}),jsxRuntimeExports.jsx("select",{value:s,onChange:g=>c(g.target.value),className:"min-w-0 flex-1 appearance-none bg-transparent pr-5 text-xs outline-none",children:a.map(g=>jsxRuntimeExports.jsx("option",{value:g,children:g},g))}),jsxRuntimeExports.jsx(ChevronDown,{className:"pointer-events-none absolute right-3 h-3.5 w-3.5 text-ink/40"})]}),FoundationRow=({candidate:e,open:s,onToggle:a})=>jsxRuntimeExports.jsxs("article",{className:"border-b border-border last:border-b-0 odd:bg-canvas-soft/25",children:[jsxRuntimeExports.jsxs("button",{type:"button",onClick:a,className:"group grid w-full gap-2 px-3 py-3 text-left transition-colors hover:bg-canvas-soft/70 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-ink lg:grid-cols-[48px_minmax(210px,1.15fr)_minmax(120px,0.65fr)_120px_115px_minmax(290px,1.5fr)_32px] lg:items-center lg:gap-3","aria-expanded":s,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between lg:block",children:[jsxRuntimeExports.jsx("span",{className:`inline-flex h-8 min-w-10 items-center justify-center border px-1 font-serif text-base tabular-nums ${scoreClass(e.score)}`,children:e.score.toFixed(1)}),jsxRuntimeExports.jsx(ChevronDown,{className:`h-4 w-4 text-ink/40 transition-transform lg:hidden ${s?"rotate-180":""}`})]}),jsxRuntimeExports.jsxs("div",{className:"min-w-0",children:[jsxRuntimeExports.jsx("h2",{className:"truncate font-sans text-sm font-medium",children:e.name}),jsxRuntimeExports.jsx("div",{className:"mt-1 flex flex-wrap gap-1",children:e.themes.slice(0,3).map(c=>jsxRuntimeExports.jsx("span",{className:"border border-border px-1.5 py-0.5 text-[8px] uppercase tracking-[0.09em] text-ink/45",children:c},c))})]}),jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1.5 text-xs text-ink/60",children:[jsxRuntimeExports.jsx(MapPin,{className:"h-3.5 w-3.5 shrink-0 text-ink/30"}),e.city]}),jsxRuntimeExports.jsx("span",{className:`w-fit border px-2 py-1 text-[9px] uppercase tracking-[0.09em] ${routeClass[e.route]}`,children:e.route}),jsxRuntimeExports.jsx("span",{className:"text-sm font-medium tabular-nums",children:e.ask}),jsxRuntimeExports.jsx("p",{className:"line-clamp-2 text-xs leading-5 text-ink/60",children:e.fit}),jsxRuntimeExports.jsx(ChevronDown,{className:`hidden h-4 w-4 text-ink/35 transition-transform group-hover:text-ink lg:block ${s?"rotate-180":""}`})]}),s&&jsxRuntimeExports.jsxs("div",{className:"grid gap-5 border-t border-border bg-canvas-soft/45 px-4 py-4 sm:grid-cols-[1fr_1fr_auto] sm:px-[75px]",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[9px] uppercase tracking-[0.13em] text-ink/40",children:"Why it fits"}),jsxRuntimeExports.jsx("p",{className:"mt-1.5 text-sm leading-6 text-ink/75",children:e.fit})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("p",{className:"text-[9px] uppercase tracking-[0.13em] text-ink/40",children:"Critical condition"}),jsxRuntimeExports.jsx("p",{className:"mt-1.5 text-sm leading-6 text-ink/75",children:e.condition})]}),jsxRuntimeExports.jsx("div",{className:"flex items-start sm:justify-end",children:jsxRuntimeExports.jsxs("a",{href:e.source,target:"_blank",rel:"noreferrer",className:"inline-flex min-h-10 items-center gap-2 border border-ink px-3 py-2 text-[10px] uppercase tracking-[0.12em] transition-colors hover:bg-ink hover:text-canvas",onClick:c=>c.stopPropagation(),children:["Official source",jsxRuntimeExports.jsx(ExternalLink,{className:"h-3.5 w-3.5"})]})})]})]}),NotFound=()=>{const e=useLocation();return reactExports.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),jsxRuntimeExports.jsxs("div",{className:"relative flex min-h-screen items-center justify-center bg-canvas text-ink",children:[jsxRuntimeExports.jsx(Grain,{zIndex:1,opacity:.1}),jsxRuntimeExports.jsxs("div",{className:"relative z-10 text-center max-w-md px-6",children:[jsxRuntimeExports.jsx("div",{className:"eyebrow mb-6",children:"Error"}),jsxRuntimeExports.jsx("h1",{className:"font-serif font-light text-[8rem] md:text-[10rem] text-ink leading-none mb-4",children:"404"}),jsxRuntimeExports.jsx("p",{className:"font-serif text-xl md:text-2xl text-ink/70 mb-10 leading-relaxed",children:"Oops! Page not found"}),jsxRuntimeExports.jsx(Button,{asChild:!0,children:jsxRuntimeExports.jsxs(Link,{to:"/",children:[jsxRuntimeExports.jsx(ArrowLeft,{className:"mr-2 h-4 w-4"}),"Return to Home"]})})]})]})};function removeMeetingAssignee(e,s){const a=e.filter(c=>c!==s);return{people:a,removed:a.length===0}}function toDate(e){const s=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&s==="[object Date]"?new e.constructor(+e):typeof e=="number"||s==="[object Number]"||typeof e=="string"||s==="[object String]"?new Date(e):new Date(NaN)}function constructFrom(e,s){return e instanceof Date?new e.constructor(s):new Date(s)}function addDays(e,s){const a=toDate(e);return isNaN(s)?constructFrom(e,NaN):(s&&a.setDate(a.getDate()+s),a)}const millisecondsInWeek=6048e5,millisecondsInDay=864e5;let defaultOptions={};function getDefaultOptions(){return defaultOptions}
vendor: 5,173 bytes, line 984
984function startOfWeek(e,s){var nt,st,at,it;const a=getDefaultOptions(),c=(s==null?void 0:s.weekStartsOn)??((st=(nt=s==null?void 0:s.locale)==null?void 0:nt.options)==null?void 0:st.weekStartsOn)??a.weekStartsOn??((it=(at=a.locale)==null?void 0:at.options)==null?void 0:it.weekStartsOn)??0,g=toDate(e),et=g.getDay(),rt=(et<c?7:0)+et-c;return g.setDate(g.getDate()-rt),g.setHours(0,0,0,0),g}function startOfISOWeek(e){return startOfWeek(e,{weekStartsOn:1})}function getISOWeekYear(e){const s=toDate(e),a=s.getFullYear(),c=constructFrom(e,0);c.setFullYear(a+1,0,4),c.setHours(0,0,0,0);const g=startOfISOWeek(c),et=constructFrom(e,0);et.setFullYear(a,0,4),et.setHours(0,0,0,0);const rt=startOfISOWeek(et);return s.getTime()>=g.getTime()?a+1:s.getTime()>=rt.getTime()?a:a-1}function startOfDay(e){const s=toDate(e);return s.setHours(0,0,0,0),s}function getTimezoneOffsetInMilliseconds(e){const s=toDate(e),a=new Date(Date.UTC(s.getFullYear(),s.getMonth(),s.getDate(),s.getHours(),s.getMinutes(),s.getSeconds(),s.getMilliseconds()));return a.setUTCFullYear(s.getFullYear()),+e-+a}function differenceInCalendarDays(e,s){const a=startOfDay(e),c=startOfDay(s),g=+a-getTimezoneOffsetInMilliseconds(a),et=+c-getTimezoneOffsetInMilliseconds(c);return Math.round((g-et)/millisecondsInDay)}function startOfISOWeekYear(e){const s=getISOWeekYear(e),a=constructFrom(e,0);return a.setFullYear(s,0,4),a.setHours(0,0,0,0),startOfISOWeek(a)}function addWeeks(e,s){const a=s*7;return addDays(e,a)}function isDate(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function isValid(e){if(!isDate(e)&&typeof e!="number")return!1;const s=toDate(e);return!isNaN(Number(s))}function endOfMonth(e){const s=toDate(e),a=s.getMonth();return s.setFullYear(s.getFullYear(),a+1,0),s.setHours(23,59,59,999),s}function startOfYear(e){const s=toDate(e),a=constructFrom(e,0);return a.setFullYear(s.getFullYear(),0,1),a.setHours(0,0,0,0),a}const formatDistanceLocale={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},formatDistance=(e,s,a)=>{let c;const g=formatDistanceLocale[e];return typeof g=="string"?c=g:s===1?c=g.one:c=g.other.replace("{{count}}",s.toString()),a!=null&&a.addSuffix?a.comparison&&a.comparison>0?"in "+c:c+" ago":c};function buildFormatLongFn(e){return(s={})=>{const a=s.width?String(s.width):e.defaultWidth;return e.formats[a]||e.formats[e.defaultWidth]}}const dateFormats={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},timeFormats={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},dateTimeFormats={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},formatLong={date:buildFormatLongFn({formats:dateFormats,defaultWidth:"full"}),time:buildFormatLongFn({formats:timeFormats,defaultWidth:"full"}),dateTime:buildFormatLongFn({formats:dateTimeFormats,defaultWidth:"full"})},formatRelativeLocale={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},formatRelative=(e,s,a,c)=>formatRelativeLocale[e];function buildLocalizeFn(e){return(s,a)=>{const c=a!=null&&a.context?String(a.context):"standalone";let g;if(c==="formatting"&&e.formattingValues){const rt=e.defaultFormattingWidth||e.defaultWidth,nt=a!=null&&a.width?String(a.width):rt;g=e.formattingValues[nt]||e.formattingValues[rt]}else{const rt=e.defaultWidth,nt=a!=null&&a.width?String(a.width):e.defaultWidth;g=e.values[nt]||e.values[rt]}const et=e.argumentCallback?e.argumentCallback(s):s;return g[et]}}const eraValues={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},quarterValues={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},monthValues={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},dayValues={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Frid
984ay","Saturday"]},dayPeriodValues={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},formattingDayPeriodValues={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ordinalNumber=(e,s)=>{const a=Number(e),c=a%100;if(c>20||c<10)switch(c%10){case 1:return a+"st";case 2:return a+"nd";case 3:return a+"rd"}return a+"th"},localize={ordinalNumber,era:buildLocalizeFn({values:eraValues,defaultWidth:"wide"}),quarter:buildLocalizeFn({values:quarterValues,defaultWidth:"wide",argumentCallback:e=>e-1}),month:buildLocalizeFn({values:monthValues,defaultWidth:"wide"}),day:buildLocalizeFn({values:dayValues,defaultWidth:"wide"}),dayPeriod:buildLocalizeFn({values:dayPeriodValues,defaultWidth:"wide",formattingValues:formattingDayPeriodValues,defaultFormattingWidth:"wide"})};function buildMatchFn(e){return(s,a={})=>{const c=a.width,g=c&&e.matchPatterns[c]||e.matchPatterns[e.defaultMatchWidth],et=s.match(g);if(!et)return null;const rt=et[0],nt=c&&e.parsePatterns[c]||e.parsePatterns[e.defaultParseWidth],st=Array.isArray(nt)?findIndex(nt,ot=>ot.test(rt)):findKey(nt,ot=>ot.test(rt));let at;at=e.valueCallback?e.valueCallback(st):st,at=a.valueCallback?a.valueCallback(at):at;const it=s.slice(rt.length);return{value:at,rest:it}}}function findKey(e,s){for(const a in e)if(Object.prototype.hasOwnProperty.call(e,a)&&s(e[a]))return a}function findIndex(e,s){for(let a=0;a<e.length;a++)if(s(e[a]))return a}function buildMatchPatternFn(e){return(s,a={})=>{const c=s.match(e.matchPattern);if(!c)return null;const g=c[0],et=s.match(e.parsePattern);if(!et)return null;let rt=e.valueCallback?e.valueCallback(et[0]):et[0];rt=a.valueCallback?a.valueCallback(rt):rt;const nt=s.slice(g.length);return{value:rt,rest:nt}}}const matchOrdinalNumberPattern=/^(\d+)(th|st|nd|rd)?/i,parseOrdinalNumberPattern=/\d+/i,matchEraPatterns={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},parseEraPatterns={any:[/^b/i,/^(a|c)/i]},matchQuarterPatterns={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},parseQuarterPatterns={any:[/1/i,/2/i,/3/i,/4/i]},matchMonthPatterns={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},parseMonthPatterns={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},matchDayPatterns={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},parseDayPatterns={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},matchDayPeriodPatterns={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},parseDayPeriodPatterns={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},match={ordinalNumber:buildMatchPatternFn({matchPattern:matchOrdinalNumberPattern,parsePattern:parseOrdinalNumberPattern,valueCallback:e=>parseInt(e,10)}),era:buildMatchFn({matchPatterns:matchEraPatterns,defaultMatchWidth:"wide",parsePatterns:parseEraPatterns,defaultParseWidth:"any"}),quarter:buildMatchFn({matchPatterns:matchQuarterPatterns,defaultMatchWidth:"wide",parsePatterns:parseQuarterPatterns,defaultParseWidth:"any",valueCallback:e=>e+1}),month:buildMatchFn({matchPatterns:matchMonthPatterns,defaultMatchWidth:"wide",parsePatterns:parseMonthPatterns,defaultParseWidth:"any"}),day:buildMatchFn({matchPatterns:matchDayPatterns,defaultMatchWidth:"wide",parsePatterns:parseDayPatterns,defaultParseWidth:"any"}),dayPeriod:buildMatchFn({matchPatterns:matchDayPeriodPatterns,defaultMatchWidth:"any",parsePatterns:parseDayPeriodPatterns,defaultParseWidth:"any"})},enUS={code:"en-US",formatDistance,formatLong,formatRelative,localize,match,options:{weekStartsOn:0,firstWeekContainsDate:1}};function getDayOfYear(e){const s=toDate(e);return differenceInCalendarDays(s,startOfYear(s))+1}function getISOWeek(e){const s=toDate(e),a=+startOfISOWeek(s)-+startOfISOWeekYear(s);return Math.round(a/millisecondsInWeek)+1}function getWeekYear(e,s){var it,ot,lt,ct;
vendor: 11,813 bytes, line 984
984const a=toDate(e),c=a.getFullYear(),g=getDefaultOptions(),et=(s==null?void 0:s.firstWeekContainsDate)??((ot=(it=s==null?void 0:s.locale)==null?void 0:it.options)==null?void 0:ot.firstWeekContainsDate)??g.firstWeekContainsDate??((ct=(lt=g.locale)==null?void 0:lt.options)==null?void 0:ct.firstWeekContainsDate)??1,rt=constructFrom(e,0);rt.setFullYear(c+1,0,et),rt.setHours(0,0,0,0);const nt=startOfWeek(rt,s),st=constructFrom(e,0);st.setFullYear(c,0,et),st.setHours(0,0,0,0);const at=startOfWeek(st,s);return a.getTime()>=nt.getTime()?c+1:a.getTime()>=at.getTime()?c:c-1}function startOfWeekYear(e,s){var nt,st,at,it;const a=getDefaultOptions(),c=(s==null?void 0:s.firstWeekContainsDate)??((st=(nt=s==null?void 0:s.locale)==null?void 0:nt.options)==null?void 0:st.firstWeekContainsDate)??a.firstWeekContainsDate??((it=(at=a.locale)==null?void 0:at.options)==null?void 0:it.firstWeekContainsDate)??1,g=getWeekYear(e,s),et=constructFrom(e,0);return et.setFullYear(g,0,c),et.setHours(0,0,0,0),startOfWeek(et,s)}function getWeek(e,s){const a=toDate(e),c=+startOfWeek(a,s)-+startOfWeekYear(a,s);return Math.round(c/millisecondsInWeek)+1}function addLeadingZeros(e,s){const a=e<0?"-":"",c=Math.abs(e).toString().padStart(s,"0");return a+c}const lightFormatters={y(e,s){const a=e.getFullYear(),c=a>0?a:1-a;return addLeadingZeros(s==="yy"?c%100:c,s.length)},M(e,s){const a=e.getMonth();return s==="M"?String(a+1):addLeadingZeros(a+1,2)},d(e,s){return addLeadingZeros(e.getDate(),s.length)},a(e,s){const a=e.getHours()/12>=1?"pm":"am";switch(s){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];case"aaaa":default:return a==="am"?"a.m.":"p.m."}},h(e,s){return addLeadingZeros(e.getHours()%12||12,s.length)},H(e,s){return addLeadingZeros(e.getHours(),s.length)},m(e,s){return addLeadingZeros(e.getMinutes(),s.length)},s(e,s){return addLeadingZeros(e.getSeconds(),s.length)},S(e,s){const a=s.length,c=e.getMilliseconds(),g=Math.trunc(c*Math.pow(10,a-3));return addLeadingZeros(g,s.length)}},dayPeriodEnum={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},formatters={G:function(e,s,a){const c=e.getFullYear()>0?1:0;switch(s){case"G":case"GG":case"GGG":return a.era(c,{width:"abbreviated"});case"GGGGG":return a.era(c,{width:"narrow"});case"GGGG":default:return a.era(c,{width:"wide"})}},y:function(e,s,a){if(s==="yo"){const c=e.getFullYear(),g=c>0?c:1-c;return a.ordinalNumber(g,{unit:"year"})}return lightFormatters.y(e,s)},Y:function(e,s,a,c){const g=getWeekYear(e,c),et=g>0?g:1-g;if(s==="YY"){const rt=et%100;return addLeadingZeros(rt,2)}return s==="Yo"?a.ordinalNumber(et,{unit:"year"}):addLeadingZeros(et,s.length)},R:function(e,s){const a=getISOWeekYear(e);return addLeadingZeros(a,s.length)},u:function(e,s){const a=e.getFullYear();return addLeadingZeros(a,s.length)},Q:function(e,s,a){const c=Math.ceil((e.getMonth()+1)/3);switch(s){case"Q":return String(c);case"QQ":return addLeadingZeros(c,2);case"Qo":return a.ordinalNumber(c,{unit:"quarter"});case"QQQ":return a.quarter(c,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(c,{width:"narrow",context:"formatting"});case"QQQQ":default:return a.quarter(c,{width:"wide",context:"formatting"})}},q:function(e,s,a){const c=Math.ceil((e.getMonth()+1)/3);switch(s){case"q":return String(c);case"qq":return addLeadingZeros(c,2);case"qo":return a.ordinalNumber(c,{unit:"quarter"});case"qqq":return a.quarter(c,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(c,{width:"narrow",context:"standalone"});case"qqqq":default:return a.quarter(c,{width:"wide",context:"standalone"})}},M:function(e,s,a){const c=e.getMonth();switch(s){case"M":case"MM":return lightFormatters.M(e,s);case"Mo":return a.ordinalNumber(c+1,{unit:"month"});case"MMM":return a.month(c,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(c,{width:"narrow",context:"formatting"});case"MMMM":default:return a.month(c,{width:"wide",context:"formatting"})}},L:function(e,s,a){const c=e.getMonth();switch(s){case"L":return String(c+1);case"LL":return addLeadingZeros(c+1,2);case"Lo":return a.ordinalNumber(c+1,{unit:"month"});case"LLL":return a.month(c,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(c,{width:"narrow",context:"standalone"});case"LLLL":default:return a.month(c,{width:"wide",context:"standalone"})}},w:function(e,s,a,c){const g=getWeek(e,c);return s==="wo"?a.ordinalNumber(g,{unit:"week"}):addLeadingZeros(g,s.length)},I:function(e,s,a){const c=getISOWeek(e);return s==="Io"?a.ordinalNumber(c,{unit:"week"}):addLeadingZeros(c,s.length)},d:function(e,s,a){return s==="do"?a.ordinalNumber(e.getDate(),{unit:"date"}):lightFormatters.d(e,s)},D:function(e,s,a){const c=getDayOfYear(e);return s==="Do"?a.ordinalNumber(c,{unit:"dayOfYear"}):addLeadingZeros(c,s.length)},E:function(e,s,a){const c=e.getDay();switch(s){case"E":case"EE":case"EEE":return a.day(c,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(c,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(c,{width:"short",context:"formatting"});case"EEEE":default:return a.day(c,{width:"wide",context:"formatting"})}},e:function(e,s,a,c){const g=e.getDay(),et=(g-c.weekStartsOn+8)%7||7;switch(s){case"e":return String(et);case"ee":return addLeadingZeros(et,2);case"eo":return a.ordinalNumber(et,{unit:"day"});case"eee":return a.day(g,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(g,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(g,{width:"short",context:"formatting"});case"eeee":default:return a.day(g,{width:"wide",context:"formatting"})}},c:function(e,s,a,c){const g=e.getDay(),et=(g-c.weekStartsOn+8)%7||7;switch(s){case"c":return String(et);case"cc":return addLeadingZeros(et,s.length);case"co":return a.ordinalNumber(et,{unit:"day"});case"ccc":return a.day(g,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(g,{width:"narrow",context:"standalone"});case"cccccc":return a.day(g,{width:"short",context:"standalone"});case"cccc":default:return a.day(g,{width:"wide",context:"standalone"})}},i:function(e,s,a){const c=e.getDay(),g=c===0?7:c;switch(s){case"i":return String(g);case"ii":return addLeadingZeros(g,s.length);case"io":return a.ordinalNumber(g,{unit:"day"});case"iii":return a.day(c,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(c,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(c,{width:"short",context:"formatting"});case"iiii":default:return a.day(c,{width:"wide",context:"formatting"})}},a:function(e,s,a){const g=e.getHours()/12>=1?"pm":"am";switch(s){case"a":case"aa":return a.dayPeriod(g,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(g,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(g,{width:"narrow",context:"formatting"});case"aaaa":default:return a.dayPeriod(g,{width:"wide",context:"formatting"})}},b:function(e,s,a){const c=e.getHours();let g;switch(c===12?g=dayPeriodEnum.noon:c===0?g=dayPeriodEnum.midnight:g=c/12>=1?"pm":"am",s){case"b":case"bb":return a.dayPeriod(g,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(g,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(g,{width:"narrow",context:"formatting"});case"bbbb":default:return a.dayPeriod(g,{width:"wide",context:"formatting"})}},B:function(e,s,a){const c=e.getHours();let g;switch(c>=17?g=dayPeriodEnum.evening:c>=12?g=dayPeriodEnum.afternoon:c>=4?g=dayPeriodEnum.morning:g=dayPeriodEnum.night,s){case"B":case"BB":case"BBB":return a.dayPeriod(g,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(g,{width:"narrow",context:"formatting"});case"BBBB":default:return a.dayPeriod(g,{width:"wide",context:"formatting"})}},h:function(e,s,a){if(s==="ho"){let c=e.getHours()%12;return c===0&&(c=12),a.ordinalNumber(c,{unit:"hour"})}return lightFormatters.h(e,s)},H:function(e,s,a){return s==="Ho"?a.ordinalNumber(e.getHours(),{unit:"hour"}):lightFormatters.H(e,s)},K:function(e,s,a){const c=e.getHours()%12;return s==="Ko"?a.ordinalNumber(c,{unit:"hour"}):addLeadingZeros(c,s.length)},k:function(e,s,a){let c=e.getHours();return c===0&&(c=24),s==="ko"?a.ordinalNumber(c,{unit:"hour"}):addLeadingZeros(c,s.length)},m:function(e,s,a){return s==="mo"?a.ordinalNumber(e.getMinutes(),{unit:"minute"}):lightFormatters.m(e,s)},s:function(e,s,a){return s==="so"?a.ordinalNumber(e.getSeconds(),{unit:"second"}):lightFormatters.s(e,s)},S:function(e,s){return lightFormatters.S(e,s)},X:function(e,s,a){const c=e.getTimezoneOffset();if(c===0)return"Z";switch(s){case"X":return formatTimezoneWithOptionalMinutes(c);case"XXXX":case"XX":return formatTimezone(c);case"XXXXX":case"XXX":default:return formatTimezone(c,":")}},x:function(e,s,a){const c=e.getTimezoneOffset();switch(s){case"x":return formatTimezoneWithOptionalMinutes(c);case"xxxx":case"xx":return formatTimezone(c);case"xxxxx":case"xxx":default:return formatTimezone(c,":")}},O:function(e,s,a){const c=e.getTimezoneOffset();switch(s){case"O":case"OO":case"OOO":return"GMT"+formatTimezoneShort(c,":");case"OOOO":default:return"GMT"+formatTimezone(c,":")}},z:function(e,s,a){const c=e.getTimezoneOffset();switch(s){case"z":case"zz":case"zzz":return"GMT"+formatTimezoneShort(c,":");case"zzzz":default:return"GMT"+formatTimezone(c,":")}},t:function(e,s,a){const c=Math.trunc(e.getTime()/1e3);return addLeadingZeros(c,s.length)},T:function(e,s,a){const c=e.getTime();return addLeadingZeros(c,s.length)}};function formatTimezoneShort(e,s=""){const a=e>0?"-":"+",c=Math.abs(e),g=Math.trunc(c/60),et=c%60;return et===0?a+String(g):a+String(g)+s+addLeadingZeros(et,2)}function formatTimezoneWithOptionalMinutes(e,s){return e%60===0?(e>0?"-":"+")+addLeadingZeros(Math.abs(e)/60,2):formatTimezone(e,s)}function formatTimezone(e,s=""){const a=e>0?"-":"+",c=Math.abs(e),g=addLeadingZeros(Math.trunc(c/60),2),et=addLeadingZeros(c%60,2);return a+g+s+et}const dateLongFormatter=(e,s)=>{switch(e){case"P":return s.date({width:"short"});case"PP":return s.date({width:"medium"});case"PPP":return s.date({width:"long"});case"PPPP":default:return s.date({width:"full"})}},timeLongFormatter=(e,s)=>{switch(e){case"p":return s.time({width:"short"});case"pp":return s.time({width:"medium"});case"ppp":return s.time({width:"long"});case"pppp":default:return s.time({width:"full"})}},dateTimeLongFormatter=(e,s)=>{const a=e.match(/(P+)(p+)?/)||[],c=a[1],g=a[2];if(!g)return dateLongFormatter(e,s);let et;switch(c){case"P":et=s.dateTime({width:"short"});break;case"PP":et=s.dateTime({width:"medium"});break;case"PPP":et=s.dateTime({width:"long"});break;case"PPPP":default:et=s.dateTime({width:"full"});break}return et.replace("{{date}}",dateLongFormatter(c,s)).replace("{{time}}",timeLongFormatter(g,s))},longFormatters={p:timeLongFormatter,P:dateTimeLongFormatter},dayOfYearTokenRE=/^D+$/,weekYearTokenRE=/^Y+$/,throwTokens=["D","DD","YY","YYYY"];function isProtectedDayOfYearToken(e){return dayOfYearTokenRE.test(e)}function isProtectedWeekYearToken(e){return weekYearTokenRE.test(e)}function warnOrThrowProtectedError(e,s,a){const c=message(e,s,a);if(console.warn(c),throwTokens.includes(e))throw new RangeError(c)}function message(e,s,a){const c=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${s}\`) for formatting ${c} to the input \`${a}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const formattingTokensRegExp=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,longFormattingTokensRegExp=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,escapedStringRegExp=/^'([^]*?)'?$/,doubleQuoteRegExp=/''/g,unescapedLatinCharacterRegExp=/[a-zA-Z]/;function format(e,s,a){var it,ot,lt,ct;
984const c=getDefaultOptions(),g=c.locale??enUS,et=c.firstWeekContainsDate??((ot=(it=c.locale)==null?void 0:it.options)==null?void 0:ot.firstWeekContainsDate)??1,rt=c.weekStartsOn??((ct=(lt=c.locale)==null?void 0:lt.options)==null?void 0:ct.weekStartsOn)??0,nt=toDate(e);if(!isValid(nt))throw new RangeError("Invalid time value");let st=s.match(longFormattingTokensRegExp).map(dt=>{const ut=dt[0];if(ut==="p"||ut==="P"){const xt=longFormatters[ut];return xt(dt,g.formatLong)}return dt}).join("").match(formattingTokensRegExp).map(dt=>{if(dt==="''")return{isToken:!1,value:"'"};const ut=dt[0];if(ut==="'")return{isToken:!1,value:cleanEscapedString(dt)};if(formatters[ut])return{isToken:!0,value:dt};if(ut.match(unescapedLatinCharacterRegExp))throw new RangeError("Format string contains an unescaped latin alphabet character `"+ut+"`");return{isToken:!1,value:dt}});g.localize.preprocessor&&(st=g.localize.preprocessor(nt,st));const at={firstWeekContainsDate:et,weekStartsOn:rt,locale:g};return st.map(dt=>{if(!dt.isToken)return dt.value;const ut=dt.value;(isProtectedWeekYearToken(ut)||isProtectedDayOfYearToken(ut))&&warnOrThrowProtectedError(ut,s,String(e));const xt=formatters[ut[0]];return xt(nt,ut,g.localize,at)}).join("")}function cleanEscapedString(e){const s=e.match(escapedStringRegExp);return s?s[1].replace(doubleQuoteRegExp,"'"):e}const monday=e=>format(startOfWeek(e,{weekStartsOn:1}),"yyyy-MM-dd"),shift=(e,s)=>monday(addWeeks(new Date(e+"T12:00:00"),s)),firstName$1=e=>e.trim().split(/\s+/)[0];function PlanningWeekly({tasks:e,people:s,currentPersonId:a,value:c,onChange:g,category:et,categories:rt,projects:nt,categoryId:st,projectTarget:at,categoryStyle:it,onCreateTask:ot,onUpdateTask:lt}){var Nt;const[ct,dt]=reactExports.useState(null),[ut,xt]=reactExports.useState(""),[gt,ht]=reactExports.useState(null),[mt,kt]=reactExports.useState(null),[Ct,Tt]=reactExports.useState(null),[Pt,At]=reactExports.useState({}),[Gt,Mt]=reactExports.useState(null),zt=reactExports.useRef(null),[Jt,nr]=reactExports.useState(null),er=reactExports.useRef(!1),[ur,qt]=reactExports.useState(null),[or,Dt]=reactExports.useState(null),Ht=monday(new Date),Xt=Rt=>{var $t;return(($t=c.meetingDates)==null?void 0:$t[Rt])||format(addDays(new Date(Rt+"T12:00:00"),6),"yyyy-MM-dd")},[Zt,It]=reactExports.useState(2),[Bt,rr]=reactExports.useState(3),lr=Array.from(new Set([...Array.from({length:Zt+Bt+1},(Rt,$t)=>shift(Ht,$t-Zt)),...Object.keys(c.meetingDates||{})])).sort((Rt,$t)=>Xt(Rt).localeCompare(Xt($t))),pr=format(new Date,"yyyy-MM-dd"),tr=lr.find(Rt=>Xt(Rt)>=pr),hr=reactExports.useRef(null),Vt=reactExports.useRef(null),[sr,Lt]=reactExports.useState(!1),Kt=()=>{const Rt=Vt.current,$t=hr.current;if(!Rt||!$t)return;const Qt=Rt.getBoundingClientRect(),gr=$t.getBoundingClientRect();Lt(gr.bottom<=Qt.top+24||gr.top>=Qt.bottom-24)},mr=()=>{const Rt=Vt.current,$t=hr.current;Rt&&$t&&Rt.scrollTo({top:Rt.scrollTop+$t.getBoundingClientRect().top-Rt.getBoundingClientRect().top,behavior:"smooth"})};reactExports.useLayoutEffect(()=>{const Rt=Vt.current,$t=hr.current;Rt&&$t&&(Rt.scrollTop+=$t.getBoundingClientRect().top-Rt.getBoundingClientRect().top),Kt()},[tr]);const xr=(Rt,$t)=>g(Qt=>({...Qt,entries:Qt.entries.map(gr=>gr.id===Rt?{...gr,...$t}:gr)})),cr=(Rt,$t,Qt)=>g(gr=>{var vr;const Nr=gr.entries.find(Cr=>Cr.taskId===Rt&&Cr.week===$t);return{...gr,entries:Nr?gr.entries.map(Cr=>Cr.id===Nr.id?{...Cr,removed:!1,returnedToDue:!1,status:Cr.removed||Cr.status==="dropped"?"todo":Cr.status,people:Qt||Cr.people}:Cr):[...gr.entries,{id:crypto.randomUUID(),taskId:Rt,week:$t,people:Qt||((vr=e.find(Cr=>Cr.id===Rt))==null?void 0:vr.people)||[],status:"todo",note:""}]}}),jr=Rt=>g($t=>{const gr=lr.filter(vr=>Xt(vr)>Xt(Rt.week))[0]||shift(Rt.week,1),Nr=$t.entries.find(vr=>vr.taskId===Rt.taskId&&vr.week===gr);return{...$t,entries:[...$t.entries.map(vr=>vr.id===Rt.id?{...vr,status:"continued"}:vr.id===(Nr==null?void 0:Nr.id)&&(vr.removed||vr.status==="dropped")?{...vr,removed:!1,status:"todo"}:vr),...Nr?[]:[{...Rt,id:crypto.randomUUID(),week:gr,status:"todo",note:"",removed:!1}]]}}),kr=Rt=>{const $t=Rt.end||Rt.date||(Rt.targetMonth?format(endOfMonth(new Date(Rt.targetMonth+"-01T12:00:00")),"yyyy-MM-dd"):"");return{date:$t||(at==null?void 0:at(Rt.id))||"",inherited:!$t}},Pr=c.entries.filter(Rt=>!Rt.removed&&e.some($t=>$t.id===Rt.taskId)),Dr=["",...Array.from(new Set([...s.map(Rt=>Rt.id),...Pr.flatMap(Rt=>Rt.people)])).sort((Rt,$t)=>
984+($t===a)-+(Rt===a))],Vr=(Rt,$t)=>{const Qt=s.find(gr=>gr.id===Rt);return!!(Qt!=null&&Qt.from&&Qt.from<=$t&&(!Qt.until||Qt.until>=$t))},Rr=Pr.filter(Rt=>Xt(Rt.week)<Xt(Ht)&&["todo","doing","blocked"].includes(Rt.status)&&e.some($t=>$t.id===Rt.taskId&&!$t.done)),Tr=Pr.find(Rt=>Rt.id===gt),fr=e.find(Rt=>Rt.id===((Tr==null?void 0:Tr.taskId)||(gt==null?void 0:gt.replace(/^task:/,"")))),Gr=(fr==null?void 0:fr.completionMode)==="everyone"?fr.people:(Tr==null?void 0:Tr.people)||(fr==null?void 0:fr.people)||[],Mr=Rt=>{Tr&&xr(Tr.id,{people:Rt}),fr&<(fr.id,{people:Rt})},Fr=(Rt,$t)=>{if(Rt.button!==0||Rt.target.closest("select,input,textarea"))return;Rt.stopPropagation();const Qt=(Rt.currentTarget.closest("article")||Rt.currentTarget).getBoundingClientRect();zt.current={source:$t,x:Rt.clientX,y:Rt.clientY,active:!1,pointerId:Rt.pointerId,offsetX:Rt.clientX-Qt.left,offsetY:Rt.clientY-Qt.top,width:Qt.width,height:Qt.height},er.current=!1,Rt.target.setPointerCapture(Rt.pointerId)},St=(Rt,$t)=>{var Qt;return(Qt=document.elementFromPoint(Rt,$t))==null?void 0:Qt.closest("[data-drop-week]")},ft=Rt=>{var vr;const $t=zt.current;if(!$t||$t.pointerId!==Rt.pointerId||!$t.active&&Math.hypot(Rt.clientX-$t.x,Rt.clientY-$t.y)<6)return;Rt.preventDefault(),$t.active=!0,Mt($t.source),nr({x:Rt.clientX-$t.offsetX,y:Rt.clientY-$t.offsetY,width:$t.width,height:$t.height,taskId:$t.source.taskId||((vr=Pr.find(Cr=>Cr.id===$t.source.entryId))==null?void 0:vr.taskId)||""});const Qt=St(Rt.clientX,Rt.clientY),gr=(Qt==null?void 0:Qt.dataset.dropWeek)===$t.source.week&&!($t.source.add&&(!Qt.dataset.dropPerson||Qt.dataset.dropPerson==="__due"));qt(gr?$t.source.week+":"+Qt.dataset.dropPerson:null);const Nr=Vt.current;if(Nr){const Cr=Nr.getBoundingClientRect();Rt.clientY>Cr.bottom-35?Nr.scrollTop+=12:Rt.clientY<Cr.top+35&&(Nr.scrollTop-=12)}},pt=(Rt,$t=!1)=>{const Qt=zt.current;if(!Qt||Qt.pointerId!==Rt.pointerId||(zt.current=null,Mt(null),qt(null),nr(null),!Qt.active)||(Rt.preventDefault(),er.current=!0,window.setTimeout(()=>{er.current=!1},0),$t))return;const gr=Qt.source,Nr=St(Rt.clientX,Rt.clientY),vr=Pr.find(dr=>dr.id===gr.entryId);if(Nr){const dr=Nr.dataset.dropPerson||"";if(Nr.dataset.dropWeek!==gr.week||gr.add&&(!dr||dr==="__due"))return;if(dr==="__due"){vr&&(Dt({id:vr.id,people:[...vr.people],removed:vr.removed,message:"Returned to Due soon."}),xr(vr.id,{removed:!0,returnedToDue:!0}));return}gr.taskId?cr(gr.taskId,gr.week,dr?[dr]:[]):vr&&(gr.add?vr.people.includes(dr)||xr(vr.id,{people:[...vr.people,dr]}):xr(vr.id,{people:dr?[dr,...vr.people.filter(Ur=>Ur!==dr)]:[]}));return}const Cr=document.elementFromPoint(Rt.clientX,Rt.clientY);if(vr&&!gr.add&&(Cr!=null&&Cr.closest(".pp-weekly"))&&!Cr.closest(".pp-week-person")){const dr=removeMeetingAssignee(vr.people,gr.personId||"");Dt({id:vr.id,people:[...vr.people],removed:vr.removed,message:dr.removed?"Removed from meeting.":"Assignment removed."}),xr(vr.id,dr)}};return jsxRuntimeExports.jsxs("div",{className:"pp-weekly",onPointerMove:ft,onPointerUp:Rt=>pt(Rt),onPointerCancel:Rt=>pt(Rt,!0),onKeyDown:Rt=>{Rt.key==="Escape"&&zt.current&&(zt.current=null,Mt(null),qt(null),nr(null),er.current=!0)},onClickCapture:Rt=>{er.current&&(Rt.preventDefault(),Rt.stopPropagation(),er.current=!1)},children:[Jt&&reactDomExports.createPortal(jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pp-week-card pp-drag-preview",style:{...it==null?void 0:it(Jt.taskId),left:Jt.x,top:Jt.y,width:Jt.width,height:Jt.height},children:(Nt=e.find(Rt=>Rt.id===Jt.taskId))==null?void 0:Nt.title}),document.body),(Gt==null?void 0:Gt.entryId)&&!Gt.add&&jsxRuntimeExports.jsx("div",{className:"pp-drag-out-hint",children:"Drop outside to remove this personâs assignment · Undo available"}),or&&jsxRuntimeExports.jsxs("div",{className:"pp-week-undo",role:"status",children:[or.message," The task is unchanged. ",jsxRuntimeExports.jsx("button",{onClick:()=>{xr(or.id,{removed:or.removed||!1,people:or.people}),Dt(null)},children:"Undo"})]}),Rr.length>0&&jsxRuntimeExports.jsxs("details",{className:"pp-week-review",children:[jsxRuntimeExports.jsxs("summary",{children:[Rr.length," earlier commitments to review"]}),Rr.map(Rt=>{var $t;return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("button",{onClick:()=>ht(Rt.id),children:($t=e.find(Qt=>Qt.id===Rt.taskId))==null?void 0:$t.title})," · ",Xt(Rt.week),jsxRuntimeExports.jsx("button",{onClick:()=>jr(Rt),children:"Continue to next meeting"}),jsxRuntimeExports.jsx("button",{onClick:()=>xr(Rt.id,{status:"dropped"}),children:"Drop commitment"})]},Rt.id)})]}),sr&&jsxRuntimeExports.jsx("button",{className:"pp-return-current",onClick:mr,children:"Current meeting"}),jsxRuntimeExports.jsxs("div",{className:"pp-weeks-scroll",ref:Vt,onScroll:Kt,children:[jsxRuntimeExports.jsx("button",{onClick:()=>It(Rt=>Rt+4),children:"Show earlier meetings"}),lr.map(Rt=>{const $t=Xt(Rt),Qt=Pr.filter(dr=>dr.week===Rt),gr=e.filter(dr=>!dr.done&&!Qt.some(Ur=>Ur.taskId===dr.id&&Ur.status!=="dropped")),Nr=format(addDays(new Date($t+"T12:00:00"),13),"yyyy-MM-dd"),vr=gr.filter(dr=>{const Ur=kr(dr).date;return Ur&&Ur<=Nr||c.entries.some(Et=>Et.taskId===dr.id&&Et.week===Rt&&Et.removed&&Et.returnedToDue)}).sort((dr,Ur)=>kr(dr).date.localeCompare(kr(Ur).date)),Cr=gr.filter(dr=>(dr.title+" "+et(dr.id)).toLowerCase().includes(ut.trim().toLowerCase())).sort((dr,Ur)=>(kr(dr).date||"9999").localeCompare(kr(Ur).date||"9999"));return jsxRuntimeExports.jsxs("section",{className:"pp-week"+(Rt===tr?" pp-upcoming-meeting":""),"data-week":Rt,ref:Rt===tr?hr:void 0,children:[jsxRuntimeExports.jsxs("header",{children:[jsxRuntimeExports.jsxs("h2",{children:[format(new Date($t+"T12:00:00"),"EEE d MMM yyyy"),Rt===tr&&jsxRuntimeExports.jsx("span",{className:"pp-current-label",children:"Current meeting"})]}),jsxRuntimeExports.jsxs("div",{className:"pp-meeting-actions",children:[jsxRuntimeExports.jsx("button",{title:"Change meeting date",onClick:()=>kt(mt===Rt?null:Rt),children:"Change date"}),jsxRuntimeExports.jsx("button",{onClick:()=>{dt(ct===Rt?null:Rt),xt("")},children:"+ Add task"})]}),mt===Rt&&jsxRuntimeExports.jsx("input",{className:"pp-meeting-date","aria-label":"Meeting date",type:"date",value:$t,onInput:dr=>{const Ur=dr.currentTarget.value;Ur&&g(Et=>({...Et,meetingDates:{...Et.meetingDates,[Rt]:Ur}}))}})]}),jsxRuntimeExports.jsxs("div",{className:"pp-meeting-notes",children:[jsxRuntimeExports.jsx("label",{htmlFor:"notes-"+
984Rt,children:"Meeting notes"}),jsxRuntimeExports.jsx("textarea",{rows:1,ref:dr=>{dr&&(dr.style.height="auto",dr.style.height=Math.min(dr.scrollHeight,180)+"px")},id:"notes-"+Rt,"aria-label":"Meeting notes "+Rt,placeholder:"Meeting notesâ¦",value:c.notes[Rt]||"",onChange:dr=>{const Ur=dr.target.value;g(Et=>({...Et,notes:{...Et.notes,[Rt]:Ur}}))}})]}),ct===Rt&&jsxRuntimeExports.jsxs("div",{className:"pp-task-picker",children:[jsxRuntimeExports.jsxs("div",{className:"pp-picker-top",children:[jsxRuntimeExports.jsx("input",{autoFocus:!0,"aria-label":"Search tasks",placeholder:"Find a task by title or teamâ¦",value:ut,onChange:dr=>xt(dr.target.value)}),jsxRuntimeExports.jsx("button",{onClick:()=>dt(null),children:"Close"})]}),jsxRuntimeExports.jsxs("div",{className:"pp-picker-results",children:[ut.trim()?Cr.slice(0,8).map(dr=>jsxRuntimeExports.jsxs("button",{onClick:()=>{cr(dr.id,Rt),dt(null)},children:[jsxRuntimeExports.jsxs("span",{children:[dr.title,jsxRuntimeExports.jsx("small",{children:et(dr.id)})]}),jsxRuntimeExports.jsx("span",{children:"+ Add"})]},dr.id)):jsxRuntimeExports.jsx("p",{children:"Type to find a task. Upcoming deadlines are in âDue soonâ below."}),ut.trim()&&!Cr.length&&jsxRuntimeExports.jsx("p",{children:"No matching tasks."}),ut.trim()&&Cr.length>8&&jsxRuntimeExports.jsxs("p",{children:["Keep typing to narrow ",Cr.length," results."]})]})]}),jsxRuntimeExports.jsxs("div",{className:"pp-week-people",style:{gridTemplateColumns:`repeat(${Dr.length+1}, minmax(0, 1fr))`},children:[jsxRuntimeExports.jsxs("div",{className:"pp-week-person pp-week-due"+(ur===Rt+":__due"?" pp-drop-target":""),"data-drop-week":Rt,"data-drop-person":"__due",children:[jsxRuntimeExports.jsxs("h3",{children:["Due soon ",jsxRuntimeExports.jsx("span",{children:vr.length})]}),vr.map(dr=>jsxRuntimeExports.jsxs("article",{draggable:!1,onPointerDown:Ur=>Fr(Ur,{week:Rt,add:!1,taskId:dr.id}),title:et(dr.id),style:it==null?void 0:it(dr.id),className:"pp-week-card",children:[jsxRuntimeExports.jsx("div",{className:"pp-task-line",children:jsxRuntimeExports.jsx("button",{className:"pp-week-task-title",onClick:()=>ht("task:"+dr.id),children:dr.title})}),kr(dr).date&&jsxRuntimeExports.jsx("small",{title:kr(dr).inherited?"Inherited project target":"Task due date",children:format(new Date(kr(dr).date+"T12:00:00"),"d MMM")})]},dr.id)),!vr.length&&jsxRuntimeExports.jsx("p",{className:"pp-week-empty",children:"Nothing due"})]}),Dr.map(dr=>{var Ur,Et,ir;return jsxRuntimeExports.jsxs("div",{className:"pp-week-person"+(dr&&dr===a?" pp-week-me":"")+(ur===Rt+":"+dr?" pp-drop-target":""),"data-drop-week":Rt,"data-drop-person":dr,children:[jsxRuntimeExports.jsxs("h3",{children:[dr?jsxRuntimeExports.jsxs("button",{className:"pp-column-presence",title:"Toggle meeting attendance","aria-label":"Present: "+firstName$1(((Ur=s.find(ar=>ar.id===dr))==null?void 0:Ur.name)||"Previous assignee")+" · "+$t,"aria-pressed":(((Et=c.attendance)==null?void 0:Et[Rt])||[]).includes(dr),onClick:()=>g(ar=>{var wr;const br=((wr=ar.attendance)==null?void 0:wr[Rt])||[];return{...ar,attendance:{...ar.attendance,[Rt]:br.includes(dr)?br.filter(yr=>yr!==dr):[...br,dr]}}}),children:[jsxRuntimeExports.jsx("span",{className:"pp-presence-dot"}),firstName$1(((ir=s.find(ar=>ar.id===dr))==null?void 0:ir.name)||"Previous assignee"),Vr(dr,$t)&&jsxRuntimeExports.jsx("small",{className:"pp-away-label",title:"Passive during this meeting",children:"Away"})]}):"To assign"," ",jsxRuntimeExports.jsx("span",{children:Qt.filter(ar=>dr?ar.people.includes(dr):!ar.people.length).length})]}),!dr&&jsxRuntimeExports.jsx("form",{className:"pp-inline-create",onSubmit:ar=>{ar.preventDefault();const br=(Pt[Rt]||"").trim();br&&(ot(br,Rt),At(wr=>({...wr,[Rt]:""})))},children:jsxRuntimeExports.jsx("input",{"aria-label":"New task for meeting "+$t,placeholder:"+ New taskâ¦",value:Pt[Rt]||"",onChange:ar=>{const br=ar.target.value;At(wr=>({...wr,[Rt]:br}))}})}),Qt.filter(ar=>dr?ar.people.includes(dr):!ar.people.length).map(ar=>{const br=e.find(wr=>wr.id===ar.taskId);return jsxRuntimeExports.jsxs("article",{draggable:!1,onPointerDown:wr=>Fr(wr,{week:Rt,add:!1,entryId:ar.id,personId:dr}),title:et(br.id),style:it==null?void 0:it(br.id),className:"pp-week-card pp-week-"+(br.done?"done":ar.status)+(dr&&ar.people[0]!==dr?" pp-collaborator-copy":""),children:[jsxRuntimeExports.jsx("div",{className:"pp-task-line",children:jsxRuntimeExports.jsx("button",{className:"pp-week-task-title",onClick:()=>ht(gt===ar.id?null:ar.id),children:br.title})}),kr(br).date&&jsxRuntimeExports.jsx("small",{title:kr(br).inherited?"Inherited project target":"Task due date",children:format(new Date(kr(br).date+"T12:00:00"),"d MMM")}),(br.done||ar.status!=="todo")&&jsxRuntimeExports.jsx("small",{children:br.done?"done":ar.status}),ar.people.length>0&&jsxRuntimeExports.jsxs("div",{className:"pp-quick-assign",children:[jsxRuntimeExports.jsx("button",{className:"pp-add-collaborator",draggable:!1,onPointerDown:wr=>Fr(wr,{week:Rt,add:!0,entryId:ar.id,personId:dr}),title:"Drag + to another person to add a collaborator","aria-label":"Also assign "+br.title,onClick:()=>Tt(Ct===ar.id+dr?null:ar.id+dr),children:"+"}),Ct===ar.id+dr&&jsxRuntimeExports.jsxs("select",{autoFocus:!0,"aria-label":"Also assign "+br.title,value:"",onChange:wr=>{wr.target.value&&xr(ar.id,{people:[...ar.people,wr.target.value]}),Tt(null)},children:[jsxRuntimeExports.jsx("option",{value:"",children:"Choose personâ¦"}),s.filter(wr=>!ar.people.includes(wr.id)).map(wr=>jsxRuntimeExports.jsx("option",{value:wr.id,children:firstName$1(wr.name)},wr.id))]})]})]},ar.id)})]},dr)})]})]},Rt)}),jsxRuntimeExports.jsx("button",{onClick:()=>rr(Rt=>Rt+4),children:"Show later meetings"})]}),jsxRuntimeExports.jsx(Dialog,{open:!!fr,onOpenChange:Rt=>{Rt||ht(null)},children:jsxRuntimeExports.jsx(DialogContent,{className:"pp-week-popup pp-task-dialog",onOpenAutoFocus:Rt=>Rt.preventDefault(),children:fr&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(DialogTitle,{className:"sr-only",children:fr.title}),jsxRuntimeExports.jsx(DialogDescription,{className:"sr-only",children:"Task details and completion"}),jsxRuntimeExports.jsx("input",{className:"pp-task-title-edit","aria-label":"Task title",value:fr.title,onChange:Rt=>lt(fr.id,{title:Rt.target.value})}),jsxRuntimeExports.jsx("div",{className:"pp-task-completion",children:fr.completionMode!=="everyone"?jsxRuntimeExports.jsx("button",{className:"pp-primary",onClick:()=>lt(fr.id,{done:!fr.done}),children:fr.done?"Reopen task":"Complete task"}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("strong",{children:[fr.people.filter(Rt=>{var $t;return($t=fr.checkedBy)==null?void 0:$t.includes(Rt)}
984).length," / ",fr.people.length," complete"]}),jsxRuntimeExports.jsx("div",{className:"pp-preview-checks",children:fr.people.map(Rt=>{var $t,Qt;return jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:(($t=fr.checkedBy)==null?void 0:$t.includes(Rt))||!1,onChange:gr=>{var Nr;return lt(fr.id,{checkedBy:gr.target.checked?[...fr.checkedBy||[],Rt]:(Nr=fr.checkedBy)==null?void 0:Nr.filter(vr=>vr!==Rt)})}}),firstName$1(((Qt=s.find(gr=>gr.id===Rt))==null?void 0:Qt.name)||"Previous assignee")]},Rt)})}),!fr.people.length&&jsxRuntimeExports.jsx("small",{children:"Assign people below to track individual completion."})]})}),jsxRuntimeExports.jsxs("div",{className:"pp-task-fields",children:[jsxRuntimeExports.jsxs("label",{children:["Category",jsxRuntimeExports.jsx("select",{"aria-label":"Task category",value:st(fr.id),onChange:Rt=>lt(fr.id,{parent:Rt.target.value}),children:rt.map(Rt=>jsxRuntimeExports.jsx("option",{value:Rt.id,children:Rt.title},Rt.id))})]}),jsxRuntimeExports.jsxs("label",{children:["Project",jsxRuntimeExports.jsxs("select",{"aria-label":"Task project",value:nt.some(Rt=>Rt.id===fr.parent)&&fr.parent||"",onChange:Rt=>lt(fr.id,{parent:Rt.target.value||st(fr.id)}),children:[jsxRuntimeExports.jsx("option",{value:"",children:"No project"}),nt.filter(Rt=>Rt.categoryId===st(fr.id)).map(Rt=>jsxRuntimeExports.jsx("option",{value:Rt.id,children:Rt.title},Rt.id))]})]}),jsxRuntimeExports.jsxs("fieldset",{children:[jsxRuntimeExports.jsx("legend",{children:"People"}),jsxRuntimeExports.jsx("div",{className:"pp-assignee-picker",children:Array.from(new Set([...s.map(Rt=>Rt.id),...Gr])).map(Rt=>{var $t;return jsxRuntimeExports.jsxs("button",{"aria-pressed":Gr.includes(Rt),onClick:()=>Mr(Gr.includes(Rt)?Gr.filter(Qt=>Qt!==Rt):[...Gr,Rt]),children:[firstName$1((($t=s.find(Qt=>Qt.id===Rt))==null?void 0:$t.name)||"Previous assignee"),fr.completionMode!=="everyone"&&Gr[0]===Rt&&jsxRuntimeExports.jsx("small",{children:" · responsible"})]},Rt)})})]}),jsxRuntimeExports.jsxs("label",{children:["Completion",jsxRuntimeExports.jsxs("select",{"aria-label":"Completion mode",value:fr.completionMode||"single",onChange:Rt=>lt(fr.id,{completionMode:Rt.target.value,people:Gr,checkedBy:[],done:!1}),children:[jsxRuntimeExports.jsx("option",{value:"single",children:"Anyone can complete"}),jsxRuntimeExports.jsx("option",{value:"everyone",children:"Everyone must complete individually"})]})]}),jsxRuntimeExports.jsxs("label",{children:["Notes",jsxRuntimeExports.jsx("textarea",{"aria-label":"Task notes",placeholder:"Add notesâ¦",value:fr.notes||"",onChange:Rt=>lt(fr.id,{notes:Rt.target.value})})]}),jsxRuntimeExports.jsxs("fieldset",{children:[jsxRuntimeExports.jsx("legend",{children:"Due date"}),jsxRuntimeExports.jsxs("div",{className:"pp-unified-date",children:[jsxRuntimeExports.jsx("input",{"aria-label":"Due month",type:"month",value:(fr.end||fr.date||fr.targetMonth||"").slice(0,7),onInput:Rt=>{const $t=Rt.currentTarget.value,Qt=(fr.end||fr.date||"").slice(8,10),gr=$t?endOfMonth(new Date($t+"-01T12:00:00")).getDate():0;lt(fr.id,{targetMonth:Qt?"":$t,date:$t&&Qt?$t+"-"+String(Math.min(Number(Qt),gr)).padStart(2,"0"):"",end:""})}}),jsxRuntimeExports.jsxs("select",{"aria-label":"Due day (optional)",disabled:!(fr.end||fr.date||fr.targetMonth),value:(fr.end||fr.date||"").slice(8,10),onChange:Rt=>{const $t=(fr.end||fr.date||fr.targetMonth||"").slice(0,7);lt(fr.id,{targetMonth:Rt.target.value?"":$t,date:Rt.target.value?$t+"-"+Rt.target.value:"",end:""})},children:[jsxRuntimeExports.jsx("option",{value:"",children:"Day optional"}),Array.from({length:endOfMonth(new Date((fr.end||fr.date||fr.targetMonth||Ht).slice(0,7)+"-01T12:00:00")).getDate()},(Rt,$t)=>jsxRuntimeExports.jsx("option",{value:String($t+1).padStart(2,"0"),children:$t+1},$t))]})]}),kr(fr).inherited&&kr(fr).date&&jsxRuntimeExports.jsxs("small",{children:["Project date: ",format(new Date(kr(fr).date+"T12:00:00"),"d MMM yyyy")]})]}),Tr&&jsxRuntimeExports.jsxs("details",{className:"pp-meeting-task-options",children:[jsxRuntimeExports.jsxs("summary",{children:["Meeting · ",format(new Date(Xt(Tr.week)+"T12:00:00"),"d MMM")]}),jsxRuntimeExports.jsxs("select",{"aria-label":"Commitment status",value:Tr.status,onChange:Rt=>xr(Tr.id,{status:Rt.target.value}),children:[jsxRuntimeExports.jsx("option",{value:"todo",children:"To do"}),jsxRuntimeExports.jsx("option",{value:"doing",children:"Doing"}),jsxRuntimeExports.jsx("option",{value:"blocked",children:"Blocked"}),jsxRuntimeExports.jsx("option",{value:"done",children:"Commitment done"}),jsxRuntimeExports.jsx("option",{value:"continued",children:"Continued"}),jsxRuntimeExports.jsx("option",{value:"dropped",children:"Dropped"})]}),jsxRuntimeExports.jsx("textarea",{"aria-label":"Meeting update",placeholder:"Update for this meetingâ¦",value:Tr.note,onChange:Rt=>xr(Tr.id,{note:Rt.target.value})}),!["continued","dropped"].includes(Tr.status)&&jsxRuntimeExports.jsx("button",{onClick:()=>jr(Tr),children:"Continue to next meeting â"}),jsxRuntimeExports.jsx("button",{onClick:()=>{xr(Tr.id,{removed:!0}),Dt({id:Tr.id,people:[...Tr.people],removed:Tr.removed,message:"Removed from meeting."}),ht(null)},children:"Remove from meeting"})]})]}),jsxRuntimeExports.jsxs("div",{className:"pp-task-delete",children:[jsxRuntimeExports.jsx("button",{onClick:()=>{lt(fr.id,{deleted:!0}
984),ht(null)},children:"Delete task"}),jsxRuntimeExports.jsx("small",{children:"Can be restored from Trash."})]})]})})})]})}function packTimeline(e,s,a,c){const g=new Map,et=[];let rt=0;for(const nt of s){const st=e.filter(lt=>lt.category===nt).sort((lt,ct)=>lt.start-ct.start||lt.end-ct.end||lt.id.localeCompare(ct.id)),at=[],it=(lt,ct)=>{let dt=at.findIndex(ut=>ut.every(xt=>lt.end<xt.start||lt.start>xt.end));if(dt===-1){if(!ct)return;dt=at.length,at.push([])}at[dt].push(lt),g.set(lt.id,rt+dt)},ot=lt=>lt.end<a-1;st.filter(lt=>c||!ot(lt)).forEach(lt=>it(lt,!0)),c||st.filter(ot).forEach(lt=>it(lt,!1)),at.length&&et.push({category:nt,first:rt,count:at.length}),rt+=at.length}return{columns:g,groups:et,columnCount:rt,hiddenCount:e.length-g.size}}const firstName=e=>e.trim().split(/\s+/)[0],KEY="eaf-planning-local-v2",previousKey="eaf-planning-local-v1",MONTH_HEIGHT=160,categoryColors=[{ink:"#475569",fill:"#dce2ea",light:"#e8edf3"},{ink:"#087443",fill:"#ade5c5",light:"#d1f2de"},{ink:"#a65300",fill:"#ffcf85",light:"#ffe4b5"},{ink:"#174fc4",fill:"#aacbff",light:"#d4e3ff"},{ink:"#b02263",fill:"#f3add0",light:"#fbd3e7"},{ink:"#7136c1",fill:"#ceb0f5",light:"#e7d7fc"}],seed={people:[],items:[]},addSeed=(e,s,a=null,c="")=>seed.items.push({id:e,title:s,parent:a,notes:c,people:[],date:"",end:"",done:!1,kind:a?["finance","fundraising","academies"].includes(a)?"project":"task":"area",targetMonth:""});addSeed("finance","Finance");addSeed("documents","Create a document management system","finance","Set up how we collect, organise and find financial documents.");addSeed("taxes","Prepare taxes","finance");addSeed("fundraising","Fundraising");for(const[e,s]of[["private","Private"],["corporate","Corporate"],["public","Public"]])addSeed(e,s,"fundraising"),addSeed(`${e}-strategy`,"Develop strategy",e);addSeed("gresearch","G-Research follow-up","corporate");addSeed("jane-street","Jane Street follow-up","corporate");addSeed("academies","Academies");addSeed("venue","Decide on venue","academies");addSeed("dates","Decide on dates","academies");addSeed("lecturers","Find and confirm lecturers","academies");addSeed("community","Mentoring & community",null,"To be decided.");addSeed("communications","Communications & recruitment",null,"To be decided.");const today=()=>format(new Date,"yyyy-MM-dd"),passive=(e,s)=>!!(e.from&&e.from<=s&&(!e.until||e.until>=s)),labelDate=e=>e?format(new Date(`${e}T12:00:00`),"d MMM"):"",starterTodos={venue:["Collect venue offers","Compare shortlisted venues","Confirm the booking"],lecturers:["Agree seminar topics","Contact potential lecturers","Confirm participation"],dates:["Review possible dates","Agree academy dates"],documents:["Agree how documents are collected and stored","Set up the document system"],taxes:["Gather records and outstanding questions","Prepare the accountant handover"]};function withStarterTodos(e){const s=[...e.items];for(const[a,c]of Object.entries(starterTodos))!s.some(g=>g.id===a)||s.some(g=>g.parent===a)||c.forEach((g,et)=>s.push({id:`${a}-todo-${et}`,parent:a,title:g,notes:"",people:[],date:"",end:"",done:!1,kind:"task",targetMonth:""}));return{...e,items:s}}function initial(){try{const e=JSON.parse(localStorage.getItem(KEY)||"null");if(e&&Array.isArray(e.items)&&Array.isArray(e.people))return e;const s=JSON.parse(localStorage.getItem(previousKey)||"null");if(s&&Array.isArray(s.items)&&Array.isArray(s.people)){const a={sep26:"2026-09",dec26:"2026-12",mar27:"2027-03",jun27:"2027-06",aug27:"2027-08"};return withStarterTodos({people:s.people,items:s.items.map(c=>{var st,at,it;const{phase:g,...et}=c,rt=s.items.find(ot=>ot.id===et.parent),nt=(it=(at=(st=s.phases)==null?void 0:st.find(ot=>ot.id===g))==null?void 0:at.target)==null?void 0:it.slice(0,7);return{...et,kind:et.parent?!(rt!=null&&rt.parent)||s.items.some(ot=>ot.parent===et.id)?"project":"task":"area",targetMonth:nt||(g?a[g]:"")||""}})})}}catch{}return withStarterTodos(structuredClone(seed))}function withPlanningNotes(e){if((e.notesVersion||0)>=1)return e;const s=e.items.map(et=>({...et})),a=(et,rt,nt,st,at="",it="",ot="")=>{s.some(lt=>lt.id===et)||s.push({id:et,parent:rt,title:nt,kind:st,startMonth:at,targetMonth:it,notes:ot,people:[],date:"",end:"",done:!1})};for(const[et,rt,nt]of[["venue","2026-09","2026-09"],["lecturers","2026-09","2026-11"]]){const st=s.find(at=>at.id===et);st&&!st.startMonth&&!st.targetMonth&&!st.date&&!st.end&&Object.assign(st,{startMonth:rt,targetMonth:nt})}a("academy-programme","academies","Prepare academy programme","project","2026-12","2027-03"),a("academy-followup","academies","Academy follow-up & learnings","project","2026-09","2026-10"),a("lecturer-gifts","academy-followup","Send gifts to lecturers","task"),a("academy-feedback","academy-followup","Collect feedback and learnings","task"),a("academy-report","academy-followup","Write the follow-up report","task","","2026-10"),a("applications","communications","Academy applications","project","","","Proposed owner: Communications & recruitment. Coordinate outreach, applications, applicant communication and selection logistics. Academy team contributes academic assessment. Timing and individual owners to agree."),a("applications-process","applications","Agree application process and selection criteria with Academy team","task"),a("applications-outreach","applications","Plan application outreach","task"),a("applications-review","applications","Coordinate application reviews and decisions","task"),a("applications-comms","applications","Communicate decisions to applicants","task"),a("fellow-roles","community","Roles fellows can apply for","project","","","Fellows can apply for specific team roles. Selected fellows join the team; active/passive availability remains separate from roles."),a("define-fellow-roles","fellow-roles","Agree role scopes and expectations","task"),a("invite-role-applications","fellow-roles","Invite fellows to apply for open roles","task");const c=(et,rt,nt,st)=>({id:et,title:rt,category:nt,description:st,status:"draft",person:"",interest:""}),g=[c("applications-coordinator","Applications coordinator","communications","Coordinate outreach, application reviews and applicant communication with the Academy team."),c("academy-programme-support","Academy programme organiser","academies","Help organise lecturers, the afternoon programme and academy logistics."),c("mentoring-coordinator","Mentoring coordinator","community","Help recruit mentors, coordinate matching and keep the programme running.")];return{...e,items:s,roles:[...e.roles||[],...g.filter(et=>{var rt;return!((rt=e.roles)!=null&&rt.some(nt=>nt.id===et.id))})],notesVersion:1}}function withTeamSetup(e){var g;if((e.notesVersion||0)>=2)return e;const s=e.items.map(et=>({...et})),a=(et,rt,nt,st="task",at="")=>{s.some(it=>it.id===et)||s.push({id:et,parent:rt,title:nt,kind:st,notes:at,people:[],date:"",end:"",done:!1,startMonth:st==="project"?"2026-09":"",targetMonth:st==="project"?"2026-10":""})},c=(et,rt)=>{const nt=s.find(st=>st.id===et);nt&&Object.assign(nt,rt)};for(const et of["finance","fundraising","academies","community","communications"])a(`${et}-setup`,et,"Team setup","project"),a(`${et}-fellow-roles`,`${et}-setup`,"Define roles fellows can apply for","task","Agree role scope, expectations and how fellows apply for this team.");c("documents",{deleted:!0}
984),c("taxes",{archived:!0});for(const[et,rt]of[["receipts-system","Make donation receipts easy to create"],["missing-receipts","Send missing donation receipts"],["tax-year-plan","Create the tax-year plan: deadlines, requirements, returns and bookkeeping"],["finance-pulse","Plan the Pulse tools for financial documents and automation"]])a(et,"finance-setup",rt);for(const et of["gresearch","jane-street"])c(et,{parent:"fundraising-setup"});for(const[et,rt]of[["private","Private â including Studienstiftung alumni"],["corporate","Corporate"],["public","Public"]])c(`${et}-strategy`,{parent:"fundraising-setup",title:`Develop funding plan: ${rt}`}),c(et,{archived:!0});a("institutions-strategy","fundraising-setup","Develop funding plan: Institutions"),a("fundraising-year-plan","fundraising-setup","Schedule year-round approaches, follow-ups and funding applications"),a("funded-awards","fundraising-setup","Include funded awards and recognition opportunities in the funding plans"),c("dates",{startMonth:"2026-09",targetMonth:"2026-09"}),c("lecturers",{startMonth:"2026-10",targetMonth:"2026-12"}),c("academy-programme",{startMonth:"2027-01"}),c("applications",{parent:"academies",notes:"Academies owns the application process, interviews, selection and applicant communication. Communications & recruitment owns outreach."}),c("applications-process",{title:"Define the application process and selection criteria"}),c("applications-outreach",{parent:"communications-setup"}),a("applications-interviews","applications","Plan and conduct applicant interviews"),c("fellow-roles",{deleted:!0});for(const[et,rt]of[["community-feedback","Prepare feedback forms on alcohol, safety and community experiences"],["mentorship-analysis","Discuss what great mentorship looks like and how to sustain it"],["community-formats","Explore other and new community formats"],["community-students","Define the connection with students"],["mentoring-future","Create the plan for future mentoring"]])a(et,"community-setup",rt);for(const[et,rt]of[["website-feedback-update","Update the website based on feedback"],["social-media-plan","Create a social-media plan based on feedback"],["eaf-insights","Decide how insights from within EAF inform communications"],["media-recognition","Include media coverage and public recognition in the communications plan"]])a(et,"communications-setup",rt);return{...e,items:s,notesVersion:2,roles:(g=e.roles)==null?void 0:g.map(et=>et.id==="applications-coordinator"?{...et,category:"academies",description:"Coordinate the application process, interviews, reviews and applicant communication. Work with Communications & recruitment on outreach."}:et)}}function mergeAcademyDatesAndVenue(e){if((e.notesVersion||0)>=3)return e;const s=e.items.find(c=>c.id==="venue"),a=e.items.find(c=>c.id==="dates");return!s||!a?{...e,notesVersion:3}:{...e,notesVersion:3,items:e.items.map(c=>c.id===s.id?{...c,title:"Decide on dates and venue",startMonth:"2026-09",targetMonth:"2026-09",people:[...new Set([...c.people,...a.people])],notes:[c.notes,a.notes].filter(Boolean).join(` 985 986`),done:c.done&&a.done}:c.id===a.id?{...c,deleted:!0}:c.parent===a.id?{...c,parent:s.id}:c)}}function mergeAcademySetupAndFollowup(e){if((e.notesVersion||0)>=4)return e;const s=e.items.find(c=>c.id==="academies-setup"),a=e.items.find(c=>c.id==="academy-followup");return!s||!a?{...e,notesVersion:4}:{...e,notesVersion:4,items:e.items.map(c=>c.id===s.id?{...c,title:"Team setup & academy follow-up",startMonth:"2026-09",targetMonth:"2026-10",people:[...new Set([...c.people,...a.people])],notes:[c.notes,a.notes].filter(Boolean).join(` 987 988`),done:c.done&&a.done}:c.id===a.id?{...c,deleted:!0}:c.parent===a.id?{...c,parent:s.id}:c)}}function withPreimbursements(e){if((e.notesVersion||0)>=5)return e;const s="academy-preimbursements";return{...e,notesVersion:5,items:e.items.some(a=>a.id===s)?e.items:[...e.items,{id:s,parent:"academies-setup",title:"Set up a pre-imbursement system",kind:"task",notes:"Define how academy participants can receive funds in advance of expenses, including the request process, approval and later reconciliation with receipts.",people:[],date:"",end:"",done:!1,targetMonth:""}]}}function withoutFinanceFellowRoles(e){return(e.notesVersion||0)>=6?e:{...e,notesVersion:6,items:e.items.map(s=>s.id==="finance-fellow-roles"?{...s,deleted:!0}
988:s)}}function withLooseFundraisingFollowups(e){return(e.notesVersion||0)>=7?e:{...e,notesVersion:7,items:e.items.map(s=>s.id==="fundraising-setup"?{...s,title:"Block I"}:["gresearch","jane-street"].includes(s.id)?{...s,parent:"fundraising"}:s)}}const monthLabel=e=>e?`By end of ${format(new Date(`${e}-01T12:00:00`),"MMMM yyyy")}`:"";function TimelineProjectLabel({heading:e,todos:s,taskSpace:a,onOpen:c,onTask:g}){const et=reactExports.useRef(null),rt=reactExports.useRef(null),[nt,st]=reactExports.useState(0);return reactExports.useLayoutEffect(()=>{const at=et.current,it=at==null?void 0:at.parentElement,ot=rt.current;if(!at||!it||!ot)return;const lt=it.closest(".pp-vertical-scroll"),ct=()=>{const ut=Math.min(it.clientHeight,a,(lt==null?void 0:lt.clientHeight)||1/0),xt=Math.max(0,Math.floor((ut-ot.offsetHeight-32)/20));st(s.length>xt?Math.max(0,xt-1):xt)},dt=new ResizeObserver(ct);return dt.observe(it),dt.observe(ot),lt&&dt.observe(lt),ct(),()=>dt.disconnect()},[s.length,a]),jsxRuntimeExports.jsxs("div",{ref:et,className:"pp-sticky-project-label",children:[jsxRuntimeExports.jsx("div",{ref:rt,children:e}),s.slice(0,nt).map(at=>jsxRuntimeExports.jsxs("button",{className:`pp-mini-todo pp-fit-todo ${at.done?"pp-complete":""}`,onClick:()=>g(at.id),title:at.title,children:[jsxRuntimeExports.jsx("span",{children:at.done?"â":"·"}),jsxRuntimeExports.jsx("span",{children:at.title})]},at.id)),s.length>nt&&jsxRuntimeExports.jsxs("button",{className:"pp-mini-more pp-fit-more",onClick:c,children:["+",s.length-nt," more"]})]})}function PulsePlanningPreview({integrated:e=!1}){var Nr,vr,Cr,dr,Ur;const{data:s,setData:a,ready:c,message:g,saving:et,reload:rt,exportDraft:nt}=usePlanningWorkspace(()=>e?{items:[],people:[]}:(()=>{const Et=withLooseFundraisingFollowups(withoutFinanceFellowRoles(withPreimbursements(mergeAcademySetupAndFollowup(mergeAcademyDatesAndVenue(withTeamSetup(withPlanningNotes(initial())))))));return{...Et,items:Et.items.map(ir=>{const{archived:ar,...br}=ir;if(br.kind==="project"){let wr=Et.items.find(yr=>yr.id===br.parent);for(;wr!=null&&wr.parent;)(wr.deleted||wr.archived)&&(br.deleted=!0),wr=Et.items.find(yr=>yr.id===(wr==null?void 0:wr.parent));wr&&(br.parent=wr.id)}return ar?{...br,deleted:!0}:br})}})(),e);reactExports.useEffect(()=>{!c||s.items.some(Et=>Et.id==="general")||a(Et=>Et.items.some(ir=>ir.id==="general")?Et:{...Et,items:[...Et.items,{id:"general",parent:null,title:"General",notes:"",people:[],date:"",end:"",done:!1,kind:"area",targetMonth:""}]})},[c,s.items,a]),reactExports.useEffect(()=>{!c||!s.items.some(Et=>Et.kind==="area"&&Et.title.trim().toLowerCase()==="new category"&&!Et.deleted)||a(Et=>{const ir=new Set(Et.items.filter(ar=>ar.kind==="area"&&ar.title.trim().toLowerCase()==="new category"&&!ar.deleted).map(ar=>ar.id));return{...Et,items:Et.items.map(ar=>ir.has(ar.id)?{...ar,deleted:!0}:ar.parent&&ir.has(ar.parent)?{...ar,parent:"general"}:ar)}})},[c,s.items,a]);const[st,at]=reactExports.useState(today);reactExports.useEffect(()=>{const Et=window.setInterval(()=>at(today()),6e4);return()=>window.clearInterval(Et)},[]);const[it,ot]=reactExports.useState("weekly"),lt=reactExports.useRef(null),ct=reactExports.useRef(null),[dt,ut]=reactExports.useState("all"),[xt,gt]=reactExports.useState(!1),[ht,mt]=reactExports.useState([]),[kt,Ct]=reactExports.useState(null),[Tt,Pt]=reactExports.useState(!1),At=reactExports.useRef(null);reactExports.useEffect(()=>Pt(kt===At.current&&kt!==null),[kt]);const Gt=e?pulsePath():"/__qa/pulse",[Mt,zt]=reactExports.useState(""),[Jt,nr]=reactExports.useState([]),[er,ur]=reactExports.useState("Loading active Pulse adminsâ¦"),[qt,or]=reactExports.useState(!1),[Dt,Ht]=reactExports.useState(!1),[Xt,Zt]=reactExports.useState("");reactExports.useEffect(()=>{if(!e)try{localStorage.setItem(KEY,JSON.stringify(s)),Ht(!1)}catch{Ht(!0)}},[s,e]),reactExports.useEffect(()=>{const Et=ir=>{ir.key==="Escape"&&(Ct(null),setTeamOpen(!1))};return window.addEventListener("keydown",Et),()=>window.removeEventListener("keydown",Et)},[]),reactExports.useEffect(()=>{if(!c)return;let Et=!1;const ir=async()=>{var _r;if(nr([]),!supabase){ur("Pulse connection is unavailable.");return}const{data:br}=await supabase.auth.getSession();if(!br.session){ur("Sign into Pulse to load active admins.");return}const{data:wr,error:yr}=await supabase.from("pulse_profiles").select("user_id, person_id, person:people(id, full_name)").eq("is_admin",!0).eq("account_status","active");if(Et)return;if(zt(((_r=(wr||[]).find(Lr=>{var $r;return Lr.user_id===(($r=br.session)==null?void 0:$r.user.id)}))==null?void 0:_r.person_id)||""),yr){ur("Could not load active admins. Reo
988pen this page to retry.");return}const Sr=(wr||[]).flatMap(Lr=>{const $r=Array.isArray(Lr.person)?Lr.person[0]:Lr.person;return $r?[{id:$r.id,name:$r.full_name}]:[]}).sort((Lr,$r)=>Lr.name.localeCompare($r.name));a(Lr=>{var Qr;const $r={frido:"Friedrich Wicke",finn:"Finn Richmann",duc:"Duc Hoang"},Jr=new Map(Lr.people.flatMap(zr=>{const en=Sr.find(sn=>sn.id===zr.id||sn.name===($r[zr.id]||zr.name));return en?[[zr.id,en.id]]:[]})),un=Sr.map(zr=>{const en=Lr.people.find(sn=>Jr.get(sn.id)===zr.id);return{...zr,from:(en==null?void 0:en.from)||"",until:(en==null?void 0:en.until)||""}});return{...Lr,people:[...un,...Lr.people.filter(zr=>!Jr.has(zr.id))],items:Lr.items.map(zr=>{var en;return{...zr,people:zr.people.map(sn=>Jr.get(sn)||sn),checkedBy:(en=zr.checkedBy)==null?void 0:en.map(sn=>Jr.get(sn)||sn)}}),roles:(Qr=Lr.roles)==null?void 0:Qr.map(zr=>({...zr,person:Jr.get(zr.person)||zr.person}))}}),nr(Sr.map(Lr=>Lr.id)),ur(Sr.length?"":"No active Pulse admins found.")};ir();const ar=supabase==null?void 0:supabase.auth.onAuthStateChange(()=>{window.setTimeout(()=>{Et||ir()},0)});return()=>{Et=!0,ar==null||ar.data.subscription.unsubscribe()}},[c]);const It=s.people.filter(Et=>Jt.includes(Et.id)),Bt=(Et,ir)=>!!(Et[ir]||Et.parent&&s.items.some(ar=>ar.id===Et.parent&&Bt(ar,ir))),rr=Et=>!Bt(Et,"deleted"),lr=s.items.filter(Et=>!Et.parent&&rr(Et)).sort((Et,ir)=>+(ir.id==="general")-+(Et.id==="general")),pr=Et=>s.items.filter(ir=>ir.parent===Et&&rr(ir)),tr=Et=>{const ir=s.items.find(ar=>ar.id===Et.parent);return ir?tr(ir):Et},hr=Et=>{const ir=s.items.find(ar=>ar.id===Et.parent);return ir?`${hr(ir)} / ${Et.title}`:Et.title}
988,Vt=s.items.filter(Et=>rr(Et)&&(dt==="all"||tr(Et).id===dt)),sr=Vt.filter(Et=>Et.kind==="project"),Lt=Et=>Et.targetMonth||(Et.end||Et.date).slice(0,7),Kt=Et=>Et.startMonth||(Et.end?Et.date.slice(0,7):""),mr=Et=>Number(Et.slice(0,4))*12+Number(Et.slice(5,7))-1,xr=Et=>`${Math.floor(Et/12)}-${String(Et%12+1).padStart(2,"0")}`,cr=sr.filter(Et=>Kt(Et)||Lt(Et)).sort((Et,ir)=>lr.findIndex(ar=>ar.id===tr(Et).id)-lr.findIndex(ar=>ar.id===tr(ir).id)||(Kt(Et)||Lt(Et)).localeCompare(Kt(ir)||Lt(ir))),jr=mr(st.slice(0,7)),kr=packTimeline(cr.map(Et=>{const ir=pr(Et.id).filter(ar=>ar.kind==="task"&&Lt(ar)).map(ar=>mr(Lt(ar)));return{id:Et.id,category:tr(Et).id,start:Math.min(mr(Kt(Et)||Lt(Et)),...ir),end:Lt(Et)?Math.max(mr(Lt(Et)),...ir):1/0}}),lr.map(Et=>Et.id),jr,xt),Pr=cr.filter(Et=>kr.columns.has(Et.id)),Dr=Math.max(1,kr.columnCount),Vr=Vt.filter(Et=>Et.kind==="task"&&Pr.some(ir=>ir.id===Et.parent)&&Lt(Et)).map(Et=>mr(Lt(Et))),Rr=Math.min(jr,...Vr,...Pr.map(Et=>mr(Kt(Et)||Lt(Et)))),Tr=Math.max(jr+11,...Vr,...Pr.map(Et=>mr(Lt(Et)||Kt(Et)))),fr=Array.from({length:Tr-Rr+1},(Et,ir)=>xr(Rr+ir)),Gr=()=>{lt.current&&(lt.current.scrollTop=(jr-Rr)*MONTH_HEIGHT)};reactExports.useLayoutEffect(()=>{it==="calendar"&<.current&&(lt.current.scrollTop=(jr-Rr)*MONTH_HEIGHT)},[it,dt,Rr,jr]);const Mr=Et=>{const ir=categoryColors[Math.max(0,lr.findIndex(ar=>ar.id===tr(Et).id))%categoryColors.length];return{"--category-ink":ir.ink,"--category-fill":ir.fill,"--category-light":ir.light}},Fr=Et=>{const ir=Et.end||Et.date||(Et.targetMonth?format(endOfMonth(new Date(Et.targetMonth+"-01T12:00:00")),"yyyy-MM-dd"):"");if(ir)return ir;const ar=s.items.find(br=>br.id===Et.parent&&br.kind==="project");return ar?Fr(ar):""},St=Et=>Kt(Et)?`${format(new Date(`${Kt(Et)}-01T12:00:00`),"MMM yyyy")} â ${Lt(Et)?format(new Date(`${Lt(Et)}-01T12:00:00`),"MMM yyyy"):"Open end"}`:monthLabel(Lt(Et)),ft=Et=>pr(Et).flatMap(ir=>ir.kind==="task"?[ir,...ft(ir.id)]:ft(ir.id)),pt=s.items.find(Et=>Et.id===kt),Nt=(Et,ir)=>a(ar=>({...ar,items:ar.items.map(br=>{if(br.id!==Et)return br;const wr={...br,...ir};return wr.completionMode==="everyone"&&(wr.done=wr.people.length>0&&wr.people.every(yr=>{var Sr;return(Sr=wr.checkedBy)==null?void 0:Sr.includes(yr)})),wr})})),Rt=(Et,ir)=>{if(!pt)return;const ar={...pt,[Et]:ir};if(Kt(ar)&&Lt(ar)&&Kt(ar)>Lt(ar)){Zt("The target month must be the same as or later than the start month.");return}Zt(""),Nt(pt.id,{[Et]:ir})};reactExports.useEffect(()=>Zt(""),[kt]);const $t=(Et,ir)=>{var yr,Sr;if(Et&&((yr=s.items.find(_r=>_r.id===Et))==null?void 0:yr.kind)==="task"&&(Et=tr(s.items.find(_r=>_r.id===Et)).id),Et||(Et=((Sr=lr[0])==null?void 0:Sr.id)||null),!Et)return;const ar=crypto.randomUUID(),br=s.items.find(_r=>_r.id===Et),wr=(br==null?void 0:br.kind)==="area"?"project":"task";a(_r=>({..._r,items:[..._r.items,{id:ar,parent:Et,title:wr==="project"?"New project":"New to-do",notes:"",people:[],date:"",end:"",done:!1,kind:wr,targetMonth:""}]})),Et&&mt(_r=>_r.filter(Lr=>Lr!==Et)),At.current=wr==="project"?ar:null,Ct(ar)},Qt=Et=>Et.people.map(ir=>{var ar;return firstName(((ar=s.people.find(br=>br.id===ir))==null?void 0:ar.name)||"")}).filter(Boolean).join(", "),gr=(Et,ir=0,ar=!1)=>{const br=pr(Et.id),wr=ht.includes(Et.id);return jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:`pp-row ${Et.parent?"":"pp-root"}`,style:{paddingLeft:18+ir*25},children:[br.length?jsxRuntimeExports.jsx("button",{className:"pp-icon","aria-label":`${wr?"Expand":"Collapse"} ${Et.title}`,onClick:()=>mt(yr=>yr.includes(Et.id)?yr.filter(Sr=>Sr!==Et.id):[...yr,Et.id]),children:wr?jsxRuntimeExports.jsx(ChevronRight,{size:15}):jsxRuntimeExports.jsx(ChevronDown,{size:15})}):Et.parent?jsxRuntimeExports.jsx("button",{className:`pp-check ${Et.done?"is-done":""}`,"aria-label":`${Et.done?"Reopen":"Complete"} ${Et.title}`,onClick:()=>Et.completionMode==="everyone"?Ct(Et.id):Nt(Et.id,{done:!Et.done}),children:Et.done&&jsxRuntimeExports.jsx(Check,{size:12})}):jsxRuntimeExports.jsx("span",{className:"pp-dot"}),jsxRuntimeExports.jsxs("button",{className:`pp-title ${Et.done?"pp-complete":""}`,onClick:()=>
988Ct(Et.id),children:[Et.title,Et.completionMode==="everyone"&&jsxRuntimeExports.jsxs("small",{children:[Et.people.filter(yr=>{var Sr;return(Sr=Et.checkedBy)==null?void 0:Sr.includes(yr)}).length,"/",Et.people.length," checked"]}),ar&&jsxRuntimeExports.jsx("small",{children:Et.parent?hr(s.items.find(yr=>yr.id===Et.parent)):Et.title})]}),Et.kind==="project"&&jsxRuntimeExports.jsxs("span",{className:"pp-count",children:["Project · ",ft(Et.id).filter(yr=>yr.done).length,"/",ft(Et.id).length]}),!Et.parent&&!br.length&&jsxRuntimeExports.jsx("span",{className:"pp-muted",children:"TBD"}),jsxRuntimeExports.jsx("button",{className:"pp-person-cell","aria-label":`People for ${Et.title}: ${Qt(Et)||"Unassigned"}`,onClick:()=>Ct(Et.id),children:Qt(Et)||(Et.parent&&!br.length?"Unassigned":"")}),jsxRuntimeExports.jsxs("button",{className:"pp-date-cell","aria-label":`Target for ${Et.title}: ${St(Et)||"Not planned"}`,onClick:()=>Ct(Et.id),children:[St(Et),!Et.targetMonth&&Et.end&&` â ${labelDate(Et.end)}`]}),jsxRuntimeExports.jsx("button",{className:"pp-icon pp-add-child","aria-label":`Add item under ${Et.title}`,onClick:()=>$t(Et.id),children:jsxRuntimeExports.jsx(Plus,{size:15})})]}),!ar&&!wr&&br.map(yr=>gr(yr,ir+1))]},Et.id)};return c?jsxRuntimeExports.jsxs("div",{className:"pp-app",children:[jsxRuntimeExports.jsxs("aside",{className:"pp-sidebar",children:[jsxRuntimeExports.jsxs(Link,{to:Gt,className:"pp-brand",children:[jsxRuntimeExports.jsx(EAFLogo,{height:37,showWordmark:!1}),jsxRuntimeExports.jsxs("span",{children:["PULSE",jsxRuntimeExports.jsx("small",{children:"European Academic Foundation"})]})]}),jsxRuntimeExports.jsxs(Link,{to:Gt,className:"pp-nav pp-home-link",children:[jsxRuntimeExports.jsx(ChevronLeft,{size:15})," Pulse home"]}),jsxRuntimeExports.jsxs("div",{className:"pp-category-filters",role:"group","aria-label":"Filter by category",children:[jsxRuntimeExports.jsx("button",{className:"pp-category-filter","aria-pressed":dt==="all",onClick:()=>ut("all"),children:"All"}),lr.map(Et=>jsxRuntimeExports.jsxs("button",{className:"pp-category-filter",style:Mr(Et),"aria-pressed":dt===Et.id,onClick:()=>ut(dt===Et.id?"all":Et.id),children:[jsxRuntimeExports.jsx("span",{className:"pp-area-dot"}),Et.title.toLowerCase().includes("communications")?"Comms & recruitment":Et.title]},Et.id))]}),jsxRuntimeExports.jsxs("button",{className:"pp-sidebar-trash",onClick:()=>or(!0),children:[jsxRuntimeExports.jsx(Trash2,{size:15})," Trash ",jsxRuntimeExports.jsx("span",{children:s.items.filter(Et=>Et.deleted).length})]})]}),jsxRuntimeExports.jsxs("main",{className:"pp-main",children:[e&&jsxRuntimeExports.jsx("div",{className:"pp-sync-status",role:"status",children:g?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[g," ",jsxRuntimeExports.jsx("button",{onClick:nt,children:"Export unsaved edits"})," ",jsxRuntimeExports.jsx("button",{onClick:()=>void rt(),children:"Reload shared plan"})]}):et?"Savingâ¦":"Shared team plan · autosaved"}),jsxRuntimeExports.jsxs("header",{className:"pp-compact-header",children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx(Link,{to:Gt,children:"Pulse"}),jsxRuntimeExports.jsx("span",{children:"/"}),jsxRuntimeExports.jsx("h1",{children:dt==="all"?"Planning":(Nr=lr.find(Et=>Et.id===dt))==null?void 0:Nr.title}),Dt&&jsxRuntimeExports.jsx("small",{role:"alert",children:"Changes could not be saved"})]}),jsxRuntimeExports.jsxs("button",{className:"pp-primary",onClick:()=>{var Et;return $t(dt==="all"?((Et=lr[0])==null?void 0:Et.id)||null:dt)},children:[jsxRuntimeExports.jsx(Plus,{size:15})," Add project"]})]}),jsxRuntimeExports.jsxs("div",{className:"pp-toolbar",children:[jsxRuntimeExports.jsx("div",{className:"pp-tabs",children:[["weekly",CalendarDays,"Meetings"],["people",Users,"My tasks"],["calendar",CalendarDays,"Timeline"]].map(([Et,ir,ar])=>jsxRuntimeExports.jsxs("button",{className:it===Et?"active":"",onClick:()=>ot(Et),children:[jsxRuntimeExports.jsx(ir,{size:15}),ar]},Et))}),it==="calendar"&&jsxRuntimeExports.jsxs("div",{className:"pp-timeline-controls",children:[jsxRuntimeExports.jsxs("label",{title:"Allow projects that ended more than a month ago to add columns",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:xt,onChange:Et=>gt(Et.target.checked)})," Show all past projects",kr.hiddenCount>0&&jsxRuntimeExports.jsxs("span",{children:[" (",kr.hiddenCount," hidden)"]}
988)]}),jsxRuntimeExports.jsx("button",{className:"pp-this-month",onClick:Gr,children:"This month â"})]})]}),jsxRuntimeExports.jsx(Dialog,{open:qt,onOpenChange:or,children:jsxRuntimeExports.jsxs(DialogContent,{className:"pp-trash-dialog",children:[jsxRuntimeExports.jsx(DialogTitle,{children:"Trash"}),jsxRuntimeExports.jsx(DialogDescription,{children:"Restore deleted tasks and projects."}),jsxRuntimeExports.jsxs("section",{className:"pp-trash",children:[s.items.filter(Et=>Et.deleted).map(Et=>jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("span",{children:Et.title}),jsxRuntimeExports.jsx("button",{onClick:()=>Nt(Et.id,{deleted:!1}),children:"Restore"})]},Et.id)),!s.items.some(Et=>Et.deleted)&&jsxRuntimeExports.jsx("p",{children:"Trash is empty."})]})]})}),it==="weekly"&&er&&jsxRuntimeExports.jsx("p",{children:er}),it==="weekly"&&jsxRuntimeExports.jsx(PlanningWeekly,{categories:lr,projects:s.items.filter(Et=>Et.kind==="project"&&rr(Et)).map(Et=>({id:Et.id,title:Et.title,categoryId:tr(Et).id})),categoryId:Et=>tr(s.items.find(ir=>ir.id===Et)).id,currentPersonId:Mt,onCreateTask:(Et,ir)=>a(ar=>{const br=crypto.randomUUID(),wr=ar.weekly||{entries:[],notes:{}};return{...ar,items:[...ar.items,{id:br,parent:dt==="all"?"general":dt,title:Et,notes:"",people:[],date:"",end:"",done:!1,kind:"task",targetMonth:""}],weekly:{...wr,entries:[...wr.entries,{id:crypto.randomUUID(),taskId:br,week:ir,people:[],status:"todo",note:""}]}}}),tasks:Vt.filter(Et=>Et.kind==="task"),people:It,value:s.weekly||{entries:[],notes:{}},onChange:Et=>a(ir=>{const ar=ir.weekly||{entries:[],notes:{}},br=Et(ar),wr=br.entries.filter(yr=>{const Sr=ar.entries.find(_r=>_r.id===yr.id);return!Sr||JSON.stringify(Sr.people)!==JSON.stringify(yr.people)});return{...ir,weekly:br,items:ir.items.map(yr=>{const Sr=wr.find(_r=>_r.taskId===yr.id);return Sr&&yr.completionMode!=="everyone"?{...yr,people:Sr.people}:yr})}}),categoryStyle:Et=>Mr(s.items.find(ir=>ir.id===Et)),projectTarget:Et=>{const ir=s.items.find(br=>br.id===Et),ar=s.items.find(br=>br.id===(ir==null?void 0:ir.parent)&&br.kind==="project");return(ar==null?void 0:ar.end)||(ar==null?void 0:ar.date)||(ar!=null&&ar.targetMonth?format(endOfMonth(new Date(ar.targetMonth+"-01T12:00:00")),"yyyy-MM-dd"):"")},onUpdateTask:(Et,ir)=>Nt(Et,ir),category:Et=>tr(s.items.find(ir=>ir.id===Et)).title}),it==="people"&&jsxRuntimeExports.jsxs("section",{className:"pp-my-tasks",children:[er&&jsxRuntimeExports.jsxs("p",{children:[er," ",jsxRuntimeExports.jsx(Link,{to:pulsePath(),children:"Pulse sign-in"})]}),Vt.filter(Et=>{var ir;return Et.kind==="task"&&!Et.done&&Et.people.includes(Mt)&&!(Et.completionMode==="everyone"&&((ir=Et.checkedBy)!=null&&ir.includes(Mt)))}).sort((Et,ir)=>(Fr(Et)||"9999").localeCompare(Fr(ir)||"9999")||Et.title.localeCompare(ir.title)).map(Et=>jsxRuntimeExports.jsxs("div",{className:"pp-my-task",style:Mr(Et),children:[jsxRuntimeExports.jsx("input",{type:"checkbox","aria-label":"Complete my task: "+Et.title,checked:!1,onChange:()=>Nt(Et.id,Et.completionMode==="everyone"?{checkedBy:[...new Set([...Et.checkedBy||[],Mt])]}:{done:!0})}),jsxRuntimeExports.jsxs("button",{className:"pp-my-task-title",onClick:()=>Ct(Et.id),children:[Et.title,jsxRuntimeExports.jsxs("small",{children:[jsxRuntimeExports.jsx("span",{className:"pp-my-category",children:tr(Et).title}),Et.completionMode==="everyone"&&jsxRuntimeExports.jsx("span",{children:"Individual check-off"})]})]}),jsxRuntimeExports.jsx("time",{className:Fr(Et)&&Fr(Et)<st?"pp-overdue":"",children:Fr(Et)?format(new Date(Fr(Et)+"T12:00:00"),"d MMM yyyy"):"No date"})]},Et.id)),!Vt.some(Et=>{var ir;return Et.kind==="task"&&!Et.done&&Et.people.includes(Mt)&&!(Et.completionMode==="everyone"&&((ir=Et.checkedBy)!=null&&ir.includes(Mt)))})&&jsxRuntimeExports.jsx("p",{className:"pp-my-empty",children:"No outstanding tasks for you."})]}),it==="calendar"&&jsxRuntimeExports.jsxs("section",{className:"pp-project-timeline",children:[jsxRuntimeExports.jsxs("div",{className:"pp-timeline-frame",children:[jsxRuntimeExports.jsx("div",{ref:ct,className:"pp-timeline-header","aria-label":"Timeline categories",children:jsxRuntimeExports.jsxs("div",{className:"pp-timeline-header-grid",style:{gridTemplateColumns:`112px repeat(${Dr}
988, minmax(230px, 1fr))`,minWidth:112+Dr*230},children:[jsxRuntimeExports.jsx("div",{className:`pp-header-corner ${dt!=="all"?"pp-header-selected":""}`,style:dt!=="all"&&lr.find(Et=>Et.id===dt)?Mr(lr.find(Et=>Et.id===dt)):void 0,children:dt!=="all"?(vr=lr.find(Et=>Et.id===dt))==null?void 0:vr.title:""}),dt==="all"?kr.groups.map(({category:Et,first:ir,count:ar})=>{const br=lr.find(wr=>wr.id===Et);return ar?jsxRuntimeExports.jsxs("div",{className:"pp-category-heading",style:{...Mr(br),gridColumn:`${ir+2} / span ${ar}`,gridRow:1},children:[jsxRuntimeExports.jsx("span",{}),br.title]},br.id):null}):jsxRuntimeExports.jsx("div",{className:"pp-header-clear",style:{gridColumn:"2 / -1",gridRow:1}})]})}),jsxRuntimeExports.jsx("div",{ref:lt,onScroll:Et=>{ct.current&&(ct.current.scrollLeft=Et.currentTarget.scrollLeft)},className:"pp-vertical-scroll",role:"region","aria-label":"Project timeline",tabIndex:0,children:jsxRuntimeExports.jsxs("div",{className:"pp-vertical-grid",style:{gridTemplateColumns:`112px repeat(${Dr}, minmax(230px, 1fr))`,width:"100%",minWidth:112+Dr*230,gridTemplateRows:`repeat(${fr.length}, ${MONTH_HEIGHT}px)`},children:[fr.map((Et,ir)=>jsxRuntimeExports.jsxs("div",{className:`pp-time-month ${Et===st.slice(0,7)?"pp-current-month":""}`,style:{gridRow:ir+1,gridColumn:1},children:[jsxRuntimeExports.jsx("span",{children:format(new Date(`${Et}-01T12:00:00`),"MMMM")}),jsxRuntimeExports.jsxs("small",{children:[Et.slice(0,4),Et===st.slice(0,7)?" · Now":""]})]},Et)),fr.map((Et,ir)=>jsxRuntimeExports.jsx("div",{"aria-hidden":"true",className:"pp-time-line",style:{gridRow:ir+1,gridColumn:`2 / ${Dr+2}`}},`line-${Et}`)),Pr.map(Et=>{const ir=kr.columns.get(Et.id),ar=Kt(Et),br=Lt(Et),wr=mr(ar||br)-Rr+1,yr=br?mr(br)-Rr+2:fr.length+1,Sr=pr(Et.id).filter($r=>$r.kind==="task"),_r=Sr.filter($r=>!Lt($r)),Lr=ft(Et.id);return jsxRuntimeExports.jsx("div",{className:`pp-time-project ${ar?"":"pp-time-marker"} ${br?"":"pp-time-open"} ${Et.done?"pp-project-finished":""}`,style:{...Mr(Et),gridColumn:ir+2,gridRow:`${wr} / ${yr}`},children:jsxRuntimeExports.jsx(TimelineProjectLabel,{todos:_r,taskSpace:Math.min(1/0,...Sr.filter($r=>Lt($r)).map($r=>(mr(Lt($r))-Rr+2-wr)*MONTH_HEIGHT-80)),onOpen:()=>Ct(Et.id),onTask:Ct,heading:jsxRuntimeExports.jsxs("button",{className:"pp-project-open",onClick:()=>Ct(Et.id),"aria-label":`${Et.title}: ${St(Et)}`,children:[jsxRuntimeExports.jsx("h3",{children:Et.title}),jsxRuntimeExports.jsxs("p",{children:[St(Et),jsxRuntimeExports.jsxs("span",{children:[Lr.filter($r=>$r.done).length,"/",Lr.length]})]})]})})},Et.id)}),Pr.flatMap(Et=>{const ir=kr.columns.get(Et.id),ar=pr(Et.id).filter(wr=>wr.kind==="task"&&Lt(wr));return[...new Set(ar.map(Lt))].map(wr=>{const yr=mr(wr)-Rr+1;if(yr<1||yr>fr.length)return null;const Sr=ar.filter(_r=>Lt(_r)===wr).sort((_r,Lr)=>(_r.date||_r.end).localeCompare(Lr.date||Lr.end));return jsxRuntimeExports.jsxs("div",{className:"pp-dated-todos",style:{...Mr(Et),gridColumn:ir+2,gridRow:yr},children:[Sr.slice(0,3).map(_r=>jsxRuntimeExports.jsxs("button",{className:`pp-mini-todo pp-dated-todo ${_r.done?"pp-complete":""}`,title:`${_r.title} · ${_r.date?labelDate(_r.date):monthLabel(wr)}`,onClick:()=>Ct(_r.id),children:[_r.date&&jsxRuntimeExports.jsx("time",{children:labelDate(_r.date)}),jsxRuntimeExports.jsx("span",{children:_r.title})]},_r.id)),Sr.length>3&&jsxRuntimeExports.jsxs("button",{className:"pp-mini-more",onClick:()=>Ct(Et.id),children:["+",Sr.length-3," dated to-dos"]})]},`${Et.id}-${wr}`)})}),Pr.length===0&&jsxRuntimeExports.jsxs("div",{className:"pp-time-empty",style:{gridColumn:2,gridRow:"1 / 4"},children:[jsxRuntimeExports.jsx(CalendarDays,{size:27}),jsxRuntimeExports.jsx("h3",{children:cr.length?"Past projects hidden":"No scheduled projects"}),jsxRuntimeExports.jsx("p",{children:cr.length?"Turn on Show all past projects to see them.":"Add start and target months to a project below."})]})]})})]}),jsxRuntimeExports.jsxs("div",{className:"pp-unscheduled-projects",children:[jsxRuntimeExports.jsxs("h2",{children:["Not yet planned ",jsxRuntimeExports.jsx("span",{children:sr.filter(Et=>!Kt(Et)&&!Lt(Et)).length})]}),jsxRuntimeExports.jsx("div",{children:sr.filter(Et=>!Kt(Et)&&!Lt(Et)).map(Et=>jsxRuntimeExports.jsxs("button",{style:Mr(Et),onClick:()=>
988Ct(Et.id),children:[jsxRuntimeExports.jsx("small",{children:tr(Et).title}),jsxRuntimeExports.jsx("span",{children:Et.title}),jsxRuntimeExports.jsx(Plus,{size:15})]},Et.id))})]})]}),it==="calendar"&&Vt.some(Et=>{var ir;return Et.kind==="task"&&((ir=s.items.find(ar=>ar.id===Et.parent))==null?void 0:ir.kind)==="area"})&&jsxRuntimeExports.jsxs("section",{className:"pp-general-todos",children:[jsxRuntimeExports.jsx("h2",{children:"General to-dos"}),Vt.filter(Et=>{var ir;return Et.kind==="task"&&((ir=s.items.find(ar=>ar.id===Et.parent))==null?void 0:ir.kind)==="area"}).map(Et=>gr(Et,0,!0))]}),(dt==="finance"||dt==="fundraising"||dt==="academies")&&jsxRuntimeExports.jsxs("div",{className:"pp-related",children:[jsxRuntimeExports.jsx("span",{children:"RELATED IN PULSE"}),dt==="finance"&&jsxRuntimeExports.jsx(Link,{to:pulsePath("/reimbursements"),children:"Reimbursements â"}),dt==="fundraising"&&jsxRuntimeExports.jsx(Link,{to:e?pulsePath("/demos/foundations"):"/__qa/demos/foundations",children:"Funding explorer â"}),dt==="academies"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Link,{to:e?pulsePath("/demos/venues"):"/__qa/demos/venues",children:"Venue research â"}),jsxRuntimeExports.jsx(Link,{to:pulsePath("/academies"),children:"Academy information â"})]})]})]}),(pt==null?void 0:pt.kind)==="project"&&!Tt&&pt.title!=="New project"&&jsxRuntimeExports.jsx("div",{className:"pp-overlay pp-project-overlay",onMouseDown:Et=>{Et.target===Et.currentTarget&&Ct(null)},children:jsxRuntimeExports.jsxs("section",{className:"pp-project-view",role:"dialog","aria-modal":"true","aria-label":pt.title,style:Mr(pt),children:[jsxRuntimeExports.jsxs("div",{className:"pp-project-view-top",children:[jsxRuntimeExports.jsx("span",{children:tr(pt).title}),jsxRuntimeExports.jsx("button",{className:"pp-icon","aria-label":"Close project",onClick:()=>Ct(null),children:jsxRuntimeExports.jsx(X$1,{size:20})})]}),jsxRuntimeExports.jsxs("div",{className:"pp-project-view-heading",children:[jsxRuntimeExports.jsx("h2",{children:pt.title}),jsxRuntimeExports.jsx("button",{className:"pp-text-button",onClick:()=>Pt(!0),children:"Edit project"})]}),jsxRuntimeExports.jsxs("p",{className:"pp-project-meta",children:[St(pt)||"Dates not set",Qt(pt)&&` · ${Qt(pt)}`]}),pt.notes&&jsxRuntimeExports.jsx("p",{className:"pp-project-description",children:pt.notes}),jsxRuntimeExports.jsxs("div",{className:"pp-project-task-heading",children:[jsxRuntimeExports.jsx("h3",{children:"To-dos"}),jsxRuntimeExports.jsxs("span",{children:[ft(pt.id).filter(Et=>
988Et.done).length," / ",ft(pt.id).length," complete"]})]}),jsxRuntimeExports.jsxs("div",{className:"pp-project-task-list",children:[pr(pt.id).map(Et=>jsxRuntimeExports.jsxs("div",{className:"pp-project-task-row",children:[Et.kind==="task"&&Et.completionMode!=="everyone"?jsxRuntimeExports.jsx("input",{type:"checkbox","aria-label":`Complete ${Et.title}`,checked:Et.done,onChange:ir=>Nt(Et.id,{done:ir.target.checked})}):jsxRuntimeExports.jsx(ListTree,{size:17}),jsxRuntimeExports.jsxs("button",{onClick:()=>Ct(Et.id),children:[jsxRuntimeExports.jsx("span",{className:Et.done?"pp-complete":"",children:Et.title}),jsxRuntimeExports.jsx("small",{children:[Et.completionMode==="everyone"?`${Et.people.filter(ir=>{var ar;return(ar=Et.checkedBy)==null?void 0:ar.includes(ir)}).length}/${Et.people.length} checked`:"",monthLabel(Lt(Et)),Qt(Et)].filter(Boolean).join(" · ")})]}),jsxRuntimeExports.jsx(ChevronRight,{size:16})]},Et.id)),pr(pt.id).length===0&&jsxRuntimeExports.jsx("p",{children:"No to-dos yet."})]}),jsxRuntimeExports.jsx("div",{className:"pp-project-add-actions",children:jsxRuntimeExports.jsxs("button",{className:"pp-primary",onClick:()=>$t(pt.id),children:[jsxRuntimeExports.jsx(Plus,{size:15})," Add to-do"]})})]})}),pt&&(pt.kind!=="project"||Tt||pt.title==="New project")&&jsxRuntimeExports.jsx("div",{className:"pp-overlay",onMouseDown:Et=>{Et.target===Et.currentTarget&&Ct(null)},children:jsxRuntimeExports.jsxs("section",{className:"pp-panel",role:"dialog","aria-modal":"true","aria-label":"Edit work item",children:[jsxRuntimeExports.jsxs("div",{className:"pp-panel-top",children:[jsxRuntimeExports.jsx("span",{children:pt.kind==="area"?"Category":`${tr(pt).title} / ${pt.kind==="project"?"Project":"To-do"}`}),jsxRuntimeExports.jsx("button",{className:"pp-icon","aria-label":"Close item",onClick:()=>Ct(null),children:jsxRuntimeExports.jsx(X$1,{size:20})})]}),(pt.kind==="project"||((Cr=s.items.find(Et=>Et.id===pt.parent))==null?void 0:Cr.kind)==="project")&&jsxRuntimeExports.jsx("button",{className:"pp-text-button pp-back-project",onClick:()=>{pt.kind==="project"?Pt(!1):Ct(pt.parent)},children:"â Back to project"}),jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Title",jsxRuntimeExports.jsx("input",{autoFocus:!0,value:pt.title,onChange:Et=>Nt(pt.id,{title:Et.currentTarget.value})})]}),pt.kind==="project"&&jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Category",jsxRuntimeExports.jsx("select",{"aria-label":"Project category",value:tr(pt).id,onChange:Et=>Nt(pt.id,{parent:Et.currentTarget.value}),children:lr.map(Et=>jsxRuntimeExports.jsx("option",{value:Et.id,children:Et.title},Et.id))})]}),jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Notes & links",jsxRuntimeExports.jsx("textarea",{placeholder:"What needs to happen? Add context, a strategy or useful linksâ¦",value:pt.notes,onChange:Et=>Nt(pt.id,{notes:Et.currentTarget.value})})]}),jsxRuntimeExports.jsxs("div",{className:"pp-field",children:[pt.completionMode==="everyone"?"Participants":"Responsible person",er&&jsxRuntimeExports.jsxs("small",{children:[er," ",jsxRuntimeExports.jsx(Link,{to:pulsePath(),children:"Pulse sign-in"})]}),pt.completionMode!=="everyone"&&jsxRuntimeExports.jsxs("select",{"aria-label":"Responsible person",value:pt.people[0]||"",onChange:Et=>Nt(pt.id,{people:Et.target.value?[Et.target.value,...pt.people.slice(1).filter(ir=>ir!==Et.target.value)]:[]}),children:[jsxRuntimeExports.jsx("option",{value:"",children:"Unassigned"}),pt.people[0]&&!Jt.includes(pt.people[0])&&jsxRuntimeExports.jsxs("option",{value:pt.people[0],children:[((dr=s.people.find(Et=>Et.id===pt.people[0]))==null?void 0:dr.name)||"Previous assignee"," · unavailable"]}),It.map(Et=>jsxRuntimeExports.jsxs("option",{value:Et.id,children:[firstName(Et.name),passive(Et,st)?" · passive":""]},Et.id))]}),jsxRuntimeExports.jsxs("div",{className:"pp-people-select",children:[pt.completionMode!=="everyone"&&jsxRuntimeExports.jsx("small",{children:"Optional collaborators"}),It.filter(Et=>pt.completionMode==="everyone"||Et.id!==pt.people[0]).map(Et=>jsxRuntimeExports.jsxs("button",{disabled:pt.completionMode!=="everyone"&&!pt.people.length,className:pt.people.includes(Et.id)?"chosen":"",onClick:()=>Nt(pt.id,{people:pt.people.includes(Et.id)?pt.people.filter(ir=>
988ir!==Et.id):[...pt.people,Et.id]}),children:[pt.people.includes(Et.id)&&jsxRuntimeExports.jsx(Check,{size:13})," ",firstName(Et.name),passive(Et,st)&&jsxRuntimeExports.jsx("small",{children:" · passive"})]},Et.id))]})]}),pt.kind==="task"&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Project",jsxRuntimeExports.jsxs("select",{value:((Ur=s.items.find(Et=>Et.id===pt.parent))==null?void 0:Ur.kind)==="project"&&pt.parent||"",onChange:Et=>Nt(pt.id,{parent:Et.target.value||tr(pt).id}),children:[jsxRuntimeExports.jsxs("option",{value:"",children:["General to-do · ",tr(pt).title]}),sr.filter(Et=>tr(Et).id===tr(pt).id).map(Et=>jsxRuntimeExports.jsx("option",{value:Et.id,children:Et.title},Et.id))]})]}),jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Completion",jsxRuntimeExports.jsxs("select",{value:pt.completionMode||"single",onChange:Et=>Nt(pt.id,{completionMode:Et.target.value,checkedBy:[],done:!1}),children:[jsxRuntimeExports.jsx("option",{value:"single",children:"One completion"}),jsxRuntimeExports.jsx("option",{value:"everyone",children:"Each participant checks off separately"})]})]}),pt.completionMode==="everyone"&&jsxRuntimeExports.jsxs("div",{className:"pp-everyone",children:[jsxRuntimeExports.jsx("button",{className:"pp-text-button",onClick:()=>Nt(pt.id,{people:It.map(Et=>Et.id)}),children:"Select all team members"}),jsxRuntimeExports.jsxs("p",{children:[pt.people.filter(Et=>{var ir;return(ir=pt.checkedBy)==null?void 0:ir.includes(Et)}).length," / ",pt.people.length," complete"]}),!pt.people.length&&jsxRuntimeExports.jsx("p",{children:"Select participants above."}),pt.people.map(Et=>{var ir,ar;return jsxRuntimeExports.jsxs("label",{children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:((ir=pt.checkedBy)==null?void 0:ir.includes(Et))||!1,onChange:br=>Nt(pt.id,{checkedBy:br.target.checked?[...pt.checkedBy||[],Et]:(pt.checkedBy||[]).filter(wr=>wr!==Et)})}),((ar=s.people.find(br=>br.id===Et))==null?void 0:ar.name)||"Previous participant"]},Et)})]})]}),jsxRuntimeExports.jsxs("div",{className:"pp-date-fields",children:[pt.kind==="project"&&jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Start month · optional",jsxRuntimeExports.jsx("input",{"aria-label":"Start month",type:"month",value:pt.startMonth||"",max:Lt(pt)||void 0,onInput:Et=>Rt("startMonth",Et.currentTarget.value)})]}),jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Target month · optional",jsxRuntimeExports.jsx("input",{"aria-label":"Target month",type:"month",value:pt.targetMonth,min:Kt(pt)||void 0,onInput:Et=>Rt("targetMonth",Et.currentTarget.value)})]})]}),Xt&&jsxRuntimeExports.jsx("p",{role:"alert",className:"pp-date-error",children:Xt}),jsxRuntimeExports.jsx("p",{className:"pp-target-help",children:St(pt)||"Set a broad time frame when ready."}),jsxRuntimeExports.jsxs("details",{className:"pp-exact-details",children:[jsxRuntimeExports.jsx("summary",{children:"Exact dates, if needed"}),jsxRuntimeExports.jsxs("div",{className:"pp-date-fields",children:[jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["Exact date",jsxRuntimeExports.jsx("input",{type:"date",value:pt.date,max:pt.end||void 0,onInput:Et=>Nt(pt.id,{date:Et.currentTarget.value,end:!Et.currentTarget.value||pt.end&&pt.end<Et.currentTarget.value?"":pt.end})})]}),jsxRuntimeExports.jsxs("label",{className:"pp-field",children:["End date · optional",jsxRuntimeExports.jsx("input",{type:"date",value:pt.end,min:pt.date||void 0,disabled:!pt.date,onInput:Et=>Nt(pt.id,{end:Et.currentTarget.value})})]})]})]}),pt.completionMode!=="everyone"&&jsxRuntimeExports.jsxs("label",{className:"pp-done-label",children:[jsxRuntimeExports.jsx("input",{type:"checkbox",checked:pt.done,onChange:Et=>Nt(pt.id,{done:Et.target.checked})})," Completed"]}),pt.kind!=="task"&&jsxRuntimeExports.jsxs("div",{className:"pp-subitems",children:[jsxRuntimeExports.jsx("h3",{children:pt.kind==="area"?"Projects":"To-dos"}),pr(pt.id).map(Et=>jsxRuntimeExports.jsxs("div",{className:"pp-detail-child",children:[Et.kind==="task"&&Et.completionMode!=="everyone"&&jsxRuntimeExports.jsx("input",{type:"checkbox","aria-label":`Complete ${Et.title}`,checked:Et.done,onChange:ir=>Nt(Et.id,{done:ir.currentTarget.checked})}),jsxRuntimeExports.jsxs("button",{onClick:()=>
988Ct(Et.id),children:[jsxRuntimeExports.jsxs("span",{className:Et.done?"pp-complete":"",children:[Et.title,jsxRuntimeExports.jsx("small",{children:monthLabel(Et.targetMonth)||labelDate(Et.date)})]}),jsxRuntimeExports.jsx(ChevronRight,{size:14})]})]},Et.id)),jsxRuntimeExports.jsxs("button",{onClick:()=>$t(pt.id),children:[jsxRuntimeExports.jsx(Plus,{size:15})," ",pt.kind==="area"?"Add project":"Add to-do"]})]}),pt.kind!=="area"&&jsxRuntimeExports.jsxs("div",{className:"pp-project-actions",children:[jsxRuntimeExports.jsxs("button",{onClick:()=>{var Et;Nt(pt.id,{deleted:!0}),Ct(pt.kind==="task"&&((Et=s.items.find(ir=>ir.id===pt.parent))==null?void 0:Et.kind)==="project"?pt.parent:null)},children:["Delete ",pt.kind==="task"?"to-do":"project"]}),jsxRuntimeExports.jsxs("small",{children:[pt.kind==="project"?"Includes its to-dos. ":"","Can be restored from Trash."]})]}),jsxRuntimeExports.jsx("button",{className:"pp-primary pp-panel-done",onClick:()=>{var Et;pt.kind==="project"?Pt(!1):((Et=s.items.find(ir=>ir.id===pt.parent))==null?void 0:Et.kind)==="project"?Ct(pt.parent):Ct(null)},children:"Done"})]})})]}):jsxRuntimeExports.jsxs("main",{className:"p-10",children:[jsxRuntimeExports.jsx("p",{children:g||"Loading team planâ¦"}),g&&jsxRuntimeExports.jsx("button",{onClick:()=>void rt(),children:"Retry"})]})}const queryClient=new QueryClient,POST_SEMINAR_FEEDBACK_VISIBLE=!0,AppShell=()=>{const e=useLocation(),s=isPulseHost(),c=s||!1||e.pathname==="/pulse"||e.pathname.startsWith("/pulse/");return jsxRuntimeExports.jsxs("div",{className:"min-h-screen bg-background flex flex-col",children:[!c&&jsxRuntimeExports.jsx(Navigation,{}),jsxRuntimeExports.jsx("main",{className:"flex-1",children:jsxRuntimeExports.jsxs(Routes,{children:[jsxRuntimeExports.jsx(Route,{path:"/",element:s?jsxRuntimeExports.jsx(Pulse,{}):jsxRuntimeExports.jsx(Home,{})}),jsxRuntimeExports.jsx(Route,{path:"/applications",element:s?jsxRuntimeExports.jsx(PulseApplications,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/availability",element:s?jsxRuntimeExports.jsx(PulseAvailability,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/one-to-ones",element:s?jsxRuntimeExports.jsx(PulseOneToOnes,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/claim",element:s?jsxRuntimeExports.jsx(PulseClaim,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/members",element:s?jsxRuntimeExports.jsx(PulseMembers,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/profile",element:s?jsxRuntimeExports.jsx(PulseProfile,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/settings",element:s?jsxRuntimeExports.jsx(PulseSecurity,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/security",element:s?jsxRuntimeExports.jsx(PulseSecurity,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/demos",element:s?jsxRuntimeExports.jsx(PulseDemos,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/demos/feedback",element:s?jsxRuntimeExports.jsx(PulseFeedback,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/demos/venues",element:s?jsxRuntimeExports.jsx(PulseVenueDemo,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/demos/foundations",element:s?jsxRuntimeExports.jsx(PulseFoundationDemo,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/about",element:jsxRuntimeExports.jsx(About,{})}),jsxRuntimeExports.jsx(Route,{path:"/fellowship",element:jsxRuntimeExports.jsx(Fellowship,{})}),jsxRuntimeExports.jsx(Route,{path:"/cohorts",element:jsxRuntimeExports.jsx(Cohorts,{})}),jsxRuntimeExports.jsx(Route,{path:"/cohorts/:year",element:jsxRuntimeExports.jsx(CohortFellows,{})}),jsxRuntimeExports.jsx(Route,{path:"/cohorts/:year/:fellowSlug",element:jsxRuntimeExports.jsx(CohortFellows,{})}),jsxRuntimeExports.jsx(Route,{path:"/mentors",element:jsxRuntimeExports.jsx(Mentors,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies",element:s?jsxRuntimeExports.jsx(PulseAcademies,{}):jsxRuntimeExports.jsx(Academies,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/2026",element:s?jsxRuntimeExports.jsx(PulseAcademy2026,{}):jsxRuntimeExports.jsx(AcademyPreview2026,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/2026/questionnaire",element:s?jsxRuntimeExports.jsx(PulseAcademy2026Questionnaire,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/2026/seminar-feedback",element:s&&POST_SEMINAR_FEEDBACK_VISIBLE?jsxRuntimeExports.jsx(PulseAcademy2026SeminarFeedback,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/2026/post-academy-feedback",element:s?jsxRuntimeExports.jsx(PulseAcademy2026PostFeedback,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/2026/reimbursement",element:s?jsxRuntimeExports.jsx(PulseAcademy2026Reimbursement,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/academies/:year/report",element:jsxRuntimeExports.jsx(AcademyReport,{})}),jsxRuntimeExports.jsx(Route,{path:"/news",element:jsxRuntimeExports.jsx(News,{})}),jsxRuntimeExports.jsx(Route,{path:"/news/:slug",element:jsxRuntimeExports.jsx(NewsArticle,{})}),jsxRuntimeExports.jsx(Route,{path:"/apply",element:jsxRuntimeExports.jsx(Apply,{})}),jsxRuntimeExports.jsx(Route,{path:"/apply/form",element:jsxRuntimeExports.jsx(ApplicationFormPage,{})}),jsxRuntimeExports.jsx(Route,{path:"/how-to-apply",element:jsxRuntimeExports.jsx(HowToApply,{})}),jsxRuntimeExports.jsx(Route,{path:"/project-examples",element:jsxRuntimeExports.jsx(ProjectExamples,{})}),jsxRuntimeExports.jsx(Route,{path:"/contact",element:jsxRuntimeExports.jsx(Contact,{})}),jsxRuntimeExports.jsx(Route,{path:"/interview",element:jsxRuntimeExports.jsx(InterviewBooking,{})}),jsxRuntimeExports.jsx(Route,{path:"/donors",element:jsxRuntimeExports.jsx(Donors,{})}),jsxRuntimeExports.jsx(Route,{path:"/donate",element:jsxRuntimeExports.jsx(Donate,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse",element:jsxRuntimeExports.jsx(Pulse,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/claim",element:jsxRuntimeExports.jsx(PulseClaim,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/applications",element:jsxRuntimeExports.jsx(PulseApplications,{})}),jsxRuntimeExports.jsx(Route,{path:"/reimbursements",element:s?jsxRuntimeExports.jsx(PulseTeamReimbursement,{}):jsxRuntimeExports.jsx(NotFound,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/reimbursements",element:jsxRuntimeExports.jsx(PulseTeamReimbursement,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/availability",element:jsxRuntimeExports.jsx(PulseAvailability,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/one-to-ones",element:jsxRuntimeExports.jsx(PulseOneToOnes,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/members",element:jsxRuntimeExports.jsx(PulseMembers,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/profile",element:jsxRuntimeExports.jsx(PulseProfile,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies",element:jsxRuntimeExports.jsx(PulseAcademies,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies/2026",element:jsxRuntimeExports.jsx(PulseAcademy2026,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies/2026/questionnaire",element:jsxRuntimeExports.jsx(PulseAcademy2026Questionnaire,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies/2026/seminar-feedback",element:jsxRuntimeExports.jsx(PulseAcademy2026SeminarFeedback,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies/2026/post-academy-feedback",element:jsxRuntimeExports.jsx(PulseAcademy2026PostFeedback,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/academies/2026/reimbursement",element:jsxRuntimeExports.jsx(PulseAcademy2026Reimbursement,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/settings",element:jsxRuntimeExports.jsx(PulseSecurity,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/security",element:jsxRuntimeExports.jsx(PulseSecurity,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/demos",element:jsxRuntimeExports.jsx(PulseDemos,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/demos/feedback",element:jsxRuntimeExports.jsx(PulseFeedback,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/demos/venues",element:jsxRuntimeExports.jsx(PulseVenueDemo,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/demos/foundations",element:jsxRuntimeExports.jsx(PulseFoundationDemo,{})}),jsxRuntimeExports.jsx(Route,{path:"/pulse/planning",element:jsxRuntimeExports.jsx(RequireTeamMember,{children:jsxRuntimeExports.jsx(PulsePlanningPreview,{integrated:!0})})}),jsxRuntimeExports.jsx(Route,{path:"/planning",element:s?jsxRuntimeExports.jsx(RequireTeamMember,{children:jsxRuntimeExports.jsx(PulsePlanningPreview,{integrated:!0})}):jsxRuntimeExports.jsx(NotFound,{})}
988),!1,!1,!1,!1,!1,!1,jsxRuntimeExports.jsx(Route,{path:"*",element:jsxRuntimeExports.jsx(NotFound,{})})]})}),!c&&jsxRuntimeExports.jsx(Footer,{})]})},App=()=>jsxRuntimeExports.jsx(QueryClientProvider,{client:queryClient,children:jsxRuntimeExports.jsxs(TooltipProvider,{children:[jsxRuntimeExports.jsx(Toaster$1,{}),jsxRuntimeExports.jsx(Toaster,{}),jsxRuntimeExports.jsxs(BrowserRouter,{children:[jsxRuntimeExports.jsx(HostRouter,{}),jsxRuntimeExports.jsx(ScrollToTop,{}),jsxRuntimeExports.jsx(Analytics,{}),jsxRuntimeExports.jsx(AppShell,{})]})]})});createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(App,{}));
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.