element"),l}function RS(l,i){let s=A.useContext(id),[u,o]=A.useState(!1),[d,m]=A.useState(!1),{onFocus:p,onBlur:x,onMouseEnter:v,onMouseLeave:b,onTouchStart:g}=i,N=A.useRef(null);A.useEffect(()=>{if(l==="render"&&m(!0),l==="viewport"){let U=G=>{G.forEach(Q=>{m(Q.isIntersecting)})},H=new IntersectionObserver(U,{threshold:.5});return N.current&&H.observe(N.current),()=>{H.disconnect()}}},[l]),A.useEffect(()=>{if(u){let U=setTimeout(()=>{m(!0)},100);return()=>{clearTimeout(U)}}},[u]);let T=()=>{o(!0)},B=()=>{o(!1),m(!1)};return s?l!=="intent"?[d,N,{}]:[d,N,{onFocus:Hs(p,T),onBlur:Hs(x,B),onMouseEnter:Hs(v,T),onMouseLeave:Hs(b,B),onTouchStart:Hs(g,T)}]:[!1,N,{}]}function Hs(l,i){return s=>{l&&l(s),s.defaultPrevented||i(s)}}function CS({page:l,...i}){let{router:s}=ig(),u=A.useMemo(()=>Xv(s.routes,l,s.basename),[s.routes,l,s.basename]);return u?A.createElement(MS,{page:l,matches:u,...i}):null}function OS(l){let{manifest:i,routeModules:s}=sg(),[u,o]=A.useState([]);return A.useEffect(()=>{let d=!1;return _S(l,i,s).then(m=>{d||o(m)}),()=>{d=!0}},[l,i,s]),u}function MS({page:l,matches:i,...s}){let u=qa(),{future:o,manifest:d,routeModules:m}=sg(),{basename:p}=ig(),{loaderData:x,matches:v}=AS(),b=A.useMemo(()=>Gp(l,i,v,d,u,"data"),[l,i,v,d,u]),g=A.useMemo(()=>Gp(l,i,v,d,u,"assets"),[l,i,v,d,u]),N=A.useMemo(()=>{if(l===u.pathname+u.search+u.hash)return[];let U=new Set,H=!1;if(i.forEach(Q=>{var Z;let K=d.routes[Q.route.id];!K||!K.hasLoader||(!b.some(ee=>ee.route.id===Q.route.id)&&Q.route.id in x&&((Z=m[Q.route.id])!=null&&Z.shouldRevalidate)||K.hasClientLoader?H=!0:U.add(Q.route.id))}),U.size===0)return[];let G=bS(l,p,o.unstable_trailingSlashAwareDataRequests,"data");return H&&U.size>0&&G.searchParams.set("_routes",i.filter(Q=>U.has(Q.route.id)).map(Q=>Q.route.id).join(",")),[G.pathname+G.search]},[p,o.unstable_trailingSlashAwareDataRequests,x,u,d,b,i,l,m]),T=A.useMemo(()=>NS(g,d),[g,d]),B=OS(g);return A.createElement(A.Fragment,null,N.map(U=>A.createElement("link",{key:U,rel:"prefetch",as:"fetch",href:U,...s})),T.map(U=>A.createElement("link",{key:U,rel:"modulepreload",href:U,...s})),B.map(({key:U,link:H})=>A.createElement("link",{key:U,nonce:s.nonce,...H,crossOrigin:H.crossOrigin??s.crossOrigin})))}function DS(...l){return i=>{l.forEach(s=>{typeof s=="function"?s(i):s!=null&&(s.current=i)})}}var zS=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{zS&&(window.__reactRouterVersion="7.13.2")}catch{}function US({basename:l,children:i,unstable_useTransitions:s,window:u}){let o=A.useRef();o.current==null&&(o.current=h1({window:u,v5Compat:!0}));let d=o.current,[m,p]=A.useState({action:d.action,location:d.location}),x=A.useCallback(v=>{s===!1?p(v):A.startTransition(()=>p(v))},[s]);return A.useLayoutEffect(()=>d.listen(x),[d,x]),A.createElement(oS,{basename:l,children:i,location:m.location,navigationType:m.action,navigator:d,unstable_useTransitions:s})}var rg=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,sd=A.forwardRef(function({onClick:i,discover:s="render",prefetch:u="none",relative:o,reloadDocument:d,replace:m,unstable_mask:p,state:x,target:v,to:b,preventScrollReset:g,viewTransition:N,unstable_defaultShouldRevalidate:T,...B},U){let{basename:H,navigator:G,unstable_useTransitions:Q}=A.useContext(ta),K=typeof b=="string"&&rg.test(b),Z=Jv(b,H);b=Z.to;let ee=Z1(b,{relative:o}),ve=qa(),re=null;if(p){let pe=Vu(p,[],ve.unstable_mask?ve.unstable_mask.pathname:"/",!0);H!=="/"&&(pe.pathname=pe.pathname==="/"?H:La([H,pe.pathname])),re=G.createHref(pe)}let[ce,xe,Ae]=RS(u,B),ze=qS(b,{replace:m,unstable_mask:p,state:x,target:v,preventScrollReset:g,relative:o,viewTransition:N,unstable_defaultShouldRevalidate:T,unstable_useTransitions:Q});function fe(pe){i&&i(pe),pe.defaultPrevented||ze(pe)}let he=!(Z.isExternal||d),Ne=A.createElement("a",{...B,...Ae,href:(he?re:void 0)||Z.absoluteURL||ee,onClick:he?fe:i,ref:DS(U,xe),target:v,"data-discover":!K&&s==="render"?"true":void 0});return ce&&!K?A.createElement(A.Fragment,null,Ne,A.createElement(CS,{page:ee})):Ne});sd.displayName="Link";var kS=A.forwardRef(function({"aria-current":i="page",caseSensitive:s=!1,className:u="",end:o=!1,style:d,to:m,viewTransition:p,children:x,...v},b){let g=tr(m,{relative:v.relative}),N=qa(),T=A.useContext(Yu),{navigator:B,basename:U}=A.useContext(ta),H=T!=null&&GS(g)&&p===!0,G=B.encodeLocation?B.encodeLocation(g).pathname:g.pathname,Q=N.pathname,K=T&&T.navigation&&T.navigation.location?T.navigation.location.pathname:null;s||(Q=Q.toLowerCase(),K=K?K.toLowerCase():null,G=G.toLowerCase()),K&&U&&(K=fn(K,U)||K);const Z=G!=="/"&&G.endsWith("/")?G.length-1:G.length;let ee=Q===G||!o&&Q.startsWith(G)&&Q.charAt(Z)==="/",ve=K!=null&&(K===G||!o&&K.startsWith(G)&&K.charAt(G.length)==="/"),re={isActive:ee,isPending:ve,isTransitioning:H},ce=ee?i:void 0,xe;typeof u=="function"?xe=u(re):xe=[u,ee?"active":null,ve?"pending":null,H?"transitioning":null].filter(Boolean).join(" ");let Ae=typeof d=="function"?d(re):d;return A.createElement(sd,{...v,"aria-current":ce,className:xe,ref:b,style:Ae,to:m,viewTransition:p},typeof x=="function"?x(re):x)});kS.displayName="NavLink";var LS=A.forwardRef(({discover:l="render",fetcherKey:i,navigate:s,reloadDocument:u,replace:o,state:d,method:m=Au,action:p,onSubmit:x,relative:v,preventScrollReset:b,viewTransition:g,unstable_defaultShouldRevalidate:N,...T},B)=>{let{unstable_useTransitions:U}=A.useContext(ta),H=VS(),G=YS(p,{relative:v}),Q=m.toLowerCase()==="get"?"get":"post",K=typeof p=="string"&&rg.test(p),Z=ee=>{if(x&&x(ee),ee.defaultPrevented)return;ee.preventDefault();let ve=ee.nativeEvent.submitter,re=(ve==null?void 0:ve.getAttribute("formmethod"))||m,ce=()=>H(ve||ee.currentTarget,{fetcherKey:i,method:re,navigate:s,replace:o,state:d,relative:v,preventScrollReset:b,viewTransition:g,unstable_defaultShouldRevalidate:N});U&&s!==!1?A.startTransition(()=>ce()):ce()};return A.createElement("form",{ref:B,method:Q,action:G,onSubmit:u?x:Z,...T,"data-discover":!K&&l==="render"?"true":void 0})});LS.displayName="Form";function HS(l){return`${l} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ug(l){let i=A.useContext(qi);return et(i,HS(l)),i}function qS(l,{target:i,replace:s,unstable_mask:u,state:o,preventScrollReset:d,relative:m,viewTransition:p,unstable_defaultShouldRevalidate:x,unstable_useTransitions:v}={}){let b=Dl(),g=qa(),N=tr(l,{relative:m});return A.useCallback(T=>{if(pS(T,i)){T.preventDefault();let B=s!==void 0?s:Ks(g)===Ks(N),U=()=>b(l,{replace:B,unstable_mask:u,state:o,preventScrollReset:d,relative:m,viewTransition:p,unstable_defaultShouldRevalidate:x});v?A.startTransition(()=>U()):U()}},[g,b,N,s,u,o,i,l,d,m,p,x,v])}var BS=0,QS=()=>`__${String(++BS)}__`;function VS(){let{router:l}=ug("useSubmit"),{basename:i}=A.useContext(ta),s=sS(),u=l.fetch,o=l.navigate;return A.useCallback(async(d,m={})=>{let{action:p,method:x,encType:v,formData:b,body:g}=xS(d,i);if(m.navigate===!1){let N=m.fetcherKey||QS();await u(N,s,m.action||p,{unstable_defaultShouldRevalidate:m.unstable_defaultShouldRevalidate,preventScrollReset:m.preventScrollReset,formData:b,body:g,formMethod:m.method||x,formEncType:m.encType||v,flushSync:m.flushSync})}else await o(m.action||p,{unstable_defaultShouldRevalidate:m.unstable_defaultShouldRevalidate,preventScrollReset:m.preventScrollReset,formData:b,body:g,formMethod:m.method||x,formEncType:m.encType||v,replace:m.replace,state:m.state,fromRouteId:s,flushSync:m.flushSync,viewTransition:m.viewTransition})},[u,o,i,s])}function YS(l,{relative:i}={}){let{basename:s}=A.useContext(ta),u=A.useContext(wa);et(u,"useFormAction must be used inside a RouteContext");let[o]=u.matches.slice(-1),d={...tr(l||".",{relative:i})},m=qa();if(l==null){d.search=m.search;let p=new URLSearchParams(d.search),x=p.getAll("index");if(x.some(b=>b==="")){p.delete("index"),x.filter(g=>g).forEach(g=>p.append("index",g));let b=p.toString();d.search=b?`?${b}`:""}}return(!l||l===".")&&o.route.index&&(d.search=d.search?d.search.replace(/^\?/,"?index&"):"?index"),s!=="/"&&(d.pathname=d.pathname==="/"?s:La([s,d.pathname])),Ks(d)}function GS(l,{relative:i}={}){let s=A.useContext(Wv);et(s!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:u}=ug("useViewTransitionState"),o=tr(l,{relative:i});if(!s.isTransitioning)return!1;let d=fn(s.currentLocation.pathname,u)||s.currentLocation.pathname,m=fn(s.nextLocation.pathname,u)||s.nextLocation.pathname;return Ou(o.pathname,m)!=null||Ou(o.pathname,d)!=null}var Qi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(l){return this.listeners.add(l),this.onSubscribe(),()=>{this.listeners.delete(l),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},El,Bn,ji,_v,XS=(_v=class extends Qi{constructor(){super();oe(this,El);oe(this,Bn);oe(this,ji);te(this,ji,i=>{if(typeof window<"u"&&window.addEventListener){const s=()=>i();return window.addEventListener("visibilitychange",s,!1),()=>{window.removeEventListener("visibilitychange",s)}}})}onSubscribe(){E(this,Bn)||this.setEventListener(E(this,ji))}onUnsubscribe(){var i;this.hasListeners()||((i=E(this,Bn))==null||i.call(this),te(this,Bn,void 0))}setEventListener(i){var s;te(this,ji,i),(s=E(this,Bn))==null||s.call(this),te(this,Bn,i(u=>{typeof u=="boolean"?this.setFocused(u):this.onFocus()}))}setFocused(i){E(this,El)!==i&&(te(this,El,i),this.onFocus())}onFocus(){const i=this.isFocused();this.listeners.forEach(s=>{s(i)})}isFocused(){var i;return typeof E(this,El)=="boolean"?E(this,El):((i=globalThis.document)==null?void 0:i.visibilityState)!=="hidden"}},El=new WeakMap,Bn=new WeakMap,ji=new WeakMap,_v),rd=new XS,KS={setTimeout:(l,i)=>setTimeout(l,i),clearTimeout:l=>clearTimeout(l),setInterval:(l,i)=>setInterval(l,i),clearInterval:l=>clearInterval(l)},Qn,Xf,Nv,ZS=(Nv=class{constructor(){oe(this,Qn,KS);oe(this,Xf,!1)}setTimeoutProvider(l){te(this,Qn,l)}setTimeout(l,i){return E(this,Qn).setTimeout(l,i)}clearTimeout(l){E(this,Qn).clearTimeout(l)}setInterval(l,i){return E(this,Qn).setInterval(l,i)}clearInterval(l){E(this,Qn).clearInterval(l)}},Qn=new WeakMap,Xf=new WeakMap,Nv),bl=new ZS;function FS(l){setTimeout(l,0)}var JS=typeof window>"u"||"Deno"in globalThis;function zt(){}function $S(l,i){return typeof l=="function"?l(i):l}function Tf(l){return typeof l=="number"&&l>=0&&l!==1/0}function cg(l,i){return Math.max(l+(i||0)-Date.now(),0)}function Jn(l,i){return typeof l=="function"?l(i):l}function ya(l,i){return typeof l=="function"?l(i):l}function Xp(l,i){const{type:s="all",exact:u,fetchStatus:o,predicate:d,queryKey:m,stale:p}=l;if(m){if(u){if(i.queryHash!==ud(m,i.options))return!1}else if(!Zs(i.queryKey,m))return!1}if(s!=="all"){const x=i.isActive();if(s==="active"&&!x||s==="inactive"&&x)return!1}return!(typeof p=="boolean"&&i.isStale()!==p||o&&o!==i.state.fetchStatus||d&&!d(i))}function Kp(l,i){const{exact:s,status:u,predicate:o,mutationKey:d}=l;if(d){if(!i.options.mutationKey)return!1;if(s){if(Ml(i.options.mutationKey)!==Ml(d))return!1}else if(!Zs(i.options.mutationKey,d))return!1}return!(u&&i.state.status!==u||o&&!o(i))}function ud(l,i){return((i==null?void 0:i.queryKeyHashFn)||Ml)(l)}function Ml(l){return JSON.stringify(l,(i,s)=>Af(s)?Object.keys(s).sort().reduce((u,o)=>(u[o]=s[o],u),{}):s)}function Zs(l,i){return l===i?!0:typeof l!=typeof i?!1:l&&i&&typeof l=="object"&&typeof i=="object"?Object.keys(i).every(s=>Zs(l[s],i[s])):!1}var WS=Object.prototype.hasOwnProperty;function og(l,i,s=0){if(l===i)return l;if(s>500)return i;const u=Zp(l)&&Zp(i);if(!u&&!(Af(l)&&Af(i)))return i;const d=(u?l:Object.keys(l)).length,m=u?i:Object.keys(i),p=m.length,x=u?new Array(p):{};let v=0;for(let b=0;b{bl.setTimeout(i,l)})}function Rf(l,i,s){return typeof s.structuralSharing=="function"?s.structuralSharing(l,i):s.structuralSharing!==!1?og(l,i):i}function PS(l,i,s=0){const u=[...l,i];return s&&u.length>s?u.slice(1):u}function e2(l,i,s=0){const u=[i,...l];return s&&u.length>s?u.slice(0,-1):u}var cd=Symbol();function fg(l,i){return!l.queryFn&&(i!=null&&i.initialPromise)?()=>i.initialPromise:!l.queryFn||l.queryFn===cd?()=>Promise.reject(new Error(`Missing queryFn: '${l.queryHash}'`)):l.queryFn}function od(l,i){return typeof l=="function"?l(...i):!!l}function t2(l,i,s){let u=!1,o;return Object.defineProperty(l,"signal",{enumerable:!0,get:()=>(o??(o=i()),u||(u=!0,o.aborted?s():o.addEventListener("abort",s,{once:!0})),o)}),l}var Fs=(()=>{let l=()=>JS;return{isServer(){return l()},setIsServer(i){l=i}}})();function Cf(){let l,i;const s=new Promise((o,d)=>{l=o,i=d});s.status="pending",s.catch(()=>{});function u(o){Object.assign(s,o),delete s.resolve,delete s.reject}return s.resolve=o=>{u({status:"fulfilled",value:o}),l(o)},s.reject=o=>{u({status:"rejected",reason:o}),i(o)},s}var a2=FS;function n2(){let l=[],i=0,s=p=>{p()},u=p=>{p()},o=a2;const d=p=>{i?l.push(p):o(()=>{s(p)})},m=()=>{const p=l;l=[],p.length&&o(()=>{u(()=>{p.forEach(x=>{s(x)})})})};return{batch:p=>{let x;i++;try{x=p()}finally{i--,i||m()}return x},batchCalls:p=>(...x)=>{d(()=>{p(...x)})},schedule:d,setNotifyFunction:p=>{s=p},setBatchNotifyFunction:p=>{u=p},setScheduler:p=>{o=p}}}var vt=n2(),wi,Vn,Ti,jv,l2=(jv=class extends Qi{constructor(){super();oe(this,wi,!0);oe(this,Vn);oe(this,Ti);te(this,Ti,i=>{if(typeof window<"u"&&window.addEventListener){const s=()=>i(!0),u=()=>i(!1);return window.addEventListener("online",s,!1),window.addEventListener("offline",u,!1),()=>{window.removeEventListener("online",s),window.removeEventListener("offline",u)}}})}onSubscribe(){E(this,Vn)||this.setEventListener(E(this,Ti))}onUnsubscribe(){var i;this.hasListeners()||((i=E(this,Vn))==null||i.call(this),te(this,Vn,void 0))}setEventListener(i){var s;te(this,Ti,i),(s=E(this,Vn))==null||s.call(this),te(this,Vn,i(this.setOnline.bind(this)))}setOnline(i){E(this,wi)!==i&&(te(this,wi,i),this.listeners.forEach(u=>{u(i)}))}isOnline(){return E(this,wi)}},wi=new WeakMap,Vn=new WeakMap,Ti=new WeakMap,jv),Du=new l2;function i2(l){return Math.min(1e3*2**l,3e4)}function dg(l){return(l??"online")==="online"?Du.isOnline():!0}var Of=class extends Error{constructor(l){super("CancelledError"),this.revert=l==null?void 0:l.revert,this.silent=l==null?void 0:l.silent}};function hg(l){let i=!1,s=0,u;const o=Cf(),d=()=>o.status!=="pending",m=U=>{var H;if(!d()){const G=new Of(U);N(G),(H=l.onCancel)==null||H.call(l,G)}},p=()=>{i=!0},x=()=>{i=!1},v=()=>rd.isFocused()&&(l.networkMode==="always"||Du.isOnline())&&l.canRun(),b=()=>dg(l.networkMode)&&l.canRun(),g=U=>{d()||(u==null||u(),o.resolve(U))},N=U=>{d()||(u==null||u(),o.reject(U))},T=()=>new Promise(U=>{var H;u=G=>{(d()||v())&&U(G)},(H=l.onPause)==null||H.call(l)}).then(()=>{var U;u=void 0,d()||(U=l.onContinue)==null||U.call(l)}),B=()=>{if(d())return;let U;const H=s===0?l.initialPromise:void 0;try{U=H??l.fn()}catch(G){U=Promise.reject(G)}Promise.resolve(U).then(g).catch(G=>{var ve;if(d())return;const Q=l.retry??(Fs.isServer()?0:3),K=l.retryDelay??i2,Z=typeof K=="function"?K(s,G):K,ee=Q===!0||typeof Q=="number"&&sv()?void 0:T()).then(()=>{i?N(G):B()})})};return{promise:o,status:()=>o.status,cancel:m,continue:()=>(u==null||u(),o),cancelRetry:p,continueRetry:x,canStart:b,start:()=>(b()?B():T().then(B),o)}}var _l,wv,mg=(wv=class{constructor(){oe(this,_l)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Tf(this.gcTime)&&te(this,_l,bl.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(l){this.gcTime=Math.max(this.gcTime||0,l??(Fs.isServer()?1/0:300*1e3))}clearGcTimeout(){E(this,_l)&&(bl.clearTimeout(E(this,_l)),te(this,_l,void 0))}},_l=new WeakMap,wv),Nl,Ai,ma,jl,bt,Js,wl,ea,yg,ln,Tv,s2=(Tv=class extends mg{constructor(i){super();oe(this,ea);oe(this,Nl);oe(this,Ai);oe(this,ma);oe(this,jl);oe(this,bt);oe(this,Js);oe(this,wl);te(this,wl,!1),te(this,Js,i.defaultOptions),this.setOptions(i.options),this.observers=[],te(this,jl,i.client),te(this,ma,E(this,jl).getQueryCache()),this.queryKey=i.queryKey,this.queryHash=i.queryHash,te(this,Nl,$p(this.options)),this.state=i.state??E(this,Nl),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var i;return(i=E(this,bt))==null?void 0:i.promise}setOptions(i){if(this.options={...E(this,Js),...i},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const s=$p(this.options);s.data!==void 0&&(this.setState(Jp(s.data,s.dataUpdatedAt)),te(this,Nl,s))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&E(this,ma).remove(this)}setData(i,s){const u=Rf(this.state.data,i,this.options);return we(this,ea,ln).call(this,{data:u,type:"success",dataUpdatedAt:s==null?void 0:s.updatedAt,manual:s==null?void 0:s.manual}),u}setState(i,s){we(this,ea,ln).call(this,{type:"setState",state:i,setStateOptions:s})}cancel(i){var u,o;const s=(u=E(this,bt))==null?void 0:u.promise;return(o=E(this,bt))==null||o.cancel(i),s?s.then(zt).catch(zt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return E(this,Nl)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(i=>ya(i.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===cd||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(i=>Jn(i.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(i=>i.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(i=0){return this.state.data===void 0?!0:i==="static"?!1:this.state.isInvalidated?!0:!cg(this.state.dataUpdatedAt,i)}onFocus(){var s;const i=this.observers.find(u=>u.shouldFetchOnWindowFocus());i==null||i.refetch({cancelRefetch:!1}),(s=E(this,bt))==null||s.continue()}onOnline(){var s;const i=this.observers.find(u=>u.shouldFetchOnReconnect());i==null||i.refetch({cancelRefetch:!1}),(s=E(this,bt))==null||s.continue()}addObserver(i){this.observers.includes(i)||(this.observers.push(i),this.clearGcTimeout(),E(this,ma).notify({type:"observerAdded",query:this,observer:i}))}removeObserver(i){this.observers.includes(i)&&(this.observers=this.observers.filter(s=>s!==i),this.observers.length||(E(this,bt)&&(E(this,wl)||we(this,ea,yg).call(this)?E(this,bt).cancel({revert:!0}):E(this,bt).cancelRetry()),this.scheduleGc()),E(this,ma).notify({type:"observerRemoved",query:this,observer:i}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||we(this,ea,ln).call(this,{type:"invalidate"})}async fetch(i,s){var x,v,b,g,N,T,B,U,H,G,Q,K;if(this.state.fetchStatus!=="idle"&&((x=E(this,bt))==null?void 0:x.status())!=="rejected"){if(this.state.data!==void 0&&(s!=null&&s.cancelRefetch))this.cancel({silent:!0});else if(E(this,bt))return E(this,bt).continueRetry(),E(this,bt).promise}if(i&&this.setOptions(i),!this.options.queryFn){const Z=this.observers.find(ee=>ee.options.queryFn);Z&&this.setOptions(Z.options)}const u=new AbortController,o=Z=>{Object.defineProperty(Z,"signal",{enumerable:!0,get:()=>(te(this,wl,!0),u.signal)})},d=()=>{const Z=fg(this.options,s),ve=(()=>{const re={client:E(this,jl),queryKey:this.queryKey,meta:this.meta};return o(re),re})();return te(this,wl,!1),this.options.persister?this.options.persister(Z,ve,this):Z(ve)},p=(()=>{const Z={fetchOptions:s,options:this.options,queryKey:this.queryKey,client:E(this,jl),state:this.state,fetchFn:d};return o(Z),Z})();(v=this.options.behavior)==null||v.onFetch(p,this),te(this,Ai,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((b=p.fetchOptions)==null?void 0:b.meta))&&we(this,ea,ln).call(this,{type:"fetch",meta:(g=p.fetchOptions)==null?void 0:g.meta}),te(this,bt,hg({initialPromise:s==null?void 0:s.initialPromise,fn:p.fetchFn,onCancel:Z=>{Z instanceof Of&&Z.revert&&this.setState({...E(this,Ai),fetchStatus:"idle"}),u.abort()},onFail:(Z,ee)=>{we(this,ea,ln).call(this,{type:"failed",failureCount:Z,error:ee})},onPause:()=>{we(this,ea,ln).call(this,{type:"pause"})},onContinue:()=>{we(this,ea,ln).call(this,{type:"continue"})},retry:p.options.retry,retryDelay:p.options.retryDelay,networkMode:p.options.networkMode,canRun:()=>!0}));try{const Z=await E(this,bt).start();if(Z===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(Z),(T=(N=E(this,ma).config).onSuccess)==null||T.call(N,Z,this),(U=(B=E(this,ma).config).onSettled)==null||U.call(B,Z,this.state.error,this),Z}catch(Z){if(Z instanceof Of){if(Z.silent)return E(this,bt).promise;if(Z.revert){if(this.state.data===void 0)throw Z;return this.state.data}}throw we(this,ea,ln).call(this,{type:"error",error:Z}),(G=(H=E(this,ma).config).onError)==null||G.call(H,Z,this),(K=(Q=E(this,ma).config).onSettled)==null||K.call(Q,this.state.data,Z,this),Z}finally{this.scheduleGc()}}},Nl=new WeakMap,Ai=new WeakMap,ma=new WeakMap,jl=new WeakMap,bt=new WeakMap,Js=new WeakMap,wl=new WeakMap,ea=new WeakSet,yg=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},ln=function(i){const s=u=>{switch(i.type){case"failed":return{...u,fetchFailureCount:i.failureCount,fetchFailureReason:i.error};case"pause":return{...u,fetchStatus:"paused"};case"continue":return{...u,fetchStatus:"fetching"};case"fetch":return{...u,...pg(u.data,this.options),fetchMeta:i.meta??null};case"success":const o={...u,...Jp(i.data,i.dataUpdatedAt),dataUpdateCount:u.dataUpdateCount+1,...!i.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return te(this,Ai,i.manual?o:void 0),o;case"error":const d=i.error;return{...u,error:d,errorUpdateCount:u.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:u.fetchFailureCount+1,fetchFailureReason:d,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...u,isInvalidated:!0};case"setState":return{...u,...i.state}}};this.state=s(this.state),vt.batch(()=>{this.observers.forEach(u=>{u.onQueryUpdate()}),E(this,ma).notify({query:this,type:"updated",action:i})})},Tv);function pg(l,i){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:dg(i.networkMode)?"fetching":"paused",...l===void 0&&{error:null,status:"pending"}}}function Jp(l,i){return{data:l,dataUpdatedAt:i??Date.now(),error:null,isInvalidated:!1,status:"success"}}function $p(l){const i=typeof l.initialData=="function"?l.initialData():l.initialData,s=i!==void 0,u=s?typeof l.initialDataUpdatedAt=="function"?l.initialDataUpdatedAt():l.initialDataUpdatedAt:0;return{data:i,dataUpdateCount:0,dataUpdatedAt:s?u??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:s?"success":"pending",fetchStatus:"idle"}}var Yt,ke,$s,Mt,Tl,Ri,sn,Yn,Ws,Ci,Oi,Al,Rl,Gn,Mi,Ve,Qs,Mf,Df,zf,Uf,kf,Lf,Hf,vg,Av,fd=(Av=class extends Qi{constructor(i,s){super();oe(this,Ve);oe(this,Yt);oe(this,ke);oe(this,$s);oe(this,Mt);oe(this,Tl);oe(this,Ri);oe(this,sn);oe(this,Yn);oe(this,Ws);oe(this,Ci);oe(this,Oi);oe(this,Al);oe(this,Rl);oe(this,Gn);oe(this,Mi,new Set);this.options=s,te(this,Yt,i),te(this,Yn,null),te(this,sn,Cf()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(E(this,ke).addObserver(this),Wp(E(this,ke),this.options)?we(this,Ve,Qs).call(this):this.updateResult(),we(this,Ve,Uf).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return qf(E(this,ke),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return qf(E(this,ke),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,we(this,Ve,kf).call(this),we(this,Ve,Lf).call(this),E(this,ke).removeObserver(this)}setOptions(i){const s=this.options,u=E(this,ke);if(this.options=E(this,Yt).defaultQueryOptions(i),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof ya(this.options.enabled,E(this,ke))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");we(this,Ve,Hf).call(this),E(this,ke).setOptions(this.options),s._defaulted&&!Mu(this.options,s)&&E(this,Yt).getQueryCache().notify({type:"observerOptionsUpdated",query:E(this,ke),observer:this});const o=this.hasListeners();o&&Ip(E(this,ke),u,this.options,s)&&we(this,Ve,Qs).call(this),this.updateResult(),o&&(E(this,ke)!==u||ya(this.options.enabled,E(this,ke))!==ya(s.enabled,E(this,ke))||Jn(this.options.staleTime,E(this,ke))!==Jn(s.staleTime,E(this,ke)))&&we(this,Ve,Mf).call(this);const d=we(this,Ve,Df).call(this);o&&(E(this,ke)!==u||ya(this.options.enabled,E(this,ke))!==ya(s.enabled,E(this,ke))||d!==E(this,Gn))&&we(this,Ve,zf).call(this,d)}getOptimisticResult(i){const s=E(this,Yt).getQueryCache().build(E(this,Yt),i),u=this.createResult(s,i);return u2(this,u)&&(te(this,Mt,u),te(this,Ri,this.options),te(this,Tl,E(this,ke).state)),u}getCurrentResult(){return E(this,Mt)}trackResult(i,s){return new Proxy(i,{get:(u,o)=>(this.trackProp(o),s==null||s(o),o==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&E(this,sn).status==="pending"&&E(this,sn).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(u,o))})}trackProp(i){E(this,Mi).add(i)}getCurrentQuery(){return E(this,ke)}refetch({...i}={}){return this.fetch({...i})}fetchOptimistic(i){const s=E(this,Yt).defaultQueryOptions(i),u=E(this,Yt).getQueryCache().build(E(this,Yt),s);return u.fetch().then(()=>this.createResult(u,s))}fetch(i){return we(this,Ve,Qs).call(this,{...i,cancelRefetch:i.cancelRefetch??!0}).then(()=>(this.updateResult(),E(this,Mt)))}createResult(i,s){var xe;const u=E(this,ke),o=this.options,d=E(this,Mt),m=E(this,Tl),p=E(this,Ri),v=i!==u?i.state:E(this,$s),{state:b}=i;let g={...b},N=!1,T;if(s._optimisticResults){const Ae=this.hasListeners(),ze=!Ae&&Wp(i,s),fe=Ae&&Ip(i,u,s,o);(ze||fe)&&(g={...g,...pg(b.data,i.options)}),s._optimisticResults==="isRestoring"&&(g.fetchStatus="idle")}let{error:B,errorUpdatedAt:U,status:H}=g;T=g.data;let G=!1;if(s.placeholderData!==void 0&&T===void 0&&H==="pending"){let Ae;d!=null&&d.isPlaceholderData&&s.placeholderData===(p==null?void 0:p.placeholderData)?(Ae=d.data,G=!0):Ae=typeof s.placeholderData=="function"?s.placeholderData((xe=E(this,Oi))==null?void 0:xe.state.data,E(this,Oi)):s.placeholderData,Ae!==void 0&&(H="success",T=Rf(d==null?void 0:d.data,Ae,s),N=!0)}if(s.select&&T!==void 0&&!G)if(d&&T===(m==null?void 0:m.data)&&s.select===E(this,Ws))T=E(this,Ci);else try{te(this,Ws,s.select),T=s.select(T),T=Rf(d==null?void 0:d.data,T,s),te(this,Ci,T),te(this,Yn,null)}catch(Ae){te(this,Yn,Ae)}E(this,Yn)&&(B=E(this,Yn),T=E(this,Ci),U=Date.now(),H="error");const Q=g.fetchStatus==="fetching",K=H==="pending",Z=H==="error",ee=K&&Q,ve=T!==void 0,ce={status:H,fetchStatus:g.fetchStatus,isPending:K,isSuccess:H==="success",isError:Z,isInitialLoading:ee,isLoading:ee,data:T,dataUpdatedAt:g.dataUpdatedAt,error:B,errorUpdatedAt:U,failureCount:g.fetchFailureCount,failureReason:g.fetchFailureReason,errorUpdateCount:g.errorUpdateCount,isFetched:i.isFetched(),isFetchedAfterMount:g.dataUpdateCount>v.dataUpdateCount||g.errorUpdateCount>v.errorUpdateCount,isFetching:Q,isRefetching:Q&&!K,isLoadingError:Z&&!ve,isPaused:g.fetchStatus==="paused",isPlaceholderData:N,isRefetchError:Z&&ve,isStale:dd(i,s),refetch:this.refetch,promise:E(this,sn),isEnabled:ya(s.enabled,i)!==!1};if(this.options.experimental_prefetchInRender){const Ae=ce.data!==void 0,ze=ce.status==="error"&&!Ae,fe=pe=>{ze?pe.reject(ce.error):Ae&&pe.resolve(ce.data)},he=()=>{const pe=te(this,sn,ce.promise=Cf());fe(pe)},Ne=E(this,sn);switch(Ne.status){case"pending":i.queryHash===u.queryHash&&fe(Ne);break;case"fulfilled":(ze||ce.data!==Ne.value)&&he();break;case"rejected":(!ze||ce.error!==Ne.reason)&&he();break}}return ce}updateResult(){const i=E(this,Mt),s=this.createResult(E(this,ke),this.options);if(te(this,Tl,E(this,ke).state),te(this,Ri,this.options),E(this,Tl).data!==void 0&&te(this,Oi,E(this,ke)),Mu(s,i))return;te(this,Mt,s);const u=()=>{if(!i)return!0;const{notifyOnChangeProps:o}=this.options,d=typeof o=="function"?o():o;if(d==="all"||!d&&!E(this,Mi).size)return!0;const m=new Set(d??E(this,Mi));return this.options.throwOnError&&m.add("error"),Object.keys(E(this,Mt)).some(p=>{const x=p;return E(this,Mt)[x]!==i[x]&&m.has(x)})};we(this,Ve,vg).call(this,{listeners:u()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&we(this,Ve,Uf).call(this)}},Yt=new WeakMap,ke=new WeakMap,$s=new WeakMap,Mt=new WeakMap,Tl=new WeakMap,Ri=new WeakMap,sn=new WeakMap,Yn=new WeakMap,Ws=new WeakMap,Ci=new WeakMap,Oi=new WeakMap,Al=new WeakMap,Rl=new WeakMap,Gn=new WeakMap,Mi=new WeakMap,Ve=new WeakSet,Qs=function(i){we(this,Ve,Hf).call(this);let s=E(this,ke).fetch(this.options,i);return i!=null&&i.throwOnError||(s=s.catch(zt)),s},Mf=function(){we(this,Ve,kf).call(this);const i=Jn(this.options.staleTime,E(this,ke));if(Fs.isServer()||E(this,Mt).isStale||!Tf(i))return;const u=cg(E(this,Mt).dataUpdatedAt,i)+1;te(this,Al,bl.setTimeout(()=>{E(this,Mt).isStale||this.updateResult()},u))},Df=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(E(this,ke)):this.options.refetchInterval)??!1},zf=function(i){we(this,Ve,Lf).call(this),te(this,Gn,i),!(Fs.isServer()||ya(this.options.enabled,E(this,ke))===!1||!Tf(E(this,Gn))||E(this,Gn)===0)&&te(this,Rl,bl.setInterval(()=>{(this.options.refetchIntervalInBackground||rd.isFocused())&&we(this,Ve,Qs).call(this)},E(this,Gn)))},Uf=function(){we(this,Ve,Mf).call(this),we(this,Ve,zf).call(this,we(this,Ve,Df).call(this))},kf=function(){E(this,Al)&&(bl.clearTimeout(E(this,Al)),te(this,Al,void 0))},Lf=function(){E(this,Rl)&&(bl.clearInterval(E(this,Rl)),te(this,Rl,void 0))},Hf=function(){const i=E(this,Yt).getQueryCache().build(E(this,Yt),this.options);if(i===E(this,ke))return;const s=E(this,ke);te(this,ke,i),te(this,$s,i.state),this.hasListeners()&&(s==null||s.removeObserver(this),i.addObserver(this))},vg=function(i){vt.batch(()=>{i.listeners&&this.listeners.forEach(s=>{s(E(this,Mt))}),E(this,Yt).getQueryCache().notify({query:E(this,ke),type:"observerResultsUpdated"})})},Av);function r2(l,i){return ya(i.enabled,l)!==!1&&l.state.data===void 0&&!(l.state.status==="error"&&i.retryOnMount===!1)}function Wp(l,i){return r2(l,i)||l.state.data!==void 0&&qf(l,i,i.refetchOnMount)}function qf(l,i,s){if(ya(i.enabled,l)!==!1&&Jn(i.staleTime,l)!=="static"){const u=typeof s=="function"?s(l):s;return u==="always"||u!==!1&&dd(l,i)}return!1}function Ip(l,i,s,u){return(l!==i||ya(u.enabled,l)===!1)&&(!s.suspense||l.state.status!=="error")&&dd(l,s)}function dd(l,i){return ya(i.enabled,l)!==!1&&l.isStaleByTime(Jn(i.staleTime,l))}function u2(l,i){return!Mu(l.getCurrentResult(),i)}function zu(l){return{onFetch:(i,s)=>{var b,g,N,T,B;const u=i.options,o=(N=(g=(b=i.fetchOptions)==null?void 0:b.meta)==null?void 0:g.fetchMore)==null?void 0:N.direction,d=((T=i.state.data)==null?void 0:T.pages)||[],m=((B=i.state.data)==null?void 0:B.pageParams)||[];let p={pages:[],pageParams:[]},x=0;const v=async()=>{let U=!1;const H=K=>{t2(K,()=>i.signal,()=>U=!0)},G=fg(i.options,i.fetchOptions),Q=async(K,Z,ee)=>{if(U)return Promise.reject();if(Z==null&&K.pages.length)return Promise.resolve(K);const re=(()=>{const ze={client:i.client,queryKey:i.queryKey,pageParam:Z,direction:ee?"backward":"forward",meta:i.options.meta};return H(ze),ze})(),ce=await G(re),{maxPages:xe}=i.options,Ae=ee?e2:PS;return{pages:Ae(K.pages,ce,xe),pageParams:Ae(K.pageParams,Z,xe)}};if(o&&d.length){const K=o==="backward",Z=K?gg:Bf,ee={pages:d,pageParams:m},ve=Z(u,ee);p=await Q(ee,ve,K)}else{const K=l??d.length;do{const Z=x===0?m[0]??u.initialPageParam:Bf(u,p);if(x>0&&Z==null)break;p=await Q(p,Z),x++}while(x{var U,H;return(H=(U=i.options).persister)==null?void 0:H.call(U,v,{client:i.client,queryKey:i.queryKey,meta:i.options.meta,signal:i.signal},s)}:i.fetchFn=v}}}function Bf(l,{pages:i,pageParams:s}){const u=i.length-1;return i.length>0?l.getNextPageParam(i[u],i,s[u],s):void 0}function gg(l,{pages:i,pageParams:s}){var u;return i.length>0?(u=l.getPreviousPageParam)==null?void 0:u.call(l,i[0],i,s[0],s):void 0}function c2(l,i){return i?Bf(l,i)!=null:!1}function o2(l,i){return!i||!l.getPreviousPageParam?!1:gg(l,i)!=null}var f2=class extends fd{constructor(l,i){super(l,i)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(l){super.setOptions({...l,behavior:zu()})}getOptimisticResult(l){return l.behavior=zu(),super.getOptimisticResult(l)}fetchNextPage(l){return this.fetch({...l,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(l){return this.fetch({...l,meta:{fetchMore:{direction:"backward"}}})}createResult(l,i){var B,U;const{state:s}=l,u=super.createResult(l,i),{isFetching:o,isRefetching:d,isError:m,isRefetchError:p}=u,x=(U=(B=s.fetchMeta)==null?void 0:B.fetchMore)==null?void 0:U.direction,v=m&&x==="forward",b=o&&x==="forward",g=m&&x==="backward",N=o&&x==="backward";return{...u,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:c2(i,s.data),hasPreviousPage:o2(i,s.data),isFetchNextPageError:v,isFetchingNextPage:b,isFetchPreviousPageError:g,isFetchingPreviousPage:N,isRefetchError:p&&!v&&!g,isRefetching:d&&!b&&!N}}},Is,za,At,Cl,Ua,Hn,Rv,d2=(Rv=class extends mg{constructor(i){super();oe(this,Ua);oe(this,Is);oe(this,za);oe(this,At);oe(this,Cl);te(this,Is,i.client),this.mutationId=i.mutationId,te(this,At,i.mutationCache),te(this,za,[]),this.state=i.state||xg(),this.setOptions(i.options),this.scheduleGc()}setOptions(i){this.options=i,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(i){E(this,za).includes(i)||(E(this,za).push(i),this.clearGcTimeout(),E(this,At).notify({type:"observerAdded",mutation:this,observer:i}))}removeObserver(i){te(this,za,E(this,za).filter(s=>s!==i)),this.scheduleGc(),E(this,At).notify({type:"observerRemoved",mutation:this,observer:i})}optionalRemove(){E(this,za).length||(this.state.status==="pending"?this.scheduleGc():E(this,At).remove(this))}continue(){var i;return((i=E(this,Cl))==null?void 0:i.continue())??this.execute(this.state.variables)}async execute(i){var m,p,x,v,b,g,N,T,B,U,H,G,Q,K,Z,ee,ve,re;const s=()=>{we(this,Ua,Hn).call(this,{type:"continue"})},u={client:E(this,Is),meta:this.options.meta,mutationKey:this.options.mutationKey};te(this,Cl,hg({fn:()=>this.options.mutationFn?this.options.mutationFn(i,u):Promise.reject(new Error("No mutationFn found")),onFail:(ce,xe)=>{we(this,Ua,Hn).call(this,{type:"failed",failureCount:ce,error:xe})},onPause:()=>{we(this,Ua,Hn).call(this,{type:"pause"})},onContinue:s,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>E(this,At).canRun(this)}));const o=this.state.status==="pending",d=!E(this,Cl).canStart();try{if(o)s();else{we(this,Ua,Hn).call(this,{type:"pending",variables:i,isPaused:d}),E(this,At).config.onMutate&&await E(this,At).config.onMutate(i,this,u);const xe=await((p=(m=this.options).onMutate)==null?void 0:p.call(m,i,u));xe!==this.state.context&&we(this,Ua,Hn).call(this,{type:"pending",context:xe,variables:i,isPaused:d})}const ce=await E(this,Cl).start();return await((v=(x=E(this,At).config).onSuccess)==null?void 0:v.call(x,ce,i,this.state.context,this,u)),await((g=(b=this.options).onSuccess)==null?void 0:g.call(b,ce,i,this.state.context,u)),await((T=(N=E(this,At).config).onSettled)==null?void 0:T.call(N,ce,null,this.state.variables,this.state.context,this,u)),await((U=(B=this.options).onSettled)==null?void 0:U.call(B,ce,null,i,this.state.context,u)),we(this,Ua,Hn).call(this,{type:"success",data:ce}),ce}catch(ce){try{await((G=(H=E(this,At).config).onError)==null?void 0:G.call(H,ce,i,this.state.context,this,u))}catch(xe){Promise.reject(xe)}try{await((K=(Q=this.options).onError)==null?void 0:K.call(Q,ce,i,this.state.context,u))}catch(xe){Promise.reject(xe)}try{await((ee=(Z=E(this,At).config).onSettled)==null?void 0:ee.call(Z,void 0,ce,this.state.variables,this.state.context,this,u))}catch(xe){Promise.reject(xe)}try{await((re=(ve=this.options).onSettled)==null?void 0:re.call(ve,void 0,ce,i,this.state.context,u))}catch(xe){Promise.reject(xe)}throw we(this,Ua,Hn).call(this,{type:"error",error:ce}),ce}finally{E(this,At).runNext(this)}}},Is=new WeakMap,za=new WeakMap,At=new WeakMap,Cl=new WeakMap,Ua=new WeakSet,Hn=function(i){const s=u=>{switch(i.type){case"failed":return{...u,failureCount:i.failureCount,failureReason:i.error};case"pause":return{...u,isPaused:!0};case"continue":return{...u,isPaused:!1};case"pending":return{...u,context:i.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:i.isPaused,status:"pending",variables:i.variables,submittedAt:Date.now()};case"success":return{...u,data:i.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...u,data:void 0,error:i.error,failureCount:u.failureCount+1,failureReason:i.error,isPaused:!1,status:"error"}}};this.state=s(this.state),vt.batch(()=>{E(this,za).forEach(u=>{u.onMutationUpdate(i)}),E(this,At).notify({mutation:this,type:"updated",action:i})})},Rv);function xg(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var rn,Sa,Ps,Cv,h2=(Cv=class extends Qi{constructor(i={}){super();oe(this,rn);oe(this,Sa);oe(this,Ps);this.config=i,te(this,rn,new Set),te(this,Sa,new Map),te(this,Ps,0)}build(i,s,u){const o=new d2({client:i,mutationCache:this,mutationId:++Nu(this,Ps)._,options:i.defaultMutationOptions(s),state:u});return this.add(o),o}add(i){E(this,rn).add(i);const s=Tu(i);if(typeof s=="string"){const u=E(this,Sa).get(s);u?u.push(i):E(this,Sa).set(s,[i])}this.notify({type:"added",mutation:i})}remove(i){if(E(this,rn).delete(i)){const s=Tu(i);if(typeof s=="string"){const u=E(this,Sa).get(s);if(u)if(u.length>1){const o=u.indexOf(i);o!==-1&&u.splice(o,1)}else u[0]===i&&E(this,Sa).delete(s)}}this.notify({type:"removed",mutation:i})}canRun(i){const s=Tu(i);if(typeof s=="string"){const u=E(this,Sa).get(s),o=u==null?void 0:u.find(d=>d.state.status==="pending");return!o||o===i}else return!0}runNext(i){var u;const s=Tu(i);if(typeof s=="string"){const o=(u=E(this,Sa).get(s))==null?void 0:u.find(d=>d!==i&&d.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){vt.batch(()=>{E(this,rn).forEach(i=>{this.notify({type:"removed",mutation:i})}),E(this,rn).clear(),E(this,Sa).clear()})}getAll(){return Array.from(E(this,rn))}find(i){const s={exact:!0,...i};return this.getAll().find(u=>Kp(s,u))}findAll(i={}){return this.getAll().filter(s=>Kp(i,s))}notify(i){vt.batch(()=>{this.listeners.forEach(s=>{s(i)})})}resumePausedMutations(){const i=this.getAll().filter(s=>s.state.isPaused);return vt.batch(()=>Promise.all(i.map(s=>s.continue().catch(zt))))}},rn=new WeakMap,Sa=new WeakMap,Ps=new WeakMap,Cv);function Tu(l){var i;return(i=l.options.scope)==null?void 0:i.id}var un,Xn,Gt,cn,on,Cu,Qf,Ov,m2=(Ov=class extends Qi{constructor(s,u){super();oe(this,on);oe(this,un);oe(this,Xn);oe(this,Gt);oe(this,cn);te(this,un,s),this.setOptions(u),this.bindMethods(),we(this,on,Cu).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(s){var o;const u=this.options;this.options=E(this,un).defaultMutationOptions(s),Mu(this.options,u)||E(this,un).getMutationCache().notify({type:"observerOptionsUpdated",mutation:E(this,Gt),observer:this}),u!=null&&u.mutationKey&&this.options.mutationKey&&Ml(u.mutationKey)!==Ml(this.options.mutationKey)?this.reset():((o=E(this,Gt))==null?void 0:o.state.status)==="pending"&&E(this,Gt).setOptions(this.options)}onUnsubscribe(){var s;this.hasListeners()||(s=E(this,Gt))==null||s.removeObserver(this)}onMutationUpdate(s){we(this,on,Cu).call(this),we(this,on,Qf).call(this,s)}getCurrentResult(){return E(this,Xn)}reset(){var s;(s=E(this,Gt))==null||s.removeObserver(this),te(this,Gt,void 0),we(this,on,Cu).call(this),we(this,on,Qf).call(this)}mutate(s,u){var o;return te(this,cn,u),(o=E(this,Gt))==null||o.removeObserver(this),te(this,Gt,E(this,un).getMutationCache().build(E(this,un),this.options)),E(this,Gt).addObserver(this),E(this,Gt).execute(s)}},un=new WeakMap,Xn=new WeakMap,Gt=new WeakMap,cn=new WeakMap,on=new WeakSet,Cu=function(){var u;const s=((u=E(this,Gt))==null?void 0:u.state)??xg();te(this,Xn,{...s,isPending:s.status==="pending",isSuccess:s.status==="success",isError:s.status==="error",isIdle:s.status==="idle",mutate:this.mutate,reset:this.reset})},Qf=function(s){vt.batch(()=>{var u,o,d,m,p,x,v,b;if(E(this,cn)&&this.hasListeners()){const g=E(this,Xn).variables,N=E(this,Xn).context,T={client:E(this,un),meta:this.options.meta,mutationKey:this.options.mutationKey};if((s==null?void 0:s.type)==="success"){try{(o=(u=E(this,cn)).onSuccess)==null||o.call(u,s.data,g,N,T)}catch(B){Promise.reject(B)}try{(m=(d=E(this,cn)).onSettled)==null||m.call(d,s.data,null,g,N,T)}catch(B){Promise.reject(B)}}else if((s==null?void 0:s.type)==="error"){try{(x=(p=E(this,cn)).onError)==null||x.call(p,s.error,g,N,T)}catch(B){Promise.reject(B)}try{(b=(v=E(this,cn)).onSettled)==null||b.call(v,void 0,s.error,g,N,T)}catch(B){Promise.reject(B)}}}this.listeners.forEach(g=>{g(E(this,Xn))})})},Ov),ka,Mv,y2=(Mv=class extends Qi{constructor(i={}){super();oe(this,ka);this.config=i,te(this,ka,new Map)}build(i,s,u){const o=s.queryKey,d=s.queryHash??ud(o,s);let m=this.get(d);return m||(m=new s2({client:i,queryKey:o,queryHash:d,options:i.defaultQueryOptions(s),state:u,defaultOptions:i.getQueryDefaults(o)}),this.add(m)),m}add(i){E(this,ka).has(i.queryHash)||(E(this,ka).set(i.queryHash,i),this.notify({type:"added",query:i}))}remove(i){const s=E(this,ka).get(i.queryHash);s&&(i.destroy(),s===i&&E(this,ka).delete(i.queryHash),this.notify({type:"removed",query:i}))}clear(){vt.batch(()=>{this.getAll().forEach(i=>{this.remove(i)})})}get(i){return E(this,ka).get(i)}getAll(){return[...E(this,ka).values()]}find(i){const s={exact:!0,...i};return this.getAll().find(u=>Xp(s,u))}findAll(i={}){const s=this.getAll();return Object.keys(i).length>0?s.filter(u=>Xp(i,u)):s}notify(i){vt.batch(()=>{this.listeners.forEach(s=>{s(i)})})}onFocus(){vt.batch(()=>{this.getAll().forEach(i=>{i.onFocus()})})}onOnline(){vt.batch(()=>{this.getAll().forEach(i=>{i.onOnline()})})}},ka=new WeakMap,Mv),it,Kn,Zn,Di,zi,Fn,Ui,ki,Dv,p2=(Dv=class{constructor(l={}){oe(this,it);oe(this,Kn);oe(this,Zn);oe(this,Di);oe(this,zi);oe(this,Fn);oe(this,Ui);oe(this,ki);te(this,it,l.queryCache||new y2),te(this,Kn,l.mutationCache||new h2),te(this,Zn,l.defaultOptions||{}),te(this,Di,new Map),te(this,zi,new Map),te(this,Fn,0)}mount(){Nu(this,Fn)._++,E(this,Fn)===1&&(te(this,Ui,rd.subscribe(async l=>{l&&(await this.resumePausedMutations(),E(this,it).onFocus())})),te(this,ki,Du.subscribe(async l=>{l&&(await this.resumePausedMutations(),E(this,it).onOnline())})))}unmount(){var l,i;Nu(this,Fn)._--,E(this,Fn)===0&&((l=E(this,Ui))==null||l.call(this),te(this,Ui,void 0),(i=E(this,ki))==null||i.call(this),te(this,ki,void 0))}isFetching(l){return E(this,it).findAll({...l,fetchStatus:"fetching"}).length}isMutating(l){return E(this,Kn).findAll({...l,status:"pending"}).length}getQueryData(l){var s;const i=this.defaultQueryOptions({queryKey:l});return(s=E(this,it).get(i.queryHash))==null?void 0:s.state.data}ensureQueryData(l){const i=this.defaultQueryOptions(l),s=E(this,it).build(this,i),u=s.state.data;return u===void 0?this.fetchQuery(l):(l.revalidateIfStale&&s.isStaleByTime(Jn(i.staleTime,s))&&this.prefetchQuery(i),Promise.resolve(u))}getQueriesData(l){return E(this,it).findAll(l).map(({queryKey:i,state:s})=>{const u=s.data;return[i,u]})}setQueryData(l,i,s){const u=this.defaultQueryOptions({queryKey:l}),o=E(this,it).get(u.queryHash),d=o==null?void 0:o.state.data,m=$S(i,d);if(m!==void 0)return E(this,it).build(this,u).setData(m,{...s,manual:!0})}setQueriesData(l,i,s){return vt.batch(()=>E(this,it).findAll(l).map(({queryKey:u})=>[u,this.setQueryData(u,i,s)]))}getQueryState(l){var s;const i=this.defaultQueryOptions({queryKey:l});return(s=E(this,it).get(i.queryHash))==null?void 0:s.state}removeQueries(l){const i=E(this,it);vt.batch(()=>{i.findAll(l).forEach(s=>{i.remove(s)})})}resetQueries(l,i){const s=E(this,it);return vt.batch(()=>(s.findAll(l).forEach(u=>{u.reset()}),this.refetchQueries({type:"active",...l},i)))}cancelQueries(l,i={}){const s={revert:!0,...i},u=vt.batch(()=>E(this,it).findAll(l).map(o=>o.cancel(s)));return Promise.all(u).then(zt).catch(zt)}invalidateQueries(l,i={}){return vt.batch(()=>(E(this,it).findAll(l).forEach(s=>{s.invalidate()}),(l==null?void 0:l.refetchType)==="none"?Promise.resolve():this.refetchQueries({...l,type:(l==null?void 0:l.refetchType)??(l==null?void 0:l.type)??"active"},i)))}refetchQueries(l,i={}){const s={...i,cancelRefetch:i.cancelRefetch??!0},u=vt.batch(()=>E(this,it).findAll(l).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let d=o.fetch(void 0,s);return s.throwOnError||(d=d.catch(zt)),o.state.fetchStatus==="paused"?Promise.resolve():d}));return Promise.all(u).then(zt)}fetchQuery(l){const i=this.defaultQueryOptions(l);i.retry===void 0&&(i.retry=!1);const s=E(this,it).build(this,i);return s.isStaleByTime(Jn(i.staleTime,s))?s.fetch(i):Promise.resolve(s.state.data)}prefetchQuery(l){return this.fetchQuery(l).then(zt).catch(zt)}fetchInfiniteQuery(l){return l.behavior=zu(l.pages),this.fetchQuery(l)}prefetchInfiniteQuery(l){return this.fetchInfiniteQuery(l).then(zt).catch(zt)}ensureInfiniteQueryData(l){return l.behavior=zu(l.pages),this.ensureQueryData(l)}resumePausedMutations(){return Du.isOnline()?E(this,Kn).resumePausedMutations():Promise.resolve()}getQueryCache(){return E(this,it)}getMutationCache(){return E(this,Kn)}getDefaultOptions(){return E(this,Zn)}setDefaultOptions(l){te(this,Zn,l)}setQueryDefaults(l,i){E(this,Di).set(Ml(l),{queryKey:l,defaultOptions:i})}getQueryDefaults(l){const i=[...E(this,Di).values()],s={};return i.forEach(u=>{Zs(l,u.queryKey)&&Object.assign(s,u.defaultOptions)}),s}setMutationDefaults(l,i){E(this,zi).set(Ml(l),{mutationKey:l,defaultOptions:i})}getMutationDefaults(l){const i=[...E(this,zi).values()],s={};return i.forEach(u=>{Zs(l,u.mutationKey)&&Object.assign(s,u.defaultOptions)}),s}defaultQueryOptions(l){if(l._defaulted)return l;const i={...E(this,Zn).queries,...this.getQueryDefaults(l.queryKey),...l,_defaulted:!0};return i.queryHash||(i.queryHash=ud(i.queryKey,i)),i.refetchOnReconnect===void 0&&(i.refetchOnReconnect=i.networkMode!=="always"),i.throwOnError===void 0&&(i.throwOnError=!!i.suspense),!i.networkMode&&i.persister&&(i.networkMode="offlineFirst"),i.queryFn===cd&&(i.enabled=!1),i}defaultMutationOptions(l){return l!=null&&l._defaulted?l:{...E(this,Zn).mutations,...(l==null?void 0:l.mutationKey)&&this.getMutationDefaults(l.mutationKey),...l,_defaulted:!0}}clear(){E(this,it).clear(),E(this,Kn).clear()}},it=new WeakMap,Kn=new WeakMap,Zn=new WeakMap,Di=new WeakMap,zi=new WeakMap,Fn=new WeakMap,Ui=new WeakMap,ki=new WeakMap,Dv),bg=A.createContext(void 0),Vi=l=>{const i=A.useContext(bg);if(l)return l;if(!i)throw new Error("No QueryClient set, use QueryClientProvider to set one");return i},v2=({client:l,children:i})=>(A.useEffect(()=>(l.mount(),()=>{l.unmount()}),[l]),f.jsx(bg.Provider,{value:l,children:i})),Sg=A.createContext(!1),g2=()=>A.useContext(Sg);Sg.Provider;function x2(){let l=!1;return{clearReset:()=>{l=!1},reset:()=>{l=!0},isReset:()=>l}}var b2=A.createContext(x2()),S2=()=>A.useContext(b2),E2=(l,i,s)=>{const u=s!=null&&s.state.error&&typeof l.throwOnError=="function"?od(l.throwOnError,[s.state.error,s]):l.throwOnError;(l.suspense||l.experimental_prefetchInRender||u)&&(i.isReset()||(l.retryOnMount=!1))},_2=l=>{A.useEffect(()=>{l.clearReset()},[l])},N2=({result:l,errorResetBoundary:i,throwOnError:s,query:u,suspense:o})=>l.isError&&!i.isReset()&&!l.isFetching&&u&&(o&&l.data===void 0||od(s,[l.error,u])),j2=(l,i)=>i.state.data===void 0,w2=l=>{if(l.suspense){const s=o=>o==="static"?o:Math.max(o??1e3,1e3),u=l.staleTime;l.staleTime=typeof u=="function"?(...o)=>s(u(...o)):s(u),typeof l.gcTime=="number"&&(l.gcTime=Math.max(l.gcTime,1e3))}},T2=(l,i)=>l.isLoading&&l.isFetching&&!i,A2=(l,i)=>(l==null?void 0:l.suspense)&&i.isPending,Pp=(l,i,s)=>i.fetchOptimistic(l).catch(()=>{s.clearReset()});function hd(l,i,s){var N,T,B,U;const u=g2(),o=S2(),d=Vi(s),m=d.defaultQueryOptions(l);(T=(N=d.getDefaultOptions().queries)==null?void 0:N._experimental_beforeQuery)==null||T.call(N,m);const p=d.getQueryCache().get(m.queryHash);m._optimisticResults=u?"isRestoring":"optimistic",w2(m),E2(m,o,p),_2(o);const x=!d.getQueryCache().get(m.queryHash),[v]=A.useState(()=>new i(d,m)),b=v.getOptimisticResult(m),g=!u&&l.subscribed!==!1;if(A.useSyncExternalStore(A.useCallback(H=>{const G=g?v.subscribe(vt.batchCalls(H)):zt;return v.updateResult(),G},[v,g]),()=>v.getCurrentResult(),()=>v.getCurrentResult()),A.useEffect(()=>{v.setOptions(m)},[m,v]),A2(m,b))throw Pp(m,v,o);if(N2({result:b,errorResetBoundary:o,throwOnError:m.throwOnError,query:p,suspense:m.suspense}))throw b.error;if((U=(B=d.getDefaultOptions().queries)==null?void 0:B._experimental_afterQuery)==null||U.call(B,m,b),m.experimental_prefetchInRender&&!Fs.isServer()&&T2(b,u)){const H=x?Pp(m,v,o):p==null?void 0:p.promise;H==null||H.catch(zt).finally(()=>{v.updateResult()})}return m.notifyOnChangeProps?b:v.trackResult(b)}function R2(l,i){return hd(l,fd,i)}function C2(l,i){return hd({...l,enabled:!0,suspense:!0,throwOnError:j2,placeholderData:void 0},fd,i)}function O2(l,i){const s=Vi(i),[u]=A.useState(()=>new m2(s,l));A.useEffect(()=>{u.setOptions(l)},[u,l]);const o=A.useSyncExternalStore(A.useCallback(m=>u.subscribe(vt.batchCalls(m)),[u]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),d=A.useCallback((m,p)=>{u.mutate(m,p).catch(zt)},[u]);if(o.error&&od(u.options.throwOnError,[o.error]))throw o.error;return{...o,mutate:d,mutateAsync:o.mutate}}function M2(l,i){return hd(l,f2,i)}const D2=new p2({defaultOptions:{queries:{staleTime:60*1e3,gcTime:300*1e3,retry:1,refetchOnWindowFocus:!1},mutations:{retry:0}}}),z2=/\{[^{}]+\}/g,U2=()=>{var l,i;return typeof process=="object"&&Number.parseInt((i=(l=process==null?void 0:process.versions)==null?void 0:l.node)==null?void 0:i.substring(0,2))>=18&&process.versions.undici};function k2(){return Math.random().toString(36).slice(2,11)}function L2(l){let{baseUrl:i="",Request:s=globalThis.Request,fetch:u=globalThis.fetch,querySerializer:o,bodySerializer:d,pathSerializer:m,headers:p,requestInitExt:x=void 0,...v}={...l};x=U2()?x:void 0,i=av(i);const b=[];async function g(N,T){var I;const{baseUrl:B,fetch:U=u,Request:H=s,headers:G,params:Q={},parseAs:K="json",querySerializer:Z,bodySerializer:ee=d??q2,pathSerializer:ve,body:re,middleware:ce=[],...xe}=T||{};let Ae=i;B&&(Ae=av(B)??i);let ze=typeof o=="function"?o:ev(o);Z&&(ze=typeof Z=="function"?Z:ev({...typeof o=="object"?o:{},...Z}));const fe=ve||m||H2,he=re===void 0?void 0:ee(re,tv(p,G,Q.header)),Ne=tv(he===void 0||he instanceof FormData?{}:{"Content-Type":"application/json"},p,G,Q.header),pe=[...b,...ce],L={redirect:"follow",...v,...xe,body:he,headers:Ne};let F,ie,Se=new H(B2(N,{baseUrl:Ae,params:Q,querySerializer:ze,pathSerializer:fe}),L),me;for(const W in xe)W in Se||(Se[W]=xe[W]);if(pe.length){F=k2(),ie=Object.freeze({baseUrl:Ae,fetch:U,parseAs:K,querySerializer:ze,bodySerializer:ee,pathSerializer:fe});for(const W of pe)if(W&&typeof W=="object"&&typeof W.onRequest=="function"){const ae=await W.onRequest({request:Se,schemaPath:N,params:Q,options:ie,id:F});if(ae)if(ae instanceof H)Se=ae;else if(ae instanceof Response){me=ae;break}else throw new Error("onRequest: must return new Request() or Response() when modifying the request")}}if(!me){try{me=await U(Se,x)}catch(W){let ae=W;if(pe.length)for(let ge=pe.length-1;ge>=0;ge--){const Re=pe[ge];if(Re&&typeof Re=="object"&&typeof Re.onError=="function"){const tt=await Re.onError({request:Se,error:ae,schemaPath:N,params:Q,options:ie,id:F});if(tt){if(tt instanceof Response){ae=void 0,me=tt;break}if(tt instanceof Error){ae=tt;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(ae)throw ae}if(pe.length)for(let W=pe.length-1;W>=0;W--){const ae=pe[W];if(ae&&typeof ae=="object"&&typeof ae.onResponse=="function"){const ge=await ae.onResponse({request:Se,response:me,schemaPath:N,params:Q,options:ie,id:F});if(ge){if(!(ge instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");me=ge}}}}const w=me.headers.get("Content-Length");if(me.status===204||Se.method==="HEAD"||w==="0"&&!((I=me.headers.get("Transfer-Encoding"))!=null&&I.includes("chunked")))return me.ok?{data:void 0,response:me}:{error:void 0,response:me};if(me.ok)return{data:await(async()=>{if(K==="stream")return me.body;if(K==="json"&&!w){const ae=await me.text();return ae?JSON.parse(ae):void 0}return await me[K]()})(),response:me};let Y=await me.text();try{Y=JSON.parse(Y)}catch{}return{error:Y,response:me}}return{request(N,T,B){return g(T,{...B,method:N.toUpperCase()})},GET(N,T){return g(N,{...T,method:"GET"})},PUT(N,T){return g(N,{...T,method:"PUT"})},POST(N,T){return g(N,{...T,method:"POST"})},DELETE(N,T){return g(N,{...T,method:"DELETE"})},OPTIONS(N,T){return g(N,{...T,method:"OPTIONS"})},HEAD(N,T){return g(N,{...T,method:"HEAD"})},PATCH(N,T){return g(N,{...T,method:"PATCH"})},TRACE(N,T){return g(N,{...T,method:"TRACE"})},use(...N){for(const T of N)if(T){if(typeof T!="object"||!("onRequest"in T||"onResponse"in T||"onError"in T))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");b.push(T)}},eject(...N){for(const T of N){const B=b.indexOf(T);B!==-1&&b.splice(B,1)}}}}function Xu(l,i,s){if(i==null)return"";if(typeof i=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${l}=${(s==null?void 0:s.allowReserved)===!0?i:encodeURIComponent(i)}`}function Eg(l,i,s){if(!i||typeof i!="object")return"";const u=[],o={simple:",",label:".",matrix:";"}[s.style]||"&";if(s.style!=="deepObject"&&s.explode===!1){for(const p in i)u.push(p,s.allowReserved===!0?i[p]:encodeURIComponent(i[p]));const m=u.join(",");switch(s.style){case"form":return`${l}=${m}`;case"label":return`.${m}`;case"matrix":return`;${l}=${m}`;default:return m}}for(const m in i){const p=s.style==="deepObject"?`${l}[${m}]`:m;u.push(Xu(p,i[m],s))}const d=u.join(o);return s.style==="label"||s.style==="matrix"?`${o}${d}`:d}function _g(l,i,s){if(!Array.isArray(i))return"";if(s.explode===!1){const d={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[s.style]||",",m=(s.allowReserved===!0?i:i.map(p=>encodeURIComponent(p))).join(d);switch(s.style){case"simple":return m;case"label":return`.${m}`;case"matrix":return`;${l}=${m}`;default:return`${l}=${m}`}}const u={simple:",",label:".",matrix:";"}[s.style]||"&",o=[];for(const d of i)s.style==="simple"||s.style==="label"?o.push(s.allowReserved===!0?d:encodeURIComponent(d)):o.push(Xu(l,d,s));return s.style==="label"||s.style==="matrix"?`${u}${o.join(u)}`:o.join(u)}function ev(l){return function(s){const u=[];if(s&&typeof s=="object")for(const o in s){const d=s[o];if(d!=null){if(Array.isArray(d)){if(d.length===0)continue;u.push(_g(o,d,{style:"form",explode:!0,...l==null?void 0:l.array,allowReserved:(l==null?void 0:l.allowReserved)||!1}));continue}if(typeof d=="object"){u.push(Eg(o,d,{style:"deepObject",explode:!0,...l==null?void 0:l.object,allowReserved:(l==null?void 0:l.allowReserved)||!1}));continue}u.push(Xu(o,d,l))}}return u.join("&")}}function H2(l,i){let s=l;for(const u of l.match(z2)??[]){let o=u.substring(1,u.length-1),d=!1,m="simple";if(o.endsWith("*")&&(d=!0,o=o.substring(0,o.length-1)),o.startsWith(".")?(m="label",o=o.substring(1)):o.startsWith(";")&&(m="matrix",o=o.substring(1)),!i||i[o]===void 0||i[o]===null)continue;const p=i[o];if(Array.isArray(p)){s=s.replace(u,_g(o,p,{style:m,explode:d}));continue}if(typeof p=="object"){s=s.replace(u,Eg(o,p,{style:m,explode:d}));continue}if(m==="matrix"){s=s.replace(u,`;${Xu(o,p)}`);continue}s=s.replace(u,m==="label"?`.${encodeURIComponent(p)}`:encodeURIComponent(p))}return s}function q2(l,i){return l instanceof FormData?l:i&&(i.get instanceof Function?i.get("Content-Type")??i.get("content-type"):i["Content-Type"]??i["content-type"])==="application/x-www-form-urlencoded"?new URLSearchParams(l).toString():JSON.stringify(l)}function B2(l,i){var o;let s=`${i.baseUrl}${l}`;(o=i.params)!=null&&o.path&&(s=i.pathSerializer(s,i.params.path));let u=i.querySerializer(i.params.query??{});return u.startsWith("?")&&(u=u.substring(1)),u&&(s+=`?${u}`),s}function tv(...l){const i=new Headers;for(const s of l){if(!s||typeof s!="object")continue;const u=s instanceof Headers?s.entries():Object.entries(s);for(const[o,d]of u)if(d===null)i.delete(o);else if(Array.isArray(d))for(const m of d)i.append(o,m);else d!==void 0&&i.set(o,d)}return i}function av(l){return l.endsWith("/")?l.substring(0,l.length-1):l}function Q2(l){const i=async({queryKey:[u,o,d],signal:m})=>{const p=u.toUpperCase(),x=l[p],{data:v,error:b,response:g}=await x(o,{signal:m,...d});if(b)throw b;return g.status===204||g.headers.get("Content-Length")==="0"?v??null:v},s=(u,o,...[d,m])=>({queryKey:d===void 0?[u,o]:[u,o,d],queryFn:i,...m});return{queryOptions:s,useQuery:(u,o,...[d,m,p])=>R2(s(u,o,d,m),p),useSuspenseQuery:(u,o,...[d,m,p])=>C2(s(u,o,d,m),p),useInfiniteQuery:(u,o,d,m,p)=>{const{pageParamName:x="cursor",...v}=m,{queryKey:b}=s(u,o,d);return M2({queryKey:b,queryFn:async({queryKey:[g,N,T],pageParam:B=0,signal:U})=>{var ee;const H=g.toUpperCase(),G=l[H],Q={...T,signal:U,params:{...(T==null?void 0:T.params)||{},query:{...(ee=T==null?void 0:T.params)==null?void 0:ee.query,[x]:B}}},{data:K,error:Z}=await G(N,Q);if(Z)throw Z;return K},...v},p)},useMutation:(u,o,d,m)=>O2({mutationKey:[u,o],mutationFn:async p=>{const x=u.toUpperCase(),v=l[x],{data:b,error:g}=await v(o,p);if(g)throw g;return b},...d},m)}}const V2=(l,i=!0)=>(l=i?l.trim():l,l.length>0?l:null),Ng=(l,i=!0,s)=>Y2(V2(l,i),"Expected non-empty string"+(s?`: ${s}`:"")),Y2=(l,i)=>{if(l==null)throw new Error(`Assertion failed: ${i??"value is null or undefined"}`);return l},G2=()=>"/v1",jg=G2(),X2=l=>{if(typeof window>"u")return"ws://localhost";const i=new URL(l,window.location.origin),s=i.protocol==="https:"?"wss:":"ws:",u=i.pathname.replace(/\/+$/,"");return`${s}//${i.host}${u}`},K2=()=>X2(jg),Z2=K2(),wg=L2({baseUrl:jg});let Vf;wg.use({async onRequest({request:l}){const i=Vf;return i&&l.headers.set("Authorization",`Bearer ${Ng(i,!0,"panic! token is required")}`),!l.headers.has("Content-Type")&&!(l.body instanceof FormData)&&l.headers.set("Content-Type","application/json"),l}});const Wn=Q2(wg),Ma=l=>{l===void 0&&Vf!==void 0||(Vf=l)},Tg=A.createContext(void 0),qs="/auth",F2=240*1e3,J2=5e3;function $2({children:l}){const[i,s]=A.useState({status:"loading"}),u=A.useRef(null),o=A.useCallback(async()=>{try{const b=await fetch(`${qs}/session`,{credentials:"include"});if(!b.ok){s({status:"unauthenticated"}),Ma(null);return}const g=await b.json();g.status==="authenticated"?(s({status:"authenticated",accessToken:g.accessToken,accessTokenExpires:g.accessTokenExpires,user:g.user}),Ma(g.accessToken)):g.status==="refresh_needed"?await d():(s({status:"unauthenticated"}),Ma(null))}catch(b){console.error("Session check failed:",b),s({status:"unauthenticated"}),Ma(null)}},[]),d=A.useCallback(async()=>{try{const b=await fetch(`${qs}/refresh`,{method:"POST",credentials:"include"});if(!b.ok){s({status:"unauthenticated"}),Ma(null);return}const g=await b.json();s({status:"authenticated",accessToken:g.accessToken,accessTokenExpires:g.accessTokenExpires,user:g.user}),Ma(g.accessToken)}catch(b){console.error("Token refresh failed:",b),s({status:"unauthenticated"}),Ma(null)}},[]);A.useEffect(()=>{o()},[o]),A.useEffect(()=>{if(i.status!=="authenticated"){u.current&&(clearInterval(u.current),u.current=null);return}const b=window.setInterval(()=>{if(i.status!=="authenticated")return;i.accessTokenExpires-Date.now()clearInterval(b)},[i.status,i.status==="authenticated"?i.accessTokenExpires:null,d]);const m=A.useCallback(async(b,g)=>{if(b==="sso")return window.location.href=`${qs}/login`,{ok:!0};if(!g)return{ok:!1,error:"Email and password are required"};try{const N=await fetch(`${qs}/login`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify(g)});if(!N.ok)return{ok:!1,error:(await N.json().catch(()=>({}))).error||"Invalid credentials"};const T=await N.json();return s({status:"authenticated",accessToken:T.accessToken,accessTokenExpires:T.accessTokenExpires,user:T.user}),Ma(T.accessToken),{ok:!0}}catch(N){return console.error("Login error:",N),{ok:!1,error:"An unexpected error occurred"}}},[]),p=A.useCallback(async()=>{try{await fetch(`${qs}/logout`,{method:"POST",credentials:"include"})}catch(b){console.error("Logout error:",b)}s({status:"unauthenticated"}),Ma(null)},[]),x=A.useCallback(async()=>{await o()},[o]);Ma(i.status==="authenticated"?i.accessToken:i.status==="loading"?void 0:null);const v={...i,signIn:m,signOut:p,update:x};return f.jsx(Tg.Provider,{value:v,children:l})}function In(){const l=A.useContext(Tg);if(l===void 0)throw new Error("useAuth must be used within an AuthProvider");return l}const Ag=A.createContext(void 0);function W2({children:l}){const[i,s]=A.useState({error:null,message:null}),u=A.useCallback((d,m)=>{console.error(m||"An error occurred:",d),s({error:d,message:m||d.message}),setTimeout(()=>{s(p=>p.error===d?{error:null,message:null}:p)},8e3)},[]),o=A.useCallback(()=>{s({error:null,message:null})},[]);return Le.createElement(Ag.Provider,{value:{errorState:i,setError:u,clearError:o}},l,i.message?Le.createElement("div",{className:"fixed bottom-6 right-6 z-[9999] max-w-md bg-red-50 border border-red-200 text-red-800 px-5 py-4 rounded-md shadow-lg animate-in slide-in-from-bottom-4 flex items-start gap-3",role:"alert"},Le.createElement("div",{className:"flex-1"},Le.createElement("p",{className:"text-sm font-semibold"},"Error"),Le.createElement("p",{className:"text-sm mt-0.5 text-red-700"},i.message)),Le.createElement("button",{onClick:o,className:"text-red-400 hover:text-red-600 text-lg leading-none mt-0.5","aria-label":"Dismiss error"},"×")):null)}function md(){const l=A.useContext(Ag);if(l===void 0)throw new Error("useError must be used within an ErrorProvider");return l}const I2=A.createContext(void 0),nv="recording_consent_meetings",P2="T",Rg="F",eE="|",tE=(l,i)=>`${l}|${i?P2:Rg}`,aE=l=>{const i=l.lastIndexOf(eE);if(i===-1)return{meetingId:l,accepted:!0};const s=l.slice(i+1);return{meetingId:l.slice(0,i),accepted:s!==Rg}},nE=({children:l})=>{const[i,s]=A.useState({ready:!1}),u=x=>{try{if(typeof window<"u"&&window.localStorage){const v=Array.from(x.entries()).slice(-5).map(([b,g])=>tE(b,g));localStorage.setItem(nv,JSON.stringify(v))}}catch(v){console.error("Failed to save consent data to localStorage:",v)}},o=(x,v)=>{if(!i.ready){console.warn("Attempted to touch consent before context is ready");return}const b=new Map(i.consentForMeetings);b.set(x,v),u(b),s({ready:!0,consentForMeetings:b})},d=x=>i.ready?i.consentForMeetings.has(x):!1,m=x=>i.ready?i.consentForMeetings.get(x)===!0:!1;A.useEffect(()=>{try{if(typeof window>"u"||!window.localStorage){s({ready:!0,consentForMeetings:new Map});return}const x=localStorage.getItem(nv);if(!x){s({ready:!0,consentForMeetings:new Map});return}const v=JSON.parse(x);if(!Array.isArray(v)){console.warn("Invalid consent data format in localStorage, resetting"),s({ready:!0,consentForMeetings:new Map});return}const b=new Map;for(const g of v){const N=aE(g);N&&b.set(N.meetingId,N.accepted)}s({ready:!0,consentForMeetings:b})}catch(x){console.error("Failed to parse consent data from localStorage:",x),s({ready:!0,consentForMeetings:new Map})}},[]);const p={state:i,touch:o,hasAnswered:d,hasAccepted:m};return f.jsx(I2.Provider,{value:p,children:l})},lE=()=>{const l=In();return{isAuthenticated:l.status==="authenticated",isLoading:l.status==="loading"}};function iE(l=1){const{isAuthenticated:i}=lE();return Wn.useQuery("get","/v1/rooms",{params:{query:{page:l}}},{enabled:i})}function sE(){const{setError:l}=md(),i=Vi();return Wn.useMutation("post","/v1/rooms",{onSuccess:()=>i.invalidateQueries({queryKey:Wn.queryOptions("get","/v1/rooms").queryKey}),onError:s=>{l(s,"There was an error creating the room")}})}function rE(){const{setError:l}=md(),i=Vi();return Wn.useMutation("delete","/v1/rooms/{room_id}",{onSuccess:()=>i.invalidateQueries({queryKey:Wn.queryOptions("get","/v1/rooms").queryKey}),onError:s=>{l(s,"There was an error deleting the room")}})}const yd="/v1/transcripts/search",uE=l=>l.invalidateQueries({queryKey:["get",yd]});function cE(l="",i={}){return Wn.useQuery("get",yd,{params:{query:{q:l,limit:i.limit,offset:i.offset,room_id:i.room_id,source_kind:i.source_kind}}},{enabled:!0})}const oE=(l,i)=>l.invalidateQueries({queryKey:Wn.queryOptions("get","/v1/transcripts/{transcript_id}",{params:{path:{transcript_id:i}}}).queryKey});function fE(){const{setError:l}=md(),i=Vi();return Wn.useMutation("delete","/v1/transcripts/{transcript_id}",{onSuccess:()=>i.invalidateQueries({queryKey:["get",yd]}),onError:s=>{l(s,"There was an error deleting the transcript")}})}class dE{constructor(){this.socket=null,this.listeners=new Set,this.closeTimeoutId=null,this.isConnecting=!1}ensureConnection(i,s){if(typeof window>"u"||(this.closeTimeoutId!==null&&(clearTimeout(this.closeTimeoutId),this.closeTimeoutId=null),this.isConnecting)||this.socket&&(this.socket.readyState===WebSocket.OPEN||this.socket.readyState===WebSocket.CONNECTING))return;this.isConnecting=!0;const u=new WebSocket(i,s||[]);this.socket=u,u.onmessage=o=>{this.listeners.forEach(d=>{try{d(o)}catch(m){console.error("UserEvents listener error",m)}})},u.onopen=()=>{this.socket===u&&(this.isConnecting=!1)},u.onclose=()=>{this.socket===u&&(this.socket=null,this.isConnecting=!1)},u.onerror=()=>{this.socket===u&&(this.isConnecting=!1)}}subscribe(i){return this.listeners.add(i),this.closeTimeoutId!==null&&(clearTimeout(this.closeTimeoutId),this.closeTimeoutId=null),()=>{this.listeners.delete(i),this.listeners.size===0&&(this.closeTimeoutId=window.setTimeout(()=>{if(this.socket)try{this.socket.close()}catch(s){console.warn("Error closing user events socket",s)}this.socket=null,this.closeTimeoutId=null},1e3))}}}const lv=new dE;function hE({children:l}){const i=In(),s=Vi(),u=A.useRef(null),o=A.useRef(null);return A.useEffect(()=>{if(i.status==="unauthenticated"){if(o.current){try{o.current()}catch(p){console.warn("Error detaching UserEvents listener",p)}o.current=null}u.current=null;return}if(i.status!=="authenticated")return;!u.current&&i.accessToken&&(u.current=i.accessToken);const d=u.current,m=`${Z2}/v1/events`;if(lv.ensureConnection(m,d?["bearer",d]:void 0),!o.current){const p=v=>{try{const b=JSON.parse(v.data);switch(b.event){case"TRANSCRIPT_CREATED":case"TRANSCRIPT_DELETED":case"TRANSCRIPT_STATUS":case"TRANSCRIPT_FINAL_TITLE":case"TRANSCRIPT_DURATION":uE(s).then(()=>{}),oE(s,Ng(b.data.id)).then(()=>{});break;default:console.warn(`Unknown user event: ${b.event}`)}}catch{console.warn("Invalid user event message",v.data)}},x=lv.subscribe(p);o.current=x}},[i.status,s]),A.useEffect(()=>()=>{if(o.current){try{o.current()}catch(d){console.warn("Error detaching UserEvents listener on unmount",d)}o.current=null}u.current=null},[]),f.jsx(f.Fragment,{children:l})}/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const mE=l=>l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),yE=l=>l.replace(/^([A-Z])|[\s-_]+(\w)/g,(i,s,u)=>u?u.toUpperCase():s.toLowerCase()),iv=l=>{const i=yE(l);return i.charAt(0).toUpperCase()+i.slice(1)},Cg=(...l)=>l.filter((i,s,u)=>!!i&&i.trim()!==""&&u.indexOf(i)===s).join(" ").trim(),pE=l=>{for(const i in l)if(i.startsWith("aria-")||i==="role"||i==="title")return!0};/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */var vE={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"};/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const gE=A.forwardRef(({color:l="currentColor",size:i=24,strokeWidth:s=2,absoluteStrokeWidth:u,className:o="",children:d,iconNode:m,...p},x)=>A.createElement("svg",{ref:x,...vE,width:i,height:i,stroke:l,strokeWidth:u?Number(s)*24/Number(i):s,className:Cg("lucide",o),...!d&&!pE(p)&&{"aria-hidden":"true"},...p},[...m.map(([v,b])=>A.createElement(v,b)),...Array.isArray(d)?d:[d]]));/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const Te=(l,i)=>{const s=A.forwardRef(({className:u,...o},d)=>A.createElement(gE,{ref:d,iconNode:i,className:Cg(`lucide-${mE(iv(l))}`,`lucide-${l}`,u),...o}));return s.displayName=iv(l),s};/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const xE=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Og=Te("arrow-right",xE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const bE=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],SE=Te("bell",bE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const EE=[["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"}]],_E=Te("calendar",EE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const NE=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],jE=Te("chevron-down",NE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const wE=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],TE=Te("chevron-left",wE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const AE=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],RE=Te("chevron-right",AE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const CE=[["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"}]],OE=Te("circle-alert",CE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const ME=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],DE=Te("circle-check",ME);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const zE=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],UE=Te("circle-dot",zE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const kE=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],sv=Te("circle-plus",kE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const LE=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],HE=Te("clock",LE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const qE=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],BE=Te("code-xml",qE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const QE=[["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"}]],VE=Te("compass",QE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const YE=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],Mg=Te("download",YE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const GE=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],pd=Te("ellipsis-vertical",GE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const XE=[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]],KE=Te("fingerprint",XE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const ZE=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],Uu=Te("folder-open",ZE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const FE=[["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"}]],JE=Te("globe",FE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const $E=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}]],WE=Te("hexagon",$E);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const IE=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],PE=Te("info",IE);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const e_=[["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"}]],t_=Te("key-round",e_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const a_=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],Dg=Te("link",a_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const n_=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],l_=Te("log-in",n_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const i_=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],s_=Te("mail",i_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const r_=[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]],u_=Te("maximize",r_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const c_=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],o_=Te("mic",c_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const f_=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],rv=Te("pause",f_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const d_=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],h_=Te("pen-line",d_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const m_=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],uv=Te("play",m_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const y_=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],p_=Te("plus",y_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const v_=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],zg=Te("search",v_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const g_=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],x_=Te("settings",g_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const b_=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],S_=Te("share-2",b_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const E_=[["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",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],__=Te("shield-check",E_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const N_=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Ug=Te("sparkles",N_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const j_=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],w_=Te("upload",j_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const T_=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],A_=Te("users",T_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const R_=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],C_=Te("volume-2",R_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const O_=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],M_=Te("wrench",O_);/**
+ * @license lucide-react v0.546.0 - ISC
+ *
+ * This source code is licensed under the ISC license.
+ * See the LICENSE file in the root directory of this source tree.
+ */const D_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],z_=Te("x",D_),kg=({links:l})=>{const i=qa(),s=In(),u=s.status==="authenticated"?s.user:null;return f.jsxs("header",{className:"z-50 bg-surface/85 backdrop-blur-[12px] px-8 py-4 flex items-center justify-between border-b border-outline-variant/10 shrink-0",children:[f.jsxs("div",{className:"flex items-center gap-8",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("img",{src:"https://reflector.monadical.com/reach.svg",alt:"Reflector Logo",className:"w-6 h-6"}),f.jsx("span",{className:"font-serif font-bold text-xl text-on-surface",children:"Reflector"})]}),f.jsx("nav",{className:"hidden md:flex items-center gap-6",children:l.map((o,d)=>{const m=i.pathname===o.href||o.href!=="/"&&i.pathname.startsWith(`${o.href}/`);return f.jsxs(Le.Fragment,{children:[f.jsx(sd,{to:o.href,className:`font-sans text-sm transition-colors ${m?"text-primary font-semibold":"text-on-surface-variant hover:text-on-surface"}`,children:o.label}),d{N.preventDefault(),p(null),v(!0);const T=await l("credentials",{email:s,password:o});v(!1),T.ok?i("/welcome"):p(T.error||"Invalid email or password")},g=()=>{l("sso")};return f.jsxs("div",{className:"min-h-screen bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:[f.jsxs("header",{className:"fixed top-0 w-full z-50 flex justify-between items-center px-6 py-4 bg-surface/85 backdrop-blur-[12px]",children:[f.jsxs("div",{className:"flex items-center gap-3",children:[f.jsx("img",{src:"https://reflector.monadical.com/reach.svg",alt:"Reflector Logo",className:"w-6 h-6"}),f.jsx("span",{className:"text-2xl font-bold text-on-surface tracking-tight font-serif",children:"Reflector"})]}),f.jsxs("div",{className:"flex items-center gap-8",children:[f.jsxs("nav",{className:"hidden md:flex items-center gap-6",children:[f.jsx("a",{href:"#",className:"text-on-surface-variant font-medium hover:text-primary transition-colors duration-300 text-sm",children:"Collections"}),f.jsx("span",{className:"text-outline-variant/60",children:"·"}),f.jsx("a",{href:"#",className:"text-on-surface-variant font-medium hover:text-primary transition-colors duration-300 text-sm",children:"Exhibitions"}),f.jsx("span",{className:"text-outline-variant/60",children:"·"}),f.jsx("a",{href:"#",className:"text-on-surface-variant font-medium hover:text-primary transition-colors duration-300 text-sm",children:"Journal"})]}),f.jsx("button",{onClick:g,className:"bg-gradient-primary text-white px-[18px] py-[6px] rounded-sm text-sm font-semibold hover:brightness-110 active:brightness-95 transition-all",children:"Log In"})]})]}),f.jsx("main",{className:"flex-1 flex items-center justify-center px-6 py-24 md:py-0 mt-16 md:mt-0",children:f.jsxs("div",{className:"w-full max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-12 gap-12 lg:gap-24 items-center",children:[f.jsxs("div",{className:"md:col-span-7 space-y-8",children:[f.jsxs("h1",{className:"text-[2.5rem] text-on-surface leading-[1.1] tracking-tight",children:[f.jsx("span",{className:"font-serif",children:"Welcome to "}),f.jsx("span",{className:"font-serif italic",children:"Reflector"})]}),f.jsx("p",{className:"text-[0.9375rem] text-on-surface-variant max-w-[420px] leading-[1.6]",children:"Access a curated digital environment designed for intellectual authority and archival depth. Manage your collections with the precision of a modern curator."}),f.jsx("div",{children:f.jsxs("button",{className:"flex items-center gap-2 text-primary font-semibold text-sm hover:underline underline-offset-4 transition-all group bg-transparent border-none p-0",children:["Learn more",f.jsx(Og,{className:"w-4 h-4 group-hover:translate-x-1 transition-transform"})]})}),f.jsxs("div",{className:"mt-8 pt-8 space-y-4 max-w-[420px]",children:[f.jsx("p",{className:"text-[0.875rem] text-on-surface-variant font-serif italic leading-relaxed",children:'"The Digital Curator prioritizes warmth, intentionality, and authority in every interaction."'}),f.jsx("a",{href:"#",className:"inline-block text-[0.6875rem] uppercase tracking-widest font-semibold text-on-surface-variant hover:text-primary transition-colors",children:"Privacy policy"})]})]}),f.jsxs("div",{className:"md:col-span-5 relative flex justify-center md:justify-end",children:[f.jsxs("div",{className:"w-full max-w-md bg-surface-highest rounded-md p-8 shadow-card flex flex-col items-center text-center relative z-10",children:[f.jsx("div",{className:"text-primary mb-6",children:f.jsx(KE,{className:"w-6 h-6",strokeWidth:1.5})}),f.jsx("h2",{className:"font-serif text-[1.25rem] font-semibold text-on-surface mb-3",children:"Secure Access"}),f.jsx("p",{className:"text-sm text-on-surface-variant max-w-[240px] mx-auto mb-6 leading-relaxed",children:"Enter the archive to view your curated workspace and historical logs."}),m&&f.jsx("div",{className:"w-full mb-4 px-3 py-2 bg-red-50 border border-red-200 rounded-sm text-sm text-red-700",children:m}),f.jsxs("form",{onSubmit:b,className:"w-full space-y-3 mb-4",children:[f.jsx("input",{type:"email",placeholder:"Email",value:s,onChange:N=>u(N.target.value),required:!0,className:"w-full px-3 py-2.5 bg-surface-mid border border-outline-variant/30 rounded-sm text-sm text-on-surface placeholder:text-muted focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-colors"}),f.jsx("input",{type:"password",placeholder:"Password",value:o,onChange:N=>d(N.target.value),required:!0,className:"w-full px-3 py-2.5 bg-surface-mid border border-outline-variant/30 rounded-sm text-sm text-on-surface placeholder:text-muted focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-colors"}),f.jsx("button",{type:"submit",disabled:x,className:"w-full py-3 bg-gradient-primary text-white font-semibold rounded-sm hover:brightness-110 active:brightness-95 transition-all text-base disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",children:x?f.jsx("span",{className:"inline-block w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin"}):f.jsxs(f.Fragment,{children:[f.jsx(l_,{className:"w-4 h-4"}),"Log In"]})})]}),f.jsxs("div",{className:"w-full flex items-center gap-3 mb-4",children:[f.jsx("div",{className:"flex-1 h-px bg-outline-variant/20"}),f.jsx("span",{className:"text-[0.6875rem] text-muted uppercase tracking-wider font-medium",children:"or"}),f.jsx("div",{className:"flex-1 h-px bg-outline-variant/20"})]}),f.jsx("button",{onClick:g,className:"w-full py-2.5 border border-outline-variant/30 text-on-surface-variant font-medium rounded-sm hover:bg-surface-mid hover:border-primary/30 transition-all text-sm",children:"Continue with SSO"}),f.jsx("p",{className:"mt-6 text-[0.6875rem] text-muted uppercase tracking-widest font-medium",children:"Authorized Personnel Only"})]}),f.jsxs("div",{className:"absolute -bottom-4 -left-4 md:-left-8 bg-surface-mid px-2.5 py-1 rounded-sm shadow-sm flex items-center gap-1.5 z-20 border border-outline-variant/20",children:[f.jsx(Ug,{className:"w-3 h-3 text-on-surface-variant"}),f.jsx("span",{className:"text-[0.6875rem] font-medium text-on-surface-variant uppercase tracking-wider",children:"Curated Experience Engine v6.9"})]})]})]})})]})}var ar=l=>l.type==="checkbox",Sl=l=>l instanceof Date,Xt=l=>l==null;const Lg=l=>typeof l=="object";var ut=l=>!Xt(l)&&!Array.isArray(l)&&Lg(l)&&!Sl(l),k_=l=>ut(l)&&l.target?ar(l.target)?l.target.checked:l.target.value:l,Hg=l=>l.substring(0,l.search(/\.\d+(\.|$)/))||l,L_=(l,i)=>l.has(Hg(i)),H_=l=>{const i=l.constructor&&l.constructor.prototype;return ut(i)&&i.hasOwnProperty("isPrototypeOf")},vd=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function pt(l){if(l instanceof Date)return new Date(l);const i=typeof FileList<"u"&&l instanceof FileList;if(vd&&(l instanceof Blob||i))return l;const s=Array.isArray(l);if(!s&&!(ut(l)&&H_(l)))return l;const u=s?[]:Object.create(Object.getPrototypeOf(l));for(const o in l)Object.prototype.hasOwnProperty.call(l,o)&&(u[o]=pt(l[o]));return u}var Ku=l=>/^\w*$/.test(l),at=l=>l===void 0,gd=l=>Array.isArray(l)?l.filter(Boolean):[],xd=l=>gd(l.replace(/["|']|\]/g,"").split(/\.|\[/)),se=(l,i,s)=>{if(!i||!ut(l))return s;const u=(Ku(i)?[i]:xd(i)).reduce((o,d)=>Xt(o)?o:o[d],l);return at(u)||u===l?at(l[i])?s:l[i]:u},Da=l=>typeof l=="boolean",Ea=l=>typeof l=="function",Ie=(l,i,s)=>{let u=-1;const o=Ku(i)?[i]:xd(i),d=o.length,m=d-1;for(;++u{const o={defaultValues:i._defaultValues};for(const d in l)Object.defineProperty(o,d,{get:()=>{const m=d;return i._proxyFormState[m]!==_a.all&&(i._proxyFormState[m]=!u||_a.all),l[m]}});return o};const Q_=typeof window<"u"?Le.useLayoutEffect:Le.useEffect;var Ut=l=>typeof l=="string",V_=(l,i,s,u,o)=>Ut(l)?(u&&i.watch.add(l),se(s,l,o)):Array.isArray(l)?l.map(d=>(u&&i.watch.add(d),se(s,d))):(u&&(i.watchAll=!0),s),Yf=l=>Xt(l)||!Lg(l);function qn(l,i,s=new WeakSet){if(Yf(l)||Yf(i))return Object.is(l,i);if(Sl(l)&&Sl(i))return Object.is(l.getTime(),i.getTime());const u=Object.keys(l),o=Object.keys(i);if(u.length!==o.length)return!1;if(s.has(l)||s.has(i))return!0;s.add(l),s.add(i);for(const d of u){const m=l[d];if(!o.includes(d))return!1;if(d!=="ref"){const p=i[d];if(Sl(m)&&Sl(p)||ut(m)&&ut(p)||Array.isArray(m)&&Array.isArray(p)?!qn(m,p,s):!Object.is(m,p))return!1}}return!0}const Y_=Le.createContext(null);Y_.displayName="HookFormContext";var G_=(l,i,s,u,o)=>i?{...s[l],types:{...s[l]&&s[l].types?s[l].types:{},[u]:o||!0}}:{},Gs=l=>Array.isArray(l)?l:[l],cv=()=>{let l=[];return{get observers(){return l},next:o=>{for(const d of l)d.next&&d.next(o)},subscribe:o=>(l.push(o),{unsubscribe:()=>{l=l.filter(d=>d!==o)}}),unsubscribe:()=>{l=[]}}};function Bg(l,i){const s={};for(const u in l)if(l.hasOwnProperty(u)){const o=l[u],d=i[u];if(o&&ut(o)&&d){const m=Bg(o,d);ut(m)&&(s[u]=m)}else l[u]&&(s[u]=d)}return s}var Dt=l=>ut(l)&&!Object.keys(l).length,bd=l=>l.type==="file",ku=l=>{if(!vd)return!1;const i=l?l.ownerDocument:0;return l instanceof(i&&i.defaultView?i.defaultView.HTMLElement:HTMLElement)},Qg=l=>l.type==="select-multiple",Sd=l=>l.type==="radio",X_=l=>Sd(l)||ar(l),Ef=l=>ku(l)&&l.isConnected;function K_(l,i){const s=i.slice(0,-1).length;let u=0;for(;u{for(const i in l)if(Ea(l[i]))return!0;return!1};function Vg(l){return Array.isArray(l)||ut(l)&&!F_(l)}function Gf(l,i={}){for(const s in l){const u=l[s];Vg(u)?(i[s]=Array.isArray(u)?[]:{},Gf(u,i[s])):at(u)||(i[s]=!0)}return i}function _i(l,i,s){s||(s=Gf(i));for(const u in l){const o=l[u];if(Vg(o))at(i)||Yf(s[u])?s[u]=Gf(o,Array.isArray(o)?[]:{}):_i(o,Xt(i)?{}:i[u],s[u]);else{const d=i[u];s[u]=!qn(o,d)}}return s}const ov={value:!1,isValid:!1},fv={value:!0,isValid:!0};var Yg=l=>{if(Array.isArray(l)){if(l.length>1){const i=l.filter(s=>s&&s.checked&&!s.disabled).map(s=>s.value);return{value:i,isValid:!!i.length}}return l[0].checked&&!l[0].disabled?l[0].attributes&&!at(l[0].attributes.value)?at(l[0].value)||l[0].value===""?fv:{value:l[0].value,isValid:!0}:fv:ov}return ov},Gg=(l,{valueAsNumber:i,valueAsDate:s,setValueAs:u})=>at(l)?l:i?l===""?NaN:l&&+l:s&&Ut(l)?new Date(l):u?u(l):l;const dv={isValid:!1,value:null};var Xg=l=>Array.isArray(l)?l.reduce((i,s)=>s&&s.checked&&!s.disabled?{isValid:!0,value:s.value}:i,dv):dv;function hv(l){const i=l.ref;return bd(i)?i.files:Sd(i)?Xg(l.refs).value:Qg(i)?[...i.selectedOptions].map(({value:s})=>s):ar(i)?Yg(l.refs).value:Gg(at(i.value)?l.ref.value:i.value,l)}var J_=(l,i,s,u)=>{const o={};for(const d of l){const m=se(i,d);m&&Ie(o,d,m._f)}return{criteriaMode:s,names:[...l],fields:o,shouldUseNativeValidation:u}},Lu=l=>l instanceof RegExp,Bs=l=>at(l)?l:Lu(l)?l.source:ut(l)?Lu(l.value)?l.value.source:l.value:l,mv=l=>({isOnSubmit:!l||l===_a.onSubmit,isOnBlur:l===_a.onBlur,isOnChange:l===_a.onChange,isOnAll:l===_a.all,isOnTouch:l===_a.onTouched});const yv="AsyncFunction";var $_=l=>!!l&&!!l.validate&&!!(Ea(l.validate)&&l.validate.constructor.name===yv||ut(l.validate)&&Object.values(l.validate).find(i=>i.constructor.name===yv)),W_=l=>l.mount&&(l.required||l.min||l.max||l.maxLength||l.minLength||l.pattern||l.validate),pv=(l,i,s)=>!s&&(i.watchAll||i.watch.has(l)||[...i.watch].some(u=>l.startsWith(u)&&/^\.\w+/.test(l.slice(u.length))));const Xs=(l,i,s,u)=>{for(const o of s||Object.keys(l)){const d=se(l,o);if(d){const{_f:m,...p}=d;if(m){if(m.refs&&m.refs[0]&&i(m.refs[0],o)&&!u)return!0;if(m.ref&&i(m.ref,m.name)&&!u)return!0;if(Xs(p,i))break}else if(ut(p)&&Xs(p,i))break}}};function vv(l,i,s){const u=se(l,s);if(u||Ku(s))return{error:u,name:s};const o=s.split(".");for(;o.length;){const d=o.join("."),m=se(i,d),p=se(l,d);if(m&&!Array.isArray(m)&&s!==d)return{name:s};if(p&&p.type)return{name:d,error:p};if(p&&p.root&&p.root.type)return{name:`${d}.root`,error:p.root};o.pop()}return{name:s}}var I_=(l,i,s,u)=>{s(l);const{name:o,...d}=l;return Dt(d)||Object.keys(d).length>=Object.keys(i).length||Object.keys(d).find(m=>i[m]===(!u||_a.all))},P_=(l,i,s)=>!l||!i||l===i||Gs(l).some(u=>u&&(s?u===i:u.startsWith(i)||i.startsWith(u))),eN=(l,i,s,u,o)=>o.isOnAll?!1:!s&&o.isOnTouch?!(i||l):(s?u.isOnBlur:o.isOnBlur)?!l:(s?u.isOnChange:o.isOnChange)?l:!0,tN=(l,i)=>!gd(se(l,i)).length&&mt(l,i),aN=(l,i,s)=>{const u=Gs(se(l,s));return Ie(u,qg,i[s]),Ie(l,s,u),l};function gv(l,i,s="validate"){if(Ut(l)||Array.isArray(l)&&l.every(Ut)||Da(l)&&!l)return{type:s,message:Ut(l)?l:"",ref:i}}var Ei=l=>ut(l)&&!Lu(l)?l:{value:l,message:""},xv=async(l,i,s,u,o,d)=>{const{ref:m,refs:p,required:x,maxLength:v,minLength:b,min:g,max:N,pattern:T,validate:B,name:U,valueAsNumber:H,mount:G}=l._f,Q=se(s,U);if(!G||i.has(U))return{};const K=p?p[0]:m,Z=fe=>{o&&K.reportValidity&&(K.setCustomValidity(Da(fe)?"":fe||""),K.reportValidity())},ee={},ve=Sd(m),re=ar(m),ce=ve||re,xe=(H||bd(m))&&at(m.value)&&at(Q)||ku(m)&&m.value===""||Q===""||Array.isArray(Q)&&!Q.length,Ae=G_.bind(null,U,u,ee),ze=(fe,he,Ne,pe=ba.maxLength,L=ba.minLength)=>{const F=fe?he:Ne;ee[U]={type:fe?pe:L,message:F,ref:m,...Ae(fe?pe:L,F)}};if(d?!Array.isArray(Q)||!Q.length:x&&(!ce&&(xe||Xt(Q))||Da(Q)&&!Q||re&&!Yg(p).isValid||ve&&!Xg(p).isValid)){const{value:fe,message:he}=Ut(x)?{value:!!x,message:x}:Ei(x);if(fe&&(ee[U]={type:ba.required,message:he,ref:K,...Ae(ba.required,he)},!u))return Z(he),ee}if(!xe&&(!Xt(g)||!Xt(N))){let fe,he;const Ne=Ei(N),pe=Ei(g);if(!Xt(Q)&&!isNaN(Q)){const L=m.valueAsNumber||Q&&+Q;Xt(Ne.value)||(fe=L>Ne.value),Xt(pe.value)||(he=Lnew Date(new Date().toDateString()+" "+me),ie=m.type=="time",Se=m.type=="week";Ut(Ne.value)&&Q&&(fe=ie?F(Q)>F(Ne.value):Se?Q>Ne.value:L>new Date(Ne.value)),Ut(pe.value)&&Q&&(he=ie?F(Q)+fe.value,pe=!Xt(he.value)&&Q.length<+he.value;if((Ne||pe)&&(ze(Ne,fe.message,he.message),!u))return Z(ee[U].message),ee}if(T&&!xe&&Ut(Q)){const{value:fe,message:he}=Ei(T);if(Lu(fe)&&!Q.match(fe)&&(ee[U]={type:ba.pattern,message:he,ref:m,...Ae(ba.pattern,he)},!u))return Z(he),ee}if(B){if(Ea(B)){const fe=await B(Q,s),he=gv(fe,K);if(he&&(ee[U]={...he,...Ae(ba.validate,he.message)},!u))return Z(he.message),ee}else if(ut(B)){let fe={};for(const he in B){if(!Dt(fe)&&!u)break;const Ne=gv(await B[he](Q,s),K,he);Ne&&(fe={...Ne,...Ae(he,Ne.message)},Z(Ne.message),u&&(ee[U]=fe))}if(!Dt(fe)&&(ee[U]={ref:K,...fe},!u))return ee}}return Z(!0),ee};const nN={mode:_a.onSubmit,reValidateMode:_a.onChange,shouldFocusError:!0};function lN(l={}){let i={...nN,...l},s={submitCount:0,isDirty:!1,isReady:!1,isLoading:Ea(i.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:i.errors||{},disabled:i.disabled||!1},u={},o=ut(i.defaultValues)||ut(i.values)?pt(i.defaultValues||i.values)||{}:{},d=i.shouldUnregister?{}:pt(o),m={action:!1,mount:!1,watch:!1,keepIsValid:!1},p={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},x,v=0;const b={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},g={...b};let N={...g};const T={array:cv(),state:cv()},B=i.criteriaMode===_a.all,U=_=>C=>{clearTimeout(v),v=setTimeout(_,C)},H=async _=>{if(!m.keepIsValid&&!i.disabled&&(g.isValid||N.isValid||_)){let C;i.resolver?(C=Dt((await ce()).errors),G()):C=await ze({fields:u,onlyCheckValid:!0,eventType:Si.VALID}),C!==s.isValid&&T.state.next({isValid:C})}},G=(_,C)=>{!i.disabled&&(g.isValidating||g.validatingFields||N.isValidating||N.validatingFields)&&((_||Array.from(p.mount)).forEach(D=>{D&&(C?Ie(s.validatingFields,D,C):mt(s.validatingFields,D))}),T.state.next({validatingFields:s.validatingFields,isValidating:!Dt(s.validatingFields)}))},Q=(_,C=[],D,P,J=!0,$=!0)=>{if(P&&D&&!i.disabled){if(m.action=!0,$&&Array.isArray(se(u,_))){const le=D(se(u,_),P.argA,P.argB);J&&Ie(u,_,le)}if($&&Array.isArray(se(s.errors,_))){const le=D(se(s.errors,_),P.argA,P.argB);J&&Ie(s.errors,_,le),tN(s.errors,_)}if((g.touchedFields||N.touchedFields)&&$&&Array.isArray(se(s.touchedFields,_))){const le=D(se(s.touchedFields,_),P.argA,P.argB);J&&Ie(s.touchedFields,_,le)}if(g.dirtyFields||N.dirtyFields){const le=_i(o,d),Ee=Hg(_);Ie(s.dirtyFields,Ee,se(le,Ee))}T.state.next({name:_,isDirty:he(_,C),dirtyFields:s.dirtyFields,errors:s.errors,isValid:s.isValid})}else Ie(d,_,C)},K=(_,C)=>{Ie(s.errors,_,C),T.state.next({errors:s.errors})},Z=_=>{s.errors=_,T.state.next({errors:s.errors,isValid:!1})},ee=(_,C,D,P)=>{const J=se(u,_);if(J){const $=se(d,_,at(D)?se(o,_):D);at($)||P&&P.defaultChecked||C?Ie(d,_,C?$:hv(J._f)):L(_,$),m.mount&&!m.action&&H()}},ve=(_,C,D,P,J)=>{let $=!1,le=!1;const Ee={name:_};if(!i.disabled){if(!D||P){(g.isDirty||N.isDirty)&&(le=s.isDirty,s.isDirty=Ee.isDirty=he(),$=le!==Ee.isDirty);const He=qn(se(o,_),C);le=!!se(s.dirtyFields,_),He?mt(s.dirtyFields,_):Ie(s.dirtyFields,_,!0),Ee.dirtyFields=s.dirtyFields,$=$||(g.dirtyFields||N.dirtyFields)&&le!==!He}if(D){const He=se(s.touchedFields,_);He||(Ie(s.touchedFields,_,D),Ee.touchedFields=s.touchedFields,$=$||(g.touchedFields||N.touchedFields)&&He!==D)}$&&J&&T.state.next(Ee)}return $?Ee:{}},re=(_,C,D,P)=>{const J=se(s.errors,_),$=(g.isValid||N.isValid)&&Da(C)&&s.isValid!==C;if(i.delayError&&D?(x=U(()=>K(_,D)),x(i.delayError)):(clearTimeout(v),x=null,D?Ie(s.errors,_,D):mt(s.errors,_)),(D?!qn(J,D):J)||!Dt(P)||$){const le={...P,...$&&Da(C)?{isValid:C}:{},errors:s.errors,name:_};s={...s,...le},T.state.next(le)}},ce=async _=>(G(_,!0),await i.resolver(d,i.context,J_(_||p.mount,u,i.criteriaMode,i.shouldUseNativeValidation))),xe=async _=>{const{errors:C}=await ce(_);if(G(_),_)for(const D of _){const P=se(C,D);P?Ie(s.errors,D,P):mt(s.errors,D)}else s.errors=C;return C},Ae=async({name:_,eventType:C})=>{if(l.validate){const D=await l.validate({formValues:d,formState:s,name:_,eventType:C});if(ut(D))for(const P in D)D[P]&&ae(`${Sf}.${P}`,{message:Ut(D.message)?D.message:"",type:ba.validate});else Ut(D)||!D?ae(Sf,{message:D||"",type:ba.validate}):W(Sf);return D}return!0},ze=async({fields:_,onlyCheckValid:C,name:D,eventType:P,context:J={valid:!0,runRootValidation:!1}})=>{if(l.validate&&(J.runRootValidation=!0,!await Ae({name:D,eventType:P})&&(J.valid=!1,C)))return J.valid;for(const $ in _){const le=_[$];if(le){const{_f:Ee,...He}=le;if(Ee){const Rt=p.array.has(Ee.name),aa=le._f&&$_(le._f);aa&&g.validatingFields&&G([Ee.name],!0);const ct=await xv(le,p.disabled,d,B,i.shouldUseNativeValidation&&!C,Rt);if(aa&&g.validatingFields&&G([Ee.name]),ct[Ee.name]&&(J.valid=!1,C)||(!C&&(se(ct,Ee.name)?Rt?aN(s.errors,ct,Ee.name):Ie(s.errors,Ee.name,ct[Ee.name]):mt(s.errors,Ee.name)),l.shouldUseNativeValidation&&ct[Ee.name]))break}!Dt(He)&&await ze({context:J,onlyCheckValid:C,fields:He,name:$,eventType:P})}}return J.valid},fe=()=>{for(const _ of p.unMount){const C=se(u,_);C&&(C._f.refs?C._f.refs.every(D=>!Ef(D)):!Ef(C._f.ref))&&Je(_)}p.unMount=new Set},he=(_,C)=>!i.disabled&&(_&&C&&Ie(d,_,C),!qn(Y(),o)),Ne=(_,C,D)=>V_(_,p,{...m.mount?d:at(C)?o:Ut(_)?{[_]:C}:C},D,C),pe=_=>gd(se(m.mount?d:o,_,i.shouldUnregister?se(o,_,[]):[])),L=(_,C,D={})=>{const P=se(u,_);let J=C;if(P){const $=P._f;$&&(!$.disabled&&Ie(d,_,Gg(C,$)),J=ku($.ref)&&Xt(C)?"":C,Qg($.ref)?[...$.ref.options].forEach(le=>le.selected=J.includes(le.value)):$.refs?ar($.ref)?$.refs.forEach(le=>{(!le.defaultChecked||!le.disabled)&&(Array.isArray(J)?le.checked=!!J.find(Ee=>Ee===le.value):le.checked=J===le.value||!!J)}):$.refs.forEach(le=>le.checked=le.value===J):bd($.ref)?$.ref.value="":($.ref.value=J,$.ref.type||T.state.next({name:_,values:pt(d)})))}(D.shouldDirty||D.shouldTouch)&&ve(_,J,D.shouldTouch,D.shouldDirty,!0),D.shouldValidate&&w(_)},F=(_,C,D)=>{for(const P in C){if(!C.hasOwnProperty(P))return;const J=C[P],$=_+"."+P,le=se(u,$);(p.array.has(_)||ut(J)||le&&!le._f)&&!Sl(J)?F($,J,D):L($,J,D)}},ie=(_,C,D={})=>{const P=se(u,_),J=p.array.has(_),$=pt(C);Ie(d,_,$),J?(T.array.next({name:_,values:pt(d)}),(g.isDirty||g.dirtyFields||N.isDirty||N.dirtyFields)&&D.shouldDirty&&T.state.next({name:_,dirtyFields:_i(o,d),isDirty:he(_,$)})):P&&!P._f&&!Xt($)?F(_,$,D):L(_,$,D),pv(_,p)?T.state.next({...s,name:_,values:pt(d)}):T.state.next({name:m.mount?_:void 0,values:pt(d)})},Se=async _=>{m.mount=!0;const C=_.target;let D=C.name,P=!0;const J=se(u,D),$=He=>{P=Number.isNaN(He)||Sl(He)&&isNaN(He.getTime())||qn(He,se(d,D,He))},le=mv(i.mode),Ee=mv(i.reValidateMode);if(J){let He,Rt;const aa=C.type?hv(J._f):k_(_),ct=_.type===Si.BLUR||_.type===Si.FOCUS_OUT,Ct=!W_(J._f)&&!l.validate&&!i.resolver&&!se(s.errors,D)&&!J._f.deps||eN(ct,se(s.touchedFields,D),s.isSubmitted,Ee,le),na=pv(D,p,ct);Ie(d,D,aa),ct?(!C||!C.readOnly)&&(J._f.onBlur&&J._f.onBlur(_),x&&x(0)):J._f.onChange&&J._f.onChange(_);const St=ve(D,aa,ct),Zu=!Dt(St)||na;if(!ct&&T.state.next({name:D,type:_.type,values:pt(d)}),Ct)return(g.isValid||N.isValid)&&(i.mode==="onBlur"?ct&&H():ct||H()),Zu&&T.state.next({name:D,...na?{}:St});if(!i.resolver&&l.validate&&await Ae({name:D,eventType:_.type}),!ct&&na&&T.state.next({...s}),i.resolver){const{errors:ur}=await ce([D]);if(G([D]),$(aa),P){const Fu=vv(s.errors,u,D),el=vv(ur,u,Fu.name||D);He=el.error,D=el.name,Rt=Dt(ur)}}else G([D],!0),He=(await xv(J,p.disabled,d,B,i.shouldUseNativeValidation))[D],G([D]),$(aa),P&&(He?Rt=!1:(g.isValid||N.isValid)&&(Rt=await ze({fields:u,onlyCheckValid:!0,name:D,eventType:_.type})));P&&(J._f.deps&&(!Array.isArray(J._f.deps)||J._f.deps.length>0)&&w(J._f.deps),re(D,Rt,He,St))}},me=(_,C)=>{if(se(s.errors,C)&&_.focus)return _.focus(),1},w=async(_,C={})=>{let D,P;const J=Gs(_);if(i.resolver){const $=await xe(at(_)?_:J);D=Dt($),P=_?!J.some(le=>se($,le)):D}else _?(P=(await Promise.all(J.map(async $=>{const le=se(u,$);return await ze({fields:le&&le._f?{[$]:le}:le,eventType:Si.TRIGGER})}))).every(Boolean),!(!P&&!s.isValid)&&H()):P=D=await ze({fields:u,name:_,eventType:Si.TRIGGER});return T.state.next({...!Ut(_)||(g.isValid||N.isValid)&&D!==s.isValid?{}:{name:_},...i.resolver||!_?{isValid:D}:{},errors:s.errors}),C.shouldFocus&&!P&&Xs(u,me,_?J:p.mount),P},Y=(_,C)=>{let D={...m.mount?d:o};return C&&(D=Bg(C.dirtyFields?s.dirtyFields:s.touchedFields,D)),at(_)?D:Ut(_)?se(D,_):_.map(P=>se(D,P))},I=(_,C)=>({invalid:!!se((C||s).errors,_),isDirty:!!se((C||s).dirtyFields,_),error:se((C||s).errors,_),isValidating:!!se(s.validatingFields,_),isTouched:!!se((C||s).touchedFields,_)}),W=_=>{const C=_?Gs(_):void 0;C==null||C.forEach(D=>mt(s.errors,D)),C?C.forEach(D=>{T.state.next({name:D,errors:s.errors})}):T.state.next({errors:{}})},ae=(_,C,D)=>{const P=(se(u,_,{_f:{}})._f||{}).ref,J=se(s.errors,_)||{},{ref:$,message:le,type:Ee,...He}=J;Ie(s.errors,_,{...He,...C,ref:P}),T.state.next({name:_,errors:s.errors,isValid:!1}),D&&D.shouldFocus&&P&&P.focus&&P.focus()},ge=(_,C)=>Ea(_)?T.state.subscribe({next:D=>"values"in D&&_(Ne(void 0,C),D)}):Ne(_,C,!0),Re=_=>T.state.subscribe({next:C=>{P_(_.name,C.name,_.exact)&&I_(C,_.formState||g,Gi,_.reRenderRoot)&&_.callback({values:{...d},...s,...C,defaultValues:o})}}).unsubscribe,tt=_=>(m.mount=!0,N={...N,..._.formState},Re({..._,formState:{...b,..._.formState}})),Je=(_,C={})=>{for(const D of _?Gs(_):p.mount)p.mount.delete(D),p.array.delete(D),C.keepValue||(mt(u,D),mt(d,D)),!C.keepError&&mt(s.errors,D),!C.keepDirty&&mt(s.dirtyFields,D),!C.keepTouched&&mt(s.touchedFields,D),!C.keepIsValidating&&mt(s.validatingFields,D),!i.shouldUnregister&&!C.keepDefaultValue&&mt(o,D);T.state.next({values:pt(d)}),T.state.next({...s,...C.keepDirty?{isDirty:he()}:{}}),!C.keepIsValid&&H()},dn=({disabled:_,name:C})=>{if(Da(_)&&m.mount||_||p.disabled.has(C)){const J=p.disabled.has(C)!==!!_;_?p.disabled.add(C):p.disabled.delete(C),J&&m.mount&&!m.action&&H()}},hn=(_,C={})=>{let D=se(u,_);const P=Da(C.disabled)||Da(i.disabled);return Ie(u,_,{...D||{},_f:{...D&&D._f?D._f:{ref:{name:_}},name:_,mount:!0,...C}}),p.mount.add(_),D?dn({disabled:Da(C.disabled)?C.disabled:i.disabled,name:_}):ee(_,!0,C.value),{...P?{disabled:C.disabled||i.disabled}:{},...i.progressive?{required:!!C.required,min:Bs(C.min),max:Bs(C.max),minLength:Bs(C.minLength),maxLength:Bs(C.maxLength),pattern:Bs(C.pattern)}:{},name:_,onChange:Se,onBlur:Se,ref:J=>{if(J){hn(_,C),D=se(u,_);const $=at(J.value)&&J.querySelectorAll&&J.querySelectorAll("input,select,textarea")[0]||J,le=X_($),Ee=D._f.refs||[];if(le?Ee.find(He=>He===$):$===D._f.ref)return;Ie(u,_,{_f:{...D._f,...le?{refs:[...Ee.filter(Ef),$,...Array.isArray(se(o,_))?[{}]:[]],ref:{type:$.type,name:_}}:{ref:$}}}),ee(_,!1,void 0,$)}else D=se(u,_,{}),D._f&&(D._f.mount=!1),(i.shouldUnregister||C.shouldUnregister)&&!(L_(p.array,_)&&m.action)&&p.unMount.add(_)}}},Pn=()=>i.shouldFocusError&&Xs(u,me,p.mount),lr=_=>{Da(_)&&(T.state.next({disabled:_}),Xs(u,(C,D)=>{const P=se(u,D);P&&(C.disabled=P._f.disabled||_,Array.isArray(P._f.refs)&&P._f.refs.forEach(J=>{J.disabled=P._f.disabled||_}))},0,!1))},Ta=(_,C)=>async D=>{let P;D&&(D.preventDefault&&D.preventDefault(),D.persist&&D.persist());let J=pt(d);if(T.state.next({isSubmitting:!0}),i.resolver){const{errors:$,values:le}=await ce();G(),s.errors=$,J=pt(le)}else await ze({fields:u,eventType:Si.SUBMIT});if(p.disabled.size)for(const $ of p.disabled)mt(J,$);if(mt(s.errors,qg),Dt(s.errors)){T.state.next({errors:{}});try{await _(J,D)}catch($){P=$}}else C&&await C({...s.errors},D),Pn(),setTimeout(Pn);if(T.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Dt(s.errors)&&!P,submitCount:s.submitCount+1,errors:s.errors}),P)throw P},Yi=(_,C={})=>{se(u,_)&&(at(C.defaultValue)?ie(_,pt(se(o,_))):(ie(_,C.defaultValue),Ie(o,_,pt(C.defaultValue))),C.keepTouched||mt(s.touchedFields,_),C.keepDirty||(mt(s.dirtyFields,_),s.isDirty=C.defaultValue?he(_,pt(se(o,_))):he()),C.keepError||(mt(s.errors,_),g.isValid&&H()),T.state.next({...s}))},zl=(_,C={})=>{const D=_?pt(_):o,P=pt(D),J=Dt(_),$=J?o:P;if(C.keepDefaultValues||(o=D),!C.keepValues){if(C.keepDirtyValues){const le=new Set([...p.mount,...Object.keys(_i(o,d))]);for(const Ee of Array.from(le)){const He=se(s.dirtyFields,Ee),Rt=se(d,Ee),aa=se($,Ee);He&&!at(Rt)?Ie($,Ee,Rt):!He&&!at(aa)&&ie(Ee,aa)}}else{if(vd&&at(_))for(const le of p.mount){const Ee=se(u,le);if(Ee&&Ee._f){const He=Array.isArray(Ee._f.refs)?Ee._f.refs[0]:Ee._f.ref;if(ku(He)){const Rt=He.closest("form");if(Rt){Rt.reset();break}}}}if(C.keepFieldsRef)for(const le of p.mount)ie(le,se($,le));else u={}}d=i.shouldUnregister?C.keepDefaultValues?pt(o):{}:pt($),T.array.next({values:{...$}}),T.state.next({values:{...$}})}p={mount:C.keepDirtyValues?p.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},m.mount=!g.isValid||!!C.keepIsValid||!!C.keepDirtyValues||!i.shouldUnregister&&!Dt($),m.watch=!!i.shouldUnregister,m.keepIsValid=!!C.keepIsValid,m.action=!1,C.keepErrors||(s.errors={}),T.state.next({submitCount:C.keepSubmitCount?s.submitCount:0,isDirty:J?!1:C.keepDirty?s.isDirty:!!(C.keepDefaultValues&&!qn(_,o)),isSubmitted:C.keepIsSubmitted?s.isSubmitted:!1,dirtyFields:J?{}:C.keepDirtyValues?C.keepDefaultValues&&d?_i(o,d):s.dirtyFields:C.keepDefaultValues&&_?_i(o,_):C.keepDirty?s.dirtyFields:{},touchedFields:C.keepTouched?s.touchedFields:{},errors:C.keepErrors?s.errors:{},isSubmitSuccessful:C.keepIsSubmitSuccessful?s.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:o})},ir=(_,C)=>zl(Ea(_)?_(d):_,{...i.resetOptions,...C}),sr=(_,C={})=>{const D=se(u,_),P=D&&D._f;if(P){const J=P.refs?P.refs[0]:P.ref;J.focus&&setTimeout(()=>{J.focus(),C.shouldSelect&&Ea(J.select)&&J.select()})}},Gi=_=>{s={...s,..._}},Ul={control:{register:hn,unregister:Je,getFieldState:I,handleSubmit:Ta,setError:ae,_subscribe:Re,_runSchema:ce,_updateIsValidating:G,_focusError:Pn,_getWatch:Ne,_getDirty:he,_setValid:H,_setFieldArray:Q,_setDisabledField:dn,_setErrors:Z,_getFieldArray:pe,_reset:zl,_resetDefaultValues:()=>Ea(i.defaultValues)&&i.defaultValues().then(_=>{ir(_,i.resetOptions),T.state.next({isLoading:!1})}),_removeUnmounted:fe,_disableForm:lr,_subjects:T,_proxyFormState:g,get _fields(){return u},get _formValues(){return d},get _state(){return m},set _state(_){m=_},get _defaultValues(){return o},get _names(){return p},set _names(_){p=_},get _formState(){return s},get _options(){return i},set _options(_){i={...i,..._}}},subscribe:tt,trigger:w,register:hn,handleSubmit:Ta,watch:ge,setValue:ie,getValues:Y,reset:ir,resetField:Yi,clearErrors:W,unregister:Je,setError:ae,setFocus:sr,getFieldState:I};return{...Ul,formControl:Ul}}function nr(l={}){const i=Le.useRef(void 0),s=Le.useRef(void 0),[u,o]=Le.useState({isDirty:!1,isValidating:!1,isLoading:Ea(l.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:l.errors||{},disabled:l.disabled||!1,isReady:!1,defaultValues:Ea(l.defaultValues)?void 0:l.defaultValues});if(!i.current)if(l.formControl)i.current={...l.formControl,formState:u},l.defaultValues&&!Ea(l.defaultValues)&&l.formControl.reset(l.defaultValues,l.resetOptions);else{const{formControl:m,...p}=lN(l);i.current={...p,formState:u}}const d=i.current.control;return d._options=l,Q_(()=>{const m=d._subscribe({formState:d._proxyFormState,callback:()=>o({...d._formState}),reRenderRoot:!0});return o(p=>({...p,isReady:!0})),d._formState.isReady=!0,m},[d]),Le.useEffect(()=>d._disableForm(l.disabled),[d,l.disabled]),Le.useEffect(()=>{l.mode&&(d._options.mode=l.mode),l.reValidateMode&&(d._options.reValidateMode=l.reValidateMode)},[d,l.mode,l.reValidateMode]),Le.useEffect(()=>{l.errors&&(d._setErrors(l.errors),d._focusError())},[d,l.errors]),Le.useEffect(()=>{l.shouldUnregister&&d._subjects.state.next({values:d._getWatch()})},[d,l.shouldUnregister]),Le.useEffect(()=>{if(d._proxyFormState.isDirty){const m=d._getDirty();m!==u.isDirty&&d._subjects.state.next({isDirty:m})}},[d,u.isDirty]),Le.useEffect(()=>{var m;l.values&&!qn(l.values,s.current)?(d._reset(l.values,{keepFieldsRef:!0,...d._options.resetOptions}),!((m=d._options.resetOptions)===null||m===void 0)&&m.keepIsValid||d._setValid(),s.current=l.values,o(p=>({...p}))):d._resetDefaultValues()},[d,l.values]),Le.useEffect(()=>{d._state.mount||(d._setValid(),d._state.mount=!0),d._state.watch&&(d._state.watch=!1,d._subjects.state.next({...d._formState})),d._removeUnmounted()}),i.current.formState=Le.useMemo(()=>B_(u,d),[d,u]),i.current}const bv=l=>{let i;const s=new Set,u=(v,b)=>{const g=typeof v=="function"?v(i):v;if(!Object.is(g,i)){const N=i;i=b??(typeof g!="object"||g===null)?g:Object.assign({},i,g),s.forEach(T=>T(i,N))}},o=()=>i,p={setState:u,getState:o,getInitialState:()=>x,subscribe:v=>(s.add(v),()=>s.delete(v))},x=i=l(u,o,p);return p},iN=(l=>l?bv(l):bv),sN=l=>l;function rN(l,i=sN){const s=Le.useSyncExternalStore(l.subscribe,Le.useCallback(()=>i(l.getState()),[l,i]),Le.useCallback(()=>i(l.getInitialState()),[l,i]));return Le.useDebugValue(s),s}const Sv=l=>{const i=iN(l),s=u=>rN(i,u);return Object.assign(s,i),s},Kg=(l=>l?Sv(l):Sv),Zg=Kg(l=>({isPlaying:!1,currentTime:0,activeChapterId:null,setPlaying:i=>l({isPlaying:i}),setCurrentTime:i=>l({currentTime:i}),setActiveChapter:i=>l({activeChapterId:i})})),Kt=Le.forwardRef(({variant:l="primary",className:i="",children:s,...u},o)=>{const d="rounded-sm px-5 py-2.5 font-sans font-semibold text-sm transition-all duration-200",m={primary:"bg-gradient-primary text-on-primary border-none hover:brightness-110 active:brightness-95",secondary:"bg-transparent border-[1.5px] border-primary text-primary hover:bg-primary/5",tertiary:"bg-transparent border-none text-primary hover:bg-surface-mid"};return f.jsx("button",{ref:o,className:`${d} ${m[l]} ${i}`,...u,children:s})});Kt.displayName="Button";const Hu=Le.forwardRef(({className:l="",...i},s)=>f.jsx("input",{ref:s,className:`bg-surface-mid border border-outline-variant/40 rounded-sm px-3.5 py-2.5 font-sans text-on-surface placeholder:text-muted focus:outline-none focus:border-primary focus:ring-4 focus:ring-primary/15 transition-all ${l}`,...i}));Hu.displayName="Input";const Ni=Le.forwardRef(({className:l="",children:i,...s},u)=>f.jsx("select",{ref:u,className:`bg-surface-mid border border-outline-variant/40 rounded-sm px-3.5 py-2.5 font-sans text-on-surface focus:outline-none focus:border-primary focus:ring-4 focus:ring-primary/15 transition-all appearance-none ${l}`,...s,children:i}));Ni.displayName="Select";const qu=Le.forwardRef(({className:l="",children:i,...s},u)=>f.jsx("div",{ref:u,className:`bg-surface-highest rounded-md p-6 shadow-card ${l}`,...s,children:i}));qu.displayName="Card";const Ev=({message:l})=>l?f.jsx("span",{className:"font-sans text-[0.8125rem] text-primary mt-1 block",children:l}):null;function uN(){var m,p;const l=Zg(x=>x.setPlaying),i=Dl(),{register:s,handleSubmit:u,formState:{errors:o}}=nr({defaultValues:{workspace:"Personal Archive"}}),d=x=>{console.log("Starting recording session:",x),l(!0),i("/rooms")};return f.jsxs("div",{className:"flex-1 bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:[f.jsx("main",{className:"flex-1 flex flex-col px-6 pt-16 pb-24",children:f.jsxs("div",{className:"w-full max-w-6xl mx-auto space-y-24",children:[f.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-16 lg:gap-24 items-center",children:[f.jsxs("div",{className:"lg:col-span-7 space-y-8",children:[f.jsx("h1",{className:"text-[2.5rem] md:text-[3.5rem] font-serif font-bold text-on-surface leading-[1.1] tracking-tight",children:"Welcome to Reflector"}),f.jsx("p",{className:"text-[0.9375rem] text-on-surface-variant max-w-[440px] leading-[1.6]",children:"Reflector is your digital archive for meaningful conversations. We use advanced acoustic intelligence to curate your meetings, thoughts, and moments into a searchable, editorial-grade memory bank."}),f.jsxs("div",{className:"flex items-center gap-4 pt-4",children:[f.jsx(Kt,{variant:"secondary",onClick:()=>i("/transcriptions"),children:"Archive"}),f.jsx(Kt,{variant:"secondary",onClick:()=>i("/rooms"),children:"Rooms"})]})]}),f.jsx("div",{className:"lg:col-span-5",children:f.jsx(qu,{className:"p-7",children:f.jsxs("form",{onSubmit:u(d),className:"space-y-6",children:[f.jsxs("div",{className:"flex items-center justify-between mb-2",children:[f.jsx("h2",{className:"font-serif font-bold text-xl",children:"Try Reflector"}),f.jsx("button",{type:"button",className:"text-muted hover:text-on-surface transition-colors",children:f.jsx(x_,{className:"w-5 h-5"})})]}),f.jsxs("div",{className:"space-y-4",children:[f.jsxs("div",{className:"space-y-1.5",children:[f.jsx("label",{className:"block font-sans text-[0.75rem] font-semibold text-on-surface-variant uppercase tracking-wider",children:"Meeting Title"}),f.jsx(Hu,{...s("meetingTitle",{required:"Meeting title is required"}),placeholder:"Weekly Sync...",className:"w-full"}),f.jsx(Ev,{message:(m=o.meetingTitle)==null?void 0:m.message})]}),f.jsxs("div",{className:"space-y-1.5",children:[f.jsx("label",{className:"block font-sans text-[0.75rem] font-semibold text-on-surface-variant uppercase tracking-wider",children:"Workspace"}),f.jsxs(Ni,{...s("workspace",{required:"Workspace is required"}),className:"w-full font-medium",children:[f.jsx("option",{value:"Personal Archive",children:"Personal Archive"}),f.jsx("option",{value:"Team Syncs",children:"Team Syncs"}),f.jsx("option",{value:"Client Meetings",children:"Client Meetings"})]}),f.jsx(Ev,{message:(p=o.workspace)==null?void 0:p.message})]})]}),f.jsxs(Kt,{type:"submit",variant:"primary",className:"w-full flex items-center justify-center gap-2 py-3 text-[0.9375rem]",children:[f.jsx(o_,{className:"w-4 h-4"}),"Request Microphone Permission"]}),f.jsxs("div",{className:"relative flex items-center py-2",children:[f.jsx("div",{className:"flex-grow border-t border-surface-high"}),f.jsx("span",{className:"flex-shrink-0 mx-4 text-[0.6875rem] text-muted uppercase tracking-widest font-medium",children:"OR"}),f.jsx("div",{className:"flex-grow border-t border-surface-high"})]}),f.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[f.jsxs(Kt,{type:"button",variant:"secondary",onClick:()=>i("/rooms"),className:"flex flex-col items-center justify-center gap-2 py-4 h-auto",children:[f.jsx(UE,{className:"w-5 h-5"}),f.jsx("span",{className:"text-xs",children:"Record Meeting"})]}),f.jsxs(Kt,{type:"button",variant:"secondary",onClick:()=>i("/transcriptions"),className:"flex flex-col items-center justify-center gap-2 py-4 h-auto border-outline-variant/40 text-on-surface hover:bg-surface-mid",children:[f.jsx(w_,{className:"w-5 h-5"}),f.jsx("span",{className:"text-xs",children:"Upload File"})]})]})]})})})]}),f.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8 lg:gap-12",children:[f.jsxs("div",{className:"relative h-[320px] rounded-md overflow-hidden group",children:[f.jsx("img",{src:"https://images.unsplash.com/photo-1507842217343-583bb7270b66?q=80&w=2400&auto=format&fit=crop",alt:"Library aesthetic",className:"absolute inset-0 w-full h-full object-cover grayscale-[30%] group-hover:scale-105 transition-transform duration-700",referrerPolicy:"no-referrer"}),f.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/40 to-transparent"}),f.jsxs("div",{className:"absolute bottom-0 left-0 p-8 space-y-2",children:[f.jsx("h3",{className:"font-serif italic text-2xl text-white",children:"The Editorial standard for your audio."}),f.jsx("p",{className:"text-white/80 text-sm max-w-[280px] leading-relaxed",children:"Our curation engine doesn't just transcribe; it captures the essence, tone, and authority of your spoken words."})]})]}),f.jsxs("div",{className:"bg-gradient-primary rounded-md p-10 flex flex-col justify-center relative overflow-hidden",children:[f.jsx("div",{className:"absolute -right-12 -top-12 w-64 h-64 bg-white/10 rounded-full blur-3xl pointer-events-none"}),f.jsxs("div",{className:"relative z-10 space-y-6",children:[f.jsx(Ug,{className:"w-10 h-10 text-white"}),f.jsxs("div",{className:"space-y-3",children:[f.jsx("h3",{className:"font-serif font-bold text-3xl text-white",children:"AI Synthesis"}),f.jsx("p",{className:"text-white/85 text-[0.9375rem] leading-relaxed max-w-[320px]",children:"Turn hours of live discussion into a structured archive of actionable insight and creative sparks."})]})]})]})]})]})}),f.jsxs("footer",{className:"bg-surface-low py-8 px-8 flex flex-col md:flex-row justify-between items-center gap-4 border-t border-outline-variant/20",children:[f.jsx("span",{className:"text-[0.6875rem] font-medium text-on-surface-variant uppercase tracking-widest",children:"© 2024 Reflector Archive"}),f.jsxs("div",{className:"flex items-center gap-6",children:[f.jsx("a",{href:"#",className:"text-sm text-on-surface-variant hover:text-primary transition-colors",children:"Learn more"}),f.jsx("a",{href:"#",className:"text-sm text-on-surface-variant hover:text-primary transition-colors",children:"Privacy policy"})]})]})]})}const xl=Le.forwardRef(({className:l="",label:i,...s},u)=>f.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[f.jsx("input",{type:"checkbox",ref:u,className:`appearance-none w-4 h-4 rounded-[4px] border-[1.5px] border-outline-variant/60 checked:bg-primary checked:border-primary transition-colors relative
+ checked:after:content-[''] checked:after:absolute checked:after:left-[4px] checked:after:top-[1px] checked:after:w-[5px] checked:after:h-[9px] checked:after:border-r-2 checked:after:border-b-2 checked:after:border-white checked:after:rotate-45
+ ${l}`,...s}),i&&f.jsx("span",{className:"font-sans text-sm text-on-surface",children:i})]}));xl.displayName="Checkbox";function cN({isOpen:l,onClose:i}){const[s,u]=A.useState("general"),o=sE(),{register:d,handleSubmit:m,watch:p,reset:x,formState:{errors:v}}=nr({defaultValues:{platform:"Zulip",recordingType:"Audio only",isShared:!0,isLocked:!1,skipConsent:!1,enableIcs:!1,emailTranscript:!1,postToZulip:!1,zulipStream:"",zulipTopic:"",webhookUrl:""}}),b=p("postToZulip"),g=p("webhookUrl"),N=()=>{x(),u("general"),i()},T=U=>{o.mutate({body:{name:U.name||"Untitled Room",recording_type:U.recordingType==="Cloud (Auto)"?"cloud":U.recordingType==="Local only"?"local":"none",is_locked:U.isLocked,zulip_auto_post:U.postToZulip,zulip_stream:U.zulipStream||"",zulip_topic:U.zulipTopic||"",skip_consent:U.skipConsent,webhook_url:U.webhookUrl||"",webhook_secret:"",room_mode:"normal",recording_trigger:"auto",is_shared:U.isShared,ics_enabled:U.enableIcs,ics_fetch_interval:300,platform:U.platform==="daily"?"daily":"whereby"}},{onSuccess:()=>N()})};if(!l)return null;const B=[{id:"general",label:"General"},{id:"calendar",label:"Calendar"},{id:"sharing",label:"Sharing"},{id:"webhooks",label:"WebHooks"}];return f.jsx("div",{className:"fixed inset-0 bg-[#1b1c14]/45 z-50 flex items-center justify-center p-4 backdrop-blur-sm",children:f.jsxs("div",{className:"bg-white rounded-[12px] shadow-[0_16px_48px_rgba(27,28,20,0.12)] w-[420px] max-w-full flex flex-col overflow-hidden animate-in fade-in zoom-in-95 duration-200",children:[f.jsxs("div",{className:"pt-6 px-6 pb-0 flex items-center justify-between",children:[f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx(WE,{className:"w-5 h-5 text-primary fill-primary/20"}),f.jsx("h2",{className:"font-serif text-lg font-bold text-on-surface",children:"New Room"})]}),f.jsx("button",{onClick:N,className:"text-muted hover:text-primary hover:bg-primary/10 p-1.5 rounded-full transition-colors",children:f.jsx(z_,{className:"w-5 h-5"})})]}),f.jsxs("div",{className:"px-6 mt-4 flex items-center gap-6 relative",children:[f.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[2px] bg-surface-high"}),B.map(U=>f.jsx("button",{type:"button",onClick:()=>u(U.id),className:`pb-3 font-sans text-sm transition-colors relative z-10 ${s===U.id?"text-primary font-semibold border-b-[2.5px] border-primary":"text-muted font-medium hover:text-on-surface-variant"}`,children:U.label},U.id))]}),f.jsx("div",{className:"p-5 px-6 max-h-[60vh] overflow-y-auto",children:f.jsxs("form",{id:"add-room-form",onSubmit:m(T),className:"space-y-6",children:[s==="general"&&f.jsxs("div",{className:"space-y-5 animate-in fade-in duration-300",children:[f.jsxs("div",{children:[f.jsx("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 block",children:"Room Name"}),f.jsx(Hu,{...d("name",{required:!0}),placeholder:"e.g. Editorial Sync",className:"w-full"})]}),f.jsxs("div",{children:[f.jsx("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 block",children:"Platform"}),f.jsxs(Ni,{...d("platform"),className:"w-full",children:[f.jsx("option",{value:"Zulip",children:"Zulip"}),f.jsx("option",{value:"Slack",children:"Slack"}),f.jsx("option",{value:"Teams",children:"Microsoft Teams"}),f.jsx("option",{value:"Google Meet",children:"Google Meet"})]})]}),f.jsxs("div",{children:[f.jsxs("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 flex items-center gap-1.5",children:["Recording Type",f.jsx(PE,{className:"w-3.5 h-3.5 text-muted hover:text-primary transition-colors cursor-help"})]}),f.jsxs(Ni,{...d("recordingType"),className:"w-full",children:[f.jsx("option",{value:"Audio only",children:"Audio only"}),f.jsx("option",{value:"Cloud (Auto)",children:"Cloud (Auto)"}),f.jsx("option",{value:"Local only",children:"Local only"})]})]}),f.jsxs("div",{className:"space-y-3 pt-2",children:[f.jsx(xl,{...d("isLocked"),label:"Locked room (Require password)"}),f.jsx(xl,{...d("isShared"),label:"Shared room (Public archive)"}),f.jsx(xl,{...d("skipConsent"),label:"Skip consent checkbox"})]}),f.jsxs("div",{className:"bg-surface-mid rounded-lg p-3 flex gap-3 mt-6",children:[f.jsx("div",{className:"w-12 h-12 rounded bg-surface-high shrink-0 overflow-hidden",children:f.jsx("img",{src:"https://images.unsplash.com/photo-1481627834876-b7833e8f5570?auto=format&fit=crop&q=80&w=100&h=100",alt:"Library",className:"w-full h-full object-cover opacity-80 mix-blend-multiply"})}),f.jsxs("div",{className:"flex flex-col gap-1",children:[f.jsx("span",{className:"font-sans text-[0.6875rem] font-bold uppercase tracking-widest text-primary",children:"Curator's Note"}),f.jsx("p",{className:"font-serif italic text-sm text-on-surface-variant leading-snug",children:'"Rooms represent the archival heart of your editorial cycle. Configure with care."'})]})]})]}),s==="calendar"&&f.jsxs("div",{className:"space-y-2 animate-in fade-in duration-300",children:[f.jsx(xl,{...d("enableIcs"),label:"Enable ICS calendar sync"}),f.jsx("p",{className:"font-sans text-sm text-muted ml-6",children:"When enabled, a calendar feed URL will be generated for this room."})]}),s==="sharing"&&f.jsxs("div",{className:"space-y-4 animate-in fade-in duration-300",children:[f.jsx(xl,{...d("emailTranscript"),label:"Email me transcript when processed"}),f.jsxs("div",{className:"space-y-2",children:[f.jsx(xl,{...d("postToZulip"),label:"Automatically post transcription to Zulip"}),f.jsx("div",{className:`overflow-hidden transition-all duration-300 ${b?"max-h-48 opacity-100 mt-4":"max-h-0 opacity-0"}`,children:f.jsxs("div",{className:"pl-6 space-y-4 border-l-2 border-surface-high ml-2 py-1",children:[f.jsxs("div",{children:[f.jsx("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 block",children:"Zulip stream"}),f.jsxs(Ni,{...d("zulipStream"),disabled:!b,className:`w-full ${b?"":"opacity-45 cursor-not-allowed"}`,children:[f.jsx("option",{value:"",children:"Select stream..."}),f.jsx("option",{value:"#editorial-general",children:"#editorial-general"}),f.jsx("option",{value:"#curation-desk",children:"#curation-desk"})]})]}),f.jsxs("div",{children:[f.jsx("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 block",children:"Zulip topic"}),f.jsxs(Ni,{...d("zulipTopic"),disabled:!b,className:`w-full ${b?"":"opacity-45 cursor-not-allowed"}`,children:[f.jsx("option",{value:"",children:"Select topic..."}),f.jsx("option",{value:"Daily Sync",children:"Daily Sync"}),f.jsx("option",{value:"Archive Review",children:"Archive Review"})]})]})]})})]})]}),s==="webhooks"&&f.jsxs("div",{className:"space-y-2 animate-in fade-in duration-300",children:[f.jsx("label",{className:"font-sans text-[0.75rem] font-bold uppercase tracking-widest text-muted mb-1.5 block",children:"Webhook URL"}),f.jsxs("div",{className:"relative",children:[f.jsx("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:f.jsx(Dg,{className:"w-4 h-4 text-muted"})}),f.jsx(Hu,{...d("webhookUrl",{pattern:{value:/^https?:\/\/.+/,message:"Must be a valid URL starting with http:// or https://"}}),placeholder:"https://example.com/webhook",className:`w-full pl-9 pr-9 ${v.webhookUrl?"border-primary focus:ring-primary/15":g&&!v.webhookUrl?"border-[#4caf79] focus:ring-[#4caf79]/15":""}`}),g&&!v.webhookUrl&&f.jsx("div",{className:"absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none",children:f.jsx(DE,{className:"w-4 h-4 text-[#4caf79]"})}),v.webhookUrl&&f.jsx("div",{className:"absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none",children:f.jsx(OE,{className:"w-4 h-4 text-primary"})})]}),v.webhookUrl&&f.jsx("p",{className:"font-sans text-[0.75rem] text-primary mt-1.5",children:v.webhookUrl.message}),f.jsx("p",{className:"font-sans text-sm text-muted mt-2",children:"Optional URL to receive a POST notification when a transcript is ready."})]})]})}),f.jsxs("div",{className:"px-6 py-4 bg-surface-low rounded-b-[12px] flex items-center justify-between border-t border-outline-variant/10",children:[f.jsx(Kt,{variant:"secondary",onClick:N,className:"border-[1.5px] border-[#C8C8BE] text-on-surface-variant hover:bg-surface-high",children:"Cancel"}),f.jsx(Kt,{variant:"primary",type:"submit",form:"add-room-form",children:"Save Room"})]})]})})}function oN(){const{data:l,isLoading:i,isError:s}=iE(),u=rE();In();const[o,d]=A.useState(!1),[m,p]=A.useState("my"),x=Dl(),v=(l==null?void 0:l.items)??[],b=v;return f.jsxs("div",{className:"flex-1 bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:[f.jsxs("main",{className:"flex-1 p-8 md:p-12 max-w-6xl w-full space-y-10",children:[f.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[f.jsx("h1",{className:"font-serif text-[1.75rem] font-bold text-on-surface",children:"Rooms"}),f.jsxs(Kt,{variant:"primary",className:"flex items-center gap-2 self-start sm:self-auto",onClick:()=>d(!0),children:[f.jsx(sv,{className:"w-4 h-4"}),"Add Room"]})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsx("button",{onClick:()=>p("my"),className:`px-4 py-1.5 rounded-sm font-sans text-sm font-semibold transition-colors ${m==="my"?"bg-primary text-white":"bg-surface-mid text-on-surface-variant hover:bg-surface-high"}`,children:"My Rooms"}),f.jsx("button",{onClick:()=>p("shared"),className:`px-4 py-1.5 rounded-sm font-sans text-sm font-semibold transition-colors ${m==="shared"?"bg-primary text-white":"bg-surface-mid text-on-surface-variant hover:bg-surface-high"}`,children:"Shared Rooms"})]}),f.jsx("div",{className:"bg-surface-highest rounded-md shadow-card overflow-hidden",children:i?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center",children:[f.jsx("div",{className:"w-8 h-8 border-2 border-primary/30 border-t-primary rounded-full animate-spin mb-4"}),f.jsx("p",{className:"text-sm text-muted",children:"Loading rooms..."})]}):s?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center text-center",children:[f.jsx(Uu,{className:"w-10 h-10 text-red-300 mb-4",strokeWidth:1.5}),f.jsx("p",{className:"text-sm text-red-600",children:"Failed to load rooms. Please try again."})]}):b.length===0?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center text-center border border-dashed border-outline-variant/40 rounded-md m-4",children:[f.jsx(Uu,{className:"w-10 h-10 text-outline-variant mb-4",strokeWidth:1.5}),f.jsx("p",{className:"font-serif italic text-on-surface-variant mb-4",children:m==="my"?"You haven't created any rooms yet.":"No shared rooms available."}),m==="my"&&f.jsxs(Kt,{variant:"tertiary",className:"flex items-center gap-2",onClick:()=>d(!0),children:[f.jsx(sv,{className:"w-4 h-4"}),"Create your first room"]})]}):f.jsx("div",{className:"overflow-x-auto",children:f.jsxs("table",{className:"w-full text-left border-collapse",children:[f.jsx("thead",{children:f.jsxs("tr",{className:"border-b border-outline-variant/20",children:[f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted",children:"Room Name"}),f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted",children:"Meeting Status"}),f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted",children:"Zulip Stream"}),f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted",children:"Size"}),f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted",children:"Recording"}),f.jsx("th",{className:"px-6 py-4 font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-muted text-right",children:"Actions"})]})}),f.jsx("tbody",{className:"divide-y divide-transparent",children:b.map(g=>f.jsxs("tr",{className:"group hover:bg-surface-low transition-colors",children:[f.jsx("td",{className:"px-6 py-3.5",children:f.jsx("span",{onClick:()=>x("/transcriptions"),className:"font-serif text-base font-semibold text-on-surface group-hover:text-primary transition-colors cursor-pointer",children:g.name})}),f.jsx("td",{className:"px-6 py-3.5",children:f.jsx("span",{className:"font-sans text-[0.8125rem] text-muted",children:"No meetings"})}),f.jsx("td",{className:"px-6 py-3.5",children:f.jsx("span",{className:"font-sans text-[0.8125rem] text-on-surface-variant",children:g.zulip_stream||"—"})}),f.jsx("td",{className:"px-6 py-3.5",children:f.jsx("span",{className:"font-sans text-[0.8125rem] text-on-surface-variant",children:g.room_mode??"—"})}),f.jsx("td",{className:"px-6 py-3.5",children:f.jsx("span",{className:"inline-block bg-surface-mid px-2.5 py-0.5 rounded-sm font-sans text-[0.6875rem] font-medium text-on-surface-variant",children:g.recording_type||"none"})}),f.jsx("td",{className:"px-6 py-3.5 text-right",children:f.jsxs("div",{className:"flex items-center justify-end gap-2 opacity-0 group-hover:opacity-100 transition-opacity",children:[f.jsx("button",{className:"p-1.5 text-muted hover:text-primary hover:bg-primary/5 rounded-sm transition-colors",children:f.jsx(Dg,{className:"w-4 h-4"})}),f.jsx("button",{className:"p-1.5 text-muted hover:text-primary hover:bg-primary/5 rounded-sm transition-colors",onClick:N=>{N.stopPropagation(),confirm("Delete this room?")&&u.mutate({params:{path:{room_id:g.id}}})},children:f.jsx(pd,{className:"w-4 h-4"})})]})})]},g.id))})]})})}),f.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[f.jsxs(qu,{className:"md:col-span-2 flex flex-col justify-center relative overflow-hidden group",children:[f.jsx("div",{className:"absolute -right-8 -top-8 opacity-5 group-hover:opacity-10 transition-opacity duration-500 pointer-events-none",children:f.jsx(M_,{className:"w-48 h-48 text-on-surface"})}),f.jsxs("div",{className:"relative z-10 flex items-start gap-4",children:[f.jsx("div",{className:"mt-1",children:f.jsx(VE,{className:"w-5 h-5 text-primary"})}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("h3",{className:"font-serif text-[1.25rem] font-semibold text-on-surface",children:"Archive Maintenance Notice"}),f.jsx("p",{className:"font-sans text-[0.8125rem] text-on-surface-variant leading-relaxed max-w-md",children:"Scheduled maintenance for the recording servers will begin tonight at 2:00 AM PST. Room availability will not be affected, but cloud recording will be temporarily diverted to local archival buffers."})]})]})]}),f.jsxs(qu,{className:"border-t-4 border-t-primary flex flex-col justify-between",children:[f.jsxs("div",{className:"space-y-4",children:[f.jsx("h3",{className:"font-sans text-[0.75rem] font-semibold uppercase tracking-wider text-on-surface",children:"Room Capacity"}),f.jsxs("div",{className:"space-y-2",children:[f.jsx("div",{className:"h-1.5 w-full bg-surface-mid rounded-sm overflow-hidden",children:f.jsx("div",{className:"h-full bg-gradient-primary rounded-sm",style:{width:`${v.length/10*100}%`}})}),f.jsxs("p",{className:"font-sans text-[0.8125rem] text-on-surface-variant",children:["You are currently using ",f.jsx("strong",{className:"text-on-surface font-semibold",children:v.length})," of your 10 allocated room slots."]})]})]}),f.jsx("div",{className:"mt-6 pt-4 border-t border-outline-variant/20",children:f.jsx("button",{className:"font-sans text-[0.75rem] font-bold text-primary hover:underline uppercase tracking-wider",children:"Upgrade Plan"})})]})]})]}),f.jsx(cN,{isOpen:o,onClose:()=>d(!1)})]})}function fN(){In();const l=Dl(),[i,s]=A.useState(""),[u,o]=A.useState(""),[d,m]=A.useState(0),p=20;fE();const{data:x,isLoading:v,isError:b}=cE(u,{limit:p,offset:d*p}),{register:g,watch:N}=nr({defaultValues:{search:""}}),T=N("search");Le.useEffect(()=>{const Q=setTimeout(()=>{o(T),m(0)},300);return()=>clearTimeout(Q)},[T]);const B=(x==null?void 0:x.results)??[],[U,H]=A.useState("all"),G=[{id:"all",label:"All Time"},{id:"week",label:"This Week"},{id:"shared",label:"Shared With Me"},{id:"drafts",label:"Drafts"}];return f.jsxs("div",{className:"flex-1 bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:[f.jsxs("main",{className:"flex-1 p-8 md:p-12 max-w-5xl mx-auto w-full",children:[f.jsxs("div",{className:"flex flex-col md:flex-row md:items-end justify-between gap-6 mb-8",children:[f.jsxs("div",{className:"space-y-1",children:[f.jsx("h1",{className:"font-serif text-[2rem] font-bold text-on-surface leading-tight",children:"Transcriptions"}),f.jsx("p",{className:"font-sans text-sm text-muted",children:"Review, add and archive your curated recordings."})]}),f.jsxs("div",{className:"flex items-center",children:[f.jsxs("div",{className:"relative group",children:[f.jsx(zg,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted group-focus-within:text-primary transition-colors"}),f.jsx("input",{type:"text",...g("search"),className:"pl-9 pr-4 py-2 w-64 md:w-80 bg-surface-high border-none rounded-l-md focus:outline-none focus:ring-1 focus:ring-primary transition-all text-sm text-on-surface placeholder:text-muted",placeholder:"Search transcriptions..."})]}),f.jsx(Kt,{variant:"primary",className:"rounded-l-none py-2 px-5",children:"Search"})]})]}),f.jsx("div",{className:"flex items-center gap-2 mb-8 overflow-x-auto pb-2 scrollbar-hide",children:G.map(Q=>f.jsx("button",{onClick:()=>H(Q.id),className:`px-3.5 py-1.5 rounded-md font-sans text-xs font-semibold whitespace-nowrap transition-colors ${U===Q.id?"bg-primary text-white":"bg-surface-high text-on-surface-variant hover:bg-surface-highest"}`,children:Q.label},Q.id))}),f.jsx("div",{className:"space-y-1",children:v?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center",children:[f.jsx("div",{className:"w-8 h-8 border-2 border-primary/30 border-t-primary rounded-full animate-spin mb-4"}),f.jsx("p",{className:"text-sm text-muted",children:"Loading transcriptions..."})]}):b?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center text-center",children:[f.jsx(Uu,{className:"w-10 h-10 text-red-300 mb-4",strokeWidth:1.5}),f.jsx("p",{className:"text-sm text-red-600",children:"Failed to load transcriptions."})]}):B.length===0?f.jsxs("div",{className:"p-16 flex flex-col items-center justify-center text-center",children:[f.jsx(Uu,{className:"w-10 h-10 text-outline-variant mb-4",strokeWidth:1.5}),f.jsx("p",{className:"font-serif italic text-on-surface-variant",children:"No transcriptions found."})]}):B.map(Q=>f.jsxs("div",{onClick:()=>l(`/transcriptions/${Q.id}`),className:"group flex items-center p-4 -mx-4 rounded-lg hover:bg-surface-low transition-colors cursor-pointer",children:[f.jsx("div",{className:"flex items-center justify-center w-8 shrink-0",children:f.jsx("div",{className:`w-2.5 h-2.5 rounded-full ${Q.status==="ended"?"bg-primary":Q.status==="error"?"bg-red-400":"bg-muted"}`})}),f.jsxs("div",{className:"flex-1 px-3 min-w-0",children:[f.jsx("h4",{className:"font-serif text-[1.0625rem] font-semibold text-on-surface group-hover:text-primary transition-colors truncate mb-1",children:Q.title||"Untitled Transcript"}),f.jsxs("div",{className:"flex items-center gap-3 text-[0.75rem] text-muted font-sans",children:[f.jsxs("span",{className:"flex items-center gap-1.5",children:[f.jsx(_E,{className:"w-3.5 h-3.5"})," ",Q.created_at?new Date(Q.created_at).toLocaleDateString():"—"]}),f.jsx("span",{className:"text-outline-variant/60",children:"•"}),f.jsxs("span",{className:"flex items-center gap-1.5",children:[f.jsx(A_,{className:"w-3.5 h-3.5"})," ",Q.room_name??"Personal"]}),f.jsx("span",{className:"text-outline-variant/60",children:"•"}),f.jsxs("span",{className:"flex items-center gap-1.5",children:[f.jsx(HE,{className:"w-3.5 h-3.5"})," ",Q.duration?`${Math.round(Q.duration/60)}m`:"—"]}),f.jsx("span",{className:"text-outline-variant/60",children:"•"}),f.jsx("span",{className:"bg-surface-high px-2 py-0.5 rounded-md text-on-surface-variant font-medium",children:Q.source_kind||"upload"})]})]}),f.jsxs("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity shrink-0",children:[f.jsx("button",{onClick:K=>K.stopPropagation(),className:"p-2 text-muted hover:text-primary hover:bg-primary/5 rounded-md transition-colors",children:f.jsx(Mg,{className:"w-4 h-4"})}),f.jsx("button",{onClick:K=>K.stopPropagation(),className:"p-2 text-muted hover:text-primary hover:bg-primary/5 rounded-md transition-colors",children:f.jsx(pd,{className:"w-4 h-4"})})]})]},Q.id))}),f.jsxs("div",{className:"mt-12 flex items-center justify-center gap-2",children:[f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded border border-outline-variant/40 text-muted hover:bg-surface-high transition-colors",children:f.jsx("span",{className:"text-lg leading-none mb-0.5",children:"‹"})}),f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded bg-primary text-white font-sans text-sm font-bold",children:"1"}),f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded border border-outline-variant/40 text-on-surface-variant hover:bg-surface-high transition-colors font-sans text-sm font-medium",children:"2"}),f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded border border-outline-variant/40 text-on-surface-variant hover:bg-surface-high transition-colors font-sans text-sm font-medium",children:"3"}),f.jsx("span",{className:"px-1 text-muted text-sm",children:"..."}),f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded border border-outline-variant/40 text-on-surface-variant hover:bg-surface-high transition-colors font-sans text-sm font-medium",children:"12"}),f.jsx("button",{className:"w-8 h-8 flex items-center justify-center rounded border border-outline-variant/40 text-muted hover:bg-surface-high transition-colors",children:f.jsx("span",{className:"text-lg leading-none mb-0.5",children:"›"})})]})]}),f.jsxs("footer",{className:"w-full py-8 px-8 flex flex-col md:flex-row justify-between items-center gap-4 bg-surface-low border-t border-outline-variant/20 mt-auto",children:[f.jsxs("div",{className:"flex items-center gap-6",children:[f.jsx("span",{className:"text-muted font-sans text-[0.8125rem]",children:"© 2024 Reflector Archive"}),f.jsxs("div",{className:"flex gap-4",children:[f.jsx("a",{href:"#",className:"text-muted hover:text-primary text-[0.8125rem] transition-colors",children:"Learn more"}),f.jsx("a",{href:"#",className:"text-muted hover:text-primary text-[0.8125rem] transition-colors",children:"Privacy policy"})]})]}),f.jsxs("div",{className:"flex gap-5",children:[f.jsx("a",{href:"#",className:"text-muted hover:text-primary transition-colors",children:f.jsx(JE,{className:"w-4 h-4"})}),f.jsx("a",{href:"#",className:"text-muted hover:text-primary transition-colors",children:f.jsx(s_,{className:"w-4 h-4"})})]})]})]})}const dN=Kg()(l=>({user:null,isAuthenticated:!1,setAuth:i=>l({user:i,isAuthenticated:!0}),clearAuth:()=>l({user:null,isAuthenticated:!1})}));function hN(){const{user:l}=dN(),i=Dl(),{isPlaying:s,setPlaying:u,currentTime:o,activeChapterId:d,setActiveChapter:m}=Zg(),p=()=>u(!s),{register:x,watch:v}=nr({defaultValues:{transcriptSearch:""}}),[b,g]=A.useState({c1:!0}),N=U=>{g(H=>({...H,[U]:!H[U]}))},T=[{id:"c1",title:"Introduction & Agenda",time:"00:00",active:!0},{id:"c2",title:"Q3 Performance Review",time:"05:22",active:!1},{id:"c3",title:"Product Roadmap Updates",time:"18:45",active:!1},{id:"c4",title:"Marketing Strategy Alignment",time:"32:10",active:!1},{id:"c5",title:"Next Steps & Action Items",time:"48:55",active:!1}],B=[{id:"t1",speaker:"Sarah Jenkins",time:"00:00",text:"Alright, let's get started. Thanks everyone for joining the Q3 retrospective."},{id:"t2",speaker:"David Chen",time:"00:15",text:"Thanks Sarah. I think we have a lot of good ground to cover today, especially regarding the new product launch."},{id:"t3",speaker:"Sarah Jenkins",time:"00:28",text:"Exactly. Let's start by looking at the numbers from last month. As you can see in the report, we exceeded our targets by 15%."}];return f.jsxs("div",{className:"flex-1 min-h-0 bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:[f.jsxs("div",{className:"w-full bg-[#1b1c14] px-6 py-3.5 flex flex-col gap-3 sticky top-0 z-20",children:[f.jsxs("div",{className:"flex items-center gap-4",children:[f.jsx("button",{onClick:p,className:"w-10 h-10 rounded-full bg-primary/10 flex items-center justify-center text-primary hover:bg-primary/20 transition-colors shrink-0",children:s?f.jsx(rv,{className:"w-5 h-5 fill-current"}):f.jsx(uv,{className:"w-5 h-5 fill-current ml-0.5"})}),f.jsxs("div",{className:"flex-1 flex items-center gap-3",children:[f.jsx("span",{className:"text-xs font-mono text-muted shrink-0",children:"18:45"}),f.jsx("div",{className:"flex-1 h-8 flex items-center gap-0.5",children:[...Array(60)].map((U,H)=>f.jsx("div",{className:`flex-1 rounded-full ${H<20?"bg-primary":"bg-[#3a3b30]"}`,style:{height:`${Math.max(20,Math.random()*100)}%`}},H))}),f.jsx("span",{className:"text-xs font-mono text-muted shrink-0",children:"55:00"})]})]}),f.jsxs("div",{className:"flex items-center gap-2 pl-14",children:[f.jsx("span",{className:"px-2.5 py-0.5 rounded-full bg-primary/10 text-primary text-[0.6875rem] font-bold uppercase tracking-wider",children:"Sarah J."}),f.jsx("span",{className:"px-2.5 py-0.5 rounded-full bg-surface-high/20 text-outline-variant text-[0.6875rem] font-bold uppercase tracking-wider",children:"David C."}),f.jsx("span",{className:"px-2.5 py-0.5 rounded-full bg-surface-high/20 text-outline-variant text-[0.6875rem] font-bold uppercase tracking-wider",children:"Elena M."})]})]}),f.jsxs("main",{className:"flex-1 flex flex-col lg:flex-row w-full max-w-[1600px] mx-auto overflow-hidden",children:[f.jsxs("div",{className:"flex-1 lg:w-[55%] flex flex-col border-r border-outline-variant/10 overflow-y-auto",children:[f.jsx("div",{className:"p-4 border-b border-outline-variant/10",children:f.jsxs("button",{onClick:()=>i("/transcriptions"),className:"flex items-center gap-2 text-muted hover:text-primary transition-colors text-sm font-medium",children:[f.jsx(TE,{className:"w-4 h-4"}),"Back to Archive"]})}),f.jsxs("div",{className:"w-full aspect-video bg-black relative group",children:[f.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:f.jsx("span",{className:"text-white/20 font-serif italic text-2xl",children:"Video Recording"})}),f.jsxs("div",{className:"absolute bottom-0 left-0 right-0 p-4 bg-gradient-to-t from-black/80 to-transparent opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-between",children:[f.jsxs("div",{className:"flex items-center gap-4 text-white",children:[f.jsx("button",{onClick:p,children:s?f.jsx(rv,{className:"w-5 h-5"}):f.jsx(uv,{className:"w-5 h-5"})}),f.jsx("button",{children:f.jsx(C_,{className:"w-5 h-5"})}),f.jsx("span",{className:"text-xs font-mono",children:"18:45 / 55:00"})]}),f.jsx("button",{className:"text-white",children:f.jsx(u_,{className:"w-5 h-5"})})]})]}),f.jsxs("div",{className:"p-8 md:p-10 max-w-3xl mx-auto w-full",children:[f.jsxs("div",{className:"flex items-start justify-between mb-6",children:[f.jsxs("div",{children:[f.jsx("h1",{className:"font-serif text-3xl font-bold text-on-surface mb-2",children:"Q3 Strategy & Planning Sync"}),f.jsxs("p",{className:"text-sm text-muted flex items-center gap-2",children:[f.jsx("span",{children:"Oct 12, 2024"}),f.jsx("span",{children:"•"}),f.jsx("span",{children:"Editorial Strategy Room"})]})]}),f.jsxs("div",{className:"flex items-center gap-2",children:[f.jsxs(Kt,{variant:"secondary",className:"py-1.5 px-3",children:[f.jsx(S_,{className:"w-4 h-4 mr-2"})," Share"]}),f.jsxs(Kt,{variant:"secondary",className:"py-1.5 px-3",children:[f.jsx(Mg,{className:"w-4 h-4 mr-2"})," Export"]}),f.jsx("button",{className:"p-2 text-muted hover:text-primary transition-colors rounded-md hover:bg-surface-high",children:f.jsx(pd,{className:"w-5 h-5"})})]})]}),f.jsxs("section",{className:"mb-10 bg-surface-low p-6 rounded-xl border border-outline-variant/10 relative group",children:[f.jsx("button",{className:"absolute top-4 right-4 p-1.5 text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all rounded-md hover:bg-surface-high",children:f.jsx(h_,{className:"w-4 h-4"})}),f.jsxs("h3",{className:"text-xs font-bold uppercase tracking-widest text-muted mb-3 flex items-center gap-2",children:[f.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary"})," Quick Recap"]}),f.jsx("p",{className:"font-serif text-lg text-on-surface leading-relaxed",children:"The team reviewed Q3 performance, noting a 15% overachievement in core metrics. Discussion then shifted to the upcoming product launch, with marketing and engineering aligning on the revised timeline for mid-November."})]}),f.jsxs("section",{children:[f.jsx("h3",{className:"text-xs font-bold uppercase tracking-widest text-muted mb-4",children:"Executive Summary"}),f.jsx("div",{className:"space-y-4 text-on-surface-variant text-[0.9375rem] leading-relaxed",children:f.jsxs("ul",{className:"list-disc pl-5 space-y-2 marker:text-primary",children:[f.jsxs("li",{children:[f.jsx("strong",{children:"Performance Review:"})," Sarah presented the Q3 numbers. All major KPIs were met or exceeded, particularly user engagement which saw a 22% bump after the last update."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Roadmap Adjustments:"})," David highlighted potential delays in the mobile app rollout due to API constraint issues. The team agreed to a two-week buffer."]}),f.jsxs("li",{children:[f.jsx("strong",{children:"Marketing Sync:"}),' Elena outlined the go-to-market strategy for the new features, focusing heavily on the "Editorial Archive" positioning.']}),f.jsxs("li",{children:[f.jsx("strong",{children:"Action Items:"})," David to provide updated API documentation by Friday. Elena to finalize ad copy by next Tuesday."]})]})})]})]})]}),f.jsxs("div",{className:"flex-1 lg:w-[45%] flex flex-col bg-surface-low overflow-hidden",children:[f.jsxs("div",{className:"p-6 border-b border-outline-variant/10 bg-surface/50 backdrop-blur-sm sticky top-0 z-10",children:[f.jsxs("div",{className:"flex items-center justify-between mb-4",children:[f.jsx("h2",{className:"font-serif text-xl font-bold text-on-surface",children:"Transcript"}),f.jsx("div",{className:"flex items-center gap-2",children:f.jsx("span",{className:"text-xs font-medium text-muted bg-surface-high px-2 py-1 rounded",children:"Auto-scroll"})})]}),f.jsxs("div",{className:"relative",children:[f.jsx(zg,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted"}),f.jsx("input",{type:"text",...x("transcriptSearch"),className:"w-full pl-9 pr-4 py-2 bg-surface border border-outline-variant/20 rounded-lg focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary transition-all text-sm text-on-surface placeholder:text-muted",placeholder:"Search in transcript..."})]})]}),f.jsx("div",{className:"flex-1 overflow-y-auto p-6 space-y-8",children:T.map(U=>f.jsxs("div",{className:"relative",children:[f.jsxs("div",{className:`flex items-center gap-3 mb-4 cursor-pointer group ${U.active?"text-primary":"text-on-surface-variant"}`,onClick:()=>N(U.id),children:[f.jsx("button",{className:`p-0.5 rounded-sm transition-colors ${U.active?"bg-primary/10":"hover:bg-surface-high"}`,children:b[U.id]?f.jsx(jE,{className:"w-4 h-4"}):f.jsx(RE,{className:"w-4 h-4"})}),f.jsx("span",{className:"font-mono text-xs font-medium",children:U.time}),f.jsx("h3",{className:"font-serif font-bold text-lg group-hover:text-primary transition-colors",children:U.title})]}),b[U.id]&&f.jsx("div",{className:"pl-9 space-y-6 relative before:absolute before:left-3.5 before:top-2 before:bottom-2 before:w-px before:bg-outline-variant/20",children:B.map(H=>f.jsxs("div",{className:"group relative",children:[H.id==="t2"&&f.jsx("div",{className:"absolute -left-9 top-1.5 w-1.5 h-1.5 rounded-full bg-primary ring-4 ring-primary/10"}),f.jsxs("div",{className:"flex items-baseline gap-3 mb-1",children:[f.jsx("span",{className:`text-xs font-bold uppercase tracking-wider ${H.speaker==="Sarah Jenkins"?"text-primary":"text-on-surface-variant"}`,children:H.speaker}),f.jsx("span",{className:"text-[0.6875rem] font-mono text-muted opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer hover:text-primary",children:H.time})]}),f.jsx("p",{className:`text-[0.9375rem] leading-relaxed ${H.id==="t2"?"text-on-surface font-medium":"text-on-surface-variant"}`,children:H.text})]},H.id))})]},U.id))})]})]})]})}function mN(){const l=In();l.status==="authenticated"&&l.user;const[i,s]=A.useState([]),[u,o]=A.useState(!1),d=N=>{const T=Math.random().toString(36).substr(2,9);s(B=>[...B,{id:T,name:N,prefix:"rfl_"+T.slice(0,4),createdAt:new Date().toLocaleDateString(),lastUsed:null}])},m=N=>s(T=>T.filter(B=>B.id!==N)),{register:p,handleSubmit:x,reset:v,formState:{errors:b}}=nr(),g=N=>{d(N.keyName),v(),o(!1)};return f.jsx("div",{className:"flex-1 bg-surface flex flex-col font-sans text-on-surface selection:bg-primary-fixed",children:f.jsxs("main",{className:"flex-1 w-full max-w-[860px] mx-auto px-[24px] py-[40px]",children:[f.jsxs("div",{className:"mb-8",children:[f.jsx("h1",{className:"font-serif text-[2rem] font-bold text-[#1b1c14] leading-tight mb-1",children:"API Keys"}),f.jsx("p",{className:"font-sans text-[0.9375rem] text-[#a09a8e]",children:"Manage your API keys to authenticate with the Editorial Archive API. Keep these keys secure and never share them publicly."})]}),f.jsx("div",{className:"bg-[#FFFFFF] rounded-[12px] p-[20px] md:px-[24px] shadow-[0_4px_24px_rgba(27,28,20,0.06)] mb-8",children:u?f.jsxs("form",{onSubmit:x(g),className:"flex flex-col md:flex-row md:items-start gap-4",children:[f.jsxs("div",{className:"flex-1",children:[f.jsx("label",{className:"block font-sans text-[0.8125rem] font-bold text-[#1b1c14] mb-1.5 uppercase tracking-wider",children:"Key Name"}),f.jsx("input",{type:"text",...p("keyName",{required:!0,minLength:3}),placeholder:"e.g., Production Server",className:"w-full bg-[#f6f4e7] border border-outline-variant/20 rounded-[6px] px-3 py-2 text-[0.9375rem] text-[#1b1c14] focus:outline-none focus:ring-1 focus:ring-[#DC5A28] focus:border-[#DC5A28] transition-all",autoFocus:!0}),b.keyName&&f.jsx("p",{className:"text-[#ba1a1a] text-xs mt-1.5",children:"Name is required (min 3 characters)."})]}),f.jsxs("div",{className:"flex items-center gap-2 md:mt-[26px]",children:[f.jsx(Kt,{type:"button",variant:"secondary",onClick:()=>{o(!1),v()},children:"Cancel"}),f.jsx("button",{type:"submit",className:"bg-gradient-to-br from-[#a63500] to-[#c84c1a] text-white font-sans font-semibold text-[0.9375rem] px-[18px] py-[8px] rounded-[6px] hover:opacity-90 transition-opacity",children:"Generate Key"})]})]}):f.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[f.jsxs("div",{children:[f.jsx("h2",{className:"font-serif text-[1.25rem] font-bold text-[#1b1c14] mb-1",children:"Create New API Key"}),f.jsx("p",{className:"font-sans text-[0.9375rem] text-[#5a5850]",children:"Generate a new secret token to access our archival endpoints."})]}),f.jsxs("button",{onClick:()=>o(!0),className:"shrink-0 bg-gradient-to-br from-[#a63500] to-[#c84c1a] text-white font-sans font-semibold text-[0.9375rem] px-[18px] py-[8px] rounded-[6px] hover:opacity-90 transition-opacity flex items-center gap-2",children:[f.jsx(p_,{className:"w-4 h-4"})," Create API Key"]})]})}),f.jsxs("div",{className:"mt-[32px]",children:[f.jsx("h2",{className:"font-serif text-[1.25rem] font-bold text-[#1b1c14] mb-4",children:"Your API Keys"}),i.length===0?f.jsxs("div",{className:"bg-[#f6f4e7] rounded-[12px] p-[48px] px-[24px] flex flex-col items-center justify-center text-center",children:[f.jsx(t_,{className:"w-10 h-10 text-[#C8C8BE] mb-4"}),f.jsx("p",{className:"font-serif italic text-[1rem] text-[#a09a8e] mb-2",children:"No API keys yet."}),f.jsx("p",{className:"font-sans text-[0.9375rem] text-[#a09a8e] max-w-md",children:"You haven't generated any keys yet. Create one above to start curating your archive via API."})]}):f.jsx("div",{className:"w-full overflow-x-auto",children:f.jsxs("table",{className:"w-full text-left border-collapse",children:[f.jsx("thead",{children:f.jsxs("tr",{children:[f.jsx("th",{className:"font-sans text-[0.75rem] font-bold text-[#a09a8e] uppercase tracking-wider pb-3 px-4 font-normal",children:"Name"}),f.jsx("th",{className:"font-sans text-[0.75rem] font-bold text-[#a09a8e] uppercase tracking-wider pb-3 px-4 font-normal",children:"Prefix"}),f.jsx("th",{className:"font-sans text-[0.75rem] font-bold text-[#a09a8e] uppercase tracking-wider pb-3 px-4 font-normal",children:"Created"}),f.jsx("th",{className:"font-sans text-[0.75rem] font-bold text-[#a09a8e] uppercase tracking-wider pb-3 px-4 font-normal",children:"Last Used"}),f.jsx("th",{className:"font-sans text-[0.75rem] font-bold text-[#a09a8e] uppercase tracking-wider pb-3 px-4 font-normal text-right",children:"Actions"})]})}),f.jsx("tbody",{children:i.map(N=>f.jsxs("tr",{className:"group hover:bg-[#f6f4e7] transition-colors border-t border-outline-variant/10",children:[f.jsx("td",{className:"py-4 px-4 font-sans text-[0.9375rem] font-semibold text-[#1b1c14]",children:N.name}),f.jsx("td",{className:"py-4 px-4",children:f.jsxs("span",{className:"font-mono text-[0.8125rem] text-[#5a5850] bg-[#f0eee1] rounded-[6px] px-[8px] py-[2px]",children:[N.prefix,"••••••••"]})}),f.jsx("td",{className:"py-4 px-4 font-sans text-[0.9375rem] text-[#5a5850]",children:N.createdAt}),f.jsx("td",{className:"py-4 px-4 font-sans text-[0.9375rem] text-[#5a5850]",children:N.lastUsed||"Never"}),f.jsx("td",{className:"py-4 px-4 text-right",children:f.jsx("button",{onClick:()=>m(N.id),className:"font-sans text-[0.9375rem] font-medium text-[#DC5A28] hover:underline transition-all",children:"Revoke"})})]},N.id))})]})})]}),f.jsxs("div",{className:"mt-[32px] grid grid-cols-1 md:grid-cols-2 gap-6",children:[f.jsxs("div",{className:"bg-[#FFFFFF] rounded-[12px] p-[24px] shadow-[0_4px_24px_rgba(27,28,20,0.04)] border border-outline-variant/10",children:[f.jsx(__,{className:"w-6 h-6 text-[#DC5A28] mb-4"}),f.jsx("h3",{className:"font-serif text-[1.25rem] font-bold text-[#1b1c14] mb-3",children:"Security Best Practices"}),f.jsxs("ul",{className:"space-y-2 font-sans text-[0.9375rem] text-[#5a5850]",children:[f.jsxs("li",{className:"flex gap-2",children:[f.jsx("span",{className:"text-[#DC5A28] mt-0.5",children:"•"}),f.jsx("span",{children:"Never commit your API keys to version control systems like GitHub."})]}),f.jsxs("li",{className:"flex gap-2",children:[f.jsx("span",{className:"text-[#DC5A28] mt-0.5",children:"•"}),f.jsx("span",{children:"Rotate your keys every 90 days to minimize risk of exposure."})]}),f.jsxs("li",{className:"flex gap-2",children:[f.jsx("span",{className:"text-[#DC5A28] mt-0.5",children:"•"}),f.jsx("span",{children:"Use environment variables to store your keys in production."})]})]})]}),f.jsxs("div",{className:"bg-[#FFFFFF] rounded-[12px] p-[24px] shadow-[0_4px_24px_rgba(27,28,20,0.04)] border border-outline-variant/10 flex flex-col",children:[f.jsx(BE,{className:"w-6 h-6 text-[#DC5A28] mb-4"}),f.jsx("h3",{className:"font-serif text-[1.25rem] font-bold text-[#1b1c14] mb-3",children:"API Documentation"}),f.jsx("p",{className:"font-sans text-[0.9375rem] text-[#5a5850] mb-6 flex-1",children:"Learn how to integrate the Editorial Archive into your workflow with our comprehensive guides."}),f.jsxs("a",{href:"#",className:"inline-flex items-center gap-1 font-sans text-[0.9375rem] font-semibold text-[#DC5A28] hover:text-[#a63500] transition-colors",children:["View Documentation ",f.jsx(Og,{className:"w-4 h-4"})]})]})]})]})})}const Fg=[{label:"Archive",href:"/transcriptions"},{label:"Rooms",href:"/rooms"},{label:"Analytics",href:"#"},{label:"Settings",href:"/settings"}];function yN(){const l=In();return l.status==="loading"?f.jsx("div",{className:"min-h-screen flex items-center justify-center bg-surface",children:f.jsx("div",{className:"w-8 h-8 border-2 border-primary/30 border-t-primary rounded-full animate-spin"})}):l.status==="authenticated"?f.jsx(nd,{}):f.jsx(lg,{to:"/",replace:!0})}function pN(){return f.jsxs("div",{className:"min-h-screen flex flex-col bg-surface",children:[f.jsx(kg,{links:Fg}),f.jsx("main",{className:"flex-1 flex flex-col",children:f.jsx(nd,{})})]})}function vN(){return f.jsxs("div",{className:"h-screen flex flex-col bg-surface overflow-hidden",children:[f.jsx(kg,{links:Fg}),f.jsx("div",{className:"flex flex-1 overflow-hidden",children:f.jsx("main",{className:"flex-1 overflow-y-auto flex flex-col",children:f.jsx(nd,{})})})]})}function gN(){return f.jsx(v2,{client:D2,children:f.jsx($2,{children:f.jsx(W2,{children:f.jsx(nE,{children:f.jsx(hE,{children:f.jsx(l1,{fallback:f.jsx("div",{className:"min-h-screen flex items-center justify-center bg-surface text-on-surface",children:f.jsx("p",{children:"Something went wrong. Please refresh the page."})}),children:f.jsxs(fS,{children:[f.jsx(xa,{path:"/",element:f.jsx(U_,{})}),f.jsxs(xa,{element:f.jsx(yN,{}),children:[f.jsx(xa,{element:f.jsx(pN,{}),children:f.jsx(xa,{path:"/welcome",element:f.jsx(uN,{})})}),f.jsxs(xa,{element:f.jsx(vN,{}),children:[f.jsx(xa,{path:"/rooms",element:f.jsx(oN,{})}),f.jsx(xa,{path:"/transcriptions",element:f.jsx(fN,{})}),f.jsx(xa,{path:"/transcriptions/:id",element:f.jsx(hN,{})}),f.jsx(xa,{path:"/settings",element:f.jsx(mN,{})})]})]}),f.jsx(xa,{path:"*",element:f.jsx(lg,{to:"/",replace:!0})})]})})})})})})})}d1.createRoot(document.getElementById("root")).render(f.jsx(Le.StrictMode,{children:f.jsx(US,{children:f.jsx(gN,{})})}));
diff --git a/www/appv2/dist/assets/index-DT0hy75l.css b/www/appv2/dist/assets/index-DT0hy75l.css
new file mode 100644
index 00000000..d46cabad
--- /dev/null
+++ b/www/appv2/dist/assets/index-DT0hy75l.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-content:""}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-3xl:64px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Manrope,system-ui,sans-serif;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}body{background-color:var(--color-surface);color:var(--color-on-surface);font-family:Manrope,sans-serif}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-thumb{background:var(--color-outline-variant);border-radius:3px}::-webkit-scrollbar-track{background:0 0}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-8{top:calc(var(--spacing) * -8)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.-right-8{right:calc(var(--spacing) * -8)}.-right-12{right:calc(var(--spacing) * -12)}.right-0{right:calc(var(--spacing) * 0)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.-bottom-4{bottom:calc(var(--spacing) * -4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-6{bottom:calc(var(--spacing) * 6)}.-left-4{left:calc(var(--spacing) * -4)}.-left-9{left:calc(var(--spacing) * -9)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.m-4{margin:calc(var(--spacing) * 4)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-\[32px\]{margin-top:32px}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-48{height:calc(var(--spacing) * 48)}.h-64{height:calc(var(--spacing) * 64)}.h-\[2px\]{height:2px}.h-\[320px\]{height:320px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:calc(var(--spacing) * 0)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-\[60vh\]{max-height:60vh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-48{width:calc(var(--spacing) * 48)}.w-64{width:calc(var(--spacing) * 64)}.w-\[420px\]{width:420px}.w-full{width:100%}.w-screen{width:100vw}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[240px\]{max-width:240px}.max-w-\[280px\]{max-width:280px}.max-w-\[320px\]{max-width:320px}.max-w-\[420px\]{max-width:420px}.max-w-\[440px\]{max-width:440px}.max-w-\[860px\]{max-width:860px}.max-w-\[1600px\]{max-width:1600px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-16{gap:calc(var(--spacing) * 16)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-10>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 10) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 10) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-24>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 24) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 24) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-transparent>:not(:last-child)){border-color:#0000}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-\[12px\]{border-radius:12px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:12px}.rounded-sm{border-radius:6px}.rounded-xl{border-radius:var(--radius-xl)}.rounded-l-md{border-top-left-radius:12px;border-bottom-left-radius:12px}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-b-\[12px\]{border-bottom-right-radius:12px;border-bottom-left-radius:12px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[1\.5px\]{border-style:var(--tw-border-style);border-width:1.5px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-4{border-top-style:var(--tw-border-style);border-top-width:4px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-\[2\.5px\]{border-bottom-style:var(--tw-border-style);border-bottom-width:2.5px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-\[\#4caf79\]{border-color:#4caf79}.border-\[\#C8C8BE\]{border-color:#c8c8be}.border-outline-variant\/10{border-color:#e0bfb51a}.border-outline-variant\/20{border-color:#e0bfb533}.border-outline-variant\/30{border-color:#e0bfb54d}.border-outline-variant\/40{border-color:#e0bfb566}.border-outline-variant\/60{border-color:#e0bfb599}.border-primary{border-color:#dc5a28}.border-primary\/30{border-color:#dc5a284d}.border-red-200{border-color:var(--color-red-200)}.border-surface-high{border-color:#e8e5d4}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab,red,red)){.border-white\/30{border-color:color-mix(in oklab,var(--color-white) 30%,transparent)}}.border-t-primary{border-top-color:#dc5a28}.border-t-white{border-top-color:var(--color-white)}.bg-\[\#1b1c14\]{background-color:#1b1c14}.bg-\[\#1b1c14\]\/45{background-color:#1b1c1473}.bg-\[\#3a3b30\]{background-color:#3a3b30}.bg-\[\#FFFFFF\]{background-color:#fff}.bg-\[\#f0eee1\]{background-color:#f0eee1}.bg-\[\#f6f4e7\]{background-color:#f6f4e7}.bg-black{background-color:var(--color-black)}.bg-muted{background-color:#a09a8e}.bg-outline-variant\/20{background-color:#e0bfb533}.bg-primary{background-color:#dc5a28}.bg-primary\/10{background-color:#dc5a281a}.bg-red-50{background-color:var(--color-red-50)}.bg-red-400{background-color:var(--color-red-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-surface{background-color:#fcfaec}.bg-surface-high{background-color:#e8e5d4}.bg-surface-high\/20{background-color:#e8e5d433}.bg-surface-low{background-color:#f6f4e7}.bg-surface-mid{background-color:#f0eee1}.bg-surface\/50{background-color:#fcfaec80}.bg-surface\/85{background-color:#fcfaecd9}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\/90{background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.bg-white\/95{background-color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.bg-white\/95{background-color:color-mix(in oklab,var(--color-white) 95%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-primary{background-image:linear-gradient(135deg,#a63500,#c84c1a)}.from-\[\#a63500\]{--tw-gradient-from:#a63500;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab,red,red)){.from-black\/80{--tw-gradient-from:color-mix(in oklab, var(--color-black) 80%, transparent)}}.from-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-black\/90{--tw-gradient-from:#000000e6}@supports (color:color-mix(in lab,red,red)){.from-black\/90{--tw-gradient-from:color-mix(in oklab, var(--color-black) 90%, transparent)}}.from-black\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-black\/40{--tw-gradient-via:#0006}@supports (color:color-mix(in lab,red,red)){.via-black\/40{--tw-gradient-via:color-mix(in oklab, var(--color-black) 40%, transparent)}}.via-black\/40{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#c84c1a\]{--tw-gradient-to:#c84c1a;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-current{fill:currentColor}.fill-primary\/20{fill:#dc5a2833}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-7{padding:calc(var(--spacing) * 7)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-16{padding:calc(var(--spacing) * 16)}.p-\[20px\]{padding:20px}.p-\[24px\]{padding:24px}.p-\[48px\]{padding:48px}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[8px\]{padding-inline:8px}.px-\[18px\]{padding-inline:18px}.px-\[24px\]{padding-inline:24px}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-24{padding-block:calc(var(--spacing) * 24)}.py-\[2px\]{padding-block:2px}.py-\[6px\]{padding-block:6px}.py-\[8px\]{padding-block:8px}.py-\[40px\]{padding-block:40px}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-0{padding-bottom:calc(var(--spacing) * 0)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-14{padding-left:calc(var(--spacing) * 14)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:Manrope,system-ui,sans-serif}.font-serif{font-family:Newsreader,Georgia,serif}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.875rem\]{font-size:.875rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[1\.25rem\]{font-size:1.25rem}.text-\[1\.75rem\]{font-size:1.75rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.text-\[1rem\]{font-size:1rem}.text-\[2\.5rem\]{font-size:2.5rem}.text-\[2rem\]{font-size:2rem}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-\[\#1b1c14\]{color:#1b1c14}.text-\[\#4caf79\]{color:#4caf79}.text-\[\#5a5850\]{color:#5a5850}.text-\[\#C8C8BE\]{color:#c8c8be}.text-\[\#DC5A28\]{color:#dc5a28}.text-\[\#a09a8e\]{color:#a09a8e}.text-\[\#ba1a1a\]{color:#ba1a1a}.text-muted{color:#a09a8e}.text-on-surface{color:#1b1c14}.text-on-surface-variant{color:#5a5850}.text-outline-variant{color:#e0bfb5}.text-outline-variant\/60{color:#e0bfb599}.text-primary{color:#dc5a28}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-white{color:var(--color-white)}.text-white\/20{color:#fff3}@supports (color:color-mix(in lab,red,red)){.text-white\/20{color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white) 85%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-5{opacity:.05}.opacity-45{opacity:.45}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-100{opacity:1}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-\[0_4px_24px_rgba\(27\,28\,20\,0\.04\)\]{--tw-shadow:0 4px 24px var(--tw-shadow-color,#1b1c140a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_4px_24px_rgba\(27\,28\,20\,0\.06\)\]{--tw-shadow:0 4px 24px var(--tw-shadow-color,#1b1c140f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_48px_rgba\(27\,28\,20\,0\.12\)\]{--tw-shadow:0 16px 48px var(--tw-shadow-color,#1b1c141f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-card{--tw-shadow:0 8px 40px var(--tw-shadow-color,#1b1c140f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-primary\/10{--tw-ring-color:oklab(62.8167% .13414 .111378/.1)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale-\[30\%\]{--tw-grayscale:grayscale(30%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[12px\]{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.group-focus-within\:text-primary:is(:where(.group):focus-within *){color:#dc5a28}@media(hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.group-hover\:text-primary:is(:where(.group):hover *){color:#dc5a28}.group-hover\:opacity-10:is(:where(.group):hover *){opacity:.1}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.marker\:text-primary ::marker{color:#dc5a28}.marker\:text-primary::marker{color:#dc5a28}.marker\:text-primary ::-webkit-details-marker{color:#dc5a28}.marker\:text-primary::-webkit-details-marker{color:#dc5a28}.placeholder\:text-muted::-moz-placeholder{color:#a09a8e}.placeholder\:text-muted::placeholder{color:#a09a8e}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-2:before{content:var(--tw-content);top:calc(var(--spacing) * 2)}.before\:bottom-2:before{content:var(--tw-content);bottom:calc(var(--spacing) * 2)}.before\:left-3\.5:before{content:var(--tw-content);left:calc(var(--spacing) * 3.5)}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:bg-outline-variant\/20:before{content:var(--tw-content);background-color:#e0bfb533}.checked\:border-primary:checked{border-color:#dc5a28}.checked\:bg-primary:checked{background-color:#dc5a28}.checked\:after\:absolute:checked:after{content:var(--tw-content);position:absolute}.checked\:after\:top-\[1px\]:checked:after{content:var(--tw-content);top:1px}.checked\:after\:left-\[4px\]:checked:after{content:var(--tw-content);left:4px}.checked\:after\:h-\[9px\]:checked:after{content:var(--tw-content);height:9px}.checked\:after\:w-\[5px\]:checked:after{content:var(--tw-content);width:5px}.checked\:after\:rotate-45:checked:after{content:var(--tw-content);rotate:45deg}.checked\:after\:border-r-2:checked:after{content:var(--tw-content);border-right-style:var(--tw-border-style);border-right-width:2px}.checked\:after\:border-b-2:checked:after{content:var(--tw-content);border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.checked\:after\:border-white:checked:after{content:var(--tw-content);border-color:var(--color-white)}.checked\:after\:content-\[\'\'\]:checked:after{--tw-content:"";content:var(--tw-content)}@media(hover:hover){.hover\:border-primary\/30:hover{border-color:#dc5a284d}.hover\:bg-\[\#f6f4e7\]:hover{background-color:#f6f4e7}.hover\:bg-primary\/5:hover{background-color:#dc5a280d}.hover\:bg-primary\/10:hover{background-color:#dc5a281a}.hover\:bg-primary\/20:hover{background-color:#dc5a2833}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-surface-high:hover{background-color:#e8e5d4}.hover\:bg-surface-low:hover{background-color:#f6f4e7}.hover\:bg-surface-mid:hover{background-color:#f0eee1}.hover\:text-\[\#a63500\]:hover{color:#a63500}.hover\:text-on-surface:hover{color:#1b1c14}.hover\:text-on-surface-variant:hover{color:#5a5850}.hover\:text-primary:hover{color:#dc5a28}.hover\:text-red-600:hover{color:var(--color-red-600)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:ring-primary\/20:hover{--tw-ring-color:oklab(62.8167% .13414 .111378/.2)}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-\[\#DC5A28\]:focus,.focus\:border-primary:focus{border-color:#dc5a28}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[\#4caf79\]\/15:focus{--tw-ring-color:oklab(68.0514% -.113606 .0485775/.15)}.focus\:ring-\[\#DC5A28\]:focus,.focus\:ring-primary:focus{--tw-ring-color:#dc5a28}.focus\:ring-primary\/15:focus{--tw-ring-color:oklab(62.8167% .13414 .111378/.15)}.focus\:ring-primary\/30:focus{--tw-ring-color:oklab(62.8167% .13414 .111378/.3)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-red-700:active{background-color:var(--color-red-700)}.active\:brightness-95:active{--tw-brightness:brightness(95%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:self-auto{align-self:auto}}@media(min-width:48rem){.md\:-left-8{left:calc(var(--spacing) * -8)}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-5{grid-column:span 5/span 5}.md\:col-span-7{grid-column:span 7/span 7}.md\:mt-0{margin-top:calc(var(--spacing) * 0)}.md\:mt-\[26px\]{margin-top:26px}.md\:flex{display:flex}.md\:w-80{width:calc(var(--spacing) * 80)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:items-start{align-items:flex-start}.md\:justify-end{justify-content:flex-end}.md\:p-10{padding:calc(var(--spacing) * 10)}.md\:p-12{padding:calc(var(--spacing) * 12)}.md\:px-\[24px\]{padding-inline:24px}.md\:py-0{padding-block:calc(var(--spacing) * 0)}.md\:text-\[3\.5rem\]{font-size:3.5rem}}@media(min-width:64rem){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:w-\[45\%\]{width:45%}.lg\:w-\[55\%\]{width:55%}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-12{gap:calc(var(--spacing) * 12)}.lg\:gap-24{gap:calc(var(--spacing) * 24)}}}:root{--color-primary:#dc5a28;--color-primary-dark:#a63500;--color-primary-container:#c84c1a;--color-on-primary:#fff;--color-surface:#fcfaec;--color-surface-container-low:#f6f4e7;--color-surface-container:#f0eee1;--color-surface-container-high:#e8e5d4;--color-surface-container-highest:#fff;--color-on-surface:#1b1c14;--color-on-surface-variant:#5a5850;--color-outline-variant:#e0bfb5;--color-error:#ba1a1a;--gradient-primary:linear-gradient(135deg, #a63500, #c84c1a);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:12px}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
diff --git a/www/appv2/dist/index.html b/www/appv2/dist/index.html
new file mode 100644
index 00000000..eae33e87
--- /dev/null
+++ b/www/appv2/dist/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+ My Google AI Studio App
+
+
+
+
+
+
+
+
diff --git a/www/appv2/index.html b/www/appv2/index.html
new file mode 100644
index 00000000..06d2dbeb
--- /dev/null
+++ b/www/appv2/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Reflector
+
+
+
+
+
+
+
diff --git a/www/appv2/metadata.json b/www/appv2/metadata.json
new file mode 100644
index 00000000..ccf39c2e
--- /dev/null
+++ b/www/appv2/metadata.json
@@ -0,0 +1,5 @@
+{
+ "name": "Reflector",
+ "description": "An open-source AI meeting transcription and summarization platform.",
+ "requestFramePermissions": []
+}
diff --git a/www/appv2/package-lock.json b/www/appv2/package-lock.json
new file mode 100644
index 00000000..b905fdc8
--- /dev/null
+++ b/www/appv2/package-lock.json
@@ -0,0 +1,6888 @@
+{
+ "name": "reflector-appv2",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "reflector-appv2",
+ "version": "0.0.0",
+ "dependencies": {
+ "@daily-co/daily-js": "^0.87.0",
+ "@fontsource/manrope": "^5.2.8",
+ "@fontsource/newsreader": "^5.2.10",
+ "@sentry/react": "^10.40.0",
+ "@tailwindcss/vite": "^4.1.14",
+ "@tanstack/react-query": "^5.90.21",
+ "@vitejs/plugin-react": "^5.0.4",
+ "@whereby.com/browser-sdk": "^3.18.21",
+ "concurrently": "^9.0.0",
+ "cookie-parser": "^1.4.7",
+ "cors": "^2.8.5",
+ "dotenv": "^17.2.3",
+ "express": "^4.21.2",
+ "lucide-react": "^0.546.0",
+ "motion": "^12.23.24",
+ "openapi-fetch": "^0.17.0",
+ "openapi-react-query": "^0.5.4",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "react-hook-form": "^7.72.0",
+ "react-router-dom": "^7.13.2",
+ "vite": "^6.2.0",
+ "zustand": "^5.0.12"
+ },
+ "devDependencies": {
+ "@sentry/vite-plugin": "^3.0.0",
+ "@tailwindcss/postcss": "^4.2.2",
+ "@types/cookie-parser": "^1.4.8",
+ "@types/cors": "^2.8.17",
+ "@types/express": "^4.17.21",
+ "@types/node": "^22.14.0",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
+ "autoprefixer": "^10.4.21",
+ "tailwindcss": "^4.1.14",
+ "tsx": "^4.21.0",
+ "typescript": "~5.8.2",
+ "vite": "^6.2.0"
+ }
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz",
+ "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz",
+ "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz",
+ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-compilation-targets": "^7.28.6",
+ "@babel/helper-module-transforms": "^7.28.6",
+ "@babel/helpers": "^7.28.6",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/traverse": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.1",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz",
+ "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.0",
+ "@babel/types": "^7.29.0",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz",
+ "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.28.6",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz",
+ "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz",
+ "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.28.6",
+ "@babel/helper-validator-identifier": "^7.28.5",
+ "@babel/traverse": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz",
+ "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.28.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz",
+ "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz",
+ "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz",
+ "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz",
+ "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz",
+ "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.28.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
+ "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.28.6",
+ "@babel/parser": "^7.28.6",
+ "@babel/types": "^7.28.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz",
+ "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "@babel/generator": "^7.29.0",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.29.0",
+ "@babel/template": "^7.28.6",
+ "@babel/types": "^7.29.0",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz",
+ "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.28.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@daily-co/daily-js": {
+ "version": "0.87.0",
+ "resolved": "https://registry.npmjs.org/@daily-co/daily-js/-/daily-js-0.87.0.tgz",
+ "integrity": "sha512-hWHdBDvJwDeg8unz+XG9hD7xamuFi5Jmsk89ASATKL4fdTDHplpxi4PG9aaPXzBZYYLTjuxUje1K7B5uUR+gzw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "@sentry/browser": "^8.33.1",
+ "bowser": "^2.8.1",
+ "dequal": "^2.0.3",
+ "events": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.4.tgz",
+ "integrity": "sha512-cQPwL2mp2nSmHHJlCyoXgHGhbEPMrEEU5xhkcy3Hs/O7nGZqEpZ2sUtLaL9MORLtDfRvVl2/3PAuEkYZH0Ty8Q==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.4.tgz",
+ "integrity": "sha512-X9bUgvxiC8CHAGKYufLIHGXPJWnr0OCdR0anD2e21vdvgCI8lIfqFbnoeOz7lBjdrAGUhqLZLcQo6MLhTO2DKQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.4.tgz",
+ "integrity": "sha512-gdLscB7v75wRfu7QSm/zg6Rx29VLdy9eTr2t44sfTW7CxwAtQghZ4ZnqHk3/ogz7xao0QAgrkradbBzcqFPasw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.4.tgz",
+ "integrity": "sha512-PzPFnBNVF292sfpfhiyiXCGSn9HZg5BcAz+ivBuSsl6Rk4ga1oEXAamhOXRFyMcjwr2DVtm40G65N3GLeH1Lvw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.4.tgz",
+ "integrity": "sha512-b7xaGIwdJlht8ZFCvMkpDN6uiSmnxxK56N2GDTMYPr2/gzvfdQN8rTfBsvVKmIVY/X7EM+/hJKEIbbHs9oA4tQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.4.tgz",
+ "integrity": "sha512-sR+OiKLwd15nmCdqpXMnuJ9W2kpy0KigzqScqHI3Hqwr7IXxBp3Yva+yJwoqh7rE8V77tdoheRYataNKL4QrPw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-jnfpKe+p79tCnm4GVav68A7tUFeKQwQyLgESwEAUzyxk/TJr4QdGog9sqWNcUbr/bZt/O/HXouspuQDd9JxFSw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.4.tgz",
+ "integrity": "sha512-2kb4ceA/CpfUrIcTUl1wrP/9ad9Atrp5J94Lq69w7UwOMolPIGrfLSvAKJp0RTvkPPyn6CIWrNy13kyLikZRZQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.4.tgz",
+ "integrity": "sha512-aBYgcIxX/wd5n2ys0yESGeYMGF+pv6g0DhZr3G1ZG4jMfruU9Tl1i2Z+Wnj9/KjGz1lTLCcorqE2viePZqj4Eg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.4.tgz",
+ "integrity": "sha512-7nQOttdzVGth1iz57kxg9uCz57dxQLHWxopL6mYuYthohPKEK0vU0C3O21CcBK6KDlkYVcnDXY099HcCDXd9dA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.4.tgz",
+ "integrity": "sha512-oPtixtAIzgvzYcKBQM/qZ3R+9TEUd1aNJQu0HhGyqtx6oS7qTpvjheIWBbes4+qu1bNlo2V4cbkISr8q6gRBFA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.4.tgz",
+ "integrity": "sha512-8mL/vh8qeCoRcFH2nM8wm5uJP+ZcVYGGayMavi8GmRJjuI3g1v6Z7Ni0JJKAJW+m0EtUuARb6Lmp4hMjzCBWzA==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.4.tgz",
+ "integrity": "sha512-1RdrWFFiiLIW7LQq9Q2NES+HiD4NyT8Itj9AUeCl0IVCA459WnPhREKgwrpaIfTOe+/2rdntisegiPWn/r/aAw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.4.tgz",
+ "integrity": "sha512-tLCwNG47l3sd9lpfyx9LAGEGItCUeRCWeAx6x2Jmbav65nAwoPXfewtAdtbtit/pJFLUWOhpv0FpS6GQAmPrHA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.4.tgz",
+ "integrity": "sha512-BnASypppbUWyqjd1KIpU4AUBiIhVr6YlHx/cnPgqEkNoVOhHg+YiSVxM1RLfiy4t9cAulbRGTNCKOcqHrEQLIw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.4.tgz",
+ "integrity": "sha512-+eUqgb/Z7vxVLezG8bVB9SfBie89gMueS+I0xYh2tJdw3vqA/0ImZJ2ROeWwVJN59ihBeZ7Tu92dF/5dy5FttA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.4.tgz",
+ "integrity": "sha512-S5qOXrKV8BQEzJPVxAwnryi2+Iq5pB40gTEIT69BQONqR7JH1EPIcQ/Uiv9mCnn05jff9umq/5nqzxlqTOg9NA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-xHT8X4sb0GS8qTqiwzHqpY00C95DPAq7nAwX35Ie/s+LO9830hrMd3oX0ZMKLvy7vsonee73x0lmcdOVXFzd6Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-RugOvOdXfdyi5Tyv40kgQnI0byv66BFgAqjdgtAKqHoZTbTF2QqfQrFwa7cHEORJf6X2ht+l9ABLMP0dnKYsgg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.4.tgz",
+ "integrity": "sha512-2MyL3IAaTX+1/qP0O1SwskwcwCoOI4kV2IBX1xYnDDqthmq5ArrW94qSIKCAuRraMgPOmG0RDTA74mzYNQA9ow==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.4.tgz",
+ "integrity": "sha512-u8fg/jQ5aQDfsnIV6+KwLOf1CmJnfu1ShpwqdwC0uA7ZPwFws55Ngc12vBdeUdnuWoQYx/SOQLGDcdlfXhYmXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.4.tgz",
+ "integrity": "sha512-JkTZrl6VbyO8lDQO3yv26nNr2RM2yZzNrNHEsj9bm6dOwwu9OYN28CjzZkH57bh4w0I2F7IodpQvUAEd1mbWXg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.4.tgz",
+ "integrity": "sha512-/gOzgaewZJfeJTlsWhvUEmUG4tWEY2Spp5M20INYRg2ZKl9QPO3QEEgPeRtLjEWSW8FilRNacPOg8R1uaYkA6g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.4.tgz",
+ "integrity": "sha512-Z9SExBg2y32smoDQdf1HRwHRt6vAHLXcxD2uGgO/v2jK7Y718Ix4ndsbNMU/+1Qiem9OiOdaqitioZwxivhXYg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.4.tgz",
+ "integrity": "sha512-DAyGLS0Jz5G5iixEbMHi5KdiApqHBWMGzTtMiJ72ZOLhbu/bzxgAe8Ue8CTS3n3HbIUHQz/L51yMdGMeoxXNJw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.4.tgz",
+ "integrity": "sha512-+knoa0BDoeXgkNvvV1vvbZX4+hizelrkwmGJBdT17t8FNPwG2lKemmuMZlmaNQ3ws3DKKCxpb4zRZEIp3UxFCg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.5",
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz",
+ "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.7.6"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
+ "license": "MIT"
+ },
+ "node_modules/@fontsource/manrope": {
+ "version": "5.2.8",
+ "resolved": "https://registry.npmjs.org/@fontsource/manrope/-/manrope-5.2.8.tgz",
+ "integrity": "sha512-gJHJmcuUk7qWcNCfcAri/DJQtXtBYqi9yKratr4jXhSo0I3xUtNNKI+igQIcw5c+m95g0vounk8ZnX/kb8o0TA==",
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
+ }
+ },
+ "node_modules/@fontsource/newsreader": {
+ "version": "5.2.10",
+ "resolved": "https://registry.npmjs.org/@fontsource/newsreader/-/newsreader-5.2.10.tgz",
+ "integrity": "sha512-TFaYzoFhDqarUyV2yYjgZZEwT4bpaj6sGBnXSnFknQ/QB8/9LzfY6IO9+inHOX4zzPp87Z7/KuG1OI5gr91Q3A==",
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@lukeed/csprng": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz",
+ "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@lukeed/uuid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@lukeed/uuid/-/uuid-2.0.1.tgz",
+ "integrity": "sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@lukeed/csprng": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
+ "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
+ "license": "MIT"
+ },
+ "node_modules/@radix-ui/react-arrow": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz",
+ "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.1.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dismissable-layer": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz",
+ "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1",
+ "@radix-ui/react-use-escape-keydown": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-guards": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz",
+ "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-scope": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz",
+ "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-popover": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz",
+ "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-dismissable-layer": "1.1.11",
+ "@radix-ui/react-focus-guards": "1.1.3",
+ "@radix-ui/react-focus-scope": "1.1.7",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-popper": "1.2.8",
+ "@radix-ui/react-portal": "1.1.9",
+ "@radix-ui/react-presence": "1.1.5",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-slot": "1.2.3",
+ "@radix-ui/react-use-controllable-state": "1.2.2",
+ "aria-hidden": "^1.2.4",
+ "react-remove-scroll": "^2.6.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-popper": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz",
+ "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.0.0",
+ "@radix-ui/react-arrow": "1.1.7",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-callback-ref": "1.1.1",
+ "@radix-ui/react-use-layout-effect": "1.1.1",
+ "@radix-ui/react-use-rect": "1.1.1",
+ "@radix-ui/react-use-size": "1.1.1",
+ "@radix-ui/rect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-portal": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz",
+ "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
+ "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-effect-event": "0.0.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-effect-event": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-escape-keydown": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz",
+ "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-callback-ref": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-rect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz",
+ "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/rect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz",
+ "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/rect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz",
+ "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==",
+ "license": "MIT"
+ },
+ "node_modules/@reduxjs/toolkit": {
+ "version": "2.11.2",
+ "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz",
+ "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@standard-schema/spec": "^1.0.0",
+ "@standard-schema/utils": "^0.3.0",
+ "immer": "^11.0.0",
+ "redux": "^5.0.1",
+ "redux-thunk": "^3.1.0",
+ "reselect": "^5.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.9.0 || ^17.0.0 || ^18 || ^19",
+ "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "react": {
+ "optional": true
+ },
+ "react-redux": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.0-rc.3",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz",
+ "integrity": "sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==",
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.0.tgz",
+ "integrity": "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.0.tgz",
+ "integrity": "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.0.tgz",
+ "integrity": "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.0.tgz",
+ "integrity": "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.0.tgz",
+ "integrity": "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.0.tgz",
+ "integrity": "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.0.tgz",
+ "integrity": "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.0.tgz",
+ "integrity": "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.0.tgz",
+ "integrity": "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.0.tgz",
+ "integrity": "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.0.tgz",
+ "integrity": "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.0.tgz",
+ "integrity": "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.0.tgz",
+ "integrity": "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.0.tgz",
+ "integrity": "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.0.tgz",
+ "integrity": "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.0.tgz",
+ "integrity": "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.0.tgz",
+ "integrity": "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.0.tgz",
+ "integrity": "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.0.tgz",
+ "integrity": "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.0.tgz",
+ "integrity": "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.0.tgz",
+ "integrity": "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.0.tgz",
+ "integrity": "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.0.tgz",
+ "integrity": "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.0.tgz",
+ "integrity": "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.0.tgz",
+ "integrity": "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@sentry-internal/browser-utils": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.55.1.tgz",
+ "integrity": "sha512-SipXiwVhJrxzy3/4kf+YIFmpYlLKtGSRD+er7SBCcuSBtv31Fee8IXMDvk+bq24gRXxyjOLUmT//GGXjy2LL6w==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "8.55.1"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry-internal/feedback": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.55.1.tgz",
+ "integrity": "sha512-9iFHaT/ijtzB0ffZhXMnt2rPNIXO/dDiCL1G1Bc55rQMPXgawR9AIaAWciyqQjYcbL1DDOhWbzdVqB+kVs5gXw==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "8.55.1"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry-internal/replay": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.55.1.tgz",
+ "integrity": "sha512-XaX6r8pXeX47rfiQrSQUwkgxHsDkOKzIT++zfTwrmveVlYSqAhp3x+AKhxAXGmKG62wlmAKQz54GJKcG4cgyKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/browser-utils": "8.55.1",
+ "@sentry/core": "8.55.1"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry-internal/replay-canvas": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.55.1.tgz",
+ "integrity": "sha512-2sKRu96Qe70y6TiYdYbwkhg4um2prgzH/ZJRItuoSEAjPjoFYYlP+1qjE2CcBw4RPS8/PimV7SFheSaeZs2GCw==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/replay": "8.55.1",
+ "@sentry/core": "8.55.1"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry/babel-plugin-component-annotate": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@sentry/babel-plugin-component-annotate/-/babel-plugin-component-annotate-3.6.1.tgz",
+ "integrity": "sha512-zmvUa4RpzDG3LQJFpGCE8lniz8Rk1Wa6ZvvK+yEH+snZeaHHRbSnAQBMR607GOClP+euGHNO2YtaY4UAdNTYbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@sentry/browser": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.55.1.tgz",
+ "integrity": "sha512-OEn2eg8h3Mr7BmBGQ28BqbWehYA/NklZ0pAZB1FypPPl+kMd85AbaRdGTnaSjgmpc8bKbBO64edq4Y14sbCs5w==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/browser-utils": "8.55.1",
+ "@sentry-internal/feedback": "8.55.1",
+ "@sentry-internal/replay": "8.55.1",
+ "@sentry-internal/replay-canvas": "8.55.1",
+ "@sentry/core": "8.55.1"
+ },
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry/bundler-plugin-core": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@sentry/bundler-plugin-core/-/bundler-plugin-core-3.6.1.tgz",
+ "integrity": "sha512-/ubWjPwgLep84sUPzHfKL2Ns9mK9aQrEX4aBFztru7ygiJidKJTxYGtvjh4dL2M1aZ0WRQYp+7PF6+VKwdZXcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.18.5",
+ "@sentry/babel-plugin-component-annotate": "3.6.1",
+ "@sentry/cli": "^2.49.0",
+ "dotenv": "^16.3.1",
+ "find-up": "^5.0.0",
+ "glob": "^9.3.2",
+ "magic-string": "0.30.8",
+ "unplugin": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@sentry/bundler-plugin-core/node_modules/dotenv": {
+ "version": "16.6.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/@sentry/bundler-plugin-core/node_modules/magic-string": {
+ "version": "0.30.8",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz",
+ "integrity": "sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry/cli": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.58.5.tgz",
+ "integrity": "sha512-tavJ7yGUZV+z3Ct2/ZB6mg339i08sAk6HDkgqmSRuQEu2iLS5sl9HIvuXfM6xjv8fwlgFOSy++WNABNAcGHUbg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "FSL-1.1-MIT",
+ "dependencies": {
+ "https-proxy-agent": "^5.0.0",
+ "node-fetch": "^2.6.7",
+ "progress": "^2.0.3",
+ "proxy-from-env": "^1.1.0",
+ "which": "^2.0.2"
+ },
+ "bin": {
+ "sentry-cli": "bin/sentry-cli"
+ },
+ "engines": {
+ "node": ">= 10"
+ },
+ "optionalDependencies": {
+ "@sentry/cli-darwin": "2.58.5",
+ "@sentry/cli-linux-arm": "2.58.5",
+ "@sentry/cli-linux-arm64": "2.58.5",
+ "@sentry/cli-linux-i686": "2.58.5",
+ "@sentry/cli-linux-x64": "2.58.5",
+ "@sentry/cli-win32-arm64": "2.58.5",
+ "@sentry/cli-win32-i686": "2.58.5",
+ "@sentry/cli-win32-x64": "2.58.5"
+ }
+ },
+ "node_modules/@sentry/cli-darwin": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.58.5.tgz",
+ "integrity": "sha512-lYrNzenZFJftfwSya7gwrHGxtE+Kob/e1sr9lmHMFOd4utDlmq0XFDllmdZAMf21fxcPRI1GL28ejZ3bId01fQ==",
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.58.5.tgz",
+ "integrity": "sha512-KtHweSIomYL4WVDrBrYSYJricKAAzxUgX86kc6OnlikbyOhoK6Fy8Vs6vwd52P6dvWPjgrMpUYjW2M5pYXQDUw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-arm64": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.58.5.tgz",
+ "integrity": "sha512-/4gywFeBqRB6tR/iGMRAJ3HRqY6Z7Yp4l8ZCbl0TDLAfHNxu7schEw4tSnm2/Hh9eNMiOVy4z58uzAWlZXAYBQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-i686": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.58.5.tgz",
+ "integrity": "sha512-G7261dkmyxqlMdyvyP06b+RTIVzp1gZNgglj5UksxSouSUqRd/46W/2pQeOMPhloDYo9yLtCN2YFb3Mw4aUsWw==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-linux-x64": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.58.5.tgz",
+ "integrity": "sha512-rP04494RSmt86xChkQ+ecBNRYSPbyXc4u0IA7R7N1pSLCyO74e5w5Al+LnAq35cMfVbZgz5Sm0iGLjyiUu4I1g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "linux",
+ "freebsd",
+ "android"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-arm64": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-arm64/-/cli-win32-arm64-2.58.5.tgz",
+ "integrity": "sha512-AOJ2nCXlQL1KBaCzv38m3i2VmSHNurUpm7xVKd6yAHX+ZoVBI8VT0EgvwmtJR2TY2N2hNCC7UrgRmdUsQ152bA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-i686": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.58.5.tgz",
+ "integrity": "sha512-EsuboLSOnlrN7MMPJ1eFvfMDm+BnzOaSWl8eYhNo8W/BIrmNgpRUdBwnWn9Q2UOjJj5ZopukmsiMYtU/D7ml9g==",
+ "cpu": [
+ "x86",
+ "ia32"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli-win32-x64": {
+ "version": "2.58.5",
+ "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.58.5.tgz",
+ "integrity": "sha512-IZf+XIMiQwj+5NzqbOQfywlOitmCV424Vtf9c+ep61AaVScUFD1TSrQbOcJJv5xGxhlxNOMNgMeZhdexdzrKZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "FSL-1.1-MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@sentry/cli/node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/@sentry/cli/node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@sentry/cli/node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@sentry/core": {
+ "version": "8.55.1",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.55.1.tgz",
+ "integrity": "sha512-0ea+yDOgaijR3ba2al1QZxY0bZ9MBZq2a0G+2A0uCBpBkiXnpLFGVAo9UAlEikN1C4M8ROZYiuFU7yZCqacgLQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.18"
+ }
+ },
+ "node_modules/@sentry/react": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-10.46.0.tgz",
+ "integrity": "sha512-Rb1S+9OuUPVwsz7GWnQ6Kgf3azbsseUymIegg3JZHNcW/fM1nPpaljzTBnuineia113DH0pgMBcdrrZDLaosFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/browser": "10.46.0",
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "react": "^16.14.0 || 17.x || 18.x || 19.x"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry-internal/browser-utils": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-10.46.0.tgz",
+ "integrity": "sha512-WB1gBT9G13V02ekZ6NpUhoI1aGHV2eNfjEPthkU2bGBvFpQKnstwzjg7waIRGR7cu+YSW2Q6UI6aQLgBeOPD1g==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry-internal/feedback": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-10.46.0.tgz",
+ "integrity": "sha512-c4pI/z9nZCQXe9GYEw/hE/YTY9AxGBp8/wgKI+T8zylrN35SGHaXv63szzE1WbI8lacBY8lBF7rstq9bQVCaHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry-internal/replay": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-10.46.0.tgz",
+ "integrity": "sha512-JBsWeXG6bRbxBFK8GzWymWGOB9QE7Kl57BeF3jzgdHTuHSWZ2mRnAmb1K05T4LU+gVygk6yW0KmdC8Py9Qzg9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/browser-utils": "10.46.0",
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry-internal/replay-canvas": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-10.46.0.tgz",
+ "integrity": "sha512-ub314MWUsekVCuoH0/HJbbimlI24SkV745UW2pj9xRbxOAEf1wjkmIzxKrMDbTgJGuEunug02XZVdJFJUzOcDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/replay": "10.46.0",
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry/browser": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-10.46.0.tgz",
+ "integrity": "sha512-80DmGlTk5Z2/OxVOzLNxwolMyouuAYKqG8KUcoyintZqHbF6kO1RulI610HmyUt3OagKeBCqt9S7w0VIfCRL+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@sentry-internal/browser-utils": "10.46.0",
+ "@sentry-internal/feedback": "10.46.0",
+ "@sentry-internal/replay": "10.46.0",
+ "@sentry-internal/replay-canvas": "10.46.0",
+ "@sentry/core": "10.46.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/react/node_modules/@sentry/core": {
+ "version": "10.46.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-10.46.0.tgz",
+ "integrity": "sha512-N3fj4zqBQOhXliS1Ne9euqIKuciHCGOJfPGQLwBoW9DNz03jF+NB8+dUKtrJ79YLoftjVgf8nbgwtADK7NR+2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@sentry/vite-plugin": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/@sentry/vite-plugin/-/vite-plugin-3.6.1.tgz",
+ "integrity": "sha512-x8WMdv2K2HcGS2ezEUIEZXpT/fNeWQ9rsEeF0K9DfKXK8Z9lzRmCr6TVA6I9+yW39Is+1/0cv1Rsu0LhO7lHzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@sentry/bundler-plugin-core": "3.6.1",
+ "unplugin": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
+ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/spec": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
+ "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
+ "license": "MIT"
+ },
+ "node_modules/@standard-schema/utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
+ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
+ "license": "MIT"
+ },
+ "node_modules/@tailwindcss/node": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.2.tgz",
+ "integrity": "sha512-pXS+wJ2gZpVXqFaUEjojq7jzMpTGf8rU6ipJz5ovJV6PUGmlJ+jvIwGrzdHdQ80Sg+wmQxUFuoW1UAAwHNEdFA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "enhanced-resolve": "^5.19.0",
+ "jiti": "^2.6.1",
+ "lightningcss": "1.32.0",
+ "magic-string": "^0.30.21",
+ "source-map-js": "^1.2.1",
+ "tailwindcss": "4.2.2"
+ }
+ },
+ "node_modules/@tailwindcss/oxide": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.2.2.tgz",
+ "integrity": "sha512-qEUA07+E5kehxYp9BVMpq9E8vnJuBHfJEC0vPC5e7iL/hw7HR61aDKoVoKzrG+QKp56vhNZe4qwkRmMC0zDLvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20"
+ },
+ "optionalDependencies": {
+ "@tailwindcss/oxide-android-arm64": "4.2.2",
+ "@tailwindcss/oxide-darwin-arm64": "4.2.2",
+ "@tailwindcss/oxide-darwin-x64": "4.2.2",
+ "@tailwindcss/oxide-freebsd-x64": "4.2.2",
+ "@tailwindcss/oxide-linux-arm-gnueabihf": "4.2.2",
+ "@tailwindcss/oxide-linux-arm64-gnu": "4.2.2",
+ "@tailwindcss/oxide-linux-arm64-musl": "4.2.2",
+ "@tailwindcss/oxide-linux-x64-gnu": "4.2.2",
+ "@tailwindcss/oxide-linux-x64-musl": "4.2.2",
+ "@tailwindcss/oxide-wasm32-wasi": "4.2.2",
+ "@tailwindcss/oxide-win32-arm64-msvc": "4.2.2",
+ "@tailwindcss/oxide-win32-x64-msvc": "4.2.2"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-android-arm64": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.2.2.tgz",
+ "integrity": "sha512-dXGR1n+P3B6748jZO/SvHZq7qBOqqzQ+yFrXpoOWWALWndF9MoSKAT3Q0fYgAzYzGhxNYOoysRvYlpixRBBoDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-arm64": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.2.2.tgz",
+ "integrity": "sha512-iq9Qjr6knfMpZHj55/37ouZeykwbDqF21gPFtfnhCCKGDcPI/21FKC9XdMO/XyBM7qKORx6UIhGgg6jLl7BZlg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-darwin-x64": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.2.2.tgz",
+ "integrity": "sha512-BlR+2c3nzc8f2G639LpL89YY4bdcIdUmiOOkv2GQv4/4M0vJlpXEa0JXNHhCHU7VWOKWT/CjqHdTP8aUuDJkuw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-freebsd-x64": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.2.2.tgz",
+ "integrity": "sha512-YUqUgrGMSu2CDO82hzlQ5qSb5xmx3RUrke/QgnoEx7KvmRJHQuZHZmZTLSuuHwFf0DJPybFMXMYf+WJdxHy/nQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.2.2.tgz",
+ "integrity": "sha512-FPdhvsW6g06T9BWT0qTwiVZYE2WIFo2dY5aCSpjG/S/u1tby+wXoslXS0kl3/KXnULlLr1E3NPRRw0g7t2kgaQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-gnu": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.2.2.tgz",
+ "integrity": "sha512-4og1V+ftEPXGttOO7eCmW7VICmzzJWgMx+QXAJRAhjrSjumCwWqMfkDrNu1LXEQzNAwz28NCUpucgQPrR4S2yw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-arm64-musl": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.2.2.tgz",
+ "integrity": "sha512-oCfG/mS+/+XRlwNjnsNLVwnMWYH7tn/kYPsNPh+JSOMlnt93mYNCKHYzylRhI51X+TbR+ufNhhKKzm6QkqX8ag==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-gnu": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.2.2.tgz",
+ "integrity": "sha512-rTAGAkDgqbXHNp/xW0iugLVmX62wOp2PoE39BTCGKjv3Iocf6AFbRP/wZT/kuCxC9QBh9Pu8XPkv/zCZB2mcMg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-linux-x64-musl": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.2.2.tgz",
+ "integrity": "sha512-XW3t3qwbIwiSyRCggeO2zxe3KWaEbM0/kW9e8+0XpBgyKU4ATYzcVSMKteZJ1iukJ3HgHBjbg9P5YPRCVUxlnQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-wasm32-wasi": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.2.2.tgz",
+ "integrity": "sha512-eKSztKsmEsn1O5lJ4ZAfyn41NfG7vzCg496YiGtMDV86jz1q/irhms5O0VrY6ZwTUkFy/EKG3RfWgxSI3VbZ8Q==",
+ "bundleDependencies": [
+ "@napi-rs/wasm-runtime",
+ "@emnapi/core",
+ "@emnapi/runtime",
+ "@tybys/wasm-util",
+ "@emnapi/wasi-threads",
+ "tslib"
+ ],
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/core": "^1.8.1",
+ "@emnapi/runtime": "^1.8.1",
+ "@emnapi/wasi-threads": "^1.1.0",
+ "@napi-rs/wasm-runtime": "^1.1.1",
+ "@tybys/wasm-util": "^0.10.1",
+ "tslib": "^2.8.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-arm64-msvc": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.2.2.tgz",
+ "integrity": "sha512-qPmaQM4iKu5mxpsrWZMOZRgZv1tOZpUm+zdhhQP0VhJfyGGO3aUKdbh3gDZc/dPLQwW4eSqWGrrcWNBZWUWaXQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/oxide-win32-x64-msvc": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.2.2.tgz",
+ "integrity": "sha512-1T/37VvI7WyH66b+vqHj/cLwnCxt7Qt3WFu5Q8hk65aOvlwAhs7rAp1VkulBJw/N4tMirXjVnylTR72uI0HGcA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 20"
+ }
+ },
+ "node_modules/@tailwindcss/postcss": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.2.2.tgz",
+ "integrity": "sha512-n4goKQbW8RVXIbNKRB/45LzyUqN451deQK0nzIeauVEqjlI49slUlgKYJM2QyUzap/PcpnS7kzSUmPb1sCRvYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "@tailwindcss/node": "4.2.2",
+ "@tailwindcss/oxide": "4.2.2",
+ "postcss": "^8.5.6",
+ "tailwindcss": "4.2.2"
+ }
+ },
+ "node_modules/@tailwindcss/vite": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.2.2.tgz",
+ "integrity": "sha512-mEiF5HO1QqCLXoNEfXVA1Tzo+cYsrqV7w9Juj2wdUFyW07JRenqMG225MvPwr3ZD9N1bFQj46X7r33iHxLUW0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@tailwindcss/node": "4.2.2",
+ "@tailwindcss/oxide": "4.2.2",
+ "tailwindcss": "4.2.2"
+ },
+ "peerDependencies": {
+ "vite": "^5.2.0 || ^6 || ^7 || ^8"
+ }
+ },
+ "node_modules/@tanstack/query-core": {
+ "version": "5.95.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.95.2.tgz",
+ "integrity": "sha512-o4T8vZHZET4Bib3jZ/tCW9/7080urD4c+0/AUaYVpIqOsr7y0reBc1oX3ttNaSW5mYyvZHctiQ/UOP2PfdmFEQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/react-query": {
+ "version": "5.95.2",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.95.2.tgz",
+ "integrity": "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/query-core": "5.95.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19"
+ }
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.6",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz",
+ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cookie-parser": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/@types/cookie-parser/-/cookie-parser-1.4.10.tgz",
+ "integrity": "sha512-B4xqkqfZ8Wek+rCOeRxsjMS9OgvzebEzzLYw7NHYuvzb7IdxOkI0ZHGgeEBX4PUM7QGVvNSK60T3OvWj3YfBRg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/cors": {
+ "version": "2.8.19",
+ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.19.tgz",
+ "integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.13",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz",
+ "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/events-alias": {
+ "name": "@types/events",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.3.tgz",
+ "integrity": "sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.25",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz",
+ "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "^1"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.19.8",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz",
+ "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz",
+ "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/ms": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
+ "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.19.15",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.15.tgz",
+ "integrity": "sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/qs": {
+ "version": "6.15.0",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz",
+ "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "19.2.14",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz",
+ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.2.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.2.3",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
+ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.2.0"
+ }
+ },
+ "node_modules/@types/send": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.10",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz",
+ "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "<1"
+ }
+ },
+ "node_modules/@types/serve-static/node_modules/@types/send": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz",
+ "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@ungap/create-content": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/create-content/-/create-content-0.2.0.tgz",
+ "integrity": "sha512-CvmX0Mr5PfFARDBbSef0B+SAqSeMKaHOG/twJi9nbPtp/MiNPgyBLqZndiyO3RXQ0RXy6TqwarvB6KWzTmc4MQ==",
+ "license": "ISC"
+ },
+ "node_modules/@ungap/event": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@ungap/event/-/event-0.2.2.tgz",
+ "integrity": "sha512-31PwUE7asaFeXdRatnlsNYyfmO8xSEhsRAP+v7lm77hnn/oOjlpt7pJgc7C76LGlZjiEH9nGSx9vTc/5MZ6W7A==",
+ "license": "ISC"
+ },
+ "node_modules/@ungap/import-node": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/import-node/-/import-node-0.2.0.tgz",
+ "integrity": "sha512-VuWVBAMRjoOc63n8Cc19brS7KlhYJ+57790LF+lVw60nMRemCrz1T6HnoNx74IEW3FS+TM+vveJ70C6NyTKODQ==",
+ "license": "ISC"
+ },
+ "node_modules/@ungap/trim": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/trim/-/trim-0.2.0.tgz",
+ "integrity": "sha512-CfsUxeZ2R/O3EGCOe+IkAU32yHOdO+mCRmtavSIQ4HZN3Jiq/ynGzq8/asyamd28U26UJmpSV/TC7+p7qELKrg==",
+ "license": "ISC"
+ },
+ "node_modules/@ungap/weakmap": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@ungap/weakmap/-/weakmap-0.2.1.tgz",
+ "integrity": "sha512-GmVAWB+JuFKqSbzlofYK4qxk955gEv4Kd9/aj2hLOxneXMAm/J7OXcl5DlElS9tmkqwCcxGysSZGOrjzNvmjFQ==",
+ "license": "ISC"
+ },
+ "node_modules/@ungap/weakset": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@ungap/weakset/-/weakset-0.2.1.tgz",
+ "integrity": "sha512-0tu3cD+yO4d5lGMC1DTAhIi29RZnP+tSfWc+T6WMvrMeNExO76iZ5eCciuiyUUIyBxqGDF4iNaeIXpYyJP+vcA==",
+ "license": "ISC"
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.2.0.tgz",
+ "integrity": "sha512-YmKkfhOAi3wsB1PhJq5Scj3GXMn3WvtQ/JC0xoopuHoXSdmtdStOpFrYaT1kie2YgFBcIe64ROzMYRjCrYOdYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.29.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.27.1",
+ "@babel/plugin-transform-react-jsx-source": "^7.27.1",
+ "@rolldown/pluginutils": "1.0.0-rc.3",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.18.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@whereby.com/browser-sdk": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/@whereby.com/browser-sdk/-/browser-sdk-3.19.3.tgz",
+ "integrity": "sha512-lWQqisLQRnRTEjJ3lhuTXA8WIm3qFCNZt2yFvKSQly8xrw9sEMsrzC9I8qeV7QX732MgENhytmom6s0GuqUKNA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-popover": "^1.0.7",
+ "@whereby.com/core": "1.9.3",
+ "@whereby.com/media": "7.0.0",
+ "clsx": "^2.1.1",
+ "heresy": "^1.0.4",
+ "runes": "^0.4.3"
+ },
+ "peerDependencies": {
+ "react": ">=18.2.0",
+ "react-dom": ">=18.2.0"
+ }
+ },
+ "node_modules/@whereby.com/core": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@whereby.com/core/-/core-1.9.3.tgz",
+ "integrity": "sha512-RRUhwcIncfe4Mn8vAfKta66nxW50GEQM/YZ+54erjtqG9XFLxVCNUozbSC6QNZnR9biKsA3aOXep3TXc9MjrJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@reduxjs/toolkit": "^2.2.3",
+ "@whereby.com/media": "7.0.0",
+ "axios": "^1.11.0",
+ "btoa": "^1.2.1",
+ "events": "^3.3.0"
+ },
+ "peerDependencies": {
+ "@whereby.com/camera-effects": "*"
+ },
+ "peerDependenciesMeta": {
+ "@whereby.com/camera-effects": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@whereby.com/media": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/@whereby.com/media/-/media-7.0.0.tgz",
+ "integrity": "sha512-8tUrMAbYqpTNO7i3iSrbh13ZDXEvoycbuTf6W9Gnktj43cKnr9zujH5EeUw8YLYv7QOn/2xD4p/MUeFDYJWzsg==",
+ "license": "MIT",
+ "dependencies": {
+ "check-ip": "^1.1.1",
+ "events": "^3.3.0",
+ "ip-address": "^9.0.5",
+ "mediasoup-client": "3.15.7",
+ "rtcstats": "github:whereby/rtcstats#5.4.1",
+ "sdp": "^3.2.0",
+ "sdp-transform": "^2.14.2",
+ "socket.io-client": "4.7.2",
+ "uuid": "^9.0.1",
+ "uuid-validate": "^0.0.3",
+ "webrtc-adapter": "9.0.4"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/aria-hidden": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "license": "MIT"
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "license": "MIT"
+ },
+ "node_modules/augmentor": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/augmentor/-/augmentor-2.2.0.tgz",
+ "integrity": "sha512-BEQAG1w74b794ec4FpWpu9AZZUZngKy5zGgb8OIhU2hcVhm8F5Y/VS0/3EAA+ExgtJDCTR+L2rvnjtIt2oo1xQ==",
+ "license": "ISC",
+ "dependencies": {
+ "reraf": "^1.1.1",
+ "umap": "^1.0.2"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.27",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz",
+ "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.1",
+ "caniuse-lite": "^1.0.30001774",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/awaitqueue": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-3.3.0.tgz",
+ "integrity": "sha512-zLxDhzQbzHmOyvxi7g3OlfR7jLrcmElStPxfLPpJkrFSDm71RSrY/MvsDA8Btlx8X1nOHUzGhQvc6bdUjL2f2w==",
+ "license": "ISC",
+ "dependencies": {
+ "debug": "^4.4.3"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mediasoup"
+ }
+ },
+ "node_modules/axios": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.14.0.tgz",
+ "integrity": "sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "follow-redirects": "^1.15.11",
+ "form-data": "^4.0.5",
+ "proxy-from-env": "^2.1.0"
+ }
+ },
+ "node_modules/axios/node_modules/proxy-from-env": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
+ "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.10.11",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.11.tgz",
+ "integrity": "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg==",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.4",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz",
+ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "~3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "~1.2.0",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "on-finished": "~2.4.1",
+ "qs": "~6.14.0",
+ "raw-body": "~2.5.3",
+ "type-is": "~1.6.18",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/bowser": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.14.1.tgz",
+ "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
+ "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browser-dtector": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/browser-dtector/-/browser-dtector-4.1.1.tgz",
+ "integrity": "sha512-taJAx2vDx7yE17sceWLQ42kqQxp/8LlfL8EGg9xf4KGL1HSQtvJ4kVXmlduL88DaKQ0M+NysvvYp3Z8BqdBhBQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.28.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz",
+ "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.9.0",
+ "caniuse-lite": "^1.0.30001759",
+ "electron-to-chromium": "^1.5.263",
+ "node-releases": "^2.0.27",
+ "update-browserslist-db": "^1.2.0"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
+ "license": "(MIT OR Apache-2.0)",
+ "bin": {
+ "btoa": "bin/btoa.js"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001781",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001781.tgz",
+ "integrity": "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/check-ip": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/check-ip/-/check-ip-1.1.1.tgz",
+ "integrity": "sha512-LuLBA6r4aS/4B7pvOqmT4Bi+GKnNNC/V18K0zDTRFjAxNeUzGsr0wmsOfFhFH7fGjwdx6GX6wyIQBkUhFox2Pw==",
+ "license": "MIT",
+ "dependencies": {
+ "ip-range-check": "^0.0.2"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/concurrently": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.1.tgz",
+ "integrity": "sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "4.1.2",
+ "rxjs": "7.8.2",
+ "shell-quote": "1.8.3",
+ "supports-color": "8.1.1",
+ "tree-kill": "1.2.2",
+ "yargs": "17.7.2"
+ },
+ "bin": {
+ "conc": "dist/bin/concurrently.js",
+ "concurrently": "dist/bin/concurrently.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/open-cli-tools/concurrently?sponsor=1"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "license": "MIT"
+ },
+ "node_modules/cookie": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-parser": {
+ "version": "1.4.7",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.7.tgz",
+ "integrity": "sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie": "0.7.2",
+ "cookie-signature": "1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/cookie-parser/node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "license": "MIT"
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz",
+ "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
+ "license": "MIT"
+ },
+ "node_modules/cors": {
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
+ "license": "MIT"
+ },
+ "node_modules/domconstants": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/domconstants/-/domconstants-0.1.2.tgz",
+ "integrity": "sha512-sPOoOckTxtwy5t8PFf6zl11gOEhOpl1k0ZCc/NfCNmHoMw8n9HnCQCzxWKX9gdBp+qM+2DTFkst++Yw6C41izQ==",
+ "license": "ISC"
+ },
+ "node_modules/domsanitizer": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/domsanitizer/-/domsanitizer-0.2.3.tgz",
+ "integrity": "sha512-qglHc+5k5C2+WSEzck0WGbpa2exCKZuZKb0n4RU2Wuy7BPkpmf67mHD1BJWGxs0iJYl709f2YVeJMh06c1ILlA==",
+ "license": "ISC",
+ "dependencies": {
+ "domconstants": "^0.1.2"
+ }
+ },
+ "node_modules/domtagger": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/domtagger/-/domtagger-0.7.2.tgz",
+ "integrity": "sha512-h7g5eduvnLwowJJPkcB5lNzo8vd/Hx4e3I4IOtLpX0qB2wBiuryGLNa61MeFre4b6gMaQIhegMIZ2I8rQCAJwQ==",
+ "license": "ISC",
+ "dependencies": {
+ "@ungap/create-content": "^0.2.0",
+ "@ungap/import-node": "^0.2.0",
+ "@ungap/trim": "^0.2.0",
+ "@ungap/weakmap": "^0.2.1",
+ "domconstants": "^0.1.2",
+ "domsanitizer": "^0.2.2",
+ "umap": "^1.0.2"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "17.3.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.3.1.tgz",
+ "integrity": "sha512-IO8C/dzEb6O3F9/twg6ZLXz164a2fhTnEWb95H23Dm4OuN+92NmEAlTrupP9VW6Jm3sO26tQlqyvyi4CsnY9GA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.328",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.328.tgz",
+ "integrity": "sha512-QNQ5l45DzYytThO21403XN3FvK0hOkWDG8viNf6jqS42msJ8I4tGDSpBCgvDRRPnkffafiwAym2X2eHeGD2V0w==",
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/engine.io-client": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz",
+ "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.1",
+ "engine.io-parser": "~5.2.1",
+ "ws": "~8.17.1",
+ "xmlhttprequest-ssl": "~2.0.0"
+ }
+ },
+ "node_modules/engine.io-client/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io-client/node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/engine.io-parser": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
+ "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz",
+ "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.27.4",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.4.tgz",
+ "integrity": "sha512-Rq4vbHnYkK5fws5NF7MYTU68FPRE1ajX7heQ/8QXXWqNgqqJ/GkmmyxIzUnf2Sr/bakf8l54716CcMGHYhMrrQ==",
+ "devOptional": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.27.4",
+ "@esbuild/android-arm": "0.27.4",
+ "@esbuild/android-arm64": "0.27.4",
+ "@esbuild/android-x64": "0.27.4",
+ "@esbuild/darwin-arm64": "0.27.4",
+ "@esbuild/darwin-x64": "0.27.4",
+ "@esbuild/freebsd-arm64": "0.27.4",
+ "@esbuild/freebsd-x64": "0.27.4",
+ "@esbuild/linux-arm": "0.27.4",
+ "@esbuild/linux-arm64": "0.27.4",
+ "@esbuild/linux-ia32": "0.27.4",
+ "@esbuild/linux-loong64": "0.27.4",
+ "@esbuild/linux-mips64el": "0.27.4",
+ "@esbuild/linux-ppc64": "0.27.4",
+ "@esbuild/linux-riscv64": "0.27.4",
+ "@esbuild/linux-s390x": "0.27.4",
+ "@esbuild/linux-x64": "0.27.4",
+ "@esbuild/netbsd-arm64": "0.27.4",
+ "@esbuild/netbsd-x64": "0.27.4",
+ "@esbuild/openbsd-arm64": "0.27.4",
+ "@esbuild/openbsd-x64": "0.27.4",
+ "@esbuild/openharmony-arm64": "0.27.4",
+ "@esbuild/sunos-x64": "0.27.4",
+ "@esbuild/win32-arm64": "0.27.4",
+ "@esbuild/win32-ia32": "0.27.4",
+ "@esbuild/win32-x64": "0.27.4"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/events-alias": {
+ "name": "events",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.22.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz",
+ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "~1.20.3",
+ "content-disposition": "~0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "~0.7.1",
+ "cookie-signature": "~1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.3.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.0",
+ "merge-descriptors": "1.0.3",
+ "methods": "~1.1.2",
+ "on-finished": "~2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "~0.1.12",
+ "proxy-addr": "~2.0.7",
+ "qs": "~6.14.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "~0.19.0",
+ "serve-static": "~1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "~2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/fake-mediastreamtrack": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/fake-mediastreamtrack/-/fake-mediastreamtrack-2.2.1.tgz",
+ "integrity": "sha512-SITLc7UTDirSdgLGORrlmqjWLJtbtfIz/xO7DwVbJH3f0ds+NQok4ccl/WEzz49NSgiUlXf2wDW0+y5C+TO6EA==",
+ "license": "ISC",
+ "dependencies": {
+ "@lukeed/uuid": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz",
+ "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "~2.0.2",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz",
+ "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "es-set-tostringtag": "^2.1.0",
+ "hasown": "^2.0.2",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/framer-motion": {
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.38.0.tgz",
+ "integrity": "sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^12.38.0",
+ "motion-utils": "^12.36.0",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/get-tsconfig": {
+ "version": "4.13.7",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.7.tgz",
+ "integrity": "sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
+ "node_modules/glob": {
+ "version": "9.3.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz",
+ "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "minimatch": "^8.0.2",
+ "minipass": "^4.2.4",
+ "path-scurry": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/h264-profile-level-id": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-2.3.2.tgz",
+ "integrity": "sha512-hnq1UDlw7WGJV6GCr/g7wnkHYUjdAY2bis9rgn2JqSdQS2WfVvnt1ZE9g8nTguracodf5LLKZOwURsDN49YtBQ==",
+ "license": "ISC",
+ "dependencies": {
+ "debug": "^4.4.3"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mediasoup"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/heresy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/heresy/-/heresy-1.0.4.tgz",
+ "integrity": "sha512-2oLrI6lv2RXEXZPsNOTPffFdGPjpwCHrt1BZYLOBnEc7pv8fUJWdeVbLVcq9oLBpOYSy3dbP71jTRRCN5fGcuA==",
+ "license": "ISC",
+ "dependencies": {
+ "@ungap/event": "^0.2.2",
+ "@ungap/weakmap": "^0.2.1",
+ "@ungap/weakset": "^0.2.1",
+ "augmentor": "^2.2.0",
+ "lighterhtml": "^4.1.2",
+ "uhyphen": "^0.1.0"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/hyperhtml-style": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/hyperhtml-style/-/hyperhtml-style-0.1.3.tgz",
+ "integrity": "sha512-IvLy8MzHTSJ0fDpSzrb8rcdnla6yROEmNBSxInEMyIFu2DQkbmpadTf6B4fHvnytN6iHL2gGwpe5/jHL3wMi+A==",
+ "license": "ISC"
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/immer": {
+ "version": "11.1.4",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz",
+ "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/ip-address": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz",
+ "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==",
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/ip-range-check": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/ip-range-check/-/ip-range-check-0.0.2.tgz",
+ "integrity": "sha512-sHbyog8viObPK2vZFNYpBM/d2mqs51uuxOhB+0EIMSWmmrflAWne7CeXOWunb5R6bWQVOijbLx7bEY0sE05bug==",
+ "license": "MIT",
+ "dependencies": {
+ "ipaddr.js": "^1.0.1"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/jiti": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
+ "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/jsbn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lighterhtml": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lighterhtml/-/lighterhtml-4.2.0.tgz",
+ "integrity": "sha512-HAb+Ri17iT+vYmFtarlt45O63BltoJY/ltDZGhnf2A1s4kno2j6su5KiZAgYD4/5AjODYQqflSy9KJZFwL5VwQ==",
+ "license": "ISC",
+ "dependencies": {
+ "@ungap/create-content": "^0.2.0",
+ "@ungap/weakmap": "^0.2.1",
+ "domsanitizer": "^0.2.3",
+ "domtagger": "^0.7.1",
+ "hyperhtml-style": "^0.1.2",
+ "udomdiff": "^1.1.0",
+ "uhandlers": "^0.4.2",
+ "umap": "^1.0.2",
+ "uwire": "^1.1.0"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz",
+ "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.32.0",
+ "lightningcss-darwin-arm64": "1.32.0",
+ "lightningcss-darwin-x64": "1.32.0",
+ "lightningcss-freebsd-x64": "1.32.0",
+ "lightningcss-linux-arm-gnueabihf": "1.32.0",
+ "lightningcss-linux-arm64-gnu": "1.32.0",
+ "lightningcss-linux-arm64-musl": "1.32.0",
+ "lightningcss-linux-x64-gnu": "1.32.0",
+ "lightningcss-linux-x64-musl": "1.32.0",
+ "lightningcss-win32-arm64-msvc": "1.32.0",
+ "lightningcss-win32-x64-msvc": "1.32.0"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz",
+ "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz",
+ "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz",
+ "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz",
+ "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz",
+ "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz",
+ "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz",
+ "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz",
+ "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz",
+ "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz",
+ "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.32.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz",
+ "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/lucide-react": {
+ "version": "0.546.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.546.0.tgz",
+ "integrity": "sha512-Z94u6fKT43lKeYHiVyvyR8fT7pwCzDu7RyMPpTvh054+xahSgj4HFQ+NmflvzdXsoAjYGdCguGaFKYuvq0ThCQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mediasoup-client": {
+ "version": "3.15.7",
+ "resolved": "https://registry.npmjs.org/mediasoup-client/-/mediasoup-client-3.15.7.tgz",
+ "integrity": "sha512-nQQQKH5HaLH+8JC+bm89ry+fg0vVV0rHHqR34Ch1zzrmmBkonifePbI0bBHNAw/rDJP/I07yA84lu9Egn26lCw==",
+ "license": "ISC",
+ "dependencies": {
+ "@types/debug": "^4.1.12",
+ "@types/events-alias": "npm:@types/events@^3.0.3",
+ "awaitqueue": "^3.2.4",
+ "browser-dtector": "^4.1.0",
+ "debug": "^4.4.3",
+ "events-alias": "npm:events@^3.3.0",
+ "fake-mediastreamtrack": "^2.1.4",
+ "h264-profile-level-id": "^2.2.3",
+ "sdp-transform": "^2.15.0",
+ "supports-color": "^10.2.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mediasoup"
+ }
+ },
+ "node_modules/mediasoup-client/node_modules/supports-color": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
+ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.7.tgz",
+ "integrity": "sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz",
+ "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/motion": {
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/motion/-/motion-12.38.0.tgz",
+ "integrity": "sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==",
+ "license": "MIT",
+ "dependencies": {
+ "framer-motion": "^12.38.0",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/motion-dom": {
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
+ "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^12.36.0"
+ }
+ },
+ "node_modules/motion-utils": {
+ "version": "12.36.0",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
+ "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
+ "license": "MIT"
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.36",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.36.tgz",
+ "integrity": "sha512-TdC8FSgHz8Mwtw9g5L4gR/Sh9XhSP/0DEkQxfEFXOpiul5IiHgHan2VhYYb6agDSfp4KuvltmGApc8HMgUrIkA==",
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/openapi-fetch": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.17.0.tgz",
+ "integrity": "sha512-PsbZR1wAPcG91eEthKhN+Zn92FMHxv+/faECIwjXdxfTODGSGegYv0sc1Olz+HYPvKOuoXfp+0pA2XVt2cI0Ig==",
+ "license": "MIT",
+ "dependencies": {
+ "openapi-typescript-helpers": "^0.1.0"
+ }
+ },
+ "node_modules/openapi-react-query": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/openapi-react-query/-/openapi-react-query-0.5.4.tgz",
+ "integrity": "sha512-V9lRiozjHot19/BYSgXYoyznDxDJQhEBSdi26+SJ0UqjMANLQhkni4XG+Z7e3Ag7X46ZLMrL9VxYkghU3QvbWg==",
+ "license": "MIT",
+ "dependencies": {
+ "openapi-typescript-helpers": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@tanstack/react-query": "^5.80.0",
+ "openapi-fetch": "^0.17.0"
+ }
+ },
+ "node_modules/openapi-typescript-helpers": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.1.0.tgz",
+ "integrity": "sha512-OKTGPthhivLw/fHz6c3OPtg72vi86qaMlqbJuVJ23qOvQ+53uw1n7HdmkJFibloF7QEjDrDkzJiOJuockM/ljw==",
+ "license": "MIT"
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/path-scurry/node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
+ "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.8",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz",
+ "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/qs": {
+ "version": "6.14.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz",
+ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz",
+ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "~3.1.2",
+ "http-errors": "~2.0.1",
+ "iconv-lite": "~0.4.24",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/react": {
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
+ "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.2.4",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz",
+ "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==",
+ "license": "MIT",
+ "dependencies": {
+ "scheduler": "^0.27.0"
+ },
+ "peerDependencies": {
+ "react": "^19.2.4"
+ }
+ },
+ "node_modules/react-hook-form": {
+ "version": "7.72.0",
+ "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.72.0.tgz",
+ "integrity": "sha512-V4v6jubaf6JAurEaVnT9aUPKFbNtDgohj5CIgVGyPHvT9wRx5OZHVjz31GsxnPNI278XMu+ruFz+wGOscHaLKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/react-hook-form"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17 || ^18 || ^19"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.18.0.tgz",
+ "integrity": "sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-remove-scroll": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz",
+ "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "react-remove-scroll-bar": "^2.3.7",
+ "react-style-singleton": "^2.2.3",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.3",
+ "use-sidecar": "^1.1.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-remove-scroll-bar": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz",
+ "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==",
+ "license": "MIT",
+ "dependencies": {
+ "react-style-singleton": "^2.2.2",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-router": {
+ "version": "7.13.2",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.13.2.tgz",
+ "integrity": "sha512-tX1Aee+ArlKQP+NIUd7SE6Li+CiGKwQtbS+FfRxPX6Pe4vHOo6nr9d++u5cwg+Z8K/x8tP+7qLmujDtfrAoUJA==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie": "^1.0.1",
+ "set-cookie-parser": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=18",
+ "react-dom": ">=18"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "7.13.2",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.13.2.tgz",
+ "integrity": "sha512-aR7SUORwTqAW0JDeiWF07e9SBE9qGpByR9I8kJT5h/FrBKxPMS6TiC7rmVO+gC0q52Bx7JnjWe8Z1sR9faN4YA==",
+ "license": "MIT",
+ "dependencies": {
+ "react-router": "7.13.2"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=18",
+ "react-dom": ">=18"
+ }
+ },
+ "node_modules/react-router/node_modules/cookie": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
+ "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/react-style-singleton": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz",
+ "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "get-nonce": "^1.0.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/redux": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz",
+ "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==",
+ "license": "MIT"
+ },
+ "node_modules/redux-thunk": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz",
+ "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "redux": "^5.0.0"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/reraf": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/reraf/-/reraf-1.1.1.tgz",
+ "integrity": "sha512-uwOsqdTxJAQCxqvJF4Kiz4orwO9B8OBJkGeW7/NWNirapPutgig/3xU3emruvfwUbb+t51V0zHtNw6d83RDlJQ==",
+ "license": "ISC"
+ },
+ "node_modules/reselect": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz",
+ "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==",
+ "license": "MIT"
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "devOptional": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.60.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz",
+ "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.60.0",
+ "@rollup/rollup-android-arm64": "4.60.0",
+ "@rollup/rollup-darwin-arm64": "4.60.0",
+ "@rollup/rollup-darwin-x64": "4.60.0",
+ "@rollup/rollup-freebsd-arm64": "4.60.0",
+ "@rollup/rollup-freebsd-x64": "4.60.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.60.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.60.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.60.0",
+ "@rollup/rollup-linux-arm64-musl": "4.60.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.60.0",
+ "@rollup/rollup-linux-loong64-musl": "4.60.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.60.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.60.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.60.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.60.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.60.0",
+ "@rollup/rollup-linux-x64-gnu": "4.60.0",
+ "@rollup/rollup-linux-x64-musl": "4.60.0",
+ "@rollup/rollup-openbsd-x64": "4.60.0",
+ "@rollup/rollup-openharmony-arm64": "4.60.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.60.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.60.0",
+ "@rollup/rollup-win32-x64-gnu": "4.60.0",
+ "@rollup/rollup-win32-x64-msvc": "4.60.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rtcstats": {
+ "version": "5.4.1",
+ "resolved": "git+ssh://git@github.com/whereby/rtcstats.git#63bcb6420d76d34161b39e494524ae73aa6dd70d",
+ "license": "MIT"
+ },
+ "node_modules/runes": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/runes/-/runes-0.4.3.tgz",
+ "integrity": "sha512-K6p9y4ZyL9wPzA+PMDloNQPfoDGTiFYDvdlXznyGKgD10BJpcAosvATKrExRKOrNLgD8E7Um7WGW0lxsnOuNLg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/scheduler": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz",
+ "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==",
+ "license": "MIT"
+ },
+ "node_modules/sdp": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.1.tgz",
+ "integrity": "sha512-lwsAIzOPlH8/7IIjjz3K0zYBk7aBVVcvjMwt3M4fLxpjMYyy7i3I97SLHebgn4YBjirkzfp3RvRDWSKsh/+WFw==",
+ "license": "MIT"
+ },
+ "node_modules/sdp-transform": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.15.0.tgz",
+ "integrity": "sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==",
+ "license": "MIT",
+ "bin": {
+ "sdp-verify": "checker.js"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz",
+ "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "~0.5.2",
+ "http-errors": "~2.0.1",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "~2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "~2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.3",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz",
+ "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "~0.19.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-cookie-parser": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz",
+ "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==",
+ "license": "MIT"
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz",
+ "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/socket.io-client": {
+ "version": "4.7.2",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz",
+ "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==",
+ "license": "MIT",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.3.2",
+ "engine.io-client": "~6.5.2",
+ "socket.io-parser": "~4.2.4"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/socket.io-client/node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/socket.io-parser": {
+ "version": "4.2.6",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.6.tgz",
+ "integrity": "sha512-asJqbVBDsBCJx0pTqw3WfesSY0iRX+2xzWEWzrpcH7L6fLzrhyF8WPI8UaeM4YCuDfpwA/cgsdugMsmtz8EJeg==",
+ "license": "MIT",
+ "dependencies": {
+ "@socket.io/component-emitter": "~3.1.0",
+ "debug": "~4.4.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.2.tgz",
+ "integrity": "sha512-KWBIxs1Xb6NoLdMVqhbhgwZf2PGBpPEiwOqgI4pFIYbNTfBXiKYyWoTsXgBQ9WFg/OlhnvHaY+AEpW7wSmFo2Q==",
+ "license": "MIT"
+ },
+ "node_modules/tapable": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz",
+ "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.15",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
+ "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==",
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "license": "MIT",
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/tsx": {
+ "version": "4.21.0",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz",
+ "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "~0.27.0",
+ "get-tsconfig": "^4.7.5"
+ },
+ "bin": {
+ "tsx": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/uarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/uarray/-/uarray-1.0.0.tgz",
+ "integrity": "sha512-LHmiAd5QuAv7pU2vbh+Zq9YOnqVK0H764p2Ozinpfy9ka58OID4IsGLiXsitqH7n0NAIDxvax1A/kDXpii/Ckg==",
+ "license": "ISC"
+ },
+ "node_modules/udomdiff": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/udomdiff/-/udomdiff-1.1.2.tgz",
+ "integrity": "sha512-v+Z8Jal+GtmKGtJ34GIQlCJAxrDt9kbjpNsNvYoAXFyr4gNfWlD4uJJuoNNu/0UTVaKvQwHaSU095YDl71lKPw==",
+ "license": "ISC"
+ },
+ "node_modules/uhandlers": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/uhandlers/-/uhandlers-0.4.2.tgz",
+ "integrity": "sha512-4M3yo0saEReMHiUz3yTDX/e9Z1Z+X8fVvDEywdjvWHPKqzpI6xEPJ21llrBf6Tvf7E5xaPCf9l5JXaYZRU7QRA==",
+ "license": "ISC",
+ "dependencies": {
+ "uarray": "^1.0.0"
+ }
+ },
+ "node_modules/uhyphen": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/uhyphen/-/uhyphen-0.1.0.tgz",
+ "integrity": "sha512-o0QVGuFg24FK765Qdd5kk0zU/U4dEsCtN/GSiwNI9i8xsSVtjIAOdTaVhLwZ1nrbWxFVMxNDDl+9fednsOMsBw==",
+ "license": "ISC"
+ },
+ "node_modules/umap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/umap/-/umap-1.0.2.tgz",
+ "integrity": "sha512-bW127HgG4H4VAD6qlqO5vCC+7bnlYvZ6A6BdwyGblkWvlEG7VYpj1bcpf3iJpvyKmkPZWDIeZDmoULz67ec7NA==",
+ "license": "ISC"
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.0.1.tgz",
+ "integrity": "sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.8.1",
+ "chokidar": "^3.5.3",
+ "webpack-sources": "^3.2.3",
+ "webpack-virtual-modules": "^0.5.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz",
+ "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/use-callback-ref": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz",
+ "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sidecar": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz",
+ "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/uuid-validate": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uuid-validate/-/uuid-validate-0.0.3.tgz",
+ "integrity": "sha512-Fykw5U4eZESbq739BeLvEBFRuJODfrlmjx5eJux7W817LjRaq4b7/i4t2zxQmhcX+fAj4nMfRdTzO4tmwLKn0w==",
+ "license": "MIT"
+ },
+ "node_modules/uwire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/uwire/-/uwire-1.1.0.tgz",
+ "integrity": "sha512-XJPmJnySabt8D0/wnfFFywgUOBnXszDEW32nEVIfOx1n6gLTZSp+X+70+blSnHKNiIUVSFPmmRuxOal0I/aB5g==",
+ "license": "ISC",
+ "dependencies": {
+ "uarray": "^1.0.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz",
+ "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==",
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "fdir": "^6.4.4",
+ "picomatch": "^4.0.2",
+ "postcss": "^8.5.3",
+ "rollup": "^4.34.9",
+ "tinyglobby": "^0.2.13"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz",
+ "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz",
+ "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz",
+ "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz",
+ "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz",
+ "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz",
+ "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz",
+ "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz",
+ "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz",
+ "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz",
+ "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz",
+ "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz",
+ "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz",
+ "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz",
+ "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz",
+ "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz",
+ "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz",
+ "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz",
+ "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz",
+ "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz",
+ "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz",
+ "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz",
+ "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-x64": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz",
+ "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/vite/node_modules/esbuild": {
+ "version": "0.25.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz",
+ "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.12",
+ "@esbuild/android-arm": "0.25.12",
+ "@esbuild/android-arm64": "0.25.12",
+ "@esbuild/android-x64": "0.25.12",
+ "@esbuild/darwin-arm64": "0.25.12",
+ "@esbuild/darwin-x64": "0.25.12",
+ "@esbuild/freebsd-arm64": "0.25.12",
+ "@esbuild/freebsd-x64": "0.25.12",
+ "@esbuild/linux-arm": "0.25.12",
+ "@esbuild/linux-arm64": "0.25.12",
+ "@esbuild/linux-ia32": "0.25.12",
+ "@esbuild/linux-loong64": "0.25.12",
+ "@esbuild/linux-mips64el": "0.25.12",
+ "@esbuild/linux-ppc64": "0.25.12",
+ "@esbuild/linux-riscv64": "0.25.12",
+ "@esbuild/linux-s390x": "0.25.12",
+ "@esbuild/linux-x64": "0.25.12",
+ "@esbuild/netbsd-arm64": "0.25.12",
+ "@esbuild/netbsd-x64": "0.25.12",
+ "@esbuild/openbsd-arm64": "0.25.12",
+ "@esbuild/openbsd-x64": "0.25.12",
+ "@esbuild/openharmony-arm64": "0.25.12",
+ "@esbuild/sunos-x64": "0.25.12",
+ "@esbuild/win32-arm64": "0.25.12",
+ "@esbuild/win32-ia32": "0.25.12",
+ "@esbuild/win32-x64": "0.25.12"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz",
+ "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack-virtual-modules": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
+ "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webrtc-adapter": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-9.0.4.tgz",
+ "integrity": "sha512-5ZZY1+lGq8LEKuDlg9M2RPJHlH3R7OVwyHqMcUsLKCgd9Wvf+QrFTCItkXXYPmrJn8H6gRLXbSgxLLdexiqHxw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "sdp": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=6.0.0",
+ "npm": ">=3.10.0"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/xmlhttprequest-ssl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zustand": {
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.12.tgz",
+ "integrity": "sha512-i77ae3aZq4dhMlRhJVCYgMLKuSiZAaUPAct2AksxQ+gOtimhGMdXljRT21P5BNpeT4kXlLIckvkPM029OljD7g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
+ }
+ }
+}
diff --git a/www/appv2/package.json b/www/appv2/package.json
new file mode 100644
index 00000000..1af93388
--- /dev/null
+++ b/www/appv2/package.json
@@ -0,0 +1,59 @@
+{
+ "name": "reflector-appv2",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "concurrently \"vite --port=3000 --host=0.0.0.0\" \"tsx watch server/index.ts\"",
+ "dev:client": "vite --port=3000 --host=0.0.0.0",
+ "dev:server": "tsx watch server/index.ts",
+ "build": "vite build",
+ "preview": "vite preview",
+ "clean": "rm -rf dist",
+ "lint": "tsc --noEmit"
+ },
+ "dependencies": {
+ "@daily-co/daily-js": "^0.87.0",
+ "@fontsource/manrope": "^5.2.8",
+ "@fontsource/newsreader": "^5.2.10",
+ "@sentry/react": "^10.40.0",
+ "@tailwindcss/vite": "^4.1.14",
+ "@tanstack/react-query": "^5.90.21",
+ "@types/uuid": "^11.0.0",
+ "@vitejs/plugin-react": "^5.0.4",
+ "@whereby.com/browser-sdk": "^3.18.21",
+ "concurrently": "^9.0.0",
+ "cookie-parser": "^1.4.7",
+ "cors": "^2.8.5",
+ "dotenv": "^17.2.3",
+ "express": "^4.21.2",
+ "lucide-react": "^0.546.0",
+ "motion": "^12.23.24",
+ "openapi-fetch": "^0.17.0",
+ "openapi-react-query": "^0.5.4",
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0",
+ "react-hook-form": "^7.72.0",
+ "react-router-dom": "^7.13.2",
+ "remeda": "^2.33.6",
+ "uuid": "^13.0.0",
+ "vite": "^6.2.0",
+ "wavesurfer.js": "^7.12.5",
+ "zustand": "^5.0.12"
+ },
+ "devDependencies": {
+ "@sentry/vite-plugin": "^3.0.0",
+ "@tailwindcss/postcss": "^4.2.2",
+ "@types/cookie-parser": "^1.4.8",
+ "@types/cors": "^2.8.17",
+ "@types/express": "^4.17.21",
+ "@types/node": "^22.14.0",
+ "@types/react": "^19.2.14",
+ "@types/react-dom": "^19.2.3",
+ "autoprefixer": "^10.4.21",
+ "tailwindcss": "^4.1.14",
+ "tsx": "^4.21.0",
+ "typescript": "~5.8.2",
+ "vite": "^6.2.0"
+ }
+}
diff --git a/www/appv2/postcss.config.js b/www/appv2/postcss.config.js
new file mode 100644
index 00000000..1c878468
--- /dev/null
+++ b/www/appv2/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ '@tailwindcss/postcss': {},
+ autoprefixer: {},
+ },
+}
diff --git a/www/appv2/server/auth.ts b/www/appv2/server/auth.ts
new file mode 100644
index 00000000..2c89235f
--- /dev/null
+++ b/www/appv2/server/auth.ts
@@ -0,0 +1,28 @@
+/**
+ * Auth constants and helpers — ported from Next.js app/lib/auth.ts
+ */
+
+export const REFRESH_ACCESS_TOKEN_ERROR = "RefreshAccessTokenError" as const;
+// 4 min is 1 min less than default authentik value.
+// Assumes authentik won't be set to access tokens < 4 min
+export const REFRESH_ACCESS_TOKEN_BEFORE = 4 * 60 * 1000;
+
+export const shouldRefreshToken = (accessTokenExpires: number): boolean => {
+ const timeLeft = accessTokenExpires - Date.now();
+ return timeLeft < REFRESH_ACCESS_TOKEN_BEFORE;
+};
+
+export const LOGIN_REQUIRED_PAGES = [
+ "/transcripts/[!new]",
+ "/browse(.*)",
+ "/rooms(.*)",
+];
+
+export const PROTECTED_PAGES = new RegExp(
+ LOGIN_REQUIRED_PAGES.map((page) => `^${page}$`).join("|"),
+);
+
+export function getLogoutRedirectUrl(pathname: string): string {
+ const transcriptPagePattern = /^\/transcripts\/[^/]+$/;
+ return transcriptPagePattern.test(pathname) ? pathname : "/";
+}
diff --git a/www/appv2/server/index.ts b/www/appv2/server/index.ts
new file mode 100644
index 00000000..d02cc863
--- /dev/null
+++ b/www/appv2/server/index.ts
@@ -0,0 +1,354 @@
+/**
+ * Minimal Express auth proxy server for Authentik SSO.
+ *
+ * Handles:
+ * - OAuth redirect to Authentik
+ * - Callback with code exchange
+ * - Token refresh
+ * - Credentials-based login (fallback)
+ * - Session introspection
+ */
+
+import express from "express";
+import cookieParser from "cookie-parser";
+import cors from "cors";
+import { shouldRefreshToken, REFRESH_ACCESS_TOKEN_ERROR } from "./auth";
+
+const app = express();
+app.use(express.json());
+app.use(cookieParser());
+app.use(
+ cors({
+ origin: process.env.VITE_SITE_URL || "http://localhost:3000",
+ credentials: true,
+ }),
+);
+
+// ─── Config ──────────────────────────────────────────────────────────────────
+
+const PORT = Number(process.env.AUTH_PROXY_PORT) || 3001;
+const SERVER_API_URL =
+ process.env.SERVER_API_URL || "http://localhost:1250";
+const AUTH_PROVIDER = process.env.AUTH_PROVIDER || "authentik";
+
+// Authentik-specific
+const AUTHENTIK_CLIENT_ID = process.env.AUTHENTIK_CLIENT_ID || "";
+const AUTHENTIK_CLIENT_SECRET = process.env.AUTHENTIK_CLIENT_SECRET || "";
+const AUTHENTIK_ISSUER = process.env.AUTHENTIK_ISSUER || "";
+const AUTHENTIK_REFRESH_TOKEN_URL =
+ process.env.AUTHENTIK_REFRESH_TOKEN_URL || "";
+
+// Cookie settings
+const COOKIE_NAME = "reflector_session";
+const COOKIE_OPTIONS: express.CookieOptions = {
+ httpOnly: true,
+ secure: process.env.NODE_ENV === "production",
+ sameSite: "lax",
+ maxAge: 7 * 24 * 60 * 60 * 1000, // 7 days
+ path: "/",
+};
+
+// ─── Types ───────────────────────────────────────────────────────────────────
+
+interface SessionData {
+ accessToken: string;
+ accessTokenExpires: number;
+ refreshToken?: string;
+ user: {
+ id: string;
+ name?: string | null;
+ email?: string | null;
+ };
+}
+
+// ─── Helpers ─────────────────────────────────────────────────────────────────
+
+async function getUserId(accessToken: string): Promise {
+ try {
+ const response = await fetch(`${SERVER_API_URL}/v1/me`, {
+ headers: { Authorization: `Bearer ${accessToken}` },
+ });
+ if (!response.ok) return null;
+ const userInfo = await response.json();
+ return userInfo.sub || null;
+ } catch (error) {
+ console.error("Error fetching user ID from backend:", error);
+ return null;
+ }
+}
+
+function getRedirectUri(req: express.Request): string {
+ const protocol = req.headers["x-forwarded-proto"] || req.protocol;
+ const host = req.headers["x-forwarded-host"] || req.get("host");
+ return `${protocol}://${host}/auth/callback`;
+}
+
+function encodeSession(session: SessionData): string {
+ return Buffer.from(JSON.stringify(session)).toString("base64");
+}
+
+function decodeSession(cookie: string): SessionData | null {
+ try {
+ return JSON.parse(Buffer.from(cookie, "base64").toString("utf-8"));
+ } catch {
+ return null;
+ }
+}
+
+// ─── Routes ──────────────────────────────────────────────────────────────────
+
+/**
+ * GET /auth/login
+ * Redirects to Authentik authorize endpoint (SSO flow)
+ */
+app.get("/auth/login", (req, res) => {
+ if (AUTH_PROVIDER !== "authentik") {
+ return res
+ .status(400)
+ .json({ error: "SSO not configured. Use POST /auth/login instead." });
+ }
+
+ if (!AUTHENTIK_ISSUER || !AUTHENTIK_CLIENT_ID) {
+ return res.status(500).json({ error: "Authentik not configured" });
+ }
+
+ const redirectUri = getRedirectUri(req);
+ const authorizeUrl = new URL(
+ `${AUTHENTIK_ISSUER}/authorize`,
+ );
+ authorizeUrl.searchParams.set("client_id", AUTHENTIK_CLIENT_ID);
+ authorizeUrl.searchParams.set("response_type", "code");
+ authorizeUrl.searchParams.set("redirect_uri", redirectUri);
+ authorizeUrl.searchParams.set(
+ "scope",
+ "openid email profile offline_access",
+ );
+
+ return res.redirect(authorizeUrl.toString());
+});
+
+/**
+ * GET /auth/callback
+ * Handles OAuth callback from Authentik — exchanges code for tokens
+ */
+app.get("/auth/callback", async (req, res) => {
+ const { code } = req.query;
+
+ if (!code || typeof code !== "string") {
+ return res.status(400).json({ error: "Missing authorization code" });
+ }
+
+ try {
+ const redirectUri = getRedirectUri(req);
+ const tokenResponse = await fetch(AUTHENTIK_REFRESH_TOKEN_URL, {
+ method: "POST",
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
+ body: new URLSearchParams({
+ grant_type: "authorization_code",
+ client_id: AUTHENTIK_CLIENT_ID,
+ client_secret: AUTHENTIK_CLIENT_SECRET,
+ code,
+ redirect_uri: redirectUri,
+ }).toString(),
+ });
+
+ if (!tokenResponse.ok) {
+ const errorBody = await tokenResponse.text();
+ console.error("Token exchange failed:", tokenResponse.status, errorBody);
+ return res.redirect("/?error=token_exchange_failed");
+ }
+
+ const tokens = await tokenResponse.json();
+ const accessToken = tokens.access_token;
+ const expiresIn = tokens.expires_in;
+ const refreshToken = tokens.refresh_token;
+
+ // Resolve user ID from backend
+ const userId = await getUserId(accessToken);
+ if (!userId) {
+ return res.redirect("/?error=user_id_resolution_failed");
+ }
+
+ const session: SessionData = {
+ accessToken,
+ accessTokenExpires: Date.now() + expiresIn * 1000,
+ refreshToken,
+ user: {
+ id: userId,
+ email: tokens.email || null,
+ name: tokens.name || null,
+ },
+ };
+
+ res.cookie(COOKIE_NAME, encodeSession(session), COOKIE_OPTIONS);
+
+ // Redirect to the app
+ const frontendUrl = process.env.VITE_SITE_URL || "http://localhost:3000";
+ return res.redirect(`${frontendUrl}/welcome`);
+ } catch (error) {
+ console.error("OAuth callback error:", error);
+ return res.redirect("/?error=callback_error");
+ }
+});
+
+/**
+ * POST /auth/login
+ * Credentials-based login (email + password)
+ */
+app.post("/auth/login", async (req, res) => {
+ const { email, password } = req.body;
+
+ if (!email || !password) {
+ return res.status(400).json({ error: "Email and password are required" });
+ }
+
+ try {
+ const response = await fetch(`${SERVER_API_URL}/v1/auth/login`, {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({ email, password }),
+ });
+
+ if (!response.ok) {
+ return res.status(401).json({ error: "Invalid credentials" });
+ }
+
+ const data = await response.json();
+ const accessToken = data.access_token;
+ const expiresIn = data.expires_in;
+
+ // Resolve user ID from backend
+ const userId = await getUserId(accessToken);
+ if (!userId) {
+ return res.status(500).json({ error: "Could not resolve user ID" });
+ }
+
+ const session: SessionData = {
+ accessToken,
+ accessTokenExpires: Date.now() + expiresIn * 1000,
+ user: {
+ id: userId,
+ email,
+ },
+ };
+
+ res.cookie(COOKIE_NAME, encodeSession(session), COOKIE_OPTIONS);
+ return res.json({
+ accessToken: session.accessToken,
+ accessTokenExpires: session.accessTokenExpires,
+ user: session.user,
+ });
+ } catch (error) {
+ console.error("Credentials login error:", error);
+ return res.status(500).json({ error: "Internal server error" });
+ }
+});
+
+/**
+ * POST /auth/refresh
+ * Refresh access token using refresh_token (Authentik only)
+ */
+app.post("/auth/refresh", async (req, res) => {
+ const cookie = req.cookies[COOKIE_NAME];
+ const session = cookie ? decodeSession(cookie) : null;
+
+ if (!session) {
+ return res.status(401).json({ error: "No active session" });
+ }
+
+ if (!session.refreshToken) {
+ return res.status(400).json({ error: "No refresh token available" });
+ }
+
+ try {
+ const response = await fetch(AUTHENTIK_REFRESH_TOKEN_URL, {
+ method: "POST",
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
+ body: new URLSearchParams({
+ grant_type: "refresh_token",
+ client_id: AUTHENTIK_CLIENT_ID,
+ client_secret: AUTHENTIK_CLIENT_SECRET,
+ refresh_token: session.refreshToken,
+ }).toString(),
+ });
+
+ if (!response.ok) {
+ console.error("Token refresh failed:", response.status);
+ res.clearCookie(COOKIE_NAME);
+ return res.status(401).json({ error: REFRESH_ACCESS_TOKEN_ERROR });
+ }
+
+ const refreshedTokens = await response.json();
+
+ const updatedSession: SessionData = {
+ ...session,
+ accessToken: refreshedTokens.access_token,
+ accessTokenExpires: Date.now() + refreshedTokens.expires_in * 1000,
+ refreshToken: refreshedTokens.refresh_token || session.refreshToken,
+ };
+
+ res.cookie(COOKIE_NAME, encodeSession(updatedSession), COOKIE_OPTIONS);
+ return res.json({
+ accessToken: updatedSession.accessToken,
+ accessTokenExpires: updatedSession.accessTokenExpires,
+ user: updatedSession.user,
+ });
+ } catch (error) {
+ console.error("Token refresh error:", error);
+ return res.status(500).json({ error: "Internal server error" });
+ }
+});
+
+/**
+ * GET /auth/session
+ * Returns current session info or 401
+ */
+app.get("/auth/session", (req, res) => {
+ const cookie = req.cookies[COOKIE_NAME];
+ const session = cookie ? decodeSession(cookie) : null;
+
+ if (!session) {
+ return res.status(401).json({ status: "unauthenticated" });
+ }
+
+ // Check if token is expired
+ if (session.accessTokenExpires < Date.now()) {
+ // If we have a refresh token, indicate refresh is needed
+ if (session.refreshToken) {
+ return res.json({
+ status: "refresh_needed",
+ user: session.user,
+ });
+ }
+ // No refresh token → session is dead
+ res.clearCookie(COOKIE_NAME);
+ return res.status(401).json({ status: "unauthenticated" });
+ }
+
+ return res.json({
+ status: "authenticated",
+ accessToken: session.accessToken,
+ accessTokenExpires: session.accessTokenExpires,
+ user: session.user,
+ });
+});
+
+/**
+ * POST /auth/logout
+ * Clears session cookie
+ */
+app.post("/auth/logout", (_req, res) => {
+ res.clearCookie(COOKIE_NAME);
+ return res.json({ status: "logged_out" });
+});
+
+// ─── Start ───────────────────────────────────────────────────────────────────
+
+app.listen(PORT, () => {
+ console.log(`Auth proxy server running on http://localhost:${PORT}`);
+ console.log(` AUTH_PROVIDER: ${AUTH_PROVIDER}`);
+ console.log(` SERVER_API_URL: ${SERVER_API_URL}`);
+ if (AUTH_PROVIDER === "authentik") {
+ console.log(` AUTHENTIK_ISSUER: ${AUTHENTIK_ISSUER || "(not set)"}`);
+ }
+});
diff --git a/www/appv2/src/App.tsx b/www/appv2/src/App.tsx
new file mode 100644
index 00000000..bbce1f94
--- /dev/null
+++ b/www/appv2/src/App.tsx
@@ -0,0 +1,138 @@
+import {
+ Routes,
+ Route,
+ Navigate,
+ Outlet,
+ useLocation,
+} from "react-router-dom";
+import { QueryClientProvider } from "@tanstack/react-query";
+import { Sentry } from "./lib/sentry";
+import { queryClient } from "./lib/queryClient";
+import { AuthProvider, useAuth } from "./lib/AuthProvider";
+import { ErrorProvider } from "./lib/errorContext";
+import { RecordingConsentProvider } from "./lib/recordingConsentContext";
+import { UserEventsProvider } from "./lib/UserEventsProvider";
+import { TopNav } from "./components/layout/TopNav";
+import { Footer } from "./components/layout/Footer";
+import LoginPage from "./pages/LoginPage";
+import WelcomePage from "./pages/WelcomePage";
+import RoomsPage from "./pages/RoomsPage";
+import RoomMeetingPage from "./pages/RoomMeetingPage";
+import TranscriptionsPage from "./pages/TranscriptionsPage";
+import SingleTranscriptionPage from "./pages/SingleTranscriptionPage";
+import SettingsPage from "./pages/SettingsPage";
+import WebinarLandingPage from "./pages/WebinarLandingPage";
+import AboutPage from "./pages/AboutPage";
+import PrivacyPage from "./pages/PrivacyPage";
+
+// Nav items for TopNav
+const NAV_LINKS = [
+ { label: "Create", href: "/welcome" },
+ { label: "Browse", href: "/transcriptions" },
+ { label: "Rooms", href: "/rooms" },
+ { label: "Settings", href: "/settings" },
+];
+
+// Guard: redirect to / if not authenticated
+function RequireAuth() {
+ const auth = useAuth();
+
+ if (auth.status === "loading") {
+ return (
+
+ );
+ }
+
+ return auth.status === "authenticated" ? (
+
+ ) : (
+
+ );
+}
+
+// Layout: TopNav only
+function TopNavLayout() {
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+// Layout: TopNav + Content
+function AppShellLayout() {
+ return (
+
+ );
+}
+
+export default function App() {
+ return (
+
+
+
+
+
+
+ Something went wrong. Please refresh the page.
+
+ }
+ >
+
+ {/* Public */}
+ } />
+ } />
+
+ {/* Protected */}
+ }>
+ }>
+ } />
+ } />
+ } />
+