@grackle-ai/web 0.83.1 → 0.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,502 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage-DZhFekbY.js","assets/markdown-gcy1Jmzi.js","assets/dagview-BA5TtMAQ.js","assets/grpc-DU5jMhZD.js","assets/KnowledgePage-DMqJ4jlP.css"])))=>i.map(i=>d[i]);
2
- import{r as KS,a as y,j as l,v as YS,b as JS,t as Yl,i as XS,f as WS,M as lp,c as cp}from"./markdown-gcy1Jmzi.js";import{r as QS,d as Xv,H as Wv,P as Qv,i as eT,B as tT,a as nT,C as sT,M as aT}from"./dagview-BA5TtMAQ.js";import{c as iT,a as oT,G as rT,C as Cc,b as lT,e as ab,w as cT,t as uT,p as Jl,d as dT,f as fT,M as pT,R as tr,A as ib,D as ob,W as mT,O as hT,g as gT,S as e0}from"./grpc-DU5jMhZD.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))o(c);new MutationObserver(c=>{for(const u of c)if(u.type==="childList")for(const d of u.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&o(d)}).observe(document,{childList:!0,subtree:!0});function i(c){const u={};return c.integrity&&(u.integrity=c.integrity),c.referrerPolicy&&(u.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?u.credentials="include":c.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function o(c){if(c.ep)return;c.ep=!0;const u=i(c);fetch(c.href,u)}})();var Xd={exports:{}},nr={},Wd={exports:{}},Qd={};/**
3
- * @license React
4
- * scheduler.production.js
5
- *
6
- * Copyright (c) Meta Platforms, Inc. and affiliates.
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE file in the root directory of this source tree.
10
- */var t0;function vT(){return t0||(t0=1,(function(n){function s(I,$){var Q=I.length;I.push($);e:for(;0<Q;){var de=Q-1>>>1,me=I[de];if(0<c(me,$))I[de]=$,I[Q]=me,Q=de;else break e}}function i(I){return I.length===0?null:I[0]}function o(I){if(I.length===0)return null;var $=I[0],Q=I.pop();if(Q!==$){I[0]=Q;e:for(var de=0,me=I.length,ze=me>>>1;de<ze;){var je=2*(de+1)-1,Ne=I[je],Ae=je+1,ce=I[Ae];if(0>c(Ne,Q))Ae<me&&0>c(ce,Ne)?(I[de]=ce,I[Ae]=Q,de=Ae):(I[de]=Ne,I[je]=Q,de=je);else if(Ae<me&&0>c(ce,Q))I[de]=ce,I[Ae]=Q,de=Ae;else break e}}return $}function c(I,$){var Q=I.sortIndex-$.sortIndex;return Q!==0?Q:I.id-$.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;n.unstable_now=function(){return u.now()}}else{var d=Date,m=d.now();n.unstable_now=function(){return d.now()-m}}var h=[],g=[],v=1,b=null,_=3,S=!1,T=!1,N=!1,j=!1,w=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;function O(I){for(var $=i(g);$!==null;){if($.callback===null)o(g);else if($.startTime<=I)o(g),$.sortIndex=$.expirationTime,s(h,$);else break;$=i(g)}}function C(I){if(N=!1,O(I),!T)if(i(h)!==null)T=!0,M||(M=!0,ae());else{var $=i(g);$!==null&&re(C,$.startTime-I)}}var M=!1,G=-1,U=5,V=-1;function F(){return j?!0:!(n.unstable_now()-V<U)}function ee(){if(j=!1,M){var I=n.unstable_now();V=I;var $=!0;try{e:{T=!1,N&&(N=!1,E(G),G=-1),S=!0;var Q=_;try{t:{for(O(I),b=i(h);b!==null&&!(b.expirationTime>I&&F());){var de=b.callback;if(typeof de=="function"){b.callback=null,_=b.priorityLevel;var me=de(b.expirationTime<=I);if(I=n.unstable_now(),typeof me=="function"){b.callback=me,O(I),$=!0;break t}b===i(h)&&o(h),O(I)}else o(h);b=i(h)}if(b!==null)$=!0;else{var ze=i(g);ze!==null&&re(C,ze.startTime-I),$=!1}}break e}finally{b=null,_=Q,S=!1}$=void 0}}finally{$?ae():M=!1}}}var ae;if(typeof A=="function")ae=function(){A(ee)};else if(typeof MessageChannel<"u"){var be=new MessageChannel,K=be.port2;be.port1.onmessage=ee,ae=function(){K.postMessage(null)}}else ae=function(){w(ee,0)};function re(I,$){G=w(function(){I(n.unstable_now())},$)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(I){I.callback=null},n.unstable_forceFrameRate=function(I){0>I||125<I?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):U=0<I?Math.floor(1e3/I):5},n.unstable_getCurrentPriorityLevel=function(){return _},n.unstable_next=function(I){switch(_){case 1:case 2:case 3:var $=3;break;default:$=_}var Q=_;_=$;try{return I()}finally{_=Q}},n.unstable_requestPaint=function(){j=!0},n.unstable_runWithPriority=function(I,$){switch(I){case 1:case 2:case 3:case 4:case 5:break;default:I=3}var Q=_;_=I;try{return $()}finally{_=Q}},n.unstable_scheduleCallback=function(I,$,Q){var de=n.unstable_now();switch(typeof Q=="object"&&Q!==null?(Q=Q.delay,Q=typeof Q=="number"&&0<Q?de+Q:de):Q=de,I){case 1:var me=-1;break;case 2:me=250;break;case 5:me=1073741823;break;case 4:me=1e4;break;default:me=5e3}return me=Q+me,I={id:v++,callback:$,priorityLevel:I,startTime:Q,expirationTime:me,sortIndex:-1},Q>de?(I.sortIndex=Q,s(g,I),i(h)===null&&I===i(g)&&(N?(E(G),G=-1):N=!0,re(C,Q-de))):(I.sortIndex=me,s(h,I),T||S||(T=!0,M||(M=!0,ae()))),I},n.unstable_shouldYield=F,n.unstable_wrapCallback=function(I){var $=_;return function(){var Q=_;_=$;try{return I.apply(this,arguments)}finally{_=Q}}}})(Qd)),Qd}var n0;function yT(){return n0||(n0=1,Wd.exports=vT()),Wd.exports}/**
11
- * @license React
12
- * react-dom-client.production.js
13
- *
14
- * Copyright (c) Meta Platforms, Inc. and affiliates.
15
- *
16
- * This source code is licensed under the MIT license found in the
17
- * LICENSE file in the root directory of this source tree.
18
- */var s0;function bT(){if(s0)return nr;s0=1;var n=yT(),s=KS(),i=QS();function o(e){var t="https://react.dev/errors/"+e;if(1<arguments.length){t+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)t+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function c(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function u(e){var t=e,a=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(a=t.return),e=t.return;while(e)}return t.tag===3?a:null}function d(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function m(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function h(e){if(u(e)!==e)throw Error(o(188))}function g(e){var t=e.alternate;if(!t){if(t=u(e),t===null)throw Error(o(188));return t!==e?null:e}for(var a=e,r=t;;){var f=a.return;if(f===null)break;var p=f.alternate;if(p===null){if(r=f.return,r!==null){a=r;continue}break}if(f.child===p.child){for(p=f.child;p;){if(p===a)return h(f),e;if(p===r)return h(f),t;p=p.sibling}throw Error(o(188))}if(a.return!==r.return)a=f,r=p;else{for(var x=!1,k=f.child;k;){if(k===a){x=!0,a=f,r=p;break}if(k===r){x=!0,r=f,a=p;break}k=k.sibling}if(!x){for(k=p.child;k;){if(k===a){x=!0,a=p,r=f;break}if(k===r){x=!0,r=p,a=f;break}k=k.sibling}if(!x)throw Error(o(189))}}if(a.alternate!==r)throw Error(o(190))}if(a.tag!==3)throw Error(o(188));return a.stateNode.current===a?e:t}function v(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=v(e),t!==null)return t;e=e.sibling}return null}var b=Object.assign,_=Symbol.for("react.element"),S=Symbol.for("react.transitional.element"),T=Symbol.for("react.portal"),N=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),E=Symbol.for("react.consumer"),A=Symbol.for("react.context"),O=Symbol.for("react.forward_ref"),C=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),V=Symbol.for("react.activity"),F=Symbol.for("react.memo_cache_sentinel"),ee=Symbol.iterator;function ae(e){return e===null||typeof e!="object"?null:(e=ee&&e[ee]||e["@@iterator"],typeof e=="function"?e:null)}var be=Symbol.for("react.client.reference");function K(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===be?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case N:return"Fragment";case w:return"Profiler";case j:return"StrictMode";case C:return"Suspense";case M:return"SuspenseList";case V:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case T:return"Portal";case A:return e.displayName||"Context";case E:return(e._context.displayName||"Context")+".Consumer";case O:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case G:return t=e.displayName||null,t!==null?t:K(e.type)||"Memo";case U:t=e._payload,e=e._init;try{return K(e(t))}catch{}}return null}var re=Array.isArray,I=s.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,$=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Q={pending:!1,data:null,method:null,action:null},de=[],me=-1;function ze(e){return{current:e}}function je(e){0>me||(e.current=de[me],de[me]=null,me--)}function Ne(e,t){me++,de[me]=e.current,e.current=t}var Ae=ze(null),ce=ze(null),fe=ze(null),pe=ze(null);function Re(e,t){switch(Ne(fe,t),Ne(ce,e),Ne(Ae,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?_v(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=_v(t),e=xv(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}je(Ae),Ne(Ae,e)}function Lt(){je(Ae),je(ce),je(fe)}function te(e){e.memoizedState!==null&&Ne(pe,e);var t=Ae.current,a=xv(t,e.type);t!==a&&(Ne(ce,e),Ne(Ae,a))}function W(e){ce.current===e&&(je(Ae),je(ce)),pe.current===e&&(je(pe),Xo._currentValue=Q)}var Te,un;function Fe(e){if(Te===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Te=t&&t[1]||"",un=-1<a.stack.indexOf(`
19
- at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
20
- `+Te+e+un}var Kn=!1;function Yn(e,t){if(!e||Kn)return"";Kn=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var X=function(){throw Error()};if(Object.defineProperty(X.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(X,[])}catch(Z){var q=Z}Reflect.construct(e,[],X)}else{try{X.call()}catch(Z){q=Z}e.call(X.prototype)}}else{try{throw Error()}catch(Z){q=Z}(X=e())&&typeof X.catch=="function"&&X.catch(function(){})}}catch(Z){if(Z&&q&&typeof Z.stack=="string")return[Z.stack,q.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var f=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,"name");f&&f.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=r.DetermineComponentFrameRoot(),x=p[0],k=p[1];if(x&&k){var D=x.split(`
21
- `),P=k.split(`
22
- `);for(f=r=0;r<D.length&&!D[r].includes("DetermineComponentFrameRoot");)r++;for(;f<P.length&&!P[f].includes("DetermineComponentFrameRoot");)f++;if(r===D.length||f===P.length)for(r=D.length-1,f=P.length-1;1<=r&&0<=f&&D[r]!==P[f];)f--;for(;1<=r&&0<=f;r--,f--)if(D[r]!==P[f]){if(r!==1||f!==1)do if(r--,f--,0>f||D[r]!==P[f]){var Y=`
23
- `+D[r].replace(" at new "," at ");return e.displayName&&Y.includes("<anonymous>")&&(Y=Y.replace("<anonymous>",e.displayName)),Y}while(1<=r&&0<=f);break}}}finally{Kn=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?Fe(a):""}function zn(e,t){switch(e.tag){case 26:case 27:case 5:return Fe(e.type);case 16:return Fe("Lazy");case 13:return e.child!==t&&t!==null?Fe("Suspense Fallback"):Fe("Suspense");case 19:return Fe("SuspenseList");case 0:case 15:return Yn(e.type,!1);case 11:return Yn(e.type.render,!1);case 1:return Yn(e.type,!0);case 31:return Fe("Activity");default:return""}}function Jn(e){try{var t="",a=null;do t+=zn(e,a),a=e,e=e.return;while(e);return t}catch(r){return`
24
- Error generating stack: `+r.message+`
25
- `+r.stack}}var Tn=Object.prototype.hasOwnProperty,Bs=n.unstable_scheduleCallback,dn=n.unstable_cancelCallback,Me=n.unstable_shouldYield,Rt=n.unstable_requestPaint,Kt=n.unstable_now,ro=n.unstable_getCurrentPriorityLevel,lo=n.unstable_ImmediatePriority,co=n.unstable_UserBlockingPriority,_a=n.unstable_NormalPriority,Mr=n.unstable_LowPriority,uo=n.unstable_IdlePriority,Or=n.log,Ir=n.unstable_setDisableYieldValue,Us=null,Yt=null;function Pn(e){if(typeof Or=="function"&&Ir(e),Yt&&typeof Yt.setStrictMode=="function")try{Yt.setStrictMode(Us,e)}catch{}}var Jt=Math.clz32?Math.clz32:H,Lr=Math.log,Vc=Math.LN2;function H(e){return e>>>=0,e===0?32:31-(Lr(e)/Vc|0)|0}var ne=256,oe=262144,le=4194304;function ue(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,a){var r=e.pendingLanes;if(r===0)return 0;var f=0,p=e.suspendedLanes,x=e.pingedLanes;e=e.warmLanes;var k=r&134217727;return k!==0?(r=k&~p,r!==0?f=ue(r):(x&=k,x!==0?f=ue(x):a||(a=k&~e,a!==0&&(f=ue(a))))):(k=r&~p,k!==0?f=ue(k):x!==0?f=ue(x):a||(a=r&~e,a!==0&&(f=ue(a)))),f===0?0:t!==0&&t!==f&&(t&p)===0&&(p=f&-f,a=t&-t,p>=a||p===32&&(a&4194048)!==0)?t:f}function ye(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Oe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ke(){var e=le;return le<<=1,(le&62914560)===0&&(le=4194304),e}function nt(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function zt(e,t,a,r,f,p){var x=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var k=e.entanglements,D=e.expirationTimes,P=e.hiddenUpdates;for(a=x&~a;0<a;){var Y=31-Jt(a),X=1<<Y;k[Y]=0,D[Y]=-1;var q=P[Y];if(q!==null)for(P[Y]=null,Y=0;Y<q.length;Y++){var Z=q[Y];Z!==null&&(Z.lane&=-536870913)}a&=~X}r!==0&&Pt(e,r,0),p!==0&&f===0&&e.tag!==0&&(e.suspendedLanes|=p&~(x&~t))}function Pt(e,t,a){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-Jt(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|a&261930}function St(e,t){var a=e.entangledLanes|=t;for(e=e.entanglements;a;){var r=31-Jt(a),f=1<<r;f&t|e[r]&t&&(e[r]|=t),a&=~f}}function ls(e,t){var a=t&-t;return a=(a&42)!==0?1:Vn(a),(a&(e.suspendedLanes|t))!==0?0:a}function Vn(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function xa(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function im(){var e=$.p;return e!==0?e:(e=window.event,e===void 0?32:Gv(e.type))}function om(e,t){var a=$.p;try{return $.p=e,t()}finally{$.p=a}}var zs=Math.random().toString(36).slice(2),Vt="__reactFiber$"+zs,nn="__reactProps$"+zs,ni="__reactContainer$"+zs,Hc="__reactEvents$"+zs,Bx="__reactListeners$"+zs,Ux="__reactHandles$"+zs,rm="__reactResources$"+zs,fo="__reactMarker$"+zs;function qc(e){delete e[Vt],delete e[nn],delete e[Hc],delete e[Bx],delete e[Ux]}function si(e){var t=e[Vt];if(t)return t;for(var a=e.parentNode;a;){if(t=a[ni]||a[Vt]){if(a=t.alternate,t.child!==null||a!==null&&a.child!==null)for(e=Cv(e);e!==null;){if(a=e[Vt])return a;e=Cv(e)}return t}e=a,a=e.parentNode}return null}function ai(e){if(e=e[Vt]||e[ni]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function po(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(o(33))}function ii(e){var t=e[rm];return t||(t=e[rm]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Bt(e){e[fo]=!0}var lm=new Set,cm={};function Sa(e,t){oi(e,t),oi(e+"Capture",t)}function oi(e,t){for(cm[e]=t,e=0;e<t.length;e++)lm.add(t[e])}var zx=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),um={},dm={};function Px(e){return Tn.call(dm,e)?!0:Tn.call(um,e)?!1:zx.test(e)?dm[e]=!0:(um[e]=!0,!1)}function Br(e,t,a){if(Px(t))if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":e.removeAttribute(t);return;case"boolean":var r=t.toLowerCase().slice(0,5);if(r!=="data-"&&r!=="aria-"){e.removeAttribute(t);return}}e.setAttribute(t,""+a)}}function Ur(e,t,a){if(a===null)e.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(t);return}e.setAttribute(t,""+a)}}function cs(e,t,a,r){if(r===null)e.removeAttribute(a);else{switch(typeof r){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(a);return}e.setAttributeNS(t,a,""+r)}}function kn(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function fm(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Vx(e,t,a){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var f=r.get,p=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return f.call(this)},set:function(x){a=""+x,p.call(this,x)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return a},setValue:function(x){a=""+x},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Gc(e){if(!e._valueTracker){var t=fm(e)?"checked":"value";e._valueTracker=Vx(e,t,""+e[t])}}function pm(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var a=t.getValue(),r="";return e&&(r=fm(e)?e.checked?"true":"false":e.value),e=r,e!==a?(t.setValue(e),!0):!1}function zr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var Hx=/[\n"\\]/g;function wn(e){return e.replace(Hx,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function $c(e,t,a,r,f,p,x,k){e.name="",x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"?e.type=x:e.removeAttribute("type"),t!=null?x==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+kn(t)):e.value!==""+kn(t)&&(e.value=""+kn(t)):x!=="submit"&&x!=="reset"||e.removeAttribute("value"),t!=null?Zc(e,x,kn(t)):a!=null?Zc(e,x,kn(a)):r!=null&&e.removeAttribute("value"),f==null&&p!=null&&(e.defaultChecked=!!p),f!=null&&(e.checked=f&&typeof f!="function"&&typeof f!="symbol"),k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"?e.name=""+kn(k):e.removeAttribute("name")}function mm(e,t,a,r,f,p,x,k){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(e.type=p),t!=null||a!=null){if(!(p!=="submit"&&p!=="reset"||t!=null)){Gc(e);return}a=a!=null?""+kn(a):"",t=t!=null?""+kn(t):a,k||t===e.value||(e.value=t),e.defaultValue=t}r=r??f,r=typeof r!="function"&&typeof r!="symbol"&&!!r,e.checked=k?e.checked:!!r,e.defaultChecked=!!r,x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"&&(e.name=x),Gc(e)}function Zc(e,t,a){t==="number"&&zr(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function ri(e,t,a,r){if(e=e.options,t){t={};for(var f=0;f<a.length;f++)t["$"+a[f]]=!0;for(a=0;a<e.length;a++)f=t.hasOwnProperty("$"+e[a].value),e[a].selected!==f&&(e[a].selected=f),f&&r&&(e[a].defaultSelected=!0)}else{for(a=""+kn(a),t=null,f=0;f<e.length;f++){if(e[f].value===a){e[f].selected=!0,r&&(e[f].defaultSelected=!0);return}t!==null||e[f].disabled||(t=e[f])}t!==null&&(t.selected=!0)}}function hm(e,t,a){if(t!=null&&(t=""+kn(t),t!==e.value&&(e.value=t),a==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=a!=null?""+kn(a):""}function gm(e,t,a,r){if(t==null){if(r!=null){if(a!=null)throw Error(o(92));if(re(r)){if(1<r.length)throw Error(o(93));r=r[0]}a=r}a==null&&(a=""),t=a}a=kn(t),e.defaultValue=a,r=e.textContent,r===a&&r!==""&&r!==null&&(e.value=r),Gc(e)}function li(e,t){if(t){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=t;return}}e.textContent=t}var qx=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function vm(e,t,a){var r=t.indexOf("--")===0;a==null||typeof a=="boolean"||a===""?r?e.setProperty(t,""):t==="float"?e.cssFloat="":e[t]="":r?e.setProperty(t,a):typeof a!="number"||a===0||qx.has(t)?t==="float"?e.cssFloat=a:e[t]=(""+a).trim():e[t]=a+"px"}function ym(e,t,a){if(t!=null&&typeof t!="object")throw Error(o(62));if(e=e.style,a!=null){for(var r in a)!a.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf("--")===0?e.setProperty(r,""):r==="float"?e.cssFloat="":e[r]="");for(var f in t)r=t[f],t.hasOwnProperty(f)&&a[f]!==r&&vm(e,f,r)}else for(var p in t)t.hasOwnProperty(p)&&vm(e,p,t[p])}function Fc(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Gx=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),$x=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Pr(e){return $x.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function us(){}var Kc=null;function Yc(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ci=null,ui=null;function bm(e){var t=ai(e);if(t&&(e=t.stateNode)){var a=e[nn]||null;e:switch(e=t.stateNode,t.type){case"input":if($c(e,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name),t=a.name,a.type==="radio"&&t!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll('input[name="'+wn(""+t)+'"][type="radio"]'),t=0;t<a.length;t++){var r=a[t];if(r!==e&&r.form===e.form){var f=r[nn]||null;if(!f)throw Error(o(90));$c(r,f.value,f.defaultValue,f.defaultValue,f.checked,f.defaultChecked,f.type,f.name)}}for(t=0;t<a.length;t++)r=a[t],r.form===e.form&&pm(r)}break e;case"textarea":hm(e,a.value,a.defaultValue);break e;case"select":t=a.value,t!=null&&ri(e,!!a.multiple,t,!1)}}}var Jc=!1;function _m(e,t,a){if(Jc)return e(t,a);Jc=!0;try{var r=e(t);return r}finally{if(Jc=!1,(ci!==null||ui!==null)&&(jl(),ci&&(t=ci,e=ui,ui=ci=null,bm(t),e)))for(t=0;t<e.length;t++)bm(e[t])}}function mo(e,t){var a=e.stateNode;if(a===null)return null;var r=a[nn]||null;if(r===null)return null;a=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(o(231,t,typeof a));return a}var ds=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Xc=!1;if(ds)try{var ho={};Object.defineProperty(ho,"passive",{get:function(){Xc=!0}}),window.addEventListener("test",ho,ho),window.removeEventListener("test",ho,ho)}catch{Xc=!1}var Ps=null,Wc=null,Vr=null;function xm(){if(Vr)return Vr;var e,t=Wc,a=t.length,r,f="value"in Ps?Ps.value:Ps.textContent,p=f.length;for(e=0;e<a&&t[e]===f[e];e++);var x=a-e;for(r=1;r<=x&&t[a-r]===f[p-r];r++);return Vr=f.slice(e,1<r?1-r:void 0)}function Hr(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function qr(){return!0}function Sm(){return!1}function sn(e){function t(a,r,f,p,x){this._reactName=a,this._targetInst=f,this.type=r,this.nativeEvent=p,this.target=x,this.currentTarget=null;for(var k in e)e.hasOwnProperty(k)&&(a=e[k],this[k]=a?a(p):p[k]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?qr:Sm,this.isPropagationStopped=Sm,this}return b(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=qr)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=qr)},persist:function(){},isPersistent:qr}),t}var Ta={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Gr=sn(Ta),go=b({},Ta,{view:0,detail:0}),Zx=sn(go),Qc,eu,vo,$r=b({},go,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:nu,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==vo&&(vo&&e.type==="mousemove"?(Qc=e.screenX-vo.screenX,eu=e.screenY-vo.screenY):eu=Qc=0,vo=e),Qc)},movementY:function(e){return"movementY"in e?e.movementY:eu}}),Tm=sn($r),Fx=b({},$r,{dataTransfer:0}),Kx=sn(Fx),Yx=b({},go,{relatedTarget:0}),tu=sn(Yx),Jx=b({},Ta,{animationName:0,elapsedTime:0,pseudoElement:0}),Xx=sn(Jx),Wx=b({},Ta,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Qx=sn(Wx),e1=b({},Ta,{data:0}),km=sn(e1),t1={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},n1={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},s1={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function a1(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=s1[e])?!!t[e]:!1}function nu(){return a1}var i1=b({},go,{key:function(e){if(e.key){var t=t1[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=Hr(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?n1[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:nu,charCode:function(e){return e.type==="keypress"?Hr(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Hr(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),o1=sn(i1),r1=b({},$r,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),wm=sn(r1),l1=b({},go,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:nu}),c1=sn(l1),u1=b({},Ta,{propertyName:0,elapsedTime:0,pseudoElement:0}),d1=sn(u1),f1=b({},$r,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),p1=sn(f1),m1=b({},Ta,{newState:0,oldState:0}),h1=sn(m1),g1=[9,13,27,32],su=ds&&"CompositionEvent"in window,yo=null;ds&&"documentMode"in document&&(yo=document.documentMode);var v1=ds&&"TextEvent"in window&&!yo,Nm=ds&&(!su||yo&&8<yo&&11>=yo),jm=" ",Cm=!1;function Em(e,t){switch(e){case"keyup":return g1.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Am(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var di=!1;function y1(e,t){switch(e){case"compositionend":return Am(t);case"keypress":return t.which!==32?null:(Cm=!0,jm);case"textInput":return e=t.data,e===jm&&Cm?null:e;default:return null}}function b1(e,t){if(di)return e==="compositionend"||!su&&Em(e,t)?(e=xm(),Vr=Wc=Ps=null,di=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Nm&&t.locale!=="ko"?null:t.data;default:return null}}var _1={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Dm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!_1[e.type]:t==="textarea"}function Rm(e,t,a,r){ci?ui?ui.push(r):ui=[r]:ci=r,t=Ol(t,"onChange"),0<t.length&&(a=new Gr("onChange","change",null,a,r),e.push({event:a,listeners:t}))}var bo=null,_o=null;function x1(e){mv(e,0)}function Zr(e){var t=po(e);if(pm(t))return e}function Mm(e,t){if(e==="change")return t}var Om=!1;if(ds){var au;if(ds){var iu="oninput"in document;if(!iu){var Im=document.createElement("div");Im.setAttribute("oninput","return;"),iu=typeof Im.oninput=="function"}au=iu}else au=!1;Om=au&&(!document.documentMode||9<document.documentMode)}function Lm(){bo&&(bo.detachEvent("onpropertychange",Bm),_o=bo=null)}function Bm(e){if(e.propertyName==="value"&&Zr(_o)){var t=[];Rm(t,_o,e,Yc(e)),_m(x1,t)}}function S1(e,t,a){e==="focusin"?(Lm(),bo=t,_o=a,bo.attachEvent("onpropertychange",Bm)):e==="focusout"&&Lm()}function T1(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Zr(_o)}function k1(e,t){if(e==="click")return Zr(t)}function w1(e,t){if(e==="input"||e==="change")return Zr(t)}function N1(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var fn=typeof Object.is=="function"?Object.is:N1;function xo(e,t){if(fn(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var a=Object.keys(e),r=Object.keys(t);if(a.length!==r.length)return!1;for(r=0;r<a.length;r++){var f=a[r];if(!Tn.call(t,f)||!fn(e[f],t[f]))return!1}return!0}function Um(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function zm(e,t){var a=Um(e);e=0;for(var r;a;){if(a.nodeType===3){if(r=e+a.textContent.length,e<=t&&r>=t)return{node:a,offset:t-e};e=r}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Um(a)}}function Pm(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Pm(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Vm(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=zr(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=zr(e.document)}return t}function ou(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var j1=ds&&"documentMode"in document&&11>=document.documentMode,fi=null,ru=null,So=null,lu=!1;function Hm(e,t,a){var r=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;lu||fi==null||fi!==zr(r)||(r=fi,"selectionStart"in r&&ou(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),So&&xo(So,r)||(So=r,r=Ol(ru,"onSelect"),0<r.length&&(t=new Gr("onSelect","select",null,t,a),e.push({event:t,listeners:r}),t.target=fi)))}function ka(e,t){var a={};return a[e.toLowerCase()]=t.toLowerCase(),a["Webkit"+e]="webkit"+t,a["Moz"+e]="moz"+t,a}var pi={animationend:ka("Animation","AnimationEnd"),animationiteration:ka("Animation","AnimationIteration"),animationstart:ka("Animation","AnimationStart"),transitionrun:ka("Transition","TransitionRun"),transitionstart:ka("Transition","TransitionStart"),transitioncancel:ka("Transition","TransitionCancel"),transitionend:ka("Transition","TransitionEnd")},cu={},qm={};ds&&(qm=document.createElement("div").style,"AnimationEvent"in window||(delete pi.animationend.animation,delete pi.animationiteration.animation,delete pi.animationstart.animation),"TransitionEvent"in window||delete pi.transitionend.transition);function wa(e){if(cu[e])return cu[e];if(!pi[e])return e;var t=pi[e],a;for(a in t)if(t.hasOwnProperty(a)&&a in qm)return cu[e]=t[a];return e}var Gm=wa("animationend"),$m=wa("animationiteration"),Zm=wa("animationstart"),C1=wa("transitionrun"),E1=wa("transitionstart"),A1=wa("transitioncancel"),Fm=wa("transitionend"),Km=new Map,uu="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");uu.push("scrollEnd");function Hn(e,t){Km.set(e,t),Sa(t,[e])}var Fr=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Nn=[],mi=0,du=0;function Kr(){for(var e=mi,t=du=mi=0;t<e;){var a=Nn[t];Nn[t++]=null;var r=Nn[t];Nn[t++]=null;var f=Nn[t];Nn[t++]=null;var p=Nn[t];if(Nn[t++]=null,r!==null&&f!==null){var x=r.pending;x===null?f.next=f:(f.next=x.next,x.next=f),r.pending=f}p!==0&&Ym(a,f,p)}}function Yr(e,t,a,r){Nn[mi++]=e,Nn[mi++]=t,Nn[mi++]=a,Nn[mi++]=r,du|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function fu(e,t,a,r){return Yr(e,t,a,r),Jr(e)}function Na(e,t){return Yr(e,null,null,t),Jr(e)}function Ym(e,t,a){e.lanes|=a;var r=e.alternate;r!==null&&(r.lanes|=a);for(var f=!1,p=e.return;p!==null;)p.childLanes|=a,r=p.alternate,r!==null&&(r.childLanes|=a),p.tag===22&&(e=p.stateNode,e===null||e._visibility&1||(f=!0)),e=p,p=p.return;return e.tag===3?(p=e.stateNode,f&&t!==null&&(f=31-Jt(a),e=p.hiddenUpdates,r=e[f],r===null?e[f]=[t]:r.push(t),t.lane=a|536870912),p):null}function Jr(e){if(50<Go)throw Go=0,xd=null,Error(o(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var hi={};function D1(e,t,a,r){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function pn(e,t,a,r){return new D1(e,t,a,r)}function pu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function fs(e,t){var a=e.alternate;return a===null?(a=pn(e.tag,t,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=t,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&65011712,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,t=e.dependencies,a.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a.refCleanup=e.refCleanup,a}function Jm(e,t){e.flags&=65011714;var a=e.alternate;return a===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=a.childLanes,e.lanes=a.lanes,e.child=a.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,e.type=a.type,t=a.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Xr(e,t,a,r,f,p){var x=0;if(r=e,typeof e=="function")pu(e)&&(x=1);else if(typeof e=="string")x=LS(e,a,Ae.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case V:return e=pn(31,a,t,f),e.elementType=V,e.lanes=p,e;case N:return ja(a.children,f,p,t);case j:x=8,f|=24;break;case w:return e=pn(12,a,t,f|2),e.elementType=w,e.lanes=p,e;case C:return e=pn(13,a,t,f),e.elementType=C,e.lanes=p,e;case M:return e=pn(19,a,t,f),e.elementType=M,e.lanes=p,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case A:x=10;break e;case E:x=9;break e;case O:x=11;break e;case G:x=14;break e;case U:x=16,r=null;break e}x=29,a=Error(o(130,e===null?"null":typeof e,"")),r=null}return t=pn(x,a,t,f),t.elementType=e,t.type=r,t.lanes=p,t}function ja(e,t,a,r){return e=pn(7,e,r,t),e.lanes=a,e}function mu(e,t,a){return e=pn(6,e,null,t),e.lanes=a,e}function Xm(e){var t=pn(18,null,null,0);return t.stateNode=e,t}function hu(e,t,a){return t=pn(4,e.children!==null?e.children:[],e.key,t),t.lanes=a,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var Wm=new WeakMap;function jn(e,t){if(typeof e=="object"&&e!==null){var a=Wm.get(e);return a!==void 0?a:(t={value:e,source:t,stack:Jn(t)},Wm.set(e,t),t)}return{value:e,source:t,stack:Jn(t)}}var gi=[],vi=0,Wr=null,To=0,Cn=[],En=0,Vs=null,Xn=1,Wn="";function ps(e,t){gi[vi++]=To,gi[vi++]=Wr,Wr=e,To=t}function Qm(e,t,a){Cn[En++]=Xn,Cn[En++]=Wn,Cn[En++]=Vs,Vs=e;var r=Xn;e=Wn;var f=32-Jt(r)-1;r&=~(1<<f),a+=1;var p=32-Jt(t)+f;if(30<p){var x=f-f%5;p=(r&(1<<x)-1).toString(32),r>>=x,f-=x,Xn=1<<32-Jt(t)+f|a<<f|r,Wn=p+e}else Xn=1<<p|a<<f|r,Wn=e}function gu(e){e.return!==null&&(ps(e,1),Qm(e,1,0))}function vu(e){for(;e===Wr;)Wr=gi[--vi],gi[vi]=null,To=gi[--vi],gi[vi]=null;for(;e===Vs;)Vs=Cn[--En],Cn[En]=null,Wn=Cn[--En],Cn[En]=null,Xn=Cn[--En],Cn[En]=null}function eh(e,t){Cn[En++]=Xn,Cn[En++]=Wn,Cn[En++]=Vs,Xn=t.id,Wn=t.overflow,Vs=e}var Ht=null,lt=null,Ge=!1,Hs=null,An=!1,yu=Error(o(519));function qs(e){var t=Error(o(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw ko(jn(t,e)),yu}function th(e){var t=e.stateNode,a=e.type,r=e.memoizedProps;switch(t[Vt]=e,t[nn]=r,a){case"dialog":Ue("cancel",t),Ue("close",t);break;case"iframe":case"object":case"embed":Ue("load",t);break;case"video":case"audio":for(a=0;a<Zo.length;a++)Ue(Zo[a],t);break;case"source":Ue("error",t);break;case"img":case"image":case"link":Ue("error",t),Ue("load",t);break;case"details":Ue("toggle",t);break;case"input":Ue("invalid",t),mm(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case"select":Ue("invalid",t);break;case"textarea":Ue("invalid",t),gm(t,r.value,r.defaultValue,r.children)}a=r.children,typeof a!="string"&&typeof a!="number"&&typeof a!="bigint"||t.textContent===""+a||r.suppressHydrationWarning===!0||yv(t.textContent,a)?(r.popover!=null&&(Ue("beforetoggle",t),Ue("toggle",t)),r.onScroll!=null&&Ue("scroll",t),r.onScrollEnd!=null&&Ue("scrollend",t),r.onClick!=null&&(t.onclick=us),t=!0):t=!1,t||qs(e,!0)}function nh(e){for(Ht=e.return;Ht;)switch(Ht.tag){case 5:case 31:case 13:An=!1;return;case 27:case 3:An=!0;return;default:Ht=Ht.return}}function yi(e){if(e!==Ht)return!1;if(!Ge)return nh(e),Ge=!0,!1;var t=e.tag,a;if((a=t!==3&&t!==27)&&((a=t===5)&&(a=e.type,a=!(a!=="form"&&a!=="button")||Ld(e.type,e.memoizedProps)),a=!a),a&&lt&&qs(e),nh(e),t===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));lt=jv(e)}else if(t===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(317));lt=jv(e)}else t===27?(t=lt,sa(e.type)?(e=Vd,Vd=null,lt=e):lt=t):lt=Ht?Rn(e.stateNode.nextSibling):null;return!0}function Ca(){lt=Ht=null,Ge=!1}function bu(){var e=Hs;return e!==null&&(ln===null?ln=e:ln.push.apply(ln,e),Hs=null),e}function ko(e){Hs===null?Hs=[e]:Hs.push(e)}var _u=ze(null),Ea=null,ms=null;function Gs(e,t,a){Ne(_u,t._currentValue),t._currentValue=a}function hs(e){e._currentValue=_u.current,je(_u)}function xu(e,t,a){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===a)break;e=e.return}}function Su(e,t,a,r){var f=e.child;for(f!==null&&(f.return=e);f!==null;){var p=f.dependencies;if(p!==null){var x=f.child;p=p.firstContext;e:for(;p!==null;){var k=p;p=f;for(var D=0;D<t.length;D++)if(k.context===t[D]){p.lanes|=a,k=p.alternate,k!==null&&(k.lanes|=a),xu(p.return,a,e),r||(x=null);break e}p=k.next}}else if(f.tag===18){if(x=f.return,x===null)throw Error(o(341));x.lanes|=a,p=x.alternate,p!==null&&(p.lanes|=a),xu(x,a,e),x=null}else x=f.child;if(x!==null)x.return=f;else for(x=f;x!==null;){if(x===e){x=null;break}if(f=x.sibling,f!==null){f.return=x.return,x=f;break}x=x.return}f=x}}function bi(e,t,a,r){e=null;for(var f=t,p=!1;f!==null;){if(!p){if((f.flags&524288)!==0)p=!0;else if((f.flags&262144)!==0)break}if(f.tag===10){var x=f.alternate;if(x===null)throw Error(o(387));if(x=x.memoizedProps,x!==null){var k=f.type;fn(f.pendingProps.value,x.value)||(e!==null?e.push(k):e=[k])}}else if(f===pe.current){if(x=f.alternate,x===null)throw Error(o(387));x.memoizedState.memoizedState!==f.memoizedState.memoizedState&&(e!==null?e.push(Xo):e=[Xo])}f=f.return}e!==null&&Su(t,e,a,r),t.flags|=262144}function Qr(e){for(e=e.firstContext;e!==null;){if(!fn(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Aa(e){Ea=e,ms=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function qt(e){return sh(Ea,e)}function el(e,t){return Ea===null&&Aa(e),sh(e,t)}function sh(e,t){var a=t._currentValue;if(t={context:t,memoizedValue:a,next:null},ms===null){if(e===null)throw Error(o(308));ms=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else ms=ms.next=t;return a}var R1=typeof AbortController<"u"?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(a,r){e.push(r)}};this.abort=function(){t.aborted=!0,e.forEach(function(a){return a()})}},M1=n.unstable_scheduleCallback,O1=n.unstable_NormalPriority,Nt={$$typeof:A,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Tu(){return{controller:new R1,data:new Map,refCount:0}}function wo(e){e.refCount--,e.refCount===0&&M1(O1,function(){e.controller.abort()})}var No=null,ku=0,_i=0,xi=null;function I1(e,t){if(No===null){var a=No=[];ku=0,_i=jd(),xi={status:"pending",value:void 0,then:function(r){a.push(r)}}}return ku++,t.then(ah,ah),t}function ah(){if(--ku===0&&No!==null){xi!==null&&(xi.status="fulfilled");var e=No;No=null,_i=0,xi=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function L1(e,t){var a=[],r={status:"pending",value:null,reason:null,then:function(f){a.push(f)}};return e.then(function(){r.status="fulfilled",r.value=t;for(var f=0;f<a.length;f++)(0,a[f])(t)},function(f){for(r.status="rejected",r.reason=f,f=0;f<a.length;f++)(0,a[f])(void 0)}),r}var ih=I.S;I.S=function(e,t){Hg=Kt(),typeof t=="object"&&t!==null&&typeof t.then=="function"&&I1(e,t),ih!==null&&ih(e,t)};var Da=ze(null);function wu(){var e=Da.current;return e!==null?e:ot.pooledCache}function tl(e,t){t===null?Ne(Da,Da.current):Ne(Da,t.pool)}function oh(){var e=wu();return e===null?null:{parent:Nt._currentValue,pool:e}}var Si=Error(o(460)),Nu=Error(o(474)),nl=Error(o(542)),sl={then:function(){}};function rh(e){return e=e.status,e==="fulfilled"||e==="rejected"}function lh(e,t,a){switch(a=e[a],a===void 0?e.push(t):a!==t&&(t.then(us,us),t=a),t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,uh(e),e;default:if(typeof t.status=="string")t.then(us,us);else{if(e=ot,e!==null&&100<e.shellSuspendCounter)throw Error(o(482));e=t,e.status="pending",e.then(function(r){if(t.status==="pending"){var f=t;f.status="fulfilled",f.value=r}},function(r){if(t.status==="pending"){var f=t;f.status="rejected",f.reason=r}})}switch(t.status){case"fulfilled":return t.value;case"rejected":throw e=t.reason,uh(e),e}throw Ma=t,Si}}function Ra(e){try{var t=e._init;return t(e._payload)}catch(a){throw a!==null&&typeof a=="object"&&typeof a.then=="function"?(Ma=a,Si):a}}var Ma=null;function ch(){if(Ma===null)throw Error(o(459));var e=Ma;return Ma=null,e}function uh(e){if(e===Si||e===nl)throw Error(o(483))}var Ti=null,jo=0;function al(e){var t=jo;return jo+=1,Ti===null&&(Ti=[]),lh(Ti,e,t)}function Co(e,t){t=t.props.ref,e.ref=t!==void 0?t:null}function il(e,t){throw t.$$typeof===_?Error(o(525)):(e=Object.prototype.toString.call(t),Error(o(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)))}function dh(e){function t(L,R){if(e){var z=L.deletions;z===null?(L.deletions=[R],L.flags|=16):z.push(R)}}function a(L,R){if(!e)return null;for(;R!==null;)t(L,R),R=R.sibling;return null}function r(L){for(var R=new Map;L!==null;)L.key!==null?R.set(L.key,L):R.set(L.index,L),L=L.sibling;return R}function f(L,R){return L=fs(L,R),L.index=0,L.sibling=null,L}function p(L,R,z){return L.index=z,e?(z=L.alternate,z!==null?(z=z.index,z<R?(L.flags|=67108866,R):z):(L.flags|=67108866,R)):(L.flags|=1048576,R)}function x(L){return e&&L.alternate===null&&(L.flags|=67108866),L}function k(L,R,z,J){return R===null||R.tag!==6?(R=mu(z,L.mode,J),R.return=L,R):(R=f(R,z),R.return=L,R)}function D(L,R,z,J){var _e=z.type;return _e===N?Y(L,R,z.props.children,J,z.key):R!==null&&(R.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===U&&Ra(_e)===R.type)?(R=f(R,z.props),Co(R,z),R.return=L,R):(R=Xr(z.type,z.key,z.props,null,L.mode,J),Co(R,z),R.return=L,R)}function P(L,R,z,J){return R===null||R.tag!==4||R.stateNode.containerInfo!==z.containerInfo||R.stateNode.implementation!==z.implementation?(R=hu(z,L.mode,J),R.return=L,R):(R=f(R,z.children||[]),R.return=L,R)}function Y(L,R,z,J,_e){return R===null||R.tag!==7?(R=ja(z,L.mode,J,_e),R.return=L,R):(R=f(R,z),R.return=L,R)}function X(L,R,z){if(typeof R=="string"&&R!==""||typeof R=="number"||typeof R=="bigint")return R=mu(""+R,L.mode,z),R.return=L,R;if(typeof R=="object"&&R!==null){switch(R.$$typeof){case S:return z=Xr(R.type,R.key,R.props,null,L.mode,z),Co(z,R),z.return=L,z;case T:return R=hu(R,L.mode,z),R.return=L,R;case U:return R=Ra(R),X(L,R,z)}if(re(R)||ae(R))return R=ja(R,L.mode,z,null),R.return=L,R;if(typeof R.then=="function")return X(L,al(R),z);if(R.$$typeof===A)return X(L,el(L,R),z);il(L,R)}return null}function q(L,R,z,J){var _e=R!==null?R.key:null;if(typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint")return _e!==null?null:k(L,R,""+z,J);if(typeof z=="object"&&z!==null){switch(z.$$typeof){case S:return z.key===_e?D(L,R,z,J):null;case T:return z.key===_e?P(L,R,z,J):null;case U:return z=Ra(z),q(L,R,z,J)}if(re(z)||ae(z))return _e!==null?null:Y(L,R,z,J,null);if(typeof z.then=="function")return q(L,R,al(z),J);if(z.$$typeof===A)return q(L,R,el(L,z),J);il(L,z)}return null}function Z(L,R,z,J,_e){if(typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint")return L=L.get(z)||null,k(R,L,""+J,_e);if(typeof J=="object"&&J!==null){switch(J.$$typeof){case S:return L=L.get(J.key===null?z:J.key)||null,D(R,L,J,_e);case T:return L=L.get(J.key===null?z:J.key)||null,P(R,L,J,_e);case U:return J=Ra(J),Z(L,R,z,J,_e)}if(re(J)||ae(J))return L=L.get(z)||null,Y(R,L,J,_e,null);if(typeof J.then=="function")return Z(L,R,z,al(J),_e);if(J.$$typeof===A)return Z(L,R,z,el(R,J),_e);il(R,J)}return null}function ge(L,R,z,J){for(var _e=null,Ye=null,ve=R,Ie=R=0,Ve=null;ve!==null&&Ie<z.length;Ie++){ve.index>Ie?(Ve=ve,ve=null):Ve=ve.sibling;var Je=q(L,ve,z[Ie],J);if(Je===null){ve===null&&(ve=Ve);break}e&&ve&&Je.alternate===null&&t(L,ve),R=p(Je,R,Ie),Ye===null?_e=Je:Ye.sibling=Je,Ye=Je,ve=Ve}if(Ie===z.length)return a(L,ve),Ge&&ps(L,Ie),_e;if(ve===null){for(;Ie<z.length;Ie++)ve=X(L,z[Ie],J),ve!==null&&(R=p(ve,R,Ie),Ye===null?_e=ve:Ye.sibling=ve,Ye=ve);return Ge&&ps(L,Ie),_e}for(ve=r(ve);Ie<z.length;Ie++)Ve=Z(ve,L,Ie,z[Ie],J),Ve!==null&&(e&&Ve.alternate!==null&&ve.delete(Ve.key===null?Ie:Ve.key),R=p(Ve,R,Ie),Ye===null?_e=Ve:Ye.sibling=Ve,Ye=Ve);return e&&ve.forEach(function(la){return t(L,la)}),Ge&&ps(L,Ie),_e}function Se(L,R,z,J){if(z==null)throw Error(o(151));for(var _e=null,Ye=null,ve=R,Ie=R=0,Ve=null,Je=z.next();ve!==null&&!Je.done;Ie++,Je=z.next()){ve.index>Ie?(Ve=ve,ve=null):Ve=ve.sibling;var la=q(L,ve,Je.value,J);if(la===null){ve===null&&(ve=Ve);break}e&&ve&&la.alternate===null&&t(L,ve),R=p(la,R,Ie),Ye===null?_e=la:Ye.sibling=la,Ye=la,ve=Ve}if(Je.done)return a(L,ve),Ge&&ps(L,Ie),_e;if(ve===null){for(;!Je.done;Ie++,Je=z.next())Je=X(L,Je.value,J),Je!==null&&(R=p(Je,R,Ie),Ye===null?_e=Je:Ye.sibling=Je,Ye=Je);return Ge&&ps(L,Ie),_e}for(ve=r(ve);!Je.done;Ie++,Je=z.next())Je=Z(ve,L,Ie,Je.value,J),Je!==null&&(e&&Je.alternate!==null&&ve.delete(Je.key===null?Ie:Je.key),R=p(Je,R,Ie),Ye===null?_e=Je:Ye.sibling=Je,Ye=Je);return e&&ve.forEach(function(FS){return t(L,FS)}),Ge&&ps(L,Ie),_e}function it(L,R,z,J){if(typeof z=="object"&&z!==null&&z.type===N&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case S:e:{for(var _e=z.key;R!==null;){if(R.key===_e){if(_e=z.type,_e===N){if(R.tag===7){a(L,R.sibling),J=f(R,z.props.children),J.return=L,L=J;break e}}else if(R.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===U&&Ra(_e)===R.type){a(L,R.sibling),J=f(R,z.props),Co(J,z),J.return=L,L=J;break e}a(L,R);break}else t(L,R);R=R.sibling}z.type===N?(J=ja(z.props.children,L.mode,J,z.key),J.return=L,L=J):(J=Xr(z.type,z.key,z.props,null,L.mode,J),Co(J,z),J.return=L,L=J)}return x(L);case T:e:{for(_e=z.key;R!==null;){if(R.key===_e)if(R.tag===4&&R.stateNode.containerInfo===z.containerInfo&&R.stateNode.implementation===z.implementation){a(L,R.sibling),J=f(R,z.children||[]),J.return=L,L=J;break e}else{a(L,R);break}else t(L,R);R=R.sibling}J=hu(z,L.mode,J),J.return=L,L=J}return x(L);case U:return z=Ra(z),it(L,R,z,J)}if(re(z))return ge(L,R,z,J);if(ae(z)){if(_e=ae(z),typeof _e!="function")throw Error(o(150));return z=_e.call(z),Se(L,R,z,J)}if(typeof z.then=="function")return it(L,R,al(z),J);if(z.$$typeof===A)return it(L,R,el(L,z),J);il(L,z)}return typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint"?(z=""+z,R!==null&&R.tag===6?(a(L,R.sibling),J=f(R,z),J.return=L,L=J):(a(L,R),J=mu(z,L.mode,J),J.return=L,L=J),x(L)):a(L,R)}return function(L,R,z,J){try{jo=0;var _e=it(L,R,z,J);return Ti=null,_e}catch(ve){if(ve===Si||ve===nl)throw ve;var Ye=pn(29,ve,null,L.mode);return Ye.lanes=J,Ye.return=L,Ye}finally{}}}var Oa=dh(!0),fh=dh(!1),$s=!1;function ju(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Cu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Zs(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Fs(e,t,a){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(We&2)!==0){var f=r.pending;return f===null?t.next=t:(t.next=f.next,f.next=t),r.pending=t,t=Jr(e),Ym(e,null,a),t}return Yr(e,r,t,a),Jr(e)}function Eo(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,St(e,a)}}function Eu(e,t){var a=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,a===r)){var f=null,p=null;if(a=a.firstBaseUpdate,a!==null){do{var x={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};p===null?f=p=x:p=p.next=x,a=a.next}while(a!==null);p===null?f=p=t:p=p.next=t}else f=p=t;a={baseState:r.baseState,firstBaseUpdate:f,lastBaseUpdate:p,shared:r.shared,callbacks:r.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var Au=!1;function Ao(){if(Au){var e=xi;if(e!==null)throw e}}function Do(e,t,a,r){Au=!1;var f=e.updateQueue;$s=!1;var p=f.firstBaseUpdate,x=f.lastBaseUpdate,k=f.shared.pending;if(k!==null){f.shared.pending=null;var D=k,P=D.next;D.next=null,x===null?p=P:x.next=P,x=D;var Y=e.alternate;Y!==null&&(Y=Y.updateQueue,k=Y.lastBaseUpdate,k!==x&&(k===null?Y.firstBaseUpdate=P:k.next=P,Y.lastBaseUpdate=D))}if(p!==null){var X=f.baseState;x=0,Y=P=D=null,k=p;do{var q=k.lane&-536870913,Z=q!==k.lane;if(Z?(Pe&q)===q:(r&q)===q){q!==0&&q===_i&&(Au=!0),Y!==null&&(Y=Y.next={lane:0,tag:k.tag,payload:k.payload,callback:null,next:null});e:{var ge=e,Se=k;q=t;var it=a;switch(Se.tag){case 1:if(ge=Se.payload,typeof ge=="function"){X=ge.call(it,X,q);break e}X=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=Se.payload,q=typeof ge=="function"?ge.call(it,X,q):ge,q==null)break e;X=b({},X,q);break e;case 2:$s=!0}}q=k.callback,q!==null&&(e.flags|=64,Z&&(e.flags|=8192),Z=f.callbacks,Z===null?f.callbacks=[q]:Z.push(q))}else Z={lane:q,tag:k.tag,payload:k.payload,callback:k.callback,next:null},Y===null?(P=Y=Z,D=X):Y=Y.next=Z,x|=q;if(k=k.next,k===null){if(k=f.shared.pending,k===null)break;Z=k,k=Z.next,Z.next=null,f.lastBaseUpdate=Z,f.shared.pending=null}}while(!0);Y===null&&(D=X),f.baseState=D,f.firstBaseUpdate=P,f.lastBaseUpdate=Y,p===null&&(f.shared.lanes=0),Ws|=x,e.lanes=x,e.memoizedState=X}}function ph(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function mh(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;e<a.length;e++)ph(a[e],t)}var ki=ze(null),ol=ze(0);function hh(e,t){e=ks,Ne(ol,e),Ne(ki,t),ks=e|t.baseLanes}function Du(){Ne(ol,ks),Ne(ki,ki.current)}function Ru(){ks=ol.current,je(ki),je(ol)}var mn=ze(null),Dn=null;function Ks(e){var t=e.alternate;Ne(Tt,Tt.current&1),Ne(mn,e),Dn===null&&(t===null||ki.current!==null||t.memoizedState!==null)&&(Dn=e)}function Mu(e){Ne(Tt,Tt.current),Ne(mn,e),Dn===null&&(Dn=e)}function gh(e){e.tag===22?(Ne(Tt,Tt.current),Ne(mn,e),Dn===null&&(Dn=e)):Ys()}function Ys(){Ne(Tt,Tt.current),Ne(mn,mn.current)}function hn(e){je(mn),Dn===e&&(Dn=null),je(Tt)}var Tt=ze(0);function rl(e){for(var t=e;t!==null;){if(t.tag===13){var a=t.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||zd(a)||Pd(a)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder==="forwards"||t.memoizedProps.revealOrder==="backwards"||t.memoizedProps.revealOrder==="unstable_legacy-backwards"||t.memoizedProps.revealOrder==="together")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var gs=0,De=null,st=null,jt=null,ll=!1,wi=!1,Ia=!1,cl=0,Ro=0,Ni=null,B1=0;function yt(){throw Error(o(321))}function Ou(e,t){if(t===null)return!1;for(var a=0;a<t.length&&a<e.length;a++)if(!fn(e[a],t[a]))return!1;return!0}function Iu(e,t,a,r,f,p){return gs=p,De=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,I.H=e===null||e.memoizedState===null?Qh:Ju,Ia=!1,p=a(r,f),Ia=!1,wi&&(p=yh(t,a,r,f)),vh(e),p}function vh(e){I.H=Io;var t=st!==null&&st.next!==null;if(gs=0,jt=st=De=null,ll=!1,Ro=0,Ni=null,t)throw Error(o(300));e===null||Ct||(e=e.dependencies,e!==null&&Qr(e)&&(Ct=!0))}function yh(e,t,a,r){De=e;var f=0;do{if(wi&&(Ni=null),Ro=0,wi=!1,25<=f)throw Error(o(301));if(f+=1,jt=st=null,e.updateQueue!=null){var p=e.updateQueue;p.lastEffect=null,p.events=null,p.stores=null,p.memoCache!=null&&(p.memoCache.index=0)}I.H=eg,p=t(a,r)}while(wi);return p}function U1(){var e=I.H,t=e.useState()[0];return t=typeof t.then=="function"?Mo(t):t,e=e.useState()[0],(st!==null?st.memoizedState:null)!==e&&(De.flags|=1024),t}function Lu(){var e=cl!==0;return cl=0,e}function Bu(e,t,a){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a}function Uu(e){if(ll){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}ll=!1}gs=0,jt=st=De=null,wi=!1,Ro=cl=0,Ni=null}function Qt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return jt===null?De.memoizedState=jt=e:jt=jt.next=e,jt}function kt(){if(st===null){var e=De.alternate;e=e!==null?e.memoizedState:null}else e=st.next;var t=jt===null?De.memoizedState:jt.next;if(t!==null)jt=t,st=e;else{if(e===null)throw De.alternate===null?Error(o(467)):Error(o(310));st=e,e={memoizedState:st.memoizedState,baseState:st.baseState,baseQueue:st.baseQueue,queue:st.queue,next:null},jt===null?De.memoizedState=jt=e:jt=jt.next=e}return jt}function ul(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Mo(e){var t=Ro;return Ro+=1,Ni===null&&(Ni=[]),e=lh(Ni,e,t),t=De,(jt===null?t.memoizedState:jt.next)===null&&(t=t.alternate,I.H=t===null||t.memoizedState===null?Qh:Ju),e}function dl(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Mo(e);if(e.$$typeof===A)return qt(e)}throw Error(o(438,String(e)))}function zu(e){var t=null,a=De.updateQueue;if(a!==null&&(t=a.memoCache),t==null){var r=De.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(f){return f.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),a===null&&(a=ul(),De.updateQueue=a),a.memoCache=t,a=t.data[t.index],a===void 0)for(a=t.data[t.index]=Array(e),r=0;r<e;r++)a[r]=F;return t.index++,a}function vs(e,t){return typeof t=="function"?t(e):t}function fl(e){var t=kt();return Pu(t,st,e)}function Pu(e,t,a){var r=e.queue;if(r===null)throw Error(o(311));r.lastRenderedReducer=a;var f=e.baseQueue,p=r.pending;if(p!==null){if(f!==null){var x=f.next;f.next=p.next,p.next=x}t.baseQueue=f=p,r.pending=null}if(p=e.baseState,f===null)e.memoizedState=p;else{t=f.next;var k=x=null,D=null,P=t,Y=!1;do{var X=P.lane&-536870913;if(X!==P.lane?(Pe&X)===X:(gs&X)===X){var q=P.revertLane;if(q===0)D!==null&&(D=D.next={lane:0,revertLane:0,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null}),X===_i&&(Y=!0);else if((gs&q)===q){P=P.next,q===_i&&(Y=!0);continue}else X={lane:0,revertLane:P.revertLane,gesture:null,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},D===null?(k=D=X,x=p):D=D.next=X,De.lanes|=q,Ws|=q;X=P.action,Ia&&a(p,X),p=P.hasEagerState?P.eagerState:a(p,X)}else q={lane:X,revertLane:P.revertLane,gesture:P.gesture,action:P.action,hasEagerState:P.hasEagerState,eagerState:P.eagerState,next:null},D===null?(k=D=q,x=p):D=D.next=q,De.lanes|=X,Ws|=X;P=P.next}while(P!==null&&P!==t);if(D===null?x=p:D.next=k,!fn(p,e.memoizedState)&&(Ct=!0,Y&&(a=xi,a!==null)))throw a;e.memoizedState=p,e.baseState=x,e.baseQueue=D,r.lastRenderedState=p}return f===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function Vu(e){var t=kt(),a=t.queue;if(a===null)throw Error(o(311));a.lastRenderedReducer=e;var r=a.dispatch,f=a.pending,p=t.memoizedState;if(f!==null){a.pending=null;var x=f=f.next;do p=e(p,x.action),x=x.next;while(x!==f);fn(p,t.memoizedState)||(Ct=!0),t.memoizedState=p,t.baseQueue===null&&(t.baseState=p),a.lastRenderedState=p}return[p,r]}function bh(e,t,a){var r=De,f=kt(),p=Ge;if(p){if(a===void 0)throw Error(o(407));a=a()}else a=t();var x=!fn((st||f).memoizedState,a);if(x&&(f.memoizedState=a,Ct=!0),f=f.queue,Gu(Sh.bind(null,r,f,e),[e]),f.getSnapshot!==t||x||jt!==null&&jt.memoizedState.tag&1){if(r.flags|=2048,ji(9,{destroy:void 0},xh.bind(null,r,f,a,t),null),ot===null)throw Error(o(349));p||(gs&127)!==0||_h(r,t,a)}return a}function _h(e,t,a){e.flags|=16384,e={getSnapshot:t,value:a},t=De.updateQueue,t===null?(t=ul(),De.updateQueue=t,t.stores=[e]):(a=t.stores,a===null?t.stores=[e]:a.push(e))}function xh(e,t,a,r){t.value=a,t.getSnapshot=r,Th(t)&&kh(e)}function Sh(e,t,a){return a(function(){Th(t)&&kh(e)})}function Th(e){var t=e.getSnapshot;e=e.value;try{var a=t();return!fn(e,a)}catch{return!0}}function kh(e){var t=Na(e,2);t!==null&&cn(t,e,2)}function Hu(e){var t=Qt();if(typeof e=="function"){var a=e;if(e=a(),Ia){Pn(!0);try{a()}finally{Pn(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:e},t}function wh(e,t,a,r){return e.baseState=a,Pu(e,st,typeof r=="function"?r:vs)}function z1(e,t,a,r,f){if(hl(e))throw Error(o(485));if(e=t.action,e!==null){var p={payload:f,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(x){p.listeners.push(x)}};I.T!==null?a(!0):p.isTransition=!1,r(p),a=t.pending,a===null?(p.next=t.pending=p,Nh(t,p)):(p.next=a.next,t.pending=a.next=p)}}function Nh(e,t){var a=t.action,r=t.payload,f=e.state;if(t.isTransition){var p=I.T,x={};I.T=x;try{var k=a(f,r),D=I.S;D!==null&&D(x,k),jh(e,t,k)}catch(P){qu(e,t,P)}finally{p!==null&&x.types!==null&&(p.types=x.types),I.T=p}}else try{p=a(f,r),jh(e,t,p)}catch(P){qu(e,t,P)}}function jh(e,t,a){a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(function(r){Ch(e,t,r)},function(r){return qu(e,t,r)}):Ch(e,t,a)}function Ch(e,t,a){t.status="fulfilled",t.value=a,Eh(t),e.state=a,t=e.pending,t!==null&&(a=t.next,a===t?e.pending=null:(a=a.next,t.next=a,Nh(e,a)))}function qu(e,t,a){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status="rejected",t.reason=a,Eh(t),t=t.next;while(t!==r)}e.action=null}function Eh(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ah(e,t){return t}function Dh(e,t){if(Ge){var a=ot.formState;if(a!==null){e:{var r=De;if(Ge){if(lt){t:{for(var f=lt,p=An;f.nodeType!==8;){if(!p){f=null;break t}if(f=Rn(f.nextSibling),f===null){f=null;break t}}p=f.data,f=p==="F!"||p==="F"?f:null}if(f){lt=Rn(f.nextSibling),r=f.data==="F!";break e}}qs(r)}r=!1}r&&(t=a[0])}}return a=Qt(),a.memoizedState=a.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ah,lastRenderedState:t},a.queue=r,a=Jh.bind(null,De,r),r.dispatch=a,r=Hu(!1),p=Yu.bind(null,De,!1,r.queue),r=Qt(),f={state:t,dispatch:null,action:e,pending:null},r.queue=f,a=z1.bind(null,De,f,p,a),f.dispatch=a,r.memoizedState=e,[t,a,!1]}function Rh(e){var t=kt();return Mh(t,st,e)}function Mh(e,t,a){if(t=Pu(e,t,Ah)[0],e=fl(vs)[0],typeof t=="object"&&t!==null&&typeof t.then=="function")try{var r=Mo(t)}catch(x){throw x===Si?nl:x}else r=t;t=kt();var f=t.queue,p=f.dispatch;return a!==t.memoizedState&&(De.flags|=2048,ji(9,{destroy:void 0},P1.bind(null,f,a),null)),[r,p,e]}function P1(e,t){e.action=t}function Oh(e){var t=kt(),a=st;if(a!==null)return Mh(t,a,e);kt(),t=t.memoizedState,a=kt();var r=a.queue.dispatch;return a.memoizedState=e,[t,r,!1]}function ji(e,t,a,r){return e={tag:e,create:a,deps:r,inst:t,next:null},t=De.updateQueue,t===null&&(t=ul(),De.updateQueue=t),a=t.lastEffect,a===null?t.lastEffect=e.next=e:(r=a.next,a.next=e,e.next=r,t.lastEffect=e),e}function Ih(){return kt().memoizedState}function pl(e,t,a,r){var f=Qt();De.flags|=e,f.memoizedState=ji(1|t,{destroy:void 0},a,r===void 0?null:r)}function ml(e,t,a,r){var f=kt();r=r===void 0?null:r;var p=f.memoizedState.inst;st!==null&&r!==null&&Ou(r,st.memoizedState.deps)?f.memoizedState=ji(t,p,a,r):(De.flags|=e,f.memoizedState=ji(1|t,p,a,r))}function Lh(e,t){pl(8390656,8,e,t)}function Gu(e,t){ml(2048,8,e,t)}function V1(e){De.flags|=4;var t=De.updateQueue;if(t===null)t=ul(),De.updateQueue=t,t.events=[e];else{var a=t.events;a===null?t.events=[e]:a.push(e)}}function Bh(e){var t=kt().memoizedState;return V1({ref:t,nextImpl:e}),function(){if((We&2)!==0)throw Error(o(440));return t.impl.apply(void 0,arguments)}}function Uh(e,t){return ml(4,2,e,t)}function zh(e,t){return ml(4,4,e,t)}function Ph(e,t){if(typeof t=="function"){e=e();var a=t(e);return function(){typeof a=="function"?a():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Vh(e,t,a){a=a!=null?a.concat([e]):null,ml(4,4,Ph.bind(null,t,e),a)}function $u(){}function Hh(e,t){var a=kt();t=t===void 0?null:t;var r=a.memoizedState;return t!==null&&Ou(t,r[1])?r[0]:(a.memoizedState=[e,t],e)}function qh(e,t){var a=kt();t=t===void 0?null:t;var r=a.memoizedState;if(t!==null&&Ou(t,r[1]))return r[0];if(r=e(),Ia){Pn(!0);try{e()}finally{Pn(!1)}}return a.memoizedState=[r,t],r}function Zu(e,t,a){return a===void 0||(gs&1073741824)!==0&&(Pe&261930)===0?e.memoizedState=t:(e.memoizedState=a,e=Gg(),De.lanes|=e,Ws|=e,a)}function Gh(e,t,a,r){return fn(a,t)?a:ki.current!==null?(e=Zu(e,a,r),fn(e,t)||(Ct=!0),e):(gs&42)===0||(gs&1073741824)!==0&&(Pe&261930)===0?(Ct=!0,e.memoizedState=a):(e=Gg(),De.lanes|=e,Ws|=e,t)}function $h(e,t,a,r,f){var p=$.p;$.p=p!==0&&8>p?p:8;var x=I.T,k={};I.T=k,Yu(e,!1,t,a);try{var D=f(),P=I.S;if(P!==null&&P(k,D),D!==null&&typeof D=="object"&&typeof D.then=="function"){var Y=L1(D,r);Oo(e,t,Y,yn(e))}else Oo(e,t,r,yn(e))}catch(X){Oo(e,t,{then:function(){},status:"rejected",reason:X},yn())}finally{$.p=p,x!==null&&k.types!==null&&(x.types=k.types),I.T=x}}function H1(){}function Fu(e,t,a,r){if(e.tag!==5)throw Error(o(476));var f=Zh(e).queue;$h(e,f,t,Q,a===null?H1:function(){return Fh(e),a(r)})}function Zh(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Q,baseState:Q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:Q},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Fh(e){var t=Zh(e);t.next===null&&(t=e.alternate.memoizedState),Oo(e,t.next.queue,{},yn())}function Ku(){return qt(Xo)}function Kh(){return kt().memoizedState}function Yh(){return kt().memoizedState}function q1(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=yn();e=Zs(a);var r=Fs(t,e,a);r!==null&&(cn(r,t,a),Eo(r,t,a)),t={cache:Tu()},e.payload=t;return}t=t.return}}function G1(e,t,a){var r=yn();a={lane:r,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},hl(e)?Xh(t,a):(a=fu(e,t,a,r),a!==null&&(cn(a,e,r),Wh(a,t,r)))}function Jh(e,t,a){var r=yn();Oo(e,t,a,r)}function Oo(e,t,a,r){var f={lane:r,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(hl(e))Xh(t,f);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=t.lastRenderedReducer,p!==null))try{var x=t.lastRenderedState,k=p(x,a);if(f.hasEagerState=!0,f.eagerState=k,fn(k,x))return Yr(e,t,f,0),ot===null&&Kr(),!1}catch{}finally{}if(a=fu(e,t,f,r),a!==null)return cn(a,e,r),Wh(a,t,r),!0}return!1}function Yu(e,t,a,r){if(r={lane:2,revertLane:jd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},hl(e)){if(t)throw Error(o(479))}else t=fu(e,a,r,2),t!==null&&cn(t,e,2)}function hl(e){var t=e.alternate;return e===De||t!==null&&t===De}function Xh(e,t){wi=ll=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Wh(e,t,a){if((a&4194048)!==0){var r=t.lanes;r&=e.pendingLanes,a|=r,t.lanes=a,St(e,a)}}var Io={readContext:qt,use:dl,useCallback:yt,useContext:yt,useEffect:yt,useImperativeHandle:yt,useLayoutEffect:yt,useInsertionEffect:yt,useMemo:yt,useReducer:yt,useRef:yt,useState:yt,useDebugValue:yt,useDeferredValue:yt,useTransition:yt,useSyncExternalStore:yt,useId:yt,useHostTransitionStatus:yt,useFormState:yt,useActionState:yt,useOptimistic:yt,useMemoCache:yt,useCacheRefresh:yt};Io.useEffectEvent=yt;var Qh={readContext:qt,use:dl,useCallback:function(e,t){return Qt().memoizedState=[e,t===void 0?null:t],e},useContext:qt,useEffect:Lh,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,pl(4194308,4,Ph.bind(null,t,e),a)},useLayoutEffect:function(e,t){return pl(4194308,4,e,t)},useInsertionEffect:function(e,t){pl(4,2,e,t)},useMemo:function(e,t){var a=Qt();t=t===void 0?null:t;var r=e();if(Ia){Pn(!0);try{e()}finally{Pn(!1)}}return a.memoizedState=[r,t],r},useReducer:function(e,t,a){var r=Qt();if(a!==void 0){var f=a(t);if(Ia){Pn(!0);try{a(t)}finally{Pn(!1)}}}else f=t;return r.memoizedState=r.baseState=f,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:f},r.queue=e,e=e.dispatch=G1.bind(null,De,e),[r.memoizedState,e]},useRef:function(e){var t=Qt();return e={current:e},t.memoizedState=e},useState:function(e){e=Hu(e);var t=e.queue,a=Jh.bind(null,De,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:$u,useDeferredValue:function(e,t){var a=Qt();return Zu(a,e,t)},useTransition:function(){var e=Hu(!1);return e=$h.bind(null,De,e.queue,!0,!1),Qt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var r=De,f=Qt();if(Ge){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),ot===null)throw Error(o(349));(Pe&127)!==0||_h(r,t,a)}f.memoizedState=a;var p={value:a,getSnapshot:t};return f.queue=p,Lh(Sh.bind(null,r,p,e),[e]),r.flags|=2048,ji(9,{destroy:void 0},xh.bind(null,r,p,a,t),null),a},useId:function(){var e=Qt(),t=ot.identifierPrefix;if(Ge){var a=Wn,r=Xn;a=(r&~(1<<32-Jt(r)-1)).toString(32)+a,t="_"+t+"R_"+a,a=cl++,0<a&&(t+="H"+a.toString(32)),t+="_"}else a=B1++,t="_"+t+"r_"+a.toString(32)+"_";return e.memoizedState=t},useHostTransitionStatus:Ku,useFormState:Dh,useActionState:Dh,useOptimistic:function(e){var t=Qt();t.memoizedState=t.baseState=e;var a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=a,t=Yu.bind(null,De,!0,a),a.dispatch=t,[e,t]},useMemoCache:zu,useCacheRefresh:function(){return Qt().memoizedState=q1.bind(null,De)},useEffectEvent:function(e){var t=Qt(),a={impl:e};return t.memoizedState=a,function(){if((We&2)!==0)throw Error(o(440));return a.impl.apply(void 0,arguments)}}},Ju={readContext:qt,use:dl,useCallback:Hh,useContext:qt,useEffect:Gu,useImperativeHandle:Vh,useInsertionEffect:Uh,useLayoutEffect:zh,useMemo:qh,useReducer:fl,useRef:Ih,useState:function(){return fl(vs)},useDebugValue:$u,useDeferredValue:function(e,t){var a=kt();return Gh(a,st.memoizedState,e,t)},useTransition:function(){var e=fl(vs)[0],t=kt().memoizedState;return[typeof e=="boolean"?e:Mo(e),t]},useSyncExternalStore:bh,useId:Kh,useHostTransitionStatus:Ku,useFormState:Rh,useActionState:Rh,useOptimistic:function(e,t){var a=kt();return wh(a,st,e,t)},useMemoCache:zu,useCacheRefresh:Yh};Ju.useEffectEvent=Bh;var eg={readContext:qt,use:dl,useCallback:Hh,useContext:qt,useEffect:Gu,useImperativeHandle:Vh,useInsertionEffect:Uh,useLayoutEffect:zh,useMemo:qh,useReducer:Vu,useRef:Ih,useState:function(){return Vu(vs)},useDebugValue:$u,useDeferredValue:function(e,t){var a=kt();return st===null?Zu(a,e,t):Gh(a,st.memoizedState,e,t)},useTransition:function(){var e=Vu(vs)[0],t=kt().memoizedState;return[typeof e=="boolean"?e:Mo(e),t]},useSyncExternalStore:bh,useId:Kh,useHostTransitionStatus:Ku,useFormState:Oh,useActionState:Oh,useOptimistic:function(e,t){var a=kt();return st!==null?wh(a,st,e,t):(a.baseState=e,[e,a.queue.dispatch])},useMemoCache:zu,useCacheRefresh:Yh};eg.useEffectEvent=Bh;function Xu(e,t,a,r){t=e.memoizedState,a=a(r,t),a=a==null?t:b({},t,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Wu={enqueueSetState:function(e,t,a){e=e._reactInternals;var r=yn(),f=Zs(r);f.payload=t,a!=null&&(f.callback=a),t=Fs(e,f,r),t!==null&&(cn(t,e,r),Eo(t,e,r))},enqueueReplaceState:function(e,t,a){e=e._reactInternals;var r=yn(),f=Zs(r);f.tag=1,f.payload=t,a!=null&&(f.callback=a),t=Fs(e,f,r),t!==null&&(cn(t,e,r),Eo(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var a=yn(),r=Zs(a);r.tag=2,t!=null&&(r.callback=t),t=Fs(e,r,a),t!==null&&(cn(t,e,a),Eo(t,e,a))}};function tg(e,t,a,r,f,p,x){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,p,x):t.prototype&&t.prototype.isPureReactComponent?!xo(a,r)||!xo(f,p):!0}function ng(e,t,a,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(a,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(a,r),t.state!==e&&Wu.enqueueReplaceState(t,t.state,null)}function La(e,t){var a=t;if("ref"in t){a={};for(var r in t)r!=="ref"&&(a[r]=t[r])}if(e=e.defaultProps){a===t&&(a=b({},a));for(var f in e)a[f]===void 0&&(a[f]=e[f])}return a}function sg(e){Fr(e)}function ag(e){console.error(e)}function ig(e){Fr(e)}function gl(e,t){try{var a=e.onUncaughtError;a(t.value,{componentStack:t.stack})}catch(r){setTimeout(function(){throw r})}}function og(e,t,a){try{var r=e.onCaughtError;r(a.value,{componentStack:a.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(f){setTimeout(function(){throw f})}}function Qu(e,t,a){return a=Zs(a),a.tag=3,a.payload={element:null},a.callback=function(){gl(e,t)},a}function rg(e){return e=Zs(e),e.tag=3,e}function lg(e,t,a,r){var f=a.type.getDerivedStateFromError;if(typeof f=="function"){var p=r.value;e.payload=function(){return f(p)},e.callback=function(){og(t,a,r)}}var x=a.stateNode;x!==null&&typeof x.componentDidCatch=="function"&&(e.callback=function(){og(t,a,r),typeof f!="function"&&(Qs===null?Qs=new Set([this]):Qs.add(this));var k=r.stack;this.componentDidCatch(r.value,{componentStack:k!==null?k:""})})}function $1(e,t,a,r,f){if(a.flags|=32768,r!==null&&typeof r=="object"&&typeof r.then=="function"){if(t=a.alternate,t!==null&&bi(t,a,f,!0),a=mn.current,a!==null){switch(a.tag){case 31:case 13:return Dn===null?Cl():a.alternate===null&&bt===0&&(bt=3),a.flags&=-257,a.flags|=65536,a.lanes=f,r===sl?a.flags|=16384:(t=a.updateQueue,t===null?a.updateQueue=new Set([r]):t.add(r),kd(e,r,f)),!1;case 22:return a.flags|=65536,r===sl?a.flags|=16384:(t=a.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},a.updateQueue=t):(a=t.retryQueue,a===null?t.retryQueue=new Set([r]):a.add(r)),kd(e,r,f)),!1}throw Error(o(435,a.tag))}return kd(e,r,f),Cl(),!1}if(Ge)return t=mn.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=f,r!==yu&&(e=Error(o(422),{cause:r}),ko(jn(e,a)))):(r!==yu&&(t=Error(o(423),{cause:r}),ko(jn(t,a))),e=e.current.alternate,e.flags|=65536,f&=-f,e.lanes|=f,r=jn(r,a),f=Qu(e.stateNode,r,f),Eu(e,f),bt!==4&&(bt=2)),!1;var p=Error(o(520),{cause:r});if(p=jn(p,a),qo===null?qo=[p]:qo.push(p),bt!==4&&(bt=2),t===null)return!0;r=jn(r,a),a=t;do{switch(a.tag){case 3:return a.flags|=65536,e=f&-f,a.lanes|=e,e=Qu(a.stateNode,r,e),Eu(a,e),!1;case 1:if(t=a.type,p=a.stateNode,(a.flags&128)===0&&(typeof t.getDerivedStateFromError=="function"||p!==null&&typeof p.componentDidCatch=="function"&&(Qs===null||!Qs.has(p))))return a.flags|=65536,f&=-f,a.lanes|=f,f=rg(f),lg(f,e,a,r),Eu(a,f),!1}a=a.return}while(a!==null);return!1}var ed=Error(o(461)),Ct=!1;function Gt(e,t,a,r){t.child=e===null?fh(t,null,a,r):Oa(t,e.child,a,r)}function cg(e,t,a,r,f){a=a.render;var p=t.ref;if("ref"in r){var x={};for(var k in r)k!=="ref"&&(x[k]=r[k])}else x=r;return Aa(t),r=Iu(e,t,a,x,p,f),k=Lu(),e!==null&&!Ct?(Bu(e,t,f),ys(e,t,f)):(Ge&&k&&gu(t),t.flags|=1,Gt(e,t,r,f),t.child)}function ug(e,t,a,r,f){if(e===null){var p=a.type;return typeof p=="function"&&!pu(p)&&p.defaultProps===void 0&&a.compare===null?(t.tag=15,t.type=p,dg(e,t,p,r,f)):(e=Xr(a.type,null,r,t,t.mode,f),e.ref=t.ref,e.return=t,t.child=e)}if(p=e.child,!ld(e,f)){var x=p.memoizedProps;if(a=a.compare,a=a!==null?a:xo,a(x,r)&&e.ref===t.ref)return ys(e,t,f)}return t.flags|=1,e=fs(p,r),e.ref=t.ref,e.return=t,t.child=e}function dg(e,t,a,r,f){if(e!==null){var p=e.memoizedProps;if(xo(p,r)&&e.ref===t.ref)if(Ct=!1,t.pendingProps=r=p,ld(e,f))(e.flags&131072)!==0&&(Ct=!0);else return t.lanes=e.lanes,ys(e,t,f)}return td(e,t,a,r,f)}function fg(e,t,a,r){var f=r.children,p=e!==null?e.memoizedState:null;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode==="hidden"){if((t.flags&128)!==0){if(p=p!==null?p.baseLanes|a:a,e!==null){for(r=t.child=e.child,f=0;r!==null;)f=f|r.lanes|r.childLanes,r=r.sibling;r=f&~p}else r=0,t.child=null;return pg(e,t,p,a,r)}if((a&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&tl(t,p!==null?p.cachePool:null),p!==null?hh(t,p):Du(),gh(t);else return r=t.lanes=536870912,pg(e,t,p!==null?p.baseLanes|a:a,a,r)}else p!==null?(tl(t,p.cachePool),hh(t,p),Ys(),t.memoizedState=null):(e!==null&&tl(t,null),Du(),Ys());return Gt(e,t,f,a),t.child}function Lo(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function pg(e,t,a,r,f){var p=wu();return p=p===null?null:{parent:Nt._currentValue,pool:p},t.memoizedState={baseLanes:a,cachePool:p},e!==null&&tl(t,null),Du(),gh(t),e!==null&&bi(e,t,r,!0),t.childLanes=f,null}function vl(e,t){return t=bl({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function mg(e,t,a){return Oa(t,e.child,null,a),e=vl(t,t.pendingProps),e.flags|=2,hn(t),t.memoizedState=null,e}function Z1(e,t,a){var r=t.pendingProps,f=(t.flags&128)!==0;if(t.flags&=-129,e===null){if(Ge){if(r.mode==="hidden")return e=vl(t,r),t.lanes=536870912,Lo(null,e);if(Mu(t),(e=lt)?(e=Nv(e,An),e=e!==null&&e.data==="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Vs!==null?{id:Xn,overflow:Wn}:null,retryLane:536870912,hydrationErrors:null},a=Xm(e),a.return=t,t.child=a,Ht=t,lt=null)):e=null,e===null)throw qs(t);return t.lanes=536870912,null}return vl(t,r)}var p=e.memoizedState;if(p!==null){var x=p.dehydrated;if(Mu(t),f)if(t.flags&256)t.flags&=-257,t=mg(e,t,a);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(o(558));else if(Ct||bi(e,t,a,!1),f=(a&e.childLanes)!==0,Ct||f){if(r=ot,r!==null&&(x=ls(r,a),x!==0&&x!==p.retryLane))throw p.retryLane=x,Na(e,x),cn(r,e,x),ed;Cl(),t=mg(e,t,a)}else e=p.treeContext,lt=Rn(x.nextSibling),Ht=t,Ge=!0,Hs=null,An=!1,e!==null&&eh(t,e),t=vl(t,r),t.flags|=4096;return t}return e=fs(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function yl(e,t){var a=t.ref;if(a===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(o(284));(e===null||e.ref!==a)&&(t.flags|=4194816)}}function td(e,t,a,r,f){return Aa(t),a=Iu(e,t,a,r,void 0,f),r=Lu(),e!==null&&!Ct?(Bu(e,t,f),ys(e,t,f)):(Ge&&r&&gu(t),t.flags|=1,Gt(e,t,a,f),t.child)}function hg(e,t,a,r,f,p){return Aa(t),t.updateQueue=null,a=yh(t,r,a,f),vh(e),r=Lu(),e!==null&&!Ct?(Bu(e,t,p),ys(e,t,p)):(Ge&&r&&gu(t),t.flags|=1,Gt(e,t,a,p),t.child)}function gg(e,t,a,r,f){if(Aa(t),t.stateNode===null){var p=hi,x=a.contextType;typeof x=="object"&&x!==null&&(p=qt(x)),p=new a(r,p),t.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,p.updater=Wu,t.stateNode=p,p._reactInternals=t,p=t.stateNode,p.props=r,p.state=t.memoizedState,p.refs={},ju(t),x=a.contextType,p.context=typeof x=="object"&&x!==null?qt(x):hi,p.state=t.memoizedState,x=a.getDerivedStateFromProps,typeof x=="function"&&(Xu(t,a,x,r),p.state=t.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(x=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),x!==p.state&&Wu.enqueueReplaceState(p,p.state,null),Do(t,r,p,f),Ao(),p.state=t.memoizedState),typeof p.componentDidMount=="function"&&(t.flags|=4194308),r=!0}else if(e===null){p=t.stateNode;var k=t.memoizedProps,D=La(a,k);p.props=D;var P=p.context,Y=a.contextType;x=hi,typeof Y=="object"&&Y!==null&&(x=qt(Y));var X=a.getDerivedStateFromProps;Y=typeof X=="function"||typeof p.getSnapshotBeforeUpdate=="function",k=t.pendingProps!==k,Y||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(k||P!==x)&&ng(t,p,r,x),$s=!1;var q=t.memoizedState;p.state=q,Do(t,r,p,f),Ao(),P=t.memoizedState,k||q!==P||$s?(typeof X=="function"&&(Xu(t,a,X,r),P=t.memoizedState),(D=$s||tg(t,a,D,r,q,P,x))?(Y||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount()),typeof p.componentDidMount=="function"&&(t.flags|=4194308)):(typeof p.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=P),p.props=r,p.state=P,p.context=x,r=D):(typeof p.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{p=t.stateNode,Cu(e,t),x=t.memoizedProps,Y=La(a,x),p.props=Y,X=t.pendingProps,q=p.context,P=a.contextType,D=hi,typeof P=="object"&&P!==null&&(D=qt(P)),k=a.getDerivedStateFromProps,(P=typeof k=="function"||typeof p.getSnapshotBeforeUpdate=="function")||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(x!==X||q!==D)&&ng(t,p,r,D),$s=!1,q=t.memoizedState,p.state=q,Do(t,r,p,f),Ao();var Z=t.memoizedState;x!==X||q!==Z||$s||e!==null&&e.dependencies!==null&&Qr(e.dependencies)?(typeof k=="function"&&(Xu(t,a,k,r),Z=t.memoizedState),(Y=$s||tg(t,a,Y,r,q,Z,D)||e!==null&&e.dependencies!==null&&Qr(e.dependencies))?(P||typeof p.UNSAFE_componentWillUpdate!="function"&&typeof p.componentWillUpdate!="function"||(typeof p.componentWillUpdate=="function"&&p.componentWillUpdate(r,Z,D),typeof p.UNSAFE_componentWillUpdate=="function"&&p.UNSAFE_componentWillUpdate(r,Z,D)),typeof p.componentDidUpdate=="function"&&(t.flags|=4),typeof p.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof p.componentDidUpdate!="function"||x===e.memoizedProps&&q===e.memoizedState||(t.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||x===e.memoizedProps&&q===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=Z),p.props=r,p.state=Z,p.context=D,r=Y):(typeof p.componentDidUpdate!="function"||x===e.memoizedProps&&q===e.memoizedState||(t.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||x===e.memoizedProps&&q===e.memoizedState||(t.flags|=1024),r=!1)}return p=r,yl(e,t),r=(t.flags&128)!==0,p||r?(p=t.stateNode,a=r&&typeof a.getDerivedStateFromError!="function"?null:p.render(),t.flags|=1,e!==null&&r?(t.child=Oa(t,e.child,null,f),t.child=Oa(t,null,a,f)):Gt(e,t,a,f),t.memoizedState=p.state,e=t.child):e=ys(e,t,f),e}function vg(e,t,a,r){return Ca(),t.flags|=256,Gt(e,t,a,r),t.child}var nd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function sd(e){return{baseLanes:e,cachePool:oh()}}function ad(e,t,a){return e=e!==null?e.childLanes&~a:0,t&&(e|=vn),e}function yg(e,t,a){var r=t.pendingProps,f=!1,p=(t.flags&128)!==0,x;if((x=p)||(x=e!==null&&e.memoizedState===null?!1:(Tt.current&2)!==0),x&&(f=!0,t.flags&=-129),x=(t.flags&32)!==0,t.flags&=-33,e===null){if(Ge){if(f?Ks(t):Ys(),(e=lt)?(e=Nv(e,An),e=e!==null&&e.data!=="&"?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:Vs!==null?{id:Xn,overflow:Wn}:null,retryLane:536870912,hydrationErrors:null},a=Xm(e),a.return=t,t.child=a,Ht=t,lt=null)):e=null,e===null)throw qs(t);return Pd(e)?t.lanes=32:t.lanes=536870912,null}var k=r.children;return r=r.fallback,f?(Ys(),f=t.mode,k=bl({mode:"hidden",children:k},f),r=ja(r,f,a,null),k.return=t,r.return=t,k.sibling=r,t.child=k,r=t.child,r.memoizedState=sd(a),r.childLanes=ad(e,x,a),t.memoizedState=nd,Lo(null,r)):(Ks(t),id(t,k))}var D=e.memoizedState;if(D!==null&&(k=D.dehydrated,k!==null)){if(p)t.flags&256?(Ks(t),t.flags&=-257,t=od(e,t,a)):t.memoizedState!==null?(Ys(),t.child=e.child,t.flags|=128,t=null):(Ys(),k=r.fallback,f=t.mode,r=bl({mode:"visible",children:r.children},f),k=ja(k,f,a,null),k.flags|=2,r.return=t,k.return=t,r.sibling=k,t.child=r,Oa(t,e.child,null,a),r=t.child,r.memoizedState=sd(a),r.childLanes=ad(e,x,a),t.memoizedState=nd,t=Lo(null,r));else if(Ks(t),Pd(k)){if(x=k.nextSibling&&k.nextSibling.dataset,x)var P=x.dgst;x=P,r=Error(o(419)),r.stack="",r.digest=x,ko({value:r,source:null,stack:null}),t=od(e,t,a)}else if(Ct||bi(e,t,a,!1),x=(a&e.childLanes)!==0,Ct||x){if(x=ot,x!==null&&(r=ls(x,a),r!==0&&r!==D.retryLane))throw D.retryLane=r,Na(e,r),cn(x,e,r),ed;zd(k)||Cl(),t=od(e,t,a)}else zd(k)?(t.flags|=192,t.child=e.child,t=null):(e=D.treeContext,lt=Rn(k.nextSibling),Ht=t,Ge=!0,Hs=null,An=!1,e!==null&&eh(t,e),t=id(t,r.children),t.flags|=4096);return t}return f?(Ys(),k=r.fallback,f=t.mode,D=e.child,P=D.sibling,r=fs(D,{mode:"hidden",children:r.children}),r.subtreeFlags=D.subtreeFlags&65011712,P!==null?k=fs(P,k):(k=ja(k,f,a,null),k.flags|=2),k.return=t,r.return=t,r.sibling=k,t.child=r,Lo(null,r),r=t.child,k=e.child.memoizedState,k===null?k=sd(a):(f=k.cachePool,f!==null?(D=Nt._currentValue,f=f.parent!==D?{parent:D,pool:D}:f):f=oh(),k={baseLanes:k.baseLanes|a,cachePool:f}),r.memoizedState=k,r.childLanes=ad(e,x,a),t.memoizedState=nd,Lo(e.child,r)):(Ks(t),a=e.child,e=a.sibling,a=fs(a,{mode:"visible",children:r.children}),a.return=t,a.sibling=null,e!==null&&(x=t.deletions,x===null?(t.deletions=[e],t.flags|=16):x.push(e)),t.child=a,t.memoizedState=null,a)}function id(e,t){return t=bl({mode:"visible",children:t},e.mode),t.return=e,e.child=t}function bl(e,t){return e=pn(22,e,null,t),e.lanes=0,e}function od(e,t,a){return Oa(t,e.child,null,a),e=id(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function bg(e,t,a){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),xu(e.return,t,a)}function rd(e,t,a,r,f,p){var x=e.memoizedState;x===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:a,tailMode:f,treeForkCount:p}:(x.isBackwards=t,x.rendering=null,x.renderingStartTime=0,x.last=r,x.tail=a,x.tailMode=f,x.treeForkCount=p)}function _g(e,t,a){var r=t.pendingProps,f=r.revealOrder,p=r.tail;r=r.children;var x=Tt.current,k=(x&2)!==0;if(k?(x=x&1|2,t.flags|=128):x&=1,Ne(Tt,x),Gt(e,t,r,a),r=Ge?To:0,!k&&e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&bg(e,a,t);else if(e.tag===19)bg(e,a,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(f){case"forwards":for(a=t.child,f=null;a!==null;)e=a.alternate,e!==null&&rl(e)===null&&(f=a),a=a.sibling;a=f,a===null?(f=t.child,t.child=null):(f=a.sibling,a.sibling=null),rd(t,!1,f,a,p,r);break;case"backwards":case"unstable_legacy-backwards":for(a=null,f=t.child,t.child=null;f!==null;){if(e=f.alternate,e!==null&&rl(e)===null){t.child=f;break}e=f.sibling,f.sibling=a,a=f,f=e}rd(t,!0,a,null,p,r);break;case"together":rd(t,!1,null,null,void 0,r);break;default:t.memoizedState=null}return t.child}function ys(e,t,a){if(e!==null&&(t.dependencies=e.dependencies),Ws|=t.lanes,(a&t.childLanes)===0)if(e!==null){if(bi(e,t,a,!1),(a&t.childLanes)===0)return null}else return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,a=fs(e,e.pendingProps),t.child=a,a.return=t;e.sibling!==null;)e=e.sibling,a=a.sibling=fs(e,e.pendingProps),a.return=t;a.sibling=null}return t.child}function ld(e,t){return(e.lanes&t)!==0?!0:(e=e.dependencies,!!(e!==null&&Qr(e)))}function F1(e,t,a){switch(t.tag){case 3:Re(t,t.stateNode.containerInfo),Gs(t,Nt,e.memoizedState.cache),Ca();break;case 27:case 5:te(t);break;case 4:Re(t,t.stateNode.containerInfo);break;case 10:Gs(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Mu(t),null;break;case 13:var r=t.memoizedState;if(r!==null)return r.dehydrated!==null?(Ks(t),t.flags|=128,null):(a&t.child.childLanes)!==0?yg(e,t,a):(Ks(t),e=ys(e,t,a),e!==null?e.sibling:null);Ks(t);break;case 19:var f=(e.flags&128)!==0;if(r=(a&t.childLanes)!==0,r||(bi(e,t,a,!1),r=(a&t.childLanes)!==0),f){if(r)return _g(e,t,a);t.flags|=128}if(f=t.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),Ne(Tt,Tt.current),r)break;return null;case 22:return t.lanes=0,fg(e,t,a,t.pendingProps);case 24:Gs(t,Nt,e.memoizedState.cache)}return ys(e,t,a)}function xg(e,t,a){if(e!==null)if(e.memoizedProps!==t.pendingProps)Ct=!0;else{if(!ld(e,a)&&(t.flags&128)===0)return Ct=!1,F1(e,t,a);Ct=(e.flags&131072)!==0}else Ct=!1,Ge&&(t.flags&1048576)!==0&&Qm(t,To,t.index);switch(t.lanes=0,t.tag){case 16:e:{var r=t.pendingProps;if(e=Ra(t.elementType),t.type=e,typeof e=="function")pu(e)?(r=La(e,r),t.tag=1,t=gg(null,t,e,r,a)):(t.tag=0,t=td(null,t,e,r,a));else{if(e!=null){var f=e.$$typeof;if(f===O){t.tag=11,t=cg(null,t,e,r,a);break e}else if(f===G){t.tag=14,t=ug(null,t,e,r,a);break e}}throw t=K(e)||e,Error(o(306,t,""))}}return t;case 0:return td(e,t,t.type,t.pendingProps,a);case 1:return r=t.type,f=La(r,t.pendingProps),gg(e,t,r,f,a);case 3:e:{if(Re(t,t.stateNode.containerInfo),e===null)throw Error(o(387));r=t.pendingProps;var p=t.memoizedState;f=p.element,Cu(e,t),Do(t,r,null,a);var x=t.memoizedState;if(r=x.cache,Gs(t,Nt,r),r!==p.cache&&Su(t,[Nt],a,!0),Ao(),r=x.element,p.isDehydrated)if(p={element:r,isDehydrated:!1,cache:x.cache},t.updateQueue.baseState=p,t.memoizedState=p,t.flags&256){t=vg(e,t,r,a);break e}else if(r!==f){f=jn(Error(o(424)),t),ko(f),t=vg(e,t,r,a);break e}else{switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(lt=Rn(e.firstChild),Ht=t,Ge=!0,Hs=null,An=!0,a=fh(t,null,r,a),t.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(Ca(),r===f){t=ys(e,t,a);break e}Gt(e,t,r,a)}t=t.child}return t;case 26:return yl(e,t),e===null?(a=Rv(t.type,null,t.pendingProps,null))?t.memoizedState=a:Ge||(a=t.type,e=t.pendingProps,r=Il(fe.current).createElement(a),r[Vt]=t,r[nn]=e,$t(r,a,e),Bt(r),t.stateNode=r):t.memoizedState=Rv(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return te(t),e===null&&Ge&&(r=t.stateNode=Ev(t.type,t.pendingProps,fe.current),Ht=t,An=!0,f=lt,sa(t.type)?(Vd=f,lt=Rn(r.firstChild)):lt=f),Gt(e,t,t.pendingProps.children,a),yl(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&Ge&&((f=r=lt)&&(r=TS(r,t.type,t.pendingProps,An),r!==null?(t.stateNode=r,Ht=t,lt=Rn(r.firstChild),An=!1,f=!0):f=!1),f||qs(t)),te(t),f=t.type,p=t.pendingProps,x=e!==null?e.memoizedProps:null,r=p.children,Ld(f,p)?r=null:x!==null&&Ld(f,x)&&(t.flags|=32),t.memoizedState!==null&&(f=Iu(e,t,U1,null,null,a),Xo._currentValue=f),yl(e,t),Gt(e,t,r,a),t.child;case 6:return e===null&&Ge&&((e=a=lt)&&(a=kS(a,t.pendingProps,An),a!==null?(t.stateNode=a,Ht=t,lt=null,e=!0):e=!1),e||qs(t)),null;case 13:return yg(e,t,a);case 4:return Re(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Oa(t,null,r,a):Gt(e,t,r,a),t.child;case 11:return cg(e,t,t.type,t.pendingProps,a);case 7:return Gt(e,t,t.pendingProps,a),t.child;case 8:return Gt(e,t,t.pendingProps.children,a),t.child;case 12:return Gt(e,t,t.pendingProps.children,a),t.child;case 10:return r=t.pendingProps,Gs(t,t.type,r.value),Gt(e,t,r.children,a),t.child;case 9:return f=t.type._context,r=t.pendingProps.children,Aa(t),f=qt(f),r=r(f),t.flags|=1,Gt(e,t,r,a),t.child;case 14:return ug(e,t,t.type,t.pendingProps,a);case 15:return dg(e,t,t.type,t.pendingProps,a);case 19:return _g(e,t,a);case 31:return Z1(e,t,a);case 22:return fg(e,t,a,t.pendingProps);case 24:return Aa(t),r=qt(Nt),e===null?(f=wu(),f===null&&(f=ot,p=Tu(),f.pooledCache=p,p.refCount++,p!==null&&(f.pooledCacheLanes|=a),f=p),t.memoizedState={parent:r,cache:f},ju(t),Gs(t,Nt,f)):((e.lanes&a)!==0&&(Cu(e,t),Do(t,null,null,a),Ao()),f=e.memoizedState,p=t.memoizedState,f.parent!==r?(f={parent:r,cache:r},t.memoizedState=f,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=f),Gs(t,Nt,r)):(r=p.cache,Gs(t,Nt,r),r!==f.cache&&Su(t,[Nt],a,!0))),Gt(e,t,t.pendingProps.children,a),t.child;case 29:throw t.pendingProps}throw Error(o(156,t.tag))}function bs(e){e.flags|=4}function cd(e,t,a,r,f){if((t=(e.mode&32)!==0)&&(t=!1),t){if(e.flags|=16777216,(f&335544128)===f)if(e.stateNode.complete)e.flags|=8192;else if(Kg())e.flags|=8192;else throw Ma=sl,Nu}else e.flags&=-16777217}function Sg(e,t){if(t.type!=="stylesheet"||(t.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Bv(t))if(Kg())e.flags|=8192;else throw Ma=sl,Nu}function _l(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag!==22?Ke():536870912,e.lanes|=t,Di|=t)}function Bo(e,t){if(!Ge)switch(e.tailMode){case"hidden":t=e.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var r=null;a!==null;)a.alternate!==null&&(r=a),a=a.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ct(e){var t=e.alternate!==null&&e.alternate.child===e.child,a=0,r=0;if(t)for(var f=e.child;f!==null;)a|=f.lanes|f.childLanes,r|=f.subtreeFlags&65011712,r|=f.flags&65011712,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)a|=f.lanes|f.childLanes,r|=f.subtreeFlags,r|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=r,e.childLanes=a,t}function K1(e,t,a){var r=t.pendingProps;switch(vu(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return ct(t),null;case 1:return ct(t),null;case 3:return a=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),hs(Nt),Lt(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(yi(t)?bs(t):e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,bu())),ct(t),null;case 26:var f=t.type,p=t.memoizedState;return e===null?(bs(t),p!==null?(ct(t),Sg(t,p)):(ct(t),cd(t,f,null,r,a))):p?p!==e.memoizedState?(bs(t),ct(t),Sg(t,p)):(ct(t),t.flags&=-16777217):(e=e.memoizedProps,e!==r&&bs(t),ct(t),cd(t,f,e,r,a)),null;case 27:if(W(t),a=fe.current,f=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&bs(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return ct(t),null}e=Ae.current,yi(t)?th(t):(e=Ev(f,r,a),t.stateNode=e,bs(t))}return ct(t),null;case 5:if(W(t),f=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&bs(t);else{if(!r){if(t.stateNode===null)throw Error(o(166));return ct(t),null}if(p=Ae.current,yi(t))th(t);else{var x=Il(fe.current);switch(p){case 1:p=x.createElementNS("http://www.w3.org/2000/svg",f);break;case 2:p=x.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;default:switch(f){case"svg":p=x.createElementNS("http://www.w3.org/2000/svg",f);break;case"math":p=x.createElementNS("http://www.w3.org/1998/Math/MathML",f);break;case"script":p=x.createElement("div"),p.innerHTML="<script><\/script>",p=p.removeChild(p.firstChild);break;case"select":p=typeof r.is=="string"?x.createElement("select",{is:r.is}):x.createElement("select"),r.multiple?p.multiple=!0:r.size&&(p.size=r.size);break;default:p=typeof r.is=="string"?x.createElement(f,{is:r.is}):x.createElement(f)}}p[Vt]=t,p[nn]=r;e:for(x=t.child;x!==null;){if(x.tag===5||x.tag===6)p.appendChild(x.stateNode);else if(x.tag!==4&&x.tag!==27&&x.child!==null){x.child.return=x,x=x.child;continue}if(x===t)break e;for(;x.sibling===null;){if(x.return===null||x.return===t)break e;x=x.return}x.sibling.return=x.return,x=x.sibling}t.stateNode=p;e:switch($t(p,f,r),f){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&bs(t)}}return ct(t),cd(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&bs(t);else{if(typeof r!="string"&&t.stateNode===null)throw Error(o(166));if(e=fe.current,yi(t)){if(e=t.stateNode,a=t.memoizedProps,r=null,f=Ht,f!==null)switch(f.tag){case 27:case 5:r=f.memoizedProps}e[Vt]=t,e=!!(e.nodeValue===a||r!==null&&r.suppressHydrationWarning===!0||yv(e.nodeValue,a)),e||qs(t,!0)}else e=Il(e).createTextNode(r),e[Vt]=t,t.stateNode=e}return ct(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(r=yi(t),a!==null){if(e===null){if(!r)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[Vt]=t}else Ca(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ct(t),e=!1}else a=bu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(hn(t),t):(hn(t),null);if((t.flags&128)!==0)throw Error(o(558))}return ct(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(f=yi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!f)throw Error(o(318));if(f=t.memoizedState,f=f!==null?f.dehydrated:null,!f)throw Error(o(317));f[Vt]=t}else Ca(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;ct(t),f=!1}else f=bu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=f),f=!0;if(!f)return t.flags&256?(hn(t),t):(hn(t),null)}return hn(t),(t.flags&128)!==0?(t.lanes=a,t):(a=r!==null,e=e!==null&&e.memoizedState!==null,a&&(r=t.child,f=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(f=r.alternate.memoizedState.cachePool.pool),p=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(p=r.memoizedState.cachePool.pool),p!==f&&(r.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),_l(t,t.updateQueue),ct(t),null);case 4:return Lt(),e===null&&Dd(t.stateNode.containerInfo),ct(t),null;case 10:return hs(t.type),ct(t),null;case 19:if(je(Tt),r=t.memoizedState,r===null)return ct(t),null;if(f=(t.flags&128)!==0,p=r.rendering,p===null)if(f)Bo(r,!1);else{if(bt!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(p=rl(e),p!==null){for(t.flags|=128,Bo(r,!1),e=p.updateQueue,t.updateQueue=e,_l(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)Jm(a,e),a=a.sibling;return Ne(Tt,Tt.current&1|2),Ge&&ps(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Kt()>wl&&(t.flags|=128,f=!0,Bo(r,!1),t.lanes=4194304)}else{if(!f)if(e=rl(p),e!==null){if(t.flags|=128,f=!0,e=e.updateQueue,t.updateQueue=e,_l(t,e),Bo(r,!0),r.tail===null&&r.tailMode==="hidden"&&!p.alternate&&!Ge)return ct(t),null}else 2*Kt()-r.renderingStartTime>wl&&a!==536870912&&(t.flags|=128,f=!0,Bo(r,!1),t.lanes=4194304);r.isBackwards?(p.sibling=t.child,t.child=p):(e=r.last,e!==null?e.sibling=p:t.child=p,r.last=p)}return r.tail!==null?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Kt(),e.sibling=null,a=Tt.current,Ne(Tt,f?a&1|2:a&1),Ge&&ps(t,r.treeForkCount),e):(ct(t),null);case 22:case 23:return hn(t),Ru(),r=t.memoizedState!==null,e!==null?e.memoizedState!==null!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?(a&536870912)!==0&&(t.flags&128)===0&&(ct(t),t.subtreeFlags&6&&(t.flags|=8192)):ct(t),a=t.updateQueue,a!==null&&_l(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==a&&(t.flags|=2048),e!==null&&je(Da),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),hs(Nt),ct(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Y1(e,t){switch(vu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return hs(Nt),Lt(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return W(t),null;case 31:if(t.memoizedState!==null){if(hn(t),t.alternate===null)throw Error(o(340));Ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(hn(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Ca()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return je(Tt),null;case 4:return Lt(),null;case 10:return hs(t.type),null;case 22:case 23:return hn(t),Ru(),e!==null&&je(Da),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return hs(Nt),null;case 25:return null;default:return null}}function Tg(e,t){switch(vu(t),t.tag){case 3:hs(Nt),Lt();break;case 26:case 27:case 5:W(t);break;case 4:Lt();break;case 31:t.memoizedState!==null&&hn(t);break;case 13:hn(t);break;case 19:je(Tt);break;case 10:hs(t.type);break;case 22:case 23:hn(t),Ru(),e!==null&&je(Da);break;case 24:hs(Nt)}}function Uo(e,t){try{var a=t.updateQueue,r=a!==null?a.lastEffect:null;if(r!==null){var f=r.next;a=f;do{if((a.tag&e)===e){r=void 0;var p=a.create,x=a.inst;r=p(),x.destroy=r}a=a.next}while(a!==f)}}catch(k){tt(t,t.return,k)}}function Js(e,t,a){try{var r=t.updateQueue,f=r!==null?r.lastEffect:null;if(f!==null){var p=f.next;r=p;do{if((r.tag&e)===e){var x=r.inst,k=x.destroy;if(k!==void 0){x.destroy=void 0,f=t;var D=a,P=k;try{P()}catch(Y){tt(f,D,Y)}}}r=r.next}while(r!==p)}}catch(Y){tt(t,t.return,Y)}}function kg(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{mh(t,a)}catch(r){tt(e,e.return,r)}}}function wg(e,t,a){a.props=La(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(r){tt(e,t,r)}}function zo(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof a=="function"?e.refCleanup=a(r):a.current=r}}catch(f){tt(e,t,f)}}function Qn(e,t){var a=e.ref,r=e.refCleanup;if(a!==null)if(typeof r=="function")try{r()}catch(f){tt(e,t,f)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(f){tt(e,t,f)}else a.current=null}function Ng(e){var t=e.type,a=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&r.focus();break e;case"img":a.src?r.src=a.src:a.srcSet&&(r.srcset=a.srcSet)}}catch(f){tt(e,e.return,f)}}function ud(e,t,a){try{var r=e.stateNode;vS(r,e.type,a,t),r[nn]=t}catch(f){tt(e,e.return,f)}}function jg(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&sa(e.type)||e.tag===4}function dd(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||jg(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&sa(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function fd(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=us));else if(r!==4&&(r===27&&sa(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(fd(e,t,a),e=e.sibling;e!==null;)fd(e,t,a),e=e.sibling}function xl(e,t,a){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(r!==4&&(r===27&&sa(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(xl(e,t,a),e=e.sibling;e!==null;)xl(e,t,a),e=e.sibling}function Cg(e){var t=e.stateNode,a=e.memoizedProps;try{for(var r=e.type,f=t.attributes;f.length;)t.removeAttributeNode(f[0]);$t(t,r,a),t[Vt]=e,t[nn]=a}catch(p){tt(e,e.return,p)}}var _s=!1,Et=!1,pd=!1,Eg=typeof WeakSet=="function"?WeakSet:Set,Ut=null;function J1(e,t){if(e=e.containerInfo,Od=Hl,e=Vm(e),ou(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var r=a.getSelection&&a.getSelection();if(r&&r.rangeCount!==0){a=r.anchorNode;var f=r.anchorOffset,p=r.focusNode;r=r.focusOffset;try{a.nodeType,p.nodeType}catch{a=null;break e}var x=0,k=-1,D=-1,P=0,Y=0,X=e,q=null;t:for(;;){for(var Z;X!==a||f!==0&&X.nodeType!==3||(k=x+f),X!==p||r!==0&&X.nodeType!==3||(D=x+r),X.nodeType===3&&(x+=X.nodeValue.length),(Z=X.firstChild)!==null;)q=X,X=Z;for(;;){if(X===e)break t;if(q===a&&++P===f&&(k=x),q===p&&++Y===r&&(D=x),(Z=X.nextSibling)!==null)break;X=q,q=X.parentNode}X=Z}a=k===-1||D===-1?null:{start:k,end:D}}else a=null}a=a||{start:0,end:0}}else a=null;for(Id={focusedElem:e,selectionRange:a},Hl=!1,Ut=t;Ut!==null;)if(t=Ut,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Ut=e;else for(;Ut!==null;){switch(t=Ut,p=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a<e.length;a++)f=e[a],f.ref.impl=f.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&p!==null){e=void 0,a=t,f=p.memoizedProps,p=p.memoizedState,r=a.stateNode;try{var ge=La(a.type,f);e=r.getSnapshotBeforeUpdate(ge,p),r.__reactInternalSnapshotBeforeUpdate=e}catch(Se){tt(a,a.return,Se)}}break;case 3:if((e&1024)!==0){if(e=t.stateNode.containerInfo,a=e.nodeType,a===9)Ud(e);else if(a===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":Ud(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(o(163))}if(e=t.sibling,e!==null){e.return=t.return,Ut=e;break}Ut=t.return}}function Ag(e,t,a){var r=a.flags;switch(a.tag){case 0:case 11:case 15:Ss(e,a),r&4&&Uo(5,a);break;case 1:if(Ss(e,a),r&4)if(e=a.stateNode,t===null)try{e.componentDidMount()}catch(x){tt(a,a.return,x)}else{var f=La(a.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(f,t,e.__reactInternalSnapshotBeforeUpdate)}catch(x){tt(a,a.return,x)}}r&64&&kg(a),r&512&&zo(a,a.return);break;case 3:if(Ss(e,a),r&64&&(e=a.updateQueue,e!==null)){if(t=null,a.child!==null)switch(a.child.tag){case 27:case 5:t=a.child.stateNode;break;case 1:t=a.child.stateNode}try{mh(e,t)}catch(x){tt(a,a.return,x)}}break;case 27:t===null&&r&4&&Cg(a);case 26:case 5:Ss(e,a),t===null&&r&4&&Ng(a),r&512&&zo(a,a.return);break;case 12:Ss(e,a);break;case 31:Ss(e,a),r&4&&Mg(e,a);break;case 13:Ss(e,a),r&4&&Og(e,a),r&64&&(e=a.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(a=iS.bind(null,a),wS(e,a))));break;case 22:if(r=a.memoizedState!==null||_s,!r){t=t!==null&&t.memoizedState!==null||Et,f=_s;var p=Et;_s=r,(Et=t)&&!p?Ts(e,a,(a.subtreeFlags&8772)!==0):Ss(e,a),_s=f,Et=p}break;case 30:break;default:Ss(e,a)}}function Dg(e){var t=e.alternate;t!==null&&(e.alternate=null,Dg(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&qc(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var mt=null,an=!1;function xs(e,t,a){for(a=a.child;a!==null;)Rg(e,t,a),a=a.sibling}function Rg(e,t,a){if(Yt&&typeof Yt.onCommitFiberUnmount=="function")try{Yt.onCommitFiberUnmount(Us,a)}catch{}switch(a.tag){case 26:Et||Qn(a,t),xs(e,t,a),a.memoizedState?a.memoizedState.count--:a.stateNode&&(a=a.stateNode,a.parentNode.removeChild(a));break;case 27:Et||Qn(a,t);var r=mt,f=an;sa(a.type)&&(mt=a.stateNode,an=!1),xs(e,t,a),Ko(a.stateNode),mt=r,an=f;break;case 5:Et||Qn(a,t);case 6:if(r=mt,f=an,mt=null,xs(e,t,a),mt=r,an=f,mt!==null)if(an)try{(mt.nodeType===9?mt.body:mt.nodeName==="HTML"?mt.ownerDocument.body:mt).removeChild(a.stateNode)}catch(p){tt(a,t,p)}else try{mt.removeChild(a.stateNode)}catch(p){tt(a,t,p)}break;case 18:mt!==null&&(an?(e=mt,kv(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,a.stateNode),zi(e)):kv(mt,a.stateNode));break;case 4:r=mt,f=an,mt=a.stateNode.containerInfo,an=!0,xs(e,t,a),mt=r,an=f;break;case 0:case 11:case 14:case 15:Js(2,a,t),Et||Js(4,a,t),xs(e,t,a);break;case 1:Et||(Qn(a,t),r=a.stateNode,typeof r.componentWillUnmount=="function"&&wg(a,t,r)),xs(e,t,a);break;case 21:xs(e,t,a);break;case 22:Et=(r=Et)||a.memoizedState!==null,xs(e,t,a),Et=r;break;default:xs(e,t,a)}}function Mg(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{zi(e)}catch(a){tt(t,t.return,a)}}}function Og(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{zi(e)}catch(a){tt(t,t.return,a)}}function X1(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new Eg),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new Eg),t;default:throw Error(o(435,e.tag))}}function Sl(e,t){var a=X1(e);t.forEach(function(r){if(!a.has(r)){a.add(r);var f=oS.bind(null,e,r);r.then(f,f)}})}function on(e,t){var a=t.deletions;if(a!==null)for(var r=0;r<a.length;r++){var f=a[r],p=e,x=t,k=x;e:for(;k!==null;){switch(k.tag){case 27:if(sa(k.type)){mt=k.stateNode,an=!1;break e}break;case 5:mt=k.stateNode,an=!1;break e;case 3:case 4:mt=k.stateNode.containerInfo,an=!0;break e}k=k.return}if(mt===null)throw Error(o(160));Rg(p,x,f),mt=null,an=!1,p=f.alternate,p!==null&&(p.return=null),f.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Ig(t,e),t=t.sibling}var qn=null;function Ig(e,t){var a=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:on(t,e),rn(e),r&4&&(Js(3,e,e.return),Uo(3,e),Js(5,e,e.return));break;case 1:on(t,e),rn(e),r&512&&(Et||a===null||Qn(a,a.return)),r&64&&_s&&(e=e.updateQueue,e!==null&&(r=e.callbacks,r!==null&&(a=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=a===null?r:a.concat(r))));break;case 26:var f=qn;if(on(t,e),rn(e),r&512&&(Et||a===null||Qn(a,a.return)),r&4){var p=a!==null?a.memoizedState:null;if(r=e.memoizedState,a===null)if(r===null)if(e.stateNode===null){e:{r=e.type,a=e.memoizedProps,f=f.ownerDocument||f;t:switch(r){case"title":p=f.getElementsByTagName("title")[0],(!p||p[fo]||p[Vt]||p.namespaceURI==="http://www.w3.org/2000/svg"||p.hasAttribute("itemprop"))&&(p=f.createElement(r),f.head.insertBefore(p,f.querySelector("head > title"))),$t(p,r,a),p[Vt]=e,Bt(p),r=p;break e;case"link":var x=Iv("link","href",f).get(r+(a.href||""));if(x){for(var k=0;k<x.length;k++)if(p=x[k],p.getAttribute("href")===(a.href==null||a.href===""?null:a.href)&&p.getAttribute("rel")===(a.rel==null?null:a.rel)&&p.getAttribute("title")===(a.title==null?null:a.title)&&p.getAttribute("crossorigin")===(a.crossOrigin==null?null:a.crossOrigin)){x.splice(k,1);break t}}p=f.createElement(r),$t(p,r,a),f.head.appendChild(p);break;case"meta":if(x=Iv("meta","content",f).get(r+(a.content||""))){for(k=0;k<x.length;k++)if(p=x[k],p.getAttribute("content")===(a.content==null?null:""+a.content)&&p.getAttribute("name")===(a.name==null?null:a.name)&&p.getAttribute("property")===(a.property==null?null:a.property)&&p.getAttribute("http-equiv")===(a.httpEquiv==null?null:a.httpEquiv)&&p.getAttribute("charset")===(a.charSet==null?null:a.charSet)){x.splice(k,1);break t}}p=f.createElement(r),$t(p,r,a),f.head.appendChild(p);break;default:throw Error(o(468,r))}p[Vt]=e,Bt(p),r=p}e.stateNode=r}else Lv(f,e.type,e.stateNode);else e.stateNode=Ov(f,r,e.memoizedProps);else p!==r?(p===null?a.stateNode!==null&&(a=a.stateNode,a.parentNode.removeChild(a)):p.count--,r===null?Lv(f,e.type,e.stateNode):Ov(f,r,e.memoizedProps)):r===null&&e.stateNode!==null&&ud(e,e.memoizedProps,a.memoizedProps)}break;case 27:on(t,e),rn(e),r&512&&(Et||a===null||Qn(a,a.return)),a!==null&&r&4&&ud(e,e.memoizedProps,a.memoizedProps);break;case 5:if(on(t,e),rn(e),r&512&&(Et||a===null||Qn(a,a.return)),e.flags&32){f=e.stateNode;try{li(f,"")}catch(ge){tt(e,e.return,ge)}}r&4&&e.stateNode!=null&&(f=e.memoizedProps,ud(e,f,a!==null?a.memoizedProps:f)),r&1024&&(pd=!0);break;case 6:if(on(t,e),rn(e),r&4){if(e.stateNode===null)throw Error(o(162));r=e.memoizedProps,a=e.stateNode;try{a.nodeValue=r}catch(ge){tt(e,e.return,ge)}}break;case 3:if(Ul=null,f=qn,qn=Ll(t.containerInfo),on(t,e),qn=f,rn(e),r&4&&a!==null&&a.memoizedState.isDehydrated)try{zi(t.containerInfo)}catch(ge){tt(e,e.return,ge)}pd&&(pd=!1,Lg(e));break;case 4:r=qn,qn=Ll(e.stateNode.containerInfo),on(t,e),rn(e),qn=r;break;case 12:on(t,e),rn(e);break;case 31:on(t,e),rn(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 13:on(t,e),rn(e),e.child.flags&8192&&e.memoizedState!==null!=(a!==null&&a.memoizedState!==null)&&(kl=Kt()),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 22:f=e.memoizedState!==null;var D=a!==null&&a.memoizedState!==null,P=_s,Y=Et;if(_s=P||f,Et=Y||D,on(t,e),Et=Y,_s=P,rn(e),r&8192)e:for(t=e.stateNode,t._visibility=f?t._visibility&-2:t._visibility|1,f&&(a===null||D||_s||Et||Ba(e)),a=null,t=e;;){if(t.tag===5||t.tag===26){if(a===null){D=a=t;try{if(p=D.stateNode,f)x=p.style,typeof x.setProperty=="function"?x.setProperty("display","none","important"):x.display="none";else{k=D.stateNode;var X=D.memoizedProps.style,q=X!=null&&X.hasOwnProperty("display")?X.display:null;k.style.display=q==null||typeof q=="boolean"?"":(""+q).trim()}}catch(ge){tt(D,D.return,ge)}}}else if(t.tag===6){if(a===null){D=t;try{D.stateNode.nodeValue=f?"":D.memoizedProps}catch(ge){tt(D,D.return,ge)}}}else if(t.tag===18){if(a===null){D=t;try{var Z=D.stateNode;f?wv(Z,!0):wv(D.stateNode,!1)}catch(ge){tt(D,D.return,ge)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;a===t&&(a=null),t=t.return}a===t&&(a=null),t.sibling.return=t.return,t=t.sibling}r&4&&(r=e.updateQueue,r!==null&&(a=r.retryQueue,a!==null&&(r.retryQueue=null,Sl(e,a))));break;case 19:on(t,e),rn(e),r&4&&(r=e.updateQueue,r!==null&&(e.updateQueue=null,Sl(e,r)));break;case 30:break;case 21:break;default:on(t,e),rn(e)}}function rn(e){var t=e.flags;if(t&2){try{for(var a,r=e.return;r!==null;){if(jg(r)){a=r;break}r=r.return}if(a==null)throw Error(o(160));switch(a.tag){case 27:var f=a.stateNode,p=dd(e);xl(e,p,f);break;case 5:var x=a.stateNode;a.flags&32&&(li(x,""),a.flags&=-33);var k=dd(e);xl(e,k,x);break;case 3:case 4:var D=a.stateNode.containerInfo,P=dd(e);fd(e,P,D);break;default:throw Error(o(161))}}catch(Y){tt(e,e.return,Y)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Lg(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Lg(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Ss(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)Ag(e,t.alternate,t),t=t.sibling}function Ba(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:Js(4,t,t.return),Ba(t);break;case 1:Qn(t,t.return);var a=t.stateNode;typeof a.componentWillUnmount=="function"&&wg(t,t.return,a),Ba(t);break;case 27:Ko(t.stateNode);case 26:case 5:Qn(t,t.return),Ba(t);break;case 22:t.memoizedState===null&&Ba(t);break;case 30:Ba(t);break;default:Ba(t)}e=e.sibling}}function Ts(e,t,a){for(a=a&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var r=t.alternate,f=e,p=t,x=p.flags;switch(p.tag){case 0:case 11:case 15:Ts(f,p,a),Uo(4,p);break;case 1:if(Ts(f,p,a),r=p,f=r.stateNode,typeof f.componentDidMount=="function")try{f.componentDidMount()}catch(P){tt(r,r.return,P)}if(r=p,f=r.updateQueue,f!==null){var k=r.stateNode;try{var D=f.shared.hiddenCallbacks;if(D!==null)for(f.shared.hiddenCallbacks=null,f=0;f<D.length;f++)ph(D[f],k)}catch(P){tt(r,r.return,P)}}a&&x&64&&kg(p),zo(p,p.return);break;case 27:Cg(p);case 26:case 5:Ts(f,p,a),a&&r===null&&x&4&&Ng(p),zo(p,p.return);break;case 12:Ts(f,p,a);break;case 31:Ts(f,p,a),a&&x&4&&Mg(f,p);break;case 13:Ts(f,p,a),a&&x&4&&Og(f,p);break;case 22:p.memoizedState===null&&Ts(f,p,a),zo(p,p.return);break;case 30:break;default:Ts(f,p,a)}t=t.sibling}}function md(e,t){var a=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(e!=null&&e.refCount++,a!=null&&wo(a))}function hd(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&wo(e))}function Gn(e,t,a,r){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Bg(e,t,a,r),t=t.sibling}function Bg(e,t,a,r){var f=t.flags;switch(t.tag){case 0:case 11:case 15:Gn(e,t,a,r),f&2048&&Uo(9,t);break;case 1:Gn(e,t,a,r);break;case 3:Gn(e,t,a,r),f&2048&&(e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&wo(e)));break;case 12:if(f&2048){Gn(e,t,a,r),e=t.stateNode;try{var p=t.memoizedProps,x=p.id,k=p.onPostCommit;typeof k=="function"&&k(x,t.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(D){tt(t,t.return,D)}}else Gn(e,t,a,r);break;case 31:Gn(e,t,a,r);break;case 13:Gn(e,t,a,r);break;case 23:break;case 22:p=t.stateNode,x=t.alternate,t.memoizedState!==null?p._visibility&2?Gn(e,t,a,r):Po(e,t):p._visibility&2?Gn(e,t,a,r):(p._visibility|=2,Ci(e,t,a,r,(t.subtreeFlags&10256)!==0||!1)),f&2048&&md(x,t);break;case 24:Gn(e,t,a,r),f&2048&&hd(t.alternate,t);break;default:Gn(e,t,a,r)}}function Ci(e,t,a,r,f){for(f=f&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var p=e,x=t,k=a,D=r,P=x.flags;switch(x.tag){case 0:case 11:case 15:Ci(p,x,k,D,f),Uo(8,x);break;case 23:break;case 22:var Y=x.stateNode;x.memoizedState!==null?Y._visibility&2?Ci(p,x,k,D,f):Po(p,x):(Y._visibility|=2,Ci(p,x,k,D,f)),f&&P&2048&&md(x.alternate,x);break;case 24:Ci(p,x,k,D,f),f&&P&2048&&hd(x.alternate,x);break;default:Ci(p,x,k,D,f)}t=t.sibling}}function Po(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var a=e,r=t,f=r.flags;switch(r.tag){case 22:Po(a,r),f&2048&&md(r.alternate,r);break;case 24:Po(a,r),f&2048&&hd(r.alternate,r);break;default:Po(a,r)}t=t.sibling}}var Vo=8192;function Ei(e,t,a){if(e.subtreeFlags&Vo)for(e=e.child;e!==null;)Ug(e,t,a),e=e.sibling}function Ug(e,t,a){switch(e.tag){case 26:Ei(e,t,a),e.flags&Vo&&e.memoizedState!==null&&BS(a,qn,e.memoizedState,e.memoizedProps);break;case 5:Ei(e,t,a);break;case 3:case 4:var r=qn;qn=Ll(e.stateNode.containerInfo),Ei(e,t,a),qn=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Vo,Vo=16777216,Ei(e,t,a),Vo=r):Ei(e,t,a));break;default:Ei(e,t,a)}}function zg(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ho(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var a=0;a<t.length;a++){var r=t[a];Ut=r,Vg(r,e)}zg(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Pg(e),e=e.sibling}function Pg(e){switch(e.tag){case 0:case 11:case 15:Ho(e),e.flags&2048&&Js(9,e,e.return);break;case 3:Ho(e);break;case 12:Ho(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Tl(e)):Ho(e);break;default:Ho(e)}}function Tl(e){var t=e.deletions;if((e.flags&16)!==0){if(t!==null)for(var a=0;a<t.length;a++){var r=t[a];Ut=r,Vg(r,e)}zg(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:Js(8,t,t.return),Tl(t);break;case 22:a=t.stateNode,a._visibility&2&&(a._visibility&=-3,Tl(t));break;default:Tl(t)}e=e.sibling}}function Vg(e,t){for(;Ut!==null;){var a=Ut;switch(a.tag){case 0:case 11:case 15:Js(8,a,t);break;case 23:case 22:if(a.memoizedState!==null&&a.memoizedState.cachePool!==null){var r=a.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:wo(a.memoizedState.cache)}if(r=a.child,r!==null)r.return=a,Ut=r;else e:for(a=e;Ut!==null;){r=Ut;var f=r.sibling,p=r.return;if(Dg(r),r===a){Ut=null;break e}if(f!==null){f.return=p,Ut=f;break e}Ut=p}}}var W1={getCacheForType:function(e){var t=qt(Nt),a=t.data.get(e);return a===void 0&&(a=e(),t.data.set(e,a)),a},cacheSignal:function(){return qt(Nt).controller.signal}},Q1=typeof WeakMap=="function"?WeakMap:Map,We=0,ot=null,Be=null,Pe=0,et=0,gn=null,Xs=!1,Ai=!1,gd=!1,ks=0,bt=0,Ws=0,Ua=0,vd=0,vn=0,Di=0,qo=null,ln=null,yd=!1,kl=0,Hg=0,wl=1/0,Nl=null,Qs=null,Mt=0,ea=null,Ri=null,ws=0,bd=0,_d=null,qg=null,Go=0,xd=null;function yn(){return(We&2)!==0&&Pe!==0?Pe&-Pe:I.T!==null?jd():im()}function Gg(){if(vn===0)if((Pe&536870912)===0||Ge){var e=oe;oe<<=1,(oe&3932160)===0&&(oe=262144),vn=e}else vn=536870912;return e=mn.current,e!==null&&(e.flags|=32),vn}function cn(e,t,a){(e===ot&&(et===2||et===9)||e.cancelPendingCommit!==null)&&(Mi(e,0),ta(e,Pe,vn,!1)),qe(e,a),((We&2)===0||e!==ot)&&(e===ot&&((We&2)===0&&(Ua|=a),bt===4&&ta(e,Pe,vn,!1)),es(e))}function $g(e,t,a){if((We&6)!==0)throw Error(o(327));var r=!a&&(t&127)===0&&(t&e.expiredLanes)===0||ye(e,t),f=r?nS(e,t):Td(e,t,!0),p=r;do{if(f===0){Ai&&!r&&ta(e,t,0,!1);break}else{if(a=e.current.alternate,p&&!eS(a)){f=Td(e,t,!1),p=!1;continue}if(f===2){if(p=t,e.errorRecoveryDisabledLanes&p)var x=0;else x=e.pendingLanes&-536870913,x=x!==0?x:x&536870912?536870912:0;if(x!==0){t=x;e:{var k=e;f=qo;var D=k.current.memoizedState.isDehydrated;if(D&&(Mi(k,x).flags|=256),x=Td(k,x,!1),x!==2){if(gd&&!D){k.errorRecoveryDisabledLanes|=p,Ua|=p,f=4;break e}p=ln,ln=f,p!==null&&(ln===null?ln=p:ln.push.apply(ln,p))}f=x}if(p=!1,f!==2)continue}}if(f===1){Mi(e,0),ta(e,t,0,!0);break}e:{switch(r=e,p=f,p){case 0:case 1:throw Error(o(345));case 4:if((t&4194048)!==t)break;case 6:ta(r,t,vn,!Xs);break e;case 2:ln=null;break;case 3:case 5:break;default:throw Error(o(329))}if((t&62914560)===t&&(f=kl+300-Kt(),10<f)){if(ta(r,t,vn,!Xs),He(r,0,!0)!==0)break e;ws=t,r.timeoutHandle=Sv(Zg.bind(null,r,a,ln,Nl,yd,t,vn,Ua,Di,Xs,p,"Throttled",-0,0),f);break e}Zg(r,a,ln,Nl,yd,t,vn,Ua,Di,Xs,p,null,-0,0)}}break}while(!0);es(e)}function Zg(e,t,a,r,f,p,x,k,D,P,Y,X,q,Z){if(e.timeoutHandle=-1,X=t.subtreeFlags,X&8192||(X&16785408)===16785408){X={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:us},Ug(t,p,X);var ge=(p&62914560)===p?kl-Kt():(p&4194048)===p?Hg-Kt():0;if(ge=US(X,ge),ge!==null){ws=p,e.cancelPendingCommit=ge(ev.bind(null,e,t,p,a,r,f,x,k,D,Y,X,null,q,Z)),ta(e,p,x,!P);return}}ev(e,t,p,a,r,f,x,k,D)}function eS(e){for(var t=e;;){var a=t.tag;if((a===0||a===11||a===15)&&t.flags&16384&&(a=t.updateQueue,a!==null&&(a=a.stores,a!==null)))for(var r=0;r<a.length;r++){var f=a[r],p=f.getSnapshot;f=f.value;try{if(!fn(p(),f))return!1}catch{return!1}}if(a=t.child,t.subtreeFlags&16384&&a!==null)a.return=t,t=a;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function ta(e,t,a,r){t&=~vd,t&=~Ua,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var f=t;0<f;){var p=31-Jt(f),x=1<<p;r[p]=-1,f&=~x}a!==0&&Pt(e,a,t)}function jl(){return(We&6)===0?($o(0),!1):!0}function Sd(){if(Be!==null){if(et===0)var e=Be.return;else e=Be,ms=Ea=null,Uu(e),Ti=null,jo=0,e=Be;for(;e!==null;)Tg(e.alternate,e),e=e.return;Be=null}}function Mi(e,t){var a=e.timeoutHandle;a!==-1&&(e.timeoutHandle=-1,_S(a)),a=e.cancelPendingCommit,a!==null&&(e.cancelPendingCommit=null,a()),ws=0,Sd(),ot=e,Be=a=fs(e.current,null),Pe=t,et=0,gn=null,Xs=!1,Ai=ye(e,t),gd=!1,Di=vn=vd=Ua=Ws=bt=0,ln=qo=null,yd=!1,(t&8)!==0&&(t|=t&32);var r=e.entangledLanes;if(r!==0)for(e=e.entanglements,r&=t;0<r;){var f=31-Jt(r),p=1<<f;t|=e[f],r&=~p}return ks=t,Kr(),a}function Fg(e,t){De=null,I.H=Io,t===Si||t===nl?(t=ch(),et=3):t===Nu?(t=ch(),et=4):et=t===ed?8:t!==null&&typeof t=="object"&&typeof t.then=="function"?6:1,gn=t,Be===null&&(bt=1,gl(e,jn(t,e.current)))}function Kg(){var e=mn.current;return e===null?!0:(Pe&4194048)===Pe?Dn===null:(Pe&62914560)===Pe||(Pe&536870912)!==0?e===Dn:!1}function Yg(){var e=I.H;return I.H=Io,e===null?Io:e}function Jg(){var e=I.A;return I.A=W1,e}function Cl(){bt=4,Xs||(Pe&4194048)!==Pe&&mn.current!==null||(Ai=!0),(Ws&134217727)===0&&(Ua&134217727)===0||ot===null||ta(ot,Pe,vn,!1)}function Td(e,t,a){var r=We;We|=2;var f=Yg(),p=Jg();(ot!==e||Pe!==t)&&(Nl=null,Mi(e,t)),t=!1;var x=bt;e:do try{if(et!==0&&Be!==null){var k=Be,D=gn;switch(et){case 8:Sd(),x=6;break e;case 3:case 2:case 9:case 6:mn.current===null&&(t=!0);var P=et;if(et=0,gn=null,Oi(e,k,D,P),a&&Ai){x=0;break e}break;default:P=et,et=0,gn=null,Oi(e,k,D,P)}}tS(),x=bt;break}catch(Y){Fg(e,Y)}while(!0);return t&&e.shellSuspendCounter++,ms=Ea=null,We=r,I.H=f,I.A=p,Be===null&&(ot=null,Pe=0,Kr()),x}function tS(){for(;Be!==null;)Xg(Be)}function nS(e,t){var a=We;We|=2;var r=Yg(),f=Jg();ot!==e||Pe!==t?(Nl=null,wl=Kt()+500,Mi(e,t)):Ai=ye(e,t);e:do try{if(et!==0&&Be!==null){t=Be;var p=gn;t:switch(et){case 1:et=0,gn=null,Oi(e,t,p,1);break;case 2:case 9:if(rh(p)){et=0,gn=null,Wg(t);break}t=function(){et!==2&&et!==9||ot!==e||(et=7),es(e)},p.then(t,t);break e;case 3:et=7;break e;case 4:et=5;break e;case 7:rh(p)?(et=0,gn=null,Wg(t)):(et=0,gn=null,Oi(e,t,p,7));break;case 5:var x=null;switch(Be.tag){case 26:x=Be.memoizedState;case 5:case 27:var k=Be;if(x?Bv(x):k.stateNode.complete){et=0,gn=null;var D=k.sibling;if(D!==null)Be=D;else{var P=k.return;P!==null?(Be=P,El(P)):Be=null}break t}}et=0,gn=null,Oi(e,t,p,5);break;case 6:et=0,gn=null,Oi(e,t,p,6);break;case 8:Sd(),bt=6;break e;default:throw Error(o(462))}}sS();break}catch(Y){Fg(e,Y)}while(!0);return ms=Ea=null,I.H=r,I.A=f,We=a,Be!==null?0:(ot=null,Pe=0,Kr(),bt)}function sS(){for(;Be!==null&&!Me();)Xg(Be)}function Xg(e){var t=xg(e.alternate,e,ks);e.memoizedProps=e.pendingProps,t===null?El(e):Be=t}function Wg(e){var t=e,a=t.alternate;switch(t.tag){case 15:case 0:t=hg(a,t,t.pendingProps,t.type,void 0,Pe);break;case 11:t=hg(a,t,t.pendingProps,t.type.render,t.ref,Pe);break;case 5:Uu(t);default:Tg(a,t),t=Be=Jm(t,ks),t=xg(a,t,ks)}e.memoizedProps=e.pendingProps,t===null?El(e):Be=t}function Oi(e,t,a,r){ms=Ea=null,Uu(t),Ti=null,jo=0;var f=t.return;try{if($1(e,f,t,a,Pe)){bt=1,gl(e,jn(a,e.current)),Be=null;return}}catch(p){if(f!==null)throw Be=f,p;bt=1,gl(e,jn(a,e.current)),Be=null;return}t.flags&32768?(Ge||r===1?e=!0:Ai||(Pe&536870912)!==0?e=!1:(Xs=e=!0,(r===2||r===9||r===3||r===6)&&(r=mn.current,r!==null&&r.tag===13&&(r.flags|=16384))),Qg(t,e)):El(t)}function El(e){var t=e;do{if((t.flags&32768)!==0){Qg(t,Xs);return}e=t.return;var a=K1(t.alternate,t,ks);if(a!==null){Be=a;return}if(t=t.sibling,t!==null){Be=t;return}Be=t=e}while(t!==null);bt===0&&(bt=5)}function Qg(e,t){do{var a=Y1(e.alternate,e);if(a!==null){a.flags&=32767,Be=a;return}if(a=e.return,a!==null&&(a.flags|=32768,a.subtreeFlags=0,a.deletions=null),!t&&(e=e.sibling,e!==null)){Be=e;return}Be=e=a}while(e!==null);bt=6,Be=null}function ev(e,t,a,r,f,p,x,k,D){e.cancelPendingCommit=null;do Al();while(Mt!==0);if((We&6)!==0)throw Error(o(327));if(t!==null){if(t===e.current)throw Error(o(177));if(p=t.lanes|t.childLanes,p|=du,zt(e,a,p,x,k,D),e===ot&&(Be=ot=null,Pe=0),Ri=t,ea=e,ws=a,bd=p,_d=f,qg=r,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,rS(_a,function(){return iv(),null})):(e.callbackNode=null,e.callbackPriority=0),r=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||r){r=I.T,I.T=null,f=$.p,$.p=2,x=We,We|=4;try{J1(e,t,a)}finally{We=x,$.p=f,I.T=r}}Mt=1,tv(),nv(),sv()}}function tv(){if(Mt===1){Mt=0;var e=ea,t=Ri,a=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||a){a=I.T,I.T=null;var r=$.p;$.p=2;var f=We;We|=4;try{Ig(t,e);var p=Id,x=Vm(e.containerInfo),k=p.focusedElem,D=p.selectionRange;if(x!==k&&k&&k.ownerDocument&&Pm(k.ownerDocument.documentElement,k)){if(D!==null&&ou(k)){var P=D.start,Y=D.end;if(Y===void 0&&(Y=P),"selectionStart"in k)k.selectionStart=P,k.selectionEnd=Math.min(Y,k.value.length);else{var X=k.ownerDocument||document,q=X&&X.defaultView||window;if(q.getSelection){var Z=q.getSelection(),ge=k.textContent.length,Se=Math.min(D.start,ge),it=D.end===void 0?Se:Math.min(D.end,ge);!Z.extend&&Se>it&&(x=it,it=Se,Se=x);var L=zm(k,Se),R=zm(k,it);if(L&&R&&(Z.rangeCount!==1||Z.anchorNode!==L.node||Z.anchorOffset!==L.offset||Z.focusNode!==R.node||Z.focusOffset!==R.offset)){var z=X.createRange();z.setStart(L.node,L.offset),Z.removeAllRanges(),Se>it?(Z.addRange(z),Z.extend(R.node,R.offset)):(z.setEnd(R.node,R.offset),Z.addRange(z))}}}}for(X=[],Z=k;Z=Z.parentNode;)Z.nodeType===1&&X.push({element:Z,left:Z.scrollLeft,top:Z.scrollTop});for(typeof k.focus=="function"&&k.focus(),k=0;k<X.length;k++){var J=X[k];J.element.scrollLeft=J.left,J.element.scrollTop=J.top}}Hl=!!Od,Id=Od=null}finally{We=f,$.p=r,I.T=a}}e.current=t,Mt=2}}function nv(){if(Mt===2){Mt=0;var e=ea,t=Ri,a=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||a){a=I.T,I.T=null;var r=$.p;$.p=2;var f=We;We|=4;try{Ag(e,t.alternate,t)}finally{We=f,$.p=r,I.T=a}}Mt=3}}function sv(){if(Mt===4||Mt===3){Mt=0,Rt();var e=ea,t=Ri,a=ws,r=qg;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Mt=5:(Mt=0,Ri=ea=null,av(e,e.pendingLanes));var f=e.pendingLanes;if(f===0&&(Qs=null),xa(a),t=t.stateNode,Yt&&typeof Yt.onCommitFiberRoot=="function")try{Yt.onCommitFiberRoot(Us,t,void 0,(t.current.flags&128)===128)}catch{}if(r!==null){t=I.T,f=$.p,$.p=2,I.T=null;try{for(var p=e.onRecoverableError,x=0;x<r.length;x++){var k=r[x];p(k.value,{componentStack:k.stack})}}finally{I.T=t,$.p=f}}(ws&3)!==0&&Al(),es(e),f=e.pendingLanes,(a&261930)!==0&&(f&42)!==0?e===xd?Go++:(Go=0,xd=e):Go=0,$o(0)}}function av(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,wo(t)))}function Al(){return tv(),nv(),sv(),iv()}function iv(){if(Mt!==5)return!1;var e=ea,t=bd;bd=0;var a=xa(ws),r=I.T,f=$.p;try{$.p=32>a?32:a,I.T=null,a=_d,_d=null;var p=ea,x=ws;if(Mt=0,Ri=ea=null,ws=0,(We&6)!==0)throw Error(o(331));var k=We;if(We|=4,Pg(p.current),Bg(p,p.current,x,a),We=k,$o(0,!1),Yt&&typeof Yt.onPostCommitFiberRoot=="function")try{Yt.onPostCommitFiberRoot(Us,p)}catch{}return!0}finally{$.p=f,I.T=r,av(e,t)}}function ov(e,t,a){t=jn(a,t),t=Qu(e.stateNode,t,2),e=Fs(e,t,2),e!==null&&(qe(e,2),es(e))}function tt(e,t,a){if(e.tag===3)ov(e,e,a);else for(;t!==null;){if(t.tag===3){ov(t,e,a);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Qs===null||!Qs.has(r))){e=jn(a,e),a=rg(2),r=Fs(t,a,2),r!==null&&(lg(a,r,t,e),qe(r,2),es(r));break}}t=t.return}}function kd(e,t,a){var r=e.pingCache;if(r===null){r=e.pingCache=new Q1;var f=new Set;r.set(t,f)}else f=r.get(t),f===void 0&&(f=new Set,r.set(t,f));f.has(a)||(gd=!0,f.add(a),e=aS.bind(null,e,t,a),t.then(e,e))}function aS(e,t,a){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,ot===e&&(Pe&a)===a&&(bt===4||bt===3&&(Pe&62914560)===Pe&&300>Kt()-kl?(We&2)===0&&Mi(e,0):vd|=a,Di===Pe&&(Di=0)),es(e)}function rv(e,t){t===0&&(t=Ke()),e=Na(e,t),e!==null&&(qe(e,t),es(e))}function iS(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),rv(e,a)}function oS(e,t){var a=0;switch(e.tag){case 31:case 13:var r=e.stateNode,f=e.memoizedState;f!==null&&(a=f.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}r!==null&&r.delete(t),rv(e,a)}function rS(e,t){return Bs(e,t)}var Dl=null,Ii=null,wd=!1,Rl=!1,Nd=!1,na=0;function es(e){e!==Ii&&e.next===null&&(Ii===null?Dl=Ii=e:Ii=Ii.next=e),Rl=!0,wd||(wd=!0,cS())}function $o(e,t){if(!Nd&&Rl){Nd=!0;do for(var a=!1,r=Dl;r!==null;){if(e!==0){var f=r.pendingLanes;if(f===0)var p=0;else{var x=r.suspendedLanes,k=r.pingedLanes;p=(1<<31-Jt(42|e)+1)-1,p&=f&~(x&~k),p=p&201326741?p&201326741|1:p?p|2:0}p!==0&&(a=!0,dv(r,p))}else p=Pe,p=He(r,r===ot?p:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),(p&3)===0||ye(r,p)||(a=!0,dv(r,p));r=r.next}while(a);Nd=!1}}function lS(){lv()}function lv(){Rl=wd=!1;var e=0;na!==0&&bS()&&(e=na);for(var t=Kt(),a=null,r=Dl;r!==null;){var f=r.next,p=cv(r,t);p===0?(r.next=null,a===null?Dl=f:a.next=f,f===null&&(Ii=a)):(a=r,(e!==0||(p&3)!==0)&&(Rl=!0)),r=f}Mt!==0&&Mt!==5||$o(e),na!==0&&(na=0)}function cv(e,t){for(var a=e.suspendedLanes,r=e.pingedLanes,f=e.expirationTimes,p=e.pendingLanes&-62914561;0<p;){var x=31-Jt(p),k=1<<x,D=f[x];D===-1?((k&a)===0||(k&r)!==0)&&(f[x]=Oe(k,t)):D<=t&&(e.expiredLanes|=k),p&=~k}if(t=ot,a=Pe,a=He(e,e===t?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,a===0||e===t&&(et===2||et===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&dn(r),e.callbackNode=null,e.callbackPriority=0;if((a&3)===0||ye(e,a)){if(t=a&-a,t===e.callbackPriority)return t;switch(r!==null&&dn(r),xa(a)){case 2:case 8:a=co;break;case 32:a=_a;break;case 268435456:a=uo;break;default:a=_a}return r=uv.bind(null,e),a=Bs(a,r),e.callbackPriority=t,e.callbackNode=a,t}return r!==null&&r!==null&&dn(r),e.callbackPriority=2,e.callbackNode=null,2}function uv(e,t){if(Mt!==0&&Mt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var a=e.callbackNode;if(Al()&&e.callbackNode!==a)return null;var r=Pe;return r=He(e,e===ot?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:($g(e,r,t),cv(e,Kt()),e.callbackNode!=null&&e.callbackNode===a?uv.bind(null,e):null)}function dv(e,t){if(Al())return null;$g(e,t,!0)}function cS(){xS(function(){(We&6)!==0?Bs(lo,lS):lv()})}function jd(){if(na===0){var e=_i;e===0&&(e=ne,ne<<=1,(ne&261888)===0&&(ne=256)),na=e}return na}function fv(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:Pr(""+e)}function pv(e,t){var a=t.ownerDocument.createElement("input");return a.name=t.name,a.value=t.value,e.id&&a.setAttribute("form",e.id),t.parentNode.insertBefore(a,t),e=new FormData(e),a.parentNode.removeChild(a),e}function uS(e,t,a,r,f){if(t==="submit"&&a&&a.stateNode===f){var p=fv((f[nn]||null).action),x=r.submitter;x&&(t=(t=x[nn]||null)?fv(t.formAction):x.getAttribute("formAction"),t!==null&&(p=t,x=null));var k=new Gr("action","action",null,r,f);e.push({event:k,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(na!==0){var D=x?pv(f,x):new FormData(f);Fu(a,{pending:!0,data:D,method:f.method,action:p},null,D)}}else typeof p=="function"&&(k.preventDefault(),D=x?pv(f,x):new FormData(f),Fu(a,{pending:!0,data:D,method:f.method,action:p},p,D))},currentTarget:f}]})}}for(var Cd=0;Cd<uu.length;Cd++){var Ed=uu[Cd],dS=Ed.toLowerCase(),fS=Ed[0].toUpperCase()+Ed.slice(1);Hn(dS,"on"+fS)}Hn(Gm,"onAnimationEnd"),Hn($m,"onAnimationIteration"),Hn(Zm,"onAnimationStart"),Hn("dblclick","onDoubleClick"),Hn("focusin","onFocus"),Hn("focusout","onBlur"),Hn(C1,"onTransitionRun"),Hn(E1,"onTransitionStart"),Hn(A1,"onTransitionCancel"),Hn(Fm,"onTransitionEnd"),oi("onMouseEnter",["mouseout","mouseover"]),oi("onMouseLeave",["mouseout","mouseover"]),oi("onPointerEnter",["pointerout","pointerover"]),oi("onPointerLeave",["pointerout","pointerover"]),Sa("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Sa("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Sa("onBeforeInput",["compositionend","keypress","textInput","paste"]),Sa("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Sa("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Sa("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Zo="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),pS=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Zo));function mv(e,t){t=(t&4)!==0;for(var a=0;a<e.length;a++){var r=e[a],f=r.event;r=r.listeners;e:{var p=void 0;if(t)for(var x=r.length-1;0<=x;x--){var k=r[x],D=k.instance,P=k.currentTarget;if(k=k.listener,D!==p&&f.isPropagationStopped())break e;p=k,f.currentTarget=P;try{p(f)}catch(Y){Fr(Y)}f.currentTarget=null,p=D}else for(x=0;x<r.length;x++){if(k=r[x],D=k.instance,P=k.currentTarget,k=k.listener,D!==p&&f.isPropagationStopped())break e;p=k,f.currentTarget=P;try{p(f)}catch(Y){Fr(Y)}f.currentTarget=null,p=D}}}}function Ue(e,t){var a=t[Hc];a===void 0&&(a=t[Hc]=new Set);var r=e+"__bubble";a.has(r)||(hv(t,e,2,!1),a.add(r))}function Ad(e,t,a){var r=0;t&&(r|=4),hv(a,e,r,t)}var Ml="_reactListening"+Math.random().toString(36).slice(2);function Dd(e){if(!e[Ml]){e[Ml]=!0,lm.forEach(function(a){a!=="selectionchange"&&(pS.has(a)||Ad(a,!1,e),Ad(a,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ml]||(t[Ml]=!0,Ad("selectionchange",!1,t))}}function hv(e,t,a,r){switch(Gv(t)){case 2:var f=VS;break;case 8:f=HS;break;default:f=Zd}a=f.bind(null,t,a,e),f=void 0,!Xc||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(f=!0),r?f!==void 0?e.addEventListener(t,a,{capture:!0,passive:f}):e.addEventListener(t,a,!0):f!==void 0?e.addEventListener(t,a,{passive:f}):e.addEventListener(t,a,!1)}function Rd(e,t,a,r,f){var p=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var x=r.tag;if(x===3||x===4){var k=r.stateNode.containerInfo;if(k===f)break;if(x===4)for(x=r.return;x!==null;){var D=x.tag;if((D===3||D===4)&&x.stateNode.containerInfo===f)return;x=x.return}for(;k!==null;){if(x=si(k),x===null)return;if(D=x.tag,D===5||D===6||D===26||D===27){r=p=x;continue e}k=k.parentNode}}r=r.return}_m(function(){var P=p,Y=Yc(a),X=[];e:{var q=Km.get(e);if(q!==void 0){var Z=Gr,ge=e;switch(e){case"keypress":if(Hr(a)===0)break e;case"keydown":case"keyup":Z=o1;break;case"focusin":ge="focus",Z=tu;break;case"focusout":ge="blur",Z=tu;break;case"beforeblur":case"afterblur":Z=tu;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Z=Tm;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Z=Kx;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Z=c1;break;case Gm:case $m:case Zm:Z=Xx;break;case Fm:Z=d1;break;case"scroll":case"scrollend":Z=Zx;break;case"wheel":Z=p1;break;case"copy":case"cut":case"paste":Z=Qx;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Z=wm;break;case"toggle":case"beforetoggle":Z=h1}var Se=(t&4)!==0,it=!Se&&(e==="scroll"||e==="scrollend"),L=Se?q!==null?q+"Capture":null:q;Se=[];for(var R=P,z;R!==null;){var J=R;if(z=J.stateNode,J=J.tag,J!==5&&J!==26&&J!==27||z===null||L===null||(J=mo(R,L),J!=null&&Se.push(Fo(R,J,z))),it)break;R=R.return}0<Se.length&&(q=new Z(q,ge,null,a,Y),X.push({event:q,listeners:Se}))}}if((t&7)===0){e:{if(q=e==="mouseover"||e==="pointerover",Z=e==="mouseout"||e==="pointerout",q&&a!==Kc&&(ge=a.relatedTarget||a.fromElement)&&(si(ge)||ge[ni]))break e;if((Z||q)&&(q=Y.window===Y?Y:(q=Y.ownerDocument)?q.defaultView||q.parentWindow:window,Z?(ge=a.relatedTarget||a.toElement,Z=P,ge=ge?si(ge):null,ge!==null&&(it=u(ge),Se=ge.tag,ge!==it||Se!==5&&Se!==27&&Se!==6)&&(ge=null)):(Z=null,ge=P),Z!==ge)){if(Se=Tm,J="onMouseLeave",L="onMouseEnter",R="mouse",(e==="pointerout"||e==="pointerover")&&(Se=wm,J="onPointerLeave",L="onPointerEnter",R="pointer"),it=Z==null?q:po(Z),z=ge==null?q:po(ge),q=new Se(J,R+"leave",Z,a,Y),q.target=it,q.relatedTarget=z,J=null,si(Y)===P&&(Se=new Se(L,R+"enter",ge,a,Y),Se.target=z,Se.relatedTarget=it,J=Se),it=J,Z&&ge)t:{for(Se=mS,L=Z,R=ge,z=0,J=L;J;J=Se(J))z++;J=0;for(var _e=R;_e;_e=Se(_e))J++;for(;0<z-J;)L=Se(L),z--;for(;0<J-z;)R=Se(R),J--;for(;z--;){if(L===R||R!==null&&L===R.alternate){Se=L;break t}L=Se(L),R=Se(R)}Se=null}else Se=null;Z!==null&&gv(X,q,Z,Se,!1),ge!==null&&it!==null&&gv(X,it,ge,Se,!0)}}e:{if(q=P?po(P):window,Z=q.nodeName&&q.nodeName.toLowerCase(),Z==="select"||Z==="input"&&q.type==="file")var Ye=Mm;else if(Dm(q))if(Om)Ye=w1;else{Ye=T1;var ve=S1}else Z=q.nodeName,!Z||Z.toLowerCase()!=="input"||q.type!=="checkbox"&&q.type!=="radio"?P&&Fc(P.elementType)&&(Ye=Mm):Ye=k1;if(Ye&&(Ye=Ye(e,P))){Rm(X,Ye,a,Y);break e}ve&&ve(e,q,P),e==="focusout"&&P&&q.type==="number"&&P.memoizedProps.value!=null&&Zc(q,"number",q.value)}switch(ve=P?po(P):window,e){case"focusin":(Dm(ve)||ve.contentEditable==="true")&&(fi=ve,ru=P,So=null);break;case"focusout":So=ru=fi=null;break;case"mousedown":lu=!0;break;case"contextmenu":case"mouseup":case"dragend":lu=!1,Hm(X,a,Y);break;case"selectionchange":if(j1)break;case"keydown":case"keyup":Hm(X,a,Y)}var Ie;if(su)e:{switch(e){case"compositionstart":var Ve="onCompositionStart";break e;case"compositionend":Ve="onCompositionEnd";break e;case"compositionupdate":Ve="onCompositionUpdate";break e}Ve=void 0}else di?Em(e,a)&&(Ve="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(Ve="onCompositionStart");Ve&&(Nm&&a.locale!=="ko"&&(di||Ve!=="onCompositionStart"?Ve==="onCompositionEnd"&&di&&(Ie=xm()):(Ps=Y,Wc="value"in Ps?Ps.value:Ps.textContent,di=!0)),ve=Ol(P,Ve),0<ve.length&&(Ve=new km(Ve,e,null,a,Y),X.push({event:Ve,listeners:ve}),Ie?Ve.data=Ie:(Ie=Am(a),Ie!==null&&(Ve.data=Ie)))),(Ie=v1?y1(e,a):b1(e,a))&&(Ve=Ol(P,"onBeforeInput"),0<Ve.length&&(ve=new km("onBeforeInput","beforeinput",null,a,Y),X.push({event:ve,listeners:Ve}),ve.data=Ie)),uS(X,e,P,a,Y)}mv(X,t)})}function Fo(e,t,a){return{instance:e,listener:t,currentTarget:a}}function Ol(e,t){for(var a=t+"Capture",r=[];e!==null;){var f=e,p=f.stateNode;if(f=f.tag,f!==5&&f!==26&&f!==27||p===null||(f=mo(e,a),f!=null&&r.unshift(Fo(e,f,p)),f=mo(e,t),f!=null&&r.push(Fo(e,f,p))),e.tag===3)return r;e=e.return}return[]}function mS(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function gv(e,t,a,r,f){for(var p=t._reactName,x=[];a!==null&&a!==r;){var k=a,D=k.alternate,P=k.stateNode;if(k=k.tag,D!==null&&D===r)break;k!==5&&k!==26&&k!==27||P===null||(D=P,f?(P=mo(a,p),P!=null&&x.unshift(Fo(a,P,D))):f||(P=mo(a,p),P!=null&&x.push(Fo(a,P,D)))),a=a.return}x.length!==0&&e.push({event:t,listeners:x})}var hS=/\r\n?/g,gS=/\u0000|\uFFFD/g;function vv(e){return(typeof e=="string"?e:""+e).replace(hS,`
26
- `).replace(gS,"")}function yv(e,t){return t=vv(t),vv(e)===t}function at(e,t,a,r,f,p){switch(a){case"children":typeof r=="string"?t==="body"||t==="textarea"&&r===""||li(e,r):(typeof r=="number"||typeof r=="bigint")&&t!=="body"&&li(e,""+r);break;case"className":Ur(e,"class",r);break;case"tabIndex":Ur(e,"tabindex",r);break;case"dir":case"role":case"viewBox":case"width":case"height":Ur(e,a,r);break;case"style":ym(e,r,p);break;case"data":if(t!=="object"){Ur(e,"data",r);break}case"src":case"href":if(r===""&&(t!=="a"||a!=="href")){e.removeAttribute(a);break}if(r==null||typeof r=="function"||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(a);break}r=Pr(""+r),e.setAttribute(a,r);break;case"action":case"formAction":if(typeof r=="function"){e.setAttribute(a,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof p=="function"&&(a==="formAction"?(t!=="input"&&at(e,t,"name",f.name,f,null),at(e,t,"formEncType",f.formEncType,f,null),at(e,t,"formMethod",f.formMethod,f,null),at(e,t,"formTarget",f.formTarget,f,null)):(at(e,t,"encType",f.encType,f,null),at(e,t,"method",f.method,f,null),at(e,t,"target",f.target,f,null)));if(r==null||typeof r=="symbol"||typeof r=="boolean"){e.removeAttribute(a);break}r=Pr(""+r),e.setAttribute(a,r);break;case"onClick":r!=null&&(e.onclick=us);break;case"onScroll":r!=null&&Ue("scroll",e);break;case"onScrollEnd":r!=null&&Ue("scrollend",e);break;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(o(61));if(a=r.__html,a!=null){if(f.children!=null)throw Error(o(60));e.innerHTML=a}}break;case"multiple":e.multiple=r&&typeof r!="function"&&typeof r!="symbol";break;case"muted":e.muted=r&&typeof r!="function"&&typeof r!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(r==null||typeof r=="function"||typeof r=="boolean"||typeof r=="symbol"){e.removeAttribute("xlink:href");break}a=Pr(""+r),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(a,""+r):e.removeAttribute(a);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":r&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(a,""):e.removeAttribute(a);break;case"capture":case"download":r===!0?e.setAttribute(a,""):r!==!1&&r!=null&&typeof r!="function"&&typeof r!="symbol"?e.setAttribute(a,r):e.removeAttribute(a);break;case"cols":case"rows":case"size":case"span":r!=null&&typeof r!="function"&&typeof r!="symbol"&&!isNaN(r)&&1<=r?e.setAttribute(a,r):e.removeAttribute(a);break;case"rowSpan":case"start":r==null||typeof r=="function"||typeof r=="symbol"||isNaN(r)?e.removeAttribute(a):e.setAttribute(a,r);break;case"popover":Ue("beforetoggle",e),Ue("toggle",e),Br(e,"popover",r);break;case"xlinkActuate":cs(e,"http://www.w3.org/1999/xlink","xlink:actuate",r);break;case"xlinkArcrole":cs(e,"http://www.w3.org/1999/xlink","xlink:arcrole",r);break;case"xlinkRole":cs(e,"http://www.w3.org/1999/xlink","xlink:role",r);break;case"xlinkShow":cs(e,"http://www.w3.org/1999/xlink","xlink:show",r);break;case"xlinkTitle":cs(e,"http://www.w3.org/1999/xlink","xlink:title",r);break;case"xlinkType":cs(e,"http://www.w3.org/1999/xlink","xlink:type",r);break;case"xmlBase":cs(e,"http://www.w3.org/XML/1998/namespace","xml:base",r);break;case"xmlLang":cs(e,"http://www.w3.org/XML/1998/namespace","xml:lang",r);break;case"xmlSpace":cs(e,"http://www.w3.org/XML/1998/namespace","xml:space",r);break;case"is":Br(e,"is",r);break;case"innerText":case"textContent":break;default:(!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(a=Gx.get(a)||a,Br(e,a,r))}}function Md(e,t,a,r,f,p){switch(a){case"style":ym(e,r,p);break;case"dangerouslySetInnerHTML":if(r!=null){if(typeof r!="object"||!("__html"in r))throw Error(o(61));if(a=r.__html,a!=null){if(f.children!=null)throw Error(o(60));e.innerHTML=a}}break;case"children":typeof r=="string"?li(e,r):(typeof r=="number"||typeof r=="bigint")&&li(e,""+r);break;case"onScroll":r!=null&&Ue("scroll",e);break;case"onScrollEnd":r!=null&&Ue("scrollend",e);break;case"onClick":r!=null&&(e.onclick=us);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!cm.hasOwnProperty(a))e:{if(a[0]==="o"&&a[1]==="n"&&(f=a.endsWith("Capture"),t=a.slice(2,f?a.length-7:void 0),p=e[nn]||null,p=p!=null?p[a]:null,typeof p=="function"&&e.removeEventListener(t,p,f),typeof r=="function")){typeof p!="function"&&p!==null&&(a in e?e[a]=null:e.hasAttribute(a)&&e.removeAttribute(a)),e.addEventListener(t,r,f);break e}a in e?e[a]=r:r===!0?e.setAttribute(a,""):Br(e,a,r)}}}function $t(e,t,a){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Ue("error",e),Ue("load",e);var r=!1,f=!1,p;for(p in a)if(a.hasOwnProperty(p)){var x=a[p];if(x!=null)switch(p){case"src":r=!0;break;case"srcSet":f=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:at(e,t,p,x,a,null)}}f&&at(e,t,"srcSet",a.srcSet,a,null),r&&at(e,t,"src",a.src,a,null);return;case"input":Ue("invalid",e);var k=p=x=f=null,D=null,P=null;for(r in a)if(a.hasOwnProperty(r)){var Y=a[r];if(Y!=null)switch(r){case"name":f=Y;break;case"type":x=Y;break;case"checked":D=Y;break;case"defaultChecked":P=Y;break;case"value":p=Y;break;case"defaultValue":k=Y;break;case"children":case"dangerouslySetInnerHTML":if(Y!=null)throw Error(o(137,t));break;default:at(e,t,r,Y,a,null)}}mm(e,p,k,D,P,x,f,!1);return;case"select":Ue("invalid",e),r=x=p=null;for(f in a)if(a.hasOwnProperty(f)&&(k=a[f],k!=null))switch(f){case"value":p=k;break;case"defaultValue":x=k;break;case"multiple":r=k;default:at(e,t,f,k,a,null)}t=p,a=x,e.multiple=!!r,t!=null?ri(e,!!r,t,!1):a!=null&&ri(e,!!r,a,!0);return;case"textarea":Ue("invalid",e),p=f=r=null;for(x in a)if(a.hasOwnProperty(x)&&(k=a[x],k!=null))switch(x){case"value":r=k;break;case"defaultValue":f=k;break;case"children":p=k;break;case"dangerouslySetInnerHTML":if(k!=null)throw Error(o(91));break;default:at(e,t,x,k,a,null)}gm(e,r,f,p);return;case"option":for(D in a)if(a.hasOwnProperty(D)&&(r=a[D],r!=null))switch(D){case"selected":e.selected=r&&typeof r!="function"&&typeof r!="symbol";break;default:at(e,t,D,r,a,null)}return;case"dialog":Ue("beforetoggle",e),Ue("toggle",e),Ue("cancel",e),Ue("close",e);break;case"iframe":case"object":Ue("load",e);break;case"video":case"audio":for(r=0;r<Zo.length;r++)Ue(Zo[r],e);break;case"image":Ue("error",e),Ue("load",e);break;case"details":Ue("toggle",e);break;case"embed":case"source":case"link":Ue("error",e),Ue("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(P in a)if(a.hasOwnProperty(P)&&(r=a[P],r!=null))switch(P){case"children":case"dangerouslySetInnerHTML":throw Error(o(137,t));default:at(e,t,P,r,a,null)}return;default:if(Fc(t)){for(Y in a)a.hasOwnProperty(Y)&&(r=a[Y],r!==void 0&&Md(e,t,Y,r,a,void 0));return}}for(k in a)a.hasOwnProperty(k)&&(r=a[k],r!=null&&at(e,t,k,r,a,null))}function vS(e,t,a,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var f=null,p=null,x=null,k=null,D=null,P=null,Y=null;for(Z in a){var X=a[Z];if(a.hasOwnProperty(Z)&&X!=null)switch(Z){case"checked":break;case"value":break;case"defaultValue":D=X;default:r.hasOwnProperty(Z)||at(e,t,Z,null,r,X)}}for(var q in r){var Z=r[q];if(X=a[q],r.hasOwnProperty(q)&&(Z!=null||X!=null))switch(q){case"type":p=Z;break;case"name":f=Z;break;case"checked":P=Z;break;case"defaultChecked":Y=Z;break;case"value":x=Z;break;case"defaultValue":k=Z;break;case"children":case"dangerouslySetInnerHTML":if(Z!=null)throw Error(o(137,t));break;default:Z!==X&&at(e,t,q,Z,r,X)}}$c(e,x,k,D,P,Y,p,f);return;case"select":Z=x=k=q=null;for(p in a)if(D=a[p],a.hasOwnProperty(p)&&D!=null)switch(p){case"value":break;case"multiple":Z=D;default:r.hasOwnProperty(p)||at(e,t,p,null,r,D)}for(f in r)if(p=r[f],D=a[f],r.hasOwnProperty(f)&&(p!=null||D!=null))switch(f){case"value":q=p;break;case"defaultValue":k=p;break;case"multiple":x=p;default:p!==D&&at(e,t,f,p,r,D)}t=k,a=x,r=Z,q!=null?ri(e,!!a,q,!1):!!r!=!!a&&(t!=null?ri(e,!!a,t,!0):ri(e,!!a,a?[]:"",!1));return;case"textarea":Z=q=null;for(k in a)if(f=a[k],a.hasOwnProperty(k)&&f!=null&&!r.hasOwnProperty(k))switch(k){case"value":break;case"children":break;default:at(e,t,k,null,r,f)}for(x in r)if(f=r[x],p=a[x],r.hasOwnProperty(x)&&(f!=null||p!=null))switch(x){case"value":q=f;break;case"defaultValue":Z=f;break;case"children":break;case"dangerouslySetInnerHTML":if(f!=null)throw Error(o(91));break;default:f!==p&&at(e,t,x,f,r,p)}hm(e,q,Z);return;case"option":for(var ge in a)if(q=a[ge],a.hasOwnProperty(ge)&&q!=null&&!r.hasOwnProperty(ge))switch(ge){case"selected":e.selected=!1;break;default:at(e,t,ge,null,r,q)}for(D in r)if(q=r[D],Z=a[D],r.hasOwnProperty(D)&&q!==Z&&(q!=null||Z!=null))switch(D){case"selected":e.selected=q&&typeof q!="function"&&typeof q!="symbol";break;default:at(e,t,D,q,r,Z)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Se in a)q=a[Se],a.hasOwnProperty(Se)&&q!=null&&!r.hasOwnProperty(Se)&&at(e,t,Se,null,r,q);for(P in r)if(q=r[P],Z=a[P],r.hasOwnProperty(P)&&q!==Z&&(q!=null||Z!=null))switch(P){case"children":case"dangerouslySetInnerHTML":if(q!=null)throw Error(o(137,t));break;default:at(e,t,P,q,r,Z)}return;default:if(Fc(t)){for(var it in a)q=a[it],a.hasOwnProperty(it)&&q!==void 0&&!r.hasOwnProperty(it)&&Md(e,t,it,void 0,r,q);for(Y in r)q=r[Y],Z=a[Y],!r.hasOwnProperty(Y)||q===Z||q===void 0&&Z===void 0||Md(e,t,Y,q,r,Z);return}}for(var L in a)q=a[L],a.hasOwnProperty(L)&&q!=null&&!r.hasOwnProperty(L)&&at(e,t,L,null,r,q);for(X in r)q=r[X],Z=a[X],!r.hasOwnProperty(X)||q===Z||q==null&&Z==null||at(e,t,X,q,r,Z)}function bv(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function yS(){if(typeof performance.getEntriesByType=="function"){for(var e=0,t=0,a=performance.getEntriesByType("resource"),r=0;r<a.length;r++){var f=a[r],p=f.transferSize,x=f.initiatorType,k=f.duration;if(p&&k&&bv(x)){for(x=0,k=f.responseEnd,r+=1;r<a.length;r++){var D=a[r],P=D.startTime;if(P>k)break;var Y=D.transferSize,X=D.initiatorType;Y&&bv(X)&&(D=D.responseEnd,x+=Y*(D<k?1:(k-P)/(D-P)))}if(--r,t+=8*(p+x)/(f.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var Od=null,Id=null;function Il(e){return e.nodeType===9?e:e.ownerDocument}function _v(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function xv(e,t){if(e===0)switch(t){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&t==="foreignObject"?0:e}function Ld(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.children=="bigint"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Bd=null;function bS(){var e=window.event;return e&&e.type==="popstate"?e===Bd?!1:(Bd=e,!0):(Bd=null,!1)}var Sv=typeof setTimeout=="function"?setTimeout:void 0,_S=typeof clearTimeout=="function"?clearTimeout:void 0,Tv=typeof Promise=="function"?Promise:void 0,xS=typeof queueMicrotask=="function"?queueMicrotask:typeof Tv<"u"?function(e){return Tv.resolve(null).then(e).catch(SS)}:Sv;function SS(e){setTimeout(function(){throw e})}function sa(e){return e==="head"}function kv(e,t){var a=t,r=0;do{var f=a.nextSibling;if(e.removeChild(a),f&&f.nodeType===8)if(a=f.data,a==="/$"||a==="/&"){if(r===0){e.removeChild(f),zi(t);return}r--}else if(a==="$"||a==="$?"||a==="$~"||a==="$!"||a==="&")r++;else if(a==="html")Ko(e.ownerDocument.documentElement);else if(a==="head"){a=e.ownerDocument.head,Ko(a);for(var p=a.firstChild;p;){var x=p.nextSibling,k=p.nodeName;p[fo]||k==="SCRIPT"||k==="STYLE"||k==="LINK"&&p.rel.toLowerCase()==="stylesheet"||a.removeChild(p),p=x}}else a==="body"&&Ko(e.ownerDocument.body);a=f}while(a);zi(t)}function wv(e,t){var a=e;e=0;do{var r=a.nextSibling;if(a.nodeType===1?t?(a._stashedDisplay=a.style.display,a.style.display="none"):(a.style.display=a._stashedDisplay||"",a.getAttribute("style")===""&&a.removeAttribute("style")):a.nodeType===3&&(t?(a._stashedText=a.nodeValue,a.nodeValue=""):a.nodeValue=a._stashedText||""),r&&r.nodeType===8)if(a=r.data,a==="/$"){if(e===0)break;e--}else a!=="$"&&a!=="$?"&&a!=="$~"&&a!=="$!"||e++;a=r}while(a)}function Ud(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var a=t;switch(t=t.nextSibling,a.nodeName){case"HTML":case"HEAD":case"BODY":Ud(a),qc(a);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(a.rel.toLowerCase()==="stylesheet")continue}e.removeChild(a)}}function TS(e,t,a,r){for(;e.nodeType===1;){var f=a;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(r){if(!e[fo])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(p=e.getAttribute("rel"),p==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(p!==f.rel||e.getAttribute("href")!==(f.href==null||f.href===""?null:f.href)||e.getAttribute("crossorigin")!==(f.crossOrigin==null?null:f.crossOrigin)||e.getAttribute("title")!==(f.title==null?null:f.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(p=e.getAttribute("src"),(p!==(f.src==null?null:f.src)||e.getAttribute("type")!==(f.type==null?null:f.type)||e.getAttribute("crossorigin")!==(f.crossOrigin==null?null:f.crossOrigin))&&p&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(t==="input"&&e.type==="hidden"){var p=f.name==null?null:""+f.name;if(f.type==="hidden"&&e.getAttribute("name")===p)return e}else return e;if(e=Rn(e.nextSibling),e===null)break}return null}function kS(e,t,a){if(t==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!a||(e=Rn(e.nextSibling),e===null))return null;return e}function Nv(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!t||(e=Rn(e.nextSibling),e===null))return null;return e}function zd(e){return e.data==="$?"||e.data==="$~"}function Pd(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function wS(e,t){var a=e.ownerDocument;if(e.data==="$~")e._reactRetry=t;else if(e.data!=="$?"||a.readyState!=="loading")t();else{var r=function(){t(),a.removeEventListener("DOMContentLoaded",r)};a.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}function Rn(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"||t==="F!"||t==="F")break;if(t==="/$"||t==="/&")return null}}return e}var Vd=null;function jv(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"||a==="/&"){if(t===0)return Rn(e.nextSibling);t--}else a!=="$"&&a!=="$!"&&a!=="$?"&&a!=="$~"&&a!=="&"||t++}e=e.nextSibling}return null}function Cv(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"){if(t===0)return e;t--}else a!=="/$"&&a!=="/&"||t++}e=e.previousSibling}return null}function Ev(e,t,a){switch(t=Il(a),e){case"html":if(e=t.documentElement,!e)throw Error(o(452));return e;case"head":if(e=t.head,!e)throw Error(o(453));return e;case"body":if(e=t.body,!e)throw Error(o(454));return e;default:throw Error(o(451))}}function Ko(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);qc(e)}var Mn=new Map,Av=new Set;function Ll(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Ns=$.d;$.d={f:NS,r:jS,D:CS,C:ES,L:AS,m:DS,X:MS,S:RS,M:OS};function NS(){var e=Ns.f(),t=jl();return e||t}function jS(e){var t=ai(e);t!==null&&t.tag===5&&t.type==="form"?Fh(t):Ns.r(e)}var Li=typeof document>"u"?null:document;function Dv(e,t,a){var r=Li;if(r&&typeof t=="string"&&t){var f=wn(t);f='link[rel="'+e+'"][href="'+f+'"]',typeof a=="string"&&(f+='[crossorigin="'+a+'"]'),Av.has(f)||(Av.add(f),e={rel:e,crossOrigin:a,href:t},r.querySelector(f)===null&&(t=r.createElement("link"),$t(t,"link",e),Bt(t),r.head.appendChild(t)))}}function CS(e){Ns.D(e),Dv("dns-prefetch",e,null)}function ES(e,t){Ns.C(e,t),Dv("preconnect",e,t)}function AS(e,t,a){Ns.L(e,t,a);var r=Li;if(r&&e&&t){var f='link[rel="preload"][as="'+wn(t)+'"]';t==="image"&&a&&a.imageSrcSet?(f+='[imagesrcset="'+wn(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(f+='[imagesizes="'+wn(a.imageSizes)+'"]')):f+='[href="'+wn(e)+'"]';var p=f;switch(t){case"style":p=Bi(e);break;case"script":p=Ui(e)}Mn.has(p)||(e=b({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),Mn.set(p,e),r.querySelector(f)!==null||t==="style"&&r.querySelector(Yo(p))||t==="script"&&r.querySelector(Jo(p))||(t=r.createElement("link"),$t(t,"link",e),Bt(t),r.head.appendChild(t)))}}function DS(e,t){Ns.m(e,t);var a=Li;if(a&&e){var r=t&&typeof t.as=="string"?t.as:"script",f='link[rel="modulepreload"][as="'+wn(r)+'"][href="'+wn(e)+'"]',p=f;switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":p=Ui(e)}if(!Mn.has(p)&&(e=b({rel:"modulepreload",href:e},t),Mn.set(p,e),a.querySelector(f)===null)){switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Jo(p)))return}r=a.createElement("link"),$t(r,"link",e),Bt(r),a.head.appendChild(r)}}}function RS(e,t,a){Ns.S(e,t,a);var r=Li;if(r&&e){var f=ii(r).hoistableStyles,p=Bi(e);t=t||"default";var x=f.get(p);if(!x){var k={loading:0,preload:null};if(x=r.querySelector(Yo(p)))k.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":t},a),(a=Mn.get(p))&&Hd(e,a);var D=x=r.createElement("link");Bt(D),$t(D,"link",e),D._p=new Promise(function(P,Y){D.onload=P,D.onerror=Y}),D.addEventListener("load",function(){k.loading|=1}),D.addEventListener("error",function(){k.loading|=2}),k.loading|=4,Bl(x,t,r)}x={type:"stylesheet",instance:x,count:1,state:k},f.set(p,x)}}}function MS(e,t){Ns.X(e,t);var a=Li;if(a&&e){var r=ii(a).hoistableScripts,f=Ui(e),p=r.get(f);p||(p=a.querySelector(Jo(f)),p||(e=b({src:e,async:!0},t),(t=Mn.get(f))&&qd(e,t),p=a.createElement("script"),Bt(p),$t(p,"link",e),a.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},r.set(f,p))}}function OS(e,t){Ns.M(e,t);var a=Li;if(a&&e){var r=ii(a).hoistableScripts,f=Ui(e),p=r.get(f);p||(p=a.querySelector(Jo(f)),p||(e=b({src:e,async:!0,type:"module"},t),(t=Mn.get(f))&&qd(e,t),p=a.createElement("script"),Bt(p),$t(p,"link",e),a.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},r.set(f,p))}}function Rv(e,t,a,r){var f=(f=fe.current)?Ll(f):null;if(!f)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Bi(a.href),a=ii(f).hoistableStyles,r=a.get(t),r||(r={type:"style",instance:null,count:0,state:null},a.set(t,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Bi(a.href);var p=ii(f).hoistableStyles,x=p.get(e);if(x||(f=f.ownerDocument||f,x={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},p.set(e,x),(p=f.querySelector(Yo(e)))&&!p._p&&(x.instance=p,x.state.loading=5),Mn.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},Mn.set(e,a),p||IS(f,e,a,x.state))),t&&r===null)throw Error(o(528,""));return x}if(t&&r!==null)throw Error(o(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ui(a),a=ii(f).hoistableScripts,r=a.get(t),r||(r={type:"script",instance:null,count:0,state:null},a.set(t,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function Bi(e){return'href="'+wn(e)+'"'}function Yo(e){return'link[rel="stylesheet"]['+e+"]"}function Mv(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function IS(e,t,a,r){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?r.loading=1:(t=e.createElement("link"),r.preload=t,t.addEventListener("load",function(){return r.loading|=1}),t.addEventListener("error",function(){return r.loading|=2}),$t(t,"link",a),Bt(t),e.head.appendChild(t))}function Ui(e){return'[src="'+wn(e)+'"]'}function Jo(e){return"script[async]"+e}function Ov(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var r=e.querySelector('style[data-href~="'+wn(a.href)+'"]');if(r)return t.instance=r,Bt(r),r;var f=b({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement("style"),Bt(r),$t(r,"style",f),Bl(r,a.precedence,e),t.instance=r;case"stylesheet":f=Bi(a.href);var p=e.querySelector(Yo(f));if(p)return t.state.loading|=4,t.instance=p,Bt(p),p;r=Mv(a),(f=Mn.get(f))&&Hd(r,f),p=(e.ownerDocument||e).createElement("link"),Bt(p);var x=p;return x._p=new Promise(function(k,D){x.onload=k,x.onerror=D}),$t(p,"link",r),t.state.loading|=4,Bl(p,a.precedence,e),t.instance=p;case"script":return p=Ui(a.src),(f=e.querySelector(Jo(p)))?(t.instance=f,Bt(f),f):(r=a,(f=Mn.get(p))&&(r=b({},a),qd(r,f)),e=e.ownerDocument||e,f=e.createElement("script"),Bt(f),$t(f,"link",r),e.head.appendChild(f),t.instance=f);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(r=t.instance,t.state.loading|=4,Bl(r,a.precedence,e));return t.instance}function Bl(e,t,a){for(var r=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),f=r.length?r[r.length-1]:null,p=f,x=0;x<r.length;x++){var k=r[x];if(k.dataset.precedence===t)p=k;else if(p!==f)break}p?p.parentNode.insertBefore(e,p.nextSibling):(t=a.nodeType===9?a.head:a,t.insertBefore(e,t.firstChild))}function Hd(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.title==null&&(e.title=t.title)}function qd(e,t){e.crossOrigin==null&&(e.crossOrigin=t.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=t.referrerPolicy),e.integrity==null&&(e.integrity=t.integrity)}var Ul=null;function Iv(e,t,a){if(Ul===null){var r=new Map,f=Ul=new Map;f.set(a,r)}else f=Ul,r=f.get(a),r||(r=new Map,f.set(a,r));if(r.has(e))return r;for(r.set(e,null),a=a.getElementsByTagName(e),f=0;f<a.length;f++){var p=a[f];if(!(p[fo]||p[Vt]||e==="link"&&p.getAttribute("rel")==="stylesheet")&&p.namespaceURI!=="http://www.w3.org/2000/svg"){var x=p.getAttribute(t)||"";x=e+x;var k=r.get(x);k?k.push(p):r.set(x,[p])}}return r}function Lv(e,t,a){e=e.ownerDocument||e,e.head.insertBefore(a,t==="title"?e.querySelector("head > title"):null)}function LS(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Bv(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function BS(e,t,a,r){if(a.type==="stylesheet"&&(typeof r.media!="string"||matchMedia(r.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var f=Bi(r.href),p=t.querySelector(Yo(f));if(p){t=p._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=zl.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=p,Bt(p);return}p=t.ownerDocument||t,r=Mv(r),(f=Mn.get(f))&&Hd(r,f),p=p.createElement("link"),Bt(p);var x=p;x._p=new Promise(function(k,D){x.onload=k,x.onerror=D}),$t(p,"link",r),a.instance=p}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=zl.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var Gd=0;function US(e,t){return e.stylesheets&&e.count===0&&Vl(e,e.stylesheets),0<e.count||0<e.imgCount?function(a){var r=setTimeout(function(){if(e.stylesheets&&Vl(e,e.stylesheets),e.unsuspend){var p=e.unsuspend;e.unsuspend=null,p()}},6e4+t);0<e.imgBytes&&Gd===0&&(Gd=62500*yS());var f=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Vl(e,e.stylesheets),e.unsuspend)){var p=e.unsuspend;e.unsuspend=null,p()}},(e.imgBytes>Gd?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(f)}}:null}function zl(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Vl(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Pl=null;function Vl(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Pl=new Map,t.forEach(zS,e),Pl=null,zl.call(e))}function zS(e,t){if(!(t.state.loading&4)){var a=Pl.get(e);if(a)var r=a.get(null);else{a=new Map,Pl.set(e,a);for(var f=e.querySelectorAll("link[data-precedence],style[data-precedence]"),p=0;p<f.length;p++){var x=f[p];(x.nodeName==="LINK"||x.getAttribute("media")!=="not all")&&(a.set(x.dataset.precedence,x),r=x)}r&&a.set(null,r)}f=t.instance,x=f.getAttribute("data-precedence"),p=a.get(x)||r,p===r&&a.set(null,f),a.set(x,f),this.count++,r=zl.bind(this),f.addEventListener("load",r),f.addEventListener("error",r),p?p.parentNode.insertBefore(f,p.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(f,e.firstChild)),t.state.loading|=4}}var Xo={$$typeof:A,Provider:null,Consumer:null,_currentValue:Q,_currentValue2:Q,_threadCount:0};function PS(e,t,a,r,f,p,x,k,D){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=nt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=nt(0),this.hiddenUpdates=nt(null),this.identifierPrefix=r,this.onUncaughtError=f,this.onCaughtError=p,this.onRecoverableError=x,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=D,this.incompleteTransitions=new Map}function Uv(e,t,a,r,f,p,x,k,D,P,Y,X){return e=new PS(e,t,a,x,D,P,Y,X,k),t=1,p===!0&&(t|=24),p=pn(3,null,null,t),e.current=p,p.stateNode=e,t=Tu(),t.refCount++,e.pooledCache=t,t.refCount++,p.memoizedState={element:r,isDehydrated:a,cache:t},ju(p),e}function zv(e){return e?(e=hi,e):hi}function Pv(e,t,a,r,f,p){f=zv(f),r.context===null?r.context=f:r.pendingContext=f,r=Zs(t),r.payload={element:a},p=p===void 0?null:p,p!==null&&(r.callback=p),a=Fs(e,r,t),a!==null&&(cn(a,e,t),Eo(a,e,t))}function Vv(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<t?a:t}}function $d(e,t){Vv(e,t),(e=e.alternate)&&Vv(e,t)}function Hv(e){if(e.tag===13||e.tag===31){var t=Na(e,67108864);t!==null&&cn(t,e,67108864),$d(e,67108864)}}function qv(e){if(e.tag===13||e.tag===31){var t=yn();t=Vn(t);var a=Na(e,t);a!==null&&cn(a,e,t),$d(e,t)}}var Hl=!0;function VS(e,t,a,r){var f=I.T;I.T=null;var p=$.p;try{$.p=2,Zd(e,t,a,r)}finally{$.p=p,I.T=f}}function HS(e,t,a,r){var f=I.T;I.T=null;var p=$.p;try{$.p=8,Zd(e,t,a,r)}finally{$.p=p,I.T=f}}function Zd(e,t,a,r){if(Hl){var f=Fd(r);if(f===null)Rd(e,t,r,ql,a),$v(e,r);else if(GS(f,e,t,a,r))r.stopPropagation();else if($v(e,r),t&4&&-1<qS.indexOf(e)){for(;f!==null;){var p=ai(f);if(p!==null)switch(p.tag){case 3:if(p=p.stateNode,p.current.memoizedState.isDehydrated){var x=ue(p.pendingLanes);if(x!==0){var k=p;for(k.pendingLanes|=2,k.entangledLanes|=2;x;){var D=1<<31-Jt(x);k.entanglements[1]|=D,x&=~D}es(p),(We&6)===0&&(wl=Kt()+500,$o(0))}}break;case 31:case 13:k=Na(p,2),k!==null&&cn(k,p,2),jl(),$d(p,2)}if(p=Fd(r),p===null&&Rd(e,t,r,ql,a),p===f)break;f=p}f!==null&&r.stopPropagation()}else Rd(e,t,r,null,a)}}function Fd(e){return e=Yc(e),Kd(e)}var ql=null;function Kd(e){if(ql=null,e=si(e),e!==null){var t=u(e);if(t===null)e=null;else{var a=t.tag;if(a===13){if(e=d(t),e!==null)return e;e=null}else if(a===31){if(e=m(t),e!==null)return e;e=null}else if(a===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return ql=e,null}function Gv(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(ro()){case lo:return 2;case co:return 8;case _a:case Mr:return 32;case uo:return 268435456;default:return 32}default:return 32}}var Yd=!1,aa=null,ia=null,oa=null,Wo=new Map,Qo=new Map,ra=[],qS="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function $v(e,t){switch(e){case"focusin":case"focusout":aa=null;break;case"dragenter":case"dragleave":ia=null;break;case"mouseover":case"mouseout":oa=null;break;case"pointerover":case"pointerout":Wo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Qo.delete(t.pointerId)}}function er(e,t,a,r,f,p){return e===null||e.nativeEvent!==p?(e={blockedOn:t,domEventName:a,eventSystemFlags:r,nativeEvent:p,targetContainers:[f]},t!==null&&(t=ai(t),t!==null&&Hv(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,f!==null&&t.indexOf(f)===-1&&t.push(f),e)}function GS(e,t,a,r,f){switch(t){case"focusin":return aa=er(aa,e,t,a,r,f),!0;case"dragenter":return ia=er(ia,e,t,a,r,f),!0;case"mouseover":return oa=er(oa,e,t,a,r,f),!0;case"pointerover":var p=f.pointerId;return Wo.set(p,er(Wo.get(p)||null,e,t,a,r,f)),!0;case"gotpointercapture":return p=f.pointerId,Qo.set(p,er(Qo.get(p)||null,e,t,a,r,f)),!0}return!1}function Zv(e){var t=si(e.target);if(t!==null){var a=u(t);if(a!==null){if(t=a.tag,t===13){if(t=d(a),t!==null){e.blockedOn=t,om(e.priority,function(){qv(a)});return}}else if(t===31){if(t=m(a),t!==null){e.blockedOn=t,om(e.priority,function(){qv(a)});return}}else if(t===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Gl(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var a=Fd(e.nativeEvent);if(a===null){a=e.nativeEvent;var r=new a.constructor(a.type,a);Kc=r,a.target.dispatchEvent(r),Kc=null}else return t=ai(a),t!==null&&Hv(t),e.blockedOn=a,!1;t.shift()}return!0}function Fv(e,t,a){Gl(e)&&a.delete(t)}function $S(){Yd=!1,aa!==null&&Gl(aa)&&(aa=null),ia!==null&&Gl(ia)&&(ia=null),oa!==null&&Gl(oa)&&(oa=null),Wo.forEach(Fv),Qo.forEach(Fv)}function $l(e,t){e.blockedOn===t&&(e.blockedOn=null,Yd||(Yd=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,$S)))}var Zl=null;function Kv(e){Zl!==e&&(Zl=e,n.unstable_scheduleCallback(n.unstable_NormalPriority,function(){Zl===e&&(Zl=null);for(var t=0;t<e.length;t+=3){var a=e[t],r=e[t+1],f=e[t+2];if(typeof r!="function"){if(Kd(r||a)===null)continue;break}var p=ai(a);p!==null&&(e.splice(t,3),t-=3,Fu(p,{pending:!0,data:f,method:a.method,action:r},r,f))}}))}function zi(e){function t(D){return $l(D,e)}aa!==null&&$l(aa,e),ia!==null&&$l(ia,e),oa!==null&&$l(oa,e),Wo.forEach(t),Qo.forEach(t);for(var a=0;a<ra.length;a++){var r=ra[a];r.blockedOn===e&&(r.blockedOn=null)}for(;0<ra.length&&(a=ra[0],a.blockedOn===null);)Zv(a),a.blockedOn===null&&ra.shift();if(a=(e.ownerDocument||e).$$reactFormReplay,a!=null)for(r=0;r<a.length;r+=3){var f=a[r],p=a[r+1],x=f[nn]||null;if(typeof p=="function")x||Kv(a);else if(x){var k=null;if(p&&p.hasAttribute("formAction")){if(f=p,x=p[nn]||null)k=x.formAction;else if(Kd(f)!==null)continue}else k=x.action;typeof k=="function"?a[r+1]=k:(a.splice(r,3),r-=3),Kv(a)}}}function Yv(){function e(p){p.canIntercept&&p.info==="react-transition"&&p.intercept({handler:function(){return new Promise(function(x){return f=x})},focusReset:"manual",scroll:"manual"})}function t(){f!==null&&(f(),f=null),r||setTimeout(a,20)}function a(){if(!r&&!navigation.transition){var p=navigation.currentEntry;p&&p.url!=null&&navigation.navigate(p.url,{state:p.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var r=!1,f=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",t),navigation.addEventListener("navigateerror",t),setTimeout(a,100),function(){r=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",t),navigation.removeEventListener("navigateerror",t),f!==null&&(f(),f=null)}}}function Jd(e){this._internalRoot=e}Fl.prototype.render=Jd.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(o(409));var a=t.current,r=yn();Pv(a,r,e,t,null,null)},Fl.prototype.unmount=Jd.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Pv(e.current,2,null,e,null,null),jl(),t[ni]=null}};function Fl(e){this._internalRoot=e}Fl.prototype.unstable_scheduleHydration=function(e){if(e){var t=im();e={blockedOn:null,target:e,priority:t};for(var a=0;a<ra.length&&t!==0&&t<ra[a].priority;a++);ra.splice(a,0,e),a===0&&Zv(e)}};var Jv=s.version;if(Jv!=="19.2.4")throw Error(o(527,Jv,"19.2.4"));$.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(o(188)):(e=Object.keys(e).join(","),Error(o(268,e)));return e=g(t),e=e!==null?v(e):null,e=e===null?null:e.stateNode,e};var ZS={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:I,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Kl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Kl.isDisabled&&Kl.supportsFiber)try{Us=Kl.inject(ZS),Yt=Kl}catch{}}return nr.createRoot=function(e,t){if(!c(e))throw Error(o(299));var a=!1,r="",f=sg,p=ag,x=ig;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(f=t.onUncaughtError),t.onCaughtError!==void 0&&(p=t.onCaughtError),t.onRecoverableError!==void 0&&(x=t.onRecoverableError)),t=Uv(e,1,!1,null,null,a,r,null,f,p,x,Yv),e[ni]=t.current,Dd(e),new Jd(t)},nr.hydrateRoot=function(e,t,a){if(!c(e))throw Error(o(299));var r=!1,f="",p=sg,x=ag,k=ig,D=null;return a!=null&&(a.unstable_strictMode===!0&&(r=!0),a.identifierPrefix!==void 0&&(f=a.identifierPrefix),a.onUncaughtError!==void 0&&(p=a.onUncaughtError),a.onCaughtError!==void 0&&(x=a.onCaughtError),a.onRecoverableError!==void 0&&(k=a.onRecoverableError),a.formState!==void 0&&(D=a.formState)),t=Uv(e,1,!0,t,a??null,r,f,D,p,x,k,Yv),t.context=zv(null),a=t.current,r=yn(),r=Vn(r),f=Zs(r),f.callback=null,Fs(a,f,r),a=r,t.current.lanes=a,qe(t,a),es(t),e[ni]=t.current,Dd(e),new Fl(t)},nr.version="19.2.4",nr}var a0;function _T(){if(a0)return Xd.exports;a0=1;function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(s){console.error(s)}}return n(),Xd.exports=bT(),Xd.exports}var xT=_T();const ST="modulepreload",TT=function(n){return"/"+n},i0={},kT=function(s,i,o){let c=Promise.resolve();if(i&&i.length>0){let d=function(g){return Promise.all(g.map(v=>Promise.resolve(v).then(b=>({status:"fulfilled",value:b}),b=>({status:"rejected",reason:b}))))};document.getElementsByTagName("link");const m=document.querySelector("meta[property=csp-nonce]"),h=(m==null?void 0:m.nonce)||(m==null?void 0:m.getAttribute("nonce"));c=d(i.map(g=>{if(g=TT(g),g in i0)return;i0[g]=!0;const v=g.endsWith(".css"),b=v?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${g}"]${b}`))return;const _=document.createElement("link");if(_.rel=v?"stylesheet":ST,v||(_.as="script"),_.crossOrigin="",_.href=g,h&&_.setAttribute("nonce",h),document.head.appendChild(_),v)return new Promise((S,T)=>{_.addEventListener("load",S),_.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${g}`)))})}))}function u(d){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=d,window.dispatchEvent(m),!m.defaultPrevented)throw d}return c.then(d=>{for(const m of d||[])m.status==="rejected"&&u(m.reason);return s().catch(u)})},wT=new Proxy(globalThis.fetch,{apply(n,s,i){return Reflect.apply(globalThis.fetch,s,i)}}),NT=iT({baseUrl:"/",fetch:wT}),we=oT(rT,NT);/**
27
- * react-router v7.13.2
28
- *
29
- * Copyright (c) Remix Software Inc.
30
- *
31
- * This source code is licensed under the MIT license found in the
32
- * LICENSE.md file in the root directory of this source tree.
33
- *
34
- * @license MIT
35
- */var o0="popstate";function r0(n){return typeof n=="object"&&n!=null&&"pathname"in n&&"search"in n&&"hash"in n&&"state"in n&&"key"in n}function jT(n={}){function s(o,c){var g;let u=(g=c.state)==null?void 0:g.masked,{pathname:d,search:m,hash:h}=u||o.location;return Lf("",{pathname:d,search:m,hash:h},c.state&&c.state.usr||null,c.state&&c.state.key||"default",u?{pathname:o.location.pathname,search:o.location.search,hash:o.location.hash}:void 0)}function i(o,c){return typeof c=="string"?c:br(c)}return ET(s,i,null,n)}function dt(n,s){if(n===!1||n===null||typeof n>"u")throw new Error(s)}function Bn(n,s){if(!n){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function CT(){return Math.random().toString(36).substring(2,10)}function l0(n,s){return{usr:n.state,key:n.key,idx:s,masked:n.unstable_mask?{pathname:n.pathname,search:n.search,hash:n.hash}:void 0}}function Lf(n,s,i=null,o,c){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof s=="string"?so(s):s,state:i,key:s&&s.key||o||CT(),unstable_mask:c}}function br({pathname:n="/",search:s="",hash:i=""}){return s&&s!=="?"&&(n+=s.charAt(0)==="?"?s:"?"+s),i&&i!=="#"&&(n+=i.charAt(0)==="#"?i:"#"+i),n}function so(n){let s={};if(n){let i=n.indexOf("#");i>=0&&(s.hash=n.substring(i),n=n.substring(0,i));let o=n.indexOf("?");o>=0&&(s.search=n.substring(o),n=n.substring(0,o)),n&&(s.pathname=n)}return s}function ET(n,s,i,o={}){let{window:c=document.defaultView,v5Compat:u=!1}=o,d=c.history,m="POP",h=null,g=v();g==null&&(g=0,d.replaceState({...d.state,idx:g},""));function v(){return(d.state||{idx:null}).idx}function b(){m="POP";let j=v(),w=j==null?null:j-g;g=j,h&&h({action:m,location:N.location,delta:w})}function _(j,w){m="PUSH";let E=r0(j)?j:Lf(N.location,j,w);g=v()+1;let A=l0(E,g),O=N.createHref(E.unstable_mask||E);try{d.pushState(A,"",O)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;c.location.assign(O)}u&&h&&h({action:m,location:N.location,delta:1})}function S(j,w){m="REPLACE";let E=r0(j)?j:Lf(N.location,j,w);g=v();let A=l0(E,g),O=N.createHref(E.unstable_mask||E);d.replaceState(A,"",O),u&&h&&h({action:m,location:N.location,delta:0})}function T(j){return AT(j)}let N={get action(){return m},get location(){return n(c,d)},listen(j){if(h)throw new Error("A history only accepts one active listener");return c.addEventListener(o0,b),h=j,()=>{c.removeEventListener(o0,b),h=null}},createHref(j){return s(c,j)},createURL:T,encodeLocation(j){let w=T(j);return{pathname:w.pathname,search:w.search,hash:w.hash}},push:_,replace:S,go(j){return d.go(j)}};return N}function AT(n,s=!1){let i="http://localhost";typeof window<"u"&&(i=window.location.origin!=="null"?window.location.origin:window.location.href),dt(i,"No window.location.(origin|href) available to create URL");let o=typeof n=="string"?n:br(n);return o=o.replace(/ $/,"%20"),!s&&o.startsWith("//")&&(o=i+o),new URL(o,i)}function rb(n,s,i="/"){return DT(n,s,i,!1)}function DT(n,s,i,o){let c=typeof s=="string"?so(s):s,u=Os(c.pathname||"/",i);if(u==null)return null;let d=lb(n);RT(d);let m=null;for(let h=0;m==null&&h<d.length;++h){let g=ub(u);m=VT(d[h],g,o)}return m}function lb(n,s=[],i=[],o="",c=!1){let u=(d,m,h=c,g)=>{let v={relativePath:g===void 0?d.path||"":g,caseSensitive:d.caseSensitive===!0,childrenIndex:m,route:d};if(v.relativePath.startsWith("/")){if(!v.relativePath.startsWith(o)&&h)return;dt(v.relativePath.startsWith(o),`Absolute route path "${v.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),v.relativePath=v.relativePath.slice(o.length)}let b=ss([o,v.relativePath]),_=i.concat(v);d.children&&d.children.length>0&&(dt(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),lb(d.children,s,_,b,h)),!(d.path==null&&!d.index)&&s.push({path:b,score:zT(b,d.index),routesMeta:_})};return n.forEach((d,m)=>{var h;if(d.path===""||!((h=d.path)!=null&&h.includes("?")))u(d,m);else for(let g of cb(d.path))u(d,m,!0,g)}),s}function cb(n){let s=n.split("/");if(s.length===0)return[];let[i,...o]=s,c=i.endsWith("?"),u=i.replace(/\?$/,"");if(o.length===0)return c?[u,""]:[u];let d=cb(o.join("/")),m=[];return m.push(...d.map(h=>h===""?u:[u,h].join("/"))),c&&m.push(...d),m.map(h=>n.startsWith("/")&&h===""?"/":h)}function RT(n){n.sort((s,i)=>s.score!==i.score?i.score-s.score:PT(s.routesMeta.map(o=>o.childrenIndex),i.routesMeta.map(o=>o.childrenIndex)))}var MT=/^:[\w-]+$/,OT=3,IT=2,LT=1,BT=10,UT=-2,c0=n=>n==="*";function zT(n,s){let i=n.split("/"),o=i.length;return i.some(c0)&&(o+=UT),s&&(o+=IT),i.filter(c=>!c0(c)).reduce((c,u)=>c+(MT.test(u)?OT:u===""?LT:BT),o)}function PT(n,s){return n.length===s.length&&n.slice(0,-1).every((o,c)=>o===s[c])?n[n.length-1]-s[s.length-1]:0}function VT(n,s,i=!1){let{routesMeta:o}=n,c={},u="/",d=[];for(let m=0;m<o.length;++m){let h=o[m],g=m===o.length-1,v=u==="/"?s:s.slice(u.length)||"/",b=_r({path:h.relativePath,caseSensitive:h.caseSensitive,end:g},v),_=h.route;if(!b&&g&&i&&!o[o.length-1].route.index&&(b=_r({path:h.relativePath,caseSensitive:h.caseSensitive,end:!1},v)),!b)return null;Object.assign(c,b.params),d.push({params:c,pathname:ss([u,b.pathname]),pathnameBase:ZT(ss([u,b.pathnameBase])),route:_}),b.pathnameBase!=="/"&&(u=ss([u,b.pathnameBase]))}return d}function _r(n,s){typeof n=="string"&&(n={path:n,caseSensitive:!1,end:!0});let[i,o]=HT(n.path,n.caseSensitive,n.end),c=s.match(i);if(!c)return null;let u=c[0],d=u.replace(/(.)\/+$/,"$1"),m=c.slice(1);return{params:o.reduce((g,{paramName:v,isOptional:b},_)=>{if(v==="*"){let T=m[_]||"";d=u.slice(0,u.length-T.length).replace(/(.)\/+$/,"$1")}const S=m[_];return b&&!S?g[v]=void 0:g[v]=(S||"").replace(/%2F/g,"/"),g},{}),pathname:u,pathnameBase:d,pattern:n}}function HT(n,s=!1,i=!0){Bn(n==="*"||!n.endsWith("*")||n.endsWith("/*"),`Route path "${n}" will be treated as if it were "${n.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${n.replace(/\*$/,"/*")}".`);let o=[],c="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,m,h,g,v)=>{if(o.push({paramName:m,isOptional:h!=null}),h){let b=v.charAt(g+d.length);return b&&b!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return n.endsWith("*")?(o.push({paramName:"*"}),c+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?c+="\\/*$":n!==""&&n!=="/"&&(c+="(?:(?=\\/|$))"),[new RegExp(c,s?void 0:"i"),o]}function ub(n){try{return n.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return Bn(!1,`The URL path "${n}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${s}).`),n}}function Os(n,s){if(s==="/")return n;if(!n.toLowerCase().startsWith(s.toLowerCase()))return null;let i=s.endsWith("/")?s.length-1:s.length,o=n.charAt(i);return o&&o!=="/"?null:n.slice(i)||"/"}var qT=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function GT(n,s="/"){let{pathname:i,search:o="",hash:c=""}=typeof n=="string"?so(n):n,u;return i?(i=i.replace(/\/\/+/g,"/"),i.startsWith("/")?u=u0(i.substring(1),"/"):u=u0(i,s)):u=s,{pathname:u,search:FT(o),hash:KT(c)}}function u0(n,s){let i=s.replace(/\/+$/,"").split("/");return n.split("/").forEach(c=>{c===".."?i.length>1&&i.pop():c!=="."&&i.push(c)}),i.length>1?i.join("/"):"/"}function ef(n,s,i,o){return`Cannot include a '${n}' character in a manually specified \`to.${s}\` field [${JSON.stringify(o)}]. Please separate it out to the \`to.${i}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function $T(n){return n.filter((s,i)=>i===0||s.route.path&&s.route.path.length>0)}function up(n){let s=$T(n);return s.map((i,o)=>o===s.length-1?i.pathname:i.pathnameBase)}function Ec(n,s,i,o=!1){let c;typeof n=="string"?c=so(n):(c={...n},dt(!c.pathname||!c.pathname.includes("?"),ef("?","pathname","search",c)),dt(!c.pathname||!c.pathname.includes("#"),ef("#","pathname","hash",c)),dt(!c.search||!c.search.includes("#"),ef("#","search","hash",c)));let u=n===""||c.pathname==="",d=u?"/":c.pathname,m;if(d==null)m=i;else{let b=s.length-1;if(!o&&d.startsWith("..")){let _=d.split("/");for(;_[0]==="..";)_.shift(),b-=1;c.pathname=_.join("/")}m=b>=0?s[b]:"/"}let h=GT(c,m),g=d&&d!=="/"&&d.endsWith("/"),v=(u||d===".")&&i.endsWith("/");return!h.pathname.endsWith("/")&&(g||v)&&(h.pathname+="/"),h}var ss=n=>n.join("/").replace(/\/\/+/g,"/"),ZT=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),FT=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,KT=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n,YT=class{constructor(n,s,i,o=!1){this.status=n,this.statusText=s||"",this.internal=o,i instanceof Error?(this.data=i.toString(),this.error=i):this.data=i}};function JT(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}function XT(n){return n.map(s=>s.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var db=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function fb(n,s){let i=n;if(typeof i!="string"||!qT.test(i))return{absoluteURL:void 0,isExternal:!1,to:i};let o=i,c=!1;if(db)try{let u=new URL(window.location.href),d=i.startsWith("//")?new URL(u.protocol+i):new URL(i),m=Os(d.pathname,s);d.origin===u.origin&&m!=null?i=m+d.search+d.hash:c=!0}catch{Bn(!1,`<Link to="${i}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:o,isExternal:c,to:i}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var pb=["POST","PUT","PATCH","DELETE"];new Set(pb);var WT=["GET",...pb];new Set(WT);var ao=y.createContext(null);ao.displayName="DataRouter";var Ac=y.createContext(null);Ac.displayName="DataRouterState";var QT=y.createContext(!1),mb=y.createContext({isTransitioning:!1});mb.displayName="ViewTransition";var ek=y.createContext(new Map);ek.displayName="Fetchers";var tk=y.createContext(null);tk.displayName="Await";var Sn=y.createContext(null);Sn.displayName="Navigation";var jr=y.createContext(null);jr.displayName="Location";var Un=y.createContext({outlet:null,matches:[],isDataRoute:!1});Un.displayName="Route";var dp=y.createContext(null);dp.displayName="RouteError";var hb="REACT_ROUTER_ERROR",nk="REDIRECT",sk="ROUTE_ERROR_RESPONSE";function ak(n){if(n.startsWith(`${hb}:${nk}:{`))try{let s=JSON.parse(n.slice(28));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string"&&typeof s.location=="string"&&typeof s.reloadDocument=="boolean"&&typeof s.replace=="boolean")return s}catch{}}function ik(n){if(n.startsWith(`${hb}:${sk}:{`))try{let s=JSON.parse(n.slice(40));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string")return new YT(s.status,s.statusText,s.data)}catch{}}function ok(n,{relative:s}={}){dt(Wa(),"useHref() may be used only in the context of a <Router> component.");let{basename:i,navigator:o}=y.useContext(Sn),{hash:c,pathname:u,search:d}=Cr(n,{relative:s}),m=u;return i!=="/"&&(m=u==="/"?i:ss([i,u])),o.createHref({pathname:m,search:d,hash:c})}function Wa(){return y.useContext(jr)!=null}function It(){return dt(Wa(),"useLocation() may be used only in the context of a <Router> component."),y.useContext(jr).location}function At(n){dt(Wa(),"useMatch() may be used only in the context of a <Router> component.");let{pathname:s}=It();return y.useMemo(()=>_r(n,ub(s)),[s,n])}var gb="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function vb(n){y.useContext(Sn).static||y.useLayoutEffect(n)}function Dc(){let{isDataRoute:n}=y.useContext(Un);return n?xk():rk()}function rk(){dt(Wa(),"useNavigate() may be used only in the context of a <Router> component.");let n=y.useContext(ao),{basename:s,navigator:i}=y.useContext(Sn),{matches:o}=y.useContext(Un),{pathname:c}=It(),u=JSON.stringify(up(o)),d=y.useRef(!1);return vb(()=>{d.current=!0}),y.useCallback((h,g={})=>{if(Bn(d.current,gb),!d.current)return;if(typeof h=="number"){i.go(h);return}let v=Ec(h,JSON.parse(u),c,g.relative==="path");n==null&&s!=="/"&&(v.pathname=v.pathname==="/"?s:ss([s,v.pathname])),(g.replace?i.replace:i.push)(v,g.state,g)},[s,i,u,c,n])}var lk=y.createContext(null);function ck(n){let s=y.useContext(Un).outlet;return y.useMemo(()=>s&&y.createElement(lk.Provider,{value:n},s),[s,n])}function va(){let{matches:n}=y.useContext(Un),s=n[n.length-1];return s?s.params:{}}function Cr(n,{relative:s}={}){let{matches:i}=y.useContext(Un),{pathname:o}=It(),c=JSON.stringify(up(i));return y.useMemo(()=>Ec(n,JSON.parse(c),o,s==="path"),[n,c,o,s])}function uk(n,s){return yb(n,s)}function yb(n,s,i){var j;dt(Wa(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=y.useContext(Sn),{matches:c}=y.useContext(Un),u=c[c.length-1],d=u?u.params:{},m=u?u.pathname:"/",h=u?u.pathnameBase:"/",g=u&&u.route;{let w=g&&g.path||"";_b(m,!g||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${m}" (under <Route path="${w}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
36
-
37
- Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let v=It(),b;if(s){let w=typeof s=="string"?so(s):s;dt(h==="/"||((j=w.pathname)==null?void 0:j.startsWith(h)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${h}" but pathname "${w.pathname}" was given in the \`location\` prop.`),b=w}else b=v;let _=b.pathname||"/",S=_;if(h!=="/"){let w=h.replace(/^\//,"").split("/");S="/"+_.replace(/^\//,"").split("/").slice(w.length).join("/")}let T=rb(n,{pathname:S});Bn(g||T!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),Bn(T==null||T[T.length-1].route.element!==void 0||T[T.length-1].route.Component!==void 0||T[T.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let N=hk(T&&T.map(w=>Object.assign({},w,{params:Object.assign({},d,w.params),pathname:ss([h,o.encodeLocation?o.encodeLocation(w.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?h:ss([h,o.encodeLocation?o.encodeLocation(w.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),c,i);return s&&N?y.createElement(jr.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...b},navigationType:"POP"}},N):N}function dk(){let n=_k(),s=JT(n)?`${n.status} ${n.statusText}`:n instanceof Error?n.message:JSON.stringify(n),i=n instanceof Error?n.stack:null,o="rgba(200,200,200, 0.5)",c={padding:"0.5rem",backgroundColor:o},u={padding:"2px 4px",backgroundColor:o},d=null;return console.error("Error handled by React Router default ErrorBoundary:",n),d=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:u},"ErrorBoundary")," or"," ",y.createElement("code",{style:u},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},s),i?y.createElement("pre",{style:c},i):null,d)}var fk=y.createElement(dk,null),bb=class extends y.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,s){return s.location!==n.location||s.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:s.error,location:s.location,revalidation:n.revalidation||s.revalidation}}componentDidCatch(n,s){this.props.onError?this.props.onError(n,s):console.error("React Router caught the following error during render",n)}render(){let n=this.state.error;if(this.context&&typeof n=="object"&&n&&"digest"in n&&typeof n.digest=="string"){const i=ik(n.digest);i&&(n=i)}let s=n!==void 0?y.createElement(Un.Provider,{value:this.props.routeContext},y.createElement(dp.Provider,{value:n,children:this.props.component})):this.props.children;return this.context?y.createElement(pk,{error:n},s):s}};bb.contextType=QT;var tf=new WeakMap;function pk({children:n,error:s}){let{basename:i}=y.useContext(Sn);if(typeof s=="object"&&s&&"digest"in s&&typeof s.digest=="string"){let o=ak(s.digest);if(o){let c=tf.get(s);if(c)throw c;let u=fb(o.location,i);if(db&&!tf.get(s))if(u.isExternal||o.reloadDocument)window.location.href=u.absoluteURL||u.to;else{const d=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(u.to,{replace:o.replace}));throw tf.set(s,d),d}return y.createElement("meta",{httpEquiv:"refresh",content:`0;url=${u.absoluteURL||u.to}`})}}return n}function mk({routeContext:n,match:s,children:i}){let o=y.useContext(ao);return o&&o.static&&o.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=s.route.id),y.createElement(Un.Provider,{value:n},i)}function hk(n,s=[],i){let o=i==null?void 0:i.state;if(n==null){if(!o)return null;if(o.errors)n=o.matches;else if(s.length===0&&!o.initialized&&o.matches.length>0)n=o.matches;else return null}let c=n,u=o==null?void 0:o.errors;if(u!=null){let v=c.findIndex(b=>b.route.id&&(u==null?void 0:u[b.route.id])!==void 0);dt(v>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(u).join(",")}`),c=c.slice(0,Math.min(c.length,v+1))}let d=!1,m=-1;if(i&&o){d=o.renderFallback;for(let v=0;v<c.length;v++){let b=c[v];if((b.route.HydrateFallback||b.route.hydrateFallbackElement)&&(m=v),b.route.id){let{loaderData:_,errors:S}=o,T=b.route.loader&&!_.hasOwnProperty(b.route.id)&&(!S||S[b.route.id]===void 0);if(b.route.lazy||T){i.isStatic&&(d=!0),m>=0?c=c.slice(0,m+1):c=[c[0]];break}}}}let h=i==null?void 0:i.onError,g=o&&h?(v,b)=>{var _,S;h(v,{location:o.location,params:((S=(_=o.matches)==null?void 0:_[0])==null?void 0:S.params)??{},unstable_pattern:XT(o.matches),errorInfo:b})}:void 0;return c.reduceRight((v,b,_)=>{let S,T=!1,N=null,j=null;o&&(S=u&&b.route.id?u[b.route.id]:void 0,N=b.route.errorElement||fk,d&&(m<0&&_===0?(_b("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),T=!0,j=null):m===_&&(T=!0,j=b.route.hydrateFallbackElement||null)));let w=s.concat(c.slice(0,_+1)),E=()=>{let A;return S?A=N:T?A=j:b.route.Component?A=y.createElement(b.route.Component,null):b.route.element?A=b.route.element:A=v,y.createElement(mk,{match:b,routeContext:{outlet:v,matches:w,isDataRoute:o!=null},children:A})};return o&&(b.route.ErrorBoundary||b.route.errorElement||_===0)?y.createElement(bb,{location:o.location,revalidation:o.revalidation,component:N,error:S,children:E(),routeContext:{outlet:null,matches:w,isDataRoute:!0},onError:g}):E()},null)}function fp(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function gk(n){let s=y.useContext(ao);return dt(s,fp(n)),s}function vk(n){let s=y.useContext(Ac);return dt(s,fp(n)),s}function yk(n){let s=y.useContext(Un);return dt(s,fp(n)),s}function pp(n){let s=yk(n),i=s.matches[s.matches.length-1];return dt(i.route.id,`${n} can only be used on routes that contain a unique "id"`),i.route.id}function bk(){return pp("useRouteId")}function _k(){var o;let n=y.useContext(dp),s=vk("useRouteError"),i=pp("useRouteError");return n!==void 0?n:(o=s.errors)==null?void 0:o[i]}function xk(){let{router:n}=gk("useNavigate"),s=pp("useNavigate"),i=y.useRef(!1);return vb(()=>{i.current=!0}),y.useCallback(async(c,u={})=>{Bn(i.current,gb),i.current&&(typeof c=="number"?await n.navigate(c):await n.navigate(c,{fromRouteId:s,...u}))},[n,s])}var d0={};function _b(n,s,i){!s&&!d0[n]&&(d0[n]=!0,Bn(!1,i))}y.memo(Sk);function Sk({routes:n,future:s,state:i,isStatic:o,onError:c}){return yb(n,void 0,{state:i,isStatic:o,onError:c})}function Fn({to:n,replace:s,state:i,relative:o}){dt(Wa(),"<Navigate> may be used only in the context of a <Router> component.");let{static:c}=y.useContext(Sn);Bn(!c,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:u}=y.useContext(Un),{pathname:d}=It(),m=Dc(),h=Ec(n,up(u),d,o==="path"),g=JSON.stringify(h);return y.useEffect(()=>{m(JSON.parse(g),{replace:s,state:i,relative:o})},[m,g,o,s,i]),null}function Qa(n){return ck(n.context)}function Ce(n){dt(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function Tk({basename:n="/",children:s=null,location:i,navigationType:o="POP",navigator:c,static:u=!1,unstable_useTransitions:d}){dt(!Wa(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let m=n.replace(/^\/*/,"/"),h=y.useMemo(()=>({basename:m,navigator:c,static:u,unstable_useTransitions:d,future:{}}),[m,c,u,d]);typeof i=="string"&&(i=so(i));let{pathname:g="/",search:v="",hash:b="",state:_=null,key:S="default",unstable_mask:T}=i,N=y.useMemo(()=>{let j=Os(g,m);return j==null?null:{location:{pathname:j,search:v,hash:b,state:_,key:S,unstable_mask:T},navigationType:o}},[m,g,v,b,_,S,o,T]);return Bn(N!=null,`<Router basename="${m}"> is not able to match the URL "${g}${v}${b}" because it does not start with the basename, so the <Router> won't render anything.`),N==null?null:y.createElement(Sn.Provider,{value:h},y.createElement(jr.Provider,{children:s,value:N}))}function kk({children:n,location:s}){return uk(Bf(n),s)}function Bf(n,s=[]){let i=[];return y.Children.forEach(n,(o,c)=>{if(!y.isValidElement(o))return;let u=[...s,c];if(o.type===y.Fragment){i.push.apply(i,Bf(o.props.children,u));return}dt(o.type===Ce,`[${typeof o.type=="string"?o.type:o.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),dt(!o.props.index||!o.props.children,"An index route cannot have child routes.");let d={id:o.props.id||u.join("-"),caseSensitive:o.props.caseSensitive,element:o.props.element,Component:o.props.Component,index:o.props.index,path:o.props.path,middleware:o.props.middleware,loader:o.props.loader,action:o.props.action,hydrateFallbackElement:o.props.hydrateFallbackElement,HydrateFallback:o.props.HydrateFallback,errorElement:o.props.errorElement,ErrorBoundary:o.props.ErrorBoundary,hasErrorBoundary:o.props.hasErrorBoundary===!0||o.props.ErrorBoundary!=null||o.props.errorElement!=null,shouldRevalidate:o.props.shouldRevalidate,handle:o.props.handle,lazy:o.props.lazy};o.props.children&&(d.children=Bf(o.props.children,u)),i.push(d)}),i}var cc="get",uc="application/x-www-form-urlencoded";function Rc(n){return typeof HTMLElement<"u"&&n instanceof HTMLElement}function wk(n){return Rc(n)&&n.tagName.toLowerCase()==="button"}function Nk(n){return Rc(n)&&n.tagName.toLowerCase()==="form"}function jk(n){return Rc(n)&&n.tagName.toLowerCase()==="input"}function Ck(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function Ek(n,s){return n.button===0&&(!s||s==="_self")&&!Ck(n)}function Uf(n=""){return new URLSearchParams(typeof n=="string"||Array.isArray(n)||n instanceof URLSearchParams?n:Object.keys(n).reduce((s,i)=>{let o=n[i];return s.concat(Array.isArray(o)?o.map(c=>[i,c]):[[i,o]])},[]))}function Ak(n,s){let i=Uf(n);return s&&s.forEach((o,c)=>{i.has(c)||s.getAll(c).forEach(u=>{i.append(c,u)})}),i}var Xl=null;function Dk(){if(Xl===null)try{new FormData(document.createElement("form"),0),Xl=!1}catch{Xl=!0}return Xl}var Rk=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function nf(n){return n!=null&&!Rk.has(n)?(Bn(!1,`"${n}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${uc}"`),null):n}function Mk(n,s){let i,o,c,u,d;if(Nk(n)){let m=n.getAttribute("action");o=m?Os(m,s):null,i=n.getAttribute("method")||cc,c=nf(n.getAttribute("enctype"))||uc,u=new FormData(n)}else if(wk(n)||jk(n)&&(n.type==="submit"||n.type==="image")){let m=n.form;if(m==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let h=n.getAttribute("formaction")||m.getAttribute("action");if(o=h?Os(h,s):null,i=n.getAttribute("formmethod")||m.getAttribute("method")||cc,c=nf(n.getAttribute("formenctype"))||nf(m.getAttribute("enctype"))||uc,u=new FormData(m,n),!Dk()){let{name:g,type:v,value:b}=n;if(v==="image"){let _=g?`${g}.`:"";u.append(`${_}x`,"0"),u.append(`${_}y`,"0")}else g&&u.append(g,b)}}else{if(Rc(n))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');i=cc,o=null,c=uc,d=n}return u&&c==="text/plain"&&(d=u,u=void 0),{action:o,method:i.toLowerCase(),encType:c,formData:u,body:d}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function mp(n,s){if(n===!1||n===null||typeof n>"u")throw new Error(s)}function Ok(n,s,i,o){let c=typeof n=="string"?new URL(n,typeof window>"u"?"server://singlefetch/":window.location.origin):n;return i?c.pathname.endsWith("/")?c.pathname=`${c.pathname}_.${o}`:c.pathname=`${c.pathname}.${o}`:c.pathname==="/"?c.pathname=`_root.${o}`:s&&Os(c.pathname,s)==="/"?c.pathname=`${s.replace(/\/$/,"")}/_root.${o}`:c.pathname=`${c.pathname.replace(/\/$/,"")}.${o}`,c}async function Ik(n,s){if(n.id in s)return s[n.id];try{let i=await import(n.module);return s[n.id]=i,i}catch(i){return console.error(`Error loading route module \`${n.module}\`, reloading page...`),console.error(i),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Lk(n){return n==null?!1:n.href==null?n.rel==="preload"&&typeof n.imageSrcSet=="string"&&typeof n.imageSizes=="string":typeof n.rel=="string"&&typeof n.href=="string"}async function Bk(n,s,i){let o=await Promise.all(n.map(async c=>{let u=s.routes[c.route.id];if(u){let d=await Ik(u,i);return d.links?d.links():[]}return[]}));return Vk(o.flat(1).filter(Lk).filter(c=>c.rel==="stylesheet"||c.rel==="preload").map(c=>c.rel==="stylesheet"?{...c,rel:"prefetch",as:"style"}:{...c,rel:"prefetch"}))}function f0(n,s,i,o,c,u){let d=(h,g)=>i[g]?h.route.id!==i[g].route.id:!0,m=(h,g)=>{var v;return i[g].pathname!==h.pathname||((v=i[g].route.path)==null?void 0:v.endsWith("*"))&&i[g].params["*"]!==h.params["*"]};return u==="assets"?s.filter((h,g)=>d(h,g)||m(h,g)):u==="data"?s.filter((h,g)=>{var b;let v=o.routes[h.route.id];if(!v||!v.hasLoader)return!1;if(d(h,g)||m(h,g))return!0;if(h.route.shouldRevalidate){let _=h.route.shouldRevalidate({currentUrl:new URL(c.pathname+c.search+c.hash,window.origin),currentParams:((b=i[0])==null?void 0:b.params)||{},nextUrl:new URL(n,window.origin),nextParams:h.params,defaultShouldRevalidate:!0});if(typeof _=="boolean")return _}return!0}):[]}function Uk(n,s,{includeHydrateFallback:i}={}){return zk(n.map(o=>{let c=s.routes[o.route.id];if(!c)return[];let u=[c.module];return c.clientActionModule&&(u=u.concat(c.clientActionModule)),c.clientLoaderModule&&(u=u.concat(c.clientLoaderModule)),i&&c.hydrateFallbackModule&&(u=u.concat(c.hydrateFallbackModule)),c.imports&&(u=u.concat(c.imports)),u}).flat(1))}function zk(n){return[...new Set(n)]}function Pk(n){let s={},i=Object.keys(n).sort();for(let o of i)s[o]=n[o];return s}function Vk(n,s){let i=new Set;return new Set(s),n.reduce((o,c)=>{let u=JSON.stringify(Pk(c));return i.has(u)||(i.add(u),o.push({key:u,link:c})),o},[])}function xb(){let n=y.useContext(ao);return mp(n,"You must render this element inside a <DataRouterContext.Provider> element"),n}function Hk(){let n=y.useContext(Ac);return mp(n,"You must render this element inside a <DataRouterStateContext.Provider> element"),n}var hp=y.createContext(void 0);hp.displayName="FrameworkContext";function Sb(){let n=y.useContext(hp);return mp(n,"You must render this element inside a <HydratedRouter> element"),n}function qk(n,s){let i=y.useContext(hp),[o,c]=y.useState(!1),[u,d]=y.useState(!1),{onFocus:m,onBlur:h,onMouseEnter:g,onMouseLeave:v,onTouchStart:b}=s,_=y.useRef(null);y.useEffect(()=>{if(n==="render"&&d(!0),n==="viewport"){let N=w=>{w.forEach(E=>{d(E.isIntersecting)})},j=new IntersectionObserver(N,{threshold:.5});return _.current&&j.observe(_.current),()=>{j.disconnect()}}},[n]),y.useEffect(()=>{if(o){let N=setTimeout(()=>{d(!0)},100);return()=>{clearTimeout(N)}}},[o]);let S=()=>{c(!0)},T=()=>{c(!1),d(!1)};return i?n!=="intent"?[u,_,{}]:[u,_,{onFocus:sr(m,S),onBlur:sr(h,T),onMouseEnter:sr(g,S),onMouseLeave:sr(v,T),onTouchStart:sr(b,S)}]:[!1,_,{}]}function sr(n,s){return i=>{n&&n(i),i.defaultPrevented||s(i)}}function Gk({page:n,...s}){let{router:i}=xb(),o=y.useMemo(()=>rb(i.routes,n,i.basename),[i.routes,n,i.basename]);return o?y.createElement(Zk,{page:n,matches:o,...s}):null}function $k(n){let{manifest:s,routeModules:i}=Sb(),[o,c]=y.useState([]);return y.useEffect(()=>{let u=!1;return Bk(n,s,i).then(d=>{u||c(d)}),()=>{u=!0}},[n,s,i]),o}function Zk({page:n,matches:s,...i}){let o=It(),{future:c,manifest:u,routeModules:d}=Sb(),{basename:m}=xb(),{loaderData:h,matches:g}=Hk(),v=y.useMemo(()=>f0(n,s,g,u,o,"data"),[n,s,g,u,o]),b=y.useMemo(()=>f0(n,s,g,u,o,"assets"),[n,s,g,u,o]),_=y.useMemo(()=>{if(n===o.pathname+o.search+o.hash)return[];let N=new Set,j=!1;if(s.forEach(E=>{var O;let A=u.routes[E.route.id];!A||!A.hasLoader||(!v.some(C=>C.route.id===E.route.id)&&E.route.id in h&&((O=d[E.route.id])!=null&&O.shouldRevalidate)||A.hasClientLoader?j=!0:N.add(E.route.id))}),N.size===0)return[];let w=Ok(n,m,c.unstable_trailingSlashAwareDataRequests,"data");return j&&N.size>0&&w.searchParams.set("_routes",s.filter(E=>N.has(E.route.id)).map(E=>E.route.id).join(",")),[w.pathname+w.search]},[m,c.unstable_trailingSlashAwareDataRequests,h,o,u,v,s,n,d]),S=y.useMemo(()=>Uk(b,u),[b,u]),T=$k(b);return y.createElement(y.Fragment,null,_.map(N=>y.createElement("link",{key:N,rel:"prefetch",as:"fetch",href:N,...i})),S.map(N=>y.createElement("link",{key:N,rel:"modulepreload",href:N,...i})),T.map(({key:N,link:j})=>y.createElement("link",{key:N,nonce:i.nonce,...j,crossOrigin:j.crossOrigin??i.crossOrigin})))}function Fk(...n){return s=>{n.forEach(i=>{typeof i=="function"?i(s):i!=null&&(i.current=s)})}}var Kk=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Kk&&(window.__reactRouterVersion="7.13.2")}catch{}function Yk({basename:n,children:s,unstable_useTransitions:i,window:o}){let c=y.useRef();c.current==null&&(c.current=jT({window:o,v5Compat:!0}));let u=c.current,[d,m]=y.useState({action:u.action,location:u.location}),h=y.useCallback(g=>{i===!1?m(g):y.startTransition(()=>m(g))},[i]);return y.useLayoutEffect(()=>u.listen(h),[u,h]),y.createElement(Tk,{basename:n,children:s,location:d.location,navigationType:d.action,navigator:u,unstable_useTransitions:i})}var Tb=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,gp=y.forwardRef(function({onClick:s,discover:i="render",prefetch:o="none",relative:c,reloadDocument:u,replace:d,unstable_mask:m,state:h,target:g,to:v,preventScrollReset:b,viewTransition:_,unstable_defaultShouldRevalidate:S,...T},N){let{basename:j,navigator:w,unstable_useTransitions:E}=y.useContext(Sn),A=typeof v=="string"&&Tb.test(v),O=fb(v,j);v=O.to;let C=ok(v,{relative:c}),M=It(),G=null;if(m){let re=Ec(m,[],M.unstable_mask?M.unstable_mask.pathname:"/",!0);j!=="/"&&(re.pathname=re.pathname==="/"?j:ss([j,re.pathname])),G=w.createHref(re)}let[U,V,F]=qk(o,T),ee=Qk(v,{replace:d,unstable_mask:m,state:h,target:g,preventScrollReset:b,relative:c,viewTransition:_,unstable_defaultShouldRevalidate:S,unstable_useTransitions:E});function ae(re){s&&s(re),re.defaultPrevented||ee(re)}let be=!(O.isExternal||u),K=y.createElement("a",{...T,...F,href:(be?G:void 0)||O.absoluteURL||C,onClick:be?ae:s,ref:Fk(N,V),target:g,"data-discover":!A&&i==="render"?"true":void 0});return U&&!A?y.createElement(y.Fragment,null,K,y.createElement(Gk,{page:C})):K});gp.displayName="Link";var Jk=y.forwardRef(function({"aria-current":s="page",caseSensitive:i=!1,className:o="",end:c=!1,style:u,to:d,viewTransition:m,children:h,...g},v){let b=Cr(d,{relative:g.relative}),_=It(),S=y.useContext(Ac),{navigator:T,basename:N}=y.useContext(Sn),j=S!=null&&a2(b)&&m===!0,w=T.encodeLocation?T.encodeLocation(b).pathname:b.pathname,E=_.pathname,A=S&&S.navigation&&S.navigation.location?S.navigation.location.pathname:null;i||(E=E.toLowerCase(),A=A?A.toLowerCase():null,w=w.toLowerCase()),A&&N&&(A=Os(A,N)||A);const O=w!=="/"&&w.endsWith("/")?w.length-1:w.length;let C=E===w||!c&&E.startsWith(w)&&E.charAt(O)==="/",M=A!=null&&(A===w||!c&&A.startsWith(w)&&A.charAt(w.length)==="/"),G={isActive:C,isPending:M,isTransitioning:j},U=C?s:void 0,V;typeof o=="function"?V=o(G):V=[o,C?"active":null,M?"pending":null,j?"transitioning":null].filter(Boolean).join(" ");let F=typeof u=="function"?u(G):u;return y.createElement(gp,{...g,"aria-current":U,className:V,ref:v,style:F,to:d,viewTransition:m},typeof h=="function"?h(G):h)});Jk.displayName="NavLink";var Xk=y.forwardRef(({discover:n="render",fetcherKey:s,navigate:i,reloadDocument:o,replace:c,state:u,method:d=cc,action:m,onSubmit:h,relative:g,preventScrollReset:v,viewTransition:b,unstable_defaultShouldRevalidate:_,...S},T)=>{let{unstable_useTransitions:N}=y.useContext(Sn),j=n2(),w=s2(m,{relative:g}),E=d.toLowerCase()==="get"?"get":"post",A=typeof m=="string"&&Tb.test(m),O=C=>{if(h&&h(C),C.defaultPrevented)return;C.preventDefault();let M=C.nativeEvent.submitter,G=(M==null?void 0:M.getAttribute("formmethod"))||d,U=()=>j(M||C.currentTarget,{fetcherKey:s,method:G,navigate:i,replace:c,state:u,relative:g,preventScrollReset:v,viewTransition:b,unstable_defaultShouldRevalidate:_});N&&i!==!1?y.startTransition(()=>U()):U()};return y.createElement("form",{ref:T,method:E,action:w,onSubmit:o?h:O,...S,"data-discover":!A&&n==="render"?"true":void 0})});Xk.displayName="Form";function Wk(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function kb(n){let s=y.useContext(ao);return dt(s,Wk(n)),s}function Qk(n,{target:s,replace:i,unstable_mask:o,state:c,preventScrollReset:u,relative:d,viewTransition:m,unstable_defaultShouldRevalidate:h,unstable_useTransitions:g}={}){let v=Dc(),b=It(),_=Cr(n,{relative:d});return y.useCallback(S=>{if(Ek(S,s)){S.preventDefault();let T=i!==void 0?i:br(b)===br(_),N=()=>v(n,{replace:T,unstable_mask:o,state:c,preventScrollReset:u,relative:d,viewTransition:m,unstable_defaultShouldRevalidate:h});g?y.startTransition(()=>N()):N()}},[b,v,_,i,o,c,s,n,u,d,m,h,g])}function vp(n){Bn(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let s=y.useRef(Uf(n)),i=y.useRef(!1),o=It(),c=y.useMemo(()=>Ak(o.search,i.current?null:s.current),[o.search]),u=Dc(),d=y.useCallback((m,h)=>{const g=Uf(typeof m=="function"?m(new URLSearchParams(c)):m);i.current=!0,u("?"+g,h)},[u,c]);return[c,d]}var e2=0,t2=()=>`__${String(++e2)}__`;function n2(){let{router:n}=kb("useSubmit"),{basename:s}=y.useContext(Sn),i=bk(),o=n.fetch,c=n.navigate;return y.useCallback(async(u,d={})=>{let{action:m,method:h,encType:g,formData:v,body:b}=Mk(u,s);if(d.navigate===!1){let _=d.fetcherKey||t2();await o(_,i,d.action||m,{unstable_defaultShouldRevalidate:d.unstable_defaultShouldRevalidate,preventScrollReset:d.preventScrollReset,formData:v,body:b,formMethod:d.method||h,formEncType:d.encType||g,flushSync:d.flushSync})}else await c(d.action||m,{unstable_defaultShouldRevalidate:d.unstable_defaultShouldRevalidate,preventScrollReset:d.preventScrollReset,formData:v,body:b,formMethod:d.method||h,formEncType:d.encType||g,replace:d.replace,state:d.state,fromRouteId:i,flushSync:d.flushSync,viewTransition:d.viewTransition})},[o,c,s,i])}function s2(n,{relative:s}={}){let{basename:i}=y.useContext(Sn),o=y.useContext(Un);dt(o,"useFormAction must be used inside a RouteContext");let[c]=o.matches.slice(-1),u={...Cr(n||".",{relative:s})},d=It();if(n==null){u.search=d.search;let m=new URLSearchParams(u.search),h=m.getAll("index");if(h.some(v=>v==="")){m.delete("index"),h.filter(b=>b).forEach(b=>m.append("index",b));let v=m.toString();u.search=v?`?${v}`:""}}return(!n||n===".")&&c.route.index&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),i!=="/"&&(u.pathname=u.pathname==="/"?i:ss([i,u.pathname])),br(u)}function a2(n,{relative:s}={}){let i=y.useContext(mb);dt(i!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:o}=kb("useViewTransitionState"),c=Cr(n,{relative:s});if(!i.isTransitioning)return!1;let u=Os(i.currentLocation.pathname,o)||i.currentLocation.pathname,d=Os(i.nextLocation.pathname,o)||i.nextLocation.pathname;return _r(c.pathname,d)!=null||_r(c.pathname,u)!=null}function xt(){const n=Dc();return y.useCallback((s,i)=>{typeof s=="number"?n(s):n(s,i)},[n])}function wb(n){return`/sessions/${encodeURIComponent(n)}`}function Ji(n,s){return s?`/environments/${encodeURIComponent(s)}/workspaces/${encodeURIComponent(n)}`:`/workspaces/${encodeURIComponent(n)}`}function os(n,s,i,o){const c=encodeURIComponent(n);let u;return i&&o?u=`/environments/${encodeURIComponent(o)}/workspaces/${encodeURIComponent(i)}/tasks/${c}`:i?u=`/workspaces/${encodeURIComponent(i)}/tasks/${c}`:u=`/tasks/${c}`,s?`${u}/${s}`:u}function ei(n,s,i){const o=new URLSearchParams;n&&o.set("workspace",n),s&&o.set("parent",s);const c=o.toString();if(n&&i){const u=`/environments/${encodeURIComponent(i)}/workspaces/${encodeURIComponent(n)}/tasks/new`;return s?`${u}?parent=${encodeURIComponent(s)}`:u}return c?`/tasks/new?${c}`:"/tasks/new"}function Nb(n){return`/sessions/new?${new URLSearchParams({env:n}).toString()}`}const Xi="/environments",i2="/environments/new";function Wi(n){return`/environments/${encodeURIComponent(n)}`}function o2(n){return`/environments/${encodeURIComponent(n)}/edit`}const Yi="/settings",r2="/settings/credentials",sf="/settings/personas",l2="/settings/personas/new";function jb(n){return`/settings/personas/${encodeURIComponent(n)}`}const c2="/settings/shortcuts",u2="/pair",d2="/chat",Ya="/",f2="/tasks",Cb="/workspaces/new",Eb="/knowledge",p2=3e3;function m2(n){const[s,i]=y.useState(!1),o=y.useRef(n.onSessionEvent);o.current=n.onSessionEvent;const c=y.useRef(n.onDomainEvent);c.current=n.onDomainEvent;const u=y.useRef(n.onConnect);u.current=n.onConnect;const d=y.useRef(n.onDisconnect);return d.current=n.onDisconnect,y.useEffect(()=>{let m=!1,h;async function g(){var v,b;if(!m){try{const _=we.streamEvents({});i(!0),(v=u.current)==null||v.call(u);for await(const S of _){if(m)break;const T=S.event;if(T.case==="sessionEvent"){const N=T.value;o.current({sessionId:N.sessionId,type:N.type,timestamp:N.timestamp,content:N.content,raw:N.raw})}else if(T.case==="domainEvent"){const N=T.value;c.current({id:N.id,type:N.type,timestamp:N.timestamp,payloadJson:N.payloadJson})}}}catch(_){if(_ instanceof Cc&&_.code===lT.Unauthenticated){window.location.href=u2;return}}m||(i(!1),(b=d.current)==null||b.call(d),h=setTimeout(()=>{g().catch(()=>{})},p2))}}return g().catch(()=>{}),()=>{m=!0,clearTimeout(h),i(!1)}},[]),{connected:s}}function Ab(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function Db(n,s){return console.warn(`[ws] Malformed "${n}" message: ${s}`),!1}function h2(n){return Ab(n)&&typeof n.sessionId=="string"&&typeof n.eventType=="string"&&typeof n.timestamp=="string"&&typeof n.content=="string"&&(n.raw===void 0||typeof n.raw=="string")}const g2=new Set(["off","subscription","api_key"]),Wl=new Set(["off","on"]);function v2(n){return Ab(n)&&g2.has(n.claude)&&Wl.has(n.github)&&Wl.has(n.copilot)&&Wl.has(n.codex)&&Wl.has(n.goose)}function Rb(n){switch(n){case"waiting_input":return"idle";case"completed":return"stopped";case"killed":return"stopped";case"failed":return"stopped";case"interrupted":return"stopped";case"terminated":return"stopped";default:return n}}function Mb(n){switch(n){case"completed":return"completed";case"killed":return"killed";case"failed":return"interrupted";case"interrupted":return"interrupted";case"terminated":return"terminated";default:return}}const Pi=5e3;function y2(n){return{id:n.id,displayName:n.displayName,adapterType:n.adapterType,adapterConfig:n.adapterConfig||"{}",status:n.status,bootstrapped:n.bootstrapped}}function p0(n){return{id:n.id,environmentId:n.environmentId,runtime:n.runtime,status:n.status,prompt:n.prompt,startedAt:n.startedAt,endedAt:n.endedAt||void 0,error:n.error||void 0,endReason:n.endReason||void 0,personaId:n.personaId||void 0,inputTokens:n.inputTokens,outputTokens:n.outputTokens,costUsd:n.costUsd}}function b2(n){return{sessionId:n.sessionId,eventType:ab(n.type),timestamp:n.timestamp,content:n.content,raw:n.raw||void 0}}function _2(n){return{id:n.id,name:n.name,description:n.description,repoUrl:n.repoUrl,environmentId:n.environmentId,status:cT(n.status),workingDirectory:n.workingDirectory,useWorktrees:n.useWorktrees,defaultPersonaId:n.defaultPersonaId,createdAt:n.createdAt,updatedAt:n.updatedAt}}function m0(n){return{id:n.id,workspaceId:n.workspaceId??void 0,title:n.title,description:n.description,status:uT(n.status),branch:n.branch,latestSessionId:n.latestSessionId,dependsOn:[...n.dependsOn],sortOrder:n.sortOrder,createdAt:n.createdAt,startedAt:n.startedAt||void 0,completedAt:n.completedAt||void 0,parentTaskId:n.parentTaskId,depth:n.depth,childTaskIds:[...n.childTaskIds],canDecompose:n.canDecompose,defaultPersonaId:n.defaultPersonaId,workpad:n.workpad}}function x2(n){return{id:n.id,workspaceId:n.workspaceId,taskId:n.taskId,sessionId:n.sessionId,category:n.category,title:n.title,content:n.content,tags:[...n.tags],createdAt:n.createdAt}}function S2(n){return{name:n.name,tokenType:n.type,envVar:n.envVar,filePath:n.filePath,expiresAt:n.expiresAt}}function T2(n){return{claude:dT(n.claude),github:Jl(n.github),copilot:Jl(n.copilot),codex:Jl(n.codex),goose:Jl(n.goose)}}function k2(n){return{name:n.name,repository:n.repository,state:n.state,gitStatus:n.gitStatus}}function af(n){return{id:n.id,name:n.name,description:n.description,systemPrompt:n.systemPrompt,toolConfig:n.toolConfig?JSON.stringify({allowedTools:[...n.toolConfig.allowedTools],disallowedTools:[...n.toolConfig.disallowedTools]}):"{}",runtime:n.runtime,model:n.model,maxTurns:n.maxTurns,mcpServers:JSON.stringify(n.mcpServers.map(s=>({name:s.name,command:s.command,args:[...s.args],tools:[...s.tools]}))),createdAt:n.createdAt,updatedAt:n.updatedAt,type:n.type||"agent",script:n.script,allowedMcpTools:[...n.allowedMcpTools]}}function w2(n){return{inputTokens:n.inputTokens,outputTokens:n.outputTokens,costUsd:n.costUsd,sessionCount:n.sessionCount}}function Ql(n,s=0){return{id:n.id,label:n.title||n.label||n.id,kind:n.kind,category:n.category||void 0,sourceType:n.sourceType||void 0,sourceId:n.sourceId||void 0,content:n.content||void 0,tags:n.tags.length>0?[...n.tags]:void 0,workspaceId:n.workspaceId||void 0,createdAt:n.createdAt||void 0,updatedAt:n.updatedAt||void 0,val:s}}function of(n){return{source:n.fromId,target:n.toId,type:n.type}}const h0=5e3;function N2(){const[n,s]=y.useState([]),[i,o]=y.useState({}),c=y.useCallback(()=>{we.listEnvironments({}).then(_=>{s(_.environments.map(y2))},()=>{})},[]),u=y.useCallback(_=>{switch(_.type){case"environment.added":return!0;case"environment.removed":{const S=_.payload.environmentId;return S&&(s(T=>T.filter(N=>N.id!==S)),o(T=>{const N={...T};return delete N[S],N})),!0}case"environment.changed":return c(),!0;case"environment.provision_progress":{const S=_.payload;if(typeof S.environmentId!="string"||typeof S.stage!="string"||typeof S.message!="string"||typeof S.progress!="number")return Db("environment.provision_progress","invalid payload"),!0;if(o(T=>({...T,[S.environmentId]:{stage:S.stage,message:S.message,progress:S.progress}})),S.stage==="ready"){const T=S.environmentId;setTimeout(()=>{o(N=>{const j={...N};return delete j[T],j})},h0)}return!0}default:return!1}},[c]),d=y.useCallback(_=>{var S;if(_.type==="environments"){const T=Array.isArray((S=_.payload)==null?void 0:S.environments)?_.payload.environments:[];return s(T),!0}return!1},[]),m=y.useCallback((_,S,T)=>{we.addEnvironment({displayName:_,adapterType:S,adapterConfig:JSON.stringify(T??{})}).catch(()=>{})},[]),h=y.useCallback((_,S)=>{we.updateEnvironment({id:_,displayName:S.displayName,adapterConfig:S.adapterConfig?JSON.stringify(S.adapterConfig):void 0}).catch(()=>{})},[]),g=y.useCallback((_,S)=>{(async()=>{try{const N=we.provisionEnvironment({id:_,force:S??!1});for await(const j of N)o(w=>({...w,[_]:{stage:j.stage,message:j.message,progress:j.progress}})),j.stage==="ready"&&setTimeout(()=>{o(w=>{const E={...w};return delete E[_],E})},h0)}catch{o(N=>{const j={...N};return delete j[_],j})}})().catch(()=>{})},[]),v=y.useCallback(_=>{we.stopEnvironment({id:_}).catch(()=>{})},[]),b=y.useCallback(_=>{we.removeEnvironment({id:_}).catch(()=>{})},[]);return{environments:n,provisionStatus:i,loadEnvironments:c,addEnvironment:m,updateEnvironment:h,provisionEnvironment:g,stopEnvironment:v,removeEnvironment:b,handleEvent:u,handleLegacyMessage:d}}const rf=new Set(["pending","running","idle"]),j2=new Set(["completed","failed","interrupted","hibernating","suspended"]),g0=["pending","running","idle"];function C2(){const[n,s]=y.useState([]),[i,o]=y.useState([]),[c,u]=y.useState(0),[d,m]=y.useState(void 0),[h,g]=y.useState({}),v=y.useCallback(()=>{we.listSessions({}).then(C=>{const M=C.sessions.map(p0);s(G=>{const U=new Map(G.map(V=>[V.id,V]));return M.map(V=>{const F=U.get(V.id),ee=F==null?void 0:F.status;return!ee||ee===V.status?V:j2.has(ee)&&rf.has(V.status)?{...V,status:ee,...F.endReason!==void 0?{endReason:F.endReason}:{}}:rf.has(ee)&&rf.has(V.status)&&g0.indexOf(ee)>g0.indexOf(V.status)?{...V,status:ee}:V})})},()=>{})},[]),b=y.useCallback(C=>{if(C.type!=="session_event")return!1;if(!h2(C.payload))return Db("session_event","payload is not a valid SessionEvent"),!0;const M=C.payload;let G=0;if(o(U=>{const V=[...U,M];return V.length>Pi?(G=V.length-Pi,V.slice(-Pi)):V}),G>0&&u(U=>U+G),M.eventType==="usage")try{const U=JSON.parse(M.content),V=Number(U.input_tokens)||0,F=Number(U.output_tokens)||0,ee=Number(U.cost_usd)||0;(V>0||F>0||ee>0)&&s(ae=>ae.map(be=>be.id===M.sessionId?{...be,inputTokens:(be.inputTokens??0)+V,outputTokens:(be.outputTokens??0)+F,costUsd:(be.costUsd??0)+ee}:be))}catch{}if(M.eventType==="status"){const U=Rb(M.content),V=Mb(M.content);s(F=>F.some(ae=>ae.id===M.sessionId)?F.map(ae=>ae.id===M.sessionId?{...ae,status:U,...V!==void 0?{endReason:V}:{}}:ae):[...F,{id:M.sessionId,environmentId:"",runtime:"",status:U,prompt:"",startedAt:M.timestamp,...V!==void 0?{endReason:V}:{}}])}return!0},[]),_=y.useCallback(C=>{b({type:"session_event",payload:C})},[b]),S=y.useCallback(C=>{var M,G,U,V,F;switch(C.type){case"sessions":{const ee=Array.isArray((M=C.payload)==null?void 0:M.sessions)?C.payload.sessions:[];return s(ee),!0}case"spawned":{const ee=(G=C.payload)==null?void 0:G.sessionId;return typeof ee=="string"&&ee&&m(ee),v(),!0}case"session_events":{const ee=Array.isArray((U=C.payload)==null?void 0:U.events)?C.payload.events:[];return ee.length>0&&o(ee),!0}case"task_sessions":{const ee=(V=C.payload)==null?void 0:V.taskId;if(typeof ee=="string"&&ee){const ae=Array.isArray((F=C.payload)==null?void 0:F.sessions)?C.payload.sessions:[];g(be=>({...be,[ee]:ae}))}return!0}default:return!1}},[v]),T=y.useCallback((C,M,G,U)=>{we.spawnAgent({environmentId:C,prompt:M,personaId:G||"",workingDirectory:U||""}).then(V=>{m(V.id),v()},()=>{})},[v]),N=y.useCallback((C,M)=>{we.sendInput({sessionId:C,text:M}).catch(()=>{})},[]),j=y.useCallback(C=>{we.killAgent({id:C,graceful:!1}).catch(()=>{})},[]),w=y.useCallback(C=>{we.killAgent({id:C,graceful:!0}).catch(()=>{})},[]),E=y.useCallback(C=>{we.getSessionEvents({id:C}).then(M=>{const G=M.events.map(b2);if(G.length>0){let U=0;o(V=>{const F=new Set;for(const be of V)be.sessionId===C&&F.add(`${be.timestamp}|${be.eventType}`);const ee=G.filter(be=>!F.has(`${be.timestamp}|${be.eventType}`)),ae=[...V,...ee].sort((be,K)=>be.sessionId!==K.sessionId?0:be.timestamp.localeCompare(K.timestamp));return ae.length>Pi?(U=ae.length-Pi,ae.slice(-Pi)):ae}),U>0&&u(V=>V+U)}},()=>{})},[]),A=y.useCallback(()=>{o([]),u(0)},[]),O=y.useCallback(C=>{we.getTaskSessions({id:C}).then(M=>{const G=M.sessions.map(p0);g(U=>({...U,[C]:G}))},()=>{})},[]);return{sessions:n,events:i,eventsDropped:c,lastSpawnedId:d,taskSessions:h,loadSessions:v,spawn:T,sendInput:N,kill:j,stopGraceful:w,loadSessionEvents:E,clearEvents:A,loadTaskSessions:O,handleMessage:b,handleSessionEvent:_,handleLegacyMessage:S}}function E2(){const[n,s]=y.useState([]),[i,o]=y.useState(!1),c=y.useCallback(()=>{we.listWorkspaces({}).then(v=>{s(v.workspaces.map(_2))},()=>{})},[]),u=y.useCallback(v=>{switch(v.type){case"workspace.created":return o(!1),c(),!0;case"workspace.archived":case"workspace.updated":return c(),!0;default:return!1}},[c]),d=y.useCallback(()=>{o(!1)},[]),m=y.useCallback((v,b,_,S,T,N,j,w,E)=>{o(!0),we.createWorkspace({name:v,description:b||"",repoUrl:_||"",environmentId:S||"",defaultPersonaId:T||void 0,useWorktrees:N??!0,workingDirectory:j||void 0}).then(()=>{o(!1),w==null||w()},A=>{o(!1);const O=A instanceof Cc?A.message:"Failed to create workspace";E==null||E(O)})},[]),h=y.useCallback(v=>{we.archiveWorkspace({id:v}).catch(()=>{})},[]),g=y.useCallback((v,b)=>{we.updateWorkspace({id:v,...b}).catch(()=>{})},[]);return{workspaces:n,workspaceCreating:i,loadWorkspaces:c,createWorkspace:m,archiveWorkspace:h,updateWorkspace:g,handleEvent:u,onDisconnect:d}}function A2(){const[n,s]=y.useState([]),[i,o]=y.useState(void 0),c=y.useRef({}),u=y.useCallback(E=>{we.listTasks({workspaceId:E}).then(A=>{const O=A.tasks.map(m0);s(C=>[...C.filter(M=>M.workspaceId!==E),...O])},()=>{})},[]),d=y.useCallback(()=>{we.listTasks({}).then(E=>{const A=E.tasks.map(m0);s(O=>{const C=new Set(A.map(M=>M.id));return[...O.filter(M=>!C.has(M.id)),...A]})},()=>{})},[]),m=y.useCallback((E,A)=>{const O=C=>{clearTimeout(c.current[C]),c.current[C]=setTimeout(()=>{delete c.current[C],u(C)},200)};E?O(E):A&&s(C=>{const M=C.find(G=>G.id===A);return M!=null&&M.workspaceId?O(M.workspaceId):d(),C})},[u,d]),h=y.useCallback(E=>{const A=E.payload;switch(E.type){case"task.created":{const O=typeof A.workspaceId=="string"?A.workspaceId:"";return O&&u(O),!0}case"task.started":{const O=typeof A.taskId=="string"?A.taskId:"",C=typeof A.sessionId=="string"?A.sessionId:"",M=typeof A.workspaceId=="string"?A.workspaceId:"";return o(G=>O&&G===O?void 0:G),C&&O&&s(G=>G.map(U=>U.id===O?{...U,latestSessionId:C}:U)),m(M,O),!0}case"task.completed":case"task.deleted":case"task.reparented":case"task.updated":{const O=typeof A.workspaceId=="string"?A.workspaceId:"",C=typeof A.taskId=="string"?A.taskId:"";return m(O,C),!0}default:return!1}},[u,m]),g=y.useCallback(()=>{o(void 0)},[]),v=y.useCallback(E=>{var A,O;if(E.type==="tasks"){const C=Array.isArray((A=E.payload)==null?void 0:A.tasks)?E.payload.tasks:[],M=typeof((O=E.payload)==null?void 0:O.workspaceId)=="string"&&E.payload.workspaceId?E.payload.workspaceId:"";return s(M?G=>[...G.filter(U=>U.workspaceId!==M),...C]:G=>{const U=new Set(C.map(V=>V.id));return[...G.filter(V=>!U.has(V.id)),...C]}),!0}return!1},[]),b=y.useCallback((E,A,O,C,M,G,U,V,F)=>{we.createTask({workspaceId:E,title:A,description:O||"",dependsOn:C||[],parentTaskId:M||"",defaultPersonaId:G||void 0,canDecompose:U??void 0}).then(()=>{V==null||V()},ee=>{const ae=ee instanceof Cc?ee.message:"Failed to create task";F==null||F(ae)})},[]),_=y.useCallback((E,A,O,C)=>{o(E),we.startTask({taskId:E,personaId:A||"",environmentId:O||"",notes:C||""}).catch(()=>{o(void 0)})},[]),S=y.useCallback(E=>{we.stopTask({id:E}).catch(()=>{})},[]),T=y.useCallback(E=>{we.completeTask({id:E}).catch(()=>{})},[]),N=y.useCallback(E=>{we.resumeTask({id:E}).catch(()=>{})},[]),j=y.useCallback((E,A,O,C,M)=>{we.updateTask({id:E,title:A,description:O,dependsOn:C,...M!==void 0?{defaultPersonaId:M}:{}}).catch(()=>{})},[]),w=y.useCallback(E=>{we.deleteTask({id:E}).catch(()=>{})},[]);return{tasks:n,taskStartingId:i,loadTasks:u,loadAllTasks:d,createTask:b,startTask:_,stopTask:S,completeTask:T,resumeTask:N,updateTask:j,deleteTask:w,handleEvent:h,onDisconnect:g,handleLegacyMessage:v}}function D2(){const[n,s]=y.useState([]),i=y.useCallback(u=>{we.queryFindings({workspaceId:u}).then(d=>{s(d.findings.map(x2))},()=>{})},[]),o=y.useCallback(u=>{if(u.type==="finding.posted"){const d=typeof u.payload.workspaceId=="string"?u.payload.workspaceId:"";return d&&i(d),!0}return!1},[i]),c=y.useCallback((u,d,m,h,g)=>{we.postFinding({workspaceId:u,title:d,content:m,category:h??"general",tags:g??[]}).catch(()=>{})},[]);return{findings:n,loadFindings:i,postFinding:c,handleEvent:o}}function R2(){const[n,s]=y.useState([]),i=y.useCallback(()=>{we.listTokens({}).then(d=>{s(d.tokens.map(S2))},()=>{})},[]),o=y.useCallback(d=>d.type==="token.changed"?(i(),!0):!1,[i]),c=y.useCallback((d,m,h,g,v)=>{we.setToken({name:d,value:m,type:h,envVar:g,filePath:v}).catch(()=>{})},[]),u=y.useCallback(d=>{we.deleteToken({name:d}).catch(()=>{})},[]);return{tokens:n,loadTokens:i,setToken:c,deleteToken:u,handleEvent:o}}function M2(){const[n,s]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),i=y.useCallback(()=>{we.getCredentialProviders({}).then(u=>{s(T2(u))},()=>{})},[]),o=y.useCallback(u=>u.type==="credential.providers_changed"?(v2(u.payload)&&s(u.payload),!0):!1,[]),c=y.useCallback(u=>{const d=[{provider:"claude",value:u.claude},{provider:"github",value:u.github},{provider:"copilot",value:u.copilot},{provider:"codex",value:u.codex},{provider:"goose",value:u.goose}];for(const{provider:m,value:h}of d)we.setCredentialProvider({provider:m,value:h}).catch(()=>{})},[]);return{credentialProviders:n,loadCredentials:i,updateCredentialProviders:c,handleEvent:o}}function O2(){const[n,s]=y.useState([]),[i,o]=y.useState(""),[c,u]=y.useState(""),[d,m]=y.useState(!1),h=y.useCallback(()=>{we.listCodespaces({}).then(v=>{s(v.codespaces.map(k2)),u(v.error)},()=>{})},[]),g=y.useCallback((v,b)=>{m(!0),o(""),we.createCodespace({repo:v,machine:b??""}).then(()=>{m(!1),h()},_=>{m(!1);const S=_ instanceof Cc?_.message:"Failed to create codespace";o(S)})},[h]);return{codespaces:n,codespaceError:i,codespaceListError:c,codespaceCreating:d,listCodespaces:h,createCodespace:g}}function I2(){const[n,s]=y.useState([]),i=y.useCallback(()=>{we.listPersonas({}).then(m=>{s(m.personas.map(af))},()=>{})},[]),o=y.useCallback(m=>{switch(m.type){case"persona.created":case"persona.updated":case"persona.deleted":return i(),!0;default:return!1}},[i]),c=y.useCallback((m,h,g,v,b,_,S,T,N)=>we.createPersona({name:m,description:h,systemPrompt:g,runtime:v||"",model:b||"",maxTurns:_||0,type:S||"agent",script:T||"",allowedMcpTools:N||[]}).then(j=>{const w=af(j);return s(E=>[...E.filter(A=>A.id!==w.id),w]),w}),[]),u=y.useCallback((m,h,g,v,b,_,S,T,N,j)=>{const w={id:m};return h!==void 0&&(w.name=h),g!==void 0&&(w.description=g),v!==void 0&&(w.systemPrompt=v),b!==void 0&&(w.runtime=b),_!==void 0&&(w.model=_),S!==void 0&&(w.maxTurns=S),T!==void 0&&(w.type=T),N!==void 0&&(w.script=N),j!==void 0&&(w.allowedMcpTools=j),we.updatePersona(w).then(E=>{const A=af(E);return s(O=>O.map(C=>C.id===A.id?A:C)),A})},[]),d=y.useCallback(async m=>{await we.deletePersona({id:m}),s(h=>h.filter(g=>g.id!==m))},[]);return{personas:n,loadPersonas:i,createPersona:c,updatePersona:u,deletePersona:d,handleEvent:o}}function L2(n){if(n)try{return JSON.parse(n)}catch{return}}function B2(){const[n,s]=y.useState(new Map),[i,o]=y.useState([]),[c,u]=y.useState(void 0),[d,m]=y.useState(void 0),[h,g]=y.useState(!1),[v,b]=y.useState(""),_=y.useRef(""),S=y.useCallback(O=>{const C=O??"";_.current=C,b(""),g(!0),we.listRecentKnowledgeNodes({limit:30,workspaceId:C}).then(M=>{const G=new Map,U=[];for(const V of M.nodes)G.set(V.id,Ql(V));for(const V of M.edges)U.push(of(V));for(const V of U){const F=G.get(V.source);F&&(F.val+=1);const ee=G.get(V.target);ee&&(ee.val+=1)}s(G),o(U),g(!1)},()=>{g(!1)})},[]),T=y.useCallback(O=>{O.trim()&&(b(O),m(void 0),u(void 0),g(!0),we.searchKnowledge({query:O,limit:20,workspaceId:_.current}).then(C=>{const M=new Map,G=[];for(const U of C.results){U.node&&M.set(U.node.id,Ql(U.node,U.edges.length));for(const V of U.edges)G.push(of(V))}s(M),o(G),g(!1)},()=>{g(!1)}))},[]),N=y.useCallback(()=>{S(_.current)},[S]),j=y.useCallback(O=>{m(O),we.getKnowledgeNode({id:O}).then(C=>{if(!C.node){u(void 0);return}u({node:Ql(C.node,C.edges.length),edges:C.edges.map(M=>({fromId:M.fromId,toId:M.toId,type:M.type,metadata:L2(M.metadataJson)}))})},()=>{u(void 0)})},[]),w=y.useCallback(()=>{m(void 0),u(void 0)},[]),E=y.useCallback(O=>{we.expandKnowledgeNode({id:O,depth:1}).then(C=>{s(M=>{const G=new Map(M);for(const U of C.nodes)G.has(U.id)||G.set(U.id,Ql(U));return G}),o(M=>{const G=new Set(M.map(V=>`${V.source}:${V.target}:${V.type}`)),U=[];for(const V of C.edges){const F=of(V),ee=`${F.source}:${F.target}:${F.type}`;G.has(ee)||U.push(F)}return[...M,...U]})},()=>{})},[]),A=y.useCallback(O=>!1,[]);return{graphData:{nodes:[...n.values()],links:i},selectedNode:c,selectedId:d,loading:h,searchQuery:v,search:T,clearSearch:N,selectNode:j,clearSelection:w,expandNode:E,loadRecent:S,handleEvent:A}}function U2(){const[n,s]=y.useState(""),[i,o]=y.useState(void 0),[c,u]=y.useState({}),d=N2(),m=C2(),h=E2(),g=A2(),v=D2(),b=R2(),_=M2(),S=O2(),T=I2(),N=B2(),{connected:j}=m2({onSessionEvent:F=>{m.handleSessionEvent({sessionId:F.sessionId,eventType:ab(F.type),timestamp:F.timestamp,content:F.content,raw:F.raw||void 0})},onDomainEvent:F=>{try{const ee=JSON.parse(F.payloadJson);M({id:F.id,type:F.type,timestamp:F.timestamp,payload:ee})}catch{console.warn("[grackle] Failed to parse domain event payloadJson:",F.payloadJson)}},onConnect:G,onDisconnect:U}),w="default_persona_id",E="onboarding_completed",A=y.useCallback(async F=>{const ee=await we.setSetting({key:w,value:F});s(ee.value)},[]),O=y.useCallback(()=>{o(!0),we.setSetting({key:E,value:"true"}).catch(()=>{})},[]),C=y.useCallback((F,ee)=>{we.getUsage({scope:F,id:ee}).then(ae=>{const be=`${F}:${ee}`;u(K=>({...K,[be]:w2(ae)}))},()=>{})},[]);function M(F){const ee=F.payload.key,ae=F.payload.value;if(F.type==="setting.changed"){ee===w&&s(ae??""),ee===E&&o(ae==="true");return}if(d.handleEvent(F)){(F.type==="environment.removed"||F.type==="environment.changed")&&m.loadSessions();return}if(!h.handleEvent(F)){if(g.handleEvent(F)){F.type==="task.started"&&m.loadSessions();return}v.handleEvent(F)||b.handleEvent(F)||_.handleEvent(F)||T.handleEvent(F)||N.handleEvent(F)}}function G(){d.loadEnvironments(),m.loadSessions(),h.loadWorkspaces(),b.loadTokens(),_.loadCredentials(),T.loadPersonas(),we.getSetting({key:w}).then(F=>{s(F.value)},()=>{}),we.getSetting({key:E}).then(F=>{o(F.value==="true")},()=>{}),g.loadAllTasks()}function U(){h.onDisconnect(),g.onDisconnect()}const V=y.useCallback(()=>{d.loadEnvironments(),m.loadSessions(),h.loadWorkspaces(),b.loadTokens()},[d.loadEnvironments,m.loadSessions,h.loadWorkspaces,b.loadTokens]);return{connected:j,environments:d.environments,sessions:m.sessions,events:m.events,eventsDropped:m.eventsDropped,lastSpawnedId:m.lastSpawnedId,workspaces:h.workspaces,tasks:g.tasks,findings:v.findings,tokens:b.tokens,spawn:m.spawn,sendInput:m.sendInput,kill:m.kill,stopGraceful:m.stopGraceful,refresh:V,loadSessionEvents:m.loadSessionEvents,clearEvents:m.clearEvents,loadWorkspaces:h.loadWorkspaces,createWorkspace:h.createWorkspace,archiveWorkspace:h.archiveWorkspace,updateWorkspace:h.updateWorkspace,loadTasks:g.loadTasks,loadAllTasks:g.loadAllTasks,createTask:g.createTask,startTask:g.startTask,stopTask:g.stopTask,completeTask:g.completeTask,resumeTask:g.resumeTask,updateTask:g.updateTask,deleteTask:g.deleteTask,loadFindings:v.loadFindings,postFinding:v.postFinding,loadEnvironments:d.loadEnvironments,addEnvironment:d.addEnvironment,updateEnvironment:d.updateEnvironment,loadTokens:b.loadTokens,setToken:b.setToken,deleteToken:b.deleteToken,credentialProviders:_.credentialProviders,updateCredentialProviders:_.updateCredentialProviders,provisionStatus:d.provisionStatus,provisionEnvironment:d.provisionEnvironment,stopEnvironment:d.stopEnvironment,removeEnvironment:d.removeEnvironment,codespaces:S.codespaces,codespaceError:S.codespaceError,codespaceListError:S.codespaceListError,codespaceCreating:S.codespaceCreating,listCodespaces:S.listCodespaces,createCodespace:S.createCodespace,workspaceCreating:h.workspaceCreating,taskStartingId:g.taskStartingId,personas:T.personas,createPersona:T.createPersona,updatePersona:T.updatePersona,deletePersona:T.deletePersona,taskSessions:m.taskSessions,loadTaskSessions:m.loadTaskSessions,appDefaultPersonaId:n,setAppDefaultPersonaId:A,onboardingCompleted:i,completeOnboarding:O,usageCache:c,loadUsage:C,knowledge:N}}const yp=y.createContext(void 0);function z2({children:n}){const s=U2();return l.jsx(yp.Provider,{value:s,children:n})}function pt(){const n=y.useContext(yp);if(!n)throw new Error("useGrackle must be used within GrackleProvider");return n}const ns=[{id:"kn-auth-flow",label:"Authentication Flow",kind:"knowledge",category:"concept",content:"The application uses JWT Bearer tokens for stateless authentication. Access tokens expire after 24h. Refresh tokens are stored in the database and rotated on use. The auth middleware verifies tokens and attaches the decoded payload to req.user.",tags:["auth","jwt","security"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:30:00Z",updatedAt:"2026-02-27T08:15:00Z",val:5},{id:"kn-db-schema",label:"Database Schema",kind:"knowledge",category:"concept",content:"PostgreSQL database with tables: users, sessions, refresh_tokens, audit_log. Uses UUID primary keys, TIMESTAMPTZ for all timestamps, and JSONB for flexible metadata columns. Connection pooling via pg-pool with per-tenant isolation.",tags:["database","postgres","schema"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:00:00Z",updatedAt:"2026-02-26T22:45:00Z",val:4},{id:"kn-error-handling",label:"Error Response Pattern",kind:"knowledge",category:"concept",content:"All API errors follow the shape { error: string, code: string, details?: unknown }. HTTP status codes map to: 400 (validation), 401 (unauthenticated), 403 (forbidden), 404 (not found), 409 (conflict), 429 (rate limited), 500 (internal).",tags:["api","errors","patterns"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:17:00Z",updatedAt:"2026-02-27T08:17:00Z",val:3},{id:"kn-rate-limiting",label:"Rate Limiting Strategy",kind:"knowledge",category:"concept",content:"Token-bucket algorithm with in-memory state per client IP. Default rate: 100 requests/minute, burst: 20. Returns 429 with Retry-After header. Redis adapter available for multi-instance deployments.",tags:["api","rate-limiting","infrastructure"],workspaceId:"proj-alpha",createdAt:"2026-02-27T09:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:2},{id:"kn-etl-pipeline",label:"ETL Pipeline Architecture",kind:"knowledge",category:"concept",content:"Data pipelines follow an Extract-Transform-Load pattern with pluggable stages. Each stage reads from a source (Postgres, S3, API), transforms via configurable mappers, and loads into a target (Parquet, BigQuery, S3). Incremental loads use high-watermark tracking.",tags:["etl","pipeline","architecture"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:05:00Z",val:4},{id:"kn-parquet-format",label:"Parquet Output Format",kind:"knowledge",category:"concept",content:"Parquet files are written with row-group buffering (configurable batch size, default 10000 rows). Supports Snappy, ZSTD, and GZIP compression. Schema is derived from the internal column type system using Arrow type mapping.",tags:["parquet","data-format","compression"],workspaceId:"proj-beta",createdAt:"2026-02-26T08:05:00Z",updatedAt:"2026-02-26T08:15:00Z",val:3},{id:"kn-jwt-over-session",label:"JWT over Session Auth",kind:"knowledge",category:"decision",content:"Chose JWT tokens over server-side sessions for stateless auth. Rationale: (1) no session store needed, (2) works across microservices without shared state, (3) supports mobile clients natively. Trade-off: tokens can't be revoked instantly (mitigated by short expiry + refresh rotation).",tags:["auth","decision","jwt"],workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-25T10:00:00Z",val:3},{id:"kn-pg-pool-decision",label:"pg-pool over Knex",kind:"knowledge",category:"decision",content:"Chose pg-pool over Knex for connection pooling. pg-pool gives direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool and adds query-building overhead we don't need since we write raw SQL with parameterized queries.",tags:["database","decision","postgres"],workspaceId:"proj-alpha",createdAt:"2026-02-23T11:30:00Z",updatedAt:"2026-02-23T11:30:00Z",val:2},{id:"kn-watermark-decision",label:"Local Watermark Storage",kind:"knowledge",category:"decision",content:"Currently using local SQLite for watermark storage. This works for single-worker pipelines but needs to move to a shared store (Redis or Postgres) for production multi-worker scenarios. Tracked as a follow-up task.",tags:["pipeline","decision","watermarks"],workspaceId:"proj-beta",createdAt:"2026-02-27T09:05:00Z",updatedAt:"2026-02-27T09:05:00Z",val:2},{id:"kn-jwt-middleware",label:"JWT Verify Middleware",kind:"knowledge",category:"snippet",content:`\`\`\`typescript
38
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
39
- const header = req.headers.authorization;
40
- if (!header?.startsWith("Bearer ")) {
41
- res.status(401).json({ error: "Missing token" });
42
- return;
43
- }
44
- const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
45
- req.user = decoded;
46
- next();
47
- }
48
- \`\`\``,tags:["auth","jwt","middleware","typescript"],workspaceId:"proj-alpha",createdAt:"2026-02-27T08:15:14Z",updatedAt:"2026-02-27T08:15:14Z",val:2},{id:"kn-audit-schema",label:"Audit Log Schema",kind:"knowledge",category:"snippet",content:`\`\`\`sql
49
- CREATE TABLE audit_log (
50
- id BIGSERIAL PRIMARY KEY,
51
- user_id UUID REFERENCES users(id),
52
- action TEXT NOT NULL,
53
- entity_type TEXT NOT NULL,
54
- entity_id TEXT NOT NULL,
55
- old_value JSONB,
56
- new_value JSONB,
57
- ip_address INET,
58
- created_at TIMESTAMPTZ DEFAULT now()
59
- );
60
- \`\`\``,tags:["database","audit","schema","sql"],workspaceId:"proj-alpha",createdAt:"2026-02-26T22:45:15Z",updatedAt:"2026-02-26T22:45:15Z",val:2},{id:"kn-n1-query",label:"N+1 Query in User List",kind:"knowledge",category:"insight",content:"GET /api/users performs a separate query for each user's role metadata, resulting in N+1 queries. For 500 users this adds ~2 seconds of latency. Solution: use a JOIN or batch lookup to fetch all role data in a single query.",tags:["performance","database","n+1"],workspaceId:"proj-alpha",createdAt:"2026-02-22T09:30:00Z",updatedAt:"2026-02-22T09:30:00Z",val:2},{id:"kn-session-race",label:"Session Cleanup Race Condition",kind:"knowledge",category:"insight",content:"When two concurrent requests hit /api/logout, the second call throws a 500 because the session row has already been deleted. Fix: use DELETE ... RETURNING or add IF EXISTS guard to make the operation idempotent.",tags:["bug","concurrency","sessions"],workspaceId:"proj-alpha",createdAt:"2026-02-26T22:50:00Z",updatedAt:"2026-02-26T22:50:00Z",val:2},{id:"kn-ref-task-001",label:"JWT Auth Task",kind:"reference",sourceType:"task",sourceId:"task-001",content:"Implement JWT authentication across all protected routes, replacing session-based auth.",workspaceId:"proj-alpha",createdAt:"2026-02-25T10:00:00Z",updatedAt:"2026-02-27T08:15:00Z",val:3},{id:"kn-ref-task-006",label:"Parquet Export Task",kind:"reference",sourceType:"task",sourceId:"task-006",content:"Add Parquet export support for pipeline outputs, enabling downstream Spark consumption.",workspaceId:"proj-beta",createdAt:"2026-02-26T08:00:00Z",updatedAt:"2026-02-27T09:00:00Z",val:3},{id:"kn-ref-sess-001",label:"Auth Middleware Session",kind:"reference",sourceType:"session",sourceId:"sess-001",content:"Active session implementing JWT auth middleware, rewrote auth.ts, login.ts, and test suite.",workspaceId:"proj-alpha",createdAt:"2026-02-27T08:15:00Z",updatedAt:"2026-02-27T08:15:42Z",val:2}],ca=[{source:"kn-auth-flow",target:"kn-jwt-over-session",type:"decided_by"},{source:"kn-auth-flow",target:"kn-jwt-middleware",type:"implemented_by"},{source:"kn-auth-flow",target:"kn-ref-task-001",type:"tracked_in"},{source:"kn-auth-flow",target:"kn-error-handling",type:"relates_to"},{source:"kn-jwt-over-session",target:"kn-ref-task-001",type:"motivated_by"},{source:"kn-db-schema",target:"kn-pg-pool-decision",type:"decided_by"},{source:"kn-db-schema",target:"kn-audit-schema",type:"contains"},{source:"kn-db-schema",target:"kn-n1-query",type:"affected_by"},{source:"kn-db-schema",target:"kn-session-race",type:"affected_by"},{source:"kn-rate-limiting",target:"kn-error-handling",type:"relates_to"},{source:"kn-rate-limiting",target:"kn-auth-flow",type:"depends_on"},{source:"kn-etl-pipeline",target:"kn-parquet-format",type:"outputs_to"},{source:"kn-etl-pipeline",target:"kn-watermark-decision",type:"decided_by"},{source:"kn-etl-pipeline",target:"kn-ref-task-006",type:"tracked_in"},{source:"kn-parquet-format",target:"kn-ref-task-006",type:"tracked_in"},{source:"kn-watermark-decision",target:"kn-etl-pipeline",type:"relates_to"},{source:"kn-ref-task-001",target:"kn-ref-sess-001",type:"has_session"},{source:"kn-jwt-middleware",target:"kn-ref-sess-001",type:"created_in"},{source:"kn-audit-schema",target:"kn-db-schema",type:"part_of"}],P2=new Map(ns.map(n=>[n.id,n]));function lf(n){const s=P2.get(n);if(!s)throw new Error(`MOCK_KNOWLEDGE_NODES is missing node "${n}"`);return s}const v0={"kn-auth-flow":{node:lf("kn-auth-flow"),edges:[{fromId:"kn-auth-flow",toId:"kn-jwt-over-session",type:"decided_by"},{fromId:"kn-auth-flow",toId:"kn-jwt-middleware",type:"implemented_by"},{fromId:"kn-auth-flow",toId:"kn-ref-task-001",type:"tracked_in"},{fromId:"kn-auth-flow",toId:"kn-error-handling",type:"relates_to"},{fromId:"kn-rate-limiting",toId:"kn-auth-flow",type:"depends_on"}]},"kn-db-schema":{node:lf("kn-db-schema"),edges:[{fromId:"kn-db-schema",toId:"kn-pg-pool-decision",type:"decided_by"},{fromId:"kn-db-schema",toId:"kn-audit-schema",type:"contains"},{fromId:"kn-db-schema",toId:"kn-n1-query",type:"affected_by"},{fromId:"kn-db-schema",toId:"kn-session-race",type:"affected_by"},{fromId:"kn-audit-schema",toId:"kn-db-schema",type:"part_of"}]},"kn-etl-pipeline":{node:lf("kn-etl-pipeline"),edges:[{fromId:"kn-etl-pipeline",toId:"kn-parquet-format",type:"outputs_to"},{fromId:"kn-etl-pipeline",toId:"kn-watermark-decision",type:"decided_by"},{fromId:"kn-etl-pipeline",toId:"kn-ref-task-006",type:"tracked_in"},{fromId:"kn-watermark-decision",toId:"kn-etl-pipeline",type:"relates_to"}]}},V2=[{id:"env-local-01",displayName:"Local Dev",adapterType:"local",adapterConfig:"{}",status:"connected",bootstrapped:!0},{id:"env-docker-01",displayName:"Docker Sandbox",adapterType:"docker",adapterConfig:'{"image":"node:20"}',status:"connected",bootstrapped:!0},{id:"env-cs-01",displayName:"GitHub Codespace",adapterType:"codespace",adapterConfig:'{"codespaceName":"my-codespace"}',status:"connected",bootstrapped:!0},{id:"env-remote-01",displayName:"Staging (SSH)",adapterType:"ssh",adapterConfig:'{"host":"192.168.1.10","user":"deploy","sshPort":22}',status:"disconnected",bootstrapped:!1}],H2=[{id:"sess-001-prev",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Implement auth middleware",startedAt:"2026-02-26T14:00:00Z",endedAt:"2026-02-26T15:12:00Z",error:"Context window exceeded before completing implementation",inputTokens:84200,outputTokens:12750,costUsd:.41},{id:"sess-001",environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:"Refactor the authentication middleware to use JWT tokens",startedAt:"2026-02-27T08:15:00Z",inputTokens:42600,outputTokens:8100,costUsd:.22},{id:"sess-002",environmentId:"env-docker-01",runtime:"claude-code",status:"stopped",endReason:"completed",prompt:"Write unit tests for the user registration endpoint",startedAt:"2026-02-27T07:30:00Z",endedAt:"2026-02-27T07:33:00Z",inputTokens:31400,outputTokens:9800,costUsd:.18},{id:"sess-003",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Migrate database schema to add audit_log table",startedAt:"2026-02-26T22:45:00Z",endedAt:"2026-02-26T23:10:00Z",inputTokens:56300,outputTokens:14200,costUsd:.31},{id:"sess-004",environmentId:"env-docker-01",runtime:"claude-code",status:"running",prompt:"Implement rate limiting for the public API",startedAt:"2026-02-27T09:00:00Z",inputTokens:18900,outputTokens:4500,costUsd:.1},{id:"sess-005",environmentId:"env-cs-01",runtime:"claude-code",status:"suspended",prompt:"Refactor database connection pooling for multi-tenant isolation",startedAt:"2026-02-27T06:00:00Z",inputTokens:67800,outputTokens:19300,costUsd:.38}],q2=[{sessionId:"sess-001-prev",eventType:"status",timestamp:"2026-02-26T14:00:01Z",content:"running"},{sessionId:"sess-001-prev",eventType:"system",timestamp:"2026-02-26T14:00:02Z",content:`You are a senior backend engineer. Focus on security best practices and thorough testing.
61
- Project: acme/alpha — Node.js + Express REST API
62
- Task: Implement auth middleware using JWT tokens`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:00:05Z",content:"I'll start by reading the current authentication middleware to understand what needs to change."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:00:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/middleware/auth.ts"}}),raw:JSON.stringify({id:"tu-prev-001",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:00:07Z",content:`import session from "express-session";
63
- import type { Request, Response, NextFunction } from "express";
64
-
65
- export function requireAuth(req: Request, res: Response, next: NextFunction): void {
66
- if (!req.session?.userId) {
67
- res.status(401).json({ error: "Not authenticated" });
68
- return;
69
- }
70
- next();
71
- }`,raw:JSON.stringify({tool_use_id:"tu-prev-001"})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:00:10Z",content:"The current auth uses express-session with server-side session storage. Let me find all files that depend on this pattern."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:00:11Z",content:JSON.stringify({tool:"Grep",args:{pattern:"req\\.session",path:"src/"}}),raw:JSON.stringify({id:"tu-prev-002",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:00:12Z",content:`src/middleware/auth.ts:4: if (!req.session?.userId) {
72
- src/routes/login.ts:18: req.session.userId = user.id;
73
- src/routes/login.ts:19: req.session.role = user.role;
74
- src/routes/protected.ts:7: const userId = req.session.userId;`,raw:JSON.stringify({tool_use_id:"tu-prev-002"})},{sessionId:"sess-001-prev",eventType:"usage",timestamp:"2026-02-26T14:30:00Z",content:JSON.stringify({input_tokens:42100,output_tokens:6350,cost_usd:.21})},{sessionId:"sess-001-prev",eventType:"text",timestamp:"2026-02-26T14:30:02Z",content:"Found 3 files using session-based auth. Now let me read the login route and the protected route to understand the full flow before making changes."},{sessionId:"sess-001-prev",eventType:"tool_use",timestamp:"2026-02-26T14:30:03Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/routes/login.ts"}}),raw:JSON.stringify({id:"tu-prev-003",type:"tool_use"})},{sessionId:"sess-001-prev",eventType:"tool_result",timestamp:"2026-02-26T14:30:04Z",content:`import { Router } from "express";
75
- import bcrypt from "bcrypt";
76
- import { db } from "../db.js";
77
-
78
- const router = Router();
79
-
80
- router.post("/login", async (req, res) => {
81
- const { email, password } = req.body;
82
- const user = await db.users.findByEmail(email);
83
- if (!user || !await bcrypt.compare(password, user.passwordHash)) {
84
- return res.status(401).json({ error: "Invalid credentials" });
85
- }
86
- req.session.userId = user.id;
87
- req.session.role = user.role;
88
- res.json({ ok: true });
89
- });
90
-
91
- export default router;`,raw:JSON.stringify({tool_use_id:"tu-prev-003"})},{sessionId:"sess-001-prev",eventType:"error",timestamp:"2026-02-26T15:12:00Z",content:"Context window exceeded before completing implementation"},{sessionId:"sess-001-prev",eventType:"status",timestamp:"2026-02-26T15:12:01Z",content:"interrupted"},{sessionId:"sess-001",eventType:"status",timestamp:"2026-02-27T08:15:01Z",content:"running"},{sessionId:"sess-001",eventType:"system",timestamp:"2026-02-27T08:15:02Z",content:`You are a senior backend engineer. Focus on security best practices and thorough testing.
92
- Project: acme/alpha — Node.js + Express REST API
93
- Task: Implement auth middleware using JWT tokens
94
-
95
- Note: A previous session attempted this task but was interrupted. Pick up where it left off.`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:04Z",content:"I'll pick up the JWT auth migration. The previous session identified 3 files that need updating. Let me verify the current state and start implementing."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:04.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Install jsonwebtoken package",activeForm:"Installing jsonwebtoken",status:"pending"},{content:"Rewrite auth middleware for JWT",activeForm:"Rewriting auth middleware",status:"pending"},{content:"Update login route to issue tokens",activeForm:"Updating login route",status:"pending"},{content:"Update protected routes",activeForm:"Updating protected routes",status:"pending"},{content:"Fix and update tests",activeForm:"Fixing tests",status:"pending"},{content:"Run full test suite",activeForm:"Running tests",status:"pending"}]}})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:05Z",content:JSON.stringify({tool:"Grep",args:{pattern:"express-session|req\\.session",path:"src/",output_mode:"files_with_matches"}}),raw:JSON.stringify({id:"tu-001-01",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:06Z",content:`src/middleware/auth.ts
96
- src/routes/login.ts
97
- src/routes/protected.ts`,raw:JSON.stringify({tool_use_id:"tu-001-01"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:08Z",content:"Good, same 3 files. Let me install the JWT library first, then rewrite the middleware."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:09Z",content:JSON.stringify({tool:"Bash",args:{command:"npm install jsonwebtoken && npm install -D @types/jsonwebtoken"}}),raw:JSON.stringify({id:"tu-001-02",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:11Z",content:`added 12 packages in 3.2s
98
-
99
- added 1 package in 0.8s`,raw:JSON.stringify({tool_use_id:"tu-001-02"})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:11.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Install jsonwebtoken package",activeForm:"Installing jsonwebtoken",status:"completed"},{content:"Rewrite auth middleware for JWT",activeForm:"Rewriting auth middleware",status:"in_progress"},{content:"Update login route to issue tokens",activeForm:"Updating login route",status:"pending"},{content:"Update protected routes",activeForm:"Updating protected routes",status:"pending"},{content:"Fix and update tests",activeForm:"Fixing tests",status:"pending"},{content:"Run full test suite",activeForm:"Running tests",status:"pending"}]}})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:12Z",content:"Now I'll rewrite the auth middleware to use JWT verification instead of session checks."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:13Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/auth.ts",content:`import jwt from "jsonwebtoken";
100
- import type { Request, Response, NextFunction } from "express";
101
-
102
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
103
-
104
- export interface JwtPayload {
105
- userId: string;
106
- role: string;
107
- iat: number;
108
- exp: number;
109
- }
110
-
111
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
112
- const header = req.headers.authorization;
113
- if (!header?.startsWith("Bearer ")) {
114
- res.status(401).json({ error: "Missing or malformed token" });
115
- return;
116
- }
117
- try {
118
- const decoded = jwt.verify(header.slice(7), JWT_SECRET) as JwtPayload;
119
- req.user = decoded;
120
- next();
121
- } catch (err) {
122
- if (err instanceof jwt.TokenExpiredError) {
123
- res.status(401).json({ error: "Token expired" });
124
- } else {
125
- res.status(403).json({ error: "Invalid token" });
126
- }
127
- }
128
- }
129
- `}}),raw:JSON.stringify({id:"tu-001-03",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:14Z",content:"File written: src/middleware/auth.ts (32 lines)",raw:JSON.stringify({tool_use_id:"tu-001-03"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:16Z",content:`Now I need to update the login route to issue JWT tokens instead of setting session data.
130
-
131
- The new login flow will:
132
- 1. Validate credentials (unchanged)
133
- 2. Generate a JWT with \`userId\` and \`role\` claims
134
- 3. Return the token in the response body
135
- 4. Include a refresh token for long-lived sessions`},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:17Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/routes/login.ts",content:`import { Router } from "express";
136
- import bcrypt from "bcrypt";
137
- import jwt from "jsonwebtoken";
138
- import crypto from "node:crypto";
139
- import { db } from "../db.js";
140
-
141
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
142
- const ACCESS_TOKEN_EXPIRY = "24h";
143
- const REFRESH_TOKEN_BYTES = 48;
144
-
145
- const router = Router();
146
-
147
- router.post("/login", async (req, res) => {
148
- const { email, password } = req.body;
149
- const user = await db.users.findByEmail(email);
150
- if (!user || !(await bcrypt.compare(password, user.passwordHash))) {
151
- return res.status(401).json({ error: "Invalid credentials" });
152
- }
153
-
154
- const accessToken = jwt.sign(
155
- { userId: user.id, role: user.role },
156
- JWT_SECRET,
157
- { expiresIn: ACCESS_TOKEN_EXPIRY },
158
- );
159
-
160
- const refreshToken = crypto.randomBytes(REFRESH_TOKEN_BYTES).toString("hex");
161
- await db.refreshTokens.create({ userId: user.id, token: refreshToken });
162
-
163
- res.json({ accessToken, refreshToken, expiresIn: ACCESS_TOKEN_EXPIRY });
164
- });
165
-
166
- export default router;
167
- `}}),raw:JSON.stringify({id:"tu-001-04",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:18Z",content:"File written: src/routes/login.ts (33 lines)",raw:JSON.stringify({tool_use_id:"tu-001-04"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:20Z",content:"Let me update the protected route to use the new `req.user` shape from the JWT payload."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:21Z",content:JSON.stringify({tool:"Edit",args:{file_path:"src/routes/protected.ts",old_string:"const userId = req.session.userId;",new_string:"const { userId } = req.user as JwtPayload;"}}),raw:JSON.stringify({id:"tu-001-05",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:22Z",content:"Updated src/routes/protected.ts",raw:JSON.stringify({tool_use_id:"tu-001-05"})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:24Z",content:"Now let me run the existing tests to make sure nothing is broken, then I'll add new JWT-specific tests."},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:25Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test"}}),raw:JSON.stringify({id:"tu-001-06",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:30Z",content:` PASS src/routes/__tests__/login.test.ts
168
- PASS src/routes/__tests__/protected.test.ts
169
- FAIL src/middleware/__tests__/auth.test.ts
170
- x should reject missing session (12ms)
171
- x should allow valid session (8ms)
172
-
173
- 2 failed, 12 passed, 14 total
174
-
175
- Test Suites: 1 failed, 2 passed, 3 total`,raw:JSON.stringify({tool_use_id:"tu-001-06",is_error:!0})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:32Z",content:`Two tests failed because they still test the old session-based auth. I need to rewrite those tests for JWT.
176
-
177
- Let me update the auth middleware tests:`},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:33Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/__tests__/auth.test.ts",content:`import { describe, it, expect } from "vitest";
178
- import jwt from "jsonwebtoken";
179
- import { verifyToken } from "../auth.js";
180
- import { createMockReqRes } from "../../test-utils/mock-express.js";
181
-
182
- const SECRET = "test-secret";
183
- process.env.JWT_SECRET = SECRET;
184
-
185
- describe("verifyToken", () => {
186
- it("should reject requests without Authorization header", () => {
187
- const { req, res, next } = createMockReqRes();
188
- verifyToken(req, res, next);
189
- expect(res.status).toHaveBeenCalledWith(401);
190
- });
191
-
192
- it("should reject expired tokens", () => {
193
- const token = jwt.sign({ userId: "u1", role: "user" }, SECRET, { expiresIn: "-1h" });
194
- const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
195
- verifyToken(req, res, next);
196
- expect(res.status).toHaveBeenCalledWith(401);
197
- });
198
-
199
- it("should accept valid tokens and attach user to request", () => {
200
- const token = jwt.sign({ userId: "u1", role: "admin" }, SECRET, { expiresIn: "1h" });
201
- const { req, res, next } = createMockReqRes({ authorization: \`Bearer \${token}\` });
202
- verifyToken(req, res, next);
203
- expect(next).toHaveBeenCalled();
204
- expect(req.user).toMatchObject({ userId: "u1", role: "admin" });
205
- });
206
- });
207
- `}}),raw:JSON.stringify({id:"tu-001-07",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:34Z",content:"File written: src/middleware/__tests__/auth.test.ts (32 lines)",raw:JSON.stringify({tool_use_id:"tu-001-07"})},{sessionId:"sess-001",eventType:"tool_use",timestamp:"2026-02-27T08:15:35Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test"}}),raw:JSON.stringify({id:"tu-001-08",type:"tool_use"})},{sessionId:"sess-001",eventType:"tool_result",timestamp:"2026-02-27T08:15:40Z",content:` PASS src/routes/__tests__/login.test.ts
208
- PASS src/routes/__tests__/protected.test.ts
209
- PASS src/middleware/__tests__/auth.test.ts
210
-
211
- Test Suites: 3 passed, 3 total
212
- Tests: 14 passed, 14 total`,raw:JSON.stringify({tool_use_id:"tu-001-08"})},{sessionId:"sess-001",eventType:"usage",timestamp:"2026-02-27T08:15:41Z",content:JSON.stringify({input_tokens:42600,output_tokens:8100,cost_usd:.22})},{sessionId:"sess-001",eventType:"text",timestamp:"2026-02-27T08:15:42Z",content:`All 14 tests pass. Here's a summary of the changes:
213
-
214
- ### Changes made
215
-
216
- | File | Action |
217
- |------|--------|
218
- | \`src/middleware/auth.ts\` | Rewrote to verify JWT Bearer tokens |
219
- | \`src/routes/login.ts\` | Now issues JWT access + refresh tokens |
220
- | \`src/routes/protected.ts\` | Updated to read \`req.user\` from JWT payload |
221
- | \`src/middleware/__tests__/auth.test.ts\` | Updated tests for JWT verification |
222
-
223
- ### Key decisions
224
- - **Access token expiry**: 24 hours (configurable via \`JWT_SECRET\` env var)
225
- - **Refresh tokens**: 48-byte random hex, stored in DB
226
- - **Error handling**: Distinguishes expired tokens (401) from invalid tokens (403)`},{sessionId:"sess-002",eventType:"status",timestamp:"2026-02-27T07:30:01Z",content:"running"},{sessionId:"sess-002",eventType:"system",timestamp:"2026-02-27T07:30:02Z",content:`You are a QA engineer. Write comprehensive tests covering happy paths, edge cases, error scenarios, and security.
227
- Project: acme/alpha — Node.js + Express REST API
228
- Task: Write unit tests for the user registration endpoint`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:30:04Z",content:"I'll write thorough tests for `POST /api/register`. Let me first read the registration endpoint to understand its behavior."},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:30:05Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/routes/register.ts"}}),raw:JSON.stringify({id:"tu-002-01",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:30:06Z",content:`import { Router } from "express";
229
- import bcrypt from "bcrypt";
230
- import { db } from "../db.js";
231
- import { validateEmail, validatePassword } from "../utils/validators.js";
232
-
233
- const SALT_ROUNDS = 12;
234
- const router = Router();
235
-
236
- router.post("/register", async (req, res) => {
237
- const { name, email, password } = req.body;
238
-
239
- if (!name || !email || !password) {
240
- return res.status(400).json({ error: "Missing required fields" });
241
- }
242
- if (!validateEmail(email)) {
243
- return res.status(400).json({ error: "Invalid email format" });
244
- }
245
- if (!validatePassword(password)) {
246
- return res.status(400).json({ error: "Password too weak" });
247
- }
248
-
249
- const existing = await db.users.findByEmail(email);
250
- if (existing) {
251
- return res.status(409).json({ error: "Email already registered" });
252
- }
253
-
254
- const passwordHash = await bcrypt.hash(password, SALT_ROUNDS);
255
- const user = await db.users.create({ name, email, passwordHash });
256
- res.status(201).json({ id: user.id, name: user.name, email: user.email });
257
- });
258
-
259
- export default router;`,raw:JSON.stringify({tool_use_id:"tu-002-01"})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:30:10Z",content:`Good. The endpoint validates input, checks for duplicates, hashes the password, and creates the user. I'll write tests covering:
260
-
261
- 1. **Happy path** - valid registration
262
- 2. **Missing fields** - each required field missing
263
- 3. **Invalid email** - malformed email format
264
- 4. **Weak password** - password validation failure
265
- 5. **Duplicate email** - conflict with existing user
266
- 6. **SQL injection** - malicious email input
267
- 7. **XSS payload** - HTML in the name field
268
- 8. **Response shape** - correct status codes and body structure`},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:30:12Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/routes/__tests__/register.test.ts",content:"// [test content - 8 test cases as described above]"}}),raw:JSON.stringify({id:"tu-002-02",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:30:13Z",content:"File written: src/routes/__tests__/register.test.ts (142 lines)",raw:JSON.stringify({tool_use_id:"tu-002-02"})},{sessionId:"sess-002",eventType:"tool_use",timestamp:"2026-02-27T07:31:00Z",content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --testPathPattern=register"}}),raw:JSON.stringify({id:"tu-002-03",type:"tool_use"})},{sessionId:"sess-002",eventType:"tool_result",timestamp:"2026-02-27T07:31:30Z",content:` PASS src/routes/__tests__/register.test.ts
269
- POST /api/register
270
- ✓ should register a valid user (28ms)
271
- ✓ should reject missing name (4ms)
272
- ✓ should reject missing email (3ms)
273
- ✓ should reject missing password (3ms)
274
- ✓ should reject invalid email format (5ms)
275
- ✓ should reject weak password (4ms)
276
- ✓ should reject duplicate email (12ms)
277
- ✓ should sanitize HTML in name field (6ms)
278
-
279
- Tests: 8 passed, 8 total`,raw:JSON.stringify({tool_use_id:"tu-002-03"})},{sessionId:"sess-002",eventType:"usage",timestamp:"2026-02-27T07:32:00Z",content:JSON.stringify({input_tokens:31400,output_tokens:9800,cost_usd:.18})},{sessionId:"sess-002",eventType:"text",timestamp:"2026-02-27T07:32:30Z",content:"All 8 test cases pass. Created `src/routes/__tests__/register.test.ts` with comprehensive coverage for the registration endpoint including input validation, duplicate detection, and security edge cases."},{sessionId:"sess-002",eventType:"status",timestamp:"2026-02-27T07:33:00Z",content:"completed"},{sessionId:"sess-003",eventType:"status",timestamp:"2026-02-26T22:45:01Z",content:"running"},{sessionId:"sess-003",eventType:"system",timestamp:"2026-02-26T22:45:02Z",content:`You are a database engineer. Focus on safe migrations, zero-downtime deployments, and data integrity.
280
- Project: acme/alpha — Node.js + Express + PostgreSQL
281
- Task: Add audit_log table and migrate schema`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:45:05Z",content:"I need to add an `audit_log` table for tracking all write operations. Let me review the current schema first."},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:45:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"migrations/001_initial.sql"}}),raw:JSON.stringify({id:"tu-003-01",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:45:07Z",content:`CREATE TABLE users (
282
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
283
- name TEXT NOT NULL,
284
- email TEXT UNIQUE NOT NULL,
285
- password_hash TEXT NOT NULL,
286
- role TEXT DEFAULT 'user',
287
- created_at TIMESTAMPTZ DEFAULT now(),
288
- updated_at TIMESTAMPTZ DEFAULT now()
289
- );
290
-
291
- CREATE TABLE sessions (
292
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
293
- user_id UUID REFERENCES users(id),
294
- expires_at TIMESTAMPTZ NOT NULL,
295
- created_at TIMESTAMPTZ DEFAULT now()
296
- );`,raw:JSON.stringify({tool_use_id:"tu-003-01"})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:45:12Z",content:"I see the schema. I'll create a migration that:\n1. Adds a `last_login_at` column to `users`\n2. Adds an index on `sessions.expires_at` for efficient cleanup queries\n3. Creates the `audit_log` table\n\nLet me write the migration file:"},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:45:14Z",content:JSON.stringify({tool:"Write",args:{file_path:"migrations/002_audit_log.sql",content:`-- Migration: 002_audit_log
297
- -- Add audit logging and user activity tracking
298
-
299
- BEGIN;
300
-
301
- -- 1. Add last_login_at to users
302
- ALTER TABLE users ADD COLUMN last_login_at TIMESTAMPTZ;
303
-
304
- -- 2. Index for session cleanup queries
305
- CREATE INDEX CONCURRENTLY idx_sessions_expires_at ON sessions (expires_at);
306
-
307
- -- 3. Audit log table
308
- CREATE TABLE audit_log (
309
- id BIGSERIAL PRIMARY KEY,
310
- user_id UUID REFERENCES users(id),
311
- action TEXT NOT NULL,
312
- entity_type TEXT NOT NULL,
313
- entity_id TEXT NOT NULL,
314
- old_value JSONB,
315
- new_value JSONB,
316
- ip_address INET,
317
- created_at TIMESTAMPTZ DEFAULT now()
318
- );
319
-
320
- CREATE INDEX idx_audit_log_user ON audit_log (user_id);
321
- CREATE INDEX idx_audit_log_entity ON audit_log (entity_type, entity_id);
322
- CREATE INDEX idx_audit_log_created ON audit_log (created_at);
323
-
324
- COMMIT;
325
- `}}),raw:JSON.stringify({id:"tu-003-02",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:45:15Z",content:"File written: migrations/002_audit_log.sql (29 lines)",raw:JSON.stringify({tool_use_id:"tu-003-02"})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:46:00Z",content:"Now I need to implement the audit middleware that logs write operations. This will intercept POST, PUT, PATCH, and DELETE requests."},{sessionId:"sess-003",eventType:"tool_use",timestamp:"2026-02-26T22:46:02Z",content:JSON.stringify({tool:"Bash",args:{command:"npm run migrate -- --dry-run"}}),raw:JSON.stringify({id:"tu-003-03",type:"tool_use"})},{sessionId:"sess-003",eventType:"tool_result",timestamp:"2026-02-26T22:46:10Z",content:`Dry run: would apply 002_audit_log.sql
326
- - ALTER TABLE users ADD COLUMN last_login_at
327
- - CREATE INDEX CONCURRENTLY idx_sessions_expires_at
328
- - CREATE TABLE audit_log
329
- - 3 indexes on audit_log
330
-
331
- WARNING: CREATE INDEX CONCURRENTLY cannot run inside a transaction block.
332
- Please split this into a separate migration step.`,raw:JSON.stringify({tool_use_id:"tu-003-03",is_error:!0})},{sessionId:"sess-003",eventType:"text",timestamp:"2026-02-26T22:46:15Z",content:"Good catch from the dry run! `CREATE INDEX CONCURRENTLY` can't run inside a transaction. I need to split the migration into two files: one for the transactional DDL and another for the concurrent index creation."},{sessionId:"sess-003",eventType:"usage",timestamp:"2026-02-26T23:00:00Z",content:JSON.stringify({input_tokens:56300,output_tokens:14200,cost_usd:.31})},{sessionId:"sess-003",eventType:"status",timestamp:"2026-02-26T23:10:00Z",content:"interrupted"},{sessionId:"sess-004",eventType:"status",timestamp:"2026-02-27T09:00:01Z",content:"running"},{sessionId:"sess-004",eventType:"system",timestamp:"2026-02-27T09:00:02Z",content:`You are a backend engineer specializing in API infrastructure.
333
- Project: acme/data-pipeline — ETL pipelines for analytics
334
- Task: Implement rate limiting for the public API using a token-bucket algorithm`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:05Z",content:"I'll implement rate limiting using a token-bucket algorithm. Let me first survey the existing API infrastructure to find the right integration point."},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:05.5Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Survey middleware structure",activeForm:"Surveying middleware",status:"in_progress"},{content:"Implement token-bucket algorithm",activeForm:"Implementing token bucket",status:"pending"},{content:"Add rate limit middleware to app",activeForm:"Adding middleware",status:"pending"},{content:"Write tests for rate limiting",activeForm:"Writing tests",status:"pending"},{content:"Add Redis adapter for multi-instance",activeForm:"Adding Redis adapter",status:"pending"}]}})},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:06Z",content:JSON.stringify({tool:"Glob",args:{pattern:"src/middleware/**/*.ts"}}),raw:JSON.stringify({id:"tu-004-01",type:"tool_use"})},{sessionId:"sess-004",eventType:"tool_result",timestamp:"2026-02-27T09:00:07Z",content:`src/middleware/cors.ts
335
- src/middleware/error-handler.ts
336
- src/middleware/logger.ts
337
- src/middleware/request-id.ts`,raw:JSON.stringify({tool_use_id:"tu-004-01"})},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:09Z",content:JSON.stringify({tool:"TodoWrite",args:{todos:[{content:"Survey middleware structure",activeForm:"Surveying middleware",status:"completed"},{content:"Implement token-bucket algorithm",activeForm:"Implementing token bucket",status:"in_progress"},{content:"Add rate limit middleware to app",activeForm:"Adding middleware",status:"pending"},{content:"Write tests for rate limiting",activeForm:"Writing tests",status:"pending"},{content:"Add Redis adapter for multi-instance",activeForm:"Adding Redis adapter",status:"pending"}]}})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:10Z",content:`Good middleware structure already in place. I'll add a \`rate-limiter.ts\` module that:
338
-
339
- - Uses an **in-memory token bucket** per client IP
340
- - Supports configurable rate (requests/second) and burst size
341
- - Returns \`429 Too Many Requests\` with \`Retry-After\` header
342
- - Has a Redis adapter option for multi-instance deployments
343
-
344
- Let me implement it:`},{sessionId:"sess-004",eventType:"tool_use",timestamp:"2026-02-27T09:00:12Z",content:JSON.stringify({tool:"Write",args:{file_path:"src/middleware/rate-limiter.ts",content:"// Token bucket rate limiter implementation"}}),raw:JSON.stringify({id:"tu-004-02",type:"tool_use"})},{sessionId:"sess-004",eventType:"tool_result",timestamp:"2026-02-27T09:00:13Z",content:"File written: src/middleware/rate-limiter.ts (87 lines)",raw:JSON.stringify({tool_use_id:"tu-004-02"})},{sessionId:"sess-004",eventType:"text",timestamp:"2026-02-27T09:00:18Z",content:"Now I need to wire the rate limiter into the Express middleware stack. It should go after the request-ID middleware but before route handlers."},{sessionId:"sess-005",eventType:"status",timestamp:"2026-02-27T06:00:01Z",content:"running"},{sessionId:"sess-005",eventType:"system",timestamp:"2026-02-27T06:00:02Z",content:`You are a database specialist. Focus on connection management, performance, and multi-tenant isolation.
345
- Project: acme/alpha — Node.js + Express + PostgreSQL
346
- Task: Refactor database connection pooling for multi-tenant isolation`,raw:JSON.stringify({systemContext:!0})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:05Z",content:"I'll refactor the DB layer to support per-tenant connection pools. This is needed because the current single-pool design means one slow tenant can exhaust connections for everyone."},{sessionId:"sess-005",eventType:"tool_use",timestamp:"2026-02-27T06:00:06Z",content:JSON.stringify({tool:"Read",args:{file_path:"src/db/pool.ts"}}),raw:JSON.stringify({id:"tu-005-01",type:"tool_use"})},{sessionId:"sess-005",eventType:"tool_result",timestamp:"2026-02-27T06:00:07Z",content:`import pg from "pg";
347
-
348
- const pool = new pg.Pool({
349
- connectionString: process.env.DATABASE_URL,
350
- max: 20,
351
- idleTimeoutMillis: 30000,
352
- });
353
-
354
- export { pool };`,raw:JSON.stringify({tool_use_id:"tu-005-01"})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:12Z",content:`The current pool is a single shared instance with \`max: 20\`. For multi-tenant isolation, I need:
355
-
356
- 1. **A \`PoolManager\` class** that creates and caches per-tenant pools
357
- 2. **Configurable limits** per tenant (max connections, idle timeout)
358
- 3. **Health checks** with automatic pool eviction for unhealthy connections
359
- 4. **Graceful shutdown** that drains all pools`},{sessionId:"sess-005",eventType:"tool_use",timestamp:"2026-02-27T06:00:14Z",content:JSON.stringify({tool:"Grep",args:{pattern:"import.*pool|from.*pool",path:"src/",output_mode:"content"}}),raw:JSON.stringify({id:"tu-005-02",type:"tool_use"})},{sessionId:"sess-005",eventType:"tool_result",timestamp:"2026-02-27T06:00:15Z",content:`src/db/index.ts:1:import { pool } from "./pool.js";
360
- src/routes/users.ts:2:import { pool } from "../db/pool.js";
361
- src/routes/register.ts:3:import { pool } from "../db/pool.js";
362
- src/routes/admin.ts:4:import { pool } from "../db/pool.js";
363
- src/services/billing.ts:2:import { pool } from "../db/pool.js";
364
- src/services/analytics.ts:1:import { pool } from "../db/pool.js";`,raw:JSON.stringify({tool_use_id:"tu-005-02"})},{sessionId:"sess-005",eventType:"text",timestamp:"2026-02-27T06:00:20Z",content:`Six files import the pool directly. I'll need to:
365
- 1. Create a new \`PoolManager\` abstraction
366
- 2. Update all consumers to use \`getPool(tenantId)\` instead of the global pool
367
- 3. Add middleware to extract tenant ID from the request
368
-
369
- This is a significant refactor. Let me start with the PoolManager class.`},{sessionId:"sess-005",eventType:"usage",timestamp:"2026-02-27T06:30:00Z",content:JSON.stringify({input_tokens:67800,output_tokens:19300,cost_usd:.38})},{sessionId:"sess-005",eventType:"status",timestamp:"2026-02-27T06:30:01Z",content:"suspended"}],G2=[{id:"proj-alpha",name:"Workspace Alpha",description:"Core platform API and authentication services",repoUrl:"https://github.com/acme/alpha",environmentId:"env-local-01",status:"active",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",createdAt:"2026-01-15T10:00:00Z",updatedAt:"2026-01-15T10:00:00Z"},{id:"proj-beta",name:"Data Pipeline",description:"ETL pipelines for analytics and reporting",repoUrl:"https://github.com/acme/data-pipeline",environmentId:"env-docker-01",status:"active",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",createdAt:"2026-02-01T14:30:00Z",updatedAt:"2026-02-01T14:30:00Z"},{id:"proj-gamma",name:"Mobile App",description:"React Native cross-platform mobile application",repoUrl:"",environmentId:"env-local-01",status:"archived",workingDirectory:"",useWorktrees:!0,defaultPersonaId:"",createdAt:"2025-11-20T09:00:00Z",updatedAt:"2025-11-20T09:00:00Z"}],$2=[{id:"task-001",workspaceId:"proj-alpha",title:"Implement JWT authentication",description:"Replace session-based auth with JWT tokens across all protected routes",status:"working",branch:"feat/jwt-auth",latestSessionId:"sess-001",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-25T10:00:00Z",parentTaskId:"",depth:0,childTaskIds:["task-001a","task-001b","task-001c"],canDecompose:!0,defaultPersonaId:"",workpad:""},{id:"task-001a",workspaceId:"proj-alpha",title:"Design token schema",description:"Define JWT payload structure, expiry, and refresh token strategy",status:"complete",branch:"feat/jwt-auth/design-token-schema",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-25T10:10:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-001b",workspaceId:"proj-alpha",title:"Implement auth middleware",description:"Build Express middleware that verifies JWT Bearer tokens",status:"working",branch:"feat/jwt-auth/implement-auth-middleware",latestSessionId:"sess-001",dependsOn:[],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-25T10:15:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-001c",workspaceId:"proj-alpha",title:"Write auth integration tests",description:"End-to-end tests for login flow, token refresh, and protected route access",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-001b"],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-25T10:20:00Z",parentTaskId:"task-001",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-002",workspaceId:"proj-alpha",title:"Add rate limiting",description:"Implement token-bucket rate limiting for public API endpoints",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-001"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-25T10:05:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-003",workspaceId:"proj-alpha",title:"Set up OpenAPI documentation",description:"Generate Swagger docs from route decorators and serve at /api/docs",status:"paused",branch:"feat/openapi-docs",latestSessionId:"sess-002",dependsOn:[],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-24T16:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-004",workspaceId:"proj-alpha",title:"Database connection pooling",description:"Switch from single connection to a connection pool with health checks",status:"complete",branch:"feat/db-pool",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:4,createdAt:"2026-02-23T11:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-005",workspaceId:"proj-alpha",title:"Fix N+1 query in user list",description:"Use a JOIN instead of per-row lookups in GET /api/users",status:"not_started",branch:"fix/user-list-n1",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:5,createdAt:"2026-02-22T09:30:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-006",workspaceId:"proj-beta",title:"Add Parquet export support",description:"Allow pipeline outputs to be written as Parquet files for Spark consumption",status:"working",branch:"feat/parquet-export",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:00:00Z",parentTaskId:"",depth:0,childTaskIds:["task-006a","task-006b","task-006c","task-006d"],canDecompose:!0,defaultPersonaId:"",workpad:""},{id:"task-006a",workspaceId:"proj-beta",title:"Define Parquet schema mapping",description:"Map internal column types to Arrow/Parquet type system",status:"complete",branch:"feat/parquet-export/define-parquet-schema-mapping",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:05:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-006b",workspaceId:"proj-beta",title:"Implement row-group writer",description:"Write buffered row groups with configurable batch size",status:"complete",branch:"feat/parquet-export/implement-row-group-writer",latestSessionId:"",dependsOn:["task-006a"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:10:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-006c",workspaceId:"proj-beta",title:"Add compression options",description:"Support Snappy, ZSTD, and GZIP compression for Parquet output",status:"working",branch:"feat/parquet-export/add-compression-options",latestSessionId:"sess-004",dependsOn:["task-006b"],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-26T08:15:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-006d",workspaceId:"proj-beta",title:"Write Parquet integration tests",description:"Round-trip tests: write Parquet, read back with pyarrow, verify data integrity",status:"not_started",branch:"",latestSessionId:"",dependsOn:["task-006c"],reviewNotes:void 0,sortOrder:4,createdAt:"2026-02-26T08:20:00Z",parentTaskId:"task-006",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-007",workspaceId:"proj-beta",title:"Implement incremental loads",description:"Track watermarks so pipelines only process new/changed rows",status:"working",branch:"feat/incremental",latestSessionId:"sess-004",dependsOn:[],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:30:00Z",parentTaskId:"",depth:0,childTaskIds:["task-007a","task-007b"],canDecompose:!0,defaultPersonaId:"",workpad:""},{id:"task-007a",workspaceId:"proj-beta",title:"Design watermark storage",description:"Define schema for per-pipeline high-watermark tracking",status:"complete",branch:"feat/incremental/design-watermark-storage",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:1,createdAt:"2026-02-26T08:35:00Z",parentTaskId:"task-007",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-007b",workspaceId:"proj-beta",title:"Implement change detection query",description:"Generate WHERE clauses from watermarks to fetch only changed rows",status:"failed",branch:"feat/incremental/implement-change-detection-query",latestSessionId:"",dependsOn:["task-007a"],reviewNotes:void 0,sortOrder:2,createdAt:"2026-02-26T08:40:00Z",parentTaskId:"task-007",depth:1,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""},{id:"task-008",workspaceId:"proj-beta",title:"Add pipeline monitoring dashboard",description:"Real-time metrics for pipeline throughput, latency, and error rates",status:"paused",branch:"feat/monitoring",latestSessionId:"",dependsOn:[],reviewNotes:void 0,sortOrder:3,createdAt:"2026-02-26T09:00:00Z",parentTaskId:"",depth:0,childTaskIds:[],canDecompose:!1,defaultPersonaId:"",workpad:""}],y0=[{id:"find-001",workspaceId:"proj-alpha",taskId:"task-001",sessionId:"sess-001",category:"architecture",title:"Auth middleware is tightly coupled to Express",content:"The current auth middleware directly references Express Request/Response types. Consider extracting a framework-agnostic token verification layer so we can reuse it in the WebSocket auth path.",tags:["auth","decoupling","middleware"],createdAt:"2026-02-27T08:16:00Z"},{id:"find-002",workspaceId:"proj-alpha",taskId:"task-003",sessionId:"sess-002",category:"api",title:"Missing pagination on GET /api/users",content:"The users endpoint returns all rows without limit/offset. For datasets over 10k rows this will cause timeouts. Recommend cursor-based pagination with a default page size of 50.",tags:["api","pagination","performance"],createdAt:"2026-02-27T07:31:00Z"},{id:"find-003",workspaceId:"proj-alpha",taskId:"task-005",sessionId:"sess-003",category:"bug",title:"Race condition in session cleanup",content:"When two requests hit /api/logout concurrently, the second call throws a 500 because the session row has already been deleted. Needs an idempotent DELETE or a conditional check.",tags:["bug","concurrency","sessions"],createdAt:"2026-02-26T22:50:00Z"},{id:"find-004",workspaceId:"proj-alpha",taskId:"task-004",sessionId:"",category:"decision",title:"Chose pg-pool over knex connection pool",content:"pg-pool gives us direct control over idle timeout, max connections, and health check queries. Knex wraps pg-pool anyway and adds overhead we don't need since we write raw SQL.",tags:["database","decision","postgres"],createdAt:"2026-02-23T11:30:00Z"},{id:"find-005",workspaceId:"proj-alpha",taskId:"",sessionId:"",category:"dependency",title:"jsonwebtoken has 3 high-severity CVEs",content:"The jsonwebtoken package (v8.x) has known vulnerabilities. Consider migrating to jose which is maintained, supports ESM, and covers the same JWS/JWE surface area with zero dependencies.",tags:["security","dependency","jwt"],createdAt:"2026-02-27T08:20:00Z"},{id:"find-006",workspaceId:"proj-alpha",taskId:"task-001",sessionId:"sess-001",category:"pattern",title:"Consistent error response shape",content:"All error responses should follow the shape `{ error: string, code: string, details?: unknown }`. Currently some routes return `{ message: string }` and others return `{ error: string }`.",tags:["api","consistency","error-handling"],createdAt:"2026-02-27T08:17:00Z"},{id:"find-007",workspaceId:"proj-beta",taskId:"task-007",sessionId:"sess-004",category:"architecture",title:"Watermark storage should be pluggable",content:"The incremental load watermarks are currently stored in a local SQLite file. For production multi-worker scenarios, this needs to be backed by a shared store (Redis or Postgres).",tags:["architecture","pipeline","scalability"],createdAt:"2026-02-27T09:05:00Z"}],Z2=[{name:"anthropic",tokenType:"env_var",envVar:"ANTHROPIC_API_KEY",filePath:"",expiresAt:""},{name:"github",tokenType:"env_var",envVar:"GITHUB_TOKEN",filePath:"",expiresAt:"2026-12-31T23:59:59Z"},{name:"gcp-service-account",tokenType:"file",envVar:"",filePath:"/home/user/.config/gcloud/credentials.json",expiresAt:""}],F2=[{id:"persona-arch",name:"Software Architect",description:"Designs system architecture, defines interfaces, and decomposes large features into implementable tasks.",systemPrompt:"You are a senior software architect. Focus on clean interfaces, separation of concerns, and scalable patterns. When decomposing work, create concrete subtasks with clear acceptance criteria.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit"]}),runtime:"claude-code",model:"claude-sonnet-4-5-20250929",maxTurns:50,mcpServers:"[]",createdAt:"2026-02-20T10:00:00Z",updatedAt:"2026-02-20T10:00:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-fe",name:"Frontend Engineer",description:"React specialist — builds UI components, writes CSS, implements routing, and creates Playwright tests.",systemPrompt:"You are a frontend engineer specializing in React, TypeScript, and modern CSS. Follow component composition patterns, use semantic HTML, and write accessible markup.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit","Bash"]}),runtime:"claude-code",model:"claude-sonnet-4-5-20250929",maxTurns:100,mcpServers:"[]",createdAt:"2026-02-20T10:05:00Z",updatedAt:"2026-02-20T10:05:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-reviewer",name:"Code Reviewer",description:"Reviews diffs for correctness, security, and style. Posts findings for issues discovered.",systemPrompt:"You are a meticulous code reviewer. Check for security vulnerabilities, performance issues, and style consistency. Post findings for anything noteworthy.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob"]}),runtime:"claude-code",model:"claude-sonnet-4-5-20250929",maxTurns:30,mcpServers:"[]",createdAt:"2026-02-20T10:10:00Z",updatedAt:"2026-02-20T10:10:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-tester",name:"QA Engineer",description:"Writes comprehensive test suites — unit tests, integration tests, and E2E Playwright specs.",systemPrompt:"You are a QA engineer focused on test coverage. Write tests that cover happy paths, edge cases, error scenarios, and accessibility. Use Playwright for E2E tests.",toolConfig:JSON.stringify({allowedTools:["Read","Grep","Glob","Write","Edit","Bash"]}),runtime:"claude-code",model:"claude-sonnet-4-5-20250929",maxTurns:80,mcpServers:"[]",createdAt:"2026-02-20T10:15:00Z",updatedAt:"2026-02-20T10:15:00Z",type:"agent",script:"",allowedMcpTools:[]},{id:"persona-lint",name:"Lint & Format",description:"Scripted persona — runs ESLint and Prettier on changed files, auto-fixes violations, and posts a findings summary.",systemPrompt:"",toolConfig:"{}",runtime:"genaiscript",model:"",maxTurns:1,mcpServers:"[]",createdAt:"2026-02-21T09:00:00Z",updatedAt:"2026-02-21T09:00:00Z",type:"script",script:`const files = env.files.filter(f => /\\.(ts|tsx|js)$/.test(f.filename));
370
- for (const f of files) {
371
- const eslintResult = await host.exec("npx", ["eslint", "--fix", f.filename]);
372
- if (eslintResult.exitCode !== 0) {
373
- env.findings.push({ category: "lint", title: \`Lint issues in \${f.filename}\`, content: eslintResult.stderr });
374
- }
375
- const prettierResult = await host.exec("npx", ["prettier", "--write", f.filename]);
376
- if (prettierResult.exitCode !== 0) {
377
- env.findings.push({ category: "format", title: \`Prettier issues in \${f.filename}\`, content: prettierResult.stderr });
378
- }
379
- }
380
- env.findings.push({ category: "summary", title: "Lint & format pass complete", content: \`Ran ESLint and Prettier on \${files.length} files\` });`,allowedMcpTools:[]}],K2={"task-001b":[{id:"sess-001-prev",environmentId:"env-local-01",runtime:"claude-code",status:"stopped",endReason:"interrupted",prompt:"Implement auth middleware",startedAt:"2026-02-26T14:00:00Z"},{id:"sess-001",environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:"Implement auth middleware",startedAt:"2026-02-27T08:15:00Z"}],"task-006c":[{id:"sess-004",environmentId:"env-docker-01",runtime:"claude-code",status:"running",prompt:"Add compression options",startedAt:"2026-02-27T09:00:00Z"}]};function Ee(n){return new Date(Date.now()+n).toISOString()}const b0=[{label:"API Refactor",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ee(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ee(600),content:"I'll start by finding all API route files that need refactoring."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ee(1200),content:JSON.stringify({tool:"Glob",args:{pattern:"src/routes/**/*.ts"}}),raw:JSON.stringify({id:"stream-a-01",type:"tool_use"})}},{delayMs:1600,event:{eventType:"tool_result",timestamp:Ee(1600),content:`src/routes/users.ts
381
- src/routes/auth.ts
382
- src/routes/billing.ts
383
- src/routes/admin.ts
384
- src/routes/health.ts`,raw:JSON.stringify({tool_use_id:"stream-a-01"})}},{delayMs:2200,event:{eventType:"text",timestamp:Ee(2200),content:`Found 5 route files. Let me refactor users.ts to use Express Router with a middleware chain.
385
-
386
- \`\`\`typescript
387
- const router = Router();
388
- router.use(authenticate);
389
- router.use(validateBody);
390
-
391
- router.get("/", listUsers);
392
- router.post("/", createUser);
393
- router.get("/:id", getUser);
394
- router.put("/:id", updateUser);
395
- router.delete("/:id", deleteUser);
396
- \`\`\``}},{delayMs:3200,event:{eventType:"tool_use",timestamp:Ee(3200),content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --testPathPattern=routes"}}),raw:JSON.stringify({id:"stream-a-02",type:"tool_use"})}},{delayMs:4e3,event:{eventType:"tool_result",timestamp:Ee(4e3),content:` PASS src/routes/__tests__/users.test.ts
397
- PASS src/routes/__tests__/auth.test.ts
398
- PASS src/routes/__tests__/billing.test.ts
399
-
400
- Test Suites: 3 passed, 3 total
401
- Tests: 22 passed, 22 total`,raw:JSON.stringify({tool_use_id:"stream-a-02"})}},{delayMs:4500,event:{eventType:"usage",timestamp:Ee(4500),content:JSON.stringify({input_tokens:28400,output_tokens:7200,cost_usd:.15})}},{delayMs:5e3,event:{eventType:"text",timestamp:Ee(5e3),content:"All 22 tests pass. The route refactoring is complete."}},{delayMs:5500,event:{eventType:"status",timestamp:Ee(5500),content:"completed"}}]},{label:"Database Migration",pauseForInput:!0,pauseAfterStep:4,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ee(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ee(600),content:"Scanning the current database schema to plan the migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ee(1200),content:JSON.stringify({tool:"Read",args:{file_path:"migrations/001_initial.sql"}}),raw:JSON.stringify({id:"stream-b-01",type:"tool_use"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ee(1800),content:`CREATE TABLE users (
402
- id UUID PRIMARY KEY,
403
- name TEXT NOT NULL,
404
- email TEXT UNIQUE NOT NULL,
405
- created_at TIMESTAMPTZ DEFAULT now()
406
- );
407
-
408
- CREATE TABLE sessions (
409
- id UUID PRIMARY KEY,
410
- user_id UUID REFERENCES users(id),
411
- expires_at TIMESTAMPTZ NOT NULL
412
- );`,raw:JSON.stringify({tool_use_id:"stream-b-01"})}},{delayMs:2600,event:{eventType:"text",timestamp:Ee(2600),content:`I found the tables to modify:
413
- - **users**: add column \`last_login_at\`
414
- - **sessions**: add index on \`expires_at\`
415
- - **audit_log**: new table
416
-
417
- This migration will add a NOT NULL column to the \`users\` table. The table has **50,000+ rows** which may lock the table briefly.
418
-
419
- Please confirm to proceed.`}}],resumeSteps:[{delayMs:500,event:{eventType:"text",timestamp:Ee(0),content:"Proceeding with migration."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ee(700),content:JSON.stringify({tool:"Bash",args:{command:"npm run migrate"}}),raw:JSON.stringify({id:"stream-b-02",type:"tool_use"})}},{delayMs:2200,event:{eventType:"tool_result",timestamp:Ee(1700),content:`Applying 002_add_last_login.sql... done
420
- Applying 003_sessions_index.sql... done
421
- Applying 004_audit_log.sql... done
422
-
423
- 3 migrations applied successfully.`,raw:JSON.stringify({tool_use_id:"stream-b-02"})}},{delayMs:2800,event:{eventType:"text",timestamp:Ee(2300),content:"All 3 migrations applied successfully. The `audit_log` table is ready."}},{delayMs:3200,event:{eventType:"status",timestamp:Ee(2700),content:"completed"}}]},{label:"Test Writer",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ee(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ee(600),content:"I'll generate tests for `src/services/billing.ts`. Let me read the implementation first."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ee(1200),content:JSON.stringify({tool:"Read",args:{file_path:"src/services/billing.ts"}}),raw:JSON.stringify({id:"stream-c-01",type:"tool_use"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ee(1800),content:`import { StripeClient } from "./stripe-client.js";
424
- import type { Invoice, LineItem } from "../types/billing.js";
425
-
426
- export class BillingService {
427
- constructor(private stripe: StripeClient) {}
428
-
429
- async calculateMonthlyTotal(userId: string): Promise<number> {
430
- const invoices = await this.stripe.listInvoices(userId);
431
- return invoices.reduce((sum, inv) => sum + inv.total, 0);
432
- }
433
- }`,raw:JSON.stringify({tool_use_id:"stream-c-01"})}},{delayMs:2400,event:{eventType:"text",timestamp:Ee(2400),content:"The billing service imports from `./stripe-client.js`. Let me check if that module exists."}},{delayMs:2800,event:{eventType:"tool_use",timestamp:Ee(2800),content:JSON.stringify({tool:"Read",args:{file_path:"src/services/stripe-client.ts"}}),raw:JSON.stringify({id:"stream-c-02",type:"tool_use"})}},{delayMs:3200,event:{eventType:"tool_result",timestamp:Ee(3200),content:"Error: ENOENT: no such file or directory, open 'src/services/stripe-client.ts'",raw:JSON.stringify({tool_use_id:"stream-c-02",is_error:!0})}},{delayMs:3600,event:{eventType:"error",timestamp:Ee(3600),content:"Cannot resolve import 'src/services/stripe-client.ts' — module not found. The billing service depends on a Stripe client that doesn't exist in this environment."}},{delayMs:4e3,event:{eventType:"status",timestamp:Ee(4e3),content:"failed"}}]},{label:"Fix Auth Bug",pauseForInput:!1,steps:[{delayMs:0,event:{eventType:"status",timestamp:Ee(0),content:"running"}},{delayMs:600,event:{eventType:"text",timestamp:Ee(600),content:"Let me investigate the authentication bug..."}},{delayMs:1200,event:{eventType:"tool_use",timestamp:Ee(1200),content:JSON.stringify({tool:"Read",args:{file_path:"/src/middleware/auth.ts"}}),raw:JSON.stringify({id:"tool-mock-001"})}},{delayMs:1800,event:{eventType:"tool_result",timestamp:Ee(1800),content:`import jwt from "jsonwebtoken";
434
- import type { Request, Response, NextFunction } from "express";
435
-
436
- const JWT_SECRET = process.env.JWT_SECRET || "change-me";
437
-
438
- export function verifyToken(req: Request, res: Response, next: NextFunction): void {
439
- const header = req.headers.authorization;
440
- if (!header?.startsWith("Bearer ")) {
441
- res.status(401).json({ error: "Missing token" });
442
- return;
443
- }
444
- try {
445
- const decoded = jwt.verify(header.slice(7), JWT_SECRET);
446
- if (decoded.exp > Date.now() / 1000) {
447
- res.status(403).json({ error: "Token expired" });
448
- return;
449
- }
450
- req.user = decoded;
451
- next();
452
- } catch {
453
- res.status(403).json({ error: "Invalid token" });
454
- }
455
- }`,raw:JSON.stringify({tool_use_id:"tool-mock-001",is_error:!1})}},{delayMs:2600,event:{eventType:"text",timestamp:Ee(2600),content:"Found the issue — the token expiry check on line 14 is using `>` instead of `<`. A token is expired when `exp < now`, but the code checks `exp > now` which means it rejects *valid* tokens and accepts *expired* ones. Let me fix it."}},{delayMs:3400,event:{eventType:"tool_use",timestamp:Ee(3400),content:JSON.stringify({tool:"Edit",args:{file_path:"/src/middleware/auth.ts",old_string:" if (decoded.exp > Date.now() / 1000) {",new_string:" if (decoded.exp < Date.now() / 1000) {"}}),raw:JSON.stringify({id:"tool-mock-002"})}},{delayMs:4e3,event:{eventType:"tool_result",timestamp:Ee(4e3),content:"File updated successfully",raw:JSON.stringify({tool_use_id:"tool-mock-002",is_error:!1})}},{delayMs:4600,event:{eventType:"tool_use",timestamp:Ee(4600),content:JSON.stringify({tool:"Bash",args:{command:"npm test -- --grep auth"}}),raw:JSON.stringify({id:"tool-mock-003"})}},{delayMs:5800,event:{eventType:"tool_result",timestamp:Ee(5800),content:`[exit 0] > jest --grep auth
456
-
457
- PASS src/auth.test.ts
458
- ✓ validates JWT token (12ms)
459
- ✓ rejects expired token (3ms)
460
- ✓ handles missing header (1ms)
461
-
462
- Tests: 3 passed, 3 total
463
- Time: 1.234s`,raw:JSON.stringify({tool_use_id:"tool-mock-003",is_error:!1})}},{delayMs:6400,event:{eventType:"tool_use",timestamp:Ee(6400),content:JSON.stringify({tool:"Grep",args:{pattern:"decoded\\.exp",path:"src/"}}),raw:JSON.stringify({id:"tool-mock-004"})}},{delayMs:7e3,event:{eventType:"tool_result",timestamp:Ee(7e3),content:`src/middleware/auth.ts:14: if (decoded.exp < Date.now() / 1000) {
464
- src/utils/token-refresh.ts:28: const remaining = decoded.exp - Date.now() / 1000;`,raw:JSON.stringify({tool_use_id:"tool-mock-004",is_error:!1})}},{delayMs:7800,event:{eventType:"text",timestamp:Ee(7800),content:"Fixed. The token expiry comparison was inverted — `decoded.exp > Date.now()` should have been `<` (a token is expired when its `exp` is in the past). The other occurrence in `token-refresh.ts` uses subtraction (not comparison), so it was already correct. All 3 auth tests pass."}},{delayMs:8400,event:{eventType:"usage",timestamp:Ee(8400),content:JSON.stringify({input_tokens:42600,output_tokens:1850,cost_usd:.12})}},{delayMs:8800,event:{eventType:"status",timestamp:Ee(8800),content:"completed"}}]}],_0=400;function Y2({children:n}){const[s,i]=y.useState(V2),[o,c]=y.useState(H2),[u,d]=y.useState(q2),[m,h]=y.useState(void 0),[g,v]=y.useState(G2),[b,_]=y.useState($2),[S,T]=y.useState(y0),[N,j]=y.useState(Z2),[w,E]=y.useState({claude:"off",github:"off",copilot:"off",codex:"off",goose:"off"}),[A,O]=y.useState(F2),[C]=y.useState(K2),[M,G]=y.useState(""),[U,V]=y.useState(ns),[F,ee]=y.useState(ca),[ae,be]=y.useState(void 0),[K,re]=y.useState(void 0),[I,$]=y.useState(""),Q=y.useRef(void 0),de=y.useRef(0),me=y.useRef(0),ze=y.useRef(new Set),je=y.useRef(new Map),Ne=y.useRef(b);Ne.current=b;const Ae=y.useRef(new Map),ce=y.useRef(new Map),fe=y.useCallback(H=>(de.current+=1,`mock-${H}-${String(de.current).padStart(3,"0")}`),[]),pe=y.useCallback(()=>{const H=b0[me.current%b0.length];return me.current+=1,H},[]),Re=y.useCallback((H,ne,oe)=>{const le=setTimeout(()=>{var ue;ze.current.delete(le),oe&&((ue=je.current.get(oe))==null||ue.delete(le)),H()},ne);ze.current.add(le),oe&&(je.current.has(oe)||je.current.set(oe,new Set),je.current.get(oe).add(le))},[]),Lt=y.useCallback(H=>{const ne=je.current.get(H);ne&&(ne.forEach(oe=>{clearTimeout(oe),ze.current.delete(oe)}),je.current.delete(H))},[]),te=y.useCallback((H,ne,oe)=>{c(le=>le.map(ue=>ue.id===H?{...ue,status:ne,...oe!==void 0?{endReason:oe}:{}}:ue))},[]),W=y.useCallback(H=>{d(ne=>[...ne,H])},[]),Te=y.useCallback((H,ne,oe)=>{ne.forEach((le,ue)=>{Re(()=>{const He={sessionId:H,...le.event,timestamp:new Date().toISOString()};if(W(He),le.event.eventType==="status"){const ye=Rb(le.event.content),Oe=Mb(le.event.content);te(H,ye,Oe)}ue===ne.length-1&&oe&&oe()},le.delayMs,H)})},[Re,W,te]),un=y.useCallback((H,ne,oe,le)=>{console.log("[MockGrackle] spawn",{environmentId:H,prompt:ne,runtime:le});const ue=fe("sess"),He={id:ue,environmentId:H,runtime:le||"claude-code",status:"running",prompt:ne,startedAt:new Date().toISOString()};c(Oe=>[...Oe,He]),h(ue);const ye=pe();if(console.log(`[MockGrackle] Playing scenario: ${ye.label}`),ye.pauseForInput){const Oe=ye.pauseAfterStep??ye.steps.length-1,Ke=ye.steps.slice(0,Oe+1),nt=Ke.length>0?Ke[Ke.length-1].delayMs:0;Te(ue,Ke),Re(()=>{te(ue,"idle"),W({sessionId:ue,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},nt+_0,ue),ye.resumeSteps&&Ae.current.set(ue,ye.resumeSteps)}else Te(ue,ye.steps)},[fe,pe,Te,Re,te,W]),Fe=y.useCallback(H=>{console.log("[MockGrackle] kill",H),Lt(H),Ae.current.delete(H),te(H,"stopped","killed"),W({sessionId:H,eventType:"status",timestamp:new Date().toISOString(),content:"killed"}),_(ne=>ne.map(oe=>oe.latestSessionId===H&&oe.status==="working"?{...oe,status:"not_started"}:oe))},[Lt,te,W]),Kn=y.useCallback(H=>{console.log("[MockGrackle] stopGraceful",H),Lt(H),Ae.current.delete(H),te(H,"stopped","terminated"),W({sessionId:H,eventType:"status",timestamp:new Date().toISOString(),content:"terminated"}),_(ne=>ne.map(oe=>oe.latestSessionId===H&&oe.status==="working"?{...oe,status:"not_started"}:oe))},[Lt,te,W]),Yn=y.useCallback(()=>{console.log("[MockGrackle] refresh")},[]),zn=y.useCallback(H=>{console.log("[MockGrackle] loadSessionEvents",H)},[]),Jn=y.useCallback(()=>{console.log("[MockGrackle] clearEvents"),d([])},[]),Tn=y.useCallback((H,ne,oe,le,ue,He,ye,Oe,Ke)=>{console.log("[MockGrackle] createWorkspace",{name:H,description:ne});const nt={id:fe("proj"),name:H,description:ne||"",repoUrl:oe||"",environmentId:le||"",status:"active",workingDirectory:ye||"",useWorktrees:He??!0,defaultPersonaId:ue||"",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString()};v(qe=>[...qe,nt]),Oe&&Oe()},[fe]),Bs=y.useCallback(H=>{console.log("[MockGrackle] archiveWorkspace",H),v(ne=>ne.map(oe=>oe.id===H?{...oe,status:"archived"}:oe))},[]),dn=y.useCallback(H=>{console.log("[MockGrackle] loadTasks",H)},[]),Me=y.useCallback((H,ne,oe,le,ue,He,ye,Oe,Ke)=>{console.log("[MockGrackle] createTask",{workspaceId:H,title:ne,parentTaskId:ue}),_(nt=>{const zt=nt.filter(Vn=>Vn.workspaceId===H).reduce((Vn,xa)=>Math.max(Vn,xa.sortOrder),0),Pt=ue?nt.find(Vn=>Vn.id===ue):void 0;if(ue&&!Pt)return console.warn("[MockGrackle] Parent task not found:",ue),nt;if(Pt&&!Pt.canDecompose)return console.warn("[MockGrackle] Parent task does not have decomposition rights:",ue),nt;const St=Pt?Pt.depth+1:0,ls={id:fe("task"),workspaceId:H,title:ne,description:oe||"",status:"not_started",branch:"",latestSessionId:"",dependsOn:le||[],reviewNotes:void 0,sortOrder:zt+1,createdAt:new Date().toISOString(),parentTaskId:ue||"",depth:St,childTaskIds:[],canDecompose:ye??!ue,defaultPersonaId:He||"",workpad:""};return[...nt,ls]}),Oe&&Oe()},[fe]),Rt=y.useCallback((H,ne,oe,le)=>{var nt;console.log("[MockGrackle] startTask",{taskId:H});const ue=Ne.current.find(qe=>qe.id===H),He=(ue==null?void 0:ue.title)??"",ye=fe("sess"),Oe={id:ye,environmentId:"env-local-01",runtime:"claude-code",status:"running",prompt:He||H,startedAt:new Date().toISOString()};c(qe=>[...qe,Oe]),_(qe=>qe.map(zt=>zt.id===H?{...zt,status:"working",latestSessionId:ye,branch:`mock/${H.slice(0,8)}`}:zt));const Ke=pe();if(console.log(`[MockGrackle] Playing task scenario: ${Ke.label}`),Ke.pauseForInput){const qe=Ke.pauseAfterStep??Ke.steps.length-1,zt=Ke.steps.slice(0,qe+1),Pt=zt.length>0?zt[zt.length-1].delayMs:0;if(Te(ye,zt),Re(()=>{te(ye,"idle"),W({sessionId:ye,eventType:"status",timestamp:new Date().toISOString(),content:"idle"})},Pt+_0,ye),Ke.resumeSteps){const St=[...Ke.resumeSteps];Ae.current.set(ye,St);const ls=St.reduce((Vn,xa)=>Math.max(Vn,xa.delayMs),0);ce.current.set(ye,{taskId:H,delayAfterResume:ls+200})}}else{const qe=Ke.steps.length>0?Ke.steps[Ke.steps.length-1].delayMs:0;Te(ye,Ke.steps);const zt=(nt=Ke.steps[Ke.steps.length-1])==null?void 0:nt.event.content;Re(()=>{zt==="completed"?_(Pt=>Pt.map(St=>St.id===H&&St.status==="working"?{...St,status:"paused"}:St)):zt==="failed"&&_(Pt=>Pt.map(St=>St.id===H&&St.status==="working"?{...St,status:"failed"}:St))},qe+100,ye)}},[fe,pe,Te,Re,te,W]),Kt=y.useCallback((H,ne)=>{console.log("[MockGrackle] sendInput",{sessionId:H,text:ne}),W({sessionId:H,eventType:"output",timestamp:new Date().toISOString(),content:`User input: ${ne}`}),te(H,"running"),W({sessionId:H,eventType:"status",timestamp:new Date().toISOString(),content:"running"});const oe=Ae.current.get(H);if(oe)Ae.current.delete(H),Te(H,oe);else{const ue=[{delayMs:500,event:{eventType:"output",timestamp:new Date().toISOString(),content:"I received your input, continuing..."}},{delayMs:1500,event:{eventType:"status",timestamp:new Date().toISOString(),content:"completed"}}];Te(H,ue)}const le=ce.current.get(H);le&&(ce.current.delete(H),Re(()=>{_(ue=>ue.map(He=>He.id===le.taskId&&He.status==="working"?{...He,status:"paused"}:He))},le.delayAfterResume,H))},[W,te,Te,Re]),ro=y.useCallback(H=>{console.log("[MockGrackle] completeTask",H),_(ne=>ne.map(oe=>oe.id===H?{...oe,status:"complete"}:oe))},[]),lo=y.useCallback(H=>{console.log("[MockGrackle] resumeTask",H)},[]),co=y.useCallback((H,ne,oe,le,ue)=>{console.log("[MockGrackle] updateTask",{taskId:H,title:ne}),_(He=>He.map(ye=>ye.id===H?{...ye,title:ne.trim()||ye.title,description:oe,dependsOn:le,...ue!==void 0?{defaultPersonaId:ue}:{}}:ye))},[]),_a=y.useCallback(H=>{console.log("[MockGrackle] deleteTask",H),_(ne=>ne.filter(oe=>oe.id!==H))},[]),Mr=y.useCallback(H=>{console.log("[MockGrackle] loadFindings",H),T(y0.filter(ne=>ne.workspaceId===H))},[]),uo=y.useCallback((H,ne,oe,le,ue)=>{console.log("[MockGrackle] postFinding",{workspaceId:H,title:ne});const He={id:fe("find"),workspaceId:H,taskId:"",sessionId:"",category:le||"general",title:ne,content:oe,tags:ue||[],createdAt:new Date().toISOString()};T(ye=>[...ye,He])},[fe]),Or=y.useCallback(()=>{console.log("[MockGrackle] loadEnvironments")},[]),Ir=y.useCallback((H,ne,oe)=>{console.log("[MockGrackle] addEnvironment",{displayName:H,adapterType:ne,adapterConfig:oe})},[]),Us=y.useCallback((H,ne)=>{console.log("[MockGrackle] updateEnvironment",{environmentId:H,...ne}),i(oe=>oe.map(le=>le.id!==H?le:{...le,...ne.displayName!==void 0?{displayName:ne.displayName}:{},...ne.adapterConfig!==void 0?{adapterConfig:JSON.stringify(ne.adapterConfig)}:{}}))},[]),Yt=y.useCallback(()=>{console.log("[MockGrackle] loadTokens")},[]),Pn=y.useCallback((H,ne,oe,le,ue)=>{console.log("[MockGrackle] setToken",{name:H,tokenType:oe}),j(He=>[...He.filter(Oe=>Oe.name!==H),{name:H,tokenType:oe,envVar:le,filePath:ue,expiresAt:""}])},[]),Jt=y.useCallback(H=>{console.log("[MockGrackle] deleteToken",H),j(ne=>ne.filter(oe=>oe.name!==H))},[]),Lr=y.useCallback(H=>{console.log("[MockGrackle] updateCredentialProviders",H),E(H)},[]);y.useEffect(()=>()=>{ze.current.forEach(clearTimeout),ze.current.clear()},[]);const Vc=y.useMemo(()=>({connected:!0,send:()=>{},environments:s,sessions:o,events:u,eventsDropped:0,lastSpawnedId:m,workspaces:g,tasks:b,findings:S,tokens:N,credentialProviders:w,spawn:un,sendInput:Kt,kill:Fe,stopGraceful:Kn,refresh:Yn,loadSessionEvents:zn,clearEvents:Jn,loadWorkspaces:()=>{console.log("[MockGrackle] loadWorkspaces")},createWorkspace:Tn,archiveWorkspace:Bs,updateWorkspace:(H,ne)=>{console.log("[MockGrackle] updateWorkspace",{workspaceId:H,...ne}),v(oe=>oe.map(le=>le.id!==H?le:{...le,...ne.name!==void 0?{name:ne.name}:{},...ne.description!==void 0?{description:ne.description}:{},...ne.repoUrl!==void 0?{repoUrl:ne.repoUrl}:{},...ne.environmentId!==void 0?{environmentId:ne.environmentId}:{},...ne.workingDirectory!==void 0?{workingDirectory:ne.workingDirectory}:{},...ne.useWorktrees!==void 0?{useWorktrees:ne.useWorktrees}:{},...ne.defaultPersonaId!==void 0?{defaultPersonaId:ne.defaultPersonaId}:{},updatedAt:new Date().toISOString()}))},loadTasks:dn,loadAllTasks:()=>{console.log("[MockGrackle] loadAllTasks")},createTask:Me,startTask:Rt,stopTask:H=>{console.log("[MockGrackle] stopTask",{taskId:H}),ro(H)},completeTask:ro,resumeTask:lo,updateTask:co,deleteTask:_a,loadFindings:Mr,postFinding:uo,loadEnvironments:Or,addEnvironment:Ir,updateEnvironment:Us,loadTokens:Yt,setToken:Pn,deleteToken:Jt,updateCredentialProviders:Lr,provisionStatus:{},provisionEnvironment:(H,ne)=>{},stopEnvironment:()=>{},removeEnvironment:()=>{},codespaces:[],codespaceError:"",codespaceListError:"",codespaceCreating:!1,listCodespaces:()=>{},createCodespace:()=>{},workspaceCreating:!1,taskStartingId:void 0,personas:A,createPersona:async(H,ne,oe,le,ue,He,ye,Oe,Ke)=>{console.log("[MockGrackle] createPersona",{name:H});const nt={id:`mock-persona-${Date.now()}`,name:H,description:ne,systemPrompt:oe,toolConfig:"{}",runtime:le??"claude-code",model:ue||"",maxTurns:He||0,mcpServers:"[]",createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),type:ye||"agent",script:Oe||"",allowedMcpTools:Ke||[]};return O(qe=>[...qe,nt]),nt},updatePersona:async(H,ne,oe,le,ue,He,ye,Oe,Ke,nt)=>{console.log("[MockGrackle] updatePersona",{personaId:H,name:ne});const qe=A.find(St=>St.id===H);if(!qe)throw new Error(`Persona not found: ${H}`);const zt=new Date().toISOString(),Pt={...qe,...ne!==void 0?{name:ne}:{},...oe!==void 0?{description:oe}:{},...le!==void 0?{systemPrompt:le}:{},...ue!==void 0?{runtime:ue}:{},...He!==void 0?{model:He}:{},...ye!==void 0?{maxTurns:ye}:{},...Oe!==void 0?{type:Oe}:{},...Ke!==void 0?{script:Ke}:{},...nt!==void 0?{allowedMcpTools:nt}:{},updatedAt:zt};return O(St=>St.map(ls=>ls.id===H?Pt:ls)),Pt},deletePersona:async H=>{console.log("[MockGrackle] deletePersona",H),O(ne=>ne.filter(oe=>oe.id!==H))},taskSessions:C,loadTaskSessions:H=>{console.log("[MockGrackle] loadTaskSessions",H)},appDefaultPersonaId:M,setAppDefaultPersonaId:async H=>{console.log("[MockGrackle] setAppDefaultPersonaId",H),G(H)},onboardingCompleted:!0,completeOnboarding:()=>{console.log("[MockGrackle] completeOnboarding")},usageCache:{"workspace:proj-alpha":{inputTokens:214500,outputTokens:44850,costUsd:1.12,sessionCount:4},"workspace:proj-beta":{inputTokens:86700,outputTokens:23800,costUsd:.48,sessionCount:3},"task:task-001":{inputTokens:126800,outputTokens:20850,costUsd:.63,sessionCount:2},"task:task-006":{inputTokens:18900,outputTokens:4500,costUsd:.1,sessionCount:1},"task_tree:task-001":{inputTokens:126800,outputTokens:20850,costUsd:.63,sessionCount:2},"task_tree:task-006":{inputTokens:18900,outputTokens:4500,costUsd:.1,sessionCount:1}},loadUsage:(H,ne)=>{console.log(`[MockGrackle] loadUsage(${H}, ${ne})`)},knowledge:{graphData:{nodes:U,links:F},selectedNode:ae,loading:!1,selectedId:K,searchQuery:I,search:H=>{if(console.log("[MockGrackle] knowledge.search",H),!H.trim()){$(H);return}$(H);const ne=Q.current,oe=ne?ns.filter(ye=>!ye.workspaceId||ye.workspaceId===ne):ns,le=H.toLowerCase(),ue=oe.filter(ye=>{var Oe,Ke,nt;return ye.label.toLowerCase().includes(le)||((Oe=ye.content)==null?void 0:Oe.toLowerCase().includes(le))||((Ke=ye.tags)==null?void 0:Ke.some(qe=>qe.toLowerCase().includes(le)))||((nt=ye.category)==null?void 0:nt.toLowerCase().includes(le))});V(ue);const He=new Set(ue.map(ye=>ye.id));ee(ca.filter(ye=>He.has(ye.source)&&He.has(ye.target))),re(void 0),be(void 0)},clearSearch:()=>{console.log("[MockGrackle] knowledge.clearSearch"),$("");const H=Q.current,ne=H?ns.filter(le=>!le.workspaceId||le.workspaceId===H):ns;V(ne);const oe=new Set(ne.map(le=>le.id));ee(ca.filter(le=>oe.has(le.source)&&oe.has(le.target)))},selectNode:H=>{console.log("[MockGrackle] knowledge.selectNode",H),re(H);const ne=H in v0?v0[H]:void 0;if(ne)be(ne);else{const oe=ns.find(le=>le.id===H);if(oe){const le=ca.filter(ue=>ue.source===H||ue.target===H).map(ue=>({fromId:ue.source,toId:ue.target,type:ue.type}));be({node:oe,edges:le})}}},clearSelection:()=>{console.log("[MockGrackle] knowledge.clearSelection"),re(void 0),be(void 0)},expandNode:H=>{console.log("[MockGrackle] knowledge.expandNode",H),V(ne=>{const oe=new Set(ne.map(Oe=>Oe.id)),le=ca.filter(Oe=>Oe.source===H||Oe.target===H),ue=new Set;for(const Oe of le)oe.has(Oe.source)||ue.add(Oe.source),oe.has(Oe.target)||ue.add(Oe.target);if(ue.size===0)return ne;const He=ns.filter(Oe=>ue.has(Oe.id)),ye=new Set([...oe,...ue]);return ee(Oe=>{const Ke=new Set(Oe.map(qe=>`${qe.source}|${qe.target}|${qe.type}`)),nt=ca.filter(qe=>ye.has(qe.source)&&ye.has(qe.target)&&!Ke.has(`${qe.source}|${qe.target}|${qe.type}`));return nt.length>0?[...Oe,...nt]:Oe}),[...ne,...He]})},loadRecent:H=>{if(console.log("[MockGrackle] knowledge.loadRecent",H),Q.current=H,H){const ne=ns.filter(le=>!le.workspaceId||le.workspaceId===H);V(ne);const oe=new Set(ne.map(le=>le.id));ee(ca.filter(le=>oe.has(le.source)&&oe.has(le.target)))}else V(ns),ee(ca);$("")},handleEvent:()=>!1}}),[s,o,u,m,g,b,S,N,w,A,C,M,U,F,ae,K,I,un,Kt,Fe,Kn,Yn,zn,Jn,Tn,Bs,dn,Me,Rt,ro,lo,co,_a,Mr,uo,Or,Ir,Us,Yt,Pn,Jt,Lr]);return l.jsx(yp.Provider,{value:Vc,children:n})}const Ob=y.createContext(void 0),J2=4e3;function X2({children:n}){const[s,i]=y.useState([]),o=y.useRef(0),c=y.useCallback(d=>{i(m=>m.filter(h=>h.id!==d))},[]),u=y.useCallback((d,m="info",h=J2)=>{const g=`toast-${++o.current}`;i(v=>[...v,{id:g,message:d,variant:m,duration:h}])},[]);return l.jsx(Ob.Provider,{value:{toasts:s,showToast:u,dismissToast:c},children:n})}function Ls(){const n=y.useContext(Ob);if(!n)throw new Error("useToast must be used within ToastProvider");return n}const Mc=[{id:"grackle",label:"Grackle",description:"The default Grackle theme — iridescent purple on clean dark.",swatches:["#0e1218","#8b5cf6","#60a5fa","#e5e7eb","#34d399"],variantLightId:"grackle-light",variantDarkId:"grackle-dark"},{id:"grackle-light",label:"Grackle Light",description:"Light Grackle variant.",hidden:!0},{id:"grackle-dark",label:"Grackle Dark",description:"Dark Grackle variant.",hidden:!0},{id:"glass",label:"Glassmorphism",description:"Dark frosted-glass aesthetic with backdrop blur effects.",swatches:["#0a0c14","#4ecca3","#70a1ff","#e2e8f0","#a855f7"]},{id:"matrix",label:"Matrix",description:"Phosphor-green CRT terminal with scanlines and glow.",swatches:["#050505","#00ff41","#00bfff","#33ff77","#ffb000"]},{id:"brutalist",label:"Neubrutalism",description:"Thick borders, raw colors, bold type — ugly on purpose.",swatches:["#f5f0e8","#ff5757","#5ce1e6","#1a1a1a","#ffde59"],variantLightId:"brutalist-light",variantDarkId:"brutalist-dark"},{id:"brutalist-light",label:"Neubrutalism Light",description:"Light neubrutalism variant.",hidden:!0},{id:"brutalist-dark",label:"Neubrutalism Dark",description:"Dark neubrutalism variant.",hidden:!0},{id:"monokai",label:"Monokai",description:"Classic warm editor palette — pink, green, and purple.",swatches:["#272822","#f92672","#a6e22e","#f8f8f2","#ae81ff"],variantLightId:"monokai-light",variantDarkId:"monokai-dark"},{id:"monokai-dark",label:"Monokai Dark",description:"Dark Monokai variant.",hidden:!0},{id:"monokai-light",label:"Monokai Light",description:"Light Monokai variant.",hidden:!0},{id:"ubuntu",label:"Ubuntu",description:"Aubergine terminal with the GNOME Tango palette.",swatches:["#300a24","#8ae234","#ef2929","#eeeeec","#fce94f"]},{id:"sandstone",label:"Sandstone",description:"Warm terracotta accent on dark brown, in the style of Claude Code.",swatches:["#1a1815","#C15F3C","#6b8afd","#e8e6e3","#a78bfa"]},{id:"verdigris",label:"Verdigris",description:"Teal accent on charcoal, in the style of ChatGPT.",swatches:["#141414","#00a67e","#3b82f6","#ececec","#ab68ff"]},{id:"primer",label:"Primer",description:"Blue accent on ink-dark grey, in the style of GitHub.",swatches:["#0d1117","#58a6ff","#3fb950","#c9d1d9","#bc8cff"]}],Ib=new Set(Mc.map(n=>n.id)),x0="grackle";function zf(n){return Mc.find(s=>s.id===n)}const Pf="grackle-theme",Lb="grackle-prefer-system",Bb="(prefers-color-scheme: dark)";let lr=[],dc;function cf(){dc=void 0;for(const n of lr)n()}function Vf(){return typeof window>"u"?!1:window.matchMedia(Bb).matches}function pr(){if(typeof localStorage>"u")return x0;try{const n=localStorage.getItem(Pf);if(n!==null&&Ib.has(n))return n}catch{}return x0}function vc(){if(typeof localStorage>"u")return!1;try{return localStorage.getItem(Lb)==="true"}catch{return!1}}function Hf(n){return Mc.find(s=>s.variantLightId===n||s.variantDarkId===n)}function Ub(n,s){const i=zf(n);if(i!=null&&i.variantDarkId)return s&&i.variantLightId?Vf()?i.variantDarkId:i.variantLightId:i.variantDarkId;if(i!=null&&i.hidden&&s){const o=Hf(n);if(o!=null&&o.variantLightId&&o.variantDarkId)return Vf()?o.variantDarkId:o.variantLightId}return n}function Hi(n,s,i=!1){i&&document.documentElement.classList.add("no-transitions"),document.documentElement.dataset.theme=Ub(n,s),i&&(document.documentElement.offsetHeight,requestAnimationFrame(()=>{document.documentElement.classList.remove("no-transitions")}))}typeof document<"u"&&Hi(pr(),vc());function W2(){return dc===void 0&&(dc={themeId:pr(),systemDark:Vf(),preferSystem:vc()}),dc}function Q2(n){return lr=[...lr,n],()=>{lr=lr.filter(s=>s!==n)}}function ew(){const n=y.useSyncExternalStore(Q2,W2),{themeId:s,preferSystem:i}=n,o=Ub(s,i),c=y.useCallback(d=>{if(Ib.has(d)){try{localStorage.setItem(Pf,d)}catch{}Hi(d,vc(),!0),cf()}},[]),u=y.useCallback(d=>{try{localStorage.setItem(Lb,d?"true":"false")}catch{}if(d){const m=pr(),h=zf(m);if(h!=null&&h.hidden){const g=Hf(m);if(g)try{localStorage.setItem(Pf,g.id)}catch{}}}Hi(pr(),d,!0),cf()},[]);return y.useEffect(()=>{Hi(s,i)},[s,i]),y.useEffect(()=>{if(typeof window>"u")return;const d=window.matchMedia(Bb),m=()=>{const h=pr(),g=vc();if(g){const v=zf(h);if(v!=null&&v.variantDarkId&&v.variantLightId&&Hi(h,g),v!=null&&v.hidden){const b=Hf(h);b!=null&&b.variantDarkId&&b.variantLightId&&Hi(h,g)}}cf()};return d.addEventListener("change",m),()=>{d.removeEventListener("change",m)}},[]),{themeId:s,setTheme:c,resolvedThemeId:o,preferSystem:i,setPreferSystem:u}}const zb=y.createContext(void 0);function tw({children:n}){const s=ew();return l.jsx(zb.Provider,{value:s,children:n})}function Pb(){const n=y.useContext(zb);if(!n)throw new Error("useThemeContext must be used within ThemeProvider");return n}const nw="_container_1mq5u_1",sw="_hamburger_1mq5u_33",aw="_brand_1mq5u_49",iw="_brandLogo_1mq5u_68",ow="_info_1mq5u_75",rw="_connectionLabel_1mq5u_90",lw="_connectionDot_1mq5u_103",cw="_connected_1mq5u_106",uw="_disconnected_1mq5u_110",js={container:nw,hamburger:sw,brand:aw,brandLogo:iw,info:ow,connectionLabel:rw,connectionDot:lw,connected:cw,disconnected:uw};function dw({connected:n,environments:s,sessions:i,onToggleSidebar:o,sidebarOpen:c}){const u=xt(),d=s.length,m=s.filter(g=>g.status==="connected").length,h=i.filter(g=>["running","idle"].includes(g.status)).length;return l.jsxs("div",{className:js.container,children:[o&&l.jsx("button",{type:"button",className:js.hamburger,onClick:o,"aria-label":"Toggle sidebar","aria-expanded":c,children:"☰"}),l.jsxs("button",{type:"button",className:js.brand,onClick:()=>u(Ya),title:"Home",children:[l.jsx("img",{src:"/icon-192x192.png",alt:"",className:js.brandLogo,"aria-hidden":"true","data-testid":"statusbar-logo"}),"Grackle"]}),l.jsxs("div",{className:js.info,children:[l.jsxs("span",{"aria-label":n?"Connected":"Disconnected",children:[l.jsx("span",{className:`${js.connectionDot} ${n?js.connected:js.disconnected}`,"aria-hidden":"true",children:"●"})," ",l.jsx("span",{className:js.connectionLabel,"aria-hidden":"true",children:n?"Connected":"Disconnected"})]}),l.jsxs("span",{children:[m,"/",d," env",d!==1?"s":""]}),l.jsxs("span",{children:[h," active"]})]})]})}const fw="_nav_13gkc_1",pw="_tab_13gkc_35",mw="_tabIcon_13gkc_68",hw="_tabLabel_13gkc_79",gw="_tabActive_13gkc_84",ar={nav:fw,tab:pw,tabIcon:mw,tabLabel:hw,tabActive:gw},za=[{view:"dashboard",label:"Dashboard",icon:"🏠",route:Ya,testId:"sidebar-tab-dashboard"},{view:"chat",label:"Chat",icon:"💬",route:d2,testId:"sidebar-tab-chat"},{view:"tasks",label:"Tasks",icon:"📋",route:f2,testId:"sidebar-tab-tasks"},{view:"environments",label:"Environments",icon:"🖥️",route:Xi,testId:"sidebar-tab-environments"},{view:"knowledge",label:"Knowledge",icon:"🧠",route:Eb,testId:"sidebar-tab-knowledge"},{view:"settings",label:"Settings",icon:"⚙️",route:r2,testId:"sidebar-tab-settings"}];function vw(n){return n===Ya||n==="/"?"dashboard":n.startsWith("/chat")||n.startsWith("/sessions")?"chat":n.startsWith("/workspaces")||n.startsWith("/environments")?"environments":n.startsWith(Eb)?"knowledge":n.startsWith(Yi)?"settings":"tasks"}function yw(){const n=It(),s=xt(),i=y.useRef(null),o=vw(n.pathname),c=y.useCallback(d=>{s(d.route)},[s]),u=y.useCallback(d=>{var b,_;const m=(b=i.current)==null?void 0:b.querySelectorAll('[role="tab"]');if(!m)return;const h=Array.from(m).findIndex(S=>S===document.activeElement),g=h>=0?h:za.findIndex(S=>S.view===o);let v=g;if(d.key==="ArrowRight"||d.key==="j"||d.key==="J")d.preventDefault(),v=(g+1)%za.length;else if(d.key==="ArrowLeft"||d.key==="k"||d.key==="K")d.preventDefault(),v=(g-1+za.length)%za.length;else if(d.key==="Home")d.preventDefault(),v=0;else if(d.key==="End")d.preventDefault(),v=za.length-1;else return;s(za[v].route),(_=m[v])==null||_.focus()},[o,s]);return l.jsx("nav",{className:ar.nav,ref:i,role:"tablist","aria-orientation":"horizontal","aria-label":"App navigation",onKeyDown:u,"data-testid":"sidebar-nav",children:za.map(d=>{const m=d.view===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":m,tabIndex:m?0:-1,className:`${ar.tab} ${m?ar.tabActive:""}`,onClick:()=>c(d),"data-testid":d.testId,title:d.label,"aria-label":d.label,children:[l.jsx("span",{className:ar.tabIcon,"aria-hidden":"true",children:d.icon}),l.jsx("span",{className:ar.tabLabel,children:d.label})]},d.view)})})}const Vb=y.createContext(void 0),Hb=y.createContext(void 0);function bw({children:n}){const[s,i]=y.useState(void 0),o=y.useCallback(c=>{i(c)},[]);return l.jsx(Hb.Provider,{value:o,children:l.jsx(Vb.Provider,{value:s,children:n})})}function qb(){return y.useContext(Vb)}function _w(){const n=y.useContext(Hb);if(n===void 0)throw new Error("useSidebarSetter must be used within a SidebarProvider");return n}const xw="_container_pi6ii_1",Sw="_content_pi6ii_66",S0={container:xw,content:Sw},Tw=320,Gb=220,$b=600,Zb="grackle-sidebar-width";function kw(){try{const n=localStorage.getItem(Zb);if(n!==null){const s=Number(n);if(Number.isFinite(s)&&s>=Gb&&s<=$b)return s}}catch{}return Tw}function ww(n){try{localStorage.setItem(Zb,String(n))}catch{}}function Nw(){const[n]=y.useState(kw),s=y.useRef(null),i=qb();if(y.useEffect(()=>{const o=s.current;if(!o)return;const c=new ResizeObserver(u=>{for(const d of u){const m=d.borderBoxSize[0];if(m){const h=Math.round(m.inlineSize);h>=Gb&&h<=$b&&ww(h)}}});return c.observe(o),()=>{c.disconnect()}},[]),i!==void 0)return l.jsx("div",{className:S0.container,ref:s,"data-testid":"sidebar",style:{width:n},children:l.jsx("div",{className:S0.content,children:i})})}function Oc(n){const s=_w();y.useLayoutEffect(()=>(s(n),()=>{s(void 0)}),[n,s])}const bp=y.createContext({});function _p(n){const s=y.useRef(null);return s.current===null&&(s.current=n()),s.current}const Ic=y.createContext(null),xp=y.createContext({transformPagePoint:n=>n,isStatic:!1,reducedMotion:"never"});class jw extends y.Component{getSnapshotBeforeUpdate(s){const i=this.props.childRef.current;if(i&&s.isPresent&&!this.props.isPresent){const o=this.props.sizeRef.current;o.height=i.offsetHeight||0,o.width=i.offsetWidth||0,o.top=i.offsetTop,o.left=i.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function Cw({children:n,isPresent:s}){const i=y.useId(),o=y.useRef(null),c=y.useRef({width:0,height:0,top:0,left:0}),{nonce:u}=y.useContext(xp);return y.useInsertionEffect(()=>{const{width:d,height:m,top:h,left:g}=c.current;if(s||!o.current||!d||!m)return;o.current.dataset.motionPopId=i;const v=document.createElement("style");return u&&(v.nonce=u),document.head.appendChild(v),v.sheet&&v.sheet.insertRule(`
465
- [data-motion-pop-id="${i}"] {
466
- position: absolute !important;
467
- width: ${d}px !important;
468
- height: ${m}px !important;
469
- top: ${h}px !important;
470
- left: ${g}px !important;
471
- }
472
- `),()=>{document.head.removeChild(v)}},[s]),l.jsx(jw,{isPresent:s,childRef:o,sizeRef:c,children:y.cloneElement(n,{ref:o})})}const Ew=({children:n,initial:s,isPresent:i,onExitComplete:o,custom:c,presenceAffectsLayout:u,mode:d})=>{const m=_p(Aw),h=y.useId(),g=y.useCallback(b=>{m.set(b,!0);for(const _ of m.values())if(!_)return;o&&o()},[m,o]),v=y.useMemo(()=>({id:h,initial:s,isPresent:i,custom:c,onExitComplete:g,register:b=>(m.set(b,!1),()=>m.delete(b))}),u?[Math.random(),g]:[i,g]);return y.useMemo(()=>{m.forEach((b,_)=>m.set(_,!1))},[i]),y.useEffect(()=>{!i&&!m.size&&o&&o()},[i]),d==="popLayout"&&(n=l.jsx(Cw,{isPresent:i,children:n})),l.jsx(Ic.Provider,{value:v,children:n})};function Aw(){return new Map}function Fb(n=!0){const s=y.useContext(Ic);if(s===null)return[!0,null];const{isPresent:i,onExitComplete:o,register:c}=s,u=y.useId();y.useEffect(()=>{n&&c(u)},[n]);const d=y.useCallback(()=>n&&o&&o(u),[u,o,n]);return!i&&o?[!1,d]:[!0]}const ec=n=>n.key||"";function T0(n){const s=[];return y.Children.forEach(n,i=>{y.isValidElement(i)&&s.push(i)}),s}const Sp=typeof window<"u",Kb=Sp?y.useLayoutEffect:y.useEffect,rs=({children:n,custom:s,initial:i=!0,onExitComplete:o,presenceAffectsLayout:c=!0,mode:u="sync",propagate:d=!1})=>{const[m,h]=Fb(d),g=y.useMemo(()=>T0(n),[n]),v=d&&!m?[]:g.map(ec),b=y.useRef(!0),_=y.useRef(g),S=_p(()=>new Map),[T,N]=y.useState(g),[j,w]=y.useState(g);Kb(()=>{b.current=!1,_.current=g;for(let O=0;O<j.length;O++){const C=ec(j[O]);v.includes(C)?S.delete(C):S.get(C)!==!0&&S.set(C,!1)}},[j,v.length,v.join("-")]);const E=[];if(g!==T){let O=[...g];for(let C=0;C<j.length;C++){const M=j[C],G=ec(M);v.includes(G)||(O.splice(C,0,M),E.push(M))}u==="wait"&&E.length&&(O=E),w(T0(O)),N(g);return}const{forceRender:A}=y.useContext(bp);return l.jsx(l.Fragment,{children:j.map(O=>{const C=ec(O),M=d&&!m?!1:g===j||v.includes(C),G=()=>{if(S.has(C))S.set(C,!0);else return;let U=!0;S.forEach(V=>{V||(U=!1)}),U&&(A==null||A(),w(_.current),d&&(h==null||h()),o&&o())};return l.jsx(Ew,{isPresent:M,initial:!b.current||i?void 0:!1,custom:M?void 0:s,presenceAffectsLayout:c,mode:u,onExitComplete:M?void 0:G,children:O},C)})})},_n=n=>n;let Yb=_n;const Dw={useManualTiming:!1};function Rw(n){let s=new Set,i=new Set,o=!1,c=!1;const u=new WeakSet;let d={delta:0,timestamp:0,isProcessing:!1};function m(g){u.has(g)&&(h.schedule(g),n()),g(d)}const h={schedule:(g,v=!1,b=!1)=>{const S=b&&o?s:i;return v&&u.add(g),S.has(g)||S.add(g),g},cancel:g=>{i.delete(g),u.delete(g)},process:g=>{if(d=g,o){c=!0;return}o=!0,[s,i]=[i,s],s.forEach(m),s.clear(),o=!1,c&&(c=!1,h.process(g))}};return h}const tc=["read","resolveKeyframes","update","preRender","render","postRender"],Mw=40;function Jb(n,s){let i=!1,o=!0;const c={delta:0,timestamp:0,isProcessing:!1},u=()=>i=!0,d=tc.reduce((w,E)=>(w[E]=Rw(u),w),{}),{read:m,resolveKeyframes:h,update:g,preRender:v,render:b,postRender:_}=d,S=()=>{const w=performance.now();i=!1,c.delta=o?1e3/60:Math.max(Math.min(w-c.timestamp,Mw),1),c.timestamp=w,c.isProcessing=!0,m.process(c),h.process(c),g.process(c),v.process(c),b.process(c),_.process(c),c.isProcessing=!1,i&&s&&(o=!1,n(S))},T=()=>{i=!0,o=!0,c.isProcessing||n(S)};return{schedule:tc.reduce((w,E)=>{const A=d[E];return w[E]=(O,C=!1,M=!1)=>(i||T(),A.schedule(O,C,M)),w},{}),cancel:w=>{for(let E=0;E<tc.length;E++)d[tc[E]].cancel(w)},state:c,steps:d}}const{schedule:ft,cancel:ma,state:Zt,steps:uf}=Jb(typeof requestAnimationFrame<"u"?requestAnimationFrame:_n,!0),Xb=y.createContext({strict:!1}),k0={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Qi={};for(const n in k0)Qi[n]={isEnabled:s=>k0[n].some(i=>!!s[i])};function Ow(n){for(const s in n)Qi[s]={...Qi[s],...n[s]}}const Iw=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function yc(n){return n.startsWith("while")||n.startsWith("drag")&&n!=="draggable"||n.startsWith("layout")||n.startsWith("onTap")||n.startsWith("onPan")||n.startsWith("onLayout")||Iw.has(n)}let Wb=n=>!yc(n);function Lw(n){n&&(Wb=s=>s.startsWith("on")?!yc(s):n(s))}try{Lw(require("@emotion/is-prop-valid").default)}catch{}function Bw(n,s,i){const o={};for(const c in n)c==="values"&&typeof n.values=="object"||(Wb(c)||i===!0&&yc(c)||!s&&!yc(c)||n.draggable&&c.startsWith("onDrag"))&&(o[c]=n[c]);return o}function Uw(n){if(typeof Proxy>"u")return n;const s=new Map,i=(...o)=>n(...o);return new Proxy(i,{get:(o,c)=>c==="create"?n:(s.has(c)||s.set(c,n(c)),s.get(c))})}const Lc=y.createContext({});function xr(n){return typeof n=="string"||Array.isArray(n)}function Bc(n){return n!==null&&typeof n=="object"&&typeof n.start=="function"}const Tp=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],kp=["initial",...Tp];function Uc(n){return Bc(n.animate)||kp.some(s=>xr(n[s]))}function Qb(n){return!!(Uc(n)||n.variants)}function zw(n,s){if(Uc(n)){const{initial:i,animate:o}=n;return{initial:i===!1||xr(i)?i:void 0,animate:xr(o)?o:void 0}}return n.inherit!==!1?s:{}}function Pw(n){const{initial:s,animate:i}=zw(n,y.useContext(Lc));return y.useMemo(()=>({initial:s,animate:i}),[w0(s),w0(i)])}function w0(n){return Array.isArray(n)?n.join(" "):n}const Vw=Symbol.for("motionComponentSymbol");function qi(n){return n&&typeof n=="object"&&Object.prototype.hasOwnProperty.call(n,"current")}function Hw(n,s,i){return y.useCallback(o=>{o&&n.onMount&&n.onMount(o),s&&(o?s.mount(o):s.unmount()),i&&(typeof i=="function"?i(o):qi(i)&&(i.current=o))},[s])}const wp=n=>n.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),qw="framerAppearId",e_="data-"+wp(qw),{schedule:Np}=Jb(queueMicrotask,!1),t_=y.createContext({});function Gw(n,s,i,o,c){var u,d;const{visualElement:m}=y.useContext(Lc),h=y.useContext(Xb),g=y.useContext(Ic),v=y.useContext(xp).reducedMotion,b=y.useRef(null);o=o||h.renderer,!b.current&&o&&(b.current=o(n,{visualState:s,parent:m,props:i,presenceContext:g,blockInitialAnimation:g?g.initial===!1:!1,reducedMotionConfig:v}));const _=b.current,S=y.useContext(t_);_&&!_.projection&&c&&(_.type==="html"||_.type==="svg")&&$w(b.current,i,c,S);const T=y.useRef(!1);y.useInsertionEffect(()=>{_&&T.current&&_.update(i,g)});const N=i[e_],j=y.useRef(!!N&&!(!((u=window.MotionHandoffIsComplete)===null||u===void 0)&&u.call(window,N))&&((d=window.MotionHasOptimisedAnimation)===null||d===void 0?void 0:d.call(window,N)));return Kb(()=>{_&&(T.current=!0,window.MotionIsMounted=!0,_.updateFeatures(),Np.render(_.render),j.current&&_.animationState&&_.animationState.animateChanges())}),y.useEffect(()=>{_&&(!j.current&&_.animationState&&_.animationState.animateChanges(),j.current&&(queueMicrotask(()=>{var w;(w=window.MotionHandoffMarkAsComplete)===null||w===void 0||w.call(window,N)}),j.current=!1))}),_}function $w(n,s,i,o){const{layoutId:c,layout:u,drag:d,dragConstraints:m,layoutScroll:h,layoutRoot:g}=s;n.projection=new i(n.latestValues,s["data-framer-portal-id"]?void 0:n_(n.parent)),n.projection.setOptions({layoutId:c,layout:u,alwaysMeasureLayout:!!d||m&&qi(m),visualElement:n,animationType:typeof u=="string"?u:"both",initialPromotionConfig:o,layoutScroll:h,layoutRoot:g})}function n_(n){if(n)return n.options.allowProjection!==!1?n.projection:n_(n.parent)}function Zw({preloadedFeatures:n,createVisualElement:s,useRender:i,useVisualState:o,Component:c}){var u,d;n&&Ow(n);function m(g,v){let b;const _={...y.useContext(xp),...g,layoutId:Fw(g)},{isStatic:S}=_,T=Pw(g),N=o(g,S);if(!S&&Sp){Kw();const j=Yw(_);b=j.MeasureLayout,T.visualElement=Gw(c,N,_,s,j.ProjectionNode)}return l.jsxs(Lc.Provider,{value:T,children:[b&&T.visualElement?l.jsx(b,{visualElement:T.visualElement,..._}):null,i(c,g,Hw(N,T.visualElement,v),N,S,T.visualElement)]})}m.displayName=`motion.${typeof c=="string"?c:`create(${(d=(u=c.displayName)!==null&&u!==void 0?u:c.name)!==null&&d!==void 0?d:""})`}`;const h=y.forwardRef(m);return h[Vw]=c,h}function Fw({layoutId:n}){const s=y.useContext(bp).id;return s&&n!==void 0?s+"-"+n:n}function Kw(n,s){y.useContext(Xb).strict}function Yw(n){const{drag:s,layout:i}=Qi;if(!s&&!i)return{};const o={...s,...i};return{MeasureLayout:s!=null&&s.isEnabled(n)||i!=null&&i.isEnabled(n)?o.MeasureLayout:void 0,ProjectionNode:o.ProjectionNode}}const Jw=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function jp(n){return typeof n!="string"||n.includes("-")?!1:!!(Jw.indexOf(n)>-1||/[A-Z]/u.test(n))}function N0(n){const s=[{},{}];return n==null||n.values.forEach((i,o)=>{s[0][o]=i.get(),s[1][o]=i.getVelocity()}),s}function Cp(n,s,i,o){if(typeof s=="function"){const[c,u]=N0(o);s=s(i!==void 0?i:n.custom,c,u)}if(typeof s=="string"&&(s=n.variants&&n.variants[s]),typeof s=="function"){const[c,u]=N0(o);s=s(i!==void 0?i:n.custom,c,u)}return s}const qf=n=>Array.isArray(n),Xw=n=>!!(n&&typeof n=="object"&&n.mix&&n.toValue),Ww=n=>qf(n)?n[n.length-1]||0:n,Wt=n=>!!(n&&n.getVelocity);function fc(n){const s=Wt(n)?n.get():n;return Xw(s)?s.toValue():s}function Qw({scrapeMotionValuesFromProps:n,createRenderState:s,onUpdate:i},o,c,u){const d={latestValues:eN(o,c,u,n),renderState:s()};return i&&(d.onMount=m=>i({props:o,current:m,...d}),d.onUpdate=m=>i(m)),d}const s_=n=>(s,i)=>{const o=y.useContext(Lc),c=y.useContext(Ic),u=()=>Qw(n,s,o,c);return i?u():_p(u)};function eN(n,s,i,o){const c={},u=o(n,{});for(const _ in u)c[_]=fc(u[_]);let{initial:d,animate:m}=n;const h=Uc(n),g=Qb(n);s&&g&&!h&&n.inherit!==!1&&(d===void 0&&(d=s.initial),m===void 0&&(m=s.animate));let v=i?i.initial===!1:!1;v=v||d===!1;const b=v?m:d;if(b&&typeof b!="boolean"&&!Bc(b)){const _=Array.isArray(b)?b:[b];for(let S=0;S<_.length;S++){const T=Cp(n,_[S]);if(T){const{transitionEnd:N,transition:j,...w}=T;for(const E in w){let A=w[E];if(Array.isArray(A)){const O=v?A.length-1:0;A=A[O]}A!==null&&(c[E]=A)}for(const E in N)c[E]=N[E]}}}return c}const io=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ti=new Set(io),a_=n=>s=>typeof s=="string"&&s.startsWith(n),i_=a_("--"),tN=a_("var(--"),Ep=n=>tN(n)?nN.test(n.split("/*")[0].trim()):!1,nN=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,o_=(n,s)=>s&&typeof n=="number"?s.transform(n):n,Is=(n,s,i)=>i>s?s:i<n?n:i,oo={test:n=>typeof n=="number",parse:parseFloat,transform:n=>n},Sr={...oo,transform:n=>Is(0,1,n)},nc={...oo,default:1},Er=n=>({test:s=>typeof s=="string"&&s.endsWith(n)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${n}`}),pa=Er("deg"),as=Er("%"),ke=Er("px"),sN=Er("vh"),aN=Er("vw"),j0={...as,parse:n=>as.parse(n)/100,transform:n=>as.transform(n*100)},iN={borderWidth:ke,borderTopWidth:ke,borderRightWidth:ke,borderBottomWidth:ke,borderLeftWidth:ke,borderRadius:ke,radius:ke,borderTopLeftRadius:ke,borderTopRightRadius:ke,borderBottomRightRadius:ke,borderBottomLeftRadius:ke,width:ke,maxWidth:ke,height:ke,maxHeight:ke,top:ke,right:ke,bottom:ke,left:ke,padding:ke,paddingTop:ke,paddingRight:ke,paddingBottom:ke,paddingLeft:ke,margin:ke,marginTop:ke,marginRight:ke,marginBottom:ke,marginLeft:ke,backgroundPositionX:ke,backgroundPositionY:ke},oN={rotate:pa,rotateX:pa,rotateY:pa,rotateZ:pa,scale:nc,scaleX:nc,scaleY:nc,scaleZ:nc,skew:pa,skewX:pa,skewY:pa,distance:ke,translateX:ke,translateY:ke,translateZ:ke,x:ke,y:ke,z:ke,perspective:ke,transformPerspective:ke,opacity:Sr,originX:j0,originY:j0,originZ:ke},C0={...oo,transform:Math.round},Ap={...iN,...oN,zIndex:C0,size:ke,fillOpacity:Sr,strokeOpacity:Sr,numOctaves:C0},rN={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},lN=io.length;function cN(n,s,i){let o="",c=!0;for(let u=0;u<lN;u++){const d=io[u],m=n[d];if(m===void 0)continue;let h=!0;if(typeof m=="number"?h=m===(d.startsWith("scale")?1:0):h=parseFloat(m)===0,!h||i){const g=o_(m,Ap[d]);if(!h){c=!1;const v=rN[d]||d;o+=`${v}(${g}) `}i&&(s[d]=g)}}return o=o.trim(),i?o=i(s,c?"":o):c&&(o="none"),o}function Dp(n,s,i){const{style:o,vars:c,transformOrigin:u}=n;let d=!1,m=!1;for(const h in s){const g=s[h];if(ti.has(h)){d=!0;continue}else if(i_(h)){c[h]=g;continue}else{const v=o_(g,Ap[h]);h.startsWith("origin")?(m=!0,u[h]=v):o[h]=v}}if(s.transform||(d||i?o.transform=cN(s,n.transform,i):o.transform&&(o.transform="none")),m){const{originX:h="50%",originY:g="50%",originZ:v=0}=u;o.transformOrigin=`${h} ${g} ${v}`}}const uN={offset:"stroke-dashoffset",array:"stroke-dasharray"},dN={offset:"strokeDashoffset",array:"strokeDasharray"};function fN(n,s,i=1,o=0,c=!0){n.pathLength=1;const u=c?uN:dN;n[u.offset]=ke.transform(-o);const d=ke.transform(s),m=ke.transform(i);n[u.array]=`${d} ${m}`}function E0(n,s,i){return typeof n=="string"?n:ke.transform(s+i*n)}function pN(n,s,i){const o=E0(s,n.x,n.width),c=E0(i,n.y,n.height);return`${o} ${c}`}function Rp(n,{attrX:s,attrY:i,attrScale:o,originX:c,originY:u,pathLength:d,pathSpacing:m=1,pathOffset:h=0,...g},v,b){if(Dp(n,g,b),v){n.style.viewBox&&(n.attrs.viewBox=n.style.viewBox);return}n.attrs=n.style,n.style={};const{attrs:_,style:S,dimensions:T}=n;_.transform&&(T&&(S.transform=_.transform),delete _.transform),T&&(c!==void 0||u!==void 0||S.transform)&&(S.transformOrigin=pN(T,c!==void 0?c:.5,u!==void 0?u:.5)),s!==void 0&&(_.x=s),i!==void 0&&(_.y=i),o!==void 0&&(_.scale=o),d!==void 0&&fN(_,d,m,h,!1)}const Mp=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),r_=()=>({...Mp(),attrs:{}}),Op=n=>typeof n=="string"&&n.toLowerCase()==="svg";function l_(n,{style:s,vars:i},o,c){Object.assign(n.style,s,c&&c.getProjectionStyles(o));for(const u in i)n.style.setProperty(u,i[u])}const c_=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function u_(n,s,i,o){l_(n,s,void 0,o);for(const c in s.attrs)n.setAttribute(c_.has(c)?c:wp(c),s.attrs[c])}const bc={};function mN(n){Object.assign(bc,n)}function d_(n,{layout:s,layoutId:i}){return ti.has(n)||n.startsWith("origin")||(s||i!==void 0)&&(!!bc[n]||n==="opacity")}function Ip(n,s,i){var o;const{style:c}=n,u={};for(const d in c)(Wt(c[d])||s.style&&Wt(s.style[d])||d_(d,n)||((o=i==null?void 0:i.getValue(d))===null||o===void 0?void 0:o.liveStyle)!==void 0)&&(u[d]=c[d]);return u}function f_(n,s,i){const o=Ip(n,s,i);for(const c in n)if(Wt(n[c])||Wt(s[c])){const u=io.indexOf(c)!==-1?"attr"+c.charAt(0).toUpperCase()+c.substring(1):c;o[u]=n[c]}return o}function hN(n,s){try{s.dimensions=typeof n.getBBox=="function"?n.getBBox():n.getBoundingClientRect()}catch{s.dimensions={x:0,y:0,width:0,height:0}}}const A0=["x","y","width","height","cx","cy","r"],gN={useVisualState:s_({scrapeMotionValuesFromProps:f_,createRenderState:r_,onUpdate:({props:n,prevProps:s,current:i,renderState:o,latestValues:c})=>{if(!i)return;let u=!!n.drag;if(!u){for(const m in c)if(ti.has(m)){u=!0;break}}if(!u)return;let d=!s;if(s)for(let m=0;m<A0.length;m++){const h=A0[m];n[h]!==s[h]&&(d=!0)}d&&ft.read(()=>{hN(i,o),ft.render(()=>{Rp(o,c,Op(i.tagName),n.transformTemplate),u_(i,o)})})}})},vN={useVisualState:s_({scrapeMotionValuesFromProps:Ip,createRenderState:Mp})};function p_(n,s,i){for(const o in s)!Wt(s[o])&&!d_(o,i)&&(n[o]=s[o])}function yN({transformTemplate:n},s){return y.useMemo(()=>{const i=Mp();return Dp(i,s,n),Object.assign({},i.vars,i.style)},[s])}function bN(n,s){const i=n.style||{},o={};return p_(o,i,n),Object.assign(o,yN(n,s)),o}function _N(n,s){const i={},o=bN(n,s);return n.drag&&n.dragListener!==!1&&(i.draggable=!1,o.userSelect=o.WebkitUserSelect=o.WebkitTouchCallout="none",o.touchAction=n.drag===!0?"none":`pan-${n.drag==="x"?"y":"x"}`),n.tabIndex===void 0&&(n.onTap||n.onTapStart||n.whileTap)&&(i.tabIndex=0),i.style=o,i}function xN(n,s,i,o){const c=y.useMemo(()=>{const u=r_();return Rp(u,s,Op(o),n.transformTemplate),{...u.attrs,style:{...u.style}}},[s]);if(n.style){const u={};p_(u,n.style,n),c.style={...u,...c.style}}return c}function SN(n=!1){return(i,o,c,{latestValues:u},d)=>{const h=(jp(i)?xN:_N)(o,u,d,i),g=Bw(o,typeof i=="string",n),v=i!==y.Fragment?{...g,...h,ref:c}:{},{children:b}=o,_=y.useMemo(()=>Wt(b)?b.get():b,[b]);return y.createElement(i,{...v,children:_})}}function TN(n,s){return function(o,{forwardMotionProps:c}={forwardMotionProps:!1}){const d={...jp(o)?gN:vN,preloadedFeatures:n,useRender:SN(c),createVisualElement:s,Component:o};return Zw(d)}}function m_(n,s){if(!Array.isArray(s))return!1;const i=s.length;if(i!==n.length)return!1;for(let o=0;o<i;o++)if(s[o]!==n[o])return!1;return!0}function zc(n,s,i){const o=n.getProps();return Cp(o,s,i!==void 0?i:o.custom,n)}function Lp(n,s){return n?n[s]||n.default||n:void 0}const h_=new Set(["width","height","top","left","right","bottom",...io]);let pc;function kN(){pc=void 0}const is={now:()=>(pc===void 0&&is.set(Zt.isProcessing||Dw.useManualTiming?Zt.timestamp:performance.now()),pc),set:n=>{pc=n,queueMicrotask(kN)}};function Bp(n,s){n.indexOf(s)===-1&&n.push(s)}function Up(n,s){const i=n.indexOf(s);i>-1&&n.splice(i,1)}class zp{constructor(){this.subscriptions=[]}add(s){return Bp(this.subscriptions,s),()=>Up(this.subscriptions,s)}notify(s,i,o){const c=this.subscriptions.length;if(c)if(c===1)this.subscriptions[0](s,i,o);else for(let u=0;u<c;u++){const d=this.subscriptions[u];d&&d(s,i,o)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function g_(n,s){return s?n*(1e3/s):0}const D0=30,wN=n=>!isNaN(parseFloat(n));class NN{constructor(s,i={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(o,c=!0)=>{const u=is.now();this.updatedAt!==u&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(o),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),c&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(s),this.owner=i.owner}setCurrent(s){this.current=s,this.updatedAt=is.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=wN(this.current))}setPrevFrameValue(s=this.current){this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt}onChange(s){return this.on("change",s)}on(s,i){this.events[s]||(this.events[s]=new zp);const o=this.events[s].add(i);return s==="change"?()=>{o(),ft.read(()=>{this.events.change.getSize()||this.stop()})}:o}clearListeners(){for(const s in this.events)this.events[s].clear()}attach(s,i){this.passiveEffect=s,this.stopPassiveEffect=i}set(s,i=!0){!i||!this.passiveEffect?this.updateAndNotify(s,i):this.passiveEffect(s,this.updateAndNotify)}setWithVelocity(s,i,o){this.set(i),this.prev=void 0,this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt-o}jump(s,i=!0){this.updateAndNotify(s),this.prev=s,this.prevUpdatedAt=this.prevFrameValue=void 0,i&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const s=is.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>D0)return 0;const i=Math.min(this.updatedAt-this.prevUpdatedAt,D0);return g_(parseFloat(this.current)-parseFloat(this.prevFrameValue),i)}start(s){return this.stop(),new Promise(i=>{this.hasAnimated=!0,this.animation=s(i),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Tr(n,s){return new NN(n,s)}function jN(n,s,i){n.hasValue(s)?n.getValue(s).set(i):n.addValue(s,Tr(i))}function CN(n,s){const i=zc(n,s);let{transitionEnd:o={},transition:c={},...u}=i||{};u={...u,...o};for(const d in u){const m=Ww(u[d]);jN(n,d,m)}}function EN(n){return!!(Wt(n)&&n.add)}function Gf(n,s){const i=n.getValue("willChange");if(EN(i))return i.add(s)}function v_(n){return n.props[e_]}function Pp(n){let s;return()=>(s===void 0&&(s=n()),s)}const AN=Pp(()=>window.ScrollTimeline!==void 0);class DN{constructor(s){this.stop=()=>this.runAll("stop"),this.animations=s.filter(Boolean)}get finished(){return Promise.all(this.animations.map(s=>"finished"in s?s.finished:s))}getAll(s){return this.animations[0][s]}setAll(s,i){for(let o=0;o<this.animations.length;o++)this.animations[o][s]=i}attachTimeline(s,i){const o=this.animations.map(c=>{if(AN()&&c.attachTimeline)return c.attachTimeline(s);if(typeof i=="function")return i(c)});return()=>{o.forEach((c,u)=>{c&&c(),this.animations[u].stop()})}}get time(){return this.getAll("time")}set time(s){this.setAll("time",s)}get speed(){return this.getAll("speed")}set speed(s){this.setAll("speed",s)}get startTime(){return this.getAll("startTime")}get duration(){let s=0;for(let i=0;i<this.animations.length;i++)s=Math.max(s,this.animations[i].duration);return s}runAll(s){this.animations.forEach(i=>i[s]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class RN extends DN{then(s,i){return Promise.all(this.animations).then(s).catch(i)}}const Ds=n=>n*1e3,Rs=n=>n/1e3;function Vp(n){return typeof n=="function"}function R0(n,s){n.timeline=s,n.onfinish=null}const Hp=n=>Array.isArray(n)&&typeof n[0]=="number",MN={linearEasing:void 0};function ON(n,s){const i=Pp(n);return()=>{var o;return(o=MN[s])!==null&&o!==void 0?o:i()}}const _c=ON(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),eo=(n,s,i)=>{const o=s-n;return o===0?1:(i-n)/o},y_=(n,s,i=10)=>{let o="";const c=Math.max(Math.round(s/i),2);for(let u=0;u<c;u++)o+=n(eo(0,c-1,u))+", ";return`linear(${o.substring(0,o.length-2)})`};function b_(n){return!!(typeof n=="function"&&_c()||!n||typeof n=="string"&&(n in $f||_c())||Hp(n)||Array.isArray(n)&&n.every(b_))}const cr=([n,s,i,o])=>`cubic-bezier(${n}, ${s}, ${i}, ${o})`,$f={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:cr([0,.65,.55,1]),circOut:cr([.55,0,1,.45]),backIn:cr([.31,.01,.66,-.59]),backOut:cr([.33,1.53,.69,.99])};function __(n,s){if(n)return typeof n=="function"&&_c()?y_(n,s):Hp(n)?cr(n):Array.isArray(n)?n.map(i=>__(i,s)||$f.easeOut):$f[n]}const x_=(n,s,i)=>(((1-3*i+3*s)*n+(3*i-6*s))*n+3*s)*n,IN=1e-7,LN=12;function BN(n,s,i,o,c){let u,d,m=0;do d=s+(i-s)/2,u=x_(d,o,c)-n,u>0?i=d:s=d;while(Math.abs(u)>IN&&++m<LN);return d}function Ar(n,s,i,o){if(n===s&&i===o)return _n;const c=u=>BN(u,0,1,n,i);return u=>u===0||u===1?u:x_(c(u),s,o)}const S_=n=>s=>s<=.5?n(2*s)/2:(2-n(2*(1-s)))/2,T_=n=>s=>1-n(1-s),k_=Ar(.33,1.53,.69,.99),qp=T_(k_),w_=S_(qp),N_=n=>(n*=2)<1?.5*qp(n):.5*(2-Math.pow(2,-10*(n-1))),Gp=n=>1-Math.sin(Math.acos(n)),j_=T_(Gp),C_=S_(Gp),E_=n=>/^0[^.\s]+$/u.test(n);function UN(n){return typeof n=="number"?n===0:n!==null?n==="none"||n==="0"||E_(n):!0}const mr=n=>Math.round(n*1e5)/1e5,$p=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function zN(n){return n==null}const PN=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Zp=(n,s)=>i=>!!(typeof i=="string"&&PN.test(i)&&i.startsWith(n)||s&&!zN(i)&&Object.prototype.hasOwnProperty.call(i,s)),A_=(n,s,i)=>o=>{if(typeof o!="string")return o;const[c,u,d,m]=o.match($p);return{[n]:parseFloat(c),[s]:parseFloat(u),[i]:parseFloat(d),alpha:m!==void 0?parseFloat(m):1}},VN=n=>Is(0,255,n),df={...oo,transform:n=>Math.round(VN(n))},Za={test:Zp("rgb","red"),parse:A_("red","green","blue"),transform:({red:n,green:s,blue:i,alpha:o=1})=>"rgba("+df.transform(n)+", "+df.transform(s)+", "+df.transform(i)+", "+mr(Sr.transform(o))+")"};function HN(n){let s="",i="",o="",c="";return n.length>5?(s=n.substring(1,3),i=n.substring(3,5),o=n.substring(5,7),c=n.substring(7,9)):(s=n.substring(1,2),i=n.substring(2,3),o=n.substring(3,4),c=n.substring(4,5),s+=s,i+=i,o+=o,c+=c),{red:parseInt(s,16),green:parseInt(i,16),blue:parseInt(o,16),alpha:c?parseInt(c,16)/255:1}}const Zf={test:Zp("#"),parse:HN,transform:Za.transform},Gi={test:Zp("hsl","hue"),parse:A_("hue","saturation","lightness"),transform:({hue:n,saturation:s,lightness:i,alpha:o=1})=>"hsla("+Math.round(n)+", "+as.transform(mr(s))+", "+as.transform(mr(i))+", "+mr(Sr.transform(o))+")"},Xt={test:n=>Za.test(n)||Zf.test(n)||Gi.test(n),parse:n=>Za.test(n)?Za.parse(n):Gi.test(n)?Gi.parse(n):Zf.parse(n),transform:n=>typeof n=="string"?n:n.hasOwnProperty("red")?Za.transform(n):Gi.transform(n)},qN=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function GN(n){var s,i;return isNaN(n)&&typeof n=="string"&&(((s=n.match($p))===null||s===void 0?void 0:s.length)||0)+(((i=n.match(qN))===null||i===void 0?void 0:i.length)||0)>0}const D_="number",R_="color",$N="var",ZN="var(",M0="${}",FN=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function kr(n){const s=n.toString(),i=[],o={color:[],number:[],var:[]},c=[];let u=0;const m=s.replace(FN,h=>(Xt.test(h)?(o.color.push(u),c.push(R_),i.push(Xt.parse(h))):h.startsWith(ZN)?(o.var.push(u),c.push($N),i.push(h)):(o.number.push(u),c.push(D_),i.push(parseFloat(h))),++u,M0)).split(M0);return{values:i,split:m,indexes:o,types:c}}function M_(n){return kr(n).values}function O_(n){const{split:s,types:i}=kr(n),o=s.length;return c=>{let u="";for(let d=0;d<o;d++)if(u+=s[d],c[d]!==void 0){const m=i[d];m===D_?u+=mr(c[d]):m===R_?u+=Xt.transform(c[d]):u+=c[d]}return u}}const KN=n=>typeof n=="number"?0:n;function YN(n){const s=M_(n);return O_(n)(s.map(KN))}const ha={test:GN,parse:M_,createTransformer:O_,getAnimatableNone:YN},JN=new Set(["brightness","contrast","saturate","opacity"]);function XN(n){const[s,i]=n.slice(0,-1).split("(");if(s==="drop-shadow")return n;const[o]=i.match($p)||[];if(!o)return n;const c=i.replace(o,"");let u=JN.has(s)?1:0;return o!==i&&(u*=100),s+"("+u+c+")"}const WN=/\b([a-z-]*)\(.*?\)/gu,Ff={...ha,getAnimatableNone:n=>{const s=n.match(WN);return s?s.map(XN).join(" "):n}},QN={...Ap,color:Xt,backgroundColor:Xt,outlineColor:Xt,fill:Xt,stroke:Xt,borderColor:Xt,borderTopColor:Xt,borderRightColor:Xt,borderBottomColor:Xt,borderLeftColor:Xt,filter:Ff,WebkitFilter:Ff},Fp=n=>QN[n];function I_(n,s){let i=Fp(n);return i!==Ff&&(i=ha),i.getAnimatableNone?i.getAnimatableNone(s):void 0}const ej=new Set(["auto","none","0"]);function tj(n,s,i){let o=0,c;for(;o<n.length&&!c;){const u=n[o];typeof u=="string"&&!ej.has(u)&&kr(u).values.length&&(c=n[o]),o++}if(c&&i)for(const u of s)n[u]=I_(i,c)}const O0=n=>n===oo||n===ke,I0=(n,s)=>parseFloat(n.split(", ")[s]),L0=(n,s)=>(i,{transform:o})=>{if(o==="none"||!o)return 0;const c=o.match(/^matrix3d\((.+)\)$/u);if(c)return I0(c[1],s);{const u=o.match(/^matrix\((.+)\)$/u);return u?I0(u[1],n):0}},nj=new Set(["x","y","z"]),sj=io.filter(n=>!nj.has(n));function aj(n){const s=[];return sj.forEach(i=>{const o=n.getValue(i);o!==void 0&&(s.push([i,o.get()]),o.set(i.startsWith("scale")?1:0))}),s}const to={width:({x:n},{paddingLeft:s="0",paddingRight:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),height:({y:n},{paddingTop:s="0",paddingBottom:i="0"})=>n.max-n.min-parseFloat(s)-parseFloat(i),top:(n,{top:s})=>parseFloat(s),left:(n,{left:s})=>parseFloat(s),bottom:({y:n},{top:s})=>parseFloat(s)+(n.max-n.min),right:({x:n},{left:s})=>parseFloat(s)+(n.max-n.min),x:L0(4,13),y:L0(5,14)};to.translateX=to.x;to.translateY=to.y;const Ka=new Set;let Kf=!1,Yf=!1;function L_(){if(Yf){const n=Array.from(Ka).filter(o=>o.needsMeasurement),s=new Set(n.map(o=>o.element)),i=new Map;s.forEach(o=>{const c=aj(o);c.length&&(i.set(o,c),o.render())}),n.forEach(o=>o.measureInitialState()),s.forEach(o=>{o.render();const c=i.get(o);c&&c.forEach(([u,d])=>{var m;(m=o.getValue(u))===null||m===void 0||m.set(d)})}),n.forEach(o=>o.measureEndState()),n.forEach(o=>{o.suspendedScrollY!==void 0&&window.scrollTo(0,o.suspendedScrollY)})}Yf=!1,Kf=!1,Ka.forEach(n=>n.complete()),Ka.clear()}function B_(){Ka.forEach(n=>{n.readKeyframes(),n.needsMeasurement&&(Yf=!0)})}function ij(){B_(),L_()}class Kp{constructor(s,i,o,c,u,d=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...s],this.onComplete=i,this.name=o,this.motionValue=c,this.element=u,this.isAsync=d}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ka.add(this),Kf||(Kf=!0,ft.read(B_),ft.resolveKeyframes(L_))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:s,name:i,element:o,motionValue:c}=this;for(let u=0;u<s.length;u++)if(s[u]===null)if(u===0){const d=c==null?void 0:c.get(),m=s[s.length-1];if(d!==void 0)s[0]=d;else if(o&&i){const h=o.readValue(i,m);h!=null&&(s[0]=h)}s[0]===void 0&&(s[0]=m),c&&d===void 0&&c.set(s[0])}else s[u]=s[u-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Ka.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ka.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const U_=n=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(n),oj=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function rj(n){const s=oj.exec(n);if(!s)return[,];const[,i,o,c]=s;return[`--${i??o}`,c]}function z_(n,s,i=1){const[o,c]=rj(n);if(!o)return;const u=window.getComputedStyle(s).getPropertyValue(o);if(u){const d=u.trim();return U_(d)?parseFloat(d):d}return Ep(c)?z_(c,s,i+1):c}const P_=n=>s=>s.test(n),lj={test:n=>n==="auto",parse:n=>n},V_=[oo,ke,as,pa,aN,sN,lj],B0=n=>V_.find(P_(n));class H_ extends Kp{constructor(s,i,o,c,u){super(s,i,o,c,u,!0)}readKeyframes(){const{unresolvedKeyframes:s,element:i,name:o}=this;if(!i||!i.current)return;super.readKeyframes();for(let h=0;h<s.length;h++){let g=s[h];if(typeof g=="string"&&(g=g.trim(),Ep(g))){const v=z_(g,i.current);v!==void 0&&(s[h]=v),h===s.length-1&&(this.finalKeyframe=g)}}if(this.resolveNoneKeyframes(),!h_.has(o)||s.length!==2)return;const[c,u]=s,d=B0(c),m=B0(u);if(d!==m)if(O0(d)&&O0(m))for(let h=0;h<s.length;h++){const g=s[h];typeof g=="string"&&(s[h]=parseFloat(g))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:s,name:i}=this,o=[];for(let c=0;c<s.length;c++)UN(s[c])&&o.push(c);o.length&&tj(s,o,i)}measureInitialState(){const{element:s,unresolvedKeyframes:i,name:o}=this;if(!s||!s.current)return;o==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=to[o](s.measureViewportBox(),window.getComputedStyle(s.current)),i[0]=this.measuredOrigin;const c=i[i.length-1];c!==void 0&&s.getValue(o,c).jump(c,!1)}measureEndState(){var s;const{element:i,name:o,unresolvedKeyframes:c}=this;if(!i||!i.current)return;const u=i.getValue(o);u&&u.jump(this.measuredOrigin,!1);const d=c.length-1,m=c[d];c[d]=to[o](i.measureViewportBox(),window.getComputedStyle(i.current)),m!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=m),!((s=this.removedTransforms)===null||s===void 0)&&s.length&&this.removedTransforms.forEach(([h,g])=>{i.getValue(h).set(g)}),this.resolveNoneKeyframes()}}const U0=(n,s)=>s==="zIndex"?!1:!!(typeof n=="number"||Array.isArray(n)||typeof n=="string"&&(ha.test(n)||n==="0")&&!n.startsWith("url("));function cj(n){const s=n[0];if(n.length===1)return!0;for(let i=0;i<n.length;i++)if(n[i]!==s)return!0}function uj(n,s,i,o){const c=n[0];if(c===null)return!1;if(s==="display"||s==="visibility")return!0;const u=n[n.length-1],d=U0(c,s),m=U0(u,s);return!d||!m?!1:cj(n)||(i==="spring"||Vp(i))&&o}const dj=n=>n!==null;function Pc(n,{repeat:s,repeatType:i="loop"},o){const c=n.filter(dj),u=s&&i!=="loop"&&s%2===1?0:c.length-1;return!u||o===void 0?c[u]:o}const fj=40;class q_{constructor({autoplay:s=!0,delay:i=0,type:o="keyframes",repeat:c=0,repeatDelay:u=0,repeatType:d="loop",...m}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=is.now(),this.options={autoplay:s,delay:i,type:o,repeat:c,repeatDelay:u,repeatType:d,...m},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>fj?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&ij(),this._resolved}onKeyframesResolved(s,i){this.resolvedAt=is.now(),this.hasAttemptedResolve=!0;const{name:o,type:c,velocity:u,delay:d,onComplete:m,onUpdate:h,isGenerator:g}=this.options;if(!g&&!uj(s,o,c,u))if(d)this.options.duration=0;else{h&&h(Pc(s,this.options,i)),m&&m(),this.resolveFinishedPromise();return}const v=this.initPlayback(s,i);v!==!1&&(this._resolved={keyframes:s,finalKeyframe:i,...v},this.onPostResolved())}onPostResolved(){}then(s,i){return this.currentFinishedPromise.then(s,i)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(s=>{this.resolveFinishedPromise=s})}}const Jf=2e4;function G_(n){let s=0;const i=50;let o=n.next(s);for(;!o.done&&s<Jf;)s+=i,o=n.next(s);return s>=Jf?1/0:s}const vt=(n,s,i)=>n+(s-n)*i;function ff(n,s,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?n+(s-n)*6*i:i<1/2?s:i<2/3?n+(s-n)*(2/3-i)*6:n}function pj({hue:n,saturation:s,lightness:i,alpha:o}){n/=360,s/=100,i/=100;let c=0,u=0,d=0;if(!s)c=u=d=i;else{const m=i<.5?i*(1+s):i+s-i*s,h=2*i-m;c=ff(h,m,n+1/3),u=ff(h,m,n),d=ff(h,m,n-1/3)}return{red:Math.round(c*255),green:Math.round(u*255),blue:Math.round(d*255),alpha:o}}function xc(n,s){return i=>i>0?s:n}const pf=(n,s,i)=>{const o=n*n,c=i*(s*s-o)+o;return c<0?0:Math.sqrt(c)},mj=[Zf,Za,Gi],hj=n=>mj.find(s=>s.test(n));function z0(n){const s=hj(n);if(!s)return!1;let i=s.parse(n);return s===Gi&&(i=pj(i)),i}const P0=(n,s)=>{const i=z0(n),o=z0(s);if(!i||!o)return xc(n,s);const c={...i};return u=>(c.red=pf(i.red,o.red,u),c.green=pf(i.green,o.green,u),c.blue=pf(i.blue,o.blue,u),c.alpha=vt(i.alpha,o.alpha,u),Za.transform(c))},gj=(n,s)=>i=>s(n(i)),Dr=(...n)=>n.reduce(gj),Xf=new Set(["none","hidden"]);function vj(n,s){return Xf.has(n)?i=>i<=0?n:s:i=>i>=1?s:n}function yj(n,s){return i=>vt(n,s,i)}function Yp(n){return typeof n=="number"?yj:typeof n=="string"?Ep(n)?xc:Xt.test(n)?P0:xj:Array.isArray(n)?$_:typeof n=="object"?Xt.test(n)?P0:bj:xc}function $_(n,s){const i=[...n],o=i.length,c=n.map((u,d)=>Yp(u)(u,s[d]));return u=>{for(let d=0;d<o;d++)i[d]=c[d](u);return i}}function bj(n,s){const i={...n,...s},o={};for(const c in i)n[c]!==void 0&&s[c]!==void 0&&(o[c]=Yp(n[c])(n[c],s[c]));return c=>{for(const u in o)i[u]=o[u](c);return i}}function _j(n,s){var i;const o=[],c={color:0,var:0,number:0};for(let u=0;u<s.values.length;u++){const d=s.types[u],m=n.indexes[d][c[d]],h=(i=n.values[m])!==null&&i!==void 0?i:0;o[u]=h,c[d]++}return o}const xj=(n,s)=>{const i=ha.createTransformer(s),o=kr(n),c=kr(s);return o.indexes.var.length===c.indexes.var.length&&o.indexes.color.length===c.indexes.color.length&&o.indexes.number.length>=c.indexes.number.length?Xf.has(n)&&!c.values.length||Xf.has(s)&&!o.values.length?vj(n,s):Dr($_(_j(o,c),c.values),i):xc(n,s)};function Z_(n,s,i){return typeof n=="number"&&typeof s=="number"&&typeof i=="number"?vt(n,s,i):Yp(n)(n,s)}const Sj=5;function F_(n,s,i){const o=Math.max(s-Sj,0);return g_(i-n(o),s-o)}const _t={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},mf=.001;function Tj({duration:n=_t.duration,bounce:s=_t.bounce,velocity:i=_t.velocity,mass:o=_t.mass}){let c,u,d=1-s;d=Is(_t.minDamping,_t.maxDamping,d),n=Is(_t.minDuration,_t.maxDuration,Rs(n)),d<1?(c=g=>{const v=g*d,b=v*n,_=v-i,S=Wf(g,d),T=Math.exp(-b);return mf-_/S*T},u=g=>{const b=g*d*n,_=b*i+i,S=Math.pow(d,2)*Math.pow(g,2)*n,T=Math.exp(-b),N=Wf(Math.pow(g,2),d);return(-c(g)+mf>0?-1:1)*((_-S)*T)/N}):(c=g=>{const v=Math.exp(-g*n),b=(g-i)*n+1;return-mf+v*b},u=g=>{const v=Math.exp(-g*n),b=(i-g)*(n*n);return v*b});const m=5/n,h=wj(c,u,m);if(n=Ds(n),isNaN(h))return{stiffness:_t.stiffness,damping:_t.damping,duration:n};{const g=Math.pow(h,2)*o;return{stiffness:g,damping:d*2*Math.sqrt(o*g),duration:n}}}const kj=12;function wj(n,s,i){let o=i;for(let c=1;c<kj;c++)o=o-n(o)/s(o);return o}function Wf(n,s){return n*Math.sqrt(1-s*s)}const Nj=["duration","bounce"],jj=["stiffness","damping","mass"];function V0(n,s){return s.some(i=>n[i]!==void 0)}function Cj(n){let s={velocity:_t.velocity,stiffness:_t.stiffness,damping:_t.damping,mass:_t.mass,isResolvedFromDuration:!1,...n};if(!V0(n,jj)&&V0(n,Nj))if(n.visualDuration){const i=n.visualDuration,o=2*Math.PI/(i*1.2),c=o*o,u=2*Is(.05,1,1-(n.bounce||0))*Math.sqrt(c);s={...s,mass:_t.mass,stiffness:c,damping:u}}else{const i=Tj(n);s={...s,...i,mass:_t.mass},s.isResolvedFromDuration=!0}return s}function K_(n=_t.visualDuration,s=_t.bounce){const i=typeof n!="object"?{visualDuration:n,keyframes:[0,1],bounce:s}:n;let{restSpeed:o,restDelta:c}=i;const u=i.keyframes[0],d=i.keyframes[i.keyframes.length-1],m={done:!1,value:u},{stiffness:h,damping:g,mass:v,duration:b,velocity:_,isResolvedFromDuration:S}=Cj({...i,velocity:-Rs(i.velocity||0)}),T=_||0,N=g/(2*Math.sqrt(h*v)),j=d-u,w=Rs(Math.sqrt(h/v)),E=Math.abs(j)<5;o||(o=E?_t.restSpeed.granular:_t.restSpeed.default),c||(c=E?_t.restDelta.granular:_t.restDelta.default);let A;if(N<1){const C=Wf(w,N);A=M=>{const G=Math.exp(-N*w*M);return d-G*((T+N*w*j)/C*Math.sin(C*M)+j*Math.cos(C*M))}}else if(N===1)A=C=>d-Math.exp(-w*C)*(j+(T+w*j)*C);else{const C=w*Math.sqrt(N*N-1);A=M=>{const G=Math.exp(-N*w*M),U=Math.min(C*M,300);return d-G*((T+N*w*j)*Math.sinh(U)+C*j*Math.cosh(U))/C}}const O={calculatedDuration:S&&b||null,next:C=>{const M=A(C);if(S)m.done=C>=b;else{let G=0;N<1&&(G=C===0?Ds(T):F_(A,C,M));const U=Math.abs(G)<=o,V=Math.abs(d-M)<=c;m.done=U&&V}return m.value=m.done?d:M,m},toString:()=>{const C=Math.min(G_(O),Jf),M=y_(G=>O.next(C*G).value,C,30);return C+"ms "+M}};return O}function H0({keyframes:n,velocity:s=0,power:i=.8,timeConstant:o=325,bounceDamping:c=10,bounceStiffness:u=500,modifyTarget:d,min:m,max:h,restDelta:g=.5,restSpeed:v}){const b=n[0],_={done:!1,value:b},S=U=>m!==void 0&&U<m||h!==void 0&&U>h,T=U=>m===void 0?h:h===void 0||Math.abs(m-U)<Math.abs(h-U)?m:h;let N=i*s;const j=b+N,w=d===void 0?j:d(j);w!==j&&(N=w-b);const E=U=>-N*Math.exp(-U/o),A=U=>w+E(U),O=U=>{const V=E(U),F=A(U);_.done=Math.abs(V)<=g,_.value=_.done?w:F};let C,M;const G=U=>{S(_.value)&&(C=U,M=K_({keyframes:[_.value,T(_.value)],velocity:F_(A,U,_.value),damping:c,stiffness:u,restDelta:g,restSpeed:v}))};return G(0),{calculatedDuration:null,next:U=>{let V=!1;return!M&&C===void 0&&(V=!0,O(U),G(U)),C!==void 0&&U>=C?M.next(U-C):(!V&&O(U),_)}}}const Ej=Ar(.42,0,1,1),Aj=Ar(0,0,.58,1),Y_=Ar(.42,0,.58,1),Dj=n=>Array.isArray(n)&&typeof n[0]!="number",Rj={linear:_n,easeIn:Ej,easeInOut:Y_,easeOut:Aj,circIn:Gp,circInOut:C_,circOut:j_,backIn:qp,backInOut:w_,backOut:k_,anticipate:N_},q0=n=>{if(Hp(n)){Yb(n.length===4);const[s,i,o,c]=n;return Ar(s,i,o,c)}else if(typeof n=="string")return Rj[n];return n};function Mj(n,s,i){const o=[],c=i||Z_,u=n.length-1;for(let d=0;d<u;d++){let m=c(n[d],n[d+1]);if(s){const h=Array.isArray(s)?s[d]||_n:s;m=Dr(h,m)}o.push(m)}return o}function Oj(n,s,{clamp:i=!0,ease:o,mixer:c}={}){const u=n.length;if(Yb(u===s.length),u===1)return()=>s[0];if(u===2&&s[0]===s[1])return()=>s[1];const d=n[0]===n[1];n[0]>n[u-1]&&(n=[...n].reverse(),s=[...s].reverse());const m=Mj(s,o,c),h=m.length,g=v=>{if(d&&v<n[0])return s[0];let b=0;if(h>1)for(;b<n.length-2&&!(v<n[b+1]);b++);const _=eo(n[b],n[b+1],v);return m[b](_)};return i?v=>g(Is(n[0],n[u-1],v)):g}function Ij(n,s){const i=n[n.length-1];for(let o=1;o<=s;o++){const c=eo(0,s,o);n.push(vt(i,1,c))}}function Lj(n){const s=[0];return Ij(s,n.length-1),s}function Bj(n,s){return n.map(i=>i*s)}function Uj(n,s){return n.map(()=>s||Y_).splice(0,n.length-1)}function Sc({duration:n=300,keyframes:s,times:i,ease:o="easeInOut"}){const c=Dj(o)?o.map(q0):q0(o),u={done:!1,value:s[0]},d=Bj(i&&i.length===s.length?i:Lj(s),n),m=Oj(d,s,{ease:Array.isArray(c)?c:Uj(s,c)});return{calculatedDuration:n,next:h=>(u.value=m(h),u.done=h>=n,u)}}const zj=n=>{const s=({timestamp:i})=>n(i);return{start:()=>ft.update(s,!0),stop:()=>ma(s),now:()=>Zt.isProcessing?Zt.timestamp:is.now()}},Pj={decay:H0,inertia:H0,tween:Sc,keyframes:Sc,spring:K_},Vj=n=>n/100;class Jp extends q_{constructor(s){super(s),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:h}=this.options;h&&h()};const{name:i,motionValue:o,element:c,keyframes:u}=this.options,d=(c==null?void 0:c.KeyframeResolver)||Kp,m=(h,g)=>this.onKeyframesResolved(h,g);this.resolver=new d(u,m,i,o,c),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(s){const{type:i="keyframes",repeat:o=0,repeatDelay:c=0,repeatType:u,velocity:d=0}=this.options,m=Vp(i)?i:Pj[i]||Sc;let h,g;m!==Sc&&typeof s[0]!="number"&&(h=Dr(Vj,Z_(s[0],s[1])),s=[0,100]);const v=m({...this.options,keyframes:s});u==="mirror"&&(g=m({...this.options,keyframes:[...s].reverse(),velocity:-d})),v.calculatedDuration===null&&(v.calculatedDuration=G_(v));const{calculatedDuration:b}=v,_=b+c,S=_*(o+1)-c;return{generator:v,mirroredGenerator:g,mapPercentToKeyframes:h,calculatedDuration:b,resolvedDuration:_,totalDuration:S}}onPostResolved(){const{autoplay:s=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!s?this.pause():this.state=this.pendingPlayState}tick(s,i=!1){const{resolved:o}=this;if(!o){const{keyframes:U}=this.options;return{done:!0,value:U[U.length-1]}}const{finalKeyframe:c,generator:u,mirroredGenerator:d,mapPercentToKeyframes:m,keyframes:h,calculatedDuration:g,totalDuration:v,resolvedDuration:b}=o;if(this.startTime===null)return u.next(0);const{delay:_,repeat:S,repeatType:T,repeatDelay:N,onUpdate:j}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,s):this.speed<0&&(this.startTime=Math.min(s-v/this.speed,this.startTime)),i?this.currentTime=s:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(s-this.startTime)*this.speed;const w=this.currentTime-_*(this.speed>=0?1:-1),E=this.speed>=0?w<0:w>v;this.currentTime=Math.max(w,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=v);let A=this.currentTime,O=u;if(S){const U=Math.min(this.currentTime,v)/b;let V=Math.floor(U),F=U%1;!F&&U>=1&&(F=1),F===1&&V--,V=Math.min(V,S+1),!!(V%2)&&(T==="reverse"?(F=1-F,N&&(F-=N/b)):T==="mirror"&&(O=d)),A=Is(0,1,F)*b}const C=E?{done:!1,value:h[0]}:O.next(A);m&&(C.value=m(C.value));let{done:M}=C;!E&&g!==null&&(M=this.speed>=0?this.currentTime>=v:this.currentTime<=0);const G=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&M);return G&&c!==void 0&&(C.value=Pc(h,this.options,c)),j&&j(C.value),G&&this.finish(),C}get duration(){const{resolved:s}=this;return s?Rs(s.calculatedDuration):0}get time(){return Rs(this.currentTime)}set time(s){s=Ds(s),this.currentTime=s,this.holdTime!==null||this.speed===0?this.holdTime=s:this.driver&&(this.startTime=this.driver.now()-s/this.speed)}get speed(){return this.playbackSpeed}set speed(s){const i=this.playbackSpeed!==s;this.playbackSpeed=s,i&&(this.time=Rs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:s=zj,onPlay:i,startTime:o}=this.options;this.driver||(this.driver=s(u=>this.tick(u))),i&&i();const c=this.driver.now();this.holdTime!==null?this.startTime=c-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=c):this.startTime=o??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var s;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(s=this.currentTime)!==null&&s!==void 0?s:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:s}=this.options;s&&s()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(s){return this.startTime=0,this.tick(s,!0)}}const Hj=new Set(["opacity","clipPath","filter","transform"]);function qj(n,s,i,{delay:o=0,duration:c=300,repeat:u=0,repeatType:d="loop",ease:m="easeInOut",times:h}={}){const g={[s]:i};h&&(g.offset=h);const v=__(m,c);return Array.isArray(v)&&(g.easing=v),n.animate(g,{delay:o,duration:c,easing:Array.isArray(v)?"linear":v,fill:"both",iterations:u+1,direction:d==="reverse"?"alternate":"normal"})}const Gj=Pp(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Tc=10,$j=2e4;function Zj(n){return Vp(n.type)||n.type==="spring"||!b_(n.ease)}function Fj(n,s){const i=new Jp({...s,keyframes:n,repeat:0,delay:0,isGenerator:!0});let o={done:!1,value:n[0]};const c=[];let u=0;for(;!o.done&&u<$j;)o=i.sample(u),c.push(o.value),u+=Tc;return{times:void 0,keyframes:c,duration:u-Tc,ease:"linear"}}const J_={anticipate:N_,backInOut:w_,circInOut:C_};function Kj(n){return n in J_}class G0 extends q_{constructor(s){super(s);const{name:i,motionValue:o,element:c,keyframes:u}=this.options;this.resolver=new H_(u,(d,m)=>this.onKeyframesResolved(d,m),i,o,c),this.resolver.scheduleResolve()}initPlayback(s,i){let{duration:o=300,times:c,ease:u,type:d,motionValue:m,name:h,startTime:g}=this.options;if(!m.owner||!m.owner.current)return!1;if(typeof u=="string"&&_c()&&Kj(u)&&(u=J_[u]),Zj(this.options)){const{onComplete:b,onUpdate:_,motionValue:S,element:T,...N}=this.options,j=Fj(s,N);s=j.keyframes,s.length===1&&(s[1]=s[0]),o=j.duration,c=j.times,u=j.ease,d="keyframes"}const v=qj(m.owner.current,h,s,{...this.options,duration:o,times:c,ease:u});return v.startTime=g??this.calcStartTime(),this.pendingTimeline?(R0(v,this.pendingTimeline),this.pendingTimeline=void 0):v.onfinish=()=>{const{onComplete:b}=this.options;m.set(Pc(s,this.options,i)),b&&b(),this.cancel(),this.resolveFinishedPromise()},{animation:v,duration:o,times:c,type:d,ease:u,keyframes:s}}get duration(){const{resolved:s}=this;if(!s)return 0;const{duration:i}=s;return Rs(i)}get time(){const{resolved:s}=this;if(!s)return 0;const{animation:i}=s;return Rs(i.currentTime||0)}set time(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.currentTime=Ds(s)}get speed(){const{resolved:s}=this;if(!s)return 1;const{animation:i}=s;return i.playbackRate}set speed(s){const{resolved:i}=this;if(!i)return;const{animation:o}=i;o.playbackRate=s}get state(){const{resolved:s}=this;if(!s)return"idle";const{animation:i}=s;return i.playState}get startTime(){const{resolved:s}=this;if(!s)return null;const{animation:i}=s;return i.startTime}attachTimeline(s){if(!this._resolved)this.pendingTimeline=s;else{const{resolved:i}=this;if(!i)return _n;const{animation:o}=i;R0(o,s)}return _n}play(){if(this.isStopped)return;const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.playState==="finished"&&this.updateFinishedPromise(),i.play()}pause(){const{resolved:s}=this;if(!s)return;const{animation:i}=s;i.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:s}=this;if(!s)return;const{animation:i,keyframes:o,duration:c,type:u,ease:d,times:m}=s;if(i.playState==="idle"||i.playState==="finished")return;if(this.time){const{motionValue:g,onUpdate:v,onComplete:b,element:_,...S}=this.options,T=new Jp({...S,keyframes:o,duration:c,type:u,ease:d,times:m,isGenerator:!0}),N=Ds(this.time);g.setWithVelocity(T.sample(N-Tc).value,T.sample(N).value,Tc)}const{onStop:h}=this.options;h&&h(),this.cancel()}complete(){const{resolved:s}=this;s&&s.animation.finish()}cancel(){const{resolved:s}=this;s&&s.animation.cancel()}static supports(s){const{motionValue:i,name:o,repeatDelay:c,repeatType:u,damping:d,type:m}=s;if(!i||!i.owner||!(i.owner.current instanceof HTMLElement))return!1;const{onUpdate:h,transformTemplate:g}=i.owner.getProps();return Gj()&&o&&Hj.has(o)&&!h&&!g&&!c&&u!=="mirror"&&d!==0&&m!=="inertia"}}const Yj={type:"spring",stiffness:500,damping:25,restSpeed:10},Jj=n=>({type:"spring",stiffness:550,damping:n===0?2*Math.sqrt(550):30,restSpeed:10}),Xj={type:"keyframes",duration:.8},Wj={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},Qj=(n,{keyframes:s})=>s.length>2?Xj:ti.has(n)?n.startsWith("scale")?Jj(s[1]):Yj:Wj;function eC({when:n,delay:s,delayChildren:i,staggerChildren:o,staggerDirection:c,repeat:u,repeatType:d,repeatDelay:m,from:h,elapsed:g,...v}){return!!Object.keys(v).length}const Xp=(n,s,i,o={},c,u)=>d=>{const m=Lp(o,n)||{},h=m.delay||o.delay||0;let{elapsed:g=0}=o;g=g-Ds(h);let v={keyframes:Array.isArray(i)?i:[null,i],ease:"easeOut",velocity:s.getVelocity(),...m,delay:-g,onUpdate:_=>{s.set(_),m.onUpdate&&m.onUpdate(_)},onComplete:()=>{d(),m.onComplete&&m.onComplete()},name:n,motionValue:s,element:u?void 0:c};eC(m)||(v={...v,...Qj(n,v)}),v.duration&&(v.duration=Ds(v.duration)),v.repeatDelay&&(v.repeatDelay=Ds(v.repeatDelay)),v.from!==void 0&&(v.keyframes[0]=v.from);let b=!1;if((v.type===!1||v.duration===0&&!v.repeatDelay)&&(v.duration=0,v.delay===0&&(b=!0)),b&&!u&&s.get()!==void 0){const _=Pc(v.keyframes,m);if(_!==void 0)return ft.update(()=>{v.onUpdate(_),v.onComplete()}),new RN([])}return!u&&G0.supports(v)?new G0(v):new Jp(v)};function tC({protectedKeys:n,needsAnimating:s},i){const o=n.hasOwnProperty(i)&&s[i]!==!0;return s[i]=!1,o}function X_(n,s,{delay:i=0,transitionOverride:o,type:c}={}){var u;let{transition:d=n.getDefaultTransition(),transitionEnd:m,...h}=s;o&&(d=o);const g=[],v=c&&n.animationState&&n.animationState.getState()[c];for(const b in h){const _=n.getValue(b,(u=n.latestValues[b])!==null&&u!==void 0?u:null),S=h[b];if(S===void 0||v&&tC(v,b))continue;const T={delay:i,...Lp(d||{},b)};let N=!1;if(window.MotionHandoffAnimation){const w=v_(n);if(w){const E=window.MotionHandoffAnimation(w,b,ft);E!==null&&(T.startTime=E,N=!0)}}Gf(n,b),_.start(Xp(b,_,S,n.shouldReduceMotion&&h_.has(b)?{type:!1}:T,n,N));const j=_.animation;j&&g.push(j)}return m&&Promise.all(g).then(()=>{ft.update(()=>{m&&CN(n,m)})}),g}function Qf(n,s,i={}){var o;const c=zc(n,s,i.type==="exit"?(o=n.presenceContext)===null||o===void 0?void 0:o.custom:void 0);let{transition:u=n.getDefaultTransition()||{}}=c||{};i.transitionOverride&&(u=i.transitionOverride);const d=c?()=>Promise.all(X_(n,c,i)):()=>Promise.resolve(),m=n.variantChildren&&n.variantChildren.size?(g=0)=>{const{delayChildren:v=0,staggerChildren:b,staggerDirection:_}=u;return nC(n,s,v+g,b,_,i)}:()=>Promise.resolve(),{when:h}=u;if(h){const[g,v]=h==="beforeChildren"?[d,m]:[m,d];return g().then(()=>v())}else return Promise.all([d(),m(i.delay)])}function nC(n,s,i=0,o=0,c=1,u){const d=[],m=(n.variantChildren.size-1)*o,h=c===1?(g=0)=>g*o:(g=0)=>m-g*o;return Array.from(n.variantChildren).sort(sC).forEach((g,v)=>{g.notify("AnimationStart",s),d.push(Qf(g,s,{...u,delay:i+h(v)}).then(()=>g.notify("AnimationComplete",s)))}),Promise.all(d)}function sC(n,s){return n.sortNodePosition(s)}function aC(n,s,i={}){n.notify("AnimationStart",s);let o;if(Array.isArray(s)){const c=s.map(u=>Qf(n,u,i));o=Promise.all(c)}else if(typeof s=="string")o=Qf(n,s,i);else{const c=typeof s=="function"?zc(n,s,i.custom):s;o=Promise.all(X_(n,c,i))}return o.then(()=>{n.notify("AnimationComplete",s)})}const iC=kp.length;function W_(n){if(!n)return;if(!n.isControllingVariants){const i=n.parent?W_(n.parent)||{}:{};return n.props.initial!==void 0&&(i.initial=n.props.initial),i}const s={};for(let i=0;i<iC;i++){const o=kp[i],c=n.props[o];(xr(c)||c===!1)&&(s[o]=c)}return s}const oC=[...Tp].reverse(),rC=Tp.length;function lC(n){return s=>Promise.all(s.map(({animation:i,options:o})=>aC(n,i,o)))}function cC(n){let s=lC(n),i=$0(),o=!0;const c=h=>(g,v)=>{var b;const _=zc(n,v,h==="exit"?(b=n.presenceContext)===null||b===void 0?void 0:b.custom:void 0);if(_){const{transition:S,transitionEnd:T,...N}=_;g={...g,...N,...T}}return g};function u(h){s=h(n)}function d(h){const{props:g}=n,v=W_(n.parent)||{},b=[],_=new Set;let S={},T=1/0;for(let j=0;j<rC;j++){const w=oC[j],E=i[w],A=g[w]!==void 0?g[w]:v[w],O=xr(A),C=w===h?E.isActive:null;C===!1&&(T=j);let M=A===v[w]&&A!==g[w]&&O;if(M&&o&&n.manuallyAnimateOnMount&&(M=!1),E.protectedKeys={...S},!E.isActive&&C===null||!A&&!E.prevProp||Bc(A)||typeof A=="boolean")continue;const G=uC(E.prevProp,A);let U=G||w===h&&E.isActive&&!M&&O||j>T&&O,V=!1;const F=Array.isArray(A)?A:[A];let ee=F.reduce(c(w),{});C===!1&&(ee={});const{prevResolvedValues:ae={}}=E,be={...ae,...ee},K=$=>{U=!0,_.has($)&&(V=!0,_.delete($)),E.needsAnimating[$]=!0;const Q=n.getValue($);Q&&(Q.liveStyle=!1)};for(const $ in be){const Q=ee[$],de=ae[$];if(S.hasOwnProperty($))continue;let me=!1;qf(Q)&&qf(de)?me=!m_(Q,de):me=Q!==de,me?Q!=null?K($):_.add($):Q!==void 0&&_.has($)?K($):E.protectedKeys[$]=!0}E.prevProp=A,E.prevResolvedValues=ee,E.isActive&&(S={...S,...ee}),o&&n.blockInitialAnimation&&(U=!1),U&&(!(M&&G)||V)&&b.push(...F.map($=>({animation:$,options:{type:w}})))}if(_.size){const j={};_.forEach(w=>{const E=n.getBaseTarget(w),A=n.getValue(w);A&&(A.liveStyle=!0),j[w]=E??null}),b.push({animation:j})}let N=!!b.length;return o&&(g.initial===!1||g.initial===g.animate)&&!n.manuallyAnimateOnMount&&(N=!1),o=!1,N?s(b):Promise.resolve()}function m(h,g){var v;if(i[h].isActive===g)return Promise.resolve();(v=n.variantChildren)===null||v===void 0||v.forEach(_=>{var S;return(S=_.animationState)===null||S===void 0?void 0:S.setActive(h,g)}),i[h].isActive=g;const b=d(h);for(const _ in i)i[_].protectedKeys={};return b}return{animateChanges:d,setActive:m,setAnimateFunction:u,getState:()=>i,reset:()=>{i=$0(),o=!0}}}function uC(n,s){return typeof s=="string"?s!==n:Array.isArray(s)?!m_(s,n):!1}function Pa(n=!1){return{isActive:n,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function $0(){return{animate:Pa(!0),whileInView:Pa(),whileHover:Pa(),whileTap:Pa(),whileDrag:Pa(),whileFocus:Pa(),exit:Pa()}}class ya{constructor(s){this.isMounted=!1,this.node=s}update(){}}class dC extends ya{constructor(s){super(s),s.animationState||(s.animationState=cC(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Bc(s)&&(this.unmountControls=s.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:s}=this.node.getProps(),{animate:i}=this.node.prevProps||{};s!==i&&this.updateAnimationControlsSubscription()}unmount(){var s;this.node.animationState.reset(),(s=this.unmountControls)===null||s===void 0||s.call(this)}}let fC=0;class pC extends ya{constructor(){super(...arguments),this.id=fC++}update(){if(!this.node.presenceContext)return;const{isPresent:s,onExitComplete:i}=this.node.presenceContext,{isPresent:o}=this.node.prevPresenceContext||{};if(!this.node.animationState||s===o)return;const c=this.node.animationState.setActive("exit",!s);i&&!s&&c.then(()=>i(this.id))}mount(){const{register:s}=this.node.presenceContext||{};s&&(this.unmount=s(this.id))}unmount(){}}const mC={animation:{Feature:dC},exit:{Feature:pC}},Zn={x:!1,y:!1};function Q_(){return Zn.x||Zn.y}function hC(n){return n==="x"||n==="y"?Zn[n]?null:(Zn[n]=!0,()=>{Zn[n]=!1}):Zn.x||Zn.y?null:(Zn.x=Zn.y=!0,()=>{Zn.x=Zn.y=!1})}const Wp=n=>n.pointerType==="mouse"?typeof n.button!="number"||n.button<=0:n.isPrimary!==!1;function wr(n,s,i,o={passive:!0}){return n.addEventListener(s,i,o),()=>n.removeEventListener(s,i)}function Rr(n){return{point:{x:n.pageX,y:n.pageY}}}const gC=n=>s=>Wp(s)&&n(s,Rr(s));function hr(n,s,i,o){return wr(n,s,gC(i),o)}const Z0=(n,s)=>Math.abs(n-s);function vC(n,s){const i=Z0(n.x,s.x),o=Z0(n.y,s.y);return Math.sqrt(i**2+o**2)}class ex{constructor(s,i,{transformPagePoint:o,contextWindow:c,dragSnapToOrigin:u=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=gf(this.lastMoveEventInfo,this.history),_=this.startEvent!==null,S=vC(b.offset,{x:0,y:0})>=3;if(!_&&!S)return;const{point:T}=b,{timestamp:N}=Zt;this.history.push({...T,timestamp:N});const{onStart:j,onMove:w}=this.handlers;_||(j&&j(this.lastMoveEvent,b),this.startEvent=this.lastMoveEvent),w&&w(this.lastMoveEvent,b)},this.handlePointerMove=(b,_)=>{this.lastMoveEvent=b,this.lastMoveEventInfo=hf(_,this.transformPagePoint),ft.update(this.updatePoint,!0)},this.handlePointerUp=(b,_)=>{this.end();const{onEnd:S,onSessionEnd:T,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const j=gf(b.type==="pointercancel"?this.lastMoveEventInfo:hf(_,this.transformPagePoint),this.history);this.startEvent&&S&&S(b,j),T&&T(b,j)},!Wp(s))return;this.dragSnapToOrigin=u,this.handlers=i,this.transformPagePoint=o,this.contextWindow=c||window;const d=Rr(s),m=hf(d,this.transformPagePoint),{point:h}=m,{timestamp:g}=Zt;this.history=[{...h,timestamp:g}];const{onSessionStart:v}=i;v&&v(s,gf(m,this.history)),this.removeListeners=Dr(hr(this.contextWindow,"pointermove",this.handlePointerMove),hr(this.contextWindow,"pointerup",this.handlePointerUp),hr(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),ma(this.updatePoint)}}function hf(n,s){return s?{point:s(n.point)}:n}function F0(n,s){return{x:n.x-s.x,y:n.y-s.y}}function gf({point:n},s){return{point:n,delta:F0(n,tx(s)),offset:F0(n,yC(s)),velocity:bC(s,.1)}}function yC(n){return n[0]}function tx(n){return n[n.length-1]}function bC(n,s){if(n.length<2)return{x:0,y:0};let i=n.length-1,o=null;const c=tx(n);for(;i>=0&&(o=n[i],!(c.timestamp-o.timestamp>Ds(s)));)i--;if(!o)return{x:0,y:0};const u=Rs(c.timestamp-o.timestamp);if(u===0)return{x:0,y:0};const d={x:(c.x-o.x)/u,y:(c.y-o.y)/u};return d.x===1/0&&(d.x=0),d.y===1/0&&(d.y=0),d}const nx=1e-4,_C=1-nx,xC=1+nx,sx=.01,SC=0-sx,TC=0+sx;function xn(n){return n.max-n.min}function kC(n,s,i){return Math.abs(n-s)<=i}function K0(n,s,i,o=.5){n.origin=o,n.originPoint=vt(s.min,s.max,n.origin),n.scale=xn(i)/xn(s),n.translate=vt(i.min,i.max,n.origin)-n.originPoint,(n.scale>=_C&&n.scale<=xC||isNaN(n.scale))&&(n.scale=1),(n.translate>=SC&&n.translate<=TC||isNaN(n.translate))&&(n.translate=0)}function gr(n,s,i,o){K0(n.x,s.x,i.x,o?o.originX:void 0),K0(n.y,s.y,i.y,o?o.originY:void 0)}function Y0(n,s,i){n.min=i.min+s.min,n.max=n.min+xn(s)}function wC(n,s,i){Y0(n.x,s.x,i.x),Y0(n.y,s.y,i.y)}function J0(n,s,i){n.min=s.min-i.min,n.max=n.min+xn(s)}function vr(n,s,i){J0(n.x,s.x,i.x),J0(n.y,s.y,i.y)}function NC(n,{min:s,max:i},o){return s!==void 0&&n<s?n=o?vt(s,n,o.min):Math.max(n,s):i!==void 0&&n>i&&(n=o?vt(i,n,o.max):Math.min(n,i)),n}function X0(n,s,i){return{min:s!==void 0?n.min+s:void 0,max:i!==void 0?n.max+i-(n.max-n.min):void 0}}function jC(n,{top:s,left:i,bottom:o,right:c}){return{x:X0(n.x,i,c),y:X0(n.y,s,o)}}function W0(n,s){let i=s.min-n.min,o=s.max-n.max;return s.max-s.min<n.max-n.min&&([i,o]=[o,i]),{min:i,max:o}}function CC(n,s){return{x:W0(n.x,s.x),y:W0(n.y,s.y)}}function EC(n,s){let i=.5;const o=xn(n),c=xn(s);return c>o?i=eo(s.min,s.max-o,n.min):o>c&&(i=eo(n.min,n.max-c,s.min)),Is(0,1,i)}function AC(n,s){const i={};return s.min!==void 0&&(i.min=s.min-n.min),s.max!==void 0&&(i.max=s.max-n.min),i}const ep=.35;function DC(n=ep){return n===!1?n=0:n===!0&&(n=ep),{x:Q0(n,"left","right"),y:Q0(n,"top","bottom")}}function Q0(n,s,i){return{min:ey(n,s),max:ey(n,i)}}function ey(n,s){return typeof n=="number"?n:n[s]||0}const ty=()=>({translate:0,scale:1,origin:0,originPoint:0}),$i=()=>({x:ty(),y:ty()}),ny=()=>({min:0,max:0}),wt=()=>({x:ny(),y:ny()});function Ln(n){return[n("x"),n("y")]}function ax({top:n,left:s,right:i,bottom:o}){return{x:{min:s,max:i},y:{min:n,max:o}}}function RC({x:n,y:s}){return{top:s.min,right:n.max,bottom:s.max,left:n.min}}function MC(n,s){if(!s)return n;const i=s({x:n.left,y:n.top}),o=s({x:n.right,y:n.bottom});return{top:i.y,left:i.x,bottom:o.y,right:o.x}}function vf(n){return n===void 0||n===1}function tp({scale:n,scaleX:s,scaleY:i}){return!vf(n)||!vf(s)||!vf(i)}function Ga(n){return tp(n)||ix(n)||n.z||n.rotate||n.rotateX||n.rotateY||n.skewX||n.skewY}function ix(n){return sy(n.x)||sy(n.y)}function sy(n){return n&&n!=="0%"}function kc(n,s,i){const o=n-i,c=s*o;return i+c}function ay(n,s,i,o,c){return c!==void 0&&(n=kc(n,c,o)),kc(n,i,o)+s}function np(n,s=0,i=1,o,c){n.min=ay(n.min,s,i,o,c),n.max=ay(n.max,s,i,o,c)}function ox(n,{x:s,y:i}){np(n.x,s.translate,s.scale,s.originPoint),np(n.y,i.translate,i.scale,i.originPoint)}const iy=.999999999999,oy=1.0000000000001;function OC(n,s,i,o=!1){const c=i.length;if(!c)return;s.x=s.y=1;let u,d;for(let m=0;m<c;m++){u=i[m],d=u.projectionDelta;const{visualElement:h}=u.options;h&&h.props.style&&h.props.style.display==="contents"||(o&&u.options.layoutScroll&&u.scroll&&u!==u.root&&Fi(n,{x:-u.scroll.offset.x,y:-u.scroll.offset.y}),d&&(s.x*=d.x.scale,s.y*=d.y.scale,ox(n,d)),o&&Ga(u.latestValues)&&Fi(n,u.latestValues))}s.x<oy&&s.x>iy&&(s.x=1),s.y<oy&&s.y>iy&&(s.y=1)}function Zi(n,s){n.min=n.min+s,n.max=n.max+s}function ry(n,s,i,o,c=.5){const u=vt(n.min,n.max,c);np(n,s,i,u,o)}function Fi(n,s){ry(n.x,s.x,s.scaleX,s.scale,s.originX),ry(n.y,s.y,s.scaleY,s.scale,s.originY)}function rx(n,s){return ax(MC(n.getBoundingClientRect(),s))}function IC(n,s,i){const o=rx(n,i),{scroll:c}=s;return c&&(Zi(o.x,c.offset.x),Zi(o.y,c.offset.y)),o}const lx=({current:n})=>n?n.ownerDocument.defaultView:null,LC=new WeakMap;class BC{constructor(s){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=wt(),this.visualElement=s}start(s,{snapToCursor:i=!1}={}){const{presenceContext:o}=this.visualElement;if(o&&o.isPresent===!1)return;const c=v=>{const{dragSnapToOrigin:b}=this.getProps();b?this.pauseAnimation():this.stopAnimation(),i&&this.snapToCursor(Rr(v).point)},u=(v,b)=>{const{drag:_,dragPropagation:S,onDragStart:T}=this.getProps();if(_&&!S&&(this.openDragLock&&this.openDragLock(),this.openDragLock=hC(_),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ln(j=>{let w=this.getAxisMotionValue(j).get()||0;if(as.test(w)){const{projection:E}=this.visualElement;if(E&&E.layout){const A=E.layout.layoutBox[j];A&&(w=xn(A)*(parseFloat(w)/100))}}this.originPoint[j]=w}),T&&ft.postRender(()=>T(v,b)),Gf(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},d=(v,b)=>{const{dragPropagation:_,dragDirectionLock:S,onDirectionLock:T,onDrag:N}=this.getProps();if(!_&&!this.openDragLock)return;const{offset:j}=b;if(S&&this.currentDirection===null){this.currentDirection=UC(j),this.currentDirection!==null&&T&&T(this.currentDirection);return}this.updateAxis("x",b.point,j),this.updateAxis("y",b.point,j),this.visualElement.render(),N&&N(v,b)},m=(v,b)=>this.stop(v,b),h=()=>Ln(v=>{var b;return this.getAnimationState(v)==="paused"&&((b=this.getAxisMotionValue(v).animation)===null||b===void 0?void 0:b.play())}),{dragSnapToOrigin:g}=this.getProps();this.panSession=new ex(s,{onSessionStart:c,onStart:u,onMove:d,onSessionEnd:m,resumeAnimation:h},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:g,contextWindow:lx(this.visualElement)})}stop(s,i){const o=this.isDragging;if(this.cancel(),!o)return;const{velocity:c}=i;this.startAnimation(c);const{onDragEnd:u}=this.getProps();u&&ft.postRender(()=>u(s,i))}cancel(){this.isDragging=!1;const{projection:s,animationState:i}=this.visualElement;s&&(s.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:o}=this.getProps();!o&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),i&&i.setActive("whileDrag",!1)}updateAxis(s,i,o){const{drag:c}=this.getProps();if(!o||!sc(s,c,this.currentDirection))return;const u=this.getAxisMotionValue(s);let d=this.originPoint[s]+o[s];this.constraints&&this.constraints[s]&&(d=NC(d,this.constraints[s],this.elastic[s])),u.set(d)}resolveConstraints(){var s;const{dragConstraints:i,dragElastic:o}=this.getProps(),c=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)===null||s===void 0?void 0:s.layout,u=this.constraints;i&&qi(i)?this.constraints||(this.constraints=this.resolveRefConstraints()):i&&c?this.constraints=jC(c.layoutBox,i):this.constraints=!1,this.elastic=DC(o),u!==this.constraints&&c&&this.constraints&&!this.hasMutatedConstraints&&Ln(d=>{this.constraints!==!1&&this.getAxisMotionValue(d)&&(this.constraints[d]=AC(c.layoutBox[d],this.constraints[d]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:i}=this.getProps();if(!s||!qi(s))return!1;const o=s.current,{projection:c}=this.visualElement;if(!c||!c.layout)return!1;const u=IC(o,c.root,this.visualElement.getTransformPagePoint());let d=CC(c.layout.layoutBox,u);if(i){const m=i(RC(d));this.hasMutatedConstraints=!!m,m&&(d=ax(m))}return d}startAnimation(s){const{drag:i,dragMomentum:o,dragElastic:c,dragTransition:u,dragSnapToOrigin:d,onDragTransitionEnd:m}=this.getProps(),h=this.constraints||{},g=Ln(v=>{if(!sc(v,i,this.currentDirection))return;let b=h&&h[v]||{};d&&(b={min:0,max:0});const _=c?200:1e6,S=c?40:1e7,T={type:"inertia",velocity:o?s[v]:0,bounceStiffness:_,bounceDamping:S,timeConstant:750,restDelta:1,restSpeed:10,...u,...b};return this.startAxisValueAnimation(v,T)});return Promise.all(g).then(m)}startAxisValueAnimation(s,i){const o=this.getAxisMotionValue(s);return Gf(this.visualElement,s),o.start(Xp(s,o,0,i,this.visualElement,!1))}stopAnimation(){Ln(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){Ln(s=>{var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.pause()})}getAnimationState(s){var i;return(i=this.getAxisMotionValue(s).animation)===null||i===void 0?void 0:i.state}getAxisMotionValue(s){const i=`_drag${s.toUpperCase()}`,o=this.visualElement.getProps(),c=o[i];return c||this.visualElement.getValue(s,(o.initial?o.initial[s]:void 0)||0)}snapToCursor(s){Ln(i=>{const{drag:o}=this.getProps();if(!sc(i,o,this.currentDirection))return;const{projection:c}=this.visualElement,u=this.getAxisMotionValue(i);if(c&&c.layout){const{min:d,max:m}=c.layout.layoutBox[i];u.set(s[i]-vt(d,m,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:i}=this.getProps(),{projection:o}=this.visualElement;if(!qi(i)||!o||!this.constraints)return;this.stopAnimation();const c={x:0,y:0};Ln(d=>{const m=this.getAxisMotionValue(d);if(m&&this.constraints!==!1){const h=m.get();c[d]=EC({min:h,max:h},this.constraints[d])}});const{transformTemplate:u}=this.visualElement.getProps();this.visualElement.current.style.transform=u?u({},""):"none",o.root&&o.root.updateScroll(),o.updateLayout(),this.resolveConstraints(),Ln(d=>{if(!sc(d,s,null))return;const m=this.getAxisMotionValue(d),{min:h,max:g}=this.constraints[d];m.set(vt(h,g,c[d]))})}addListeners(){if(!this.visualElement.current)return;LC.set(this.visualElement,this);const s=this.visualElement.current,i=hr(s,"pointerdown",h=>{const{drag:g,dragListener:v=!0}=this.getProps();g&&v&&this.start(h)}),o=()=>{const{dragConstraints:h}=this.getProps();qi(h)&&h.current&&(this.constraints=this.resolveRefConstraints())},{projection:c}=this.visualElement,u=c.addEventListener("measure",o);c&&!c.layout&&(c.root&&c.root.updateScroll(),c.updateLayout()),ft.read(o);const d=wr(window,"resize",()=>this.scalePositionWithinConstraints()),m=c.addEventListener("didUpdate",(({delta:h,hasLayoutChanged:g})=>{this.isDragging&&g&&(Ln(v=>{const b=this.getAxisMotionValue(v);b&&(this.originPoint[v]+=h[v].translate,b.set(b.get()+h[v].translate))}),this.visualElement.render())}));return()=>{d(),i(),u(),m&&m()}}getProps(){const s=this.visualElement.getProps(),{drag:i=!1,dragDirectionLock:o=!1,dragPropagation:c=!1,dragConstraints:u=!1,dragElastic:d=ep,dragMomentum:m=!0}=s;return{...s,drag:i,dragDirectionLock:o,dragPropagation:c,dragConstraints:u,dragElastic:d,dragMomentum:m}}}function sc(n,s,i){return(s===!0||s===n)&&(i===null||i===n)}function UC(n,s=10){let i=null;return Math.abs(n.y)>s?i="y":Math.abs(n.x)>s&&(i="x"),i}class zC extends ya{constructor(s){super(s),this.removeGroupControls=_n,this.removeListeners=_n,this.controls=new BC(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||_n}unmount(){this.removeGroupControls(),this.removeListeners()}}const ly=n=>(s,i)=>{n&&ft.postRender(()=>n(s,i))};class PC extends ya{constructor(){super(...arguments),this.removePointerDownListener=_n}onPointerDown(s){this.session=new ex(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:lx(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:i,onPan:o,onPanEnd:c}=this.node.getProps();return{onSessionStart:ly(s),onStart:ly(i),onMove:o,onEnd:(u,d)=>{delete this.session,c&&ft.postRender(()=>c(u,d))}}}mount(){this.removePointerDownListener=hr(this.node.current,"pointerdown",s=>this.onPointerDown(s))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const mc={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function cy(n,s){return s.max===s.min?0:n/(s.max-s.min)*100}const ir={correct:(n,s)=>{if(!s.target)return n;if(typeof n=="string")if(ke.test(n))n=parseFloat(n);else return n;const i=cy(n,s.target.x),o=cy(n,s.target.y);return`${i}% ${o}%`}},VC={correct:(n,{treeScale:s,projectionDelta:i})=>{const o=n,c=ha.parse(n);if(c.length>5)return o;const u=ha.createTransformer(n),d=typeof c[0]!="number"?1:0,m=i.x.scale*s.x,h=i.y.scale*s.y;c[0+d]/=m,c[1+d]/=h;const g=vt(m,h,.5);return typeof c[2+d]=="number"&&(c[2+d]/=g),typeof c[3+d]=="number"&&(c[3+d]/=g),u(c)}};class HC extends y.Component{componentDidMount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o,layoutId:c}=this.props,{projection:u}=s;mN(qC),u&&(i.group&&i.group.add(u),o&&o.register&&c&&o.register(u),u.root.didUpdate(),u.addEventListener("animationComplete",()=>{this.safeToRemove()}),u.setOptions({...u.options,onExitComplete:()=>this.safeToRemove()})),mc.hasEverUpdated=!0}getSnapshotBeforeUpdate(s){const{layoutDependency:i,visualElement:o,drag:c,isPresent:u}=this.props,d=o.projection;return d&&(d.isPresent=u,c||s.layoutDependency!==i||i===void 0?d.willUpdate():this.safeToRemove(),s.isPresent!==u&&(u?d.promote():d.relegate()||ft.postRender(()=>{const m=d.getStack();(!m||!m.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Np.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:s,layoutGroup:i,switchLayoutGroup:o}=this.props,{projection:c}=s;c&&(c.scheduleCheckAfterUnmount(),i&&i.group&&i.group.remove(c),o&&o.deregister&&o.deregister(c))}safeToRemove(){const{safeToRemove:s}=this.props;s&&s()}render(){return null}}function cx(n){const[s,i]=Fb(),o=y.useContext(bp);return l.jsx(HC,{...n,layoutGroup:o,switchLayoutGroup:y.useContext(t_),isPresent:s,safeToRemove:i})}const qC={borderRadius:{...ir,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:ir,borderTopRightRadius:ir,borderBottomLeftRadius:ir,borderBottomRightRadius:ir,boxShadow:VC};function GC(n,s,i){const o=Wt(n)?n:Tr(n);return o.start(Xp("",o,s,i)),o.animation}function $C(n){return n instanceof SVGElement&&n.tagName!=="svg"}const ZC=(n,s)=>n.depth-s.depth;class FC{constructor(){this.children=[],this.isDirty=!1}add(s){Bp(this.children,s),this.isDirty=!0}remove(s){Up(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(ZC),this.isDirty=!1,this.children.forEach(s)}}function KC(n,s){const i=is.now(),o=({timestamp:c})=>{const u=c-i;u>=s&&(ma(o),n(u-s))};return ft.read(o,!0),()=>ma(o)}const ux=["TopLeft","TopRight","BottomLeft","BottomRight"],YC=ux.length,uy=n=>typeof n=="string"?parseFloat(n):n,dy=n=>typeof n=="number"||ke.test(n);function JC(n,s,i,o,c,u){c?(n.opacity=vt(0,i.opacity!==void 0?i.opacity:1,XC(o)),n.opacityExit=vt(s.opacity!==void 0?s.opacity:1,0,WC(o))):u&&(n.opacity=vt(s.opacity!==void 0?s.opacity:1,i.opacity!==void 0?i.opacity:1,o));for(let d=0;d<YC;d++){const m=`border${ux[d]}Radius`;let h=fy(s,m),g=fy(i,m);if(h===void 0&&g===void 0)continue;h||(h=0),g||(g=0),h===0||g===0||dy(h)===dy(g)?(n[m]=Math.max(vt(uy(h),uy(g),o),0),(as.test(g)||as.test(h))&&(n[m]+="%")):n[m]=g}(s.rotate||i.rotate)&&(n.rotate=vt(s.rotate||0,i.rotate||0,o))}function fy(n,s){return n[s]!==void 0?n[s]:n.borderRadius}const XC=dx(0,.5,j_),WC=dx(.5,.95,_n);function dx(n,s,i){return o=>o<n?0:o>s?1:i(eo(n,s,o))}function py(n,s){n.min=s.min,n.max=s.max}function On(n,s){py(n.x,s.x),py(n.y,s.y)}function my(n,s){n.translate=s.translate,n.scale=s.scale,n.originPoint=s.originPoint,n.origin=s.origin}function hy(n,s,i,o,c){return n-=s,n=kc(n,1/i,o),c!==void 0&&(n=kc(n,1/c,o)),n}function QC(n,s=0,i=1,o=.5,c,u=n,d=n){if(as.test(s)&&(s=parseFloat(s),s=vt(d.min,d.max,s/100)-d.min),typeof s!="number")return;let m=vt(u.min,u.max,o);n===u&&(m-=s),n.min=hy(n.min,s,i,m,c),n.max=hy(n.max,s,i,m,c)}function gy(n,s,[i,o,c],u,d){QC(n,s[i],s[o],s[c],s.scale,u,d)}const eE=["x","scaleX","originX"],tE=["y","scaleY","originY"];function vy(n,s,i,o){gy(n.x,s,eE,i?i.x:void 0,o?o.x:void 0),gy(n.y,s,tE,i?i.y:void 0,o?o.y:void 0)}function yy(n){return n.translate===0&&n.scale===1}function fx(n){return yy(n.x)&&yy(n.y)}function by(n,s){return n.min===s.min&&n.max===s.max}function nE(n,s){return by(n.x,s.x)&&by(n.y,s.y)}function _y(n,s){return Math.round(n.min)===Math.round(s.min)&&Math.round(n.max)===Math.round(s.max)}function px(n,s){return _y(n.x,s.x)&&_y(n.y,s.y)}function xy(n){return xn(n.x)/xn(n.y)}function Sy(n,s){return n.translate===s.translate&&n.scale===s.scale&&n.originPoint===s.originPoint}class sE{constructor(){this.members=[]}add(s){Bp(this.members,s),s.scheduleRender()}remove(s){if(Up(this.members,s),s===this.prevLead&&(this.prevLead=void 0),s===this.lead){const i=this.members[this.members.length-1];i&&this.promote(i)}}relegate(s){const i=this.members.findIndex(c=>s===c);if(i===0)return!1;let o;for(let c=i;c>=0;c--){const u=this.members[c];if(u.isPresent!==!1){o=u;break}}return o?(this.promote(o),!0):!1}promote(s,i){const o=this.lead;if(s!==o&&(this.prevLead=o,this.lead=s,s.show(),o)){o.instance&&o.scheduleRender(),s.scheduleRender(),s.resumeFrom=o,i&&(s.resumeFrom.preserveOpacity=!0),o.snapshot&&(s.snapshot=o.snapshot,s.snapshot.latestValues=o.animationValues||o.latestValues),s.root&&s.root.isUpdating&&(s.isLayoutDirty=!0);const{crossfade:c}=s.options;c===!1&&o.hide()}}exitAnimationComplete(){this.members.forEach(s=>{const{options:i,resumingFrom:o}=s;i.onExitComplete&&i.onExitComplete(),o&&o.options.onExitComplete&&o.options.onExitComplete()})}scheduleRender(){this.members.forEach(s=>{s.instance&&s.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function aE(n,s,i){let o="";const c=n.x.translate/s.x,u=n.y.translate/s.y,d=(i==null?void 0:i.z)||0;if((c||u||d)&&(o=`translate3d(${c}px, ${u}px, ${d}px) `),(s.x!==1||s.y!==1)&&(o+=`scale(${1/s.x}, ${1/s.y}) `),i){const{transformPerspective:g,rotate:v,rotateX:b,rotateY:_,skewX:S,skewY:T}=i;g&&(o=`perspective(${g}px) ${o}`),v&&(o+=`rotate(${v}deg) `),b&&(o+=`rotateX(${b}deg) `),_&&(o+=`rotateY(${_}deg) `),S&&(o+=`skewX(${S}deg) `),T&&(o+=`skewY(${T}deg) `)}const m=n.x.scale*s.x,h=n.y.scale*s.y;return(m!==1||h!==1)&&(o+=`scale(${m}, ${h})`),o||"none"}const $a={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ur=typeof window<"u"&&window.MotionDebug!==void 0,yf=["","X","Y","Z"],iE={visibility:"hidden"},Ty=1e3;let oE=0;function bf(n,s,i,o){const{latestValues:c}=s;c[n]&&(i[n]=c[n],s.setStaticValue(n,0),o&&(o[n]=0))}function mx(n){if(n.hasCheckedOptimisedAppear=!0,n.root===n)return;const{visualElement:s}=n.options;if(!s)return;const i=v_(s);if(window.MotionHasOptimisedAnimation(i,"transform")){const{layout:c,layoutId:u}=n.options;window.MotionCancelOptimisedAnimation(i,"transform",ft,!(c||u))}const{parent:o}=n;o&&!o.hasCheckedOptimisedAppear&&mx(o)}function hx({attachResizeListener:n,defaultParent:s,measureScroll:i,checkIsScrollRoot:o,resetTransform:c}){return class{constructor(d={},m=s==null?void 0:s()){this.id=oE++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ur&&($a.totalNodes=$a.resolvedTargetDeltas=$a.recalculatedProjection=0),this.nodes.forEach(cE),this.nodes.forEach(mE),this.nodes.forEach(hE),this.nodes.forEach(uE),ur&&window.MotionDebug.record($a)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=d,this.root=m?m.root||m:this,this.path=m?[...m.path,m]:[],this.parent=m,this.depth=m?m.depth+1:0;for(let h=0;h<this.path.length;h++)this.path[h].shouldResetTransform=!0;this.root===this&&(this.nodes=new FC)}addEventListener(d,m){return this.eventHandlers.has(d)||this.eventHandlers.set(d,new zp),this.eventHandlers.get(d).add(m)}notifyListeners(d,...m){const h=this.eventHandlers.get(d);h&&h.notify(...m)}hasListeners(d){return this.eventHandlers.has(d)}mount(d,m=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=$C(d),this.instance=d;const{layoutId:h,layout:g,visualElement:v}=this.options;if(v&&!v.current&&v.mount(d),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),m&&(g||h)&&(this.isLayoutDirty=!0),n){let b;const _=()=>this.root.updateBlockedByResize=!1;n(d,()=>{this.root.updateBlockedByResize=!0,b&&b(),b=KC(_,250),mc.hasAnimatedSinceResize&&(mc.hasAnimatedSinceResize=!1,this.nodes.forEach(wy))})}h&&this.root.registerSharedNode(h,this),this.options.animate!==!1&&v&&(h||g)&&this.addEventListener("didUpdate",({delta:b,hasLayoutChanged:_,hasRelativeTargetChanged:S,layout:T})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const N=this.options.transition||v.getDefaultTransition()||_E,{onLayoutAnimationStart:j,onLayoutAnimationComplete:w}=v.getProps(),E=!this.targetLayout||!px(this.targetLayout,T)||S,A=!_&&S;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||A||_&&(E||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(b,A);const O={...Lp(N,"layout"),onPlay:j,onComplete:w};(v.shouldReduceMotion||this.options.layoutRoot)&&(O.delay=0,O.type=!1),this.startAnimation(O)}else _||wy(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=T})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const d=this.getStack();d&&d.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,ma(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(gE),this.animationId++)}getTransformTemplate(){const{visualElement:d}=this.options;return d&&d.getProps().transformTemplate}willUpdate(d=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&mx(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let v=0;v<this.path.length;v++){const b=this.path[v];b.shouldResetTransform=!0,b.updateScroll("snapshot"),b.options.layoutRoot&&b.willUpdate(!1)}const{layoutId:m,layout:h}=this.options;if(m===void 0&&!h)return;const g=this.getTransformTemplate();this.prevTransformTemplateValue=g?g(this.latestValues,""):void 0,this.updateSnapshot(),d&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(ky);return}this.isUpdating||this.nodes.forEach(fE),this.isUpdating=!1,this.nodes.forEach(pE),this.nodes.forEach(rE),this.nodes.forEach(lE),this.clearAllSnapshots();const m=is.now();Zt.delta=Is(0,1e3/60,m-Zt.timestamp),Zt.timestamp=m,Zt.isProcessing=!0,uf.update.process(Zt),uf.preRender.process(Zt),uf.render.process(Zt),Zt.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Np.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(dE),this.sharedNodes.forEach(vE)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,ft.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){ft.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let h=0;h<this.path.length;h++)this.path[h].updateScroll();const d=this.layout;this.layout=this.measure(!1),this.layoutCorrected=wt(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:m}=this.options;m&&m.notify("LayoutMeasure",this.layout.layoutBox,d?d.layoutBox:void 0)}updateScroll(d="measure"){let m=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===d&&(m=!1),m){const h=o(this.instance);this.scroll={animationId:this.root.animationId,phase:d,isRoot:h,offset:i(this.instance),wasRoot:this.scroll?this.scroll.isRoot:h}}}resetTransform(){if(!c)return;const d=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,m=this.projectionDelta&&!fx(this.projectionDelta),h=this.getTransformTemplate(),g=h?h(this.latestValues,""):void 0,v=g!==this.prevTransformTemplateValue;d&&(m||Ga(this.latestValues)||v)&&(c(this.instance,g),this.shouldResetTransform=!1,this.scheduleRender())}measure(d=!0){const m=this.measurePageBox();let h=this.removeElementScroll(m);return d&&(h=this.removeTransform(h)),xE(h),{animationId:this.root.animationId,measuredBox:m,layoutBox:h,latestValues:{},source:this.id}}measurePageBox(){var d;const{visualElement:m}=this.options;if(!m)return wt();const h=m.measureViewportBox();if(!(((d=this.scroll)===null||d===void 0?void 0:d.wasRoot)||this.path.some(SE))){const{scroll:v}=this.root;v&&(Zi(h.x,v.offset.x),Zi(h.y,v.offset.y))}return h}removeElementScroll(d){var m;const h=wt();if(On(h,d),!((m=this.scroll)===null||m===void 0)&&m.wasRoot)return h;for(let g=0;g<this.path.length;g++){const v=this.path[g],{scroll:b,options:_}=v;v!==this.root&&b&&_.layoutScroll&&(b.wasRoot&&On(h,d),Zi(h.x,b.offset.x),Zi(h.y,b.offset.y))}return h}applyTransform(d,m=!1){const h=wt();On(h,d);for(let g=0;g<this.path.length;g++){const v=this.path[g];!m&&v.options.layoutScroll&&v.scroll&&v!==v.root&&Fi(h,{x:-v.scroll.offset.x,y:-v.scroll.offset.y}),Ga(v.latestValues)&&Fi(h,v.latestValues)}return Ga(this.latestValues)&&Fi(h,this.latestValues),h}removeTransform(d){const m=wt();On(m,d);for(let h=0;h<this.path.length;h++){const g=this.path[h];if(!g.instance||!Ga(g.latestValues))continue;tp(g.latestValues)&&g.updateSnapshot();const v=wt(),b=g.measurePageBox();On(v,b),vy(m,g.latestValues,g.snapshot?g.snapshot.layoutBox:void 0,v)}return Ga(this.latestValues)&&vy(m,this.latestValues),m}setTargetDelta(d){this.targetDelta=d,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(d){this.options={...this.options,...d,crossfade:d.crossfade!==void 0?d.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Zt.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(d=!1){var m;const h=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=h.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=h.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=h.isSharedProjectionDirty);const g=!!this.resumingFrom||this!==h;if(!(d||g&&this.isSharedProjectionDirty||this.isProjectionDirty||!((m=this.parent)===null||m===void 0)&&m.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:b,layoutId:_}=this.options;if(!(!this.layout||!(b||_))){if(this.resolvedRelativeTargetAt=Zt.timestamp,!this.targetDelta&&!this.relativeTarget){const S=this.getClosestProjectingParent();S&&S.layout&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=wt(),this.relativeTargetOrigin=wt(),vr(this.relativeTargetOrigin,this.layout.layoutBox,S.layout.layoutBox),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=wt(),this.targetWithTransforms=wt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),wC(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):On(this.target,this.layout.layoutBox),ox(this.target,this.targetDelta)):On(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const S=this.getClosestProjectingParent();S&&!!S.resumingFrom==!!this.resumingFrom&&!S.options.layoutScroll&&S.target&&this.animationProgress!==1?(this.relativeParent=S,this.forceRelativeParentToResolveTarget(),this.relativeTarget=wt(),this.relativeTargetOrigin=wt(),vr(this.relativeTargetOrigin,this.target,S.target),On(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}ur&&$a.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||tp(this.parent.latestValues)||ix(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var d;const m=this.getLead(),h=!!this.resumingFrom||this!==m;let g=!0;if((this.isProjectionDirty||!((d=this.parent)===null||d===void 0)&&d.isProjectionDirty)&&(g=!1),h&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(g=!1),this.resolvedRelativeTargetAt===Zt.timestamp&&(g=!1),g)return;const{layout:v,layoutId:b}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(v||b))return;On(this.layoutCorrected,this.layout.layoutBox);const _=this.treeScale.x,S=this.treeScale.y;OC(this.layoutCorrected,this.treeScale,this.path,h),m.layout&&!m.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(m.target=m.layout.layoutBox,m.targetWithTransforms=wt());const{target:T}=m;if(!T){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(my(this.prevProjectionDelta.x,this.projectionDelta.x),my(this.prevProjectionDelta.y,this.projectionDelta.y)),gr(this.projectionDelta,this.layoutCorrected,T,this.latestValues),(this.treeScale.x!==_||this.treeScale.y!==S||!Sy(this.projectionDelta.x,this.prevProjectionDelta.x)||!Sy(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",T)),ur&&$a.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(d=!0){var m;if((m=this.options.visualElement)===null||m===void 0||m.scheduleRender(),d){const h=this.getStack();h&&h.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=$i(),this.projectionDelta=$i(),this.projectionDeltaWithTransform=$i()}setAnimationOrigin(d,m=!1){const h=this.snapshot,g=h?h.latestValues:{},v={...this.latestValues},b=$i();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!m;const _=wt(),S=h?h.source:void 0,T=this.layout?this.layout.source:void 0,N=S!==T,j=this.getStack(),w=!j||j.members.length<=1,E=!!(N&&!w&&this.options.crossfade===!0&&!this.path.some(bE));this.animationProgress=0;let A;this.mixTargetDelta=O=>{const C=O/1e3;Ny(b.x,d.x,C),Ny(b.y,d.y,C),this.setTargetDelta(b),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(vr(_,this.layout.layoutBox,this.relativeParent.layout.layoutBox),yE(this.relativeTarget,this.relativeTargetOrigin,_,C),A&&nE(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=wt()),On(A,this.relativeTarget)),N&&(this.animationValues=v,JC(v,g,this.latestValues,C,E,w)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=C},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(d){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(ma(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=ft.update(()=>{mc.hasAnimatedSinceResize=!0,this.currentAnimation=GC(0,Ty,{...d,onUpdate:m=>{this.mixTargetDelta(m),d.onUpdate&&d.onUpdate(m)},onComplete:()=>{d.onComplete&&d.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const d=this.getStack();d&&d.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Ty),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const d=this.getLead();let{targetWithTransforms:m,target:h,layout:g,latestValues:v}=d;if(!(!m||!h||!g)){if(this!==d&&this.layout&&g&&gx(this.options.animationType,this.layout.layoutBox,g.layoutBox)){h=this.target||wt();const b=xn(this.layout.layoutBox.x);h.x.min=d.target.x.min,h.x.max=h.x.min+b;const _=xn(this.layout.layoutBox.y);h.y.min=d.target.y.min,h.y.max=h.y.min+_}On(m,h),Fi(m,v),gr(this.projectionDeltaWithTransform,this.layoutCorrected,m,v)}}registerSharedNode(d,m){this.sharedNodes.has(d)||this.sharedNodes.set(d,new sE),this.sharedNodes.get(d).add(m);const g=m.options.initialPromotionConfig;m.promote({transition:g?g.transition:void 0,preserveFollowOpacity:g&&g.shouldPreserveFollowOpacity?g.shouldPreserveFollowOpacity(m):void 0})}isLead(){const d=this.getStack();return d?d.lead===this:!0}getLead(){var d;const{layoutId:m}=this.options;return m?((d=this.getStack())===null||d===void 0?void 0:d.lead)||this:this}getPrevLead(){var d;const{layoutId:m}=this.options;return m?(d=this.getStack())===null||d===void 0?void 0:d.prevLead:void 0}getStack(){const{layoutId:d}=this.options;if(d)return this.root.sharedNodes.get(d)}promote({needsReset:d,transition:m,preserveFollowOpacity:h}={}){const g=this.getStack();g&&g.promote(this,h),d&&(this.projectionDelta=void 0,this.needsReset=!0),m&&this.setOptions({transition:m})}relegate(){const d=this.getStack();return d?d.relegate(this):!1}resetSkewAndRotation(){const{visualElement:d}=this.options;if(!d)return;let m=!1;const{latestValues:h}=d;if((h.z||h.rotate||h.rotateX||h.rotateY||h.rotateZ||h.skewX||h.skewY)&&(m=!0),!m)return;const g={};h.z&&bf("z",d,g,this.animationValues);for(let v=0;v<yf.length;v++)bf(`rotate${yf[v]}`,d,g,this.animationValues),bf(`skew${yf[v]}`,d,g,this.animationValues);d.render();for(const v in g)d.setStaticValue(v,g[v]),this.animationValues&&(this.animationValues[v]=g[v]);d.scheduleRender()}getProjectionStyles(d){var m,h;if(!this.instance||this.isSVG)return;if(!this.isVisible)return iE;const g={visibility:""},v=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,g.opacity="",g.pointerEvents=fc(d==null?void 0:d.pointerEvents)||"",g.transform=v?v(this.latestValues,""):"none",g;const b=this.getLead();if(!this.projectionDelta||!this.layout||!b.target){const N={};return this.options.layoutId&&(N.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,N.pointerEvents=fc(d==null?void 0:d.pointerEvents)||""),this.hasProjected&&!Ga(this.latestValues)&&(N.transform=v?v({},""):"none",this.hasProjected=!1),N}const _=b.animationValues||b.latestValues;this.applyTransformsToTarget(),g.transform=aE(this.projectionDeltaWithTransform,this.treeScale,_),v&&(g.transform=v(_,g.transform));const{x:S,y:T}=this.projectionDelta;g.transformOrigin=`${S.origin*100}% ${T.origin*100}% 0`,b.animationValues?g.opacity=b===this?(h=(m=_.opacity)!==null&&m!==void 0?m:this.latestValues.opacity)!==null&&h!==void 0?h:1:this.preserveOpacity?this.latestValues.opacity:_.opacityExit:g.opacity=b===this?_.opacity!==void 0?_.opacity:"":_.opacityExit!==void 0?_.opacityExit:0;for(const N in bc){if(_[N]===void 0)continue;const{correct:j,applyTo:w}=bc[N],E=g.transform==="none"?_[N]:j(_[N],b);if(w){const A=w.length;for(let O=0;O<A;O++)g[w[O]]=E}else g[N]=E}return this.options.layoutId&&(g.pointerEvents=b===this?fc(d==null?void 0:d.pointerEvents)||"":"none"),g}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(d=>{var m;return(m=d.currentAnimation)===null||m===void 0?void 0:m.stop()}),this.root.nodes.forEach(ky),this.root.sharedNodes.clear()}}}function rE(n){n.updateLayout()}function lE(n){var s;const i=((s=n.resumeFrom)===null||s===void 0?void 0:s.snapshot)||n.snapshot;if(n.isLead()&&n.layout&&i&&n.hasListeners("didUpdate")){const{layoutBox:o,measuredBox:c}=n.layout,{animationType:u}=n.options,d=i.source!==n.layout.source;u==="size"?Ln(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(_);_.min=o[b].min,_.max=_.min+S}):gx(u,i.layoutBox,o)&&Ln(b=>{const _=d?i.measuredBox[b]:i.layoutBox[b],S=xn(o[b]);_.max=_.min+S,n.relativeTarget&&!n.currentAnimation&&(n.isProjectionDirty=!0,n.relativeTarget[b].max=n.relativeTarget[b].min+S)});const m=$i();gr(m,o,i.layoutBox);const h=$i();d?gr(h,n.applyTransform(c,!0),i.measuredBox):gr(h,o,i.layoutBox);const g=!fx(m);let v=!1;if(!n.resumeFrom){const b=n.getClosestProjectingParent();if(b&&!b.resumeFrom){const{snapshot:_,layout:S}=b;if(_&&S){const T=wt();vr(T,i.layoutBox,_.layoutBox);const N=wt();vr(N,o,S.layoutBox),px(T,N)||(v=!0),b.options.layoutRoot&&(n.relativeTarget=N,n.relativeTargetOrigin=T,n.relativeParent=b)}}}n.notifyListeners("didUpdate",{layout:o,snapshot:i,delta:h,layoutDelta:m,hasLayoutChanged:g,hasRelativeTargetChanged:v})}else if(n.isLead()){const{onExitComplete:o}=n.options;o&&o()}n.options.transition=void 0}function cE(n){ur&&$a.totalNodes++,n.parent&&(n.isProjecting()||(n.isProjectionDirty=n.parent.isProjectionDirty),n.isSharedProjectionDirty||(n.isSharedProjectionDirty=!!(n.isProjectionDirty||n.parent.isProjectionDirty||n.parent.isSharedProjectionDirty)),n.isTransformDirty||(n.isTransformDirty=n.parent.isTransformDirty))}function uE(n){n.isProjectionDirty=n.isSharedProjectionDirty=n.isTransformDirty=!1}function dE(n){n.clearSnapshot()}function ky(n){n.clearMeasurements()}function fE(n){n.isLayoutDirty=!1}function pE(n){const{visualElement:s}=n.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),n.resetTransform()}function wy(n){n.finishAnimation(),n.targetDelta=n.relativeTarget=n.target=void 0,n.isProjectionDirty=!0}function mE(n){n.resolveTargetDelta()}function hE(n){n.calcProjection()}function gE(n){n.resetSkewAndRotation()}function vE(n){n.removeLeadSnapshot()}function Ny(n,s,i){n.translate=vt(s.translate,0,i),n.scale=vt(s.scale,1,i),n.origin=s.origin,n.originPoint=s.originPoint}function jy(n,s,i,o){n.min=vt(s.min,i.min,o),n.max=vt(s.max,i.max,o)}function yE(n,s,i,o){jy(n.x,s.x,i.x,o),jy(n.y,s.y,i.y,o)}function bE(n){return n.animationValues&&n.animationValues.opacityExit!==void 0}const _E={duration:.45,ease:[.4,0,.1,1]},Cy=n=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(n),Ey=Cy("applewebkit/")&&!Cy("chrome/")?Math.round:_n;function Ay(n){n.min=Ey(n.min),n.max=Ey(n.max)}function xE(n){Ay(n.x),Ay(n.y)}function gx(n,s,i){return n==="position"||n==="preserve-aspect"&&!kC(xy(s),xy(i),.2)}function SE(n){var s;return n!==n.root&&((s=n.scroll)===null||s===void 0?void 0:s.wasRoot)}const TE=hx({attachResizeListener:(n,s)=>wr(n,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),_f={current:void 0},vx=hx({measureScroll:n=>({x:n.scrollLeft,y:n.scrollTop}),defaultParent:()=>{if(!_f.current){const n=new TE({});n.mount(window),n.setOptions({layoutScroll:!0}),_f.current=n}return _f.current},resetTransform:(n,s)=>{n.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:n=>window.getComputedStyle(n).position==="fixed"}),kE={pan:{Feature:PC},drag:{Feature:zC,ProjectionNode:vx,MeasureLayout:cx}};function wE(n,s,i){var o;if(n instanceof Element)return[n];if(typeof n=="string"){let c=document;const u=(o=void 0)!==null&&o!==void 0?o:c.querySelectorAll(n);return u?Array.from(u):[]}return Array.from(n)}function yx(n,s){const i=wE(n),o=new AbortController,c={passive:!0,...s,signal:o.signal};return[i,c,()=>o.abort()]}function Dy(n){return s=>{s.pointerType==="touch"||Q_()||n(s)}}function NE(n,s,i={}){const[o,c,u]=yx(n,i),d=Dy(m=>{const{target:h}=m,g=s(m);if(typeof g!="function"||!h)return;const v=Dy(b=>{g(b),h.removeEventListener("pointerleave",v)});h.addEventListener("pointerleave",v,c)});return o.forEach(m=>{m.addEventListener("pointerenter",d,c)}),u}function Ry(n,s,i){const{props:o}=n;n.animationState&&o.whileHover&&n.animationState.setActive("whileHover",i==="Start");const c="onHover"+i,u=o[c];u&&ft.postRender(()=>u(s,Rr(s)))}class jE extends ya{mount(){const{current:s}=this.node;s&&(this.unmount=NE(s,i=>(Ry(this.node,i,"Start"),o=>Ry(this.node,o,"End"))))}unmount(){}}class CE extends ya{constructor(){super(...arguments),this.isActive=!1}onFocus(){let s=!1;try{s=this.node.current.matches(":focus-visible")}catch{s=!0}!s||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Dr(wr(this.node.current,"focus",()=>this.onFocus()),wr(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}const bx=(n,s)=>s?n===s?!0:bx(n,s.parentElement):!1,EE=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function AE(n){return EE.has(n.tagName)||n.tabIndex!==-1}const dr=new WeakSet;function My(n){return s=>{s.key==="Enter"&&n(s)}}function xf(n,s){n.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const DE=(n,s)=>{const i=n.currentTarget;if(!i)return;const o=My(()=>{if(dr.has(i))return;xf(i,"down");const c=My(()=>{xf(i,"up")}),u=()=>xf(i,"cancel");i.addEventListener("keyup",c,s),i.addEventListener("blur",u,s)});i.addEventListener("keydown",o,s),i.addEventListener("blur",()=>i.removeEventListener("keydown",o),s)};function Oy(n){return Wp(n)&&!Q_()}function RE(n,s,i={}){const[o,c,u]=yx(n,i),d=m=>{const h=m.currentTarget;if(!Oy(m)||dr.has(h))return;dr.add(h);const g=s(m),v=(S,T)=>{window.removeEventListener("pointerup",b),window.removeEventListener("pointercancel",_),!(!Oy(S)||!dr.has(h))&&(dr.delete(h),typeof g=="function"&&g(S,{success:T}))},b=S=>{v(S,i.useGlobalTarget||bx(h,S.target))},_=S=>{v(S,!1)};window.addEventListener("pointerup",b,c),window.addEventListener("pointercancel",_,c)};return o.forEach(m=>{!AE(m)&&m.getAttribute("tabindex")===null&&(m.tabIndex=0),(i.useGlobalTarget?window:m).addEventListener("pointerdown",d,c),m.addEventListener("focus",g=>DE(g,c),c)}),u}function Iy(n,s,i){const{props:o}=n;n.animationState&&o.whileTap&&n.animationState.setActive("whileTap",i==="Start");const c="onTap"+(i==="End"?"":i),u=o[c];u&&ft.postRender(()=>u(s,Rr(s)))}class ME extends ya{mount(){const{current:s}=this.node;s&&(this.unmount=RE(s,i=>(Iy(this.node,i,"Start"),(o,{success:c})=>Iy(this.node,o,c?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const sp=new WeakMap,Sf=new WeakMap,OE=n=>{const s=sp.get(n.target);s&&s(n)},IE=n=>{n.forEach(OE)};function LE({root:n,...s}){const i=n||document;Sf.has(i)||Sf.set(i,{});const o=Sf.get(i),c=JSON.stringify(s);return o[c]||(o[c]=new IntersectionObserver(IE,{root:n,...s})),o[c]}function BE(n,s,i){const o=LE(s);return sp.set(n,i),o.observe(n),()=>{sp.delete(n),o.unobserve(n)}}const UE={some:0,all:1};class zE extends ya{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:s={}}=this.node.getProps(),{root:i,margin:o,amount:c="some",once:u}=s,d={root:i?i.current:void 0,rootMargin:o,threshold:typeof c=="number"?c:UE[c]},m=h=>{const{isIntersecting:g}=h;if(this.isInView===g||(this.isInView=g,u&&!g&&this.hasEnteredView))return;g&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",g);const{onViewportEnter:v,onViewportLeave:b}=this.node.getProps(),_=g?v:b;_&&_(h)};return BE(this.node.current,d,m)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:s,prevProps:i}=this.node;["amount","margin","root"].some(PE(s,i))&&this.startObserver()}unmount(){}}function PE({viewport:n={}},{viewport:s={}}={}){return i=>n[i]!==s[i]}const VE={inView:{Feature:zE},tap:{Feature:ME},focus:{Feature:CE},hover:{Feature:jE}},HE={layout:{ProjectionNode:vx,MeasureLayout:cx}},wc={current:null},Qp={current:!1};function _x(){if(Qp.current=!0,!!Sp)if(window.matchMedia){const n=window.matchMedia("(prefers-reduced-motion)"),s=()=>wc.current=n.matches;n.addListener(s),s()}else wc.current=!1}const qE=[...V_,Xt,ha],GE=n=>qE.find(P_(n)),Ly=new WeakMap;function $E(n,s,i){for(const o in s){const c=s[o],u=i[o];if(Wt(c))n.addValue(o,c);else if(Wt(u))n.addValue(o,Tr(c,{owner:n}));else if(u!==c)if(n.hasValue(o)){const d=n.getValue(o);d.liveStyle===!0?d.jump(c):d.hasAnimated||d.set(c)}else{const d=n.getStaticValue(o);n.addValue(o,Tr(d!==void 0?d:c,{owner:n}))}}for(const o in i)s[o]===void 0&&n.removeValue(o);return s}const By=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class ZE{scrapeMotionValuesFromProps(s,i,o){return{}}constructor({parent:s,props:i,presenceContext:o,reducedMotionConfig:c,blockInitialAnimation:u,visualState:d},m={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Kp,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const S=is.now();this.renderScheduledAt<S&&(this.renderScheduledAt=S,ft.render(this.render,!1,!0))};const{latestValues:h,renderState:g,onUpdate:v}=d;this.onUpdate=v,this.latestValues=h,this.baseTarget={...h},this.initialValues=i.initial?{...h}:{},this.renderState=g,this.parent=s,this.props=i,this.presenceContext=o,this.depth=s?s.depth+1:0,this.reducedMotionConfig=c,this.options=m,this.blockInitialAnimation=!!u,this.isControllingVariants=Uc(i),this.isVariantNode=Qb(i),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:b,..._}=this.scrapeMotionValuesFromProps(i,{},this);for(const S in _){const T=_[S];h[S]!==void 0&&Wt(T)&&T.set(h[S],!1)}}mount(s){this.current=s,Ly.set(s,this),this.projection&&!this.projection.instance&&this.projection.mount(s),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((i,o)=>this.bindToMotionValue(o,i)),Qp.current||_x(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:wc.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Ly.delete(this.current),this.projection&&this.projection.unmount(),ma(this.notifyUpdate),ma(this.render),this.valueSubscriptions.forEach(s=>s()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const s in this.events)this.events[s].clear();for(const s in this.features){const i=this.features[s];i&&(i.unmount(),i.isMounted=!1)}this.current=null}bindToMotionValue(s,i){this.valueSubscriptions.has(s)&&this.valueSubscriptions.get(s)();const o=ti.has(s),c=i.on("change",m=>{this.latestValues[s]=m,this.props.onUpdate&&ft.preRender(this.notifyUpdate),o&&this.projection&&(this.projection.isTransformDirty=!0)}),u=i.on("renderRequest",this.scheduleRender);let d;window.MotionCheckAppearSync&&(d=window.MotionCheckAppearSync(this,s,i)),this.valueSubscriptions.set(s,()=>{c(),u(),d&&d(),i.owner&&i.stop()})}sortNodePosition(s){return!this.current||!this.sortInstanceNodePosition||this.type!==s.type?0:this.sortInstanceNodePosition(this.current,s.current)}updateFeatures(){let s="animation";for(s in Qi){const i=Qi[s];if(!i)continue;const{isEnabled:o,Feature:c}=i;if(!this.features[s]&&c&&o(this.props)&&(this.features[s]=new c(this)),this.features[s]){const u=this.features[s];u.isMounted?u.update():(u.mount(),u.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):wt()}getStaticValue(s){return this.latestValues[s]}setStaticValue(s,i){this.latestValues[s]=i}update(s,i){(s.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=s,this.prevPresenceContext=this.presenceContext,this.presenceContext=i;for(let o=0;o<By.length;o++){const c=By[o];this.propEventSubscriptions[c]&&(this.propEventSubscriptions[c](),delete this.propEventSubscriptions[c]);const u="on"+c,d=s[u];d&&(this.propEventSubscriptions[c]=this.on(c,d))}this.prevMotionValues=$E(this,this.scrapeMotionValuesFromProps(s,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}getProps(){return this.props}getVariant(s){return this.props.variants?this.props.variants[s]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(s){const i=this.getClosestVariantNode();if(i)return i.variantChildren&&i.variantChildren.add(s),()=>i.variantChildren.delete(s)}addValue(s,i){const o=this.values.get(s);i!==o&&(o&&this.removeValue(s),this.bindToMotionValue(s,i),this.values.set(s,i),this.latestValues[s]=i.get())}removeValue(s){this.values.delete(s);const i=this.valueSubscriptions.get(s);i&&(i(),this.valueSubscriptions.delete(s)),delete this.latestValues[s],this.removeValueFromRenderState(s,this.renderState)}hasValue(s){return this.values.has(s)}getValue(s,i){if(this.props.values&&this.props.values[s])return this.props.values[s];let o=this.values.get(s);return o===void 0&&i!==void 0&&(o=Tr(i===null?void 0:i,{owner:this}),this.addValue(s,o)),o}readValue(s,i){var o;let c=this.latestValues[s]!==void 0||!this.current?this.latestValues[s]:(o=this.getBaseTargetFromProps(this.props,s))!==null&&o!==void 0?o:this.readValueFromInstance(this.current,s,this.options);return c!=null&&(typeof c=="string"&&(U_(c)||E_(c))?c=parseFloat(c):!GE(c)&&ha.test(i)&&(c=I_(s,i)),this.setBaseTarget(s,Wt(c)?c.get():c)),Wt(c)?c.get():c}setBaseTarget(s,i){this.baseTarget[s]=i}getBaseTarget(s){var i;const{initial:o}=this.props;let c;if(typeof o=="string"||typeof o=="object"){const d=Cp(this.props,o,(i=this.presenceContext)===null||i===void 0?void 0:i.custom);d&&(c=d[s])}if(o&&c!==void 0)return c;const u=this.getBaseTargetFromProps(this.props,s);return u!==void 0&&!Wt(u)?u:this.initialValues[s]!==void 0&&c===void 0?void 0:this.baseTarget[s]}on(s,i){return this.events[s]||(this.events[s]=new zp),this.events[s].add(i)}notify(s,...i){this.events[s]&&this.events[s].notify(...i)}}class xx extends ZE{constructor(){super(...arguments),this.KeyframeResolver=H_}sortInstanceNodePosition(s,i){return s.compareDocumentPosition(i)&2?1:-1}getBaseTargetFromProps(s,i){return s.style?s.style[i]:void 0}removeValueFromRenderState(s,{vars:i,style:o}){delete i[s],delete o[s]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:s}=this.props;Wt(s)&&(this.childSubscription=s.on("change",i=>{this.current&&(this.current.textContent=`${i}`)}))}}function FE(n){return window.getComputedStyle(n)}class KE extends xx{constructor(){super(...arguments),this.type="html",this.renderInstance=l_}readValueFromInstance(s,i){if(ti.has(i)){const o=Fp(i);return o&&o.default||0}else{const o=FE(s),c=(i_(i)?o.getPropertyValue(i):o[i])||0;return typeof c=="string"?c.trim():c}}measureInstanceViewportBox(s,{transformPagePoint:i}){return rx(s,i)}build(s,i,o){Dp(s,i,o.transformTemplate)}scrapeMotionValuesFromProps(s,i,o){return Ip(s,i,o)}}class YE extends xx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=wt}getBaseTargetFromProps(s,i){return s[i]}readValueFromInstance(s,i){if(ti.has(i)){const o=Fp(i);return o&&o.default||0}return i=c_.has(i)?i:wp(i),s.getAttribute(i)}scrapeMotionValuesFromProps(s,i,o){return f_(s,i,o)}build(s,i,o){Rp(s,i,this.isSVGTag,o.transformTemplate)}renderInstance(s,i,o,c){u_(s,i,o,c)}mount(s){this.isSVGTag=Op(s.tagName),super.mount(s)}}const JE=(n,s)=>jp(n)?new YE(s):new KE(s,{allowProjection:n!==y.Fragment}),XE=TN({...mC,...VE,...kE,...HE},JE),Dt=Uw(XE);function WE(){!Qp.current&&_x();const[n]=y.useState(wc.current);return n}const ap={not_started:{color:"var(--text-tertiary)",icon:"○",label:"Not Started"},working:{color:"var(--accent-green)",icon:"●",label:"Working"},paused:{color:"var(--accent-yellow)",icon:"◉",label:"Paused"},complete:{color:"var(--accent-green)",icon:"✓",label:"Complete"},failed:{color:"var(--accent-red)",icon:"✗",label:"Failed"},blocked:{color:"var(--accent-yellow)",icon:"⦸",label:"Blocked"}};function ga(n){return n==="blocked"?ap.blocked:ap[em(n)]}const QE={not_started:"statusPending",working:"statusInProgress",paused:"statusWaitingInput",complete:"statusDone",failed:"statusFailed"};function eA(n){return QE[em(n)]??"statusPending"}const tA=["working","paused","failed","not_started","blocked","complete"],Uy=["not_started","working","paused","complete","failed"],nA={pending:"not_started",assigned:"not_started",in_progress:"working",waiting_input:"paused",review:"paused",done:"complete"};function em(n){return n in ap&&n!=="blocked"?n:nA[n]??"not_started"}const sA={not_started:"--text-tertiary",working:"--accent-green",paused:"--accent-yellow",complete:"--accent-green",failed:"--accent-red",pending:"--text-tertiary",assigned:"--text-tertiary",in_progress:"--accent-green",review:"--accent-yellow",done:"--accent-green",waiting_input:"--accent-yellow"};function aA(n){if(n.length===0)return[];const s=[...n].sort((o,c)=>o[0]-c[0]),i=[[s[0][0],s[0][1]]];for(let o=1;o<s.length;o++){const c=i[i.length-1],[u,d]=s[o];u<=c[1]+1?c[1]=Math.max(c[1],d):i.push([u,d])}return i}function Sx({text:n,indices:s,highlightClass:i}){if(!s||s.length===0)return l.jsx(l.Fragment,{children:n});const o=aA(s),c=[];let u=0;for(const[d,m]of o)d>u&&c.push(l.jsx("span",{children:n.slice(u,d)},`p${u}`)),c.push(l.jsx("mark",{className:i,children:n.slice(d,m+1)},`m${d}`)),u=m+1;return u<n.length&&c.push(l.jsx("span",{children:n.slice(u)},`p${u}`)),l.jsx(l.Fragment,{children:c})}function iA(n){const s=new Map(n.map(o=>[o.id,{...o,children:[]}])),i=[];for(const o of s.values())o.parentTaskId&&s.has(o.parentTaskId)?s.get(o.parentTaskId).children.push(o):i.push(o);for(const o of s.values())o.children.sort((c,u)=>c.sortOrder-u.sortOrder);return i.sort((o,c)=>o.sortOrder-c.sortOrder)}function oA(n,s){const i=new Map;for(const u of n){const m=u.dependsOn.length>0&&u.dependsOn.some(g=>s.get(g)!=="complete")?"blocked":u.status,h=i.get(m);h?h.push(u):i.set(m,[u])}const o=[],c=new Set;for(const u of tA){c.add(u);const d=i.get(u);if(d&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ga(u);o.push({status:u,label:m.label,style:m,tasks:d})}}for(const[u,d]of i)if(!c.has(u)&&d.length>0){d.sort((h,g)=>h.sortOrder-g.sortOrder);const m=ga(u);o.push({status:u,label:m.label,style:m,tasks:d})}return o}const rA="_container_z4i38_1",lA="_header_z4i38_5",cA="_headerActions_z4i38_17",uA="_searchInput_z4i38_23",dA="_searchHighlight_z4i38_56",fA="_groupToggle_z4i38_62",pA="_groupToggleActive_z4i38_89",mA="_addButton_z4i38_93",hA="_taskRow_z4i38_120",gA="_selected_z4i38_140",vA="_expandArrow_z4i38_150",yA="_expanded_z4i38_157",bA="_leafSpacer_z4i38_161",_A="_taskStatusIcon_z4i38_166",xA="_taskTitle_z4i38_170",SA="_workspaceBadge_z4i38_177",TA="_childCountBadge_z4i38_195",kA="_dependencyBadge_z4i38_208",wA="_blockedBadge_z4i38_220",NA="_addChildButton_z4i38_225",jA="_emptyState_z4i38_268",CA="_statusGroupHeader_z4i38_275",EA="_statusGroupIcon_z4i38_294",AA="_statusGroupLabel_z4i38_298",DA="_statusGroupCount_z4i38_303",Ze={container:rA,header:lA,headerActions:cA,searchInput:uA,searchHighlight:dA,groupToggle:fA,groupToggleActive:pA,addButton:mA,taskRow:hA,selected:gA,expandArrow:vA,expanded:yA,leafSpacer:bA,taskStatusIcon:_A,taskTitle:xA,workspaceBadge:SA,childCountBadge:TA,dependencyBadge:kA,blockedBadge:wA,addChildButton:NA,emptyState:jA,statusGroupHeader:CA,statusGroupIcon:EA,statusGroupLabel:AA,statusGroupCount:DA},RA=[{name:"title",weight:2},{name:"description",weight:1}],Tx=16,MA=16,kx="grackle-task-group-by-status";function zy(){try{return localStorage.getItem(kx)==="true"}catch{return!1}}function OA(n){try{localStorage.setItem(kx,String(n))}catch{}}function IA({group:n,isExpanded:s,onToggle:i,selectedTaskId:o,navigate:c,titleHighlights:u,workspaceNames:d}){return l.jsxs("div",{"data-testid":`status-group-${n.status}`,children:[l.jsxs("div",{className:Ze.statusGroupHeader,role:"button",tabIndex:0,"aria-expanded":s,onClick:i,onKeyDown:m=>{(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),i())},children:[l.jsx("span",{className:`${Ze.expandArrow} ${s?Ze.expanded:""}`,children:"▸"}),l.jsx("span",{className:Ze.statusGroupIcon,style:{color:n.style.color},children:n.style.icon}),l.jsx("span",{className:Ze.statusGroupLabel,children:n.label}),l.jsx("span",{className:Ze.statusGroupCount,children:n.tasks.length})]}),l.jsx(rs,{children:s&&l.jsx(Dt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.2},style:{overflow:"hidden"},children:n.tasks.map(m=>{const h=ga(m.status),g=o===m.id,v=m.parentTaskId||!m.workspaceId?void 0:d.get(m.workspaceId);return l.jsxs("div",{onClick:()=>c(os(m.id)),className:`${Ze.taskRow} ${g?Ze.selected:""}`,style:{"--task-indent":`${Tx}px`},"data-task-id":m.id,children:[l.jsx("span",{className:Ze.leafSpacer}),l.jsx("span",{className:Ze.taskStatusIcon,style:{color:h.color},children:h.icon}),l.jsx("span",{className:Ze.taskTitle,title:m.title,children:l.jsx(Sx,{text:m.title,indices:u.get(m.id),highlightClass:Ze.searchHighlight})}),v&&l.jsx("span",{className:Ze.workspaceBadge,title:v,children:v})]},m.id)})})})]})}function wx({node:n,depth:s,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h}){const g=ga(n.status),v=n.dependsOn.length>0&&n.dependsOn.some(w=>d.get(w)!=="complete"),b=i.has(n.id),_=n.children.length>0,S=c===n.id,T=Tx+s*MA,j=s===0&&!n.parentTaskId&&n.workspaceId?h.get(n.workspaceId):void 0;return l.jsxs(l.Fragment,{children:[l.jsxs("div",{onClick:()=>u(os(n.id)),className:`${Ze.taskRow} ${S?Ze.selected:""}`,style:{"--task-indent":`${T}px`},"data-task-id":n.id,children:[_&&l.jsx("span",{className:`${Ze.expandArrow} ${b?Ze.expanded:""}`,role:"button",tabIndex:0,"aria-label":b?"Collapse task":"Expand task",onClick:w=>{w.stopPropagation(),o(n.id)},onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),w.stopPropagation(),o(n.id))},children:"▸"}),!_&&l.jsx("span",{className:Ze.leafSpacer}),l.jsx("span",{className:Ze.taskStatusIcon,style:{color:g.color},children:g.icon}),l.jsx("span",{className:Ze.taskTitle,title:n.title,children:l.jsx(Sx,{text:n.title,indices:m.get(n.id),highlightClass:Ze.searchHighlight})}),j&&l.jsx("span",{className:Ze.workspaceBadge,title:j,children:j}),_&&l.jsxs("span",{className:Ze.childCountBadge,children:[n.children.filter(w=>w.status==="complete").length,"/",n.children.length]}),n.dependsOn.length>0&&l.jsx("span",{className:`${Ze.dependencyBadge} ${v?Ze.blockedBadge:""}`,title:`Depends on: ${n.dependsOn.join(", ")}`,children:v?"blocked":"dep"}),s<pT&&l.jsx("button",{onClick:w=>{w.stopPropagation(),u(ei(n.workspaceId,n.id))},title:"Add child task","aria-label":"Add child task",className:Ze.addChildButton,children:"+"})]}),l.jsx(rs,{children:_&&b&&l.jsx(Dt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.15},style:{overflow:"hidden"},children:n.children.map(w=>l.jsx(wx,{node:w,depth:s+1,expandedTasks:i,toggleTask:o,selectedTaskId:c,navigate:u,taskStatusById:d,titleHighlights:m,workspaceNames:h},w.id))})})]})}function LA({workspaces:n,tasks:s}){const i=xt(),[o,c]=y.useState(new Set),[u,d]=y.useState(new Set),[m,h]=y.useState(zy),[g,v]=y.useState(zy),[b,_]=y.useState(new Map),S=At("/tasks/:taskId/*"),T=(S==null?void 0:S.params.taskId)!=="new"?S==null?void 0:S.params.taskId:void 0,N=y.useMemo(()=>new Map(s.map(K=>[K.id,K.status])),[s]),j=y.useMemo(()=>new Map(n.map(K=>[K.id,K.name])),[n]),w=()=>{const K=!m;OA(K),h(K),K&&(v(!0),_(new Map))},E=K=>{_(re=>{const I=new Map(re),$=I.has(K)?I.get(K):g;return I.set(K,!$),I})},A=K=>b.has(K)?b.get(K):g,O=K=>{c(re=>{const I=new Set(re);return I.has(K)?(I.delete(K),d($=>new Set($).add(K))):(I.add(K),d($=>{const Q=new Set($);return Q.delete(K),Q})),I})};y.useEffect(()=>{const K=new Set(s.filter(re=>re.parentTaskId).map(re=>re.parentTaskId));K.size>0&&c(re=>{const I=new Set(re);for(const $ of K)u.has($)||I.add($);return I})},[s,u]);const[C,M]=y.useState(""),{directMatchTaskIds:G,treeMatchTaskIds:U,titleHighlights:V}=y.useMemo(()=>{if(!C.trim())return{directMatchTaskIds:null,treeMatchTaskIds:null,titleHighlights:new Map};const K=fT(s,C,RA),re=new Set(K.map(de=>de.item.id)),I=new Map;for(const de of K){const me=de.matches.find(ze=>ze.key==="title");me&&I.set(de.item.id,me.indices)}const $=new Set(re),Q=new Map(s.map(de=>[de.id,de]));for(const de of[...re]){let me=Q.get(de);for(;me!=null&&me.parentTaskId;)$.add(me.parentTaskId),me=Q.get(me.parentTaskId)}return{directMatchTaskIds:re,treeMatchTaskIds:$,titleHighlights:I}},[C,s]),F=G!==null,ee=F?m?G:U:null,ae=ee?s.filter(K=>ee.has(K.id)):s,be=m?[]:iA(ae);return l.jsxs("div",{className:Ze.container,children:[l.jsxs("div",{className:Ze.header,children:[l.jsx("span",{children:"Tasks"}),l.jsxs("div",{className:Ze.headerActions,children:[l.jsx("button",{className:`${Ze.groupToggle} ${m?Ze.groupToggleActive:""}`,onClick:w,"aria-label":m?"Switch to tree view":"Group tasks by status","aria-pressed":m,title:m?"Switch to tree view":"Group tasks by status","data-testid":"task-group-by-status-toggle",children:"≡"}),l.jsx("button",{className:Ze.addButton,onClick:()=>i(ei()),"aria-label":"New task",title:"New task","data-testid":"new-task-button",children:"+"})]})]}),s.length>0&&l.jsx("input",{type:"text",value:C,onChange:K=>M(K.target.value),placeholder:"Filter...","aria-label":"Filter tasks",className:Ze.searchInput,"data-testid":"sidebar-search"}),m?oA(ae,N).map(K=>l.jsx(IA,{group:K,isExpanded:A(K.status),onToggle:()=>E(K.status),selectedTaskId:T,navigate:i,titleHighlights:V,workspaceNames:j},K.status)):be.map(K=>l.jsx(wx,{node:K,depth:0,expandedTasks:o,toggleTask:O,selectedTaskId:T,navigate:i,taskStatusById:N,titleHighlights:V,workspaceNames:j},K.id)),ae.length===0&&!F&&l.jsx("div",{className:Ze.emptyState,children:"No tasks yet. Click + to create one."}),ae.length===0&&F&&l.jsx("div",{className:Ze.emptyState,children:"No matching tasks"})]})}const BA="_nav_14i94_1",UA="_tab_14i94_24",zA="_tabActive_14i94_62",PA="_tabLabel_14i94_75",VA="_statusDot_14i94_81",HA="_pulse_14i94_87",qA="_addButton_14i94_99",GA="_empty_14i94_132",ua={nav:BA,tab:UA,tabActive:zA,tabLabel:PA,statusDot:VA,pulse:HA,addButton:qA,empty:GA},$A={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function ZA({environments:n}){const s=xt(),i=y.useRef(null),o=At("/environments/:environmentId"),c=At("/environments/:environmentId/edit"),u=At("/environments/:environmentId/workspaces/:workspaceId"),d=At("/environments/:environmentId/workspaces/:workspaceId/*"),m=(o==null?void 0:o.params.environmentId)??(c==null?void 0:c.params.environmentId)??(u==null?void 0:u.params.environmentId)??(d==null?void 0:d.params.environmentId),h=m==="new"?void 0:m,g=y.useCallback(_=>{s(Wi(_))},[s]),v=y.useCallback(_=>{var w;const S=(w=i.current)==null?void 0:w.querySelectorAll('[role="tab"]');if(!S||S.length===0)return;const T=Array.from(S).findIndex(E=>E===document.activeElement),N=T>=0?T:n.findIndex(E=>E.id===h);let j=N;if(_.key==="ArrowDown"||_.key==="j"||_.key==="J")_.preventDefault(),j=(N+1)%S.length;else if(_.key==="ArrowUp"||_.key==="k"||_.key==="K")_.preventDefault(),j=(N-1+S.length)%S.length;else if(_.key==="Home")_.preventDefault(),j=0;else if(_.key==="End")_.preventDefault(),j=S.length-1;else return;j<n.length&&s(Wi(n[j].id)),S[j].focus()},[h,n,s]),b=h??(n.length>0?n[0].id:void 0);return l.jsxs("div",{className:ua.nav,"data-testid":"environment-nav",children:[l.jsx("nav",{ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Environments",onKeyDown:v,children:n.map(_=>{const S=_.id===h,T=_.id===b,N=$A[_.status]||"var(--text-tertiary)",j=_.status==="connected";return l.jsxs("button",{role:"tab",type:"button","aria-selected":S,tabIndex:T?0:-1,className:`${ua.tab} ${S?ua.tabActive:""}`,onClick:()=>g(_.id),"data-testid":"env-nav-item",children:[l.jsx("span",{className:`${ua.statusDot} ${j?ua.pulse:""}`,style:{color:N},children:"●"}),l.jsx("span",{className:ua.tabLabel,title:_.displayName||_.id,children:_.displayName||_.id})]},_.id)})}),l.jsx("button",{type:"button",className:ua.addButton,onClick:()=>s(i2),title:"Add environment","data-testid":"env-nav-add",children:"+ Add Environment"}),n.length===0&&l.jsx("div",{className:ua.empty,children:"No environments yet."})]})}const FA="_nav_1bhou_1",KA="_tab_1bhou_24",YA="_tabIcon_1bhou_62",JA="_tabActive_1bhou_68",ac={nav:FA,tab:KA,tabIcon:YA,tabActive:JA},Cs=[{path:"credentials",label:"Credentials",icon:"🔑"},{path:"personas",label:"Personas",icon:"👤"},{path:"appearance",label:"Appearance",icon:"🎨"},{path:"shortcuts",label:"Shortcuts",icon:"⌨️"},{path:"about",label:"About",icon:"ℹ️"}];function XA(){var d;const n=It(),s=xt(),i=y.useRef(null),o=((d=Cs.find(m=>{const h=`${Yi}/${m.path}`;return n.pathname===h||n.pathname.startsWith(`${h}/`)}))==null?void 0:d.path)??Cs[0].path,c=y.useCallback(m=>{s(`${Yi}/${m}`)},[s]),u=y.useCallback(m=>{var S,T;const h=(S=i.current)==null?void 0:S.querySelectorAll('[role="tab"]');if(!h)return;const g=Array.from(h).findIndex(N=>N===document.activeElement),v=g>=0?g:Cs.findIndex(N=>N.path===o);let b=v;if(m.key==="ArrowDown"||m.key==="j"||m.key==="J")m.preventDefault(),b=(v+1)%Cs.length;else if(m.key==="ArrowUp"||m.key==="k"||m.key==="K")m.preventDefault(),b=(v-1+Cs.length)%Cs.length;else if(m.key==="Home")m.preventDefault(),b=0;else if(m.key==="End")m.preventDefault(),b=Cs.length-1;else return;const _=Cs[b].path;s(`${Yi}/${_}`),(T=h[b])==null||T.focus()},[o,s]);return l.jsx("nav",{className:ac.nav,ref:i,role:"tablist","aria-orientation":"vertical","aria-label":"Settings",onKeyDown:u,children:Cs.map(m=>{const h=m.path===o;return l.jsxs("button",{role:"tab",type:"button","aria-selected":h,tabIndex:h?0:-1,className:`${ac.tab} ${h?ac.tabActive:""}`,onClick:()=>c(m.path),children:[l.jsx("span",{className:ac.tabIcon,"aria-hidden":"true",children:m.icon}),m.label]},m.path)})})}const WA="_nav_1snmp_1",QA="_searchForm_1snmp_8",eD="_searchInput_1snmp_15",tD="_searchButton_1snmp_33",nD="_clearButton_1snmp_68",sD="_workspaceSelect_1snmp_85",aD="_listHeader_1snmp_99",iD="_nodeList_1snmp_108",oD="_nodeItem_1snmp_116",rD="_indicator_1snmp_129",lD="_label_1snmp_136",cD="_badge_1snmp_145",In={nav:WA,searchForm:QA,searchInput:eD,searchButton:tD,clearButton:nD,workspaceSelect:sD,listHeader:aD,nodeList:iD,nodeItem:oD,indicator:rD,label:lD,badge:cD};function uD({nodes:n,workspaces:s,loading:i,searchQuery:o,onSearch:c,onClearSearch:u,onSelectNode:d,onWorkspaceChange:m}){const[h,g]=y.useState(""),v=y.useCallback(T=>{T.preventDefault(),h.trim()&&c(h.trim())},[h,c]),b=y.useCallback(()=>{g(""),u()},[u]),_=y.useCallback(T=>{d(T)},[d]),S=y.useCallback(T=>{g(""),m(T)},[m]);return l.jsxs("div",{className:In.nav,"data-testid":"knowledge-nav",children:[l.jsxs("form",{className:In.searchForm,onSubmit:v,children:[l.jsx("input",{className:In.searchInput,type:"text",placeholder:"Search...",value:h,onChange:T=>{g(T.target.value)},"data-testid":"knowledge-search-input"}),l.jsx("button",{type:"submit",className:In.searchButton,disabled:i,children:"Go"})]}),o&&l.jsx("button",{type:"button",className:In.clearButton,onClick:b,children:"Clear search"}),l.jsxs("select",{className:In.workspaceSelect,onChange:T=>{S(T.target.value)},"data-testid":"knowledge-workspace-filter",children:[l.jsx("option",{value:"",children:"All workspaces"}),s.map(T=>l.jsx("option",{value:T.id,children:T.name},T.id))]}),l.jsxs("div",{className:In.listHeader,children:["Nodes (",n.length,")"]}),l.jsx("ul",{className:In.nodeList,children:n.map(T=>l.jsxs("li",{className:In.nodeItem,onClick:()=>{_(T.id)},onKeyDown:N=>{(N.key==="Enter"||N.key===" ")&&(N.preventDefault(),_(T.id))},role:"button",tabIndex:0,children:[l.jsx("span",{className:In.indicator,style:{backgroundColor:T.kind==="reference"?"#4A9EFF":T.category==="decision"?"#22C55E":T.category==="concept"?"#A855F7":T.category==="snippet"?"#6B7280":"#EAB308"}}),l.jsx("span",{className:In.label,children:T.label}),l.jsx("span",{className:In.badge,children:T.kind==="reference"?T.sourceType:T.category})]},T.id))})]})}function dD(){const{workspaces:n,tasks:s}=pt(),i=y.useMemo(()=>l.jsx(LA,{workspaces:n,tasks:s}),[n,s]);return Oc(i),l.jsx(Qa,{})}function fD(){const{environments:n}=pt(),s=y.useMemo(()=>l.jsx(ZA,{environments:n}),[n]);return Oc(s),l.jsx(Qa,{})}function pD(){const n=y.useMemo(()=>l.jsx(XA,{}),[]);return Oc(n),l.jsx(Qa,{})}function mD(){const{knowledge:n,workspaces:s}=pt(),i=y.useCallback(m=>{n.search(m)},[n]),o=y.useCallback(()=>{n.clearSearch()},[n]),c=y.useCallback(m=>{n.selectNode(m)},[n]),u=y.useCallback(m=>{n.loadRecent(m||void 0)},[n]),d=y.useMemo(()=>l.jsx(uD,{nodes:n.graphData.nodes,workspaces:s,loading:n.loading,searchQuery:n.searchQuery,onSearch:i,onClearSearch:o,onSelectNode:c,onWorkspaceChange:u}),[n,s,i,o,c,u]);return Oc(d),l.jsx(Qa,{})}const hD="_bar_tnfsh_1",gD="_btnPrimary_tnfsh_32",vD="_statusText_tnfsh_85",yD="_statusCompleted_tnfsh_90",bD="_statusFailed_tnfsh_94",_D="_statusBlocked_tnfsh_98",xD="_hintText_tnfsh_103",ht={bar:hD,btnPrimary:gD,statusText:vD,statusCompleted:yD,statusFailed:bD,statusBlocked:_D,hintText:xD};function SD({sessions:n,tasks:s,environments:i}){const o=xt(),c=It(),u=At("/sessions/:sessionId"),d=At("/tasks/:taskId"),m=At("/tasks/:taskId/stream"),h=At("/tasks/:taskId/findings"),g=At("/tasks/:taskId/edit"),v=At("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId"),b=At("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream"),_=At("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings"),S=At("/environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit"),T=At("/sessions/new"),N=At("/environments/:environmentId/workspaces/:workspaceId"),j=At("/tasks/new"),w=At("/chat"),E=At("/"),A=At("/settings/*"),O=u==null?void 0:u.params.sessionId,C=(d==null?void 0:d.params.taskId)??(m==null?void 0:m.params.taskId)??(h==null?void 0:h.params.taskId)??(v==null?void 0:v.params.taskId)??(b==null?void 0:b.params.taskId)??(_==null?void 0:_.params.taskId)??(S==null?void 0:S.params.taskId),M=v??b??_??S,G=(M==null?void 0:M.params.environmentId)??(N==null?void 0:N.params.environmentId),U=c.pathname.startsWith("/environments")&&!N&&!M,V=!!w,F=!!T,ee=!!N&&!v&&!b&&!_&&!S,ae=!!j;if(!!E&&!F&&!ee&&!ae||!!A||(!!g||!!S)||ae||U||F)return l.jsx(l.Fragment,{});if(V)return i.find($=>$.adapterType==="local"&&$.status==="connected")?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Add a local environment to start chatting"})});if(ee)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Select a task or click + to create one"})});if(C){const I=s.find(de=>de.id===C);if(!I)return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})});const $=new Map(s.map(de=>[de.id,de])),Q=I.dependsOn.some(de=>{const me=$.get(de);return me!==void 0&&me.status!=="complete"});if(I.status==="not_started"){const de=Q?I.dependsOn.map(me=>$.get(me)).filter(me=>me&&me.status!=="complete").map(me=>me.title):[];return l.jsx("div",{className:ht.bar,children:Q?l.jsxs("span",{className:ht.statusBlocked,children:["Blocked by: ",de.join(", ")]}):l.jsx("span",{className:ht.hintText,children:"Use the buttons above to start or manage this task"})})}if(I.status==="working"||I.status==="paused"){const de=I.latestSessionId||void 0,me=de?n.find(je=>je.id===de):void 0;return me&&me.status!=="stopped"?l.jsx(l.Fragment,{}):l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Waiting for agent..."})})}if(I.status==="complete")return l.jsxs("div",{className:ht.bar,children:[l.jsx("span",{className:`${ht.statusText} ${ht.statusCompleted}`,children:"Task completed"}),l.jsx("button",{onClick:()=>o(ei(I.workspaceId,void 0,G)),className:ht.btnPrimary,children:"+ New Task"})]});if(I.status==="failed")return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:`${ht.statusText} ${ht.statusFailed}`,children:"Task failed"})})}if(O){const I=n.find(de=>de.id===O),$=(I==null?void 0:I.status)==="stopped";if(I!==void 0&&!$)return l.jsx(l.Fragment,{});if($)return l.jsxs("div",{className:ht.bar,children:[l.jsxs("span",{className:`${ht.statusText} ${ht.hintText}`,children:["Session ",I.endReason||I.status]}),l.jsx("button",{onClick:()=>o(Nb(I.environmentId)),className:ht.btnPrimary,children:"+ New Chat"})]})}return l.jsx("div",{className:ht.bar,children:l.jsx("span",{className:ht.hintText,children:"Loading..."})})}const TD="_toast_da8ll_1",kD="_success_da8ll_18",wD="_icon_da8ll_22",ND="_error_da8ll_25",jD="_warning_da8ll_32",CD="_info_da8ll_38",ED="_message_da8ll_53",AD="_close_da8ll_60",or={toast:TD,success:kD,icon:wD,error:ND,warning:jD,info:CD,message:ED,close:AD},DD={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function RD({toast:n,onDismiss:s}){return y.useEffect(()=>{const i=setTimeout(()=>s(n.id),n.duration);return()=>clearTimeout(i)},[n.id,n.duration,s]),l.jsxs(Dt.div,{className:`${or.toast} ${or[n.variant]}`,role:"status",initial:{opacity:0,y:-16,scale:.94},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:-8,scale:.94},transition:{duration:.2,ease:"easeOut"},layout:!0,children:[l.jsx("span",{className:or.icon,"aria-hidden":"true",children:DD[n.variant]}),l.jsx("span",{className:or.message,children:n.message}),l.jsx("button",{type:"button",className:or.close,onClick:()=>s(n.id),"aria-label":"Dismiss notification",children:"×"})]})}const MD="_container_qqse2_1",OD={container:MD};function ID(){const{toasts:n,dismissToast:s}=Ls();return l.jsx("div",{className:OD.container,"data-testid":"toast-container",children:l.jsx(rs,{children:n.map(i=>l.jsx(RD,{toast:i,onDismiss:s},i.id))})})}const LD="_callout_1jaue_1",BD="_success_1jaue_11",UD="_icon_1jaue_15",zD="_error_1jaue_18",PD="_warning_1jaue_25",VD="_info_1jaue_32",HD="_content_1jaue_48",qD="_close_1jaue_53",rr={callout:LD,success:BD,icon:UD,error:zD,warning:PD,info:VD,content:HD,close:qD},GD={success:"✓",error:"✕",warning:"⚠",info:"ℹ"};function $D({variant:n="info",children:s,dismissible:i=!1,className:o}){const[c,u]=y.useState(!1);return l.jsx(l.Fragment,{children:!c&&l.jsxs("div",{className:[rr.callout,rr[n],o].filter(Boolean).join(" "),role:n==="error"||n==="warning"?"alert":"status",children:[l.jsx("span",{className:rr.icon,"aria-hidden":"true",children:GD[n]}),l.jsx("span",{className:rr.content,children:s}),i&&l.jsx("button",{type:"button",className:rr.close,onClick:()=>u(!0),"aria-label":"Dismiss",children:"×"})]})})}const ZD="_breadcrumbs_17or2_1",FD="_list_17or2_11",KD="_item_17or2_21",YD="_separator_17or2_28",JD="_link_17or2_34",XD="_current_17or2_57",Vi={breadcrumbs:ZD,list:FD,item:KD,separator:YD,link:JD,current:XD},WD="›";function ba({segments:n}){return l.jsx("nav",{className:Vi.breadcrumbs,"aria-label":"Breadcrumb","data-testid":"breadcrumbs",children:l.jsx("ol",{className:Vi.list,children:n.map((s,i)=>{const o=i===n.length-1;return l.jsxs("li",{className:Vi.item,children:[i>0&&l.jsx("span",{className:Vi.separator,"aria-hidden":"true",children:WD}),s.url&&!o?l.jsx(gp,{className:Vi.link,to:s.url,title:s.label,children:s.label}):l.jsx("span",{className:Vi.current,"aria-current":"page",title:s.label,children:s.label})]},i)})})})}const QD="_btn_dwk2o_1",eR="_sm_dwk2o_22",tR="_md_dwk2o_28",nR="_lg_dwk2o_34",sR="_primary_dwk2o_40",aR="_danger_dwk2o_55",iR="_outline_dwk2o_70",oR="_ghost_dwk2o_80",Tf={btn:QD,sm:eR,md:tR,lg:nR,primary:sR,danger:aR,outline:iR,ghost:oR},As=y.forwardRef(function({variant:s="primary",size:i="md",className:o,children:c,...u},d){const m=[Tf.btn,Tf[s],Tf[i],o].filter(Boolean).join(" ");return l.jsx("button",{ref:d,className:m,...u,children:c})}),rR="_banner_bxqlh_1",lR="_label_bxqlh_15",cR="_text_bxqlh_25",uR="_link_bxqlh_29",ic={banner:rR,label:lR,text:cR,link:uR};function dR(){return l.jsxs("div",{className:ic.banner,"data-testid":"demo-banner",children:[l.jsx("span",{className:ic.label,children:"DEMO"}),l.jsxs("span",{className:ic.text,children:["This is an interactive demo with mock data."," ",l.jsx("a",{href:"https://github.com/nick-pape/grackle",target:"_blank",rel:"noopener noreferrer",className:ic.link,children:"Install Grackle"})," ","to use it for real."]})]})}const fR="_container_og0yp_1",pR="_chevronButton_og0yp_6",mR="_mainButton_og0yp_6",hR="_sm_og0yp_34",gR="_md_og0yp_34",vR="_lg_og0yp_34",yR="_primary_og0yp_57",bR="_danger_og0yp_70",_R="_outline_og0yp_83",xR="_ghost_og0yp_92",SR="_dropdown_og0yp_100",TR="_option_og0yp_113",kR="_optionLabel_og0yp_130",wR="_optionDesc_og0yp_135",Es={container:fR,chevronButton:pR,mainButton:mR,sm:hR,md:gR,lg:vR,primary:yR,danger:bR,outline:_R,ghost:xR,dropdown:SR,option:TR,optionLabel:kR,optionDesc:wR};function Nx({label:n,onClick:s,options:i,variant:o="primary",size:c="md","data-testid":u}){const[d,m]=y.useState(!1),h=y.useRef(null);y.useEffect(()=>{if(!d)return;function _(S){h.current&&S.target instanceof Node&&!h.current.contains(S.target)&&m(!1)}return document.addEventListener("mousedown",_),()=>document.removeEventListener("mousedown",_)},[d]),y.useEffect(()=>{if(!d)return;function _(S){S.key==="Escape"&&m(!1)}return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[d]);const g=Es[o]||"",v=Es[c]||"",b=()=>{d&&m(!1),s()};return l.jsxs("div",{ref:h,className:Es.container,"data-testid":u,children:[l.jsx("button",{type:"button",className:`${Es.mainButton} ${g} ${v}`,onClick:b,"data-testid":u?`${u}-main`:void 0,children:n}),l.jsx("button",{type:"button",className:`${Es.chevronButton} ${g} ${v}`,onClick:()=>m(_=>!_),"aria-label":`More options for ${n}`,"aria-haspopup":"menu","aria-expanded":d,"data-testid":u?`${u}-chevron`:void 0,children:"▾"}),d&&l.jsx("div",{className:Es.dropdown,"data-testid":u?`${u}-menu`:void 0,children:i.map((_,S)=>l.jsxs("button",{type:"button",className:Es.option,onClick:()=>{_.onClick(),m(!1)},children:[l.jsx("span",{className:Es.optionLabel,children:_.label}),_.description&&l.jsx("span",{className:Es.optionDesc,children:_.description})]},S))})]})}function ip(){ip=function(c,u){return new i(c,void 0,u)};var n=RegExp.prototype,s=new WeakMap;function i(c,u,d){var m=new RegExp(c,u);return s.set(m,d||s.get(c)),Nc(m,i.prototype)}function o(c,u){var d=s.get(u);return Object.keys(d).reduce(function(m,h){var g=d[h];if(typeof g=="number")m[h]=c[g];else{for(var v=0;c[g[v]]===void 0&&v+1<g.length;)v++;m[h]=c[g[v]]}return m},Object.create(null))}return(function(c,u){if(typeof u!="function"&&u!==null)throw new TypeError("Super expression must either be null or a function");c.prototype=Object.create(u&&u.prototype,{constructor:{value:c,writable:!0,configurable:!0}}),Object.defineProperty(c,"prototype",{writable:!1}),u&&Nc(c,u)})(i,RegExp),i.prototype.exec=function(c){var u=n.exec.call(this,c);if(u){u.groups=o(u,this);var d=u.indices;d&&(d.groups=o(d,this))}return u},i.prototype[Symbol.replace]=function(c,u){if(typeof u=="string"){var d=s.get(this);return n[Symbol.replace].call(this,c,u.replace(/\$<([^>]+)>/g,function(h,g){var v=d[g];return"$"+(Array.isArray(v)?v.join("$"):v)}))}if(typeof u=="function"){var m=this;return n[Symbol.replace].call(this,c,function(){var h=arguments;return typeof h[h.length-1]!="object"&&(h=[].slice.call(h)).push(o(h,m)),u.apply(this,h)})}return n[Symbol.replace].call(this,c,u)},ip.apply(this,arguments)}function Nc(n,s){return Nc=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,o){return i.__proto__=o,i},Nc(n,s)}function Py(n,s){(s==null||s>n.length)&&(s=n.length);for(var i=0,o=new Array(s);i<s;i++)o[i]=n[i];return o}function kf(n,s){var i=typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(i)return(i=i.call(n)).next.bind(i);if(Array.isArray(n)||(i=(function(c,u){if(c){if(typeof c=="string")return Py(c,u);var d=Object.prototype.toString.call(c).slice(8,-1);return d==="Object"&&c.constructor&&(d=c.constructor.name),d==="Map"||d==="Set"?Array.from(c):d==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(d)?Py(c,u):void 0}})(n))||s){i&&(n=i);var o=0;return function(){return o>=n.length?{done:!0}:{done:!1,value:n[o++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
473
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var NR=(function(n){return function(s){return s===void 0&&(s={}),(function(o,c){if(c&&!o.registered(c))throw new Error('The default language "'+c+'" is not registered with refractor.')})(n,s.defaultLanguage),function(o){YS(o,"element",i)};function i(o,c,u){var d,m;if(u&&u.tagName==="pre"&&o.tagName==="code"){var h=(o==null||(d=o.data)==null?void 0:d.meta)||(o==null||(m=o.properties)==null?void 0:m.metastring)||"";o.properties.className?typeof o.properties.className=="boolean"?o.properties.className=[]:Array.isArray(o.properties.className)||(o.properties.className=[o.properties.className]):o.properties.className=[];var g,v,b=(function(C){for(var M,G=kf(C.properties.className);!(M=G()).done;){var U=M.value;if(U.slice(0,9)==="language-")return U.slice(9).toLowerCase()}return null})(o);if(!b&&s.defaultLanguage&&o.properties.className.push("language-"+(b=s.defaultLanguage)),o.properties.className.push("code-highlight"),b)try{var _,S;S=(_=b)!=null&&_.includes("diff-")?b.split("-")[1]:b,g=n.highlight(Yl(o),S),u.properties.className=(u.properties.className||[]).concat("language-"+S)}catch(C){if(!s.ignoreMissing||!/Unknown language/.test(C.message))throw C;g=o}else g=o;g.children=(v=1,function C(M){return M.reduce(function(G,U){if(U.type==="text"){var V=U.value,F=(V.match(/\n/g)||"").length;if(F===0)U.position={start:{line:v,column:1},end:{line:v,column:1}},G.push(U);else for(var ee,ae=V.split(`
474
- `),be=kf(ae.entries());!(ee=be()).done;){var K=ee.value,re=K[0],I=K[1];G.push({type:"text",value:re===ae.length-1?I:I+`
475
- `,position:{start:{line:v+re,column:1},end:{line:v+re,column:1}}})}return v+=F,G}if(Object.prototype.hasOwnProperty.call(U,"children")){var $=v;return U.children=C(U.children),G.push(U),U.position={start:{line:$,column:1},end:{line:v,column:1}},G}return G.push(U),G},[])})(g.children),g.position=g.children.length>0?{start:{line:g.children[0].position.start.line,column:0},end:{line:g.children[g.children.length-1].position.end.line,column:0}}:{start:{line:0,column:0},end:{line:0,column:0}};for(var T,N=(function(C){var M=/{([\d,-]+)}/,G=C.split(",").map(function(F){return F.trim()}).join();if(M.test(G)){var U=M.exec(G)[1],V=XS(U);return function(F){return V.includes(F+1)}}return function(){return!1}})(h),j=(function(C){var M=ip(/showLineNumbers=(\d+)/i,{lines:1});if(M.test(C)){var G=M.exec(C);return Number(G.groups.lines)}return 1})(h),w=(function(C){for(var M=new Array(C),G=0;G<C;G++)M[G]={type:"element",tagName:"span",properties:{className:[]},children:[]};return M})(g.position.end.line),E=["showlinenumbers=false",'showlinenumbers="false"',"showlinenumbers={false}"],A=function(){var C,M,G=T.value,U=G[0],V=G[1];V.properties.className=["code-line"];var F=WS(g,function(ee){return ee.position.start.line<=U+1&&ee.position.end.line>=U+1});V.children=F.children,(h.toLowerCase().includes("showLineNumbers".toLowerCase())||s.showLineNumbers===!0||typeof s.showLineNumbers=="object"&&s.showLineNumbers.includes(b))&&!E.some(function(ee){return h.toLowerCase().includes(ee)})&&(V.properties.line=[(U+j).toString()],V.properties.className.push("line-number")),N(U)&&V.properties.className.push("highlight-line"),(b==="diff"||(C=b)!=null&&C.includes("diff-"))&&Yl(V).substring(0,1)==="-"?V.properties.className.push("deleted"):(b==="diff"||(M=b)!=null&&M.includes("diff-"))&&Yl(V).substring(0,1)==="+"&&V.properties.className.push("inserted")},O=kf(w.entries());!(T=O()).done;)A();w.length>0&&Yl(w[w.length-1]).trim()===""&&w.pop(),o.children=w}}}})(JS);function jx(n){if(n>=1e6)return`${(n/1e6).toFixed(1)}M`;if(n>=1e3){const s=Number((n/1e3).toFixed(1));return s>=1e3?`${(n/1e6).toFixed(1)}M`:`${s.toFixed(1)}k`}return String(n)}function no(n){return n===0?"-":n<.01?`$${n.toFixed(4)}`:`$${n.toFixed(2)}`}const jR={read:"file-read",view:"file-read",edit:"file-edit",file_change:"file-edit",write:"file-write",bash:"shell",command_execution:"shell",grep:"search",glob:"search",todowrite:"todo",update_plan:"todo",todo_write:"todo",report_intent:"metadata"};function CR(n){return jR[n.toLowerCase()]??"generic"}const ER="_card_1km4d_2",AR="_cardBlue_1km4d_20",DR="_cardOrange_1km4d_24",RR="_cardGreen_1km4d_28",MR="_cardPurple_1km4d_32",OR="_cardNeutral_1km4d_36",IR="_cardRed_1km4d_40",LR="_header_1km4d_44",BR="_icon_1km4d_51",UR="_toolName_1km4d_58",zR="_fileName_1km4d_65",PR="_badge_1km4d_74",VR="_spacer_1km4d_81",HR="_bodyToggle_1km4d_85",qR="_chevron_1km4d_103",GR="_chevronExpanded_1km4d_108",$R="_pre_1km4d_112",ZR="_diffAdd_1km4d_136",FR="_diffRemove_1km4d_148",KR="_diffContext_1km4d_160",YR="_diffHeader_1km4d_169",JR="_diffLine_1km4d_175",XR="_exitOk_1km4d_181",WR="_exitError_1km4d_187",QR="_exitPending_1km4d_193",eM="_inProgress_1km4d_207",tM="_metadata_1km4d_211",nM="_metadataPrefix_1km4d_218",ie={card:ER,cardBlue:AR,cardOrange:DR,cardGreen:RR,cardPurple:MR,cardNeutral:OR,cardRed:IR,header:LR,icon:BR,toolName:UR,fileName:zR,badge:PR,spacer:VR,bodyToggle:HR,chevron:qR,chevronExpanded:GR,pre:$R,diffAdd:ZR,diffRemove:FR,diffContext:KR,diffHeader:YR,diffLine:JR,exitOk:XR,exitError:WR,exitPending:QR,inProgress:eM,metadata:tM,metadataPrefix:nM};function sM(n){if(n==null||typeof n!="object")return"";const s=n;return typeof s.file_path=="string"?s.file_path:typeof s.path=="string"?s.path:""}function aM(n){const s=n.split(/[/\\]/);return s[s.length-1]||n}const wf=5;function Vy({tool:n,args:s,result:i,isError:o,writeVariant:c}){const[u,d]=y.useState(!1),m=sM(s),h=aM(m),g=i===void 0,v=o?ie.cardRed:c?ie.cardGreen:ie.cardBlue,b=c?"var(--accent-green)":"var(--accent-blue)",_=c?"📝":"📄",S=c?"tool-card-file-write":"tool-card-file-read",T=(i==null?void 0:i.split(`
476
- `))??[],N=T.length>wf,j=u?T:T.slice(0,wf);return l.jsxs("div",{className:`${ie.card} ${v} ${g?ie.inProgress:""}`,"data-testid":S,children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,children:_}),l.jsx("span",{className:ie.toolName,style:{color:b},children:n}),h&&l.jsx("span",{className:ie.fileName,title:m,children:h}),!g&&T.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ie.spacer}),l.jsxs("span",{className:ie.badge,children:[T.length," lines"]})]})]}),o&&i&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-error",children:i}),!o&&!g&&T.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-content",children:j.map((w,E)=>l.jsxs("span",{className:ie.diffLine,children:[l.jsx("span",{style:{color:"var(--text-tertiary)",userSelect:"none",marginRight:"var(--space-sm)",display:"inline-block",width:"3ch",textAlign:"right"},children:E+1}),w]},E))}),N&&l.jsxs("button",{type:"button",className:ie.bodyToggle,onClick:()=>{d(w=>!w)},"aria-expanded":u,"data-testid":"tool-card-toggle",children:[l.jsx("span",{className:`${ie.chevron} ${u?ie.chevronExpanded:""}`,children:"▸"}),u?"collapse":`${T.length-wf} more lines`]})]})]})}function iM(n){const s=n.split(`
477
- `),i=[];for(const o of s)o.startsWith("diff --git")||o.startsWith("index ")||(o.startsWith("--- ")||o.startsWith("+++ "))&&!o.startsWith("---- ")&&!o.startsWith("++++ ")||(o.startsWith("@@")?i.push({type:"header",content:o}):o.startsWith("+")?i.push({type:"add",content:o.slice(1)}):o.startsWith("-")?i.push({type:"remove",content:o.slice(1)}):o.startsWith(" ")?i.push({type:"context",content:o.slice(1)}):o===""&&i.push({type:"context",content:""}));return i}function oM(n,s){const i=n.split(`
478
- `),o=s.split(`
479
- `),c=[];for(const u of i)c.push({type:"remove",content:u});for(const u of o)c.push({type:"add",content:u});return c}function rM(n){let s=0,i=0;for(const o of n)o.type==="add"&&s++,o.type==="remove"&&i++;return{added:s,removed:i}}function lM(n){if(n==null||typeof n!="object")return"";const s=n;return typeof s.file_path=="string"&&s.file_path||typeof s.path=="string"&&s.path||""}function cM(n){if(n===void 0||typeof n!="object"||n===null)return;const s=n,i=(typeof s.old_string=="string"?s.old_string:void 0)??(typeof s.old_str=="string"?s.old_str:void 0),o=(typeof s.new_string=="string"?s.new_string:void 0)??(typeof s.new_str=="string"?s.new_str:void 0);if(i!==void 0&&o!==void 0)return{oldStr:i,newStr:o}}function uM(n){const s=n.split(/[/\\]/);return s[s.length-1]||n}function dM(n,s){if(s){let o=s;if(s.trimStart().startsWith("{"))try{const c=JSON.parse(s);typeof c.detailedContent=="string"&&(o=c.detailedContent)}catch{}if(o.includes("@@")||o.startsWith("diff ")){const c=iM(o);if(c.length>0)return c}}const i=cM(n);if(i)return oM(i.oldStr,i.newStr)}const Nf=5;function fM({tool:n,args:s,result:i,isError:o,detailedResult:c}){const[u,d]=y.useState(!1),m=lM(s),h=uM(m),g=i===void 0,v=dM(s,c),b=v?rM(v):null,_=((v==null?void 0:v.length)??0)>Nf,S=u?v:v==null?void 0:v.slice(0,Nf);return l.jsxs("div",{className:`${ie.card} ${o?ie.cardRed:ie.cardOrange} ${g?ie.inProgress:""}`,"data-testid":"tool-card-file-edit",children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,children:"✏️"}),l.jsx("span",{className:ie.toolName,style:{color:"var(--accent-yellow)"},children:n}),h&&l.jsx("span",{className:ie.fileName,title:m,children:h}),b&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ie.spacer}),l.jsxs("span",{className:ie.badge,"data-testid":"tool-card-diff-stats",children:[l.jsxs("span",{style:{color:"var(--accent-green)"},children:["+",b.added]})," ",l.jsxs("span",{style:{color:"var(--accent-red)"},children:["−",b.removed]})]})]})]}),o&&i&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-error",children:i}),!o&&S&&S.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-diff",children:S.map((T,N)=>{let j=ie.diffContext;return T.type==="add"&&(j=ie.diffAdd),T.type==="remove"&&(j=ie.diffRemove),T.type==="header"&&(j=ie.diffHeader),l.jsx("span",{className:`${ie.diffLine} ${j}`,children:T.content},N)})}),_&&l.jsxs("button",{type:"button",className:ie.bodyToggle,onClick:()=>{d(T=>!T)},"aria-expanded":u,"data-testid":"tool-card-toggle",children:[l.jsx("span",{className:`${ie.chevron} ${u?ie.chevronExpanded:""}`,children:"▸"}),u?"collapse":`${((v==null?void 0:v.length)??0)-Nf} more lines`]})]}),!o&&!v&&!g&&i&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-content",children:i})]})}const pM=/^\[exit (\d+)\]\s*/;function mM(n){const s=pM.exec(n);return s?{exitCode:Number(s[1]),output:n.slice(s[0].length)}:{exitCode:void 0,output:n}}function hM(n){if(n==null||typeof n!="object")return"";const s=n;return typeof s.command=="string"?s.command:""}function gM(n){const s=/pwsh(?:\.exe)?["']?\s+-Command\s+'(.+?)'\s*$/i.exec(n);if(s)return s[1];const i=/pwsh(?:\.exe)?["']?\s+-Command\s+"(.+?)"\s*$/i.exec(n);return i?i[1]:n}const jf=3;function vM({tool:n,args:s,result:i,isError:o}){const[c,u]=y.useState(!1),d=hM(s),m=gM(d),h=i===void 0,g=i?mM(i):null,v=(g==null?void 0:g.output.split(`
480
- `))??[],b=v.length>jf,_=c?v:v.slice(0,jf),S=g==null?void 0:g.exitCode,T=o||S!==void 0&&S!==0;return l.jsxs("div",{className:`${ie.card} ${T?ie.cardRed:ie.cardNeutral}`,"data-testid":"tool-card-shell",children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,style:{color:"var(--text-secondary)",fontFamily:"var(--font-mono)",fontWeight:"bold"},children:"$"}),l.jsx("span",{className:ie.fileName,style:{flex:1,color:"var(--text-primary)"},title:d!==m?d:void 0,"data-testid":"tool-card-command",children:m}),S!==void 0&&l.jsxs("span",{className:S===0?ie.exitOk:ie.exitError,"data-testid":"tool-card-exit-code",children:[S===0?"✓":"✗"," exit ",S]}),h&&l.jsx("span",{className:ie.exitPending,"data-testid":"tool-card-pending",children:"●"})]}),!h&&g&&g.output.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-output",children:_.join(`
481
- `)}),b&&l.jsxs("button",{type:"button",className:ie.bodyToggle,onClick:()=>{u(N=>!N)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[l.jsx("span",{className:`${ie.chevron} ${c?ie.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${v.length-jf} more lines`]})]})]})}function yM(n){if(n==null||typeof n!="object")return{pattern:"",path:""};const s=n,i=typeof s.pattern=="string"?s.pattern:"",o=typeof s.path=="string"?s.path:"";return{pattern:i,path:o}}const Cf=5;function bM({tool:n,args:s,result:i,isError:o}){const[c,u]=y.useState(!1),{pattern:d,path:m}=yM(s),h=i===void 0,g=(i==null?void 0:i.split(`
482
- `).filter(_=>_.length>0))??[],v=g.length>Cf,b=c?g:g.slice(0,Cf);return l.jsxs("div",{className:`${ie.card} ${o?ie.cardRed:ie.cardPurple} ${h?ie.inProgress:""}`,"data-testid":"tool-card-search",children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,children:"🔍"}),l.jsx("span",{className:ie.toolName,style:{color:"var(--accent-purple, #a78bfa)"},children:n}),d&&l.jsxs("span",{className:ie.fileName,"data-testid":"tool-card-pattern",children:['"',d,'"']}),m&&l.jsxs("span",{className:ie.fileName,style:{flexShrink:1},"data-testid":"tool-card-search-path",children:["in ",m]}),!h&&!o&&g.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ie.spacer}),l.jsxs("span",{className:ie.badge,"data-testid":"tool-card-match-count",children:[g.length," ",g.length===1?"match":"matches"]})]})]}),o&&i&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-error",children:i}),!o&&!h&&b.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-results",children:b.join(`
483
- `)}),v&&l.jsxs("button",{type:"button",className:ie.bodyToggle,onClick:()=>{u(_=>!_)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[l.jsx("span",{className:`${ie.chevron} ${c?ie.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.length-Cf} more matches`]})]})]})}const _M="_progressBar_14f5c_1",xM="_progressFill_14f5c_9",SM="_activeTask_14f5c_16",TM="_activeIcon_14f5c_27",kM="_todoPulse_14f5c_1",wM="_activeText_14f5c_34",NM="_checklist_14f5c_48",jM="_item_14f5c_55",CM="_itemIcon_14f5c_65",EM="_itemText_14f5c_73",AM="_pending_14f5c_78",DM="_in_progress_14f5c_85",RM="_completed_14f5c_97",MM="_emptyMessage_14f5c_108",$n={progressBar:_M,progressFill:xM,activeTask:SM,activeIcon:TM,todoPulse:kM,activeText:wM,checklist:NM,item:jM,itemIcon:CM,itemText:EM,pending:AM,in_progress:DM,completed:RM,emptyMessage:MM},OM=/^[-*]\s*\[([ xX~!/])\]\s*(.+)$/;function IM(n){if(n===void 0||typeof n!="object"||n===null)return[];const s=n;return Array.isArray(s.todos)?s.todos.filter(i=>typeof i=="object"&&i!==null&&typeof i.content=="string"&&typeof i.status=="string").map(i=>({content:i.content,activeForm:typeof i.activeForm=="string"?i.activeForm:void 0,status:Hy(i.status)})):Array.isArray(s.plan)?s.plan.filter(i=>typeof i=="object"&&i!==null&&typeof i.step=="string"&&typeof i.status=="string").map(i=>({content:i.step,status:Hy(i.status)})):typeof s.content=="string"?LM(s.content):[]}function Hy(n){switch(n.toLowerCase()){case"completed":case"done":case"complete":return"completed";case"in_progress":case"in-progress":case"working":case"active":return"in_progress";default:return"pending"}}function LM(n){const s=n.split(`
484
- `),i=[];for(const o of s){const c=OM.exec(o.trim());if(c){const u=c[1],d=c[2].trim();let m="pending";u==="x"||u==="X"?m="completed":(u==="~"||u==="/"||u==="!")&&(m="in_progress"),i.push({content:d,status:m})}}return i}function BM(n){switch(n){case"completed":return"✓";case"in_progress":return"●";default:return"○"}}function UM({args:n}){const s=IM(n),i=s.filter(u=>u.status==="completed").length,o=s.find(u=>u.status==="in_progress"),c=s.length===0;return l.jsxs("div",{className:`${ie.card} ${ie.cardBlue}`,"data-testid":"tool-card-todo",children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,children:"☑"}),l.jsx("span",{className:ie.toolName,style:{color:"var(--accent-blue)"},children:c?"Todos cleared":"Todos"}),!c&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:ie.spacer}),l.jsxs("span",{className:ie.badge,"data-testid":"tool-card-todo-progress",children:[i,"/",s.length]})]})]}),!c&&l.jsx("div",{className:$n.progressBar,"data-testid":"tool-card-todo-bar",children:l.jsx("div",{className:$n.progressFill,style:{width:`${i/s.length*100}%`}})}),o&&l.jsxs("div",{className:$n.activeTask,"data-testid":"tool-card-todo-active",children:[l.jsx("span",{className:$n.activeIcon,children:"●"}),l.jsx("span",{className:$n.activeText,children:o.activeForm||o.content})]}),!c&&l.jsx("div",{className:$n.checklist,"data-testid":"tool-card-todo-list",children:s.map((u,d)=>l.jsxs("div",{className:`${$n.item} ${$n[u.status]}`,"data-testid":"tool-card-todo-item",children:[l.jsx("span",{className:$n.itemIcon,children:BM(u.status)}),l.jsx("span",{className:$n.itemText,children:u.content})]},d))}),c&&l.jsx("div",{className:$n.emptyMessage,children:"All items completed and cleared."})]})}function zM(n,s){if(s==null||typeof s!="object")return"";const i=s;if(typeof i.intent=="string")return i.intent;for(const o of Object.values(i))if(typeof o=="string")return o;return n}function PM({tool:n,args:s}){const i=zM(n,s);return l.jsxs("div",{className:ie.metadata,"data-testid":"tool-card-metadata",children:[l.jsx("span",{className:ie.metadataPrefix,children:"↳"}),i]})}function VM(n){const s=/^mcp__(.+?)__(.+)$/.exec(n);return s?{display:`${s[1]} / ${s[2]}`,isMcp:!0}:{display:n,isMcp:!1}}function HM(n){if(n==null)return"";if(typeof n!="object")return String(n);const s=n;if(typeof s.command=="string")return s.command;if(typeof s.file_path=="string")return s.file_path;if(typeof s.path=="string")return s.path;if(typeof s.query=="string")return s.query;if(typeof s.url=="string")return s.url;try{const i=JSON.stringify(n);return i.length>120?`${i.slice(0,120)}…`:i}catch{return""}}const Ef=5;function qM({tool:n,args:s,result:i,isError:o}){const[c,u]=y.useState(!1),{display:d}=VM(n),m=HM(s),h=i===void 0,g=(i==null?void 0:i.split(`
485
- `))??[],v=g.length>Ef,b=c?i:g.slice(0,Ef).join(`
486
- `);let _="";if(s!=null)try{_=JSON.stringify(s,null,2)}catch{_=String(s)}return l.jsxs("div",{className:`${ie.card} ${o?ie.cardRed:ie.cardBlue} ${h?ie.inProgress:""}`,"data-testid":"tool-card-generic",children:[l.jsxs("div",{className:ie.header,children:[l.jsx("span",{className:ie.icon,children:"⚙"}),l.jsx("span",{className:ie.toolName,style:{color:"var(--accent-blue)"},children:d}),m&&l.jsx("span",{className:ie.fileName,children:m})]}),h&&_&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-args",children:_}),o&&i&&l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-error",children:i}),!o&&!h&&i&&l.jsxs(l.Fragment,{children:[l.jsx("pre",{className:ie.pre,"data-testid":"tool-card-result",children:b}),v&&l.jsxs("button",{type:"button",className:ie.bodyToggle,onClick:()=>{u(S=>!S)},"aria-expanded":c,"data-testid":"tool-card-toggle",children:[l.jsx("span",{className:`${ie.chevron} ${c?ie.chevronExpanded:""}`,children:"▸"}),c?"collapse":`${g.length-Ef} more lines`]})]})]})}function Af(n){switch(CR(n.tool)){case"file-read":return l.jsx(Vy,{...n});case"file-edit":return l.jsx(fM,{...n});case"file-write":return l.jsx(Vy,{...n,writeVariant:!0});case"shell":return l.jsx(vM,{...n});case"search":return l.jsx(bM,{...n});case"todo":return l.jsx(UM,{...n});case"metadata":return l.jsx(PM,{...n});default:return l.jsx(qM,{...n})}}const GM="_systemContextEvent_18fue_1",$M="_systemContextHeader_18fue_7",ZM="_systemContextBadge_18fue_28",FM="_systemContextToggle_18fue_37",KM="_systemContextPre_18fue_43",YM="_systemContextEllipsis_18fue_54",JM="_systemEvent_18fue_58",XM="_systemTimestamp_18fue_65",WM="_textEvent_18fue_69",QM="_errorEvent_18fue_155",e3="_statusEvent_18fue_163",t3="_userInputEvent_18fue_172",n3="_userInputContent_18fue_178",s3="_signalEvent_18fue_195",a3="_signalBadge_18fue_206",i3="_signalContent_18fue_215",o3="_usageEvent_18fue_220",r3="_usageBadge_18fue_227",l3="_defaultEvent_18fue_236",Ot={systemContextEvent:GM,systemContextHeader:$M,systemContextBadge:ZM,systemContextToggle:FM,systemContextPre:KM,systemContextEllipsis:YM,systemEvent:JM,systemTimestamp:XM,textEvent:WM,errorEvent:QM,statusEvent:e3,userInputEvent:t3,userInputContent:n3,signalEvent:s3,signalBadge:a3,signalContent:i3,usageEvent:o3,usageBadge:r3,defaultEvent:l3},qy=3;function c3({content:n}){const[s,i]=y.useState(!1),o=n.split(`
487
- `),c=o.length>qy,u=s?n:o.slice(0,qy).join(`
488
- `);return l.jsxs("div",{className:Ot.systemContextEvent,"data-testid":"system-context-event",children:[l.jsxs("button",{type:"button",className:Ot.systemContextHeader,onClick:()=>{i(d=>!d)},"aria-expanded":s,children:[l.jsx("span",{className:Ot.systemContextBadge,children:"SYSTEM PROMPT"}),c&&l.jsx("span",{className:Ot.systemContextToggle,"aria-hidden":"true",children:s?"▾":"▸"})]}),l.jsxs("pre",{className:Ot.systemContextPre,children:[u,!s&&c&&l.jsx("span",{className:Ot.systemContextEllipsis,children:"…"})]})]})}function u3({time:n,content:s}){return l.jsxs("div",{className:Ot.systemEvent,children:[l.jsxs("span",{className:Ot.systemTimestamp,children:["[",n,"]"]})," ",s]})}function d3({content:n}){return l.jsx("div",{className:Ot.textEvent,children:l.jsx(lp,{remarkPlugins:[cp],rehypePlugins:[NR],children:n})})}function f3({content:n}){return l.jsxs("div",{className:Ot.errorEvent,children:["Error: ",n]})}function p3({content:n}){return l.jsxs("div",{className:Ot.statusEvent,children:["--- ",n," ---"]})}function m3({content:n}){return l.jsx("div",{className:Ot.userInputEvent,children:l.jsx("span",{className:Ot.userInputContent,children:n})})}function h3({content:n}){return l.jsxs("div",{className:Ot.signalEvent,"data-testid":"signal-event",children:[l.jsx("span",{className:Ot.signalBadge,children:"SIGNAL"}),l.jsx("span",{className:Ot.signalContent,children:n})]})}function g3({content:n}){let s=n;try{const i=JSON.parse(n),o=Number(i.input_tokens)||0,c=Number(i.output_tokens)||0,u=jx(o+c),d=no(Number(i.cost_usd)||0);s=`${u} tokens · ${d}`}catch{}return l.jsx("div",{className:Ot.usageEvent,"data-testid":"usage-event",children:l.jsx("span",{className:Ot.usageBadge,children:s})})}function v3({content:n}){return l.jsx("div",{className:Ot.defaultEvent,children:n})}function y3({event:n,toolUseCtx:s}){const i=new Date(n.timestamp).toLocaleTimeString();switch(n.eventType){case"system":{if(n.raw)try{if(JSON.parse(n.raw).systemContext===!0)return l.jsx(c3,{content:n.content})}catch{}return l.jsx(u3,{time:i,content:n.content})}case"text":case"output":return l.jsx(d3,{content:n.content});case"tool_use":{let o="",c={};try{const u=JSON.parse(n.content);o=u.tool||"",c=u.args}catch{}return l.jsx(Af,{tool:o,args:c})}case"tool_result":{let o=!1;if(n.raw)try{o=JSON.parse(n.raw).is_error===!0}catch{}let c=n.content;if(n.content.trimStart().startsWith("{"))try{const u=JSON.parse(n.content);typeof u.content=="string"&&(c=u.content)}catch{}return s?l.jsx(Af,{tool:s.tool,args:s.args,result:c,isError:o,detailedResult:s.detailedResult}):l.jsx(Af,{tool:"Tool output",args:void 0,result:c,isError:o})}case"error":return l.jsx(f3,{content:n.content});case"status":return l.jsx(p3,{content:n.content});case"user_input":return l.jsx(m3,{content:n.content});case"signal":return l.jsx(h3,{content:n.content});case"usage":return l.jsx(g3,{content:n.content});default:return l.jsx(v3,{content:n.content})}}const b3="_overlay_cmicx_1",_3="_dialog_cmicx_11",x3="_title_cmicx_30",S3="_description_cmicx_38",T3="_actions_cmicx_45",k3="_cancelButton_cmicx_52",w3="_confirmButton_cmicx_79",Va={overlay:b3,dialog:_3,title:x3,description:S3,actions:T3,cancelButton:k3,confirmButton:w3};function Ja({isOpen:n,title:s,description:i,confirmLabel:o="Delete",onConfirm:c,onCancel:u}){const d=y.useId(),m=y.useId();return l.jsx(rs,{children:n&&l.jsx(Dt.div,{className:Va.overlay,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.15},onClick:u,onKeyDown:h=>{h.key==="Escape"&&u()},role:"dialog","aria-modal":"true","aria-labelledby":d,"aria-describedby":i?m:void 0,children:l.jsxs(Dt.div,{className:Va.dialog,initial:{opacity:0,scale:.93,y:-10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.93,y:-10},transition:{duration:.15,ease:[.16,1,.3,1]},onClick:h=>h.stopPropagation(),children:[l.jsx("h3",{id:d,className:Va.title,children:s}),i&&l.jsx("p",{id:m,className:Va.description,children:i}),l.jsxs("div",{className:Va.actions,children:[l.jsx("button",{type:"button",className:Va.cancelButton,onClick:u,autoFocus:!0,children:"Cancel"}),l.jsx("button",{type:"button",className:Va.confirmButton,onClick:c,children:o})]})]})})})}const N3="_spinner_1uyt1_1",j3="_spin_1uyt1_1",C3="_sm_1uyt1_14",E3="_md_1uyt1_20",A3="_lg_1uyt1_26",D3="_xl_1uyt1_32",Gy={spinner:N3,spin:j3,sm:C3,md:E3,lg:A3,xl:D3};function Cx({size:n="md",className:s,label:i="Loading",liveRegion:o=!1}){return l.jsx("span",{className:`${Gy.spinner} ${Gy[n]} ${s??""}`,role:o?"status":void 0,"aria-label":i,"aria-hidden":o?void 0:!0})}const R3="_splash_1bn1g_1",M3="_logo_1bn1g_11",$y={splash:R3,logo:M3};function Ex(){return l.jsxs("div",{className:$y.splash,"data-testid":"splash-screen",children:[l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:$y.logo}),l.jsx(Cx,{size:"xl",label:"Loading Grackle",liveRegion:!0})]})}function O3(n,s){const i=y.useRef(null);y.useEffect(()=>{const o=i.current;if(i.current=n,o===null)return;const c=new Map;for(const d of o)c.set(d.id,d);const u=new Set;for(const d of n){u.add(d.id);const m=c.get(d.id);if(m&&m.status!==d.status&&d.status!=="sleeping"){if(d.status==="connecting"){s("Provisioning environment…","info");continue}d.status==="connected"?s("Environment connected","success"):d.status==="error"?s("Environment provision failed","error"):d.status==="disconnected"&&(m.status==="connected"?s("Environment disconnected","warning"):s("Environment stopped","info"))}}for(const d of o)u.has(d.id)||s("Environment removed","info")},[n,s])}const I3={working:{message:"Task is now running",variant:"info"},paused:{message:"Task paused",variant:"warning"},complete:{message:"Task complete",variant:"success"},failed:{message:"Task failed to complete",variant:"error"}};function L3(n){return I3[n]}function B3(n,s){if(n===void 0)return[];const i=[],o=new Map;for(const u of n)o.set(u.id,u);const c=new Set;for(const u of s){c.add(u.id);const d=o.get(u.id);if(!d||d.status===u.status)continue;const m=L3(u.status);m&&i.push(m)}for(const u of n)c.has(u.id)||i.push({message:"Task deleted",variant:"info"});return i}function U3(n,s){const i=y.useRef(void 0);y.useEffect(()=>{const o=i.current;i.current=n;const c=B3(o,n);for(const u of c)s(u.message,u.variant)},[n,s])}function z3(n,s,i){const o=n.filter(h=>h.status==="running"||h.status==="idle"||h.status==="waiting").length,c=Ax(s),u=s.filter(h=>op(h,c)).length,d=s.filter(h=>h.status==="paused"||h.status==="failed"||op(h,c)).length,m=i.filter(h=>h.status==="disconnected"||h.status==="error").length;return{activeSessions:o,blockedTasks:u,attentionTasks:d,unhealthyEnvironments:m}}function Ax(n){const s=new Map;for(const i of n)s.set(i.id,i.status);return s}function op(n,s){return n.dependsOn.some(i=>s.get(i)!=="complete")}function P3(n,s){var d;const i=new Map;for(const m of s)i.set(m.id,m);const o=Ax(n),c=[];for(const m of n){const h=m.workspaceId?((d=i.get(m.workspaceId))==null?void 0:d.name)??"Unknown":"Unknown";m.status==="failed"?c.push({task:m,reason:"failed",workspaceName:h}):op(m,o)?c.push({task:m,reason:"blocked",workspaceName:h}):m.status==="paused"&&c.push({task:m,reason:"paused",workspaceName:h})}const u={failed:0,blocked:1,paused:2};return c.sort((m,h)=>(u[m.reason]??3)-(u[h.reason]??3)),c}function V3(n,s){const i=new Map;for(const o of s)i.set(o.id,o);return n.filter(o=>o.status==="running"||o.status==="idle"||o.status==="waiting").map(o=>{var c;return{session:o,environmentName:((c=i.get(o.environmentId))==null?void 0:c.displayName)??"Unknown"}})}function H3(n,s,i){const o=new Map;for(const c of s){if(!c.workspaceId)continue;let u=o.get(c.workspaceId);u||(u={totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0},o.set(c.workspaceId,u)),u.totalTasks+=1,c.status==="complete"?u.completedTasks+=1:c.status==="working"?u.workingTasks+=1:c.status==="failed"&&(u.failedTasks+=1)}return n.map(c=>{const u=o.get(c.id)??{totalTasks:0,completedTasks:0,workingTasks:0,failedTasks:0};return{workspace:c,totalTasks:u.totalTasks,completedTasks:u.completedTasks,workingTasks:u.workingTasks,failedTasks:u.failedTasks}})}const q3="_dashboard_16pzm_1",G3="_kpiStrip_16pzm_11",$3="_kpiCard_16pzm_23",Z3="_kpiValue_16pzm_68",F3="_kpiLabel_16pzm_76",K3="_bodyGrid_16pzm_84",Y3="_section_16pzm_96",J3="_sectionHeader_16pzm_109",X3="_sectionIcon_16pzm_118",W3="_sectionTitle_16pzm_123",Q3="_sectionCount_16pzm_131",e6="_sectionBody_16pzm_138",t6="_emptyHint_16pzm_143",n6="_sessionRow_16pzm_150",s6="_sessionPrompt_16pzm_177",a6="_sessionEnv_16pzm_186",i6="_sessionRuntime_16pzm_192",o6="_sessionStatus_16pzm_198",r6="_statusDot_16pzm_207",l6="_attentionRow_16pzm_233",c6="_attentionTitle_16pzm_259",u6="_attentionMeta_16pzm_267",d6="_reasonBadge_16pzm_274",f6="_bottomGrid_16pzm_301",p6="_envRow_16pzm_312",m6="_envName_16pzm_323",h6="_envStatusBadge_16pzm_333",g6="_workspaceRow_16pzm_369",v6="_workspaceTop_16pzm_395",y6="_workspaceName_16pzm_401",b6="_workspaceCounts_16pzm_407",_6="_progressBar_16pzm_415",x6="_progressFill_16pzm_422",xe={dashboard:q3,kpiStrip:G3,kpiCard:$3,kpiValue:Z3,kpiLabel:F3,bodyGrid:K3,section:Y3,sectionHeader:J3,sectionIcon:X3,sectionTitle:W3,sectionCount:Q3,sectionBody:e6,emptyHint:t6,sessionRow:n6,sessionPrompt:s6,sessionEnv:a6,sessionRuntime:i6,sessionStatus:o6,statusDot:r6,attentionRow:l6,attentionTitle:c6,attentionMeta:u6,reasonBadge:d6,bottomGrid:f6,envRow:p6,envName:m6,envStatusBadge:h6,workspaceRow:g6,workspaceTop:v6,workspaceName:y6,workspaceCounts:b6,progressBar:_6,progressFill:x6},S6={hidden:{opacity:0,y:12},visible:n=>({opacity:1,y:0,transition:{delay:n*.06,duration:.3,ease:"easeOut"}})},oc={hidden:{opacity:0,y:16},visible:n=>({opacity:1,y:0,transition:{delay:.15+n*.08,duration:.35,ease:"easeOut"}})};function T6(n,s,i,o){const c=[`${n} of ${s} tasks completed`];return i>0&&c.push(`${i} in progress`),o>0&&c.push(`${o} failed`),c.join(", ")}function rc({value:n,label:s,accent:i,index:o,testId:c}){return l.jsxs(Dt.div,{className:xe.kpiCard,"data-accent":i,"data-testid":c,variants:S6,initial:"hidden",animate:"visible",custom:o,children:[l.jsx("span",{className:xe.kpiValue,children:n}),l.jsx("span",{className:xe.kpiLabel,children:s})]})}function k6(){const{workspaces:n,tasks:s,sessions:i,environments:o,loadTasks:c}=pt(),u=xt(),d=y.useRef(new Set);y.useEffect(()=>{for(const b of n)d.current.has(b.id)||(d.current.add(b.id),c(b.id))},[n,c]);const m=y.useMemo(()=>z3(i,s,o),[i,s,o]),h=y.useMemo(()=>V3(i,o),[i,o]),g=y.useMemo(()=>P3(s,n),[s,n]),v=y.useMemo(()=>H3(n,s),[n,s,o]);return l.jsxs("div",{className:xe.dashboard,"data-testid":"dashboard",children:[l.jsxs("div",{className:xe.kpiStrip,"data-testid":"dashboard-kpi-strip",children:[l.jsx(rc,{value:m.activeSessions,label:"Active Sessions",accent:"green",index:0,testId:"kpi-active-sessions"}),l.jsx(rc,{value:m.blockedTasks,label:"Blocked Tasks",accent:"yellow",index:1,testId:"kpi-blocked-tasks"}),l.jsx(rc,{value:m.attentionTasks,label:"Needs Attention",accent:"red",index:2,testId:"kpi-attention-tasks"}),l.jsx(rc,{value:m.unhealthyEnvironments,label:"Unhealthy Envs",accent:"blue",index:3,testId:"kpi-unhealthy-envs"})]}),l.jsxs("div",{className:xe.bodyGrid,children:[l.jsxs(Dt.div,{className:xe.section,variants:oc,initial:"hidden",animate:"visible",custom:0,"data-testid":"dashboard-active-sessions",children:[l.jsxs("div",{className:xe.sectionHeader,children:[l.jsx("span",{className:xe.sectionIcon,"aria-hidden":"true",children:"●"}),l.jsx("span",{className:xe.sectionTitle,children:"Active Sessions"}),l.jsx("span",{className:xe.sectionCount,children:h.length})]}),l.jsx("div",{className:xe.sectionBody,children:h.length===0?l.jsx("div",{className:xe.emptyHint,children:"No active sessions"}):h.map(({session:b,environmentName:_})=>l.jsxs("button",{type:"button",className:xe.sessionRow,onClick:()=>u(wb(b.id)),"data-testid":"session-row",children:[l.jsx("span",{className:xe.sessionPrompt,title:b.prompt,children:b.prompt||"—"}),l.jsx("span",{className:xe.sessionEnv,children:_}),l.jsx("span",{className:xe.sessionRuntime,children:b.runtime}),l.jsxs("span",{className:xe.sessionStatus,children:[l.jsx("span",{className:xe.statusDot,"data-status":b.status}),b.status]})]},b.id))})]}),l.jsxs(Dt.div,{className:xe.section,variants:oc,initial:"hidden",animate:"visible",custom:1,"data-testid":"dashboard-needs-attention",children:[l.jsxs("div",{className:xe.sectionHeader,children:[l.jsx("span",{className:xe.sectionIcon,"aria-hidden":"true",children:"⚑"}),l.jsx("span",{className:xe.sectionTitle,children:"Needs Attention"}),l.jsx("span",{className:xe.sectionCount,children:g.length})]}),l.jsx("div",{className:xe.sectionBody,children:g.length===0?l.jsx("div",{className:xe.emptyHint,children:"All clear"}):g.map(({task:b,reason:_,workspaceName:S})=>l.jsxs("button",{type:"button",className:xe.attentionRow,onClick:()=>u(os(b.id)),"data-testid":"attention-row",children:[l.jsxs("div",{className:xe.attentionTitle,children:[l.jsx("span",{className:xe.reasonBadge,"data-reason":_,children:_}),b.title]}),l.jsx("div",{className:xe.attentionMeta,children:l.jsx("span",{children:S})})]},b.id))})]})]}),l.jsxs("div",{className:xe.bottomGrid,children:[l.jsxs(Dt.div,{className:xe.section,variants:oc,initial:"hidden",animate:"visible",custom:2,"data-testid":"dashboard-env-health",children:[l.jsxs("div",{className:xe.sectionHeader,children:[l.jsx("span",{className:xe.sectionIcon,"aria-hidden":"true",children:"◈"}),l.jsx("span",{className:xe.sectionTitle,children:"Environment Health"}),l.jsx("span",{className:xe.sectionCount,children:o.length})]}),l.jsx("div",{className:xe.sectionBody,children:o.length===0?l.jsx("div",{className:xe.emptyHint,children:"No environments configured"}):o.map(b=>l.jsxs("div",{className:xe.envRow,"data-testid":"dashboard-env-row",children:[l.jsx("span",{className:xe.envName,children:b.displayName}),l.jsx("span",{className:xe.envStatusBadge,"data-status":b.status,children:b.status})]},b.id))})]}),l.jsxs(Dt.div,{className:xe.section,variants:oc,initial:"hidden",animate:"visible",custom:3,"data-testid":"dashboard-workspace-snapshot",children:[l.jsxs("div",{className:xe.sectionHeader,children:[l.jsx("span",{className:xe.sectionIcon,"aria-hidden":"true",children:"▦"}),l.jsx("span",{className:xe.sectionTitle,children:"Workspaces"}),l.jsx("span",{className:xe.sectionCount,children:n.length})]}),l.jsx("div",{className:xe.sectionBody,children:v.length===0?l.jsx("div",{className:xe.emptyHint,children:"No workspaces yet"}):v.map(({workspace:b,totalTasks:_,completedTasks:S,workingTasks:T,failedTasks:N})=>{const j=_>0?Math.round(S/_*100):0;return l.jsxs("button",{type:"button",className:xe.workspaceRow,onClick:()=>u(Ji(b.id,b.environmentId)),"data-testid":"workspace-row",children:[l.jsxs("div",{className:xe.workspaceTop,children:[l.jsx("span",{className:xe.workspaceName,children:b.name}),l.jsxs("span",{className:xe.workspaceCounts,"aria-label":T6(S,_,T,N),children:[S,"/",_,T>0&&l.jsxs("span",{style:{color:"var(--accent-green)"},"aria-hidden":"true",children:["▸",T]}),N>0&&l.jsxs("span",{style:{color:"var(--accent-red)"},"aria-hidden":"true",children:["✗",N]})]})]}),_>0&&l.jsx("div",{className:xe.progressBar,children:l.jsx("div",{className:xe.progressFill,style:{width:`${j}%`}})})]},b.id)})})]})]})]})}const w6="_panelContainer_1h5qd_1",N6="_emptyState_1h5qd_8",j6="_fadeIn_1h5qd_1",C6="_workspaceSummary_1h5qd_17",E6="_workspaceSummaryTitle_1h5qd_28",A6="_workspaceSummarySubtitle_1h5qd_32",D6="_header_1h5qd_36",R6="_headerInfo_1h5qd_71",M6="_killButton_1h5qd_77",O6="_headerTitle_1h5qd_106",I6="_headerActions_1h5qd_121",L6="_taskStatusBadge_1h5qd_128",B6="_taskBranch_1h5qd_137",U6="_taskBlockedBadge_1h5qd_143",z6="_btnPrimary_1h5qd_151",P6="_btnDanger_1h5qd_182",V6="_btnGhost_1h5qd_221",H6="_rejectInput_1h5qd_247",q6="_tabBar_1h5qd_277",G6="_tab_1h5qd_277",$6="_active_1h5qd_303",Z6="_eventScroll_1h5qd_308",F6="_tabContent_1h5qd_314",K6="_noContext_1h5qd_319",Y6="_overviewContent_1h5qd_325",J6="_overviewDashboard_1h5qd_334",X6="_overviewHero_1h5qd_340",W6="_statusBadge_1h5qd_347",Q6="_statusPending_1h5qd_359",eO="_statusAssigned_1h5qd_364",tO="_statusInProgress_1h5qd_369",nO="_statusReview_1h5qd_374",sO="_statusDone_1h5qd_379",aO="_statusFailed_1h5qd_384",iO="_statusWaitingInput_1h5qd_389",oO="_overviewBranchPill_1h5qd_394",rO="_branchLink_1h5qd_409",lO="_overviewSection_1h5qd_420",cO="_overviewLabel_1h5qd_426",uO="_overviewValue_1h5qd_433",dO="_overviewMuted_1h5qd_438",fO="_overviewMarkdown_1h5qd_444",pO="_envRow_1h5qd_513",mO="_envDot_1h5qd_519",hO="_envDotGreen_1h5qd_526",gO="_envDotYellow_1h5qd_530",vO="_envDotRed_1h5qd_534",yO="_envDotGray_1h5qd_538",bO="_depList_1h5qd_542",_O="_depItem_1h5qd_548",xO="_depBlocked_1h5qd_555",SO="_depDone_1h5qd_559",TO="_timeline_1h5qd_563",kO="_timelineRow_1h5qd_569",wO="_timelineKey_1h5qd_576",NO="_timelineValue_1h5qd_582",jO="_timelineDelta_1h5qd_586",CO="_reviewNotes_1h5qd_597",EO="_overviewDescription_1h5qd_608",AO="_waitingMessage_1h5qd_614",DO="_errorMessage_1h5qd_618",RO="_eventOverflowWarning_1h5qd_622",MO="_attemptSelector_1h5qd_636",OO="_attemptLabel_1h5qd_652",IO="_attemptButton_1h5qd_656",LO="_attemptActive_1h5qd_673",BO="_attemptStatus_1h5qd_679",UO="_emptyCta_1h5qd_685",zO="_ctaTitle_1h5qd_697",PO="_ctaDescription_1h5qd_703",VO="_ctaButton_1h5qd_710",HO="_ctaCreateForm_1h5qd_745",qO="_ctaCreateInput_1h5qd_751",GO="_ctaCreateOk_1h5qd_782",$O="_ctaLink_1h5qd_817",ZO="_workspaceHeader_1h5qd_831",FO="_workspaceName_1h5qd_856",KO="_workspaceMeta_1h5qd_869",YO="_metaRow_1h5qd_877",JO="_metaLabel_1h5qd_890",XO="_metaValue_1h5qd_905",WO="_archiveButton_1h5qd_915",QO="_repoLink_1h5qd_945",eI="_metaToggle_1h5qd_955",tI="_metaToggleArrow_1h5qd_976",nI="_metaToggleArrowOpen_1h5qd_981",sI="_progressBarContainer_1h5qd_985",aI="_progressBar_1h5qd_985",iI="_progressFill_1h5qd_1001",oI="_progressLabel_1h5qd_1008",rI="_metaTimestamps_1h5qd_1015",lI="_metaTimestamp_1h5qd_1015",B={panelContainer:w6,emptyState:N6,fadeIn:j6,workspaceSummary:C6,workspaceSummaryTitle:E6,workspaceSummarySubtitle:A6,header:D6,headerInfo:R6,killButton:M6,headerTitle:O6,headerActions:I6,taskStatusBadge:L6,taskBranch:B6,taskBlockedBadge:U6,btnPrimary:z6,btnDanger:P6,btnGhost:V6,rejectInput:H6,tabBar:q6,tab:G6,active:$6,eventScroll:Z6,tabContent:F6,noContext:K6,overviewContent:Y6,overviewDashboard:J6,overviewHero:X6,statusBadge:W6,statusPending:Q6,statusAssigned:eO,statusInProgress:tO,statusReview:nO,statusDone:sO,statusFailed:aO,statusWaitingInput:iO,overviewBranchPill:oO,branchLink:rO,overviewSection:lO,overviewLabel:cO,overviewValue:uO,overviewMuted:dO,overviewMarkdown:fO,envRow:pO,envDot:mO,envDotGreen:hO,envDotYellow:gO,envDotRed:vO,envDotGray:yO,depList:bO,depItem:_O,depBlocked:xO,depDone:SO,timeline:TO,timelineRow:kO,timelineKey:wO,timelineValue:NO,timelineDelta:jO,reviewNotes:CO,overviewDescription:EO,waitingMessage:AO,errorMessage:DO,eventOverflowWarning:RO,attemptSelector:MO,attemptLabel:OO,attemptButton:IO,attemptActive:LO,attemptStatus:BO,emptyCta:UO,ctaTitle:zO,ctaDescription:PO,ctaButton:VO,ctaCreateForm:HO,ctaCreateInput:qO,ctaCreateOk:GO,ctaLink:$O,workspaceHeader:ZO,workspaceName:FO,workspaceMeta:KO,metaRow:YO,metaLabel:JO,metaValue:XO,archiveButton:WO,repoLink:QO,metaToggle:eI,metaToggleArrow:tI,metaToggleArrowOpen:nI,progressBarContainer:sI,progressBar:aI,progressFill:iI,progressLabel:oI,metaTimestamps:rI,metaTimestamp:lI};function cI(){return l.jsx("div",{className:B.emptyState,children:"Select a task or click + to create one"})}function uI(){return l.jsx("div",{className:B.emptyState,children:"Select an environment to manage its workspaces, or add a new one."})}function dI(){const{workspaces:n,environments:s}=pt(),i=xt(),o=s.length>0;return n.length>0?l.jsx(k6,{}):l.jsxs("div",{className:B.emptyCta,"data-testid":"welcome-cta",children:[l.jsx("div",{className:B.ctaTitle,children:"Welcome to Grackle"}),l.jsx("div",{className:B.ctaDescription,children:"Organize your work into workspaces and let agents tackle the tasks."}),l.jsx("button",{className:B.ctaButton,onClick:()=>i(Cb),disabled:!o,"data-testid":"welcome-create-button",children:"Create Your First Workspace"}),!o&&l.jsx("div",{className:B.ctaDescription,children:"Add an environment first before creating a workspace."})]})}const Dx=50;function fI(n,s,i,o,c=Dx){return o?n<c:s-n-i<c}function pI(n,s){const i=s-n;return i>0?i:0}function mI({scrollRef:n,contentLength:s,isReversed:i}){const[o,c]=y.useState(!0),u=y.useRef(0),d=y.useRef(!1),m=y.useRef(0);y.useEffect(()=>{const g=n.current;if(!g)return;let v=!0;const b=()=>{m.current||(m.current=requestAnimationFrame(()=>{m.current=0;const _=fI(g.scrollTop,g.scrollHeight,g.clientHeight,i,Dx);_!==v&&(v=_,c(_))}))};return g.addEventListener("scroll",b,{passive:!0}),()=>{g.removeEventListener("scroll",b),m.current&&(cancelAnimationFrame(m.current),m.current=0)}},[n,i]),y.useLayoutEffect(()=>{const g=n.current;!g||d.current||(d.current=!0,i?g.scrollTop=0:g.scrollTop=g.scrollHeight,c(!0))},[n,i]),y.useLayoutEffect(()=>{const g=n.current;if(g){if(i&&!o){const v=pI(u.current,g.scrollHeight);v>0&&(g.scrollTop+=v)}o&&(i?g.scrollTo({top:0,behavior:"smooth"}):g.scrollTo({top:g.scrollHeight,behavior:"smooth"})),u.current=g.scrollHeight}},[s,o,i,n]);const h=y.useCallback(()=>{const g=n.current;if(!g)return;const v=i?0:g.scrollHeight;g.scrollTo({top:v,behavior:"smooth"}),c(!0)},[n,i]);return{isAtAnchor:o,scrollToAnchor:h}}const hI="_wrapper_p24zt_1",gI="_scrollContainer_p24zt_9",vI="_toolbar_p24zt_15",yI="_directionToggle_p24zt_22",bI="_scrollToAnchor_p24zt_60",_I="_scrollToAnchorBottom_p24zt_84",xI="_scrollToAnchorTop_p24zt_88",Ha={wrapper:hI,scrollContainer:gI,toolbar:vI,directionToggle:yI,scrollToAnchor:bI,scrollToAnchorBottom:_I,scrollToAnchorTop:xI},Rx="grackle-stream-direction";function SI(){try{return localStorage.getItem(Rx)==="reversed"}catch{return!1}}function TI({eventsDropped:n}){return n<=0?l.jsx(l.Fragment,{}):l.jsxs("div",{className:B.eventOverflowWarning,role:"alert",children:["⚠"," ",n.toLocaleString()," older event",n===1?"":"s"," were dropped — only the most recent 5,000 are shown. Full history is available in the session log."]})}function tm({events:n,eventsDropped:s,emptyState:i}){const o=y.useRef(null),[c,u]=y.useState(SI),d=WE(),m=y.useMemo(()=>c?[...n].reverse():n,[n,c]),{isAtAnchor:h,scrollToAnchor:g}=mI({scrollRef:o,contentLength:n.length,isReversed:c}),v=()=>{const S=!c;u(S);try{localStorage.setItem(Rx,S?"reversed":"default")}catch{}},b=d?0:.2,_=c?-8:8;return l.jsxs("div",{className:Ha.wrapper,children:[l.jsx("div",{className:Ha.toolbar,children:l.jsx("button",{className:Ha.directionToggle,onClick:v,title:c?"Showing newest first":"Showing oldest first","aria-label":c?"Switch to newest at bottom":"Switch to newest at top","data-testid":"direction-toggle",children:c?"↓":"↑"})}),l.jsxs("div",{ref:o,className:Ha.scrollContainer,"data-testid":"event-stream-scroll",children:[n.length===0&&i,l.jsx(TI,{eventsDropped:s}),l.jsx(rs,{initial:!1,children:m.map((S,T)=>{const N=c?n.length-1-T:T;return l.jsx(Dt.div,{initial:{opacity:0,y:_},animate:{opacity:1,y:0},transition:{duration:b,ease:"easeOut"},children:l.jsx(y3,{event:S,toolUseCtx:S.toolUseCtx})},`${S.sessionId}-${S.timestamp}-${N}`)})})]}),l.jsx(rs,{children:!h&&l.jsxs(Dt.button,{className:`${Ha.scrollToAnchor} ${c?Ha.scrollToAnchorTop:Ha.scrollToAnchorBottom}`,onClick:g,initial:{opacity:0,scale:.9},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.9},transition:{duration:.15},"aria-label":"Scroll to latest","data-testid":"scroll-to-anchor",children:[c?"↑":"↓"," New events"]})})]})}const kI="_bar_1xhb4_1",wI="_input_1xhb4_32",NI="_select_1xhb4_67",jI="_btnPrimary_1xhb4_103",CI="_btnGhost_1xhb4_173",EI="_badge_1xhb4_195",AI="_disconnectHint_1xhb4_205",bn={bar:kI,input:wI,select:NI,btnPrimary:jI,btnGhost:CI,badge:EI,disconnectHint:AI};function DI(n,s){if(!n)return!1;const i=s.find(o=>o.id===n);return i!==void 0&&(i.status==="disconnected"||i.status==="error")}function RI({environmentId:n,onReconnect:s}){return l.jsxs(l.Fragment,{children:[l.jsx("span",{className:bn.disconnectHint,"data-testid":"env-disconnect-hint",children:"Environment unavailable"}),l.jsx("button",{type:"button",onClick:()=>s(n),className:bn.btnGhost,"data-testid":"reconnect-btn",title:"Reconnect the environment to resume messaging",children:"Reconnect"})]})}function Nr({mode:n,sessionId:s,environmentId:i,taskId:o,showPersonaSelect:c,personas:u,environments:d,onSendInput:m,onSpawn:h,onStartTask:g,onProvisionEnvironment:v}){const{showToast:b}=Ls(),[_,S]=y.useState(""),[T,N]=y.useState(""),j=DI(i,d),w=E=>{if(E.preventDefault(),!!_.trim())if(n==="send"){if(!s||j)return;m(s,_),S("")}else if(n==="spawn"){if(!i)return;h(i,_,T),b("Session started","success"),S(""),N("")}else{if(!o)return;g(o,void 0,i,_),S("")}};return n==="spawn"?l.jsxs("form",{onSubmit:w,className:bn.bar,children:[l.jsx("span",{className:bn.badge,children:"new chat"}),l.jsx("input",{type:"text",value:_,onChange:E=>S(E.target.value),placeholder:"Enter prompt...",autoFocus:!0,className:bn.input}),c&&l.jsxs("select",{value:T,onChange:E=>N(E.target.value),className:bn.select,children:[l.jsx("option",{value:"",children:"(Default)"}),u.map(E=>l.jsx("option",{value:E.id,children:E.name},E.id))]}),l.jsx("button",{type:"submit",disabled:!_.trim()||!i,className:bn.btnPrimary,children:"Go"})]}):n==="start"?l.jsxs("form",{onSubmit:w,className:bn.bar,children:[l.jsx("input",{type:"text",value:_,onChange:E=>S(E.target.value),placeholder:"Type a message...",autoFocus:!0,className:bn.input}),l.jsx("button",{type:"submit",disabled:!_.trim(),className:bn.btnPrimary,children:"Send"})]}):l.jsxs("form",{onSubmit:w,className:bn.bar,children:[j&&i&&l.jsx(RI,{environmentId:i,onReconnect:v}),l.jsx("input",{type:"text",value:_,onChange:E=>S(E.target.value),placeholder:"Type a message...",autoFocus:!j,disabled:j,className:bn.input}),l.jsx("span",{title:j?"Environment is unavailable — reconnect first":void 0,children:l.jsx("button",{type:"submit",disabled:!_.trim()||j,className:bn.btnPrimary,children:"Send"})})]})}function nm(n){const s=[];for(const i of n){const o=s[s.length-1];i.eventType==="text"&&(o==null?void 0:o.eventType)==="text"?s[s.length-1]={...o,content:o.content+i.content}:s.push(i)}return s}function sm(n){const s=new Map;for(const u of n)if(u.raw)try{s.set(u,JSON.parse(u.raw))}catch{}const i=new Map;for(const u of n){if(u.eventType!=="tool_use")continue;const d=s.get(u);if(!(!d||typeof d.id!="string"))try{const m=JSON.parse(u.content);i.set(d.id,{tool:m.tool,args:m.args})}catch{}}const o=new Set;return n.map(u=>{if(u.eventType!=="tool_result")return u;const d=s.get(u);if(!d||typeof d.tool_use_id!="string")return u;const m=i.get(d.tool_use_id);if(!m)return u;o.add(d.tool_use_id);let h;const g=u.content.trim();if(g.startsWith("{"))try{const v=JSON.parse(g);typeof v.detailedContent=="string"&&(h=v.detailedContent)}catch{}return{...u,toolUseCtx:{...m,detailedResult:h}}}).filter(u=>{if(u.eventType!=="tool_use")return!0;const d=s.get(u);return d&&typeof d.id=="string"?!o.has(d.id):!0})}const MI="_panelContainer_19poq_1",OI="_chatHeader_19poq_8",II="_chatHeaderInfo_19poq_37",LI="_emptyState_19poq_43",BI="_emptyTitle_19poq_55",UI="_emptyDescription_19poq_61",zI="_emptyHint_19poq_67",Fa={panelContainer:MI,chatHeader:OI,chatHeaderInfo:II,emptyState:LI,emptyTitle:BI,emptyDescription:UI,emptyHint:zI};function PI({hasLocalEnvironment:n}){return l.jsxs("div",{className:Fa.emptyState,"data-testid":"chat-empty-state",children:[l.jsx("div",{className:Fa.emptyTitle,children:"Welcome to Grackle"}),l.jsx("div",{className:Fa.emptyDescription,children:n?"Type a message below to start chatting with the System agent. It can help you plan work, create tasks, and coordinate agents.":"Add a local environment in Settings to start chatting."}),!n&&l.jsx("div",{className:Fa.emptyHint,children:"Go to Settings → Environments to add one."})]})}function VI(){const{tasks:n,sessions:s,events:i,eventsDropped:o,environments:c,loadTaskSessions:u,loadSessionEvents:d,kill:m,stopGraceful:h,taskSessions:g,sendInput:v,spawn:b,startTask:_,personas:S,provisionEnvironment:T}=pt(),N=y.useRef(void 0),[j,w]=y.useState(),E=n.find(V=>V.id===tr),A=E!=null&&E.latestSessionId?s.find(V=>V.id===E.latestSessionId)??(g[tr]??[]).find(V=>V.id===E.latestSessionId):void 0;y.useEffect(()=>{u(tr)},[u]),y.useEffect(()=>{E!=null&&E.latestSessionId&&u(tr)},[E==null?void 0:E.latestSessionId,u]),y.useEffect(()=>{A&&A.id!==N.current&&(N.current=A.id,d(A.id))},[A==null?void 0:A.id,d]);const O=y.useMemo(()=>{if(!A)return[];const V=i.filter(F=>F.sessionId===A.id);return sm(nm(V))},[i,A==null?void 0:A.id]),C=c.find(V=>V.adapterType==="local"&&V.status==="connected"),M=A!==void 0&&A.status!=="stopped"&&A.status!=="suspended",G=(A==null?void 0:A.status)==="idle";y.useEffect(()=>{j&&A&&G&&(v(A.id,j),w(void 0))},[j,G,A==null?void 0:A.id,v]);const U=y.useCallback((V,F,ee,ae)=>{ae&&w(ae),_(V,F,ee)},[_]);return l.jsxs("div",{className:Fa.panelContainer,"data-testid":"chat-page",children:[M&&l.jsxs("div",{className:Fa.chatHeader,children:[l.jsxs("span",{className:Fa.chatHeaderInfo,children:["Session: ",A.id.slice(0,8)," | ",A.runtime," | ",A.status]}),l.jsx(Nx,{label:"Stop",onClick:()=>h(A.id),variant:"danger",size:"sm","data-testid":"stop-split-button",options:[{label:"Stop",description:"Graceful shutdown",onClick:()=>h(A.id)},{label:"Kill",description:"Force kill",onClick:()=>m(A.id)}]})]}),l.jsx(tm,{events:O,eventsDropped:o,emptyState:l.jsx(PI,{hasLocalEnvironment:!!C})}),C&&M&&l.jsx(Nr,{mode:"send",sessionId:A.id,environmentId:A.environmentId,personas:S,environments:c,onSendInput:v,onSpawn:b,onStartTask:_,onProvisionEnvironment:T}),C&&!M&&l.jsx(Nr,{mode:"start",taskId:tr,environmentId:C.id,personas:S,environments:c,onSendInput:v,onSpawn:b,onStartTask:U,onProvisionEnvironment:T})]})}function HI(n,s){const i=[];let o=n;const c=new Set;for(;o&&s.has(o)&&!c.has(o);){c.add(o);const u=s.get(o);i.unshift(u),o=u.parentTaskId||void 0}return i}const Xa={label:"Home",url:Ya};function qI(n){return n?[Xa,{label:"Settings",url:Yi},{label:n,url:void 0}]:[Xa,{label:"Settings",url:void 0}]}const Mx={label:"Environments",url:Xi};function GI(){return[Xa,{label:"Environments",url:void 0}]}function $I(){return[Xa,{label:"New Chat",url:void 0}]}function ZI(n){return[Xa,{label:`Session ${n.slice(0,8)}`,url:void 0}]}function FI(n,s,i,o){const c=i.find(d=>d.id===n),u=o.find(d=>d.id===s);return[Xa,Mx,{label:(u==null?void 0:u.displayName)??"Environment",url:Wi(s)},{label:(c==null?void 0:c.name)??"Workspace",url:void 0}]}function KI(n,s,i,o,c){const u=HI(n,c),d=c.get(n),m=d==null?void 0:d.workspaceId,h=m?i.find(S=>S.id===m):void 0,g=s??(h==null?void 0:h.environmentId),v=g?o.find(S=>S.id===g):void 0,b=[Xa];v&&g&&(b.push(Mx),b.push({label:v.displayName,url:Wi(g)})),h&&g&&b.push({label:h.name,url:Ji(h.id,g)});for(let S=0;S<u.length-1;S++)b.push({label:u[S].title,url:os(u[S].id,void 0,m,g)});const _=u[u.length-1];return b.push({label:(_==null?void 0:_.title)??n,url:void 0}),b}function YI(){const n=$I(),[s]=vp(),i=s.get("env")??"",{sendInput:o,spawn:c,startTask:u,personas:d,environments:m,provisionEnvironment:h}=pt();return l.jsxs("div",{className:B.panelContainer,children:[l.jsx(ba,{segments:n}),l.jsx("div",{className:B.emptyState,children:"Enter a prompt below to start a new session"}),l.jsx(Nr,{mode:"spawn",environmentId:i,showPersonaSelect:!0,personas:d,environments:m,onSendInput:o,onSpawn:c,onStartTask:u,onProvisionEnvironment:h})]})}function JI({sessionId:n,session:s,isActive:i,onStop:o,onKill:c}){return l.jsxs("div",{className:B.header,children:[l.jsxs("span",{children:["Session: ",n.slice(0,8),s&&` | ${s.runtime} | ${s.endReason||s.status}`,s!=null&&s.inputTokens||s!=null&&s.outputTokens||s!=null&&s.costUsd?` | ${jx((s.inputTokens??0)+(s.outputTokens??0))} tokens · ${no(s.costUsd??0)}`:""]}),l.jsxs("span",{className:B.headerInfo,children:[s&&l.jsx("span",{children:s.prompt.length>60?s.prompt.slice(0,60)+"...":s.prompt}),i&&l.jsx(Nx,{label:"Stop",onClick:o,variant:"danger",size:"sm","data-testid":"stop-split-button",options:[{label:"Stop",description:"Graceful shutdown",onClick:o},{label:"Kill",description:"Force kill",onClick:c}]})]})]})}function XI({session:n}){const s=n&&(n.status==="stopped"||n.status==="suspended"),i=s?`Session ${n.endReason||n.status} with no events recorded.`:"Waiting for events...";return l.jsx("div",{className:s?B.errorMessage:B.waitingMessage,children:i})}function WI(){const{sessionId:n}=va(),{events:s,eventsDropped:i,sessions:o,kill:c,stopGraceful:u,loadSessionEvents:d,sendInput:m,spawn:h,startTask:g,personas:v,environments:b,provisionEnvironment:_}=pt(),S=y.useRef(void 0),T=ZI(n),N=o.find(E=>E.id===n)??void 0,j=y.useMemo(()=>{const E=n?s.filter(A=>A.sessionId===n):[];return sm(nm(E))},[s,n]);if(y.useEffect(()=>{n&&n!==S.current&&(S.current=n,d(n))},[n,d]),!n)return l.jsx("div",{className:B.emptyState,children:"No session selected"});const w=(N==null?void 0:N.status)==="running"||(N==null?void 0:N.status)==="idle";return l.jsxs("div",{className:B.panelContainer,children:[l.jsx(ba,{segments:T}),l.jsx(JI,{sessionId:n,session:N,isActive:w,onStop:()=>u(n),onKill:()=>c(n)}),l.jsx(tm,{events:j,eventsDropped:i,emptyState:l.jsx(XI,{session:N})}),w&&l.jsx(Nr,{mode:"send",sessionId:n,environmentId:N.environmentId,personas:v,environments:b,onSendInput:m,onSpawn:h,onStartTask:g,onProvisionEnvironment:_})]})}function QI(n){if(!n)return!1;const s=n.tagName;return!!(s==="INPUT"||s==="TEXTAREA"||s==="SELECT"||n.isContentEditable)}function Ms(n,s){const i=y.useRef(s);i.current=s;const{key:o,ctrl:c=!1,shift:u=!1,suppressInInputs:d=!0,enabled:m=!0}=n;y.useEffect(()=>{if(!m)return;const h=g=>{if(d&&QI(document.activeElement??void 0))return;const v=g.ctrlKey||g.metaKey;c===v&&(u&&!g.shiftKey||g.key===o&&i.current())};return document.addEventListener("keydown",h),()=>{document.removeEventListener("keydown",h)}},[o,c,u,d,m])}const Zy=220,Fy=70,e5=40,t5=60,n5="hierarchy",s5="dependency";function a5(n){return y.useMemo(()=>{if(n.length===0)return{nodes:[],edges:[]};const s=new Xv.graphlib.Graph({multigraph:!0});s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:"TB",nodesep:e5,ranksep:t5});const i=new Map(n.map(d=>[d.id,d])),o=new Map;for(const d of n)if(d.parentTaskId&&i.has(d.parentTaskId)){const m=o.get(d.parentTaskId)||[];m.push(d),o.set(d.parentTaskId,m)}for(const d of n)s.setNode(d.id,{width:Zy,height:Fy});const c=[];for(const d of n){if(d.parentTaskId&&i.has(d.parentTaskId)){const m=`hierarchy-${d.parentTaskId}-${d.id}`;s.setEdge(d.parentTaskId,d.id,{},m),c.push({id:m,source:d.parentTaskId,target:d.id,type:"smoothstep",data:{edgeType:n5},style:{stroke:"var(--accent-green)",strokeWidth:2},animated:!1})}for(const m of d.dependsOn)if(i.has(m)){const h=`dependency-${m}-${d.id}`;s.setEdge(m,d.id,{},h),c.push({id:h,source:m,target:d.id,type:"smoothstep",data:{edgeType:s5},style:{stroke:"var(--text-tertiary)",strokeWidth:1.5,strokeDasharray:"6 3"},animated:!1})}}return Xv.layout(s),{nodes:n.map(d=>{const m=s.node(d.id),h=o.get(d.id)||[];return{id:d.id,type:"task",position:{x:m.x-Zy/2,y:m.y-Fy/2},data:{task:d,childCount:h.length,doneChildCount:h.filter(g=>g.status==="complete").length,hasDependencies:d.dependsOn.length>0}}}),edges:c}},[n])}const i5="_dagContainer_js4w6_1",o5="_taskNode_js4w6_26",r5="_taskNodeBorder_js4w6_54",l5="_taskNodeContent_js4w6_60",c5="_taskNodeHeader_js4w6_70",u5="_taskNodeIcon_js4w6_77",d5="_taskNodeTitle_js4w6_82",f5="_taskNodeBadges_js4w6_90",p5="_childBadge_js4w6_95",m5="_depBadge_js4w6_107",h5="_handle_js4w6_119",g5="_emptyCta_js4w6_126",v5="_ctaDescription_js4w6_137",y5="_ctaButton_js4w6_144",tn={dagContainer:i5,taskNode:o5,taskNodeBorder:r5,taskNodeContent:l5,taskNodeHeader:c5,taskNodeIcon:u5,taskNodeTitle:d5,taskNodeBadges:f5,childBadge:p5,depBadge:m5,handle:h5,emptyCta:g5,ctaDescription:v5,ctaButton:y5};function b5({data:n}){const{task:s,childCount:i,doneChildCount:o,hasDependencies:c}=n,u=ga(s.status);return l.jsxs("div",{className:tn.taskNode,"data-task-id":s.id,"data-task-title":s.title,children:[l.jsx(Wv,{type:"target",position:Qv.Top,className:tn.handle}),l.jsx("div",{className:tn.taskNodeBorder,style:{backgroundColor:u.color}}),l.jsxs("div",{className:tn.taskNodeContent,children:[l.jsxs("div",{className:tn.taskNodeHeader,children:[l.jsx("span",{className:tn.taskNodeIcon,style:{color:u.color},children:u.icon}),l.jsx("span",{className:tn.taskNodeTitle,children:s.title})]}),l.jsxs("div",{className:tn.taskNodeBadges,children:[i>0&&l.jsxs("span",{className:tn.childBadge,children:[o,"/",i]}),c&&l.jsx("span",{className:tn.depBadge,children:"dep"})]})]}),l.jsx(Wv,{type:"source",position:Qv.Bottom,className:tn.handle})]})}const _5=sA,x5={task:b5};function S5({workspaceId:n,environmentId:s,tasks:i}){const o=xt(),{resolvedThemeId:c}=Pb(),u=y.useMemo(()=>i.filter(b=>b.workspaceId===n),[i,n]),{nodes:d,edges:m}=a5(u),h=y.useMemo(()=>{const b=getComputedStyle(document.documentElement),_={};for(const[S,T]of Object.entries(_5))_[S]=b.getPropertyValue(T).trim()||"#6b7a8d";return _},[c]),g=y.useCallback((b,_)=>{o(os(_.id,void 0,n,s))},[o,n,s]),v=y.useCallback(b=>{const _=b.data;return h[_.task.status]||h.pending},[h]);return u.length===0?l.jsxs("div",{className:tn.emptyCta,children:[l.jsx("button",{className:tn.ctaButton,onClick:()=>o(ei(n,void 0,s)),children:"Create Task"}),l.jsx("div",{className:tn.ctaDescription,children:"Create tasks to see the dependency graph"})]}):l.jsx("div",{className:tn.dagContainer,children:l.jsxs(eT,{nodes:d,edges:m,nodeTypes:x5,onNodeClick:g,fitView:!0,fitViewOptions:{padding:.2},minZoom:.3,maxZoom:2,children:[l.jsx(tT,{variant:nT.Dots,gap:24,size:1,color:"var(--text-disabled)"}),l.jsx(sT,{showInteractive:!1}),l.jsx(aT,{nodeColor:v,maskColor:"var(--bg-overlay)",style:{background:"var(--bg-inset)"}})]})})}function T5({tasks:n,taskStatusById:s,sessionStatusByTaskId:i}){const o=new Map;for(const u of n)if(u.parentTaskId){const d=o.get(u.parentTaskId);d?d.push(u):o.set(u.parentTaskId,[u])}const c=new Map(Uy.map(u=>[u,[]]));for(const u of n){const d=em(u.status),m=u.dependsOn.length>0&&u.dependsOn.some(T=>s.get(T)!=="complete"),h=o.get(u.id)??[],g=h.length,v=h.filter(T=>T.status==="complete").length;let b;if(d==="paused"&&i){const T=i.get(u.id);T==="idle"?b="Needs input":T==="completed"&&(b="Ready to complete")}const _={task:u,isBlocked:m,childCount:g,doneChildCount:v,pausedSubBadge:b},S=c.get(d);S?S.push(_):c.get("not_started").push(_)}for(const u of c.values())u.sort((d,m)=>d.task.sortOrder-m.task.sortOrder);return Uy.map(u=>{const d=ga(u);return{status:u,label:d.label,style:d,tasks:c.get(u)??[]}})}const k5="_boardContainer_1c4y1_1",w5="_column_1c4y1_17",N5="_columnHeader_1c4y1_34",j5="_columnIcon_1c4y1_47",C5="_columnLabel_1c4y1_52",E5="_columnCount_1c4y1_57",A5="_cardList_1c4y1_67",D5="_emptyPlaceholder_1c4y1_76",R5="_card_1c4y1_67",M5="_cardHeader_1c4y1_107",O5="_cardStatusIcon_1c4y1_113",I5="_cardTitle_1c4y1_119",L5="_cardBadges_1c4y1_127",B5="_badge_1c4y1_134",U5="_blockedBadge_1c4y1_146",z5="_childBadge_1c4y1_151",P5="_depBadge_1c4y1_155",V5="_parentBadge_1c4y1_159",H5="_pausedSubBadge_1c4y1_166",q5="_personaBadge_1c4y1_170",G5="_envBadge_1c4y1_174",$5="_emptyCta_1c4y1_178",Z5="_ctaButton_1c4y1_188",F5="_ctaDescription_1c4y1_204",Qe={boardContainer:k5,column:w5,columnHeader:N5,columnIcon:j5,columnLabel:C5,columnCount:E5,cardList:A5,emptyPlaceholder:D5,card:R5,cardHeader:M5,cardStatusIcon:O5,cardTitle:I5,cardBadges:L5,badge:B5,blockedBadge:U5,childBadge:z5,depBadge:P5,parentBadge:V5,pausedSubBadge:H5,personaBadge:q5,envBadge:G5,emptyCta:$5,ctaButton:Z5,ctaDescription:F5};function K5({workspaceId:n,environmentId:s,tasks:i,sessions:o,personas:c,environments:u}){const d=xt(),m=y.useMemo(()=>i.filter(_=>_.workspaceId===n),[i,n]),h=y.useMemo(()=>new Map(i.map(_=>[_.id,_.status])),[i]),g=y.useMemo(()=>new Map(m.map(_=>[_.id,_])),[m]),v=y.useMemo(()=>{const _=new Map(o.map(E=>[E.id,E])),S=new Map(c.map(E=>[E.id,E])),T=new Map(u.map(E=>[E.id,E])),N=new Map,j=new Map,w=new Map;for(const E of m)if(E.latestSessionId){const A=_.get(E.latestSessionId);if(A){if(N.set(E.id,A.endReason||A.status),A.personaId){const O=S.get(A.personaId);O&&j.set(E.id,O.name)}if(A.environmentId){const O=T.get(A.environmentId);O&&w.set(E.id,O.displayName)}}}return{sessionStatusByTaskId:N,personaNameByTaskId:j,environmentNameByTaskId:w}},[m,o,c,u]),b=y.useMemo(()=>T5({tasks:m,taskStatusById:h,sessionStatusByTaskId:v.sessionStatusByTaskId}),[m,h,v]);return m.length===0?l.jsxs("div",{className:Qe.emptyCta,"data-testid":"board-empty-cta",children:[l.jsx("button",{className:Qe.ctaButton,onClick:()=>d(ei(n,void 0,s)),children:"Create Task"}),l.jsx("div",{className:Qe.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}):l.jsx("div",{className:Qe.boardContainer,"data-testid":"board-container",children:b.map(_=>l.jsxs("section",{className:Qe.column,"data-testid":`board-column-${_.status}`,"aria-label":`${_.label}, ${_.tasks.length} ${_.tasks.length===1?"task":"tasks"}`,children:[l.jsxs("div",{className:Qe.columnHeader,children:[l.jsx("span",{className:Qe.columnIcon,style:{color:_.style.color},children:_.style.icon}),l.jsx("span",{className:Qe.columnLabel,children:_.label}),l.jsx("span",{className:Qe.columnCount,"data-testid":`board-count-${_.status}`,children:_.tasks.length})]}),l.jsx("div",{className:Qe.cardList,children:_.tasks.length===0?l.jsx("div",{className:Qe.emptyPlaceholder,children:"No tasks"}):l.jsx(rs,{mode:"popLayout",children:_.tasks.map(S=>l.jsx(Dt.div,{layout:!0,initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},children:l.jsx(Y5,{boardTask:S,tasksById:g,personaName:v.personaNameByTaskId.get(S.task.id),envName:v.environmentNameByTaskId.get(S.task.id),onClick:()=>d(os(S.task.id,void 0,n,s))})},S.task.id))})})]},_.status))})}function Y5({boardTask:n,tasksById:s,personaName:i,envName:o,onClick:c}){const{task:u,isBlocked:d,childCount:m,doneChildCount:h,pausedSubBadge:g}=n,v=ga(u.status),b=u.parentTaskId?s.get(u.parentTaskId):void 0;return l.jsxs("div",{className:Qe.card,tabIndex:0,role:"button","data-testid":`board-card-${u.id}`,onClick:c,onKeyDown:_=>{(_.key==="Enter"||_.key===" ")&&(_.preventDefault(),c())},children:[l.jsxs("div",{className:Qe.cardHeader,children:[l.jsx("span",{className:Qe.cardStatusIcon,style:{color:v.color},children:v.icon}),l.jsx("span",{className:Qe.cardTitle,children:u.title})]}),l.jsxs("div",{className:Qe.cardBadges,children:[b&&l.jsx("span",{className:`${Qe.badge} ${Qe.parentBadge}`,title:b.title,children:b.title}),m>0&&l.jsxs("span",{className:`${Qe.badge} ${Qe.childBadge}`,children:[h,"/",m]}),d&&l.jsx("span",{className:`${Qe.badge} ${Qe.blockedBadge}`,children:"blocked"}),u.dependsOn.length>0&&!d&&l.jsx("span",{className:`${Qe.badge} ${Qe.depBadge}`,children:"dep"}),g&&l.jsx("span",{className:`${Qe.badge} ${Qe.pausedSubBadge}`,children:g}),i&&l.jsx("span",{className:`${Qe.badge} ${Qe.personaBadge}`,children:i}),o&&l.jsx("span",{className:`${Qe.badge} ${Qe.envBadge}`,children:o})]})]})}function am(n){const{value:s,onSave:i,validate:o,fieldId:c,activeFieldId:u,onActivate:d,enterToSave:m=!0,trimOnSave:h=!0}=n,[g,v]=y.useState(""),[b,_]=y.useState(""),S=y.useRef(!1),T=u===c,N=y.useCallback(G=>{v(G),_("")},[]),j=y.useCallback(()=>{_("")},[]),w=y.useCallback(()=>{S.current=!1,d==null||d(null),v(""),_("")},[d]),E=y.useCallback(()=>{const G=h?g.trim():g;if(o){const V=o(g);if(V){_(V);return}}const U=h?s.trim():s;if(G===U){w();return}i(G),w()},[g,s,h,o,i,w]),A=y.useCallback(()=>{S.current=!0,d==null||d(c),v(s),_("")},[c,s,d]),O=y.useCallback(G=>{if(S.current){S.current=!1;return}G.relatedTarget instanceof HTMLElement&&G.relatedTarget.dataset.editAction===c||E()},[c,E]),C=y.useCallback(G=>{G.key==="Escape"?w():G.key==="Enter"&&m&&E()},[w,m,E]),M=(()=>{if(!T)return!1;const G=h?s.trim():s;return(h?g.trim():g)!==G})();return y.useEffect(()=>{!T&&(g!==""||b!=="")&&(v(""),_(""))},[T,g,b]),{isEditing:T,draft:g,error:b,isDirty:M,startEdit:A,cancelEdit:w,save:E,setDraft:N,clearError:j,handleBlur:O,handleKeyDown:C,ignoreInitialBlurRef:S}}const J5="_editFieldWrapper_yuzty_1",X5="_editInput_yuzty_10",W5="_editTextarea_yuzty_42",Q5="_editSelect_yuzty_78",e4="_editError_yuzty_111",t4="_editInputInvalid_yuzty_118",n4="_editHint_yuzty_123",s4="_unsavedDot_yuzty_132",a4="_metaValueClickable_yuzty_140",i4="_editButton_yuzty_159",o4="_metaPlaceholder_yuzty_175",r4="_worktreeToggle_yuzty_180",Xe={editFieldWrapper:J5,editInput:X5,editTextarea:W5,editSelect:Q5,editError:e4,editInputInvalid:t4,editHint:n4,unsavedDot:s4,metaValueClickable:a4,editButton:i4,metaPlaceholder:o4,worktreeToggle:r4};function Ft(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="text",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,maxLength:b,ariaLabel:_,"data-testid":S}=n,T=y.useRef(null),N=am({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!0,trimOnSave:!0});if(y.useEffect(()=>{if(N.isEditing){const w=window.setTimeout(()=>{var E;(E=T.current)==null||E.focus()},0);return()=>window.clearTimeout(w)}},[N.isEditing]),c==="create"){const w=A=>{h==null||h(A.target.value)},E=o==null?void 0:o(s);return l.jsxs("div",{className:Xe.editFieldWrapper,children:[l.jsx("input",{className:`${Xe.editInput} ${E?Xe.editInputInvalid:""}`,value:s,onChange:w,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),E&&l.jsx("span",{className:Xe.editError,"data-testid":"edit-error",children:E})]})}if(N.isEditing)return l.jsxs("div",{className:Xe.editFieldWrapper,children:[l.jsx("input",{ref:T,className:`${Xe.editInput} ${N.error?Xe.editInputInvalid:""}`,value:N.draft,onChange:w=>N.setDraft(w.target.value),onBlur:N.handleBlur,onKeyDown:N.handleKeyDown,maxLength:b,placeholder:v,"aria-label":_,"data-testid":S?`${S}-input`:void 0}),N.isDirty&&l.jsx("span",{className:Xe.unsavedDot,title:"Unsaved changes"}),N.error&&l.jsx("span",{className:Xe.editError,"data-testid":"edit-error",children:N.error}),l.jsx("span",{className:Xe.editHint,children:"Enter to save · Esc to cancel"})]});const j=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Xe.metaValueClickable,onClick:()=>N.startEdit(),onKeyDown:w=>{(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),N.startEdit())},title:"Click to edit","aria-label":_,"data-testid":S?`${S}-button`:void 0,children:[j!==void 0?j:s?l.jsx("span",{children:s}):l.jsx("span",{className:Xe.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Xe.editButton,"aria-hidden":"true",children:"✏️"})]})}function rp(n){const{value:s,onSave:i,validate:o,mode:c="edit",fieldId:u="textarea",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=am({value:s,onSave:i,validate:o,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});if(y.useEffect(()=>{if(T.isEditing){const j=window.setTimeout(()=>{var w;(w=S.current)==null||w.focus()},0);return()=>window.clearTimeout(j)}},[T.isEditing]),c==="create"){const j=E=>{h==null||h(E.target.value)},w=o==null?void 0:o(s);return l.jsxs("div",{className:Xe.editFieldWrapper,children:[l.jsx("textarea",{className:`${Xe.editTextarea} ${w?Xe.editInputInvalid:""}`,value:s,onChange:j,placeholder:v,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),w&&l.jsx("span",{className:Xe.editError,"data-testid":"edit-error",children:w})]})}if(T.isEditing)return l.jsxs("div",{className:Xe.editFieldWrapper,children:[l.jsx("textarea",{ref:S,className:`${Xe.editTextarea} ${T.error?Xe.editInputInvalid:""}`,value:T.draft,onChange:j=>T.setDraft(j.target.value),onBlur:T.handleBlur,onKeyDown:T.handleKeyDown,title:b,"aria-label":b,"data-testid":_?`${_}-input`:void 0}),T.isDirty&&l.jsx("span",{className:Xe.unsavedDot,title:"Unsaved changes"}),T.error&&l.jsx("span",{className:Xe.editError,"data-testid":"edit-error",children:T.error}),l.jsx("span",{className:Xe.editHint,children:"Tab to save · Esc to cancel"})]});const N=g==null?void 0:g(s);return l.jsxs("span",{role:"button",tabIndex:0,className:Xe.metaValueClickable,onClick:()=>T.startEdit(),onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),T.startEdit())},title:"Click to edit","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[N!==void 0?N:s?l.jsx("span",{children:s}):l.jsx("span",{className:Xe.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Xe.editButton,"aria-hidden":"true",children:"✏️"})]})}function jc(n){var A;const{value:s,onSave:i,mode:o="edit",options:c,fieldId:u="select",activeFieldId:d,onActivate:m,onChange:h,renderDisplay:g,placeholder:v,ariaLabel:b,"data-testid":_}=n,S=y.useRef(null),T=am({value:s,onSave:i,fieldId:u,activeFieldId:d,onActivate:m,enterToSave:!1,trimOnSave:!1});y.useEffect(()=>{if(T.isEditing){const O=window.setTimeout(()=>{var C;(C=S.current)==null||C.focus()},0);return()=>window.clearTimeout(O)}},[T.isEditing]);const N=y.useCallback(O=>{const C=O.target.value;T.ignoreInitialBlurRef.current=!1,C!==s&&i(C),T.cancelEdit()},[s,i,T]),j=y.useCallback(O=>{if(T.ignoreInitialBlurRef.current){T.ignoreInitialBlurRef.current=!1;return}O.relatedTarget instanceof HTMLElement&&O.relatedTarget.dataset.editAction===u||T.cancelEdit()},[u,T]);if(o==="create")return l.jsx("select",{className:Xe.editSelect,value:s,onChange:O=>h==null?void 0:h(O.target.value),"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(O=>l.jsx("option",{value:O.value,children:O.label},O.value))});if(T.isEditing)return l.jsx("select",{ref:S,className:Xe.editSelect,value:T.draft,onChange:N,onBlur:j,title:b,"aria-label":b,"data-testid":_?`${_}-select`:void 0,children:c.map(O=>l.jsx("option",{value:O.value,children:O.label},O.value))});const w=g==null?void 0:g(s),E=(A=c.find(O=>O.value===s))==null?void 0:A.label;return l.jsxs("button",{type:"button",className:Xe.metaValueClickable,onClick:()=>T.startEdit(),title:"Click to change","aria-label":b,"data-testid":_?`${_}-button`:void 0,children:[w!==void 0?w:E?l.jsx("span",{children:E}):l.jsx("span",{className:Xe.metaPlaceholder,children:v||"None"}),l.jsx("span",{className:Xe.editButton,"aria-hidden":"true",children:"✏️"})]})}function l4(n){const{checked:s,onChange:i,label:o,ariaLabel:c,"data-testid":u}=n;return l.jsxs("label",{className:Xe.worktreeToggle,"data-testid":u,children:[l.jsx("input",{type:"checkbox",checked:s,onChange:d=>i(d.target.checked),"aria-label":c}),l.jsx("span",{children:o})]})}const c4="_envRow_1e1r5_1",u4="_envDot_1e1r5_7",d4="_envDotGreen_1e1r5_14",f4="_envDotYellow_1e1r5_18",p4="_envDotRed_1e1r5_22",m4="_envDotGray_1e1r5_26",Ki={envRow:c4,envDot:u4,envDotGreen:d4,envDotYellow:f4,envDotRed:p4,envDotGray:m4};function h4(n){const s=n.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?Ki.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?Ki.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?Ki.envDotRed:Ki.envDotGray}function g4(n){const{value:s,onSave:i,environments:o,allowNone:c=!1,fieldId:u="environment",activeFieldId:d,onActivate:m,placeholder:h="No environment",ariaLabel:g="Environment","data-testid":v}=n,b=o.find(T=>T.id===s),_=[...c?[{value:"",label:"None"}]:[],...o.map(T=>({value:T.id,label:T.displayName}))],S=()=>{if(b)return l.jsxs("span",{className:Ki.envRow,children:[l.jsx("span",{className:`${Ki.envDot} ${h4(b.status)}`}),b.displayName]})};return l.jsx(jc,{value:s,onSave:i,options:_,fieldId:u,activeFieldId:d,onActivate:m,renderDisplay:S,placeholder:h,ariaLabel:g,"data-testid":v})}function Ky(n){if(!n)return"";const s=new Date(n);if(isNaN(s.getTime()))return"";const o=Date.now()-s.getTime();if(o<0)return"just now";const c=Math.floor(o/6e4);if(c<1)return"just now";if(c<60)return`${c}m ago`;const u=Math.floor(c/60);if(u<24)return`${u}h ago`;const d=Math.floor(u/24);return d<30?`${d}d ago`:s.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}const Df=100;function v4(n){try{const s=new URL(n);return s.protocol!=="http:"&&s.protocol!=="https:"?void 0:s.toString()}catch{return}}function y4(){const{workspaceId:n,environmentId:s}=va(),i=xt(),{tasks:o,environments:c,workspaces:u,personas:d,sessions:m,archiveWorkspace:h,updateWorkspace:g,usageCache:v,loadUsage:b}=pt(),[_,S]=y.useState("tasks"),[T,N]=y.useState(!1),[j,w]=y.useState(null),[E,A]=y.useState(!1),O=y.useRef(void 0),C=u.find(K=>K.id===n),M=s??(C==null?void 0:C.environmentId)??"",G=FI(n,M,u,c);Ms({key:"1"},()=>S("graph")),Ms({key:"2"},()=>S("board")),Ms({key:"3"},()=>S("tasks")),y.useEffect(()=>{const K=O.current;O.current=n,!(K===void 0||K===n)&&j!==null&&w(null)},[n,j]);const U=m.reduce((K,re)=>K+(re.costUsd??0),0);y.useEffect(()=>{n&&b("workspace",n)},[n,b,U]);const V=n?v[`workspace:${n}`]:void 0,F=o.filter(K=>K.workspaceId===n),ee=F.filter(K=>K.status==="complete").length,ae=F.length,be=ae>0?Math.round(ee/ae*100):0;return l.jsxs("div",{className:B.panelContainer,children:[l.jsx(ba,{segments:G}),l.jsxs("div",{className:B.workspaceHeader,children:[l.jsx("span",{className:B.workspaceName,"data-testid":"workspace-name",children:l.jsx(Ft,{value:(C==null?void 0:C.name)||"",onSave:K=>{C&&g(C.id,{name:K})},validate:K=>{const re=K.trim();if(!re)return"Name is required";if(re.length>Df)return`Max ${Df} characters`},maxLength:Df,fieldId:"name",activeFieldId:j,onActivate:w,ariaLabel:"Workspace name",renderDisplay:K=>K||n||void 0,"data-testid":"edit-name"})}),l.jsx("button",{className:B.archiveButton,onClick:()=>N(!0),title:"Archive workspace","data-testid":"archive-workspace-button",children:"Archive"})]}),l.jsxs("button",{className:B.metaToggle,onClick:()=>A(!E),"aria-expanded":!E,"aria-controls":"workspace-meta-panel","data-testid":"meta-toggle",children:[l.jsx("span",{className:`${B.metaToggleArrow} ${E?"":B.metaToggleArrowOpen}`,children:"▶"}),"Details"]}),!E&&l.jsxs("div",{className:B.workspaceMeta,"data-testid":"workspace-meta",id:"workspace-meta-panel",children:[l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Description"}),l.jsx("div",{className:B.metaValue,children:l.jsx(rp,{value:(C==null?void 0:C.description)||"",onSave:K=>{C&&g(C.id,{description:K})},fieldId:"description",activeFieldId:j,onActivate:w,renderDisplay:K=>K?l.jsx("span",{className:B.overviewMarkdown,children:l.jsx(lp,{remarkPlugins:[cp],children:K})}):void 0,placeholder:"No description",ariaLabel:"Workspace description","data-testid":"edit-description"})})]}),l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Repository"}),l.jsx("div",{className:B.metaValue,children:l.jsx(Ft,{value:(C==null?void 0:C.repoUrl)||"",onSave:K=>{C&&g(C.id,{repoUrl:K})},validate:K=>{const re=K.trim();if(re&&!/^https?:\/\/.+/.test(re))return"Must be a valid http(s) URL"},fieldId:"repoUrl",activeFieldId:j,onActivate:w,renderDisplay:K=>{const re=v4(K);return re?l.jsx("a",{className:B.repoLink,href:re,target:"_blank",rel:"noopener noreferrer",onClick:I=>I.stopPropagation(),children:K}):K?l.jsx("span",{children:K}):void 0},placeholder:"No repository",ariaLabel:"Workspace repository URL","data-testid":"edit-repo"})})]}),l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Environment"}),l.jsx("div",{className:B.metaValue,children:l.jsx(g4,{value:(C==null?void 0:C.environmentId)||"",onSave:K=>{C&&K&&g(C.id,{environmentId:K})},environments:c,fieldId:"environmentId",activeFieldId:j,onActivate:w,placeholder:"Select environment",ariaLabel:"Workspace environment","data-testid":"edit-env"})})]}),l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Persona"}),l.jsx("div",{className:B.metaValue,children:l.jsx(jc,{value:(C==null?void 0:C.defaultPersonaId)||"",onSave:K=>{C&&g(C.id,{defaultPersonaId:K})},options:[{value:"",label:"(Inherit)"},...d.map(K=>({value:K.id,label:K.name}))],fieldId:"defaultPersonaId",activeFieldId:j,onActivate:w,renderDisplay:K=>{const re=d.find(I=>I.id===K);if(re)return l.jsx("span",{children:re.name})},placeholder:(C==null?void 0:C.defaultPersonaId)||"(Inherit)",ariaLabel:"Workspace default persona","data-testid":"edit-persona"})})]}),l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Worktrees"}),l.jsx("div",{className:B.metaValue,children:l.jsx(l4,{checked:(C==null?void 0:C.useWorktrees)??!0,onChange:K=>{C&&g(C.id,{useWorktrees:K})},label:"Enable worktree isolation","data-testid":"worktree-toggle"})})]}),l.jsxs("div",{className:B.metaRow,children:[l.jsx("span",{className:B.metaLabel,children:"Working Dir"}),l.jsx("div",{className:B.metaValue,children:l.jsx(Ft,{value:(C==null?void 0:C.workingDirectory)||"",onSave:K=>{C&&g(C.id,{workingDirectory:K})},fieldId:"workingDirectory",activeFieldId:j,onActivate:w,placeholder:"Default (server default)",ariaLabel:"Working directory","data-testid":"edit-working-directory"})})]}),C&&l.jsxs("div",{className:B.metaTimestamps,children:[l.jsxs("span",{className:B.metaTimestamp,children:["Created ",Ky(C.createdAt)]}),C.updatedAt&&C.updatedAt!==C.createdAt&&l.jsxs("span",{className:B.metaTimestamp,children:["· Updated ",Ky(C.updatedAt)]})]})]}),ae>0&&l.jsxs("div",{className:B.progressBarContainer,"data-testid":"progress-bar",children:[l.jsx("div",{className:B.progressBar,children:l.jsx("div",{className:B.progressFill,style:{width:`${be}%`}})}),l.jsxs("span",{className:B.progressLabel,children:[ee,"/",ae]})]}),V&&V.costUsd>0&&l.jsx("div",{className:B.progressBarContainer,children:l.jsxs("span",{className:B.progressLabel,children:["Usage: ",no(V.costUsd)," (",V.sessionCount," session",V.sessionCount!==1?"s":"",")"]})}),l.jsxs("div",{className:B.tabBar,role:"tablist","aria-label":"Workspace view",children:[l.jsx("button",{role:"tab","aria-selected":_==="graph",className:`${B.tab} ${_==="graph"?B.active:""}`,onClick:()=>S("graph"),children:"Graph"}),l.jsx("button",{role:"tab","aria-selected":_==="board",className:`${B.tab} ${_==="board"?B.active:""}`,onClick:()=>S("board"),"data-testid":"board-tab",children:"Board"}),l.jsx("button",{role:"tab","aria-selected":_==="tasks",className:`${B.tab} ${_==="tasks"?B.active:""}`,onClick:()=>S("tasks"),children:"Tasks"})]}),_==="tasks"&&ae>0&&l.jsxs("div",{className:B.workspaceSummary,children:[l.jsx("span",{className:B.workspaceSummaryTitle,children:`${ee}/${ae} tasks complete`}),l.jsx("span",{className:B.workspaceSummarySubtitle,children:"Select a task or click + to create one"})]}),_==="tasks"&&ae===0&&l.jsxs("div",{className:B.emptyCta,children:[l.jsx("button",{className:B.ctaButton,onClick:()=>i(ei(n,void 0,M)),children:"Create Task"}),l.jsx("div",{className:B.ctaDescription,children:"Break your work into tasks and let agents tackle them"})]}),_==="board"&&l.jsx(K5,{workspaceId:n,environmentId:M,tasks:o,sessions:m,personas:d,environments:c}),_==="graph"&&l.jsx(S5,{workspaceId:n,environmentId:M,tasks:o}),l.jsx(Ja,{isOpen:T,title:"Archive Workspace?",description:"This will hide the workspace from the sidebar. Tasks will not be deleted.",confirmLabel:"Archive",onConfirm:()=>{C&&(h(C.id),i("/",{replace:!0})),N(!1)},onCancel:()=>N(!1)})]})}const b4="_formContent_ymnez_1",_4="_section_ymnez_13",x4="_label_ymnez_19",S4="_titleInput_ymnez_26",T4="_descriptionTextarea_ymnez_58",k4="_selectField_ymnez_94",w4="_checkboxRow_ymnez_128",N4="_checkboxLabel_ymnez_141",j4="_fieldError_ymnez_146",ut={formContent:b4,section:_4,label:x4,titleInput:S4,descriptionTextarea:T4,selectField:k4,checkboxRow:w4,checkboxLabel:N4,fieldError:j4};function C4(n,s){return{name:(n==null?void 0:n.name)??"",description:(n==null?void 0:n.description)??"",repoUrl:(n==null?void 0:n.repoUrl)??"",environmentId:(n==null?void 0:n.environmentId)??s??"",defaultPersonaId:(n==null?void 0:n.defaultPersonaId)??"",useWorktrees:(n==null?void 0:n.useWorktrees)??!0,workingDirectory:(n==null?void 0:n.workingDirectory)??""}}const E4=100;function A4({values:n,onChange:s,environments:i,personas:o,errors:c,disabled:u,autoFocusName:d}){const m=(h,g)=>{s({...n,[h]:g})};return l.jsxs("div",{className:ut.formContent,children:[l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-name",children:"Name"}),l.jsx("input",{id:"ws-name",className:ut.titleInput,type:"text",value:n.name,onChange:h=>m("name",h.target.value),placeholder:"Workspace name",maxLength:E4,autoFocus:d,disabled:u,"data-testid":"workspace-form-name"}),(c==null?void 0:c.name)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-name",children:c.name})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-description",children:"Description"}),l.jsx("textarea",{id:"ws-description",className:ut.descriptionTextarea,value:n.description,onChange:h=>m("description",h.target.value),placeholder:"Optional description (Markdown supported)",disabled:u,"data-testid":"workspace-form-description"})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-repo",children:"Repository URL"}),l.jsx("input",{id:"ws-repo",className:ut.titleInput,type:"text",value:n.repoUrl,onChange:h=>m("repoUrl",h.target.value),placeholder:"https://github.com/org/repo",disabled:u,"data-testid":"workspace-form-repo"}),(c==null?void 0:c.repoUrl)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-repoUrl",children:c.repoUrl})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-environment",children:"Environment"}),l.jsxs("select",{id:"ws-environment",className:ut.selectField,value:n.environmentId,onChange:h=>m("environmentId",h.target.value),disabled:u,"data-testid":"workspace-form-environment",children:[l.jsx("option",{value:"",children:"Select environment…"}),i.map(h=>l.jsx("option",{value:h.id,children:h.displayName||h.id},h.id))]}),(c==null?void 0:c.environmentId)&&l.jsx("span",{className:ut.fieldError,"data-testid":"workspace-form-error-environmentId",children:c.environmentId})]}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-persona",children:"Default Persona"}),l.jsxs("select",{id:"ws-persona",className:ut.selectField,value:n.defaultPersonaId,onChange:h=>m("defaultPersonaId",h.target.value),disabled:u,"data-testid":"workspace-form-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),o.map(h=>l.jsx("option",{value:h.id,children:h.name},h.id))]})]}),l.jsx("div",{className:ut.section,children:l.jsxs("label",{className:ut.checkboxRow,children:[l.jsx("input",{type:"checkbox",checked:n.useWorktrees,onChange:h=>m("useWorktrees",h.target.checked),disabled:u,"data-testid":"workspace-form-worktrees"}),l.jsx("span",{className:ut.checkboxLabel,children:"Enable worktree isolation"})]})}),l.jsxs("div",{className:ut.section,children:[l.jsx("label",{className:ut.label,htmlFor:"ws-workdir",children:"Working Directory"}),l.jsx("input",{id:"ws-workdir",className:ut.titleInput,type:"text",value:n.workingDirectory,onChange:h=>m("workingDirectory",h.target.value),placeholder:"Default (server default)",disabled:u,"data-testid":"workspace-form-workdir"})]})]})}const D4="_container_cddyd_1",R4="_header_cddyd_8",M4="_headerTitle_cddyd_35",O4="_badge_cddyd_44",I4="_headerActions_cddyd_54",L4="_body_cddyd_61",B4="_formContent_cddyd_73",U4="_section_cddyd_85",z4="_label_cddyd_91",P4="_titleInput_cddyd_98",V4="_descriptionTextarea_cddyd_131",H4="_parentContext_cddyd_167",q4="_parentLabel_cddyd_175",G4="_parentName_cddyd_182",$4="_personaSelect_cddyd_186",Z4="_depList_cddyd_220",F4="_depItem_cddyd_226",K4="_depItemSelected_cddyd_248",Y4="_noDeps_cddyd_252",J4="_btnPrimary_cddyd_258",X4="_btnGhost_cddyd_289",Le={container:D4,header:R4,headerTitle:M4,badge:O4,headerActions:I4,body:L4,formContent:B4,section:U4,label:z4,titleInput:P4,descriptionTextarea:V4,parentContext:H4,parentLabel:q4,parentName:G4,personaSelect:$4,depList:Z4,depItem:F4,depItemSelected:K4,noDeps:Y4,btnPrimary:J4,btnGhost:X4};function W4(n){const s={};return n.name.trim()||(s.name="Name is required"),n.repoUrl.trim()&&!/^https?:\/\/.+/i.test(n.repoUrl.trim())&&(s.repoUrl="Must be a valid http(s) URL"),n.environmentId||(s.environmentId="Environment is required"),Object.keys(s).length>0?s:void 0}const Q4=[{label:"Home",url:Ya},{label:"New Workspace",url:void 0}];function eL(){const[n]=vp(),s=n.get("environment")??void 0,{environments:i,personas:o,createWorkspace:c,workspaceCreating:u}=pt(),{showToast:d}=Ls(),m=xt(),[h,g]=y.useState(()=>{var j;return C4(void 0,s||((j=i[0])==null?void 0:j.id))}),[v,b]=y.useState(),[_,S]=y.useState();y.useEffect(()=>{s||h.environmentId||i.length===0||g(j=>{var w;return j.environmentId?j:{...j,environmentId:((w=i[0])==null?void 0:w.id)??""}})},[i,s,h.environmentId]);const T=()=>{const j=W4(h);if(j){b(j),S(void 0);return}b(void 0),S(void 0),c(h.name.trim(),h.description,h.repoUrl.trim(),h.environmentId,h.defaultPersonaId,h.useWorktrees,h.workingDirectory,()=>{d("Workspace created","success"),m(Ya,{replace:!0})},w=>{S(w)})},N=()=>{m(s?Wi(s):Ya,{replace:!0})};return l.jsxs("div",{className:Le.container,children:[l.jsxs("div",{className:Le.header,children:[l.jsx("div",{className:Le.headerTitle,children:l.jsx(ba,{segments:Q4})}),l.jsxs("div",{className:Le.headerActions,children:[l.jsx("button",{className:Le.btnGhost,onClick:N,disabled:u,"data-testid":"workspace-create-cancel",children:"Cancel"}),l.jsx("button",{className:Le.btnPrimary,onClick:T,disabled:u||!h.name.trim()||!h.environmentId,"data-testid":"workspace-create-save",children:u?l.jsx(Cx,{size:"sm",label:"Creating"}):"Create Workspace"})]})]}),l.jsxs("div",{className:Le.body,children:[l.jsx(A4,{values:h,onChange:j=>{g(j),b(void 0),S(void 0)},environments:i,personas:o,errors:v,disabled:u,autoFocusName:!0}),_&&l.jsx("div",{className:Le.error,"data-testid":"workspace-create-submit-error",children:_})]})]})}function Ox({mode:n,taskId:s,workspaceId:i,parentTaskId:o,environmentId:c,tasks:u,workspaces:d,personas:m,onCreateTask:h,onUpdateTask:g,onEditDone:v}){const{showToast:b}=Ls(),_=xt(),S=n==="edit",T=S&&s?u.find(pe=>pe.id===s):void 0,N=S?(T==null?void 0:T.workspaceId)??"":i??"",[j,w]=y.useState(N),E=N||j,A=d.find(pe=>pe.id===E),O=c??(A==null?void 0:A.environmentId),C=!S&&!i,M=S?(T==null?void 0:T.parentTaskId)??"":o??"",G=M?u.find(pe=>pe.id===M):void 0,[U,V]=y.useState((T==null?void 0:T.title)??""),[F,ee]=y.useState((T==null?void 0:T.description)??""),[ae,be]=y.useState((T==null?void 0:T.dependsOn)??[]),[K,re]=y.useState((T==null?void 0:T.defaultPersonaId)??""),[I,$]=y.useState((T==null?void 0:T.canDecompose)??!1),[Q,de]=y.useState(!1),me=y.useRef(!1);y.useEffect(()=>{S&&T&&!me.current&&(me.current=!0,V(T.title),ee(T.description),be(T.dependsOn),re(T.defaultPersonaId),$(T.canDecompose))},[S,T]);const ze=u.filter(pe=>pe.workspaceId===E&&(!S||pe.id!==s)&&pe.id!==M),je=U.trim().length>0&&(!S||T!==void 0)&&E.length>0,Ne=pe=>{be(Re=>Re.includes(pe)?Re.filter(Lt=>Lt!==pe):[...Re,pe])},Ae=()=>{!je||Q||S&&T===void 0||(S&&s?(g(s,U.trim(),F,ae,K),b("Task updated","success"),v?v():_(os(s,void 0,E,O),{replace:!0})):(de(!0),h(E,U.trim(),F,ae.length>0?ae:void 0,M||void 0,K,I,()=>{b("Task created","success"),_(i?Ji(i,O):"/tasks",{replace:!0})},pe=>{b(pe,"error"),de(!1)})))},ce=()=>{if(v){v();return}_(S&&s?os(s,void 0,E,O):i?Ji(i,O):"/tasks")},fe=S?"edit task":M?"child task":"new task";return l.jsxs("div",{className:Le.container,children:[l.jsxs("div",{className:Le.header,children:[l.jsxs("div",{className:Le.headerTitle,children:[l.jsx("span",{className:Le.badge,children:fe}),G&&l.jsxs("span",{className:Le.parentContext,children:[l.jsx("span",{className:Le.parentLabel,children:"Child of"}),l.jsx("span",{className:Le.parentName,children:G.title})]})]}),l.jsxs("div",{className:Le.headerActions,children:[l.jsx("button",{onClick:Ae,disabled:!je||Q,className:Le.btnPrimary,"data-testid":"task-edit-save",children:Q?"Creating…":S?"Save Changes":"Create"}),l.jsx("button",{onClick:ce,className:Le.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:Le.body,children:l.jsxs("div",{className:Le.formContent,children:[C&&l.jsxs("div",{className:Le.section,children:[l.jsx("label",{className:Le.label,htmlFor:"task-edit-workspace",children:"Workspace"}),l.jsxs("select",{id:"task-edit-workspace",value:j,onChange:pe=>w(pe.target.value),className:Le.personaSelect,"data-testid":"task-edit-workspace",children:[l.jsx("option",{value:"",children:"Select a workspace..."}),d.map(pe=>l.jsx("option",{value:pe.id,children:pe.name},pe.id))]})]}),l.jsxs("div",{className:Le.section,children:[l.jsx("label",{className:Le.label,htmlFor:"task-edit-title",children:"Title"}),l.jsx("input",{id:"task-edit-title",type:"text",value:U,onChange:pe=>V(pe.target.value),placeholder:"Task title...",autoFocus:!0,className:Le.titleInput,"data-testid":"task-edit-title",onKeyDown:pe=>{pe.key==="Enter"&&je&&Ae()}})]}),l.jsxs("div",{className:Le.section,children:[l.jsx("label",{className:Le.label,htmlFor:"task-edit-description",children:"Description"}),l.jsx("textarea",{id:"task-edit-description",value:F,onChange:pe=>ee(pe.target.value),placeholder:"Describe the task... (markdown supported)",className:Le.descriptionTextarea,"data-testid":"task-edit-description",rows:8})]}),l.jsxs("div",{className:Le.section,children:[l.jsx("label",{className:Le.label,htmlFor:"task-edit-persona",children:"Default Persona"}),l.jsxs("select",{id:"task-edit-persona",value:K,onChange:pe=>re(pe.target.value),className:Le.personaSelect,"data-testid":"task-edit-persona",children:[l.jsx("option",{value:"",children:"(Inherit)"}),m.map(pe=>l.jsx("option",{value:pe.id,children:pe.name},pe.id))]})]}),!S&&l.jsx("div",{className:Le.section,children:l.jsxs("label",{className:Le.depItem,"data-testid":"task-edit-can-decompose",children:[l.jsx("input",{type:"checkbox",checked:I,onChange:pe=>$(pe.target.checked)}),"Can spawn subtasks"]})}),l.jsxs("div",{className:Le.section,children:[l.jsx("div",{className:Le.label,children:"Dependencies"}),ze.length===0?l.jsx("div",{className:Le.noDeps,children:"No other tasks in this workspace"}):l.jsx("div",{className:Le.depList,children:ze.map(pe=>{const Re=ae.includes(pe.id);return l.jsxs("label",{className:`${Le.depItem} ${Re?Le.depItemSelected:""}`,"data-testid":`dep-option-${pe.id}`,children:[l.jsx("input",{type:"checkbox",checked:Re,onChange:()=>Ne(pe.id)}),pe.title,l.jsxs("span",{style:{opacity:.5,fontSize:"11px",marginLeft:"4px"},children:["(",pe.status,")"]})]},pe.id)})})]})]})})]})}function Yy(){const{workspaceId:n,environmentId:s}=va(),[i]=vp(),o=n??i.get("workspace")??"",c=i.get("parent")??void 0,{tasks:u,workspaces:d,personas:m,createTask:h,updateTask:g}=pt();return l.jsx(Ox,{mode:"new",workspaceId:o,parentTaskId:c,environmentId:s,tasks:u,workspaces:d,personas:m,onCreateTask:h,onUpdateTask:g})}const tL="_container_1pqxm_1",nL="_emptyState_1pqxm_8",sL="_card_1pqxm_14",aL="_cardHeader_1pqxm_34",iL="_categoryBadge_1pqxm_46",oL="_findingTitle_1pqxm_54",rL="_findingDate_1pqxm_60",lL="_findingContent_1pqxm_72",cL="_tags_1pqxm_78",uL="_tag_1pqxm_78",ts={container:tL,emptyState:nL,card:sL,cardHeader:aL,categoryBadge:iL,findingTitle:oL,findingDate:rL,findingContent:lL,tags:cL,tag:uL};function dL(n){const s=new Date(n),i=new Date,o=i.getTime()-s.getTime(),c=Math.floor(o/1e3),u=Math.floor(c/60),d=Math.floor(u/60),m=Math.floor(d/24);if(c<60)return"just now";if(u<60)return`${u}m ago`;if(d<24)return`${d}h ago`;if(m===1)return"yesterday";if(m<7)return`${m} days ago`;const h=s.getFullYear()===i.getFullYear(),g=s.toLocaleString("en-US",{month:"short"}),v=s.getDate();return h?`${g} ${v}`:`${g} ${v} ${s.getFullYear()}`}const Jy={architecture:{text:"var(--accent-blue)",bg:"var(--accent-blue-dim)"},api:{text:"var(--accent-green)",bg:"var(--accent-green-dim)"},bug:{text:"var(--accent-red)",bg:"var(--accent-red-dim)"},decision:{text:"var(--accent-yellow)",bg:"var(--accent-yellow-dim)"},dependency:{text:"var(--accent-purple)",bg:"var(--accent-purple-dim)"},pattern:{text:"var(--accent-cyan)",bg:"var(--accent-cyan-dim)"},general:{text:"var(--text-secondary)",bg:"var(--bg-elevated)"}};function fL({findings:n}){return n.length===0?l.jsx("div",{className:ts.emptyState,children:"No findings yet. Agents will post discoveries here."}):l.jsx("div",{className:ts.container,children:n.map((s,i)=>{const o=Jy[s.category]||Jy.general;return l.jsxs(Dt.div,{className:ts.card,initial:{opacity:0,y:8},animate:{opacity:1,y:0},transition:{delay:i*.05,duration:.2},children:[l.jsxs("div",{className:ts.cardHeader,children:[l.jsx("span",{className:ts.categoryBadge,style:{background:o.bg,color:o.text},children:s.category}),l.jsx("span",{className:ts.findingTitle,children:s.title}),l.jsx("span",{className:ts.findingDate,title:s.createdAt,children:dL(s.createdAt)})]}),l.jsx("div",{className:ts.findingContent,children:s.content.length>300?s.content.slice(0,300)+"...":s.content}),s.tags.length>0&&l.jsx("div",{className:ts.tags,children:s.tags.map(c=>l.jsx("span",{className:ts.tag,style:{color:o.text,textShadow:`0 0 8px ${o.text}`},children:c},c))})]},s.id)})})}const pL="_workpadSection_y8nj9_1",mL="_workpadLabel_y8nj9_9",hL="_workpadStatus_y8nj9_17",gL="_workpadSummary_y8nj9_23",vL="_workpadExtra_y8nj9_29",da={workpadSection:pL,workpadLabel:mL,workpadStatus:hL,workpadSummary:gL,workpadExtra:vL};function yL({workpad:n}){if(!n)return;let s;try{const i=JSON.parse(n);if(i==null||typeof i!="object"||Array.isArray(i))return;s=i}catch{return l.jsxs("div",{className:da.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:da.workpadLabel,children:"Workpad"}),l.jsx("div",{className:da.workpadExtra,children:n})]})}if(!(!s.status&&!s.summary&&!s.extra))return l.jsxs("div",{className:da.workpadSection,"data-testid":"workpad-panel",children:[l.jsx("div",{className:da.workpadLabel,children:"Workpad"}),s.status&&l.jsx("div",{className:da.workpadStatus,"data-testid":"workpad-status",children:s.status}),s.summary&&l.jsx("div",{className:da.workpadSummary,"data-testid":"workpad-summary",children:s.summary}),s.extra&&Object.keys(s.extra).length>0&&l.jsx("div",{className:da.workpadExtra,"data-testid":"workpad-extra",children:JSON.stringify(s.extra,null,2)})]})}function lc(n){if(!n)return"—";const s=new Date(n);return isNaN(s.getTime())?"—":s.toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"})}function Rf(n,s){if(!n||!s)return;const i=new Date(s).getTime()-new Date(n).getTime();if(isNaN(i)||i<0)return;const o=Math.floor(i/6e4),c=Math.floor(i%6e4/1e3);if(o===0)return`${c}s`;const u=Math.floor(o/60),d=o%60;return u===0?`${o}m ${c}s`:`${u}h ${d}m`}function Xy(n){const s=n.toLowerCase();return s==="ready"||s==="running"||s==="available"||s==="connected"?B.envDotGreen:s==="provisioning"||s==="starting"||s==="pending"||s==="connecting"?B.envDotYellow:s==="error"||s==="failed"||s==="disconnected"?B.envDotRed:B.envDotGray}function bL({status:n}){const s=ga(n),i=eA(n);return l.jsx("span",{className:`${B.statusBadge} ${B[i]??B.statusPending}`,children:s.label})}function _L({task:n,tasksById:s,environments:i,workspaces:o,taskSessions:c,selectedEnvId:u}){const{loadUsage:d,usageCache:m}=pt(),h=c.reduce((A,O)=>A+(O.costUsd??0),0);y.useEffect(()=>{d("task",n.id),n.childTaskIds.length>0&&d("task_tree",n.id)},[n.id,n.childTaskIds.length,d,h]);const g=`task:${n.id}`,v=g in m?m[g]:void 0,b=`task_tree:${n.id}`,_=n.childTaskIds.length>0&&b in m?m[b]:void 0,S=c.length>0?c[c.length-1]:void 0,T=(S==null?void 0:S.environmentId)??"",N=T?i.find(A=>A.id===T):void 0,j=o.find(A=>A.id===n.workspaceId),w=i.find(A=>A.id===u),E=n.branch&&(j!=null&&j.repoUrl)?`${j.repoUrl.replace(/\/$/,"")}/tree/${encodeURIComponent(n.branch)}`:void 0;return l.jsxs("div",{className:B.overviewDashboard,children:[l.jsxs("div",{className:B.overviewHero,children:[l.jsx(bL,{status:n.status}),n.branch&&l.jsx("span",{className:B.overviewBranchPill,children:E?l.jsxs("a",{href:E,target:"_blank",rel:"noreferrer noopener",className:B.branchLink,children:["🔗"," ",n.branch]}):l.jsxs("span",{children:["🔗"," ",n.branch]})})]}),typeof n.description=="string"&&n.description&&l.jsxs("div",{className:B.overviewSection,children:[l.jsx("div",{className:B.overviewLabel,children:"Description"}),l.jsx("div",{className:B.overviewMarkdown,children:l.jsx(lp,{remarkPlugins:[cp],children:n.description})})]}),n.workpad&&l.jsx(yL,{workpad:n.workpad}),l.jsxs("div",{className:B.overviewSection,children:[l.jsx("div",{className:B.overviewLabel,children:"Environment"}),T&&N?l.jsxs("div",{className:B.envRow,"data-testid":"task-overview-environment",children:[l.jsx("span",{className:`${B.envDot} ${Xy(N.status)}`,title:N.status,"aria-label":`Status: ${N.status}`,role:"img"}),l.jsx("span",{className:B.overviewValue,children:N.displayName})]}):w?l.jsxs("div",{className:B.envRow,"data-testid":"task-overview-environment",children:[l.jsx("span",{className:`${B.envDot} ${Xy(w.status)}`,title:w.status,"aria-label":`Status: ${w.status}`,role:"img"}),l.jsx("span",{className:B.overviewValue,children:w.displayName}),l.jsx("span",{className:B.overviewMuted,children:"(workspace default)"})]}):l.jsx("div",{className:B.overviewMuted,children:"Set in workspace settings"})]}),l.jsxs("div",{className:B.overviewSection,"data-testid":"task-overview-dependencies",children:[l.jsx("div",{className:B.overviewLabel,children:"Dependencies"}),n.dependsOn.length===0?l.jsx("div",{className:B.overviewMuted,children:"None"}):l.jsx("div",{className:B.depList,children:n.dependsOn.map(A=>{const O=s.get(A),C=(O==null?void 0:O.status)==="complete";return l.jsxs("div",{className:`${B.depItem} ${C?B.depDone:B.depBlocked}`,children:[l.jsx("span",{children:C?"✓":"○"}),l.jsx("span",{children:(O==null?void 0:O.title)??A})]},A)})})]}),l.jsxs("div",{className:B.overviewSection,children:[l.jsx("div",{className:B.overviewLabel,children:"Timeline"}),l.jsxs("div",{className:B.timeline,children:[n.createdAt&&l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Created"}),l.jsx("span",{className:B.timelineValue,children:lc(n.createdAt)})]}),n.assignedAt&&(()=>{const A=Rf(n.createdAt,n.assignedAt);return l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Assigned"}),l.jsx("span",{className:B.timelineValue,children:lc(n.assignedAt)}),A!==void 0&&l.jsx("span",{className:B.timelineDelta,children:A})]})})(),n.startedAt&&(()=>{const A=Rf(n.assignedAt??n.createdAt,n.startedAt);return l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Started"}),l.jsx("span",{className:B.timelineValue,children:lc(n.startedAt)}),A!==void 0&&l.jsx("span",{className:B.timelineDelta,children:A})]})})(),n.completedAt&&(()=>{const A=Rf(n.startedAt,n.completedAt);return l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Completed"}),l.jsx("span",{className:B.timelineValue,children:lc(n.completedAt)}),A!==void 0&&l.jsx("span",{className:B.timelineDelta,children:A})]})})(),!n.createdAt&&!n.assignedAt&&!n.startedAt&&!n.completedAt&&l.jsx("div",{className:B.overviewMuted,children:"No timing data"})]})]}),v&&v.costUsd>0&&l.jsxs("div",{className:B.overviewSection,children:[l.jsx("div",{className:B.overviewLabel,children:"Usage"}),l.jsxs("div",{className:B.timeline,children:[l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Cost"}),l.jsx("span",{className:B.timelineValue,children:no(v.costUsd)}),l.jsxs("span",{className:B.timelineDelta,children:[v.sessionCount," session",v.sessionCount!==1?"s":""]})]}),_&&_.costUsd>v.costUsd&&l.jsxs("div",{className:B.timelineRow,children:[l.jsx("span",{className:B.timelineKey,children:"Total (incl. subtasks)"}),l.jsx("span",{className:B.timelineValue,children:no(_.costUsd)}),l.jsxs("span",{className:B.timelineDelta,children:[_.sessionCount," session",_.sessionCount!==1?"s":""]})]})]})]}),n.reviewNotes&&l.jsxs("div",{className:B.overviewSection,children:[l.jsx("div",{className:B.overviewLabel,children:"Review Notes"}),l.jsx("div",{className:B.reviewNotes,children:n.reviewNotes})]})]})}function xL({task:n,sessionId:s,isBlocked:i,onStart:o,onResume:c,onStop:u,onPause:d,onDelete:m,onEdit:h}){if(n.status==="not_started")return i?l.jsxs("div",{className:B.headerActions,children:[l.jsx("button",{onClick:h,className:B.btnGhost,children:"Edit"}),l.jsx("button",{onClick:m,className:B.btnDanger,children:"Delete"})]}):l.jsxs("div",{className:B.headerActions,children:[l.jsx("button",{"data-testid":"task-header-start",onClick:o,className:B.btnPrimary,children:"Start"}),l.jsx("button",{onClick:h,className:B.btnGhost,children:"Edit"}),l.jsx("button",{onClick:m,className:B.btnDanger,children:"Delete"})]});if(n.status==="working")return l.jsxs("div",{className:B.headerActions,children:[l.jsx("button",{onClick:u,className:B.btnDanger,children:"Stop"}),l.jsx("button",{onClick:d,disabled:!s,className:B.btnGhost,children:"Pause"})]});if(n.status==="paused")return l.jsxs("div",{className:B.headerActions,children:[l.jsx("button",{onClick:u,className:B.btnPrimary,children:"Stop"}),l.jsx("button",{onClick:c,className:B.btnGhost,children:"Resume"}),l.jsx("button",{onClick:m,className:B.btnDanger,children:"Delete"})]});if(n.status==="complete")return l.jsx("div",{className:B.headerActions,children:l.jsx("button",{onClick:m,className:B.btnDanger,children:"Delete"})});if(n.status==="failed")return l.jsxs("div",{className:B.headerActions,children:[l.jsx("button",{onClick:o,className:B.btnPrimary,children:"Retry"}),l.jsx("button",{onClick:m,className:B.btnDanger,children:"Delete"})]})}function SL({taskSessions:n,selectedSessionId:s,onSelect:i}){if(!(n.length<2))return l.jsxs("div",{className:B.attemptSelector,"data-testid":"attempt-selector",children:[l.jsx("span",{className:B.attemptLabel,children:"Attempts:"}),n.map((o,c)=>{const u=o.id===s,d=o.status==="stopped"&&o.endReason==="completed"?"✓":o.status==="stopped"?"✗":o.status==="running"||o.status==="idle"?"●":"";return l.jsxs("button",{className:`${B.attemptButton} ${u?B.attemptActive:""}`,onClick:()=>i(o.id),title:`Attempt #${c+1} — ${o.status}`,"aria-label":`Attempt #${c+1}, ${o.status}`,"aria-pressed":u,"data-testid":`attempt-${c+1}`,children:["#",c+1,d&&l.jsx("span",{className:B.attemptStatus,children:d})]},o.id)})]})}function fa(){const{taskId:n,workspaceId:s,environmentId:i}=va(),o=It(),c=xt(),{events:u,eventsDropped:d,tasks:m,sessions:h,environments:g,findings:v,loadSessionEvents:b,loadFindings:_,kill:S,startTask:T,stopTask:N,resumeTask:j,deleteTask:w,createTask:E,updateTask:A,workspaces:O,taskSessions:C,loadTaskSessions:M,sendInput:G,spawn:U,personas:V,provisionEnvironment:F}=pt(),ee=y.useRef(void 0),ae=y.useRef(void 0),be=y.useRef(void 0),K=y.useRef(void 0),re=y.useRef(void 0),I=o.pathname.endsWith("/stream")?"stream":o.pathname.endsWith("/findings")?"findings":"overview",$=o.pathname.endsWith("/edit"),[Q,de]=y.useState(I),[me,ze]=y.useState(!1),[je,Ne]=y.useState(void 0),[Ae,ce]=y.useState(""),[fe,pe]=y.useState($),Re=y.useRef(I),Lt=y.useRef($),te=m.find(Me=>Me.id===n),W=(te==null?void 0:te.workspaceId)||void 0,Te=O.find(Me=>Me.id===W);y.useEffect(()=>{I!==Re.current&&(Re.current=I,I!==Q&&de(I))},[I,Q]),y.useEffect(()=>{$!==Lt.current&&(Lt.current=$,$!==fe&&pe($))},[$,fe]),y.useEffect(()=>{if(Ae===""){if(Te!=null&&Te.environmentId)ce(Te.environmentId);else if(g.length>0){const Me=g.find(Rt=>Rt.status==="connected");ce((Me==null?void 0:Me.id)??g[0].id)}}},[Ae,Te==null?void 0:Te.environmentId,g]);const un=te?C[te.id]??[]:[];let Fe;je&&un.some(Me=>Me.id===je)?Fe=je:Fe=(te==null?void 0:te.latestSessionId)||void 0;const Kn=()=>{ze(!0)},Yn=()=>{if(!te)return;w(te.id),ze(!1);const Me=i??(Te==null?void 0:Te.environmentId);c(te.workspaceId&&Me?Ji(te.workspaceId,Me):"/",{replace:!0})};y.useEffect(()=>{(te==null?void 0:te.id)!==ae.current&&(ae.current=te==null?void 0:te.id,Ne(void 0),ce(""),pe($))},[te==null?void 0:te.id,$]),y.useEffect(()=>{if(!(te!=null&&te.id))return;const Me=te.id!==K.current,Rt=te.latestSessionId!==re.current;(Me||Rt)&&(K.current=te.id,re.current=te.latestSessionId,M(te.id))},[te==null?void 0:te.id,te==null?void 0:te.latestSessionId,M]),y.useEffect(()=>{if((te==null?void 0:te.status)!==be.current){const Me=be.current===void 0;be.current=te==null?void 0:te.status;const Rt=(te==null?void 0:te.status)==="not_started"?"overview":(te==null?void 0:te.status)==="working"||(te==null?void 0:te.status)==="paused"?"stream":(te==null?void 0:te.status)==="complete"?"findings":void 0;Rt&&Rt!==Q&&!(Me&&I!=="overview")&&de(Rt)}},[te==null?void 0:te.status,Q,I]);const zn=y.useMemo(()=>new Map(m.map(Me=>[Me.id,Me])),[m]),Jn=y.useMemo(()=>{const Me=Fe?u.filter(Rt=>Rt.sessionId===Fe):[];return sm(nm(Me))},[u,Fe]),Tn=te?te.dependsOn.some(Me=>{const Rt=zn.get(Me);return Rt!==void 0&&Rt.status!=="complete"}):!1,Bs=y.useMemo(()=>KI(n,i,O,g,zn),[n,i,O,g,zn]);y.useEffect(()=>{Fe&&Fe!==ee.current&&(ee.current=Fe,b(Fe))},[Fe,b]),y.useEffect(()=>{Q==="findings"&&W&&_(W)},[Q,W,_]);const dn=Me=>{de(Me),c(os(n,Me==="overview"?void 0:Me,s,i))};return Ms({key:"1"},()=>dn("overview")),Ms({key:"2"},()=>dn("stream")),Ms({key:"3"},()=>dn("findings")),l.jsxs("div",{className:B.panelContainer,children:[l.jsx(ba,{segments:Bs}),l.jsxs("div",{className:B.header,children:[l.jsxs("span",{className:B.headerTitle,children:[l.jsx("span",{"data-testid":"task-title",children:(te==null?void 0:te.title)||n}),te&&l.jsx("span",{className:B.taskStatusBadge,"data-testid":"task-status",children:te.status}),(te==null?void 0:te.branch)&&l.jsx("span",{className:B.taskBranch,children:te.branch}),Tn&&l.jsx("span",{className:B.taskBlockedBadge,children:"blocked"})]}),te&&l.jsx(xL,{task:te,sessionId:Fe,isBlocked:Tn,onStart:()=>T(te.id,void 0,Ae),onResume:()=>j(te.id),onStop:()=>N(te.id),onPause:()=>Fe&&S(Fe),onDelete:Kn,onEdit:()=>pe(!0)})]}),l.jsxs("div",{className:B.tabBar,role:"tablist","aria-label":"Task view",children:[l.jsx("button",{role:"tab","aria-selected":Q==="overview",className:`${B.tab} ${Q==="overview"?B.active:""}`,onClick:()=>dn("overview"),children:"Overview"}),l.jsx("button",{role:"tab","aria-selected":Q==="stream",className:`${B.tab} ${Q==="stream"?B.active:""}`,onClick:()=>dn("stream"),children:"Stream"}),l.jsx("button",{role:"tab","aria-selected":Q==="findings",className:`${B.tab} ${Q==="findings"?B.active:""}`,onClick:()=>dn("findings"),children:"Findings"})]}),l.jsxs(rs,{mode:"wait",children:[Q==="overview"&&l.jsx(Dt.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},className:B.overviewContent,"data-testid":"task-overview",children:fe&&te?l.jsx(Ox,{mode:"edit",taskId:te.id,workspaceId:W,environmentId:i,tasks:m,workspaces:O,personas:V,onCreateTask:E,onUpdateTask:A,onEditDone:()=>{$?c(os(te.id,void 0,s,i),{replace:!0}):pe(!1)}}):te?l.jsx(_L,{task:te,tasksById:zn,environments:g,workspaces:O,taskSessions:un,selectedEnvId:Ae}):l.jsx("div",{className:B.waitingMessage,children:"No additional details"})},"overview"),Q==="stream"&&l.jsxs(Dt.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},style:{display:"flex",flexDirection:"column",flex:1,overflow:"hidden"},children:[l.jsx(SL,{taskSessions:un,selectedSessionId:Fe,onSelect:Me=>Ne(Me)}),l.jsx(tm,{events:Jn,eventsDropped:d,emptyState:!Fe&&te?Tn?l.jsx("div",{className:B.emptyCta,"data-testid":"stream-blocked-message",children:l.jsx("div",{className:B.ctaDescription,children:"This task is blocked by incomplete dependencies"})}):l.jsxs("div",{className:B.emptyCta,children:[l.jsx("button",{"data-testid":"stream-start-cta",className:B.ctaButton,onClick:()=>T(te.id,void 0,Ae),children:"Start Task"}),l.jsx("div",{className:B.ctaDescription,children:"Click to begin agent execution"})]}):Fe&&Jn.length===0?l.jsx("div",{className:B.waitingMessage,children:"Waiting for events..."}):void 0})]},"stream"),Q==="findings"&&l.jsx(Dt.div,{initial:{opacity:0,y:4},animate:{opacity:1,y:0},exit:{opacity:0,y:-4},transition:{duration:.15},className:B.tabContent,children:W?l.jsx(fL,{findings:v.filter(Me=>Me.workspaceId===W)}):l.jsx("div",{className:B.noContext,children:"Navigate to a task within a workspace to view findings"})},"findings")]}),(()=>{if(!te||te.status!=="working"&&te.status!=="paused")return;const Me=Fe?h.find(Rt=>Rt.id===Fe):void 0;if(!(!Me||Me.status==="stopped"))return l.jsx(Nr,{mode:"send",sessionId:Me.id,environmentId:Me.environmentId,personas:V,environments:g,onSendInput:G,onSpawn:U,onStartTask:T,onProvisionEnvironment:F})})(),te&&l.jsx(Ja,{isOpen:me,title:"Delete Task?",description:`"${te.title}" will be permanently removed.`,onConfirm:Yn,onCancel:()=>ze(!1)})]})}const TL="_container_legrg_1",kL="_header_legrg_8",wL="_headerTitle_legrg_35",NL="_badge_legrg_44",jL="_headerActions_legrg_54",CL="_body_legrg_61",EL="_formContent_legrg_73",AL="_section_legrg_85",DL="_label_legrg_91",RL="_nameInput_legrg_98",ML="_fieldInput_legrg_131",OL="_adapterSelect_legrg_164",IL="_readOnlyValue_legrg_198",LL="_codespaceSection_legrg_204",BL="_codespaceActions_legrg_210",UL="_creatingHint_legrg_216",zL="_errorHint_legrg_222",PL="_btnPrimary_legrg_235",VL="_btnGhost_legrg_266",se={container:TL,header:kL,headerTitle:wL,badge:NL,headerActions:jL,body:CL,formContent:EL,section:AL,label:DL,nameInput:RL,fieldInput:ML,adapterSelect:OL,readOnlyValue:IL,codespaceSection:LL,codespaceActions:BL,creatingHint:UL,errorHint:zL,btnPrimary:PL,btnGhost:VL},hc=1,gc=65535;function Mf(n){if(!n.trim())return!0;const s=Number(n);return Number.isInteger(s)&&s>=hc&&s<=gc}function Of(n){try{const s=JSON.parse(n);if(typeof s=="object"&&s!==null&&!Array.isArray(s))return s}catch{}return{}}function HL({codespaceName:n,onCodespaceNameChange:s,envName:i,onEnvNameChange:o,codespaces:c,codespaceError:u,codespaceListError:d,codespaceCreating:m,onCreateCodespace:h}){const[g,v]=y.useState("pick"),[b,_]=y.useState(""),[S,T]=y.useState("");return g==="create"?l.jsxs("div",{className:se.codespaceSection,children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Repository"}),l.jsx("input",{type:"text",value:b,onChange:N=>_(N.target.value),placeholder:"owner/repo",className:se.fieldInput,"data-testid":"env-codespace-repo"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Machine Type"}),l.jsx("input",{type:"text",value:S,onChange:N=>T(N.target.value),placeholder:"Machine type (optional)...",className:se.fieldInput,"data-testid":"env-codespace-machine"})]}),l.jsxs("div",{className:se.codespaceActions,children:[l.jsx("button",{onClick:()=>{b.trim()&&(h(b.trim(),S.trim()||void 0),v("pick"),_(""),T(""))},disabled:!b.trim(),className:se.btnPrimary,children:"Create"}),l.jsx("button",{onClick:()=>{v("pick"),_(""),T("")},className:se.btnGhost,children:"Cancel"})]})]}):l.jsx("div",{className:se.codespaceSection,children:l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Codespace"}),!d&&l.jsxs("select",{value:n,onChange:N=>{N.target.value==="__create__"?(v("create"),s("")):(s(N.target.value),N.target.value&&!i.trim()&&o(N.target.value))},disabled:m,className:se.adapterSelect,"data-testid":"env-codespace-select",children:[l.jsx("option",{value:"",children:"Select a codespace..."}),c.map(N=>l.jsxs("option",{value:N.name,children:[N.name," (",N.repository,") — ",N.state]},N.name)),l.jsx("option",{value:"__create__",children:"Create new from repo..."})]}),m&&l.jsx("span",{className:se.creatingHint,children:"Creating codespace..."}),d&&l.jsxs(l.Fragment,{children:[l.jsx("span",{className:se.errorHint,children:d}),l.jsx("input",{type:"text",value:n,onChange:N=>s(N.target.value),placeholder:"Or enter codespace name manually...",className:se.fieldInput,"data-testid":"env-codespace-manual"})]}),u&&!d&&l.jsx("span",{className:se.errorHint,children:u})]})})}function Ix({mode:n,environmentId:s,environments:i,onAddEnvironment:o,onUpdateEnvironment:c,onListCodespaces:u,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v}){const{showToast:b}=Ls(),_=xt(),S=n==="edit",T=S&&s?i.find(ce=>ce.id===s):void 0,[N,j]=y.useState(""),[w,E]=y.useState("local"),[A,O]=y.useState(""),[C,M]=y.useState(""),[G,U]=y.useState(""),[V,F]=y.useState(""),[ee,ae]=y.useState(""),[be,K]=y.useState(""),[re,I]=y.useState(""),[$,Q]=y.useState(null),de=y.useCallback(()=>{const ce={};if(w==="local"){if(A.trim()&&(ce.host=A.trim()),C.trim()){const fe=Number(C);Number.isInteger(fe)&&(ce.port=fe)}}else if(w==="ssh"){if(ce.host=A.trim(),G.trim()&&(ce.user=G.trim()),C.trim()){const fe=Number(C);Number.isInteger(fe)&&(ce.sshPort=fe)}V.trim()&&(ce.identityFile=V.trim())}else w==="docker"?(ee.trim()&&(ce.image=ee.trim()),be.trim()&&(ce.repo=be.trim())):w==="codespace"&&(ce.codespaceName=re.trim());return ce},[w,A,C,G,V,ee,be,re]),me=()=>!(!N.trim()||w==="ssh"&&!A.trim()||w==="codespace"&&!re.trim()||(w==="local"||w==="ssh")&&!Mf(C)),ze=()=>{me()&&(o(N.trim(),w,de()),b("Environment added successfully","success"),_(Xi,{replace:!0}))},je=()=>{_(s?Wi(s):Xi)},Ne=y.useCallback((ce,fe)=>{if(!T||!s)return;const pe=Of(T.adapterConfig),Re=fe.trim();Re?pe[ce]=Re:delete pe[ce],c(s,{adapterConfig:pe})},[T,s,c]),Ae=y.useCallback((ce,fe)=>{if(!T||!s)return;const pe=Of(T.adapterConfig);if(fe.trim()){const Re=Number(fe);Number.isInteger(Re)&&Re>=hc&&Re<=gc&&(pe[ce]=Re)}else delete pe[ce];c(s,{adapterConfig:pe})},[T,s,c]);if(S){if(!T)return l.jsxs("div",{className:se.container,children:[l.jsxs("div",{className:se.header,children:[l.jsx("div",{className:se.headerTitle,children:l.jsx("span",{className:se.badge,children:"edit environment"})}),l.jsx("div",{className:se.headerActions,children:l.jsx("button",{onClick:je,className:se.btnGhost,children:"Back"})})]}),l.jsx("div",{className:se.body,children:l.jsx("div",{className:se.formContent,children:l.jsx("span",{className:se.readOnlyValue,children:"Environment not found"})})})]});const ce=Of(T.adapterConfig);return l.jsxs("div",{className:se.container,"data-testid":"env-edit-panel",children:[l.jsxs("div",{className:se.header,children:[l.jsx("div",{className:se.headerTitle,children:l.jsx("span",{className:se.badge,children:"edit environment"})}),l.jsx("div",{className:se.headerActions,children:l.jsx("button",{onClick:je,className:se.btnGhost,"data-testid":"env-edit-back",children:"Back"})})]}),l.jsx("div",{className:se.body,children:l.jsxs("div",{className:se.formContent,children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Name"}),l.jsx(Ft,{value:T.displayName,onSave:fe=>{s&&c(s,{displayName:fe})},validate:fe=>fe.trim()===""?"Name cannot be empty":void 0,mode:"edit",fieldId:"name",activeFieldId:$,onActivate:Q,placeholder:"Environment name",ariaLabel:"Environment name","data-testid":"env-edit-name"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Adapter Type"}),l.jsx("span",{className:se.readOnlyValue,"data-testid":"env-edit-adapter-type",children:T.adapterType})]}),T.adapterType==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Host"}),l.jsx(Ft,{value:String(ce.host??""),onSave:fe=>Ne("host",fe),mode:"edit",fieldId:"host",activeFieldId:$,onActivate:Q,placeholder:"(default)",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Port"}),l.jsx(Ft,{value:String(ce.port??""),onSave:fe=>Ae("port",fe),validate:fe=>Mf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"port",activeFieldId:$,onActivate:Q,placeholder:"(default)",ariaLabel:"Port","data-testid":"env-edit-port"})]})]}),T.adapterType==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Host"}),l.jsx(Ft,{value:String(ce.host??""),onSave:fe=>Ne("host",fe),validate:fe=>fe.trim()===""?"Host is required":void 0,mode:"edit",fieldId:"host",activeFieldId:$,onActivate:Q,placeholder:"hostname or IP",ariaLabel:"Host","data-testid":"env-edit-host"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"User"}),l.jsx(Ft,{value:String(ce.user??""),onSave:fe=>Ne("user",fe),mode:"edit",fieldId:"user",activeFieldId:$,onActivate:Q,placeholder:"(default)",ariaLabel:"User","data-testid":"env-edit-user"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"SSH Port"}),l.jsx(Ft,{value:String(ce.sshPort??""),onSave:fe=>Ae("sshPort",fe),validate:fe=>Mf(fe)?void 0:"Port must be 1-65535",mode:"edit",fieldId:"sshPort",activeFieldId:$,onActivate:Q,placeholder:"22",ariaLabel:"SSH Port","data-testid":"env-edit-ssh-port"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Identity File"}),l.jsx(Ft,{value:String(ce.identityFile??""),onSave:fe=>Ne("identityFile",fe),mode:"edit",fieldId:"identityFile",activeFieldId:$,onActivate:Q,placeholder:"~/.ssh/id_rsa",ariaLabel:"Identity File","data-testid":"env-edit-identity-file"})]})]}),T.adapterType==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Image"}),l.jsx(Ft,{value:String(ce.image??""),onSave:fe=>Ne("image",fe),mode:"edit",fieldId:"image",activeFieldId:$,onActivate:Q,placeholder:"(default)",ariaLabel:"Image","data-testid":"env-edit-image"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Repo"}),l.jsx(Ft,{value:String(ce.repo??""),onSave:fe=>Ne("repo",fe),mode:"edit",fieldId:"repo",activeFieldId:$,onActivate:Q,placeholder:"(none)",ariaLabel:"Repo","data-testid":"env-edit-repo"})]})]}),T.adapterType==="codespace"&&l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,children:"Codespace Name"}),l.jsx(Ft,{value:String(ce.codespaceName??""),onSave:fe=>Ne("codespaceName",fe),validate:fe=>fe.trim()===""?"Codespace name is required":void 0,mode:"edit",fieldId:"codespaceName",activeFieldId:$,onActivate:Q,placeholder:"codespace-name",ariaLabel:"Codespace Name","data-testid":"env-edit-codespace-name"})]})]})})]})}return l.jsxs("div",{className:se.container,"data-testid":"env-create-panel",children:[l.jsxs("div",{className:se.header,children:[l.jsx("div",{className:se.headerTitle,children:l.jsx("span",{className:se.badge,children:"new environment"})}),l.jsxs("div",{className:se.headerActions,children:[l.jsx("button",{onClick:ze,disabled:!me(),className:se.btnPrimary,"data-testid":"env-create-submit",children:"Create"}),l.jsx("button",{onClick:je,className:se.btnGhost,children:"Cancel"})]})]}),l.jsx("div",{className:se.body,children:l.jsxs("div",{className:se.formContent,children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-name",children:"Name"}),l.jsx("input",{id:"env-create-name",type:"text",value:N,onChange:ce=>j(ce.target.value),placeholder:"Environment name...",autoFocus:!0,className:se.nameInput,"data-testid":"env-create-name",onKeyDown:ce=>{ce.key==="Enter"&&me()&&ze()}})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-adapter",children:"Adapter Type"}),l.jsxs("select",{id:"env-create-adapter",value:w,onChange:ce=>{E(ce.target.value),ce.target.value==="codespace"&&u()},className:se.adapterSelect,"data-testid":"env-create-adapter",children:[l.jsx("option",{value:"local",children:"local"}),l.jsx("option",{value:"ssh",children:"ssh"}),l.jsx("option",{value:"docker",children:"docker"}),l.jsx("option",{value:"codespace",children:"codespace"})]})]}),w==="local"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:ce=>O(ce.target.value),placeholder:"Host (optional)...",className:se.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-port",children:"Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:C,onChange:ce=>M(ce.target.value),placeholder:"Port (optional)...",className:se.fieldInput,"data-testid":"env-create-port"})]})]}),w==="ssh"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-host",children:"Host"}),l.jsx("input",{id:"env-create-host",type:"text",value:A,onChange:ce=>O(ce.target.value),placeholder:"Host (required)...",className:se.fieldInput,"data-testid":"env-create-host"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-user",children:"User"}),l.jsx("input",{id:"env-create-user",type:"text",value:G,onChange:ce=>U(ce.target.value),placeholder:"User (optional)...",className:se.fieldInput,"data-testid":"env-create-user"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-port",children:"SSH Port"}),l.jsx("input",{id:"env-create-port",type:"number",min:hc,max:gc,value:C,onChange:ce=>M(ce.target.value),placeholder:"SSH port (optional)...",className:se.fieldInput,"data-testid":"env-create-port"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-identity",children:"Identity File"}),l.jsx("input",{id:"env-create-identity",type:"text",value:V,onChange:ce=>F(ce.target.value),placeholder:"Identity file (optional)...",className:se.fieldInput,"data-testid":"env-create-identity"})]})]}),w==="docker"&&l.jsxs(l.Fragment,{children:[l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-image",children:"Image"}),l.jsx("input",{id:"env-create-image",type:"text",value:ee,onChange:ce=>ae(ce.target.value),placeholder:"Image (optional)...",className:se.fieldInput,"data-testid":"env-create-image"})]}),l.jsxs("div",{className:se.section,children:[l.jsx("label",{className:se.label,htmlFor:"env-create-repo",children:"Repo"}),l.jsx("input",{id:"env-create-repo",type:"text",value:be,onChange:ce=>K(ce.target.value),placeholder:"Repo (optional)...",className:se.fieldInput,"data-testid":"env-create-repo"})]})]}),w==="codespace"&&l.jsx(HL,{codespaceName:re,onCodespaceNameChange:I,envName:N,onEnvNameChange:j,codespaces:d,codespaceError:m,codespaceListError:h,codespaceCreating:g,onCreateCodespace:v})]})})]})}function qL(){const{environments:n,addEnvironment:s,updateEnvironment:i,listCodespaces:o,codespaces:c,codespaceError:u,codespaceListError:d,codespaceCreating:m,createCodespace:h}=pt();return l.jsx(Ix,{mode:"new",environments:n,onAddEnvironment:s,onUpdateEnvironment:i,onListCodespaces:o,codespaces:c,codespaceError:u,codespaceListError:d,codespaceCreating:m,onCreateCodespace:h})}function GL(){const{environmentId:n}=va(),{environments:s,addEnvironment:i,updateEnvironment:o,listCodespaces:c,codespaces:u,codespaceError:d,codespaceListError:m,codespaceCreating:h,createCodespace:g}=pt();return l.jsx(Ix,{mode:"edit",environmentId:n,environments:s,onAddEnvironment:i,onUpdateEnvironment:o,onListCodespaces:c,codespaces:u,codespaceError:d,codespaceListError:m,codespaceCreating:h,onCreateCodespace:g})}const $L="_layout_11u79_1",ZL="_content_11u79_8",FL="_tabPanel_11u79_14",yr={layout:$L,content:ZL,tabPanel:FL};function KL(){const n=GI();return l.jsxs("div",{className:yr.layout,children:[l.jsx(ba,{segments:n}),l.jsx("div",{className:yr.content,children:l.jsx(Qa,{})})]})}const YL="_container_13sb6_1",JL="_envHeader_13sb6_6",XL="_envTitleRow_13sb6_10",WL="_statusDot_13sb6_16",QL="_envName_13sb6_21",eB="_statusBadge_13sb6_27",tB="_envMeta_13sb6_33",nB="_metaTag_13sb6_39",sB="_actions_13sb6_51",aB="_provisionMessage_13sb6_59",iB="_errorMessage_13sb6_64",oB="_section_13sb6_69",rB="_sectionHeader_13sb6_73",lB="_cardList_13sb6_121",cB="_card_13sb6_121",uB="_cardHeader_13sb6_138",dB="_cardName_13sb6_144",fB="_cardActions_13sb6_149",pB="_cardDescription_13sb6_154",mB="_cardMeta_13sb6_160",hB="_repoLink_13sb6_166",gB="_empty_13sb6_174",vB="_btnPrimary_13sb6_180",yB="_btnOutline_13sb6_214",bB="_btnSmall_13sb6_241",_B="_btnDanger_13sb6_267",$e={container:YL,envHeader:JL,envTitleRow:XL,statusDot:WL,envName:QL,statusBadge:eB,envMeta:tB,metaTag:nB,actions:sB,provisionMessage:aB,errorMessage:iB,section:oB,sectionHeader:rB,cardList:lB,card:cB,cardHeader:uB,cardName:dB,cardActions:fB,cardDescription:pB,cardMeta:mB,repoLink:hB,empty:gB,btnPrimary:vB,btnOutline:yB,btnSmall:bB,btnDanger:_B},xB={connected:"var(--accent-green)",sleeping:"var(--accent-yellow)",error:"var(--accent-red)",disconnected:"var(--text-tertiary)",connecting:"var(--accent-blue)"};function SB(){const{environmentId:n}=va(),s=xt(),{environments:i,workspaces:o,sessions:c,provisionStatus:u,provisionEnvironment:d,stopEnvironment:m,removeEnvironment:h,archiveWorkspace:g}=pt(),[v,b]=y.useState(!1),[_,S]=y.useState(!1),[T,N]=y.useState(void 0),j=i.find(ae=>ae.id===n);if(!n||!j)return l.jsx(Fn,{to:Xi,replace:!0});const w=o.filter(ae=>ae.environmentId===j.id),E=c.filter(ae=>ae.environmentId===j.id),A=E.reduce((ae,be)=>ae+(be.costUsd??0),0),O=xB[j.status]||"var(--text-tertiary)",C=j.status==="connected",M=j.status==="connecting",G=j.status==="disconnected"||j.status==="error",U=j.id in u?u[j.id]:void 0,V=()=>{h(j.id),b(!1),s(Xi,{replace:!0})},F=()=>{S(!1),d(j.id,!0)},ee=ae=>{g(ae),N(void 0)};return l.jsxs("div",{className:$e.container,children:[l.jsx(Ja,{isOpen:v,title:"Delete Environment?",description:`"${j.displayName||j.id}" will be permanently removed along with all its data.`,onConfirm:V,onCancel:()=>b(!1)}),l.jsx(Ja,{isOpen:_,title:"Reprovision Environment?",description:"This will kill any active session and force a fresh provision cycle. The environment will be temporarily disconnected.",confirmLabel:"Reprovision",onConfirm:F,onCancel:()=>S(!1)}),l.jsxs("div",{className:$e.envHeader,children:[l.jsxs("div",{className:$e.envTitleRow,children:[l.jsx("span",{className:$e.statusDot,style:{color:O},children:"●"}),l.jsx("h2",{className:$e.envName,children:j.displayName||j.id}),l.jsx("span",{className:$e.statusBadge,style:{color:O},children:j.status})]}),l.jsxs("div",{className:$e.envMeta,children:[l.jsxs("span",{className:$e.metaTag,children:["Adapter: ",j.adapterType]}),E.length>0&&l.jsxs("span",{className:$e.metaTag,children:[E.length," session",E.length!==1?"s":""]}),A>0&&l.jsxs("span",{className:$e.metaTag,children:["Cost: ",no(A)]})]})]}),l.jsxs("div",{className:$e.actions,children:[C&&l.jsxs(l.Fragment,{children:[l.jsx("button",{className:$e.btnPrimary,onClick:()=>s(Nb(j.id)),children:"New Chat"}),l.jsx("button",{className:$e.btnOutline,onClick:()=>m(j.id),children:"Stop"}),l.jsx("button",{className:$e.btnOutline,onClick:()=>S(!0),disabled:U!==void 0,"data-testid":"env-reprovision-btn",children:"Reprovision"})]}),G&&l.jsx("button",{className:$e.btnPrimary,onClick:()=>d(j.id),children:j.status==="error"?"Retry":"Connect"}),M&&U!==void 0&&l.jsx("span",{className:$e.provisionMessage,children:U.message}),j.status==="error"&&(U==null?void 0:U.stage)==="error"&&l.jsx("span",{className:$e.errorMessage,children:U.message}),l.jsx("button",{className:$e.btnOutline,onClick:()=>s(o2(j.id)),"data-testid":"env-edit-btn",children:"Edit Config"}),l.jsx("button",{className:$e.btnDanger,onClick:()=>b(!0),children:"Delete"})]}),l.jsxs("div",{className:$e.section,children:[l.jsxs("div",{className:$e.sectionHeader,children:[l.jsx("h3",{children:"Workspaces"}),l.jsx("button",{className:$e.btnPrimary,onClick:()=>s(`${Cb}?environment=${encodeURIComponent(j.id)}`),"data-testid":"workspace-create-button",children:"+ New Workspace"})]}),w.length===0&&l.jsx("p",{className:$e.empty,children:"No workspaces yet. Create one to get started."}),l.jsx("div",{className:$e.cardList,children:w.map(ae=>l.jsx(TB,{workspace:ae,confirmArchiveId:T,onOpen:()=>s(Ji(ae.id,j.id)),onArchive:()=>N(ae.id),onConfirmArchive:()=>ee(ae.id),onCancelArchive:()=>N(void 0)},ae.id))})]})]})}function TB({workspace:n,confirmArchiveId:s,onOpen:i,onArchive:o,onConfirmArchive:c,onCancelArchive:u}){const d=s===n.id,m=n.repoUrl&&/^https?:\/\//.test(n.repoUrl);return l.jsxs("div",{className:$e.card,"data-testid":"workspace-card",children:[l.jsxs("div",{className:$e.cardHeader,children:[l.jsx("strong",{className:$e.cardName,children:n.name}),l.jsxs("div",{className:$e.cardActions,children:[l.jsx("button",{className:$e.btnSmall,onClick:i,children:"Open"}),d?l.jsxs(l.Fragment,{children:[l.jsx("button",{className:$e.btnDanger,onClick:c,children:"Confirm"}),l.jsx("button",{className:$e.btnSmall,onClick:u,children:"Cancel"})]}):l.jsx("button",{className:$e.btnSmall,onClick:o,children:"Archive"})]})]}),n.description&&l.jsx("p",{className:$e.cardDescription,children:n.description}),n.repoUrl&&l.jsx("div",{className:$e.cardMeta,children:m?l.jsx("a",{href:n.repoUrl,target:"_blank",rel:"noopener noreferrer",className:$e.repoLink,children:n.repoUrl}):l.jsx("span",{children:n.repoUrl})})]})}const kB={credentials:"Credentials",personas:"Personas",appearance:"Appearance",about:"About",shortcuts:"Shortcuts"};function wB(){const s=It().pathname.replace(/^\/settings\/?/,"").split("/")[0],i=kB[s],o=qI(i);return l.jsxs("div",{className:yr.layout,children:[l.jsx(ba,{segments:o}),l.jsx("div",{className:yr.content,children:l.jsx("div",{className:yr.tabPanel,children:l.jsx(Qa,{})},s)})]})}const NB="_section_1ingb_14",jB="_sectionTitle_1ingb_26",CB="_sectionDescription_1ingb_35",EB="_tokenList_1ingb_48",AB="_tokenRow_1ingb_55",DB="_tokenBadge_1ingb_68",RB="_tokenName_1ingb_83",MB="_tokenTarget_1ingb_90",OB="_deleteButton_1ingb_99",IB="_addForm_1ingb_113",LB="_formRow_1ingb_119",BB="_input_1ingb_125",UB="_select_1ingb_155",zB="_addButton_1ingb_187",PB="_emptyStateInfo_1ingb_221",VB="_themeOptions_1ingb_229",HB="_themeOption_1ingb_229",qB="_themeOptionSelected_1ingb_254",GB="_themeOptionHeader_1ingb_259",$B="_themeOptionLabel_1ingb_266",ZB="_themeOptionDesc_1ingb_273",FB="_variantToggle_1ingb_279",KB="_variantButton_1ingb_286",YB="_variantActive_1ingb_305",JB="_themeSwatches_1ingb_311",XB="_themeSwatch_1ingb_311",WB="_systemToggle_1ingb_325",QB="_systemToggleHint_1ingb_341",e8="_themeActive_1ingb_348",t8="_aboutGrid_1ingb_354",n8="_aboutItem_1ingb_360",s8="_aboutLabel_1ingb_373",a8="_aboutValue_1ingb_379",i8="_aboutDot_1ingb_387",o8="_aboutDotConnected_1ingb_394",r8="_aboutDotDisconnected_1ingb_398",he={section:NB,sectionTitle:jB,sectionDescription:CB,tokenList:EB,tokenRow:AB,tokenBadge:DB,tokenName:RB,tokenTarget:MB,deleteButton:OB,addForm:IB,formRow:LB,input:BB,select:UB,addButton:zB,emptyStateInfo:PB,themeOptions:VB,themeOption:HB,themeOptionSelected:qB,themeOptionHeader:GB,themeOptionLabel:$B,themeOptionDesc:ZB,variantToggle:FB,variantButton:KB,variantActive:YB,themeSwatches:JB,themeSwatch:XB,systemToggle:WB,systemToggleHint:QB,themeActive:e8,aboutGrid:t8,aboutItem:n8,aboutLabel:s8,aboutValue:a8,aboutDot:i8,aboutDotConnected:o8,aboutDotDisconnected:r8},l8=[{key:"claude",label:"Claude",description:"Forward Claude credentials for AI agent access.",options:[{value:"off",label:"Off"},{value:"subscription",label:"Subscription"},{value:"api_key",label:"API Key"}]},{key:"github",label:"GitHub",description:"Forward GITHUB_TOKEN and GH_TOKEN for git operations.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"copilot",label:"Copilot",description:"Forward Copilot tokens (COPILOT_GITHUB_TOKEN, CLI config).",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"codex",label:"Codex",description:"Forward OPENAI_API_KEY for Codex/OpenAI access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]},{key:"goose",label:"Goose",description:"Forward Goose config and API keys for Goose agent access.",options:[{value:"off",label:"Off"},{value:"on",label:"On"}]}];function c8({credentialProviders:n,onUpdateCredentialProviders:s}){const i=(o,c)=>{const u={...n};o==="claude"?u.claude=c:u[o]=c,s(u)};return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Credential Providers"}),l.jsx("p",{className:he.sectionDescription,children:"Enable providers to automatically forward credentials to environments at task start. Credentials are read fresh from the host each time."}),l.jsx("div",{className:he.tokenList,children:l8.map(o=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenName,children:o.label}),l.jsx("span",{className:he.tokenTarget,children:o.description}),l.jsx("select",{className:he.select,value:n[o.key],onChange:c=>i(o.key,c.target.value),children:o.options.map(c=>l.jsx("option",{value:c.value,children:c.label},c.value))})]},o.key))})]})}const u8=[{value:"env_var",label:"Environment Variable"},{value:"file",label:"File"}];function d8({tokens:n,onSetToken:s,onDeleteToken:i}){const{showToast:o}=Ls(),[c,u]=y.useState(""),[d,m]=y.useState(""),[h,g]=y.useState("env_var"),[v,b]=y.useState(""),[_,S]=y.useState(null),T=w=>{if(w.preventDefault(),!c||!d)return;const E=h==="env_var"?v||c.toUpperCase()+"_TOKEN":"";s(c,d,h,E,h==="file"?v:""),o("Token saved successfully","success"),u(""),m(""),b("")},N=w=>{S(w)},j=()=>{_&&(i(_),o("Token deleted","info")),S(null)};return l.jsxs(l.Fragment,{children:[l.jsx(Ja,{isOpen:_!==null,title:"Delete Token?",description:_?`"${_}" will be permanently removed.`:void 0,onConfirm:j,onCancel:()=>S(null)}),l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Tokens"}),l.jsx("p",{className:he.sectionDescription,children:"API tokens are auto-pushed to environments when set or updated. Values are write-only."}),n.length===0?l.jsx("div",{className:he.emptyStateInfo,children:"Add your first API token to enable service integrations."}):l.jsx("div",{className:he.tokenList,children:n.map(w=>l.jsxs("div",{className:he.tokenRow,children:[l.jsx("span",{className:he.tokenBadge,children:w.tokenType}),l.jsx("span",{className:he.tokenName,children:w.name}),l.jsx("span",{className:he.tokenTarget,children:w.tokenType==="env_var"?w.envVar:w.filePath}),l.jsx("button",{className:he.deleteButton,onClick:()=>N(w.name),title:`Delete ${w.name}`,children:"×"})]},w.name))}),l.jsxs("form",{className:he.addForm,onSubmit:T,children:[l.jsxs("div",{className:he.formRow,children:[l.jsx("input",{className:he.input,type:"text",placeholder:"Token name",value:c,onChange:w=>u(w.target.value)}),l.jsx("input",{className:he.input,type:"password",placeholder:"Value",value:d,onChange:w=>m(w.target.value)})]}),l.jsxs("div",{className:he.formRow,children:[l.jsx("select",{className:he.select,value:h,onChange:w=>g(w.target.value),children:u8.map(w=>l.jsx("option",{value:w.value,children:w.label},w.value))}),l.jsx("input",{className:he.input,type:"text",placeholder:h==="env_var"?"Env var name (e.g. API_TOKEN)":"File path (e.g. /home/user/.token)",value:v,onChange:w=>b(w.target.value)}),l.jsx("button",{className:he.addButton,type:"submit",children:"Add Token"})]})]})]})]})}function f8(){const{tokens:n,setToken:s,deleteToken:i,credentialProviders:o,updateCredentialProviders:c}=pt();return l.jsxs(l.Fragment,{children:[l.jsx(c8,{credentialProviders:o,onUpdateCredentialProviders:c}),l.jsx(d8,{tokens:n,onSetToken:s,onDeleteToken:i})]})}const p8="_container_10efq_1",m8="_header_10efq_7",h8="_form_10efq_19",g8="_formActions_10efq_87",v8="_editableSection_10efq_94",y8="_list_10efq_105",b8="_card_10efq_111",_8="_cardHeader_10efq_125",x8="_cardTitle_10efq_135",S8="_defaultBadge_10efq_141",T8="_cardActions_10efq_155",k8="_description_10efq_160",w8="_meta_10efq_166",N8="_empty_10efq_212",j8="_typeToggle_10efq_348",C8="_typeBadge_10efq_362",E8="_scriptEditor_10efq_376",A8="_optional_10efq_383",gt={container:p8,header:m8,form:h8,formActions:g8,editableSection:v8,list:y8,card:b8,cardHeader:_8,cardTitle:x8,defaultBadge:S8,cardActions:T8,description:k8,meta:w8,empty:N8,typeToggle:j8,typeBadge:C8,scriptEditor:E8,optional:A8};function D8({personas:n,appDefaultPersonaId:s,onDeletePersona:i,onSetAppDefaultPersonaId:o,onNavigateToNew:c,onNavigateToPersona:u}){const[d,m]=y.useState(null),h=d?n.find(v=>v.id===d):void 0,g=async v=>{await i(v),m(null)};return l.jsxs("div",{className:gt.container,children:[l.jsxs("div",{className:gt.header,children:[l.jsx("h2",{children:"Personas"}),l.jsx(As,{variant:"primary",size:"md",onClick:c,"data-testid":"persona-new-button",children:"+ New Persona"})]}),n.length===0?l.jsx("p",{className:gt.empty,children:"No personas yet. Create one to get started."}):l.jsx("div",{className:gt.list,children:n.map(v=>{const b=s===v.id,_=v.type==="script";return l.jsxs("div",{className:gt.card,"data-testid":`persona-card-${v.id}`,onClick:()=>u(v.id),role:"button",tabIndex:0,onKeyDown:S=>{S.currentTarget===S.target&&(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),u(v.id))},children:[l.jsxs("div",{className:gt.cardHeader,children:[l.jsxs("span",{className:gt.cardTitle,children:[l.jsx("strong",{children:v.name}),l.jsx("span",{className:gt.typeBadge,"data-testid":`persona-type-badge-${v.id}`,children:_?"Script":"Agent"}),b&&l.jsx("span",{className:gt.defaultBadge,"data-testid":`persona-default-badge-${v.id}`,children:"App Default"})]}),l.jsxs("div",{className:gt.cardActions,onClick:S=>S.stopPropagation(),children:[!b&&l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>{o(v.id).catch(()=>{})},"data-testid":`persona-set-default-${v.id}`,title:"Set as app default persona",children:"Set Default"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>u(v.id),children:"Edit"}),l.jsx(As,{variant:"ghost",size:"sm",onClick:()=>m(v.id),"data-testid":`persona-delete-${v.id}`,children:"Delete"})]})]}),v.description&&l.jsx("p",{className:gt.description,children:v.description}),l.jsxs("div",{className:gt.meta,children:[v.runtime&&l.jsxs("span",{children:["Runtime: ",v.runtime]}),v.model&&l.jsxs("span",{children:["Model: ",v.model]}),v.maxTurns>0&&l.jsxs("span",{children:["Max turns: ",v.maxTurns]})]})]},v.id)})}),l.jsx(Ja,{isOpen:d!==null,title:"Delete Persona?",description:`"${(h==null?void 0:h.name)??""}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:()=>{d&&g(d).catch(()=>{})},onCancel:()=>m(null)})]})}function R8(){const{personas:n,deletePersona:s,appDefaultPersonaId:i,setAppDefaultPersonaId:o}=pt(),{showToast:c}=Ls(),u=xt();return l.jsx(D8,{personas:n,appDefaultPersonaId:i,onDeletePersona:async d=>{try{await s(d)}catch(m){throw console.error("Failed to delete persona",{personaId:d,error:m}),c("Failed to delete persona","error"),m}},onSetAppDefaultPersonaId:async d=>{try{await o(d)}catch(m){console.error("Failed to set app default persona ID",{personaId:d,error:m}),c("Failed to set app default persona","error")}},onNavigateToNew:()=>u(l2),onNavigateToPersona:d=>u(jb(d))})}const M8="_container_uy08i_1",O8="_header_uy08i_7",I8="_count_uy08i_13",L8="_presets_uy08i_18",B8="_presetButton_uy08i_24",U8="_filterInput_uy08i_41",z8="_groups_uy08i_53",P8="_group_uy08i_53",V8="_groupHeader_uy08i_68",H8="_groupName_uy08i_77",q8="_groupCount_uy08i_81",G8="_toolList_uy08i_87",$8="_toolItem_uy08i_95",Z8="_toolName_uy08i_103",en={container:M8,header:O8,count:I8,presets:L8,presetButton:B8,filterInput:U8,groups:z8,group:P8,groupHeader:V8,groupName:H8,groupCount:q8,toolList:G8,toolItem:$8,toolName:Z8},F8=(()=>{const n=new Map;for(const s of ib){const i=s==="get_version_status"?"version":s.split("_")[0];n.has(i)||n.set(i,[]),n.get(i).push(s)}return[...n.entries()].sort(([s],[i])=>s.localeCompare(i)).map(([s,i])=>({group:s,tools:i.sort()}))})(),K8=[{name:"default",label:"Default",tools:ob},{name:"worker",label:"Worker",tools:mT},{name:"orchestrator",label:"Orchestrator",tools:hT},{name:"admin",label:"Admin",tools:gT}];function Wy({selectedTools:n,onChange:s,disabled:i}){const[o,c]=y.useState(""),u=y.useMemo(()=>new Set(n),[n]),d=y.useCallback(v=>{if(i)return;const b=new Set(u);b.has(v)?b.delete(v):b.add(v),s([...b].sort())},[u,s,i]),m=y.useCallback((v,b)=>{if(i)return;const _=new Set(u);for(const S of v)b?_.delete(S):_.add(S);s([..._].sort())},[u,s,i]),h=y.useCallback(v=>{i||s([...v].sort())},[s,i]),g=o.toLowerCase();return l.jsxs("div",{className:en.container,"data-testid":"mcp-tool-selector",children:[l.jsx("div",{className:en.header,children:l.jsx("span",{className:en.count,children:n.length===0?`Using default (${ob.length} tools)`:`${n.length} of ${ib.size} tools selected`})}),l.jsxs("div",{className:en.presets,"data-testid":"mcp-tool-presets",children:[K8.map(v=>l.jsx("button",{type:"button",className:en.presetButton,disabled:i,onClick:()=>h(v.tools),"data-testid":`preset-${v.name}`,children:v.label},v.name)),l.jsx("button",{type:"button",className:en.presetButton,disabled:i,onClick:()=>s([]),"data-testid":"preset-clear",children:"Clear"})]}),l.jsx("input",{type:"text",className:en.filterInput,placeholder:"Filter tools...",value:o,onChange:v=>c(v.target.value),disabled:i,"data-testid":"mcp-tool-filter"}),l.jsx("div",{className:en.groups,children:F8.map(({group:v,tools:b})=>{const _=g?b.filter(T=>T.toLowerCase().includes(g)):b;if(_.length===0)return null;const S=_.every(T=>u.has(T));return l.jsxs("div",{className:en.group,"data-testid":`tool-group-${v}`,children:[l.jsxs("label",{className:en.groupHeader,children:[l.jsx("input",{type:"checkbox",checked:S,onChange:()=>m(_,S),disabled:i,"data-testid":`group-toggle-${v}`}),l.jsx("span",{className:en.groupName,children:v}),l.jsxs("span",{className:en.groupCount,children:["(",_.filter(T=>u.has(T)).length,"/",_.length,")"]})]}),l.jsx("div",{className:en.toolList,children:_.map(T=>l.jsxs("label",{className:en.toolItem,children:[l.jsx("input",{type:"checkbox",checked:u.has(T),onChange:()=>d(T),disabled:i,"data-testid":`tool-${T}`}),l.jsx("span",{className:en.toolName,children:T})]},T))})]},v)})})]})}const Qy=[{value:"claude-code",label:"claude-code"},{value:"codex",label:"codex"},{value:"copilot",label:"copilot"},{value:"goose",label:"goose"},{value:"stub",label:"stub"},{value:"claude-code-acp",label:"claude-code-acp (experimental)"},{value:"codex-acp",label:"codex-acp (experimental)"},{value:"copilot-acp",label:"copilot-acp (experimental)"}],eb=[{value:"genaiscript",label:"genaiscript"}],Y8="0";function tb(){const{personaId:n}=va(),s=xt(),{showToast:i}=Ls(),{personas:o,createPersona:c,updatePersona:u,deletePersona:d,appDefaultPersonaId:m,setAppDefaultPersonaId:h}=pt(),g=n===void 0,v=g?void 0:o.find(_=>_.id===n);if(!g&&o.length>0&&!v)return l.jsx(Fn,{to:sf,replace:!0});const b=[{label:"Settings",url:Yi},{label:"Personas",url:sf},{label:g?"New Persona":(v==null?void 0:v.name)??"Persona",url:void 0}];return l.jsxs("div",{className:gt.container,children:[l.jsx(ba,{segments:b}),l.jsx(J8,{existing:v,isNew:g,appDefaultPersonaId:m,onCreatePersona:c,onUpdatePersona:u,onDeletePersona:d,onSetAppDefaultPersonaId:h,onDone:()=>{s(sf)},showToast:i})]})}function J8({existing:n,isNew:s,appDefaultPersonaId:i,onCreatePersona:o,onUpdatePersona:c,onDeletePersona:u,onSetAppDefaultPersonaId:d,onDone:m,showToast:h}){const g=xt(),[v,b]=y.useState((n==null?void 0:n.name)??""),[_,S]=y.useState((n==null?void 0:n.description)??""),[T,N]=y.useState((n==null?void 0:n.systemPrompt)??""),[j,w]=y.useState((n==null?void 0:n.runtime)??"claude-code"),[E,A]=y.useState((n==null?void 0:n.model)??"sonnet"),[O,C]=y.useState((n==null?void 0:n.maxTurns)??0),[M,G]=y.useState((n==null?void 0:n.type)==="script"?"script":"agent"),[U,V]=y.useState((n==null?void 0:n.script)??""),[F,ee]=y.useState((n==null?void 0:n.allowedMcpTools)??[]),[ae,be]=y.useState(!1),[K,re]=y.useState(null),[I,$]=y.useState(!!s);y.useEffect(()=>{if(!s&&n&&!I){$(!0),b(n.name),S(n.description),N(n.systemPrompt);const W=n.type==="script"?"script":"agent";w(W==="script"?n.runtime||"genaiscript":n.runtime),A(n.model),C(n.maxTurns),G(W),V(n.script||""),ee(n.allowedMcpTools)}},[s,n,I]);const Q=W=>{G(W),W==="script"?w("genaiscript"):j==="genaiscript"&&w("claude-code")},de=!s&&n===void 0,me=v.trim().length>0&&!de&&T.trim().length>0&&(M==="script"?U.trim().length>0:!!j&&!!E),ze=s&&me,je=!s&&i===(n==null?void 0:n.id),Ne=!s&&n&&!je&&M==="agent"&&!!j&&!!E,Ae=(W,Te)=>{if(!W.trim())return`${Te} is required`},ce=W=>{if(W.preventDefault(),!(de||!me)){if(n){c(n.id,v,_,T,j,E,O,M,U).then(()=>{h("Persona updated","success"),m()},()=>{h("Failed to save persona","error")});return}o(v,_,T,j,E,O,M,U,F).then(Te=>{h("Persona created","success"),g(jb(Te.id),{replace:!0})},()=>{h("Failed to save persona","error")})}},fe=()=>{n&&u(n.id).then(()=>{h("Persona deleted","success"),m()},()=>{h("Failed to delete persona","error")})},pe=async(W,Te,un,Fe)=>W().then(()=>{Te(),h(un,"success")},()=>{h(Fe,"error")}),Re=(W,Te)=>{if(!n)return;const un=W==="type"?String(Te):M,Fe=W==="runtime"?String(Te):W==="type"?String(Te)==="script"?"genaiscript":j==="genaiscript"?"claude-code":j:j,Kn=W==="model"?String(Te):E,Yn=W==="maxTurns"?Number(Te):O,zn=W==="systemPrompt"?String(Te):T,Jn=W==="script"?String(Te):U;pe(()=>c(n.id,W==="name"?String(Te):v,W==="description"?String(Te):_,zn,Fe,Kn,Yn,un,Jn),()=>{if(W==="type"){const Tn=String(Te)==="script"?"script":"agent";G(Tn),w(Fe)}W==="runtime"&&w(String(Te)),W==="name"&&b(String(Te)),W==="description"&&S(String(Te)),W==="systemPrompt"&&N(String(Te)),W==="model"&&A(String(Te)),W==="maxTurns"&&C(Number(Te)),W==="script"&&V(String(Te))},"Persona updated","Failed to update persona").catch(()=>{})},Lt=W=>{ce(W)},te=()=>{n&&d(n.id).then(()=>{h("Set as app default","success")},()=>{h("Failed to set app default","error")})};return l.jsxs(l.Fragment,{children:[de?l.jsxs("div",{className:gt.form,children:[l.jsx("h3",{children:"Edit Persona"}),l.jsx("p",{children:"Loading persona..."})]}):s?l.jsxs("form",{onSubmit:Lt,className:gt.form,children:[l.jsx("h3",{children:"Create Persona"}),l.jsxs("div",{className:gt.typeToggle,"data-testid":"persona-type-toggle",children:[l.jsxs("label",{children:[l.jsx("input",{type:"radio",name:"personaType",value:"agent",checked:M==="agent",onChange:()=>Q("agent")}),"Agent"]}),l.jsxs("label",{children:[l.jsx("input",{type:"radio",name:"personaType",value:"script",checked:M==="script",onChange:()=>Q("script")}),"Script"]})]}),l.jsxs("label",{children:["Name",l.jsx("input",{type:"text",value:v,onChange:W=>b(W.target.value),placeholder:M==="script"?"e.g. Nightly Report":"e.g. Frontend Engineer",required:!0,"data-testid":"persona-detail-name"})]}),l.jsxs("label",{children:["Description",l.jsx("input",{type:"text",value:_,onChange:W=>S(W.target.value),placeholder:"Brief description...","data-testid":"persona-detail-description"})]}),l.jsxs("label",{children:["Runtime",l.jsx("select",{value:j,onChange:W=>w(W.target.value),"data-testid":"persona-runtime-select",children:(M==="script"?eb:Qy).map(W=>l.jsx("option",{value:W.value,children:W.label},W.value))})]}),M==="agent"&&l.jsxs(l.Fragment,{children:[l.jsxs("label",{children:["Model",l.jsx("input",{type:"text",value:E,onChange:W=>A(W.target.value),placeholder:"e.g. sonnet","data-testid":"persona-detail-model"})]}),l.jsxs("label",{children:["Max Turns",l.jsx("input",{type:"number",value:O,onChange:W=>C(parseInt(W.target.value,10)||0),min:0,"data-testid":"persona-detail-max-turns"})]}),l.jsxs("label",{children:["System Prompt",l.jsx("textarea",{value:T,onChange:W=>N(W.target.value),placeholder:"You are a senior frontend engineer...",rows:10,required:!0,"data-testid":"persona-detail-prompt"})]})]}),M==="script"&&l.jsxs(l.Fragment,{children:[l.jsxs("label",{children:["Model ",l.jsx("span",{className:gt.optional,children:"(optional)"}),l.jsx("input",{type:"text",value:E,onChange:W=>A(W.target.value),placeholder:"e.g. sonnet (leave empty for script-only)","data-testid":"persona-detail-model"})]}),l.jsxs("label",{children:["System Prompt",l.jsx("textarea",{value:T,onChange:W=>N(W.target.value),placeholder:"Context for the script...",rows:4,required:!0,"data-testid":"persona-detail-prompt"})]}),l.jsxs("label",{children:["Script",l.jsx("textarea",{value:U,onChange:W=>V(W.target.value),placeholder:`script({ model: "openai:gpt-4o" });
489
-
490
- const grackle = await host.mcpServer({
491
- id: "grackle",
492
- url: env.vars.GRACKLE_MCP_URL,
493
- });
494
-
495
- $\`Summarize the current tasks.\`;`,rows:20,className:gt.scriptEditor,required:!0,"data-testid":"persona-script-editor"})]})]}),M==="agent"&&l.jsxs("div",{children:[l.jsx("label",{children:"Allowed MCP Tools"}),l.jsx(Wy,{selectedTools:F,onChange:ee})]}),l.jsxs("div",{className:gt.formActions,children:[l.jsx(As,{type:"submit",variant:"primary",size:"md",disabled:!ze,"data-testid":"persona-detail-save",children:"Create"}),l.jsx(As,{type:"button",variant:"outline",size:"md",onClick:m,"data-testid":"persona-detail-cancel",children:"Cancel"})]})]}):n?l.jsxs("div",{className:gt.form,children:[l.jsx("h3",{children:"Edit Persona"}),l.jsxs("div",{className:gt.formActions,children:[l.jsx(As,{type:"button",variant:"outline",size:"md",onClick:m,"data-testid":"persona-detail-cancel",children:"Back to Personas"}),Ne&&l.jsx(As,{type:"button",variant:"ghost",size:"md",onClick:te,"data-testid":"persona-detail-set-default",children:"Set as App Default"}),je&&l.jsx("span",{className:gt.defaultBadge,children:"App Default"}),l.jsx(As,{type:"button",variant:"danger",size:"md",onClick:()=>be(!0),"data-testid":"persona-detail-delete",children:"Delete"})]}),l.jsxs("div",{className:gt.editableSection,children:[l.jsxs("label",{children:["Name",l.jsx(Ft,{value:v,onSave:W=>{Re("name",W)},validate:W=>Ae(W,"Name"),fieldId:"persona-name",activeFieldId:K,onActivate:re,ariaLabel:"Persona name","data-testid":"persona-detail-name"})]}),l.jsxs("label",{children:["Description",l.jsx(Ft,{value:_,onSave:W=>{Re("description",W)},fieldId:"persona-description",activeFieldId:K,onActivate:re,placeholder:"Brief description...",ariaLabel:"Persona description","data-testid":"persona-detail-description"})]}),l.jsxs("label",{children:["Type",l.jsx(jc,{value:M,onSave:W=>{Re("type",W)},options:[{value:"agent",label:"Agent"},{value:"script",label:"Script"}],fieldId:"persona-type",activeFieldId:K,onActivate:re,ariaLabel:"Persona type","data-testid":"persona-type-toggle"})]}),l.jsxs("label",{children:["Runtime",l.jsx(jc,{value:j,onSave:W=>{Re("runtime",W)},options:M==="script"?eb:Qy,fieldId:"persona-runtime",activeFieldId:K,onActivate:re,ariaLabel:"Persona runtime","data-testid":"persona-runtime"})]}),l.jsxs("label",{children:["Model",M==="script"?" (optional)":"",l.jsx(Ft,{value:E,onSave:W=>{Re("model",W)},validate:M==="agent"?W=>Ae(W,"Model"):void 0,fieldId:"persona-model",activeFieldId:K,onActivate:re,placeholder:M==="script"?"e.g. sonnet (leave empty for script-only)":"e.g. sonnet",ariaLabel:"Persona model","data-testid":"persona-detail-model"})]}),l.jsxs("label",{children:["Max Turns",l.jsx(Ft,{value:String(O),onSave:W=>{Re("maxTurns",parseInt(W,10)||0)},validate:W=>/^\d+$/.test(W.trim())?void 0:"Max Turns must be a non-negative integer",fieldId:"persona-max-turns",activeFieldId:K,onActivate:re,placeholder:Y8,ariaLabel:"Persona max turns","data-testid":"persona-detail-max-turns"})]}),l.jsxs("label",{children:["System Prompt",l.jsx(rp,{value:T,onSave:W=>{Re("systemPrompt",W)},validate:W=>Ae(W,"System Prompt"),fieldId:"persona-system-prompt",activeFieldId:K,onActivate:re,placeholder:M==="script"?"Context for the script...":"You are a senior frontend engineer...",ariaLabel:"Persona system prompt","data-testid":"persona-detail-prompt"})]}),M==="script"&&l.jsxs("label",{children:["Script",l.jsx(rp,{value:U,onSave:W=>{Re("script",W)},validate:W=>Ae(W,"Script"),fieldId:"persona-script",activeFieldId:K,onActivate:re,placeholder:`script({ model: "openai:gpt-4o" });
496
-
497
- const grackle = await host.mcpServer({
498
- id: "grackle",
499
- url: env.vars.GRACKLE_MCP_URL,
500
- });
501
-
502
- $\`Summarize the current tasks.\`;`,ariaLabel:"Persona script","data-testid":"persona-script-editor"})]}),M==="agent"&&l.jsxs("div",{children:[l.jsx("label",{children:"Allowed MCP Tools"}),l.jsx(Wy,{selectedTools:F,onChange:W=>{ee(W);const Te=W.length===0?["__clear__"]:W;pe(()=>c(n.id,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Te),()=>{},"MCP tools updated","Failed to update MCP tools").catch(()=>{})}})]})]}),!Ne&&!je&&l.jsx("p",{style:{fontSize:"var(--font-size-xs)",color:"var(--text-tertiary)",marginTop:"var(--space-xs)"},children:"Only agent personas with a runtime and model can be set as app default."})]}):null,l.jsx(Ja,{isOpen:ae,title:"Delete Persona?",description:`"${n==null?void 0:n.name}" will be permanently removed.`,confirmLabel:"Delete",onConfirm:fe,onCancel:()=>be(!1)})]})}function X8(){const{themeId:n,resolvedThemeId:s,setTheme:i,preferSystem:o,setPreferSystem:c}=Pb();return l.jsxs("section",{className:he.section,children:[l.jsx("h3",{className:he.sectionTitle,children:"Appearance"}),l.jsx("p",{className:he.sectionDescription,children:"Choose how Grackle looks across the app."}),l.jsx("div",{className:he.themeOptions,children:Mc.filter(u=>!u.hidden).map(u=>{const d=!!(u.variantLightId&&u.variantDarkId),m=d?n===u.id||n===u.variantLightId||n===u.variantDarkId:n===u.id,h=d&&s===u.variantLightId;return l.jsxs("button",{type:"button",className:`${he.themeOption} ${m?he.themeOptionSelected:""}`,"aria-pressed":m,onClick:()=>i(u.id),children:[l.jsxs("span",{className:he.themeOptionHeader,children:[l.jsxs("span",{children:[l.jsx("span",{className:he.themeOptionLabel,children:u.label}),l.jsx("span",{className:he.themeOptionDesc,children:u.description})]}),d&&l.jsxs("span",{className:he.variantToggle,children:[l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantLightId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantLightId))},"aria-label":"Light variant","aria-pressed":m&&h,children:"☼"}),l.jsx("span",{role:"button",tabIndex:0,className:`${he.variantButton} ${m&&!h?he.variantActive:""}`,onClick:g=>{g.stopPropagation(),c(!1),i(u.variantDarkId)},onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&(g.preventDefault(),g.stopPropagation(),c(!1),i(u.variantDarkId))},"aria-label":"Dark variant","aria-pressed":m&&!h,children:"☾"})]})]}),u.swatches&&l.jsx("span",{className:he.themeSwatches,children:u.swatches.map((g,v)=>l.jsx("span",{className:he.themeSwatch,style:{background:g}},v))})]},u.id)})}),l.jsxs("label",{className:he.systemToggle,children:[l.jsx("input",{type:"checkbox",checked:o,onChange:u=>c(u.target.checked)}),l.jsx("span",{children:"Match system light/dark preference"})]}),l.jsx("p",{className:he.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),l.jsxs("p",{className:he.themeActive,children:["Active theme: ",l.jsx("strong",{children:s})]})]})}function W8(){return l.jsx(X8,{})}function Q8({connected:n,environments:s,sessions:i}){const o=s.filter(d=>d.status==="connected").length,c=s.length,u=i.filter(d=>["running","idle"].includes(d.status)).length;return l.jsxs("section",{className:he.section,"data-testid":"about-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"About"}),l.jsx("p",{className:he.sectionDescription,children:"Connection status and application information."}),l.jsxs("div",{className:he.aboutGrid,children:[l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Connection"}),l.jsxs("span",{className:he.aboutValue,children:[l.jsx("span",{className:`${he.aboutDot} ${n?he.aboutDotConnected:he.aboutDotDisconnected}`}),n?"Connected":"Disconnected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Environments"}),l.jsxs("span",{className:he.aboutValue,children:[o,"/",c," connected"]})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Active Sessions"}),l.jsx("span",{className:he.aboutValue,children:u})]}),l.jsxs("div",{className:he.aboutItem,children:[l.jsx("span",{className:he.aboutLabel,children:"Version"}),l.jsx("span",{className:he.aboutValue,children:"0.83.0"})]})]})]})}function eU({currentVersion:n,latestVersion:s,updateAvailable:i,isDocker:o}){if(!i)return l.jsx(l.Fragment,{});const c=o?"docker pull ghcr.io/nick-pape/grackle:latest && docker restart grackle":`npm install -g @grackle-ai/cli@${s}`;return l.jsx("div",{"data-testid":"update-banner",children:l.jsxs($D,{variant:"info",dismissible:!0,children:[l.jsxs("strong",{children:["Grackle v",s]})," is available (you have v",n,")."," ","Run: ",l.jsx("code",{children:c})]})})}function tU(){const[n,s]=y.useState(void 0);return y.useEffect(()=>{let i=!1;return we.getVersionStatus({}).then(o=>{i||s({currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker})},()=>{}),()=>{i=!0}},[]),n}function nU(){const{connected:n,environments:s,sessions:i}=pt(),o=tU();return l.jsxs(l.Fragment,{children:[o&&l.jsx(eU,{currentVersion:o.currentVersion,latestVersion:o.latestVersion,updateAvailable:o.updateAvailable,isDocker:o.isDocker}),l.jsx(Q8,{connected:n,environments:s,sessions:i})]})}const sU="_group_1iprv_1",aU="_groupTitle_1iprv_8",iU="_shortcutList_1iprv_17",oU="_shortcutRow_1iprv_23",rU="_keys_1iprv_36",lU="_kbd_1iprv_43",cU="_description_1iprv_60",qa={group:sU,groupTitle:aU,shortcutList:iU,shortcutRow:oU,keys:rU,kbd:lU,description:cU},uU=[{title:"Global",shortcuts:[{keys:["?"],description:"Open keyboard shortcuts reference"},{keys:["N"],description:"Create a new task"},{keys:["Escape"],description:"Close dialog or cancel editing"}]},{title:"Task Page",shortcuts:[{keys:["1"],description:"Switch to Overview tab"},{keys:["2"],description:"Switch to Stream tab"},{keys:["3"],description:"Switch to Findings tab"}]},{title:"Workspace Page",shortcuts:[{keys:["1"],description:"Switch to Graph view"},{keys:["2"],description:"Switch to Board view"},{keys:["3"],description:"Switch to Tasks view"}]},{title:"Navigation Lists",shortcuts:[{keys:["←"],description:"Previous tab (horizontal nav)"},{keys:["→"],description:"Next tab (horizontal nav)"},{keys:["↑"],description:"Previous item (vertical nav)"},{keys:["↓"],description:"Next item (vertical nav)"},{keys:["J"],description:"Next item (alias for arrow down/right)"},{keys:["K"],description:"Previous item (alias for arrow up/left)"},{keys:["Home"],description:"Jump to first item"},{keys:["End"],description:"Jump to last item"}]},{title:"Editing",shortcuts:[{keys:["Enter"],description:"Activate / save inline edit"},{keys:["Space"],description:"Activate button or start editing"},{keys:["Escape"],description:"Cancel edit and discard changes"}]},{title:"Chat",shortcuts:[{keys:["Enter"],description:"Send message (when input is focused)"}]}];function dU(){return l.jsxs("section",{className:he.section,"data-testid":"keyboard-shortcuts-panel",children:[l.jsx("h3",{className:he.sectionTitle,children:"Keyboard Shortcuts"}),l.jsx("p",{className:he.sectionDescription,children:"Keyboard shortcuts for navigating and interacting with Grackle. Global shortcuts are suppressed while typing in text fields."}),uU.map(n=>l.jsxs("div",{className:qa.group,children:[l.jsx("h4",{className:qa.groupTitle,children:n.title}),l.jsx("div",{className:qa.shortcutList,children:n.shortcuts.map(s=>l.jsxs("div",{className:qa.shortcutRow,children:[l.jsx("span",{className:qa.keys,children:s.keys.map(i=>l.jsx("kbd",{className:qa.kbd,children:i},i))}),l.jsx("span",{className:qa.description,children:s.description})]},s.description))})]},n.title))]})}function fU(){return l.jsx(dU,{})}const nb=ei();function pU(){const n=xt();return Ms({key:"?"},()=>{n(c2)}),Ms({key:"n"},()=>{n(nb)}),Ms({key:"N"},()=>{n(nb)}),l.jsx(l.Fragment,{})}const mU="_wizard_1260s_1",hU="_container_1260s_10",gU="_stepContent_1260s_19",vU="_logoArea_1260s_28",yU="_logoImage_1260s_32",bU="_heading_1260s_41",_U="_tagline_1260s_49",xU="_subtitle_1260s_56",SU="_featureList_1260s_64",TU="_runtimeGrid_1260s_89",kU="_runtimeCard_1260s_101",wU="_runtimeName_1260s_133",NU="_runtimeDescription_1260s_139",jU="_buttonRow_1260s_144",CU="_primaryButton_1260s_151",EU="_ghostButton_1260s_185",AU="_dots_1260s_213",DU="_dot_1260s_213",rt={wizard:mU,container:hU,stepContent:gU,logoArea:vU,logoImage:yU,heading:bU,tagline:_U,subtitle:xU,featureList:SU,runtimeGrid:TU,runtimeCard:kU,runtimeName:wU,runtimeDescription:NU,buttonRow:jU,primaryButton:CU,ghostButton:EU,dots:AU,dot:DU};function RU({onNext:n}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-welcome",children:[l.jsx("div",{className:rt.logoArea,children:l.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:rt.logoImage})}),l.jsx("h1",{className:rt.heading,children:"Welcome to Grackle"}),l.jsx("p",{className:rt.tagline,children:"Multi-agent orchestration for software teams"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-get-started",children:"Get Started"})]})}function MU({onNext:n,onBack:s}){return l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-about",children:[l.jsx("h2",{className:rt.heading,children:"What is Grackle?"}),l.jsxs("ul",{className:rt.featureList,children:[l.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),l.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),l.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),l.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),l.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:s,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:n,"data-testid":"setup-about-next",children:"Next"})]})]})}const OU=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function IU({currentRuntime:n,onFinish:s,onBack:i,finishDisabled:o}){const[c,u]=y.useState(n||"claude-code");return y.useEffect(()=>{n&&u(n)},[n]),l.jsxs("div",{className:rt.stepContent,"data-testid":"setup-runtime",children:[l.jsx("h2",{className:rt.heading,children:"Choose Your Runtime"}),l.jsx("p",{className:rt.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),l.jsx("div",{className:rt.runtimeGrid,children:OU.map(d=>l.jsxs("button",{type:"button",className:rt.runtimeCard,"data-selected":c===d.id,"aria-pressed":c===d.id,"data-testid":`runtime-card-${d.id}`,onClick:()=>u(d.id),children:[l.jsx("span",{className:rt.runtimeName,children:d.name}),l.jsx("span",{className:rt.runtimeDescription,children:d.description})]},d.id))}),l.jsxs("div",{className:rt.buttonRow,children:[l.jsx("button",{type:"button",className:rt.ghostButton,onClick:i,children:"Back"}),l.jsx("button",{type:"button",className:rt.primaryButton,onClick:()=>s(c),disabled:o,"data-testid":"setup-finish",children:"Finish"})]})]})}const LU=3,sb={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function BU(){const{personas:n,updatePersona:s,completeOnboarding:i,onboardingCompleted:o}=pt(),c=xt(),[u,d]=y.useState(0),m=n.find(g=>g.id==="claude-code"),h=y.useCallback(g=>{if(m&&g!==m.runtime){const b=sb[g]??"sonnet";s(m.id,void 0,void 0,void 0,g,b).catch(()=>{})}const v=n.find(b=>b.id===e0);if(v&&g!==v.runtime){const b=sb[g]??"sonnet";s(e0,void 0,void 0,void 0,g,b).catch(()=>{})}i(),c("/",{replace:!0})},[m,n,s,i,c]);return o===!0?l.jsx(Fn,{to:"/",replace:!0}):l.jsx("div",{className:rt.wizard,"data-testid":"setup-wizard",children:l.jsxs("div",{className:rt.container,children:[l.jsx(rs,{mode:"wait",children:l.jsxs(Dt.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[u===0&&l.jsx(RU,{onNext:()=>d(1)}),u===1&&l.jsx(MU,{onNext:()=>d(2),onBack:()=>d(0)}),u===2&&l.jsx(IU,{currentRuntime:(m==null?void 0:m.runtime)??"claude-code",onFinish:h,onBack:()=>d(1),finishDisabled:!m})]},u)}),l.jsx("div",{className:rt.dots,children:Array.from({length:LU},(g,v)=>l.jsx("span",{className:rt.dot,"data-active":v===u},v))})]})})}const UU="_root_zndgp_1",zU="_body_zndgp_7",PU="_main_zndgp_19",VU="_sidebarWrapper_zndgp_26",HU="_overlay_zndgp_51",fr={root:UU,body:zU,main:PU,sidebarWrapper:VU,overlay:HU},qU=y.lazy(()=>kT(()=>import("./KnowledgePage-DZhFekbY.js"),__vite__mapDeps([0,1,2,3,4])).then(n=>({default:n.KnowledgePage}))),Lx=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function GU(){const{connected:n,environments:s,sessions:i,tasks:o}=pt(),c=It(),d=qb()!==void 0,[m,h]=y.useState(!1),g=y.useCallback(()=>h(v=>!v),[]);return y.useEffect(()=>{h(!1)},[c.pathname]),y.useEffect(()=>{if(!m)return;const v=b=>{b.key==="Escape"&&h(!1)};return document.addEventListener("keydown",v),()=>{document.removeEventListener("keydown",v)}},[m]),l.jsxs(l.Fragment,{children:[l.jsx(dw,{connected:n,environments:s,sessions:i,onToggleSidebar:d?g:void 0,sidebarOpen:m}),l.jsx(yw,{}),l.jsxs("div",{className:fr.body,children:[d&&l.jsx("div",{className:fr.sidebarWrapper,"data-sidebar-open":m,children:l.jsx(Nw,{})}),d&&m&&l.jsx("div",{className:fr.overlay,"data-testid":"drawer-overlay",onClick:()=>h(!1)}),l.jsxs("div",{className:fr.main,children:[l.jsx(Qa,{}),l.jsx(SD,{sessions:i,tasks:o,environments:s})]})]}),l.jsx(ID,{}),l.jsx(pU,{})]})}function $U(){const{lastSpawnedId:n,environments:s,tasks:i,connected:o,onboardingCompleted:c}=pt(),{showToast:u}=Ls();O3(s,u),U3(i,u);const d=xt(),m=It();return y.useEffect(()=>{n&&!m.pathname.includes("/tasks/")&&d(wb(n),{replace:!0})},[n,d,m.pathname]),o&&c===!1?l.jsx(Fn,{to:"/setup",replace:!0}):l.jsx(bw,{children:l.jsxs("div",{className:fr.root,children:[Lx&&l.jsx(dR,{}),l.jsx(GU,{})]})})}function If(){const{workspaceId:n}=va(),{workspaces:s}=pt(),i=It(),o=s.find(h=>h.id===n);if(!(o!=null&&o.environmentId))return s.length===0?void 0:l.jsx(Fn,{to:"/environments",replace:!0});const c=encodeURIComponent(n),u=`/workspaces/${c}`,d=i.pathname.startsWith(u)?i.pathname.slice(u.length):"",m=`/environments/${encodeURIComponent(o.environmentId)}/workspaces/${c}${d}${i.search}${i.hash}`;return l.jsx(Fn,{to:m,replace:!0})}function ZU(){return l.jsxs(kk,{children:[l.jsx(Ce,{path:"setup",element:l.jsx(BU,{})}),l.jsxs(Ce,{element:l.jsx($U,{}),children:[l.jsx(Ce,{index:!0,element:l.jsx(dI,{})}),l.jsx(Ce,{path:"chat",element:l.jsx(VI,{})}),l.jsx(Ce,{path:"sessions/new",element:l.jsx(YI,{})}),l.jsx(Ce,{path:"sessions/:sessionId",element:l.jsx(WI,{})}),l.jsx(Ce,{element:l.jsx(mD,{}),children:l.jsx(Ce,{path:"knowledge",element:l.jsx(y.Suspense,{fallback:l.jsx(Ex,{}),children:l.jsx(qU,{})})})}),l.jsxs(Ce,{element:l.jsx(dD,{}),children:[l.jsx(Ce,{path:"tasks",element:l.jsx(cI,{})}),l.jsx(Ce,{path:"tasks/new",element:l.jsx(Yy,{})}),l.jsx(Ce,{path:"tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"tasks/:taskId/findings",element:l.jsx(fa,{})})]}),l.jsxs(Ce,{element:l.jsx(fD,{}),children:[l.jsx(Ce,{path:"workspaces",element:l.jsx(Fn,{to:"/environments",replace:!0})}),l.jsx(Ce,{path:"workspaces/new",element:l.jsx(eL,{})}),l.jsx(Ce,{path:"workspaces/:workspaceId",element:l.jsx(If,{})}),l.jsx(Ce,{path:"workspaces/:workspaceId/tasks/:taskId",element:l.jsx(If,{})}),l.jsx(Ce,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:l.jsx(If,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId",element:l.jsx(y4,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:l.jsx(Yy,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:l.jsx(fa,{})}),l.jsx(Ce,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:l.jsx(fa,{})}),l.jsxs(Ce,{path:"environments",element:l.jsx(KL,{}),children:[l.jsx(Ce,{index:!0,element:l.jsx(uI,{})}),l.jsx(Ce,{path:"new",element:l.jsx(qL,{})}),l.jsx(Ce,{path:":environmentId",element:l.jsx(SB,{})}),l.jsx(Ce,{path:":environmentId/edit",element:l.jsx(GL,{})})]})]}),l.jsx(Ce,{element:l.jsx(pD,{}),children:l.jsxs(Ce,{path:"settings",element:l.jsx(wB,{}),children:[l.jsx(Ce,{index:!0,element:l.jsx(Fn,{to:"credentials",replace:!0})}),l.jsx(Ce,{path:"environments",element:l.jsx(Fn,{to:"/environments",replace:!0})}),l.jsx(Ce,{path:"credentials",element:l.jsx(f8,{})}),l.jsx(Ce,{path:"tokens",element:l.jsx(Fn,{to:"../credentials",replace:!0})}),l.jsx(Ce,{path:"personas",element:l.jsx(R8,{})}),l.jsx(Ce,{path:"personas/new",element:l.jsx(tb,{})}),l.jsx(Ce,{path:"personas/:personaId",element:l.jsx(tb,{})}),l.jsx(Ce,{path:"appearance",element:l.jsx(W8,{})}),l.jsx(Ce,{path:"shortcuts",element:l.jsx(fU,{})}),l.jsx(Ce,{path:"about",element:l.jsx(nU,{})})]})}),l.jsx(Ce,{path:"*",element:l.jsx(Fn,{to:"/",replace:!0})})]})]})}const FU=1e4;function KU(){const{onboardingCompleted:n}=pt(),[s,i]=y.useState(!1);y.useEffect(()=>{if(n!==void 0)return;const c=setTimeout(()=>i(!0),FU);return()=>clearTimeout(c)},[n]);const o=n===void 0&&!s;return l.jsx(rs,{mode:"wait",children:o?l.jsx(Dt.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:l.jsx(Ex,{})},"splash"):l.jsx(Dt.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:l.jsx(Yk,{basename:"/".replace(/\/$/,""),children:l.jsx(ZU,{})})},"app")})}function YU(){const n=Lx?Y2:z2;return l.jsx(tw,{children:l.jsx(X2,{children:l.jsx(n,{children:l.jsx(KU,{})})})})}xT.createRoot(document.getElementById("root")).render(l.jsx(y.StrictMode,{children:l.jsx(YU,{})}));export{ba as B,Eb as K,pt as a,wb as s,os as t,xt as u};