tlc-claude-code 2.0.1 → 2.1.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.
- package/.claude/commands/tlc/deploy.md +194 -2
- package/.claude/commands/tlc/e2e-verify.md +214 -0
- package/.claude/commands/tlc/guard.md +191 -0
- package/.claude/commands/tlc/help.md +32 -0
- package/.claude/commands/tlc/init.md +73 -37
- package/.claude/commands/tlc/llm.md +19 -4
- package/.claude/commands/tlc/preflight.md +134 -0
- package/.claude/commands/tlc/review.md +17 -4
- package/.claude/commands/tlc/watchci.md +159 -0
- package/.claude/hooks/tlc-block-tools.sh +41 -0
- package/.claude/hooks/tlc-capture-exchange.sh +50 -0
- package/.claude/hooks/tlc-post-build.sh +38 -0
- package/.claude/hooks/tlc-post-push.sh +22 -0
- package/.claude/hooks/tlc-prompt-guard.sh +69 -0
- package/.claude/hooks/tlc-session-init.sh +123 -0
- package/CLAUDE.md +12 -0
- package/bin/install.js +171 -2
- package/bin/postinstall.js +45 -26
- package/dashboard-web/dist/assets/index-CdS5CHqu.css +1 -0
- package/dashboard-web/dist/assets/index-CwNPPVpg.js +483 -0
- package/dashboard-web/dist/assets/index-CwNPPVpg.js.map +1 -0
- package/dashboard-web/dist/index.html +2 -2
- package/docker-compose.dev.yml +18 -12
- package/package.json +3 -1
- package/server/index.js +228 -2
- package/server/lib/capture-bridge.js +242 -0
- package/server/lib/capture-bridge.test.js +363 -0
- package/server/lib/capture-guard.js +140 -0
- package/server/lib/capture-guard.test.js +182 -0
- package/server/lib/command-runner.js +159 -0
- package/server/lib/command-runner.test.js +92 -0
- package/server/lib/deploy/runners/dependency-runner.js +106 -0
- package/server/lib/deploy/runners/dependency-runner.test.js +148 -0
- package/server/lib/deploy/runners/secrets-runner.js +174 -0
- package/server/lib/deploy/runners/secrets-runner.test.js +127 -0
- package/server/lib/deploy/security-gates.js +11 -24
- package/server/lib/deploy/security-gates.test.js +9 -2
- package/server/lib/deploy-engine.js +182 -0
- package/server/lib/deploy-engine.test.js +147 -0
- package/server/lib/docker-api.js +137 -0
- package/server/lib/docker-api.test.js +202 -0
- package/server/lib/docker-client.js +297 -0
- package/server/lib/docker-client.test.js +308 -0
- package/server/lib/input-sanitizer.js +86 -0
- package/server/lib/input-sanitizer.test.js +117 -0
- package/server/lib/launchd-agent.js +225 -0
- package/server/lib/launchd-agent.test.js +185 -0
- package/server/lib/memory-api.js +3 -1
- package/server/lib/memory-api.test.js +3 -5
- package/server/lib/memory-bridge-e2e.test.js +160 -0
- package/server/lib/memory-committer.js +18 -4
- package/server/lib/memory-committer.test.js +21 -0
- package/server/lib/memory-hooks-capture.test.js +69 -4
- package/server/lib/memory-hooks-integration.test.js +98 -0
- package/server/lib/memory-hooks.js +42 -4
- package/server/lib/memory-store-adapter.js +105 -0
- package/server/lib/memory-store-adapter.test.js +141 -0
- package/server/lib/memory-wiring-e2e.test.js +93 -0
- package/server/lib/nginx-config.js +114 -0
- package/server/lib/nginx-config.test.js +82 -0
- package/server/lib/ollama-health.js +91 -0
- package/server/lib/ollama-health.test.js +74 -0
- package/server/lib/port-guard.js +44 -0
- package/server/lib/port-guard.test.js +65 -0
- package/server/lib/project-scanner.js +37 -2
- package/server/lib/project-scanner.test.js +152 -0
- package/server/lib/remember-command.js +2 -0
- package/server/lib/remember-command.test.js +23 -0
- package/server/lib/security/crypto-utils.test.js +2 -2
- package/server/lib/semantic-recall.js +1 -1
- package/server/lib/semantic-recall.test.js +17 -0
- package/server/lib/ssh-client.js +184 -0
- package/server/lib/ssh-client.test.js +127 -0
- package/server/lib/vps-api.js +184 -0
- package/server/lib/vps-api.test.js +208 -0
- package/server/lib/vps-bootstrap.js +124 -0
- package/server/lib/vps-bootstrap.test.js +79 -0
- package/server/lib/vps-monitor.js +126 -0
- package/server/lib/vps-monitor.test.js +98 -0
- package/server/lib/workspace-api.js +182 -1
- package/server/lib/workspace-api.test.js +474 -0
- package/server/package-lock.json +737 -0
- package/server/package.json +3 -0
- package/dashboard-web/dist/assets/index-Uhc49PE-.css +0 -1
- package/dashboard-web/dist/assets/index-W36XHPC5.js +0 -431
- package/dashboard-web/dist/assets/index-W36XHPC5.js.map +0 -1
|
@@ -1,431 +0,0 @@
|
|
|
1
|
-
var pp=Object.defineProperty;var hp=(l,a,i)=>a in l?pp(l,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):l[a]=i;var ml=(l,a,i)=>hp(l,typeof a!="symbol"?a+"":a,i);(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))d(f);new MutationObserver(f=>{for(const c of f)if(c.type==="childList")for(const p of c.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&d(p)}).observe(document,{childList:!0,subtree:!0});function i(f){const c={};return f.integrity&&(c.integrity=f.integrity),f.referrerPolicy&&(c.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?c.credentials="include":f.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function d(f){if(f.ep)return;f.ep=!0;const c=i(f);fetch(f.href,c)}})();function _d(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var bo={exports:{}},Qr={},Eo={exports:{}},ie={};/**
|
|
2
|
-
* @license React
|
|
3
|
-
* react.production.min.js
|
|
4
|
-
*
|
|
5
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
6
|
-
*
|
|
7
|
-
* This source code is licensed under the MIT license found in the
|
|
8
|
-
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var Kc;function xp(){if(Kc)return ie;Kc=1;var l=Symbol.for("react.element"),a=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),c=Symbol.for("react.provider"),p=Symbol.for("react.context"),x=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),v=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),N=Symbol.iterator;function k(P){return P===null||typeof P!="object"?null:(P=N&&P[N]||P["@@iterator"],typeof P=="function"?P:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},z=Object.assign,_={};function b(P,O,oe){this.props=P,this.context=O,this.refs=_,this.updater=oe||y}b.prototype.isReactComponent={},b.prototype.setState=function(P,O){if(typeof P!="object"&&typeof P!="function"&&P!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,P,O,"setState")},b.prototype.forceUpdate=function(P){this.updater.enqueueForceUpdate(this,P,"forceUpdate")};function D(){}D.prototype=b.prototype;function L(P,O,oe){this.props=P,this.context=O,this.refs=_,this.updater=oe||y}var E=L.prototype=new D;E.constructor=L,z(E,b.prototype),E.isPureReactComponent=!0;var F=Array.isArray,$=Object.prototype.hasOwnProperty,Q={current:null},ee={key:!0,ref:!0,__self:!0,__source:!0};function G(P,O,oe){var ue,fe={},me=null,Se=null;if(O!=null)for(ue in O.ref!==void 0&&(Se=O.ref),O.key!==void 0&&(me=""+O.key),O)$.call(O,ue)&&!ee.hasOwnProperty(ue)&&(fe[ue]=O[ue]);var ve=arguments.length-2;if(ve===1)fe.children=oe;else if(1<ve){for(var Pe=Array(ve),ot=0;ot<ve;ot++)Pe[ot]=arguments[ot+2];fe.children=Pe}if(P&&P.defaultProps)for(ue in ve=P.defaultProps,ve)fe[ue]===void 0&&(fe[ue]=ve[ue]);return{$$typeof:l,type:P,key:me,ref:Se,props:fe,_owner:Q.current}}function V(P,O){return{$$typeof:l,type:P.type,key:O,ref:P.ref,props:P.props,_owner:P._owner}}function he(P){return typeof P=="object"&&P!==null&&P.$$typeof===l}function we(P){var O={"=":"=0",":":"=2"};return"$"+P.replace(/[=:]/g,function(oe){return O[oe]})}var De=/\/+/g;function ne(P,O){return typeof P=="object"&&P!==null&&P.key!=null?we(""+P.key):O.toString(36)}function xe(P,O,oe,ue,fe){var me=typeof P;(me==="undefined"||me==="boolean")&&(P=null);var Se=!1;if(P===null)Se=!0;else switch(me){case"string":case"number":Se=!0;break;case"object":switch(P.$$typeof){case l:case a:Se=!0}}if(Se)return Se=P,fe=fe(Se),P=ue===""?"."+ne(Se,0):ue,F(fe)?(oe="",P!=null&&(oe=P.replace(De,"$&/")+"/"),xe(fe,O,oe,"",function(ot){return ot})):fe!=null&&(he(fe)&&(fe=V(fe,oe+(!fe.key||Se&&Se.key===fe.key?"":(""+fe.key).replace(De,"$&/")+"/")+P)),O.push(fe)),1;if(Se=0,ue=ue===""?".":ue+":",F(P))for(var ve=0;ve<P.length;ve++){me=P[ve];var Pe=ue+ne(me,ve);Se+=xe(me,O,oe,Pe,fe)}else if(Pe=k(P),typeof Pe=="function")for(P=Pe.call(P),ve=0;!(me=P.next()).done;)me=me.value,Pe=ue+ne(me,ve++),Se+=xe(me,O,oe,Pe,fe);else if(me==="object")throw O=String(P),Error("Objects are not valid as a React child (found: "+(O==="[object Object]"?"object with keys {"+Object.keys(P).join(", ")+"}":O)+"). If you meant to render a collection of children, use an array instead.");return Se}function Z(P,O,oe){if(P==null)return P;var ue=[],fe=0;return xe(P,ue,"","",function(me){return O.call(oe,me,fe++)}),ue}function Ne(P){if(P._status===-1){var O=P._result;O=O(),O.then(function(oe){(P._status===0||P._status===-1)&&(P._status=1,P._result=oe)},function(oe){(P._status===0||P._status===-1)&&(P._status=2,P._result=oe)}),P._status===-1&&(P._status=0,P._result=O)}if(P._status===1)return P._result.default;throw P._result}var ce={current:null},H={transition:null},te={ReactCurrentDispatcher:ce,ReactCurrentBatchConfig:H,ReactCurrentOwner:Q};function Y(){throw Error("act(...) is not supported in production builds of React.")}return ie.Children={map:Z,forEach:function(P,O,oe){Z(P,function(){O.apply(this,arguments)},oe)},count:function(P){var O=0;return Z(P,function(){O++}),O},toArray:function(P){return Z(P,function(O){return O})||[]},only:function(P){if(!he(P))throw Error("React.Children.only expected to receive a single React element child.");return P}},ie.Component=b,ie.Fragment=i,ie.Profiler=f,ie.PureComponent=L,ie.StrictMode=d,ie.Suspense=g,ie.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=te,ie.act=Y,ie.cloneElement=function(P,O,oe){if(P==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+P+".");var ue=z({},P.props),fe=P.key,me=P.ref,Se=P._owner;if(O!=null){if(O.ref!==void 0&&(me=O.ref,Se=Q.current),O.key!==void 0&&(fe=""+O.key),P.type&&P.type.defaultProps)var ve=P.type.defaultProps;for(Pe in O)$.call(O,Pe)&&!ee.hasOwnProperty(Pe)&&(ue[Pe]=O[Pe]===void 0&&ve!==void 0?ve[Pe]:O[Pe])}var Pe=arguments.length-2;if(Pe===1)ue.children=oe;else if(1<Pe){ve=Array(Pe);for(var ot=0;ot<Pe;ot++)ve[ot]=arguments[ot+2];ue.children=ve}return{$$typeof:l,type:P.type,key:fe,ref:me,props:ue,_owner:Se}},ie.createContext=function(P){return P={$$typeof:p,_currentValue:P,_currentValue2:P,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},P.Provider={$$typeof:c,_context:P},P.Consumer=P},ie.createElement=G,ie.createFactory=function(P){var O=G.bind(null,P);return O.type=P,O},ie.createRef=function(){return{current:null}},ie.forwardRef=function(P){return{$$typeof:x,render:P}},ie.isValidElement=he,ie.lazy=function(P){return{$$typeof:j,_payload:{_status:-1,_result:P},_init:Ne}},ie.memo=function(P,O){return{$$typeof:v,type:P,compare:O===void 0?null:O}},ie.startTransition=function(P){var O=H.transition;H.transition={};try{P()}finally{H.transition=O}},ie.unstable_act=Y,ie.useCallback=function(P,O){return ce.current.useCallback(P,O)},ie.useContext=function(P){return ce.current.useContext(P)},ie.useDebugValue=function(){},ie.useDeferredValue=function(P){return ce.current.useDeferredValue(P)},ie.useEffect=function(P,O){return ce.current.useEffect(P,O)},ie.useId=function(){return ce.current.useId()},ie.useImperativeHandle=function(P,O,oe){return ce.current.useImperativeHandle(P,O,oe)},ie.useInsertionEffect=function(P,O){return ce.current.useInsertionEffect(P,O)},ie.useLayoutEffect=function(P,O){return ce.current.useLayoutEffect(P,O)},ie.useMemo=function(P,O){return ce.current.useMemo(P,O)},ie.useReducer=function(P,O,oe){return ce.current.useReducer(P,O,oe)},ie.useRef=function(P){return ce.current.useRef(P)},ie.useState=function(P){return ce.current.useState(P)},ie.useSyncExternalStore=function(P,O,oe){return ce.current.useSyncExternalStore(P,O,oe)},ie.useTransition=function(){return ce.current.useTransition()},ie.version="18.3.1",ie}var Yc;function Vo(){return Yc||(Yc=1,Eo.exports=xp()),Eo.exports}/**
|
|
10
|
-
* @license React
|
|
11
|
-
* react-jsx-runtime.production.min.js
|
|
12
|
-
*
|
|
13
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
14
|
-
*
|
|
15
|
-
* This source code is licensed under the MIT license found in the
|
|
16
|
-
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var qc;function gp(){if(qc)return Qr;qc=1;var l=Vo(),a=Symbol.for("react.element"),i=Symbol.for("react.fragment"),d=Object.prototype.hasOwnProperty,f=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,c={key:!0,ref:!0,__self:!0,__source:!0};function p(x,g,v){var j,N={},k=null,y=null;v!==void 0&&(k=""+v),g.key!==void 0&&(k=""+g.key),g.ref!==void 0&&(y=g.ref);for(j in g)d.call(g,j)&&!c.hasOwnProperty(j)&&(N[j]=g[j]);if(x&&x.defaultProps)for(j in g=x.defaultProps,g)N[j]===void 0&&(N[j]=g[j]);return{$$typeof:a,type:x,key:k,ref:y,props:N,_owner:f.current}}return Qr.Fragment=i,Qr.jsx=p,Qr.jsxs=p,Qr}var Xc;function yp(){return Xc||(Xc=1,bo.exports=gp()),bo.exports}var s=yp(),h=Vo();const Yr=_d(h);var pl={},Po={exports:{}},at={},To={exports:{}},Ro={};/**
|
|
18
|
-
* @license React
|
|
19
|
-
* scheduler.production.min.js
|
|
20
|
-
*
|
|
21
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
22
|
-
*
|
|
23
|
-
* This source code is licensed under the MIT license found in the
|
|
24
|
-
* LICENSE file in the root directory of this source tree.
|
|
25
|
-
*/var Jc;function vp(){return Jc||(Jc=1,(function(l){function a(H,te){var Y=H.length;H.push(te);e:for(;0<Y;){var P=Y-1>>>1,O=H[P];if(0<f(O,te))H[P]=te,H[Y]=O,Y=P;else break e}}function i(H){return H.length===0?null:H[0]}function d(H){if(H.length===0)return null;var te=H[0],Y=H.pop();if(Y!==te){H[0]=Y;e:for(var P=0,O=H.length,oe=O>>>1;P<oe;){var ue=2*(P+1)-1,fe=H[ue],me=ue+1,Se=H[me];if(0>f(fe,Y))me<O&&0>f(Se,fe)?(H[P]=Se,H[me]=Y,P=me):(H[P]=fe,H[ue]=Y,P=ue);else if(me<O&&0>f(Se,Y))H[P]=Se,H[me]=Y,P=me;else break e}}return te}function f(H,te){var Y=H.sortIndex-te.sortIndex;return Y!==0?Y:H.id-te.id}if(typeof performance=="object"&&typeof performance.now=="function"){var c=performance;l.unstable_now=function(){return c.now()}}else{var p=Date,x=p.now();l.unstable_now=function(){return p.now()-x}}var g=[],v=[],j=1,N=null,k=3,y=!1,z=!1,_=!1,b=typeof setTimeout=="function"?setTimeout:null,D=typeof clearTimeout=="function"?clearTimeout:null,L=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function E(H){for(var te=i(v);te!==null;){if(te.callback===null)d(v);else if(te.startTime<=H)d(v),te.sortIndex=te.expirationTime,a(g,te);else break;te=i(v)}}function F(H){if(_=!1,E(H),!z)if(i(g)!==null)z=!0,Ne($);else{var te=i(v);te!==null&&ce(F,te.startTime-H)}}function $(H,te){z=!1,_&&(_=!1,D(G),G=-1),y=!0;var Y=k;try{for(E(te),N=i(g);N!==null&&(!(N.expirationTime>te)||H&&!we());){var P=N.callback;if(typeof P=="function"){N.callback=null,k=N.priorityLevel;var O=P(N.expirationTime<=te);te=l.unstable_now(),typeof O=="function"?N.callback=O:N===i(g)&&d(g),E(te)}else d(g);N=i(g)}if(N!==null)var oe=!0;else{var ue=i(v);ue!==null&&ce(F,ue.startTime-te),oe=!1}return oe}finally{N=null,k=Y,y=!1}}var Q=!1,ee=null,G=-1,V=5,he=-1;function we(){return!(l.unstable_now()-he<V)}function De(){if(ee!==null){var H=l.unstable_now();he=H;var te=!0;try{te=ee(!0,H)}finally{te?ne():(Q=!1,ee=null)}}else Q=!1}var ne;if(typeof L=="function")ne=function(){L(De)};else if(typeof MessageChannel<"u"){var xe=new MessageChannel,Z=xe.port2;xe.port1.onmessage=De,ne=function(){Z.postMessage(null)}}else ne=function(){b(De,0)};function Ne(H){ee=H,Q||(Q=!0,ne())}function ce(H,te){G=b(function(){H(l.unstable_now())},te)}l.unstable_IdlePriority=5,l.unstable_ImmediatePriority=1,l.unstable_LowPriority=4,l.unstable_NormalPriority=3,l.unstable_Profiling=null,l.unstable_UserBlockingPriority=2,l.unstable_cancelCallback=function(H){H.callback=null},l.unstable_continueExecution=function(){z||y||(z=!0,Ne($))},l.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):V=0<H?Math.floor(1e3/H):5},l.unstable_getCurrentPriorityLevel=function(){return k},l.unstable_getFirstCallbackNode=function(){return i(g)},l.unstable_next=function(H){switch(k){case 1:case 2:case 3:var te=3;break;default:te=k}var Y=k;k=te;try{return H()}finally{k=Y}},l.unstable_pauseExecution=function(){},l.unstable_requestPaint=function(){},l.unstable_runWithPriority=function(H,te){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var Y=k;k=H;try{return te()}finally{k=Y}},l.unstable_scheduleCallback=function(H,te,Y){var P=l.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?P+Y:P):Y=P,H){case 1:var O=-1;break;case 2:O=250;break;case 5:O=1073741823;break;case 4:O=1e4;break;default:O=5e3}return O=Y+O,H={id:j++,callback:te,priorityLevel:H,startTime:Y,expirationTime:O,sortIndex:-1},Y>P?(H.sortIndex=Y,a(v,H),i(g)===null&&H===i(v)&&(_?(D(G),G=-1):_=!0,ce(F,Y-P))):(H.sortIndex=O,a(g,H),z||y||(z=!0,Ne($))),H},l.unstable_shouldYield=we,l.unstable_wrapCallback=function(H){var te=k;return function(){var Y=k;k=te;try{return H.apply(this,arguments)}finally{k=Y}}}})(Ro)),Ro}var Zc;function jp(){return Zc||(Zc=1,To.exports=vp()),To.exports}/**
|
|
26
|
-
* @license React
|
|
27
|
-
* react-dom.production.min.js
|
|
28
|
-
*
|
|
29
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
30
|
-
*
|
|
31
|
-
* This source code is licensed under the MIT license found in the
|
|
32
|
-
* LICENSE file in the root directory of this source tree.
|
|
33
|
-
*/var ed;function wp(){if(ed)return at;ed=1;var l=Vo(),a=jp();function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);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."}var d=new Set,f={};function c(e,t){p(e,t),p(e+"Capture",t)}function p(e,t){for(f[e]=t,e=0;e<t.length;e++)d.add(t[e])}var x=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),g=Object.prototype.hasOwnProperty,v=/^[: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]*$/,j={},N={};function k(e){return g.call(N,e)?!0:g.call(j,e)?!1:v.test(e)?N[e]=!0:(j[e]=!0,!1)}function y(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function z(e,t,n,r){if(t===null||typeof t>"u"||y(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function _(e,t,n,r,o,u,m){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=m}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){b[e]=new _(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];b[t]=new _(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){b[e]=new _(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){b[e]=new _(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){b[e]=new _(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){b[e]=new _(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){b[e]=new _(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){b[e]=new _(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){b[e]=new _(e,5,!1,e.toLowerCase(),null,!1,!1)});var D=/[\-:]([a-z])/g;function L(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(D,L);b[t]=new _(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(D,L);b[t]=new _(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(D,L);b[t]=new _(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){b[e]=new _(e,1,!1,e.toLowerCase(),null,!1,!1)}),b.xlinkHref=new _("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){b[e]=new _(e,1,!1,e.toLowerCase(),null,!0,!0)});function E(e,t,n,r){var o=b.hasOwnProperty(t)?b[t]:null;(o!==null?o.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(z(t,n,o,r)&&(n=null),r||o===null?k(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=n===null?o.type===3?!1:"":n:(t=o.attributeName,r=o.attributeNamespace,n===null?e.removeAttribute(t):(o=o.type,n=o===3||o===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var F=l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,$=Symbol.for("react.element"),Q=Symbol.for("react.portal"),ee=Symbol.for("react.fragment"),G=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),he=Symbol.for("react.provider"),we=Symbol.for("react.context"),De=Symbol.for("react.forward_ref"),ne=Symbol.for("react.suspense"),xe=Symbol.for("react.suspense_list"),Z=Symbol.for("react.memo"),Ne=Symbol.for("react.lazy"),ce=Symbol.for("react.offscreen"),H=Symbol.iterator;function te(e){return e===null||typeof e!="object"?null:(e=H&&e[H]||e["@@iterator"],typeof e=="function"?e:null)}var Y=Object.assign,P;function O(e){if(P===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);P=t&&t[1]||""}return`
|
|
34
|
-
`+P+e}var oe=!1;function ue(e,t){if(!e||oe)return"";oe=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(M){var r=M}Reflect.construct(e,[],t)}else{try{t.call()}catch(M){r=M}e.call(t.prototype)}else{try{throw Error()}catch(M){r=M}e()}}catch(M){if(M&&r&&typeof M.stack=="string"){for(var o=M.stack.split(`
|
|
35
|
-
`),u=r.stack.split(`
|
|
36
|
-
`),m=o.length-1,w=u.length-1;1<=m&&0<=w&&o[m]!==u[w];)w--;for(;1<=m&&0<=w;m--,w--)if(o[m]!==u[w]){if(m!==1||w!==1)do if(m--,w--,0>w||o[m]!==u[w]){var S=`
|
|
37
|
-
`+o[m].replace(" at new "," at ");return e.displayName&&S.includes("<anonymous>")&&(S=S.replace("<anonymous>",e.displayName)),S}while(1<=m&&0<=w);break}}}finally{oe=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?O(e):""}function fe(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return e=ue(e.type,!1),e;case 11:return e=ue(e.type.render,!1),e;case 1:return e=ue(e.type,!0),e;default:return""}}function me(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ee:return"Fragment";case Q:return"Portal";case V:return"Profiler";case G:return"StrictMode";case ne:return"Suspense";case xe:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case we:return(e.displayName||"Context")+".Consumer";case he:return(e._context.displayName||"Context")+".Provider";case De:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Z:return t=e.displayName||null,t!==null?t:me(e.type)||"Memo";case Ne:t=e._payload,e=e._init;try{return me(e(t))}catch{}}return null}function Se(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return me(t);case 8:return t===G?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ve(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Pe(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function ot(e){var t=Pe(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(m){r=""+m,u.call(this,m)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(m){r=""+m},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function rs(e){e._valueTracker||(e._valueTracker=ot(e))}function ei(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Pe(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ss(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function _l(e,t){var n=t.checked;return Y({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ti(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ve(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ni(e,t){t=t.checked,t!=null&&E(e,"checked",t,!1)}function Ml(e,t){ni(e,t);var n=ve(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Dl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Dl(e,t.type,ve(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function ri(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Dl(e,t,n){(t!=="number"||ss(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var or=Array.isArray;function Pn(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ve(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,r&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function zl(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(i(91));return Y({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function si(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(i(92));if(or(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:ve(n)}}function li(e,t){var n=ve(t.value),r=ve(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function ai(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function oi(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function $l(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?oi(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var ls,ii=(function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e})(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(ls=ls||document.createElement("div"),ls.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ls.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function ir(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ur={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},yf=["Webkit","ms","Moz","O"];Object.keys(ur).forEach(function(e){yf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ur[t]=ur[e]})});function ui(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ur.hasOwnProperty(e)&&ur[e]?(""+t).trim():t+"px"}function ci(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=ui(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var vf=Y({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Fl(e,t){if(t){if(vf[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(i(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(i(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(t.style!=null&&typeof t.style!="object")throw Error(i(62))}}function Il(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";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 Ol=null;function Al(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ul=null,Tn=null,Rn=null;function di(e){if(e=Lr(e)){if(typeof Ul!="function")throw Error(i(280));var t=e.stateNode;t&&(t=Ps(t),Ul(e.stateNode,e.type,t))}}function fi(e){Tn?Rn?Rn.push(e):Rn=[e]:Tn=e}function mi(){if(Tn){var e=Tn,t=Rn;if(Rn=Tn=null,di(e),t)for(e=0;e<t.length;e++)di(t[e])}}function pi(e,t){return e(t)}function hi(){}var Bl=!1;function xi(e,t,n){if(Bl)return e(t,n);Bl=!0;try{return pi(e,t,n)}finally{Bl=!1,(Tn!==null||Rn!==null)&&(hi(),mi())}}function cr(e,t){var n=e.stateNode;if(n===null)return null;var r=Ps(n);if(r===null)return null;n=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(n&&typeof n!="function")throw Error(i(231,t,typeof n));return n}var Vl=!1;if(x)try{var dr={};Object.defineProperty(dr,"passive",{get:function(){Vl=!0}}),window.addEventListener("test",dr,dr),window.removeEventListener("test",dr,dr)}catch{Vl=!1}function jf(e,t,n,r,o,u,m,w,S){var M=Array.prototype.slice.call(arguments,3);try{t.apply(n,M)}catch(A){this.onError(A)}}var fr=!1,as=null,os=!1,Hl=null,wf={onError:function(e){fr=!0,as=e}};function Nf(e,t,n,r,o,u,m,w,S){fr=!1,as=null,jf.apply(wf,arguments)}function kf(e,t,n,r,o,u,m,w,S){if(Nf.apply(this,arguments),fr){if(fr){var M=as;fr=!1,as=null}else throw Error(i(198));os||(os=!0,Hl=M)}}function mn(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,(t.flags&4098)!==0&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function gi(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 yi(e){if(mn(e)!==e)throw Error(i(188))}function Sf(e){var t=e.alternate;if(!t){if(t=mn(e),t===null)throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(o===null)break;var u=o.alternate;if(u===null){if(r=o.return,r!==null){n=r;continue}break}if(o.child===u.child){for(u=o.child;u;){if(u===n)return yi(o),e;if(u===r)return yi(o),t;u=u.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=u;else{for(var m=!1,w=o.child;w;){if(w===n){m=!0,n=o,r=u;break}if(w===r){m=!0,r=o,n=u;break}w=w.sibling}if(!m){for(w=u.child;w;){if(w===n){m=!0,n=u,r=o;break}if(w===r){m=!0,r=u,n=o;break}w=w.sibling}if(!m)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function vi(e){return e=Sf(e),e!==null?ji(e):null}function ji(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=ji(e);if(t!==null)return t;e=e.sibling}return null}var wi=a.unstable_scheduleCallback,Ni=a.unstable_cancelCallback,Cf=a.unstable_shouldYield,bf=a.unstable_requestPaint,Fe=a.unstable_now,Ef=a.unstable_getCurrentPriorityLevel,Wl=a.unstable_ImmediatePriority,ki=a.unstable_UserBlockingPriority,is=a.unstable_NormalPriority,Pf=a.unstable_LowPriority,Si=a.unstable_IdlePriority,us=null,Et=null;function Tf(e){if(Et&&typeof Et.onCommitFiberRoot=="function")try{Et.onCommitFiberRoot(us,e,void 0,(e.current.flags&128)===128)}catch{}}var vt=Math.clz32?Math.clz32:_f,Rf=Math.log,Lf=Math.LN2;function _f(e){return e>>>=0,e===0?32:31-(Rf(e)/Lf|0)|0}var cs=64,ds=4194304;function mr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function fs(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,u=e.pingedLanes,m=n&268435455;if(m!==0){var w=m&~o;w!==0?r=mr(w):(u&=m,u!==0&&(r=mr(u)))}else m=n&~o,m!==0?r=mr(m):u!==0&&(r=mr(u));if(r===0)return 0;if(t!==0&&t!==r&&(t&o)===0&&(o=r&-r,u=t&-t,o>=u||o===16&&(u&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-vt(t),o=1<<n,r|=e[n],t&=~o;return r}function Mf(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Df(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,u=e.pendingLanes;0<u;){var m=31-vt(u),w=1<<m,S=o[m];S===-1?((w&n)===0||(w&r)!==0)&&(o[m]=Mf(w,t)):S<=t&&(e.expiredLanes|=w),u&=~w}}function Ql(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Ci(){var e=cs;return cs<<=1,(cs&4194240)===0&&(cs=64),e}function Gl(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function pr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-vt(t),e[t]=n}function zf(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-vt(n),u=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~u}}function Kl(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-vt(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var je=0;function bi(e){return e&=-e,1<e?4<e?(e&268435455)!==0?16:536870912:4:1}var Ei,Yl,Pi,Ti,Ri,ql=!1,ms=[],Wt=null,Qt=null,Gt=null,hr=new Map,xr=new Map,Kt=[],$f="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Li(e,t){switch(e){case"focusin":case"focusout":Wt=null;break;case"dragenter":case"dragleave":Qt=null;break;case"mouseover":case"mouseout":Gt=null;break;case"pointerover":case"pointerout":hr.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":xr.delete(t.pointerId)}}function gr(e,t,n,r,o,u){return e===null||e.nativeEvent!==u?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:u,targetContainers:[o]},t!==null&&(t=Lr(t),t!==null&&Yl(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function Ff(e,t,n,r,o){switch(t){case"focusin":return Wt=gr(Wt,e,t,n,r,o),!0;case"dragenter":return Qt=gr(Qt,e,t,n,r,o),!0;case"mouseover":return Gt=gr(Gt,e,t,n,r,o),!0;case"pointerover":var u=o.pointerId;return hr.set(u,gr(hr.get(u)||null,e,t,n,r,o)),!0;case"gotpointercapture":return u=o.pointerId,xr.set(u,gr(xr.get(u)||null,e,t,n,r,o)),!0}return!1}function _i(e){var t=pn(e.target);if(t!==null){var n=mn(t);if(n!==null){if(t=n.tag,t===13){if(t=gi(n),t!==null){e.blockedOn=t,Ri(e.priority,function(){Pi(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ps(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jl(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);Ol=r,n.target.dispatchEvent(r),Ol=null}else return t=Lr(n),t!==null&&Yl(t),e.blockedOn=n,!1;t.shift()}return!0}function Mi(e,t,n){ps(e)&&n.delete(t)}function If(){ql=!1,Wt!==null&&ps(Wt)&&(Wt=null),Qt!==null&&ps(Qt)&&(Qt=null),Gt!==null&&ps(Gt)&&(Gt=null),hr.forEach(Mi),xr.forEach(Mi)}function yr(e,t){e.blockedOn===t&&(e.blockedOn=null,ql||(ql=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,If)))}function vr(e){function t(o){return yr(o,e)}if(0<ms.length){yr(ms[0],e);for(var n=1;n<ms.length;n++){var r=ms[n];r.blockedOn===e&&(r.blockedOn=null)}}for(Wt!==null&&yr(Wt,e),Qt!==null&&yr(Qt,e),Gt!==null&&yr(Gt,e),hr.forEach(t),xr.forEach(t),n=0;n<Kt.length;n++)r=Kt[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<Kt.length&&(n=Kt[0],n.blockedOn===null);)_i(n),n.blockedOn===null&&Kt.shift()}var Ln=F.ReactCurrentBatchConfig,hs=!0;function Of(e,t,n,r){var o=je,u=Ln.transition;Ln.transition=null;try{je=1,Xl(e,t,n,r)}finally{je=o,Ln.transition=u}}function Af(e,t,n,r){var o=je,u=Ln.transition;Ln.transition=null;try{je=4,Xl(e,t,n,r)}finally{je=o,Ln.transition=u}}function Xl(e,t,n,r){if(hs){var o=Jl(e,t,n,r);if(o===null)ha(e,t,r,xs,n),Li(e,r);else if(Ff(o,e,t,n,r))r.stopPropagation();else if(Li(e,r),t&4&&-1<$f.indexOf(e)){for(;o!==null;){var u=Lr(o);if(u!==null&&Ei(u),u=Jl(e,t,n,r),u===null&&ha(e,t,r,xs,n),u===o)break;o=u}o!==null&&r.stopPropagation()}else ha(e,t,r,null,n)}}var xs=null;function Jl(e,t,n,r){if(xs=null,e=Al(r),e=pn(e),e!==null)if(t=mn(e),t===null)e=null;else if(n=t.tag,n===13){if(e=gi(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return xs=e,null}function Di(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Ef()){case Wl:return 1;case ki:return 4;case is:case Pf:return 16;case Si:return 536870912;default:return 16}default:return 16}}var Yt=null,Zl=null,gs=null;function zi(){if(gs)return gs;var e,t=Zl,n=t.length,r,o="value"in Yt?Yt.value:Yt.textContent,u=o.length;for(e=0;e<n&&t[e]===o[e];e++);var m=n-e;for(r=1;r<=m&&t[n-r]===o[u-r];r++);return gs=o.slice(e,1<r?1-r:void 0)}function ys(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 vs(){return!0}function $i(){return!1}function it(e){function t(n,r,o,u,m){this._reactName=n,this._targetInst=o,this.type=r,this.nativeEvent=u,this.target=m,this.currentTarget=null;for(var w in e)e.hasOwnProperty(w)&&(n=e[w],this[w]=n?n(u):u[w]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?vs:$i,this.isPropagationStopped=$i,this}return Y(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=vs)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=vs)},persist:function(){},isPersistent:vs}),t}var _n={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},ea=it(_n),jr=Y({},_n,{view:0,detail:0}),Uf=it(jr),ta,na,wr,js=Y({},jr,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:sa,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!==wr&&(wr&&e.type==="mousemove"?(ta=e.screenX-wr.screenX,na=e.screenY-wr.screenY):na=ta=0,wr=e),ta)},movementY:function(e){return"movementY"in e?e.movementY:na}}),Fi=it(js),Bf=Y({},js,{dataTransfer:0}),Vf=it(Bf),Hf=Y({},jr,{relatedTarget:0}),ra=it(Hf),Wf=Y({},_n,{animationName:0,elapsedTime:0,pseudoElement:0}),Qf=it(Wf),Gf=Y({},_n,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Kf=it(Gf),Yf=Y({},_n,{data:0}),Ii=it(Yf),qf={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Xf={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"},Jf={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Zf(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Jf[e])?!!t[e]:!1}function sa(){return Zf}var em=Y({},jr,{key:function(e){if(e.key){var t=qf[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ys(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Xf[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:sa,charCode:function(e){return e.type==="keypress"?ys(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ys(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),tm=it(em),nm=Y({},js,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Oi=it(nm),rm=Y({},jr,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:sa}),sm=it(rm),lm=Y({},_n,{propertyName:0,elapsedTime:0,pseudoElement:0}),am=it(lm),om=Y({},js,{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}),im=it(om),um=[9,13,27,32],la=x&&"CompositionEvent"in window,Nr=null;x&&"documentMode"in document&&(Nr=document.documentMode);var cm=x&&"TextEvent"in window&&!Nr,Ai=x&&(!la||Nr&&8<Nr&&11>=Nr),Ui=" ",Bi=!1;function Vi(e,t){switch(e){case"keyup":return um.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hi(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Mn=!1;function dm(e,t){switch(e){case"compositionend":return Hi(t);case"keypress":return t.which!==32?null:(Bi=!0,Ui);case"textInput":return e=t.data,e===Ui&&Bi?null:e;default:return null}}function fm(e,t){if(Mn)return e==="compositionend"||!la&&Vi(e,t)?(e=zi(),gs=Zl=Yt=null,Mn=!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 Ai&&t.locale!=="ko"?null:t.data;default:return null}}var mm={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 Wi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!mm[e.type]:t==="textarea"}function Qi(e,t,n,r){fi(r),t=Cs(t,"onChange"),0<t.length&&(n=new ea("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var kr=null,Sr=null;function pm(e){cu(e,0)}function ws(e){var t=In(e);if(ei(t))return e}function hm(e,t){if(e==="change")return t}var Gi=!1;if(x){var aa;if(x){var oa="oninput"in document;if(!oa){var Ki=document.createElement("div");Ki.setAttribute("oninput","return;"),oa=typeof Ki.oninput=="function"}aa=oa}else aa=!1;Gi=aa&&(!document.documentMode||9<document.documentMode)}function Yi(){kr&&(kr.detachEvent("onpropertychange",qi),Sr=kr=null)}function qi(e){if(e.propertyName==="value"&&ws(Sr)){var t=[];Qi(t,Sr,e,Al(e)),xi(pm,t)}}function xm(e,t,n){e==="focusin"?(Yi(),kr=t,Sr=n,kr.attachEvent("onpropertychange",qi)):e==="focusout"&&Yi()}function gm(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ws(Sr)}function ym(e,t){if(e==="click")return ws(t)}function vm(e,t){if(e==="input"||e==="change")return ws(t)}function jm(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var jt=typeof Object.is=="function"?Object.is:jm;function Cr(e,t){if(jt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!g.call(t,o)||!jt(e[o],t[o]))return!1}return!0}function Xi(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Ji(e,t){var n=Xi(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Xi(n)}}function Zi(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zi(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function eu(){for(var e=window,t=ss();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ss(e.document)}return t}function ia(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")}function wm(e){var t=eu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zi(n.ownerDocument.documentElement,n)){if(r!==null&&ia(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,u=Math.min(r.start,o);r=r.end===void 0?u:Math.min(r.end,o),!e.extend&&u>r&&(o=r,r=u,u=o),o=Ji(n,u);var m=Ji(n,r);o&&m&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==m.node||e.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Nm=x&&"documentMode"in document&&11>=document.documentMode,Dn=null,ua=null,br=null,ca=!1;function tu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ca||Dn==null||Dn!==ss(r)||(r=Dn,"selectionStart"in r&&ia(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}),br&&Cr(br,r)||(br=r,r=Cs(ua,"onSelect"),0<r.length&&(t=new ea("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Dn)))}function Ns(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var zn={animationend:Ns("Animation","AnimationEnd"),animationiteration:Ns("Animation","AnimationIteration"),animationstart:Ns("Animation","AnimationStart"),transitionend:Ns("Transition","TransitionEnd")},da={},nu={};x&&(nu=document.createElement("div").style,"AnimationEvent"in window||(delete zn.animationend.animation,delete zn.animationiteration.animation,delete zn.animationstart.animation),"TransitionEvent"in window||delete zn.transitionend.transition);function ks(e){if(da[e])return da[e];if(!zn[e])return e;var t=zn[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in nu)return da[e]=t[n];return e}var ru=ks("animationend"),su=ks("animationiteration"),lu=ks("animationstart"),au=ks("transitionend"),ou=new Map,iu="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function qt(e,t){ou.set(e,t),c(t,[e])}for(var fa=0;fa<iu.length;fa++){var ma=iu[fa],km=ma.toLowerCase(),Sm=ma[0].toUpperCase()+ma.slice(1);qt(km,"on"+Sm)}qt(ru,"onAnimationEnd"),qt(su,"onAnimationIteration"),qt(lu,"onAnimationStart"),qt("dblclick","onDoubleClick"),qt("focusin","onFocus"),qt("focusout","onBlur"),qt(au,"onTransitionEnd"),p("onMouseEnter",["mouseout","mouseover"]),p("onMouseLeave",["mouseout","mouseover"]),p("onPointerEnter",["pointerout","pointerover"]),p("onPointerLeave",["pointerout","pointerover"]),c("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),c("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),c("onBeforeInput",["compositionend","keypress","textInput","paste"]),c("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),c("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Er="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(" "),Cm=new Set("cancel close invalid load scroll toggle".split(" ").concat(Er));function uu(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,kf(r,t,void 0,e),e.currentTarget=null}function cu(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var u=void 0;if(t)for(var m=r.length-1;0<=m;m--){var w=r[m],S=w.instance,M=w.currentTarget;if(w=w.listener,S!==u&&o.isPropagationStopped())break e;uu(o,w,M),u=S}else for(m=0;m<r.length;m++){if(w=r[m],S=w.instance,M=w.currentTarget,w=w.listener,S!==u&&o.isPropagationStopped())break e;uu(o,w,M),u=S}}}if(os)throw e=Hl,os=!1,Hl=null,e}function be(e,t){var n=t[wa];n===void 0&&(n=t[wa]=new Set);var r=e+"__bubble";n.has(r)||(du(t,e,2,!1),n.add(r))}function pa(e,t,n){var r=0;t&&(r|=4),du(n,e,r,t)}var Ss="_reactListening"+Math.random().toString(36).slice(2);function Pr(e){if(!e[Ss]){e[Ss]=!0,d.forEach(function(n){n!=="selectionchange"&&(Cm.has(n)||pa(n,!1,e),pa(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ss]||(t[Ss]=!0,pa("selectionchange",!1,t))}}function du(e,t,n,r){switch(Di(t)){case 1:var o=Of;break;case 4:o=Af;break;default:o=Xl}n=o.bind(null,t,n,e),o=void 0,!Vl||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),r?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function ha(e,t,n,r,o){var u=r;if((t&1)===0&&(t&2)===0&&r!==null)e:for(;;){if(r===null)return;var m=r.tag;if(m===3||m===4){var w=r.stateNode.containerInfo;if(w===o||w.nodeType===8&&w.parentNode===o)break;if(m===4)for(m=r.return;m!==null;){var S=m.tag;if((S===3||S===4)&&(S=m.stateNode.containerInfo,S===o||S.nodeType===8&&S.parentNode===o))return;m=m.return}for(;w!==null;){if(m=pn(w),m===null)return;if(S=m.tag,S===5||S===6){r=u=m;continue e}w=w.parentNode}}r=r.return}xi(function(){var M=u,A=Al(n),U=[];e:{var I=ou.get(e);if(I!==void 0){var W=ea,q=e;switch(e){case"keypress":if(ys(n)===0)break e;case"keydown":case"keyup":W=tm;break;case"focusin":q="focus",W=ra;break;case"focusout":q="blur",W=ra;break;case"beforeblur":case"afterblur":W=ra;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":W=Fi;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":W=Vf;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":W=sm;break;case ru:case su:case lu:W=Qf;break;case au:W=am;break;case"scroll":W=Uf;break;case"wheel":W=im;break;case"copy":case"cut":case"paste":W=Kf;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":W=Oi}var X=(t&4)!==0,Ie=!X&&e==="scroll",T=X?I!==null?I+"Capture":null:I;X=[];for(var C=M,R;C!==null;){R=C;var B=R.stateNode;if(R.tag===5&&B!==null&&(R=B,T!==null&&(B=cr(C,T),B!=null&&X.push(Tr(C,B,R)))),Ie)break;C=C.return}0<X.length&&(I=new W(I,q,null,n,A),U.push({event:I,listeners:X}))}}if((t&7)===0){e:{if(I=e==="mouseover"||e==="pointerover",W=e==="mouseout"||e==="pointerout",I&&n!==Ol&&(q=n.relatedTarget||n.fromElement)&&(pn(q)||q[zt]))break e;if((W||I)&&(I=A.window===A?A:(I=A.ownerDocument)?I.defaultView||I.parentWindow:window,W?(q=n.relatedTarget||n.toElement,W=M,q=q?pn(q):null,q!==null&&(Ie=mn(q),q!==Ie||q.tag!==5&&q.tag!==6)&&(q=null)):(W=null,q=M),W!==q)){if(X=Fi,B="onMouseLeave",T="onMouseEnter",C="mouse",(e==="pointerout"||e==="pointerover")&&(X=Oi,B="onPointerLeave",T="onPointerEnter",C="pointer"),Ie=W==null?I:In(W),R=q==null?I:In(q),I=new X(B,C+"leave",W,n,A),I.target=Ie,I.relatedTarget=R,B=null,pn(A)===M&&(X=new X(T,C+"enter",q,n,A),X.target=R,X.relatedTarget=Ie,B=X),Ie=B,W&&q)t:{for(X=W,T=q,C=0,R=X;R;R=$n(R))C++;for(R=0,B=T;B;B=$n(B))R++;for(;0<C-R;)X=$n(X),C--;for(;0<R-C;)T=$n(T),R--;for(;C--;){if(X===T||T!==null&&X===T.alternate)break t;X=$n(X),T=$n(T)}X=null}else X=null;W!==null&&fu(U,I,W,X,!1),q!==null&&Ie!==null&&fu(U,Ie,q,X,!0)}}e:{if(I=M?In(M):window,W=I.nodeName&&I.nodeName.toLowerCase(),W==="select"||W==="input"&&I.type==="file")var J=hm;else if(Wi(I))if(Gi)J=vm;else{J=gm;var re=xm}else(W=I.nodeName)&&W.toLowerCase()==="input"&&(I.type==="checkbox"||I.type==="radio")&&(J=ym);if(J&&(J=J(e,M))){Qi(U,J,n,A);break e}re&&re(e,I,M),e==="focusout"&&(re=I._wrapperState)&&re.controlled&&I.type==="number"&&Dl(I,"number",I.value)}switch(re=M?In(M):window,e){case"focusin":(Wi(re)||re.contentEditable==="true")&&(Dn=re,ua=M,br=null);break;case"focusout":br=ua=Dn=null;break;case"mousedown":ca=!0;break;case"contextmenu":case"mouseup":case"dragend":ca=!1,tu(U,n,A);break;case"selectionchange":if(Nm)break;case"keydown":case"keyup":tu(U,n,A)}var se;if(la)e:{switch(e){case"compositionstart":var le="onCompositionStart";break e;case"compositionend":le="onCompositionEnd";break e;case"compositionupdate":le="onCompositionUpdate";break e}le=void 0}else Mn?Vi(e,n)&&(le="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(le="onCompositionStart");le&&(Ai&&n.locale!=="ko"&&(Mn||le!=="onCompositionStart"?le==="onCompositionEnd"&&Mn&&(se=zi()):(Yt=A,Zl="value"in Yt?Yt.value:Yt.textContent,Mn=!0)),re=Cs(M,le),0<re.length&&(le=new Ii(le,e,null,n,A),U.push({event:le,listeners:re}),se?le.data=se:(se=Hi(n),se!==null&&(le.data=se)))),(se=cm?dm(e,n):fm(e,n))&&(M=Cs(M,"onBeforeInput"),0<M.length&&(A=new Ii("onBeforeInput","beforeinput",null,n,A),U.push({event:A,listeners:M}),A.data=se))}cu(U,t)})}function Tr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Cs(e,t){for(var n=t+"Capture",r=[];e!==null;){var o=e,u=o.stateNode;o.tag===5&&u!==null&&(o=u,u=cr(e,n),u!=null&&r.unshift(Tr(e,u,o)),u=cr(e,t),u!=null&&r.push(Tr(e,u,o))),e=e.return}return r}function $n(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function fu(e,t,n,r,o){for(var u=t._reactName,m=[];n!==null&&n!==r;){var w=n,S=w.alternate,M=w.stateNode;if(S!==null&&S===r)break;w.tag===5&&M!==null&&(w=M,o?(S=cr(n,u),S!=null&&m.unshift(Tr(n,S,w))):o||(S=cr(n,u),S!=null&&m.push(Tr(n,S,w)))),n=n.return}m.length!==0&&e.push({event:t,listeners:m})}var bm=/\r\n?/g,Em=/\u0000|\uFFFD/g;function mu(e){return(typeof e=="string"?e:""+e).replace(bm,`
|
|
38
|
-
`).replace(Em,"")}function bs(e,t,n){if(t=mu(t),mu(e)!==t&&n)throw Error(i(425))}function Es(){}var xa=null,ga=null;function ya(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var va=typeof setTimeout=="function"?setTimeout:void 0,Pm=typeof clearTimeout=="function"?clearTimeout:void 0,pu=typeof Promise=="function"?Promise:void 0,Tm=typeof queueMicrotask=="function"?queueMicrotask:typeof pu<"u"?function(e){return pu.resolve(null).then(e).catch(Rm)}:va;function Rm(e){setTimeout(function(){throw e})}function ja(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"){if(r===0){e.removeChild(o),vr(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=o}while(n);vr(t)}function Xt(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==="$?")break;if(t==="/$")return null}}return e}function hu(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Fn=Math.random().toString(36).slice(2),Pt="__reactFiber$"+Fn,Rr="__reactProps$"+Fn,zt="__reactContainer$"+Fn,wa="__reactEvents$"+Fn,Lm="__reactListeners$"+Fn,_m="__reactHandles$"+Fn;function pn(e){var t=e[Pt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[zt]||n[Pt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=hu(e);e!==null;){if(n=e[Pt])return n;e=hu(e)}return t}e=n,n=e.parentNode}return null}function Lr(e){return e=e[Pt]||e[zt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function In(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(i(33))}function Ps(e){return e[Rr]||null}var Na=[],On=-1;function Jt(e){return{current:e}}function Ee(e){0>On||(e.current=Na[On],Na[On]=null,On--)}function Ce(e,t){On++,Na[On]=e.current,e.current=t}var Zt={},Ke=Jt(Zt),tt=Jt(!1),hn=Zt;function An(e,t){var n=e.type.contextTypes;if(!n)return Zt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},u;for(u in n)o[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function nt(e){return e=e.childContextTypes,e!=null}function Ts(){Ee(tt),Ee(Ke)}function xu(e,t,n){if(Ke.current!==Zt)throw Error(i(168));Ce(Ke,t),Ce(tt,n)}function gu(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(i(108,Se(e)||"Unknown",o));return Y({},n,r)}function Rs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Zt,hn=Ke.current,Ce(Ke,e),Ce(tt,tt.current),!0}function yu(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=gu(e,t,hn),r.__reactInternalMemoizedMergedChildContext=e,Ee(tt),Ee(Ke),Ce(Ke,e)):Ee(tt),Ce(tt,n)}var $t=null,Ls=!1,ka=!1;function vu(e){$t===null?$t=[e]:$t.push(e)}function Mm(e){Ls=!0,vu(e)}function en(){if(!ka&&$t!==null){ka=!0;var e=0,t=je;try{var n=$t;for(je=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}$t=null,Ls=!1}catch(o){throw $t!==null&&($t=$t.slice(e+1)),wi(Wl,en),o}finally{je=t,ka=!1}}return null}var Un=[],Bn=0,_s=null,Ms=0,ft=[],mt=0,xn=null,Ft=1,It="";function gn(e,t){Un[Bn++]=Ms,Un[Bn++]=_s,_s=e,Ms=t}function ju(e,t,n){ft[mt++]=Ft,ft[mt++]=It,ft[mt++]=xn,xn=e;var r=Ft;e=It;var o=32-vt(r)-1;r&=~(1<<o),n+=1;var u=32-vt(t)+o;if(30<u){var m=o-o%5;u=(r&(1<<m)-1).toString(32),r>>=m,o-=m,Ft=1<<32-vt(t)+o|n<<o|r,It=u+e}else Ft=1<<u|n<<o|r,It=e}function Sa(e){e.return!==null&&(gn(e,1),ju(e,1,0))}function Ca(e){for(;e===_s;)_s=Un[--Bn],Un[Bn]=null,Ms=Un[--Bn],Un[Bn]=null;for(;e===xn;)xn=ft[--mt],ft[mt]=null,It=ft[--mt],ft[mt]=null,Ft=ft[--mt],ft[mt]=null}var ut=null,ct=null,Te=!1,wt=null;function wu(e,t){var n=gt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Nu(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,ut=e,ct=Xt(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,ut=e,ct=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=xn!==null?{id:Ft,overflow:It}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=gt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,ut=e,ct=null,!0):!1;default:return!1}}function ba(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Ea(e){if(Te){var t=ct;if(t){var n=t;if(!Nu(e,t)){if(ba(e))throw Error(i(418));t=Xt(n.nextSibling);var r=ut;t&&Nu(e,t)?wu(r,n):(e.flags=e.flags&-4097|2,Te=!1,ut=e)}}else{if(ba(e))throw Error(i(418));e.flags=e.flags&-4097|2,Te=!1,ut=e}}}function ku(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;ut=e}function Ds(e){if(e!==ut)return!1;if(!Te)return ku(e),Te=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!ya(e.type,e.memoizedProps)),t&&(t=ct)){if(ba(e))throw Su(),Error(i(418));for(;t;)wu(e,t),t=Xt(t.nextSibling)}if(ku(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){ct=Xt(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}ct=null}}else ct=ut?Xt(e.stateNode.nextSibling):null;return!0}function Su(){for(var e=ct;e;)e=Xt(e.nextSibling)}function Vn(){ct=ut=null,Te=!1}function Pa(e){wt===null?wt=[e]:wt.push(e)}var Dm=F.ReactCurrentBatchConfig;function _r(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=r,u=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===u?t.ref:(t=function(m){var w=o.refs;m===null?delete w[u]:w[u]=m},t._stringRef=u,t)}if(typeof e!="string")throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function zs(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Cu(e){var t=e._init;return t(e._payload)}function bu(e){function t(T,C){if(e){var R=T.deletions;R===null?(T.deletions=[C],T.flags|=16):R.push(C)}}function n(T,C){if(!e)return null;for(;C!==null;)t(T,C),C=C.sibling;return null}function r(T,C){for(T=new Map;C!==null;)C.key!==null?T.set(C.key,C):T.set(C.index,C),C=C.sibling;return T}function o(T,C){return T=un(T,C),T.index=0,T.sibling=null,T}function u(T,C,R){return T.index=R,e?(R=T.alternate,R!==null?(R=R.index,R<C?(T.flags|=2,C):R):(T.flags|=2,C)):(T.flags|=1048576,C)}function m(T){return e&&T.alternate===null&&(T.flags|=2),T}function w(T,C,R,B){return C===null||C.tag!==6?(C=jo(R,T.mode,B),C.return=T,C):(C=o(C,R),C.return=T,C)}function S(T,C,R,B){var J=R.type;return J===ee?A(T,C,R.props.children,B,R.key):C!==null&&(C.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===Ne&&Cu(J)===C.type)?(B=o(C,R.props),B.ref=_r(T,C,R),B.return=T,B):(B=ll(R.type,R.key,R.props,null,T.mode,B),B.ref=_r(T,C,R),B.return=T,B)}function M(T,C,R,B){return C===null||C.tag!==4||C.stateNode.containerInfo!==R.containerInfo||C.stateNode.implementation!==R.implementation?(C=wo(R,T.mode,B),C.return=T,C):(C=o(C,R.children||[]),C.return=T,C)}function A(T,C,R,B,J){return C===null||C.tag!==7?(C=Cn(R,T.mode,B,J),C.return=T,C):(C=o(C,R),C.return=T,C)}function U(T,C,R){if(typeof C=="string"&&C!==""||typeof C=="number")return C=jo(""+C,T.mode,R),C.return=T,C;if(typeof C=="object"&&C!==null){switch(C.$$typeof){case $:return R=ll(C.type,C.key,C.props,null,T.mode,R),R.ref=_r(T,null,C),R.return=T,R;case Q:return C=wo(C,T.mode,R),C.return=T,C;case Ne:var B=C._init;return U(T,B(C._payload),R)}if(or(C)||te(C))return C=Cn(C,T.mode,R,null),C.return=T,C;zs(T,C)}return null}function I(T,C,R,B){var J=C!==null?C.key:null;if(typeof R=="string"&&R!==""||typeof R=="number")return J!==null?null:w(T,C,""+R,B);if(typeof R=="object"&&R!==null){switch(R.$$typeof){case $:return R.key===J?S(T,C,R,B):null;case Q:return R.key===J?M(T,C,R,B):null;case Ne:return J=R._init,I(T,C,J(R._payload),B)}if(or(R)||te(R))return J!==null?null:A(T,C,R,B,null);zs(T,R)}return null}function W(T,C,R,B,J){if(typeof B=="string"&&B!==""||typeof B=="number")return T=T.get(R)||null,w(C,T,""+B,J);if(typeof B=="object"&&B!==null){switch(B.$$typeof){case $:return T=T.get(B.key===null?R:B.key)||null,S(C,T,B,J);case Q:return T=T.get(B.key===null?R:B.key)||null,M(C,T,B,J);case Ne:var re=B._init;return W(T,C,R,re(B._payload),J)}if(or(B)||te(B))return T=T.get(R)||null,A(C,T,B,J,null);zs(C,B)}return null}function q(T,C,R,B){for(var J=null,re=null,se=C,le=C=0,We=null;se!==null&&le<R.length;le++){se.index>le?(We=se,se=null):We=se.sibling;var pe=I(T,se,R[le],B);if(pe===null){se===null&&(se=We);break}e&&se&&pe.alternate===null&&t(T,se),C=u(pe,C,le),re===null?J=pe:re.sibling=pe,re=pe,se=We}if(le===R.length)return n(T,se),Te&&gn(T,le),J;if(se===null){for(;le<R.length;le++)se=U(T,R[le],B),se!==null&&(C=u(se,C,le),re===null?J=se:re.sibling=se,re=se);return Te&&gn(T,le),J}for(se=r(T,se);le<R.length;le++)We=W(se,T,le,R[le],B),We!==null&&(e&&We.alternate!==null&&se.delete(We.key===null?le:We.key),C=u(We,C,le),re===null?J=We:re.sibling=We,re=We);return e&&se.forEach(function(cn){return t(T,cn)}),Te&&gn(T,le),J}function X(T,C,R,B){var J=te(R);if(typeof J!="function")throw Error(i(150));if(R=J.call(R),R==null)throw Error(i(151));for(var re=J=null,se=C,le=C=0,We=null,pe=R.next();se!==null&&!pe.done;le++,pe=R.next()){se.index>le?(We=se,se=null):We=se.sibling;var cn=I(T,se,pe.value,B);if(cn===null){se===null&&(se=We);break}e&&se&&cn.alternate===null&&t(T,se),C=u(cn,C,le),re===null?J=cn:re.sibling=cn,re=cn,se=We}if(pe.done)return n(T,se),Te&&gn(T,le),J;if(se===null){for(;!pe.done;le++,pe=R.next())pe=U(T,pe.value,B),pe!==null&&(C=u(pe,C,le),re===null?J=pe:re.sibling=pe,re=pe);return Te&&gn(T,le),J}for(se=r(T,se);!pe.done;le++,pe=R.next())pe=W(se,T,le,pe.value,B),pe!==null&&(e&&pe.alternate!==null&&se.delete(pe.key===null?le:pe.key),C=u(pe,C,le),re===null?J=pe:re.sibling=pe,re=pe);return e&&se.forEach(function(mp){return t(T,mp)}),Te&&gn(T,le),J}function Ie(T,C,R,B){if(typeof R=="object"&&R!==null&&R.type===ee&&R.key===null&&(R=R.props.children),typeof R=="object"&&R!==null){switch(R.$$typeof){case $:e:{for(var J=R.key,re=C;re!==null;){if(re.key===J){if(J=R.type,J===ee){if(re.tag===7){n(T,re.sibling),C=o(re,R.props.children),C.return=T,T=C;break e}}else if(re.elementType===J||typeof J=="object"&&J!==null&&J.$$typeof===Ne&&Cu(J)===re.type){n(T,re.sibling),C=o(re,R.props),C.ref=_r(T,re,R),C.return=T,T=C;break e}n(T,re);break}else t(T,re);re=re.sibling}R.type===ee?(C=Cn(R.props.children,T.mode,B,R.key),C.return=T,T=C):(B=ll(R.type,R.key,R.props,null,T.mode,B),B.ref=_r(T,C,R),B.return=T,T=B)}return m(T);case Q:e:{for(re=R.key;C!==null;){if(C.key===re)if(C.tag===4&&C.stateNode.containerInfo===R.containerInfo&&C.stateNode.implementation===R.implementation){n(T,C.sibling),C=o(C,R.children||[]),C.return=T,T=C;break e}else{n(T,C);break}else t(T,C);C=C.sibling}C=wo(R,T.mode,B),C.return=T,T=C}return m(T);case Ne:return re=R._init,Ie(T,C,re(R._payload),B)}if(or(R))return q(T,C,R,B);if(te(R))return X(T,C,R,B);zs(T,R)}return typeof R=="string"&&R!==""||typeof R=="number"?(R=""+R,C!==null&&C.tag===6?(n(T,C.sibling),C=o(C,R),C.return=T,T=C):(n(T,C),C=jo(R,T.mode,B),C.return=T,T=C),m(T)):n(T,C)}return Ie}var Hn=bu(!0),Eu=bu(!1),$s=Jt(null),Fs=null,Wn=null,Ta=null;function Ra(){Ta=Wn=Fs=null}function La(e){var t=$s.current;Ee($s),e._currentValue=t}function _a(e,t,n){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===n)break;e=e.return}}function Qn(e,t){Fs=e,Ta=Wn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(rt=!0),e.firstContext=null)}function pt(e){var t=e._currentValue;if(Ta!==e)if(e={context:e,memoizedValue:t,next:null},Wn===null){if(Fs===null)throw Error(i(308));Wn=e,Fs.dependencies={lanes:0,firstContext:e}}else Wn=Wn.next=e;return t}var yn=null;function Ma(e){yn===null?yn=[e]:yn.push(e)}function Pu(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,Ma(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ot(e,r)}function Ot(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var tn=!1;function Da(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Tu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function At(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function nn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(de&2)!==0){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ot(e,n)}return o=r.interleaved,o===null?(t.next=t,Ma(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ot(e,n)}function Is(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Kl(e,n)}}function Ru(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var m={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?o=u=m:u=u.next=m,n=n.next}while(n!==null);u===null?o=u=t:u=u.next=t}else o=u=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Os(e,t,n,r){var o=e.updateQueue;tn=!1;var u=o.firstBaseUpdate,m=o.lastBaseUpdate,w=o.shared.pending;if(w!==null){o.shared.pending=null;var S=w,M=S.next;S.next=null,m===null?u=M:m.next=M,m=S;var A=e.alternate;A!==null&&(A=A.updateQueue,w=A.lastBaseUpdate,w!==m&&(w===null?A.firstBaseUpdate=M:w.next=M,A.lastBaseUpdate=S))}if(u!==null){var U=o.baseState;m=0,A=M=S=null,w=u;do{var I=w.lane,W=w.eventTime;if((r&I)===I){A!==null&&(A=A.next={eventTime:W,lane:0,tag:w.tag,payload:w.payload,callback:w.callback,next:null});e:{var q=e,X=w;switch(I=t,W=n,X.tag){case 1:if(q=X.payload,typeof q=="function"){U=q.call(W,U,I);break e}U=q;break e;case 3:q.flags=q.flags&-65537|128;case 0:if(q=X.payload,I=typeof q=="function"?q.call(W,U,I):q,I==null)break e;U=Y({},U,I);break e;case 2:tn=!0}}w.callback!==null&&w.lane!==0&&(e.flags|=64,I=o.effects,I===null?o.effects=[w]:I.push(w))}else W={eventTime:W,lane:I,tag:w.tag,payload:w.payload,callback:w.callback,next:null},A===null?(M=A=W,S=U):A=A.next=W,m|=I;if(w=w.next,w===null){if(w=o.shared.pending,w===null)break;I=w,w=I.next,I.next=null,o.lastBaseUpdate=I,o.shared.pending=null}}while(!0);if(A===null&&(S=U),o.baseState=S,o.firstBaseUpdate=M,o.lastBaseUpdate=A,t=o.shared.interleaved,t!==null){o=t;do m|=o.lane,o=o.next;while(o!==t)}else u===null&&(o.shared.lanes=0);wn|=m,e.lanes=m,e.memoizedState=U}}function Lu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(o!==null){if(r.callback=null,r=n,typeof o!="function")throw Error(i(191,o));o.call(r)}}}var Mr={},Tt=Jt(Mr),Dr=Jt(Mr),zr=Jt(Mr);function vn(e){if(e===Mr)throw Error(i(174));return e}function za(e,t){switch(Ce(zr,t),Ce(Dr,e),Ce(Tt,Mr),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:$l(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=$l(t,e)}Ee(Tt),Ce(Tt,t)}function Gn(){Ee(Tt),Ee(Dr),Ee(zr)}function _u(e){vn(zr.current);var t=vn(Tt.current),n=$l(t,e.type);t!==n&&(Ce(Dr,e),Ce(Tt,n))}function $a(e){Dr.current===e&&(Ee(Tt),Ee(Dr))}var Le=Jt(0);function As(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){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 Fa=[];function Ia(){for(var e=0;e<Fa.length;e++)Fa[e]._workInProgressVersionPrimary=null;Fa.length=0}var Us=F.ReactCurrentDispatcher,Oa=F.ReactCurrentBatchConfig,jn=0,_e=null,Ue=null,Ve=null,Bs=!1,$r=!1,Fr=0,zm=0;function Ye(){throw Error(i(321))}function Aa(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!jt(e[n],t[n]))return!1;return!0}function Ua(e,t,n,r,o,u){if(jn=u,_e=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Us.current=e===null||e.memoizedState===null?Om:Am,e=n(r,o),$r){u=0;do{if($r=!1,Fr=0,25<=u)throw Error(i(301));u+=1,Ve=Ue=null,t.updateQueue=null,Us.current=Um,e=n(r,o)}while($r)}if(Us.current=Ws,t=Ue!==null&&Ue.next!==null,jn=0,Ve=Ue=_e=null,Bs=!1,t)throw Error(i(300));return e}function Ba(){var e=Fr!==0;return Fr=0,e}function Rt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ve===null?_e.memoizedState=Ve=e:Ve=Ve.next=e,Ve}function ht(){if(Ue===null){var e=_e.alternate;e=e!==null?e.memoizedState:null}else e=Ue.next;var t=Ve===null?_e.memoizedState:Ve.next;if(t!==null)Ve=t,Ue=e;else{if(e===null)throw Error(i(310));Ue=e,e={memoizedState:Ue.memoizedState,baseState:Ue.baseState,baseQueue:Ue.baseQueue,queue:Ue.queue,next:null},Ve===null?_e.memoizedState=Ve=e:Ve=Ve.next=e}return Ve}function Ir(e,t){return typeof t=="function"?t(e):t}function Va(e){var t=ht(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=Ue,o=r.baseQueue,u=n.pending;if(u!==null){if(o!==null){var m=o.next;o.next=u.next,u.next=m}r.baseQueue=o=u,n.pending=null}if(o!==null){u=o.next,r=r.baseState;var w=m=null,S=null,M=u;do{var A=M.lane;if((jn&A)===A)S!==null&&(S=S.next={lane:0,action:M.action,hasEagerState:M.hasEagerState,eagerState:M.eagerState,next:null}),r=M.hasEagerState?M.eagerState:e(r,M.action);else{var U={lane:A,action:M.action,hasEagerState:M.hasEagerState,eagerState:M.eagerState,next:null};S===null?(w=S=U,m=r):S=S.next=U,_e.lanes|=A,wn|=A}M=M.next}while(M!==null&&M!==u);S===null?m=r:S.next=w,jt(r,t.memoizedState)||(rt=!0),t.memoizedState=r,t.baseState=m,t.baseQueue=S,n.lastRenderedState=r}if(e=n.interleaved,e!==null){o=e;do u=o.lane,_e.lanes|=u,wn|=u,o=o.next;while(o!==e)}else o===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ha(e){var t=ht(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,u=t.memoizedState;if(o!==null){n.pending=null;var m=o=o.next;do u=e(u,m.action),m=m.next;while(m!==o);jt(u,t.memoizedState)||(rt=!0),t.memoizedState=u,t.baseQueue===null&&(t.baseState=u),n.lastRenderedState=u}return[u,r]}function Mu(){}function Du(e,t){var n=_e,r=ht(),o=t(),u=!jt(r.memoizedState,o);if(u&&(r.memoizedState=o,rt=!0),r=r.queue,Wa(Fu.bind(null,n,r,e),[e]),r.getSnapshot!==t||u||Ve!==null&&Ve.memoizedState.tag&1){if(n.flags|=2048,Or(9,$u.bind(null,n,r,o,t),void 0,null),He===null)throw Error(i(349));(jn&30)!==0||zu(n,t,o)}return o}function zu(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=_e.updateQueue,t===null?(t={lastEffect:null,stores:null},_e.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function $u(e,t,n,r){t.value=n,t.getSnapshot=r,Iu(t)&&Ou(e)}function Fu(e,t,n){return n(function(){Iu(t)&&Ou(e)})}function Iu(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!jt(e,n)}catch{return!0}}function Ou(e){var t=Ot(e,1);t!==null&&Ct(t,e,1,-1)}function Au(e){var t=Rt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ir,lastRenderedState:e},t.queue=e,e=e.dispatch=Im.bind(null,_e,e),[t.memoizedState,e]}function Or(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=_e.updateQueue,t===null?(t={lastEffect:null,stores:null},_e.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function Uu(){return ht().memoizedState}function Vs(e,t,n,r){var o=Rt();_e.flags|=e,o.memoizedState=Or(1|t,n,void 0,r===void 0?null:r)}function Hs(e,t,n,r){var o=ht();r=r===void 0?null:r;var u=void 0;if(Ue!==null){var m=Ue.memoizedState;if(u=m.destroy,r!==null&&Aa(r,m.deps)){o.memoizedState=Or(t,n,u,r);return}}_e.flags|=e,o.memoizedState=Or(1|t,n,u,r)}function Bu(e,t){return Vs(8390656,8,e,t)}function Wa(e,t){return Hs(2048,8,e,t)}function Vu(e,t){return Hs(4,2,e,t)}function Hu(e,t){return Hs(4,4,e,t)}function Wu(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Qu(e,t,n){return n=n!=null?n.concat([e]):null,Hs(4,4,Wu.bind(null,t,e),n)}function Qa(){}function Gu(e,t){var n=ht();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Aa(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ku(e,t){var n=ht();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Aa(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Yu(e,t,n){return(jn&21)===0?(e.baseState&&(e.baseState=!1,rt=!0),e.memoizedState=n):(jt(n,t)||(n=Ci(),_e.lanes|=n,wn|=n,e.baseState=!0),t)}function $m(e,t){var n=je;je=n!==0&&4>n?n:4,e(!0);var r=Oa.transition;Oa.transition={};try{e(!1),t()}finally{je=n,Oa.transition=r}}function qu(){return ht().memoizedState}function Fm(e,t,n){var r=an(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Xu(e))Ju(t,n);else if(n=Pu(e,t,n,r),n!==null){var o=et();Ct(n,e,r,o),Zu(n,t,r)}}function Im(e,t,n){var r=an(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Xu(e))Ju(t,o);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var m=t.lastRenderedState,w=u(m,n);if(o.hasEagerState=!0,o.eagerState=w,jt(w,m)){var S=t.interleaved;S===null?(o.next=o,Ma(t)):(o.next=S.next,S.next=o),t.interleaved=o;return}}catch{}finally{}n=Pu(e,t,o,r),n!==null&&(o=et(),Ct(n,e,r,o),Zu(n,t,r))}}function Xu(e){var t=e.alternate;return e===_e||t!==null&&t===_e}function Ju(e,t){$r=Bs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Zu(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Kl(e,n)}}var Ws={readContext:pt,useCallback:Ye,useContext:Ye,useEffect:Ye,useImperativeHandle:Ye,useInsertionEffect:Ye,useLayoutEffect:Ye,useMemo:Ye,useReducer:Ye,useRef:Ye,useState:Ye,useDebugValue:Ye,useDeferredValue:Ye,useTransition:Ye,useMutableSource:Ye,useSyncExternalStore:Ye,useId:Ye,unstable_isNewReconciler:!1},Om={readContext:pt,useCallback:function(e,t){return Rt().memoizedState=[e,t===void 0?null:t],e},useContext:pt,useEffect:Bu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Vs(4194308,4,Wu.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Vs(4194308,4,e,t)},useInsertionEffect:function(e,t){return Vs(4,2,e,t)},useMemo:function(e,t){var n=Rt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Rt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Fm.bind(null,_e,e),[r.memoizedState,e]},useRef:function(e){var t=Rt();return e={current:e},t.memoizedState=e},useState:Au,useDebugValue:Qa,useDeferredValue:function(e){return Rt().memoizedState=e},useTransition:function(){var e=Au(!1),t=e[0];return e=$m.bind(null,e[1]),Rt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=_e,o=Rt();if(Te){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),He===null)throw Error(i(349));(jn&30)!==0||zu(r,t,n)}o.memoizedState=n;var u={value:n,getSnapshot:t};return o.queue=u,Bu(Fu.bind(null,r,u,e),[e]),r.flags|=2048,Or(9,$u.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=Rt(),t=He.identifierPrefix;if(Te){var n=It,r=Ft;n=(r&~(1<<32-vt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Fr++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=zm++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Am={readContext:pt,useCallback:Gu,useContext:pt,useEffect:Wa,useImperativeHandle:Qu,useInsertionEffect:Vu,useLayoutEffect:Hu,useMemo:Ku,useReducer:Va,useRef:Uu,useState:function(){return Va(Ir)},useDebugValue:Qa,useDeferredValue:function(e){var t=ht();return Yu(t,Ue.memoizedState,e)},useTransition:function(){var e=Va(Ir)[0],t=ht().memoizedState;return[e,t]},useMutableSource:Mu,useSyncExternalStore:Du,useId:qu,unstable_isNewReconciler:!1},Um={readContext:pt,useCallback:Gu,useContext:pt,useEffect:Wa,useImperativeHandle:Qu,useInsertionEffect:Vu,useLayoutEffect:Hu,useMemo:Ku,useReducer:Ha,useRef:Uu,useState:function(){return Ha(Ir)},useDebugValue:Qa,useDeferredValue:function(e){var t=ht();return Ue===null?t.memoizedState=e:Yu(t,Ue.memoizedState,e)},useTransition:function(){var e=Ha(Ir)[0],t=ht().memoizedState;return[e,t]},useMutableSource:Mu,useSyncExternalStore:Du,useId:qu,unstable_isNewReconciler:!1};function Nt(e,t){if(e&&e.defaultProps){t=Y({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Ga(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Y({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Qs={isMounted:function(e){return(e=e._reactInternals)?mn(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=et(),o=an(e),u=At(r,o);u.payload=t,n!=null&&(u.callback=n),t=nn(e,u,o),t!==null&&(Ct(t,e,o,r),Is(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=et(),o=an(e),u=At(r,o);u.tag=1,u.payload=t,n!=null&&(u.callback=n),t=nn(e,u,o),t!==null&&(Ct(t,e,o,r),Is(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=et(),r=an(e),o=At(n,r);o.tag=2,t!=null&&(o.callback=t),t=nn(e,o,r),t!==null&&(Ct(t,e,r,n),Is(t,e,r))}};function ec(e,t,n,r,o,u,m){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,u,m):t.prototype&&t.prototype.isPureReactComponent?!Cr(n,r)||!Cr(o,u):!0}function tc(e,t,n){var r=!1,o=Zt,u=t.contextType;return typeof u=="object"&&u!==null?u=pt(u):(o=nt(t)?hn:Ke.current,r=t.contextTypes,u=(r=r!=null)?An(e,o):Zt),t=new t(n,u),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Qs,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=u),t}function nc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Qs.enqueueReplaceState(t,t.state,null)}function Ka(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Da(e);var u=t.contextType;typeof u=="object"&&u!==null?o.context=pt(u):(u=nt(t)?hn:Ke.current,o.context=An(e,u)),o.state=e.memoizedState,u=t.getDerivedStateFromProps,typeof u=="function"&&(Ga(e,t,u,n),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&Qs.enqueueReplaceState(o,o.state,null),Os(e,n,o,r),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Kn(e,t){try{var n="",r=t;do n+=fe(r),r=r.return;while(r);var o=n}catch(u){o=`
|
|
39
|
-
Error generating stack: `+u.message+`
|
|
40
|
-
`+u.stack}return{value:e,source:t,stack:o,digest:null}}function Ya(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function qa(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Bm=typeof WeakMap=="function"?WeakMap:Map;function rc(e,t,n){n=At(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Zs||(Zs=!0,fo=r),qa(e,t)},n}function sc(e,t,n){n=At(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){qa(e,t)}}var u=e.stateNode;return u!==null&&typeof u.componentDidCatch=="function"&&(n.callback=function(){qa(e,t),typeof r!="function"&&(sn===null?sn=new Set([this]):sn.add(this));var m=t.stack;this.componentDidCatch(t.value,{componentStack:m!==null?m:""})}),n}function lc(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bm;var o=new Set;r.set(t,o)}else o=r.get(t),o===void 0&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=np.bind(null,e,t,n),t.then(e,e))}function ac(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function oc(e,t,n,r,o){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=At(-1,1),t.tag=2,nn(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Vm=F.ReactCurrentOwner,rt=!1;function Ze(e,t,n,r){t.child=e===null?Eu(t,null,n,r):Hn(t,e.child,n,r)}function ic(e,t,n,r,o){n=n.render;var u=t.ref;return Qn(t,o),r=Ua(e,t,n,r,u,o),n=Ba(),e!==null&&!rt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Ut(e,t,o)):(Te&&n&&Sa(t),t.flags|=1,Ze(e,t,r,o),t.child)}function uc(e,t,n,r,o){if(e===null){var u=n.type;return typeof u=="function"&&!vo(u)&&u.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=u,cc(e,t,u,r,o)):(e=ll(n.type,null,r,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(u=e.child,(e.lanes&o)===0){var m=u.memoizedProps;if(n=n.compare,n=n!==null?n:Cr,n(m,r)&&e.ref===t.ref)return Ut(e,t,o)}return t.flags|=1,e=un(u,r),e.ref=t.ref,e.return=t,t.child=e}function cc(e,t,n,r,o){if(e!==null){var u=e.memoizedProps;if(Cr(u,r)&&e.ref===t.ref)if(rt=!1,t.pendingProps=r=u,(e.lanes&o)!==0)(e.flags&131072)!==0&&(rt=!0);else return t.lanes=e.lanes,Ut(e,t,o)}return Xa(e,t,n,r,o)}function dc(e,t,n){var r=t.pendingProps,o=r.children,u=e!==null?e.memoizedState:null;if(r.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ce(qn,dt),dt|=n;else{if((n&1073741824)===0)return e=u!==null?u.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ce(qn,dt),dt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=u!==null?u.baseLanes:n,Ce(qn,dt),dt|=r}else u!==null?(r=u.baseLanes|n,t.memoizedState=null):r=n,Ce(qn,dt),dt|=r;return Ze(e,t,o,n),t.child}function fc(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Xa(e,t,n,r,o){var u=nt(n)?hn:Ke.current;return u=An(t,u),Qn(t,o),n=Ua(e,t,n,r,u,o),r=Ba(),e!==null&&!rt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Ut(e,t,o)):(Te&&r&&Sa(t),t.flags|=1,Ze(e,t,n,o),t.child)}function mc(e,t,n,r,o){if(nt(n)){var u=!0;Rs(t)}else u=!1;if(Qn(t,o),t.stateNode===null)Ks(e,t),tc(t,n,r),Ka(t,n,r,o),r=!0;else if(e===null){var m=t.stateNode,w=t.memoizedProps;m.props=w;var S=m.context,M=n.contextType;typeof M=="object"&&M!==null?M=pt(M):(M=nt(n)?hn:Ke.current,M=An(t,M));var A=n.getDerivedStateFromProps,U=typeof A=="function"||typeof m.getSnapshotBeforeUpdate=="function";U||typeof m.UNSAFE_componentWillReceiveProps!="function"&&typeof m.componentWillReceiveProps!="function"||(w!==r||S!==M)&&nc(t,m,r,M),tn=!1;var I=t.memoizedState;m.state=I,Os(t,r,m,o),S=t.memoizedState,w!==r||I!==S||tt.current||tn?(typeof A=="function"&&(Ga(t,n,A,r),S=t.memoizedState),(w=tn||ec(t,n,w,r,I,S,M))?(U||typeof m.UNSAFE_componentWillMount!="function"&&typeof m.componentWillMount!="function"||(typeof m.componentWillMount=="function"&&m.componentWillMount(),typeof m.UNSAFE_componentWillMount=="function"&&m.UNSAFE_componentWillMount()),typeof m.componentDidMount=="function"&&(t.flags|=4194308)):(typeof m.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=S),m.props=r,m.state=S,m.context=M,r=w):(typeof m.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{m=t.stateNode,Tu(e,t),w=t.memoizedProps,M=t.type===t.elementType?w:Nt(t.type,w),m.props=M,U=t.pendingProps,I=m.context,S=n.contextType,typeof S=="object"&&S!==null?S=pt(S):(S=nt(n)?hn:Ke.current,S=An(t,S));var W=n.getDerivedStateFromProps;(A=typeof W=="function"||typeof m.getSnapshotBeforeUpdate=="function")||typeof m.UNSAFE_componentWillReceiveProps!="function"&&typeof m.componentWillReceiveProps!="function"||(w!==U||I!==S)&&nc(t,m,r,S),tn=!1,I=t.memoizedState,m.state=I,Os(t,r,m,o);var q=t.memoizedState;w!==U||I!==q||tt.current||tn?(typeof W=="function"&&(Ga(t,n,W,r),q=t.memoizedState),(M=tn||ec(t,n,M,r,I,q,S)||!1)?(A||typeof m.UNSAFE_componentWillUpdate!="function"&&typeof m.componentWillUpdate!="function"||(typeof m.componentWillUpdate=="function"&&m.componentWillUpdate(r,q,S),typeof m.UNSAFE_componentWillUpdate=="function"&&m.UNSAFE_componentWillUpdate(r,q,S)),typeof m.componentDidUpdate=="function"&&(t.flags|=4),typeof m.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof m.componentDidUpdate!="function"||w===e.memoizedProps&&I===e.memoizedState||(t.flags|=4),typeof m.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&I===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=q),m.props=r,m.state=q,m.context=S,r=M):(typeof m.componentDidUpdate!="function"||w===e.memoizedProps&&I===e.memoizedState||(t.flags|=4),typeof m.getSnapshotBeforeUpdate!="function"||w===e.memoizedProps&&I===e.memoizedState||(t.flags|=1024),r=!1)}return Ja(e,t,n,r,u,o)}function Ja(e,t,n,r,o,u){fc(e,t);var m=(t.flags&128)!==0;if(!r&&!m)return o&&yu(t,n,!1),Ut(e,t,u);r=t.stateNode,Vm.current=t;var w=m&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&m?(t.child=Hn(t,e.child,null,u),t.child=Hn(t,null,w,u)):Ze(e,t,w,u),t.memoizedState=r.state,o&&yu(t,n,!0),t.child}function pc(e){var t=e.stateNode;t.pendingContext?xu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&xu(e,t.context,!1),za(e,t.containerInfo)}function hc(e,t,n,r,o){return Vn(),Pa(o),t.flags|=256,Ze(e,t,n,r),t.child}var Za={dehydrated:null,treeContext:null,retryLane:0};function eo(e){return{baseLanes:e,cachePool:null,transitions:null}}function xc(e,t,n){var r=t.pendingProps,o=Le.current,u=!1,m=(t.flags&128)!==0,w;if((w=m)||(w=e!==null&&e.memoizedState===null?!1:(o&2)!==0),w?(u=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),Ce(Le,o&1),e===null)return Ea(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(m=r.children,e=r.fallback,u?(r=t.mode,u=t.child,m={mode:"hidden",children:m},(r&1)===0&&u!==null?(u.childLanes=0,u.pendingProps=m):u=al(m,r,0,null),e=Cn(e,r,n,null),u.return=t,e.return=t,u.sibling=e,t.child=u,t.child.memoizedState=eo(n),t.memoizedState=Za,e):to(t,m));if(o=e.memoizedState,o!==null&&(w=o.dehydrated,w!==null))return Hm(e,t,m,r,w,o,n);if(u){u=r.fallback,m=t.mode,o=e.child,w=o.sibling;var S={mode:"hidden",children:r.children};return(m&1)===0&&t.child!==o?(r=t.child,r.childLanes=0,r.pendingProps=S,t.deletions=null):(r=un(o,S),r.subtreeFlags=o.subtreeFlags&14680064),w!==null?u=un(w,u):(u=Cn(u,m,n,null),u.flags|=2),u.return=t,r.return=t,r.sibling=u,t.child=r,r=u,u=t.child,m=e.child.memoizedState,m=m===null?eo(n):{baseLanes:m.baseLanes|n,cachePool:null,transitions:m.transitions},u.memoizedState=m,u.childLanes=e.childLanes&~n,t.memoizedState=Za,r}return u=e.child,e=u.sibling,r=un(u,{mode:"visible",children:r.children}),(t.mode&1)===0&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function to(e,t){return t=al({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Gs(e,t,n,r){return r!==null&&Pa(r),Hn(t,e.child,null,n),e=to(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Hm(e,t,n,r,o,u,m){if(n)return t.flags&256?(t.flags&=-257,r=Ya(Error(i(422))),Gs(e,t,m,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(u=r.fallback,o=t.mode,r=al({mode:"visible",children:r.children},o,0,null),u=Cn(u,o,m,null),u.flags|=2,r.return=t,u.return=t,r.sibling=u,t.child=r,(t.mode&1)!==0&&Hn(t,e.child,null,m),t.child.memoizedState=eo(m),t.memoizedState=Za,u);if((t.mode&1)===0)return Gs(e,t,m,null);if(o.data==="$!"){if(r=o.nextSibling&&o.nextSibling.dataset,r)var w=r.dgst;return r=w,u=Error(i(419)),r=Ya(u,r,void 0),Gs(e,t,m,r)}if(w=(m&e.childLanes)!==0,rt||w){if(r=He,r!==null){switch(m&-m){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=(o&(r.suspendedLanes|m))!==0?0:o,o!==0&&o!==u.retryLane&&(u.retryLane=o,Ot(e,o),Ct(r,e,o,-1))}return yo(),r=Ya(Error(i(421))),Gs(e,t,m,r)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=rp.bind(null,e),o._reactRetry=t,null):(e=u.treeContext,ct=Xt(o.nextSibling),ut=t,Te=!0,wt=null,e!==null&&(ft[mt++]=Ft,ft[mt++]=It,ft[mt++]=xn,Ft=e.id,It=e.overflow,xn=t),t=to(t,r.children),t.flags|=4096,t)}function gc(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),_a(e.return,t,n)}function no(e,t,n,r,o){var u=e.memoizedState;u===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(u.isBackwards=t,u.rendering=null,u.renderingStartTime=0,u.last=r,u.tail=n,u.tailMode=o)}function yc(e,t,n){var r=t.pendingProps,o=r.revealOrder,u=r.tail;if(Ze(e,t,r.children,n),r=Le.current,(r&2)!==0)r=r&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&gc(e,n,t);else if(e.tag===19)gc(e,n,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}r&=1}if(Ce(Le,r),(t.mode&1)===0)t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&As(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),no(t,!1,o,n,u);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&As(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}no(t,!0,n,null,u);break;case"together":no(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ks(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Ut(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),wn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=un(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=un(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Wm(e,t,n){switch(t.tag){case 3:pc(t),Vn();break;case 5:_u(t);break;case 1:nt(t.type)&&Rs(t);break;case 4:za(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Ce($s,r._currentValue),r._currentValue=o;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(Ce(Le,Le.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?xc(e,t,n):(Ce(Le,Le.current&1),e=Ut(e,t,n),e!==null?e.sibling:null);Ce(Le,Le.current&1);break;case 19:if(r=(n&t.childLanes)!==0,(e.flags&128)!==0){if(r)return yc(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),Ce(Le,Le.current),r)break;return null;case 22:case 23:return t.lanes=0,dc(e,t,n)}return Ut(e,t,n)}var vc,ro,jc,wc;vc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},ro=function(){},jc=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,vn(Tt.current);var u=null;switch(n){case"input":o=_l(e,o),r=_l(e,r),u=[];break;case"select":o=Y({},o,{value:void 0}),r=Y({},r,{value:void 0}),u=[];break;case"textarea":o=zl(e,o),r=zl(e,r),u=[];break;default:typeof o.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Es)}Fl(n,r);var m;n=null;for(M in o)if(!r.hasOwnProperty(M)&&o.hasOwnProperty(M)&&o[M]!=null)if(M==="style"){var w=o[M];for(m in w)w.hasOwnProperty(m)&&(n||(n={}),n[m]="")}else M!=="dangerouslySetInnerHTML"&&M!=="children"&&M!=="suppressContentEditableWarning"&&M!=="suppressHydrationWarning"&&M!=="autoFocus"&&(f.hasOwnProperty(M)?u||(u=[]):(u=u||[]).push(M,null));for(M in r){var S=r[M];if(w=o!=null?o[M]:void 0,r.hasOwnProperty(M)&&S!==w&&(S!=null||w!=null))if(M==="style")if(w){for(m in w)!w.hasOwnProperty(m)||S&&S.hasOwnProperty(m)||(n||(n={}),n[m]="");for(m in S)S.hasOwnProperty(m)&&w[m]!==S[m]&&(n||(n={}),n[m]=S[m])}else n||(u||(u=[]),u.push(M,n)),n=S;else M==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,w=w?w.__html:void 0,S!=null&&w!==S&&(u=u||[]).push(M,S)):M==="children"?typeof S!="string"&&typeof S!="number"||(u=u||[]).push(M,""+S):M!=="suppressContentEditableWarning"&&M!=="suppressHydrationWarning"&&(f.hasOwnProperty(M)?(S!=null&&M==="onScroll"&&be("scroll",e),u||w===S||(u=[])):(u=u||[]).push(M,S))}n&&(u=u||[]).push("style",n);var M=u;(t.updateQueue=M)&&(t.flags|=4)}},wc=function(e,t,n,r){n!==r&&(t.flags|=4)};function Ar(e,t){if(!Te)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function qe(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags&14680064,r|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Qm(e,t,n){var r=t.pendingProps;switch(Ca(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return qe(t),null;case 1:return nt(t.type)&&Ts(),qe(t),null;case 3:return r=t.stateNode,Gn(),Ee(tt),Ee(Ke),Ia(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ds(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,wt!==null&&(ho(wt),wt=null))),ro(e,t),qe(t),null;case 5:$a(t);var o=vn(zr.current);if(n=t.type,e!==null&&t.stateNode!=null)jc(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(i(166));return qe(t),null}if(e=vn(Tt.current),Ds(t)){r=t.stateNode,n=t.type;var u=t.memoizedProps;switch(r[Pt]=t,r[Rr]=u,e=(t.mode&1)!==0,n){case"dialog":be("cancel",r),be("close",r);break;case"iframe":case"object":case"embed":be("load",r);break;case"video":case"audio":for(o=0;o<Er.length;o++)be(Er[o],r);break;case"source":be("error",r);break;case"img":case"image":case"link":be("error",r),be("load",r);break;case"details":be("toggle",r);break;case"input":ti(r,u),be("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!u.multiple},be("invalid",r);break;case"textarea":si(r,u),be("invalid",r)}Fl(n,u),o=null;for(var m in u)if(u.hasOwnProperty(m)){var w=u[m];m==="children"?typeof w=="string"?r.textContent!==w&&(u.suppressHydrationWarning!==!0&&bs(r.textContent,w,e),o=["children",w]):typeof w=="number"&&r.textContent!==""+w&&(u.suppressHydrationWarning!==!0&&bs(r.textContent,w,e),o=["children",""+w]):f.hasOwnProperty(m)&&w!=null&&m==="onScroll"&&be("scroll",r)}switch(n){case"input":rs(r),ri(r,u,!0);break;case"textarea":rs(r),ai(r);break;case"select":case"option":break;default:typeof u.onClick=="function"&&(r.onclick=Es)}r=o,t.updateQueue=r,r!==null&&(t.flags|=4)}else{m=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=oi(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=m.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=m.createElement(n,{is:r.is}):(e=m.createElement(n),n==="select"&&(m=e,r.multiple?m.multiple=!0:r.size&&(m.size=r.size))):e=m.createElementNS(e,n),e[Pt]=t,e[Rr]=r,vc(e,t,!1,!1),t.stateNode=e;e:{switch(m=Il(n,r),n){case"dialog":be("cancel",e),be("close",e),o=r;break;case"iframe":case"object":case"embed":be("load",e),o=r;break;case"video":case"audio":for(o=0;o<Er.length;o++)be(Er[o],e);o=r;break;case"source":be("error",e),o=r;break;case"img":case"image":case"link":be("error",e),be("load",e),o=r;break;case"details":be("toggle",e),o=r;break;case"input":ti(e,r),o=_l(e,r),be("invalid",e);break;case"option":o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=Y({},r,{value:void 0}),be("invalid",e);break;case"textarea":si(e,r),o=zl(e,r),be("invalid",e);break;default:o=r}Fl(n,o),w=o;for(u in w)if(w.hasOwnProperty(u)){var S=w[u];u==="style"?ci(e,S):u==="dangerouslySetInnerHTML"?(S=S?S.__html:void 0,S!=null&&ii(e,S)):u==="children"?typeof S=="string"?(n!=="textarea"||S!=="")&&ir(e,S):typeof S=="number"&&ir(e,""+S):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(f.hasOwnProperty(u)?S!=null&&u==="onScroll"&&be("scroll",e):S!=null&&E(e,u,S,m))}switch(n){case"input":rs(e),ri(e,r,!1);break;case"textarea":rs(e),ai(e);break;case"option":r.value!=null&&e.setAttribute("value",""+ve(r.value));break;case"select":e.multiple=!!r.multiple,u=r.value,u!=null?Pn(e,!!r.multiple,u,!1):r.defaultValue!=null&&Pn(e,!!r.multiple,r.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=Es)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return qe(t),null;case 6:if(e&&t.stateNode!=null)wc(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(i(166));if(n=vn(zr.current),vn(Tt.current),Ds(t)){if(r=t.stateNode,n=t.memoizedProps,r[Pt]=t,(u=r.nodeValue!==n)&&(e=ut,e!==null))switch(e.tag){case 3:bs(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&bs(r.nodeValue,n,(e.mode&1)!==0)}u&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Pt]=t,t.stateNode=r}return qe(t),null;case 13:if(Ee(Le),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Te&&ct!==null&&(t.mode&1)!==0&&(t.flags&128)===0)Su(),Vn(),t.flags|=98560,u=!1;else if(u=Ds(t),r!==null&&r.dehydrated!==null){if(e===null){if(!u)throw Error(i(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[Pt]=t}else Vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;qe(t),u=!1}else wt!==null&&(ho(wt),wt=null),u=!0;if(!u)return t.flags&65536?t:null}return(t.flags&128)!==0?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,(t.mode&1)!==0&&(e===null||(Le.current&1)!==0?Be===0&&(Be=3):yo())),t.updateQueue!==null&&(t.flags|=4),qe(t),null);case 4:return Gn(),ro(e,t),e===null&&Pr(t.stateNode.containerInfo),qe(t),null;case 10:return La(t.type._context),qe(t),null;case 17:return nt(t.type)&&Ts(),qe(t),null;case 19:if(Ee(Le),u=t.memoizedState,u===null)return qe(t),null;if(r=(t.flags&128)!==0,m=u.rendering,m===null)if(r)Ar(u,!1);else{if(Be!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(m=As(e),m!==null){for(t.flags|=128,Ar(u,!1),r=m.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)u=n,e=r,u.flags&=14680066,m=u.alternate,m===null?(u.childLanes=0,u.lanes=e,u.child=null,u.subtreeFlags=0,u.memoizedProps=null,u.memoizedState=null,u.updateQueue=null,u.dependencies=null,u.stateNode=null):(u.childLanes=m.childLanes,u.lanes=m.lanes,u.child=m.child,u.subtreeFlags=0,u.deletions=null,u.memoizedProps=m.memoizedProps,u.memoizedState=m.memoizedState,u.updateQueue=m.updateQueue,u.type=m.type,e=m.dependencies,u.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ce(Le,Le.current&1|2),t.child}e=e.sibling}u.tail!==null&&Fe()>Xn&&(t.flags|=128,r=!0,Ar(u,!1),t.lanes=4194304)}else{if(!r)if(e=As(m),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Ar(u,!0),u.tail===null&&u.tailMode==="hidden"&&!m.alternate&&!Te)return qe(t),null}else 2*Fe()-u.renderingStartTime>Xn&&n!==1073741824&&(t.flags|=128,r=!0,Ar(u,!1),t.lanes=4194304);u.isBackwards?(m.sibling=t.child,t.child=m):(n=u.last,n!==null?n.sibling=m:t.child=m,u.last=m)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=Fe(),t.sibling=null,n=Le.current,Ce(Le,r?n&1|2:n&1),t):(qe(t),null);case 22:case 23:return go(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(dt&1073741824)!==0&&(qe(t),t.subtreeFlags&6&&(t.flags|=8192)):qe(t),null;case 24:return null;case 25:return null}throw Error(i(156,t.tag))}function Gm(e,t){switch(Ca(t),t.tag){case 1:return nt(t.type)&&Ts(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Gn(),Ee(tt),Ee(Ke),Ia(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return $a(t),null;case 13:if(Ee(Le),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Ee(Le),null;case 4:return Gn(),null;case 10:return La(t.type._context),null;case 22:case 23:return go(),null;case 24:return null;default:return null}}var Ys=!1,Xe=!1,Km=typeof WeakSet=="function"?WeakSet:Set,K=null;function Yn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ze(e,t,r)}else n.current=null}function so(e,t,n){try{n()}catch(r){ze(e,t,r)}}var Nc=!1;function Ym(e,t){if(xa=hs,e=eu(),ia(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var m=0,w=-1,S=-1,M=0,A=0,U=e,I=null;t:for(;;){for(var W;U!==n||o!==0&&U.nodeType!==3||(w=m+o),U!==u||r!==0&&U.nodeType!==3||(S=m+r),U.nodeType===3&&(m+=U.nodeValue.length),(W=U.firstChild)!==null;)I=U,U=W;for(;;){if(U===e)break t;if(I===n&&++M===o&&(w=m),I===u&&++A===r&&(S=m),(W=U.nextSibling)!==null)break;U=I,I=U.parentNode}U=W}n=w===-1||S===-1?null:{start:w,end:S}}else n=null}n=n||{start:0,end:0}}else n=null;for(ga={focusedElem:e,selectionRange:n},hs=!1,K=t;K!==null;)if(t=K,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,K=e;else for(;K!==null;){t=K;try{var q=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(q!==null){var X=q.memoizedProps,Ie=q.memoizedState,T=t.stateNode,C=T.getSnapshotBeforeUpdate(t.elementType===t.type?X:Nt(t.type,X),Ie);T.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var R=t.stateNode.containerInfo;R.nodeType===1?R.textContent="":R.nodeType===9&&R.documentElement&&R.removeChild(R.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(i(163))}}catch(B){ze(t,t.return,B)}if(e=t.sibling,e!==null){e.return=t.return,K=e;break}K=t.return}return q=Nc,Nc=!1,q}function Ur(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var u=o.destroy;o.destroy=void 0,u!==void 0&&so(t,n,u)}o=o.next}while(o!==r)}}function qs(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function lo(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function kc(e){var t=e.alternate;t!==null&&(e.alternate=null,kc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Pt],delete t[Rr],delete t[wa],delete t[Lm],delete t[_m])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Sc(e){return e.tag===5||e.tag===3||e.tag===4}function Cc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Sc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ao(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Es));else if(r!==4&&(e=e.child,e!==null))for(ao(e,t,n),e=e.sibling;e!==null;)ao(e,t,n),e=e.sibling}function oo(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(oo(e,t,n),e=e.sibling;e!==null;)oo(e,t,n),e=e.sibling}var Qe=null,kt=!1;function rn(e,t,n){for(n=n.child;n!==null;)bc(e,t,n),n=n.sibling}function bc(e,t,n){if(Et&&typeof Et.onCommitFiberUnmount=="function")try{Et.onCommitFiberUnmount(us,n)}catch{}switch(n.tag){case 5:Xe||Yn(n,t);case 6:var r=Qe,o=kt;Qe=null,rn(e,t,n),Qe=r,kt=o,Qe!==null&&(kt?(e=Qe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Qe.removeChild(n.stateNode));break;case 18:Qe!==null&&(kt?(e=Qe,n=n.stateNode,e.nodeType===8?ja(e.parentNode,n):e.nodeType===1&&ja(e,n),vr(e)):ja(Qe,n.stateNode));break;case 4:r=Qe,o=kt,Qe=n.stateNode.containerInfo,kt=!0,rn(e,t,n),Qe=r,kt=o;break;case 0:case 11:case 14:case 15:if(!Xe&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var u=o,m=u.destroy;u=u.tag,m!==void 0&&((u&2)!==0||(u&4)!==0)&&so(n,t,m),o=o.next}while(o!==r)}rn(e,t,n);break;case 1:if(!Xe&&(Yn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(w){ze(n,t,w)}rn(e,t,n);break;case 21:rn(e,t,n);break;case 22:n.mode&1?(Xe=(r=Xe)||n.memoizedState!==null,rn(e,t,n),Xe=r):rn(e,t,n);break;default:rn(e,t,n)}}function Ec(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Km),t.forEach(function(r){var o=sp.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function St(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var o=n[r];try{var u=e,m=t,w=m;e:for(;w!==null;){switch(w.tag){case 5:Qe=w.stateNode,kt=!1;break e;case 3:Qe=w.stateNode.containerInfo,kt=!0;break e;case 4:Qe=w.stateNode.containerInfo,kt=!0;break e}w=w.return}if(Qe===null)throw Error(i(160));bc(u,m,o),Qe=null,kt=!1;var S=o.alternate;S!==null&&(S.return=null),o.return=null}catch(M){ze(o,t,M)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)Pc(t,e),t=t.sibling}function Pc(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(St(t,e),Lt(e),r&4){try{Ur(3,e,e.return),qs(3,e)}catch(X){ze(e,e.return,X)}try{Ur(5,e,e.return)}catch(X){ze(e,e.return,X)}}break;case 1:St(t,e),Lt(e),r&512&&n!==null&&Yn(n,n.return);break;case 5:if(St(t,e),Lt(e),r&512&&n!==null&&Yn(n,n.return),e.flags&32){var o=e.stateNode;try{ir(o,"")}catch(X){ze(e,e.return,X)}}if(r&4&&(o=e.stateNode,o!=null)){var u=e.memoizedProps,m=n!==null?n.memoizedProps:u,w=e.type,S=e.updateQueue;if(e.updateQueue=null,S!==null)try{w==="input"&&u.type==="radio"&&u.name!=null&&ni(o,u),Il(w,m);var M=Il(w,u);for(m=0;m<S.length;m+=2){var A=S[m],U=S[m+1];A==="style"?ci(o,U):A==="dangerouslySetInnerHTML"?ii(o,U):A==="children"?ir(o,U):E(o,A,U,M)}switch(w){case"input":Ml(o,u);break;case"textarea":li(o,u);break;case"select":var I=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!u.multiple;var W=u.value;W!=null?Pn(o,!!u.multiple,W,!1):I!==!!u.multiple&&(u.defaultValue!=null?Pn(o,!!u.multiple,u.defaultValue,!0):Pn(o,!!u.multiple,u.multiple?[]:"",!1))}o[Rr]=u}catch(X){ze(e,e.return,X)}}break;case 6:if(St(t,e),Lt(e),r&4){if(e.stateNode===null)throw Error(i(162));o=e.stateNode,u=e.memoizedProps;try{o.nodeValue=u}catch(X){ze(e,e.return,X)}}break;case 3:if(St(t,e),Lt(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{vr(t.containerInfo)}catch(X){ze(e,e.return,X)}break;case 4:St(t,e),Lt(e);break;case 13:St(t,e),Lt(e),o=e.child,o.flags&8192&&(u=o.memoizedState!==null,o.stateNode.isHidden=u,!u||o.alternate!==null&&o.alternate.memoizedState!==null||(co=Fe())),r&4&&Ec(e);break;case 22:if(A=n!==null&&n.memoizedState!==null,e.mode&1?(Xe=(M=Xe)||A,St(t,e),Xe=M):St(t,e),Lt(e),r&8192){if(M=e.memoizedState!==null,(e.stateNode.isHidden=M)&&!A&&(e.mode&1)!==0)for(K=e,A=e.child;A!==null;){for(U=K=A;K!==null;){switch(I=K,W=I.child,I.tag){case 0:case 11:case 14:case 15:Ur(4,I,I.return);break;case 1:Yn(I,I.return);var q=I.stateNode;if(typeof q.componentWillUnmount=="function"){r=I,n=I.return;try{t=r,q.props=t.memoizedProps,q.state=t.memoizedState,q.componentWillUnmount()}catch(X){ze(r,n,X)}}break;case 5:Yn(I,I.return);break;case 22:if(I.memoizedState!==null){Lc(U);continue}}W!==null?(W.return=I,K=W):Lc(U)}A=A.sibling}e:for(A=null,U=e;;){if(U.tag===5){if(A===null){A=U;try{o=U.stateNode,M?(u=o.style,typeof u.setProperty=="function"?u.setProperty("display","none","important"):u.display="none"):(w=U.stateNode,S=U.memoizedProps.style,m=S!=null&&S.hasOwnProperty("display")?S.display:null,w.style.display=ui("display",m))}catch(X){ze(e,e.return,X)}}}else if(U.tag===6){if(A===null)try{U.stateNode.nodeValue=M?"":U.memoizedProps}catch(X){ze(e,e.return,X)}}else if((U.tag!==22&&U.tag!==23||U.memoizedState===null||U===e)&&U.child!==null){U.child.return=U,U=U.child;continue}if(U===e)break e;for(;U.sibling===null;){if(U.return===null||U.return===e)break e;A===U&&(A=null),U=U.return}A===U&&(A=null),U.sibling.return=U.return,U=U.sibling}}break;case 19:St(t,e),Lt(e),r&4&&Ec(e);break;case 21:break;default:St(t,e),Lt(e)}}function Lt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(Sc(n)){var r=n;break e}n=n.return}throw Error(i(160))}switch(r.tag){case 5:var o=r.stateNode;r.flags&32&&(ir(o,""),r.flags&=-33);var u=Cc(e);oo(e,u,o);break;case 3:case 4:var m=r.stateNode.containerInfo,w=Cc(e);ao(e,w,m);break;default:throw Error(i(161))}}catch(S){ze(e,e.return,S)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function qm(e,t,n){K=e,Tc(e)}function Tc(e,t,n){for(var r=(e.mode&1)!==0;K!==null;){var o=K,u=o.child;if(o.tag===22&&r){var m=o.memoizedState!==null||Ys;if(!m){var w=o.alternate,S=w!==null&&w.memoizedState!==null||Xe;w=Ys;var M=Xe;if(Ys=m,(Xe=S)&&!M)for(K=o;K!==null;)m=K,S=m.child,m.tag===22&&m.memoizedState!==null?_c(o):S!==null?(S.return=m,K=S):_c(o);for(;u!==null;)K=u,Tc(u),u=u.sibling;K=o,Ys=w,Xe=M}Rc(e)}else(o.subtreeFlags&8772)!==0&&u!==null?(u.return=o,K=u):Rc(e)}}function Rc(e){for(;K!==null;){var t=K;if((t.flags&8772)!==0){var n=t.alternate;try{if((t.flags&8772)!==0)switch(t.tag){case 0:case 11:case 15:Xe||qs(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!Xe)if(n===null)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:Nt(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var u=t.updateQueue;u!==null&&Lu(t,u,r);break;case 3:var m=t.updateQueue;if(m!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Lu(t,m,n)}break;case 5:var w=t.stateNode;if(n===null&&t.flags&4){n=w;var S=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":S.autoFocus&&n.focus();break;case"img":S.src&&(n.src=S.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var M=t.alternate;if(M!==null){var A=M.memoizedState;if(A!==null){var U=A.dehydrated;U!==null&&vr(U)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(i(163))}Xe||t.flags&512&&lo(t)}catch(I){ze(t,t.return,I)}}if(t===e){K=null;break}if(n=t.sibling,n!==null){n.return=t.return,K=n;break}K=t.return}}function Lc(e){for(;K!==null;){var t=K;if(t===e){K=null;break}var n=t.sibling;if(n!==null){n.return=t.return,K=n;break}K=t.return}}function _c(e){for(;K!==null;){var t=K;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{qs(4,t)}catch(S){ze(t,n,S)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var o=t.return;try{r.componentDidMount()}catch(S){ze(t,o,S)}}var u=t.return;try{lo(t)}catch(S){ze(t,u,S)}break;case 5:var m=t.return;try{lo(t)}catch(S){ze(t,m,S)}}}catch(S){ze(t,t.return,S)}if(t===e){K=null;break}var w=t.sibling;if(w!==null){w.return=t.return,K=w;break}K=t.return}}var Xm=Math.ceil,Xs=F.ReactCurrentDispatcher,io=F.ReactCurrentOwner,xt=F.ReactCurrentBatchConfig,de=0,He=null,Oe=null,Ge=0,dt=0,qn=Jt(0),Be=0,Br=null,wn=0,Js=0,uo=0,Vr=null,st=null,co=0,Xn=1/0,Bt=null,Zs=!1,fo=null,sn=null,el=!1,ln=null,tl=0,Hr=0,mo=null,nl=-1,rl=0;function et(){return(de&6)!==0?Fe():nl!==-1?nl:nl=Fe()}function an(e){return(e.mode&1)===0?1:(de&2)!==0&&Ge!==0?Ge&-Ge:Dm.transition!==null?(rl===0&&(rl=Ci()),rl):(e=je,e!==0||(e=window.event,e=e===void 0?16:Di(e.type)),e)}function Ct(e,t,n,r){if(50<Hr)throw Hr=0,mo=null,Error(i(185));pr(e,n,r),((de&2)===0||e!==He)&&(e===He&&((de&2)===0&&(Js|=n),Be===4&&on(e,Ge)),lt(e,r),n===1&&de===0&&(t.mode&1)===0&&(Xn=Fe()+500,Ls&&en()))}function lt(e,t){var n=e.callbackNode;Df(e,t);var r=fs(e,e===He?Ge:0);if(r===0)n!==null&&Ni(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&Ni(n),t===1)e.tag===0?Mm(Dc.bind(null,e)):vu(Dc.bind(null,e)),Tm(function(){(de&6)===0&&en()}),n=null;else{switch(bi(r)){case 1:n=Wl;break;case 4:n=ki;break;case 16:n=is;break;case 536870912:n=Si;break;default:n=is}n=Bc(n,Mc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function Mc(e,t){if(nl=-1,rl=0,(de&6)!==0)throw Error(i(327));var n=e.callbackNode;if(Jn()&&e.callbackNode!==n)return null;var r=fs(e,e===He?Ge:0);if(r===0)return null;if((r&30)!==0||(r&e.expiredLanes)!==0||t)t=sl(e,r);else{t=r;var o=de;de|=2;var u=$c();(He!==e||Ge!==t)&&(Bt=null,Xn=Fe()+500,kn(e,t));do try{ep();break}catch(w){zc(e,w)}while(!0);Ra(),Xs.current=u,de=o,Oe!==null?t=0:(He=null,Ge=0,t=Be)}if(t!==0){if(t===2&&(o=Ql(e),o!==0&&(r=o,t=po(e,o))),t===1)throw n=Br,kn(e,0),on(e,r),lt(e,Fe()),n;if(t===6)on(e,r);else{if(o=e.current.alternate,(r&30)===0&&!Jm(o)&&(t=sl(e,r),t===2&&(u=Ql(e),u!==0&&(r=u,t=po(e,u))),t===1))throw n=Br,kn(e,0),on(e,r),lt(e,Fe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(i(345));case 2:Sn(e,st,Bt);break;case 3:if(on(e,r),(r&130023424)===r&&(t=co+500-Fe(),10<t)){if(fs(e,0)!==0)break;if(o=e.suspendedLanes,(o&r)!==r){et(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=va(Sn.bind(null,e,st,Bt),t);break}Sn(e,st,Bt);break;case 4:if(on(e,r),(r&4194240)===r)break;for(t=e.eventTimes,o=-1;0<r;){var m=31-vt(r);u=1<<m,m=t[m],m>o&&(o=m),r&=~u}if(r=o,r=Fe()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Xm(r/1960))-r,10<r){e.timeoutHandle=va(Sn.bind(null,e,st,Bt),r);break}Sn(e,st,Bt);break;case 5:Sn(e,st,Bt);break;default:throw Error(i(329))}}}return lt(e,Fe()),e.callbackNode===n?Mc.bind(null,e):null}function po(e,t){var n=Vr;return e.current.memoizedState.isDehydrated&&(kn(e,t).flags|=256),e=sl(e,t),e!==2&&(t=st,st=n,t!==null&&ho(t)),e}function ho(e){st===null?st=e:st.push.apply(st,e)}function Jm(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var o=n[r],u=o.getSnapshot;o=o.value;try{if(!jt(u(),o))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;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 on(e,t){for(t&=~uo,t&=~Js,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-vt(t),r=1<<n;e[n]=-1,t&=~r}}function Dc(e){if((de&6)!==0)throw Error(i(327));Jn();var t=fs(e,0);if((t&1)===0)return lt(e,Fe()),null;var n=sl(e,t);if(e.tag!==0&&n===2){var r=Ql(e);r!==0&&(t=r,n=po(e,r))}if(n===1)throw n=Br,kn(e,0),on(e,t),lt(e,Fe()),n;if(n===6)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Sn(e,st,Bt),lt(e,Fe()),null}function xo(e,t){var n=de;de|=1;try{return e(t)}finally{de=n,de===0&&(Xn=Fe()+500,Ls&&en())}}function Nn(e){ln!==null&&ln.tag===0&&(de&6)===0&&Jn();var t=de;de|=1;var n=xt.transition,r=je;try{if(xt.transition=null,je=1,e)return e()}finally{je=r,xt.transition=n,de=t,(de&6)===0&&en()}}function go(){dt=qn.current,Ee(qn)}function kn(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Pm(n)),Oe!==null)for(n=Oe.return;n!==null;){var r=n;switch(Ca(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&Ts();break;case 3:Gn(),Ee(tt),Ee(Ke),Ia();break;case 5:$a(r);break;case 4:Gn();break;case 13:Ee(Le);break;case 19:Ee(Le);break;case 10:La(r.type._context);break;case 22:case 23:go()}n=n.return}if(He=e,Oe=e=un(e.current,null),Ge=dt=t,Be=0,Br=null,uo=Js=wn=0,st=Vr=null,yn!==null){for(t=0;t<yn.length;t++)if(n=yn[t],r=n.interleaved,r!==null){n.interleaved=null;var o=r.next,u=n.pending;if(u!==null){var m=u.next;u.next=o,r.next=m}n.pending=r}yn=null}return e}function zc(e,t){do{var n=Oe;try{if(Ra(),Us.current=Ws,Bs){for(var r=_e.memoizedState;r!==null;){var o=r.queue;o!==null&&(o.pending=null),r=r.next}Bs=!1}if(jn=0,Ve=Ue=_e=null,$r=!1,Fr=0,io.current=null,n===null||n.return===null){Be=1,Br=t,Oe=null;break}e:{var u=e,m=n.return,w=n,S=t;if(t=Ge,w.flags|=32768,S!==null&&typeof S=="object"&&typeof S.then=="function"){var M=S,A=w,U=A.tag;if((A.mode&1)===0&&(U===0||U===11||U===15)){var I=A.alternate;I?(A.updateQueue=I.updateQueue,A.memoizedState=I.memoizedState,A.lanes=I.lanes):(A.updateQueue=null,A.memoizedState=null)}var W=ac(m);if(W!==null){W.flags&=-257,oc(W,m,w,u,t),W.mode&1&&lc(u,M,t),t=W,S=M;var q=t.updateQueue;if(q===null){var X=new Set;X.add(S),t.updateQueue=X}else q.add(S);break e}else{if((t&1)===0){lc(u,M,t),yo();break e}S=Error(i(426))}}else if(Te&&w.mode&1){var Ie=ac(m);if(Ie!==null){(Ie.flags&65536)===0&&(Ie.flags|=256),oc(Ie,m,w,u,t),Pa(Kn(S,w));break e}}u=S=Kn(S,w),Be!==4&&(Be=2),Vr===null?Vr=[u]:Vr.push(u),u=m;do{switch(u.tag){case 3:u.flags|=65536,t&=-t,u.lanes|=t;var T=rc(u,S,t);Ru(u,T);break e;case 1:w=S;var C=u.type,R=u.stateNode;if((u.flags&128)===0&&(typeof C.getDerivedStateFromError=="function"||R!==null&&typeof R.componentDidCatch=="function"&&(sn===null||!sn.has(R)))){u.flags|=65536,t&=-t,u.lanes|=t;var B=sc(u,w,t);Ru(u,B);break e}}u=u.return}while(u!==null)}Ic(n)}catch(J){t=J,Oe===n&&n!==null&&(Oe=n=n.return);continue}break}while(!0)}function $c(){var e=Xs.current;return Xs.current=Ws,e===null?Ws:e}function yo(){(Be===0||Be===3||Be===2)&&(Be=4),He===null||(wn&268435455)===0&&(Js&268435455)===0||on(He,Ge)}function sl(e,t){var n=de;de|=2;var r=$c();(He!==e||Ge!==t)&&(Bt=null,kn(e,t));do try{Zm();break}catch(o){zc(e,o)}while(!0);if(Ra(),de=n,Xs.current=r,Oe!==null)throw Error(i(261));return He=null,Ge=0,Be}function Zm(){for(;Oe!==null;)Fc(Oe)}function ep(){for(;Oe!==null&&!Cf();)Fc(Oe)}function Fc(e){var t=Uc(e.alternate,e,dt);e.memoizedProps=e.pendingProps,t===null?Ic(e):Oe=t,io.current=null}function Ic(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&32768)===0){if(n=Qm(n,t,dt),n!==null){Oe=n;return}}else{if(n=Gm(n,t),n!==null){n.flags&=32767,Oe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Be=6,Oe=null;return}}if(t=t.sibling,t!==null){Oe=t;return}Oe=t=e}while(t!==null);Be===0&&(Be=5)}function Sn(e,t,n){var r=je,o=xt.transition;try{xt.transition=null,je=1,tp(e,t,n,r)}finally{xt.transition=o,je=r}return null}function tp(e,t,n,r){do Jn();while(ln!==null);if((de&6)!==0)throw Error(i(327));n=e.finishedWork;var o=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var u=n.lanes|n.childLanes;if(zf(e,u),e===He&&(Oe=He=null,Ge=0),(n.subtreeFlags&2064)===0&&(n.flags&2064)===0||el||(el=!0,Bc(is,function(){return Jn(),null})),u=(n.flags&15990)!==0,(n.subtreeFlags&15990)!==0||u){u=xt.transition,xt.transition=null;var m=je;je=1;var w=de;de|=4,io.current=null,Ym(e,n),Pc(n,e),wm(ga),hs=!!xa,ga=xa=null,e.current=n,qm(n),bf(),de=w,je=m,xt.transition=u}else e.current=n;if(el&&(el=!1,ln=e,tl=o),u=e.pendingLanes,u===0&&(sn=null),Tf(n.stateNode),lt(e,Fe()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Zs)throw Zs=!1,e=fo,fo=null,e;return(tl&1)!==0&&e.tag!==0&&Jn(),u=e.pendingLanes,(u&1)!==0?e===mo?Hr++:(Hr=0,mo=e):Hr=0,en(),null}function Jn(){if(ln!==null){var e=bi(tl),t=xt.transition,n=je;try{if(xt.transition=null,je=16>e?16:e,ln===null)var r=!1;else{if(e=ln,ln=null,tl=0,(de&6)!==0)throw Error(i(331));var o=de;for(de|=4,K=e.current;K!==null;){var u=K,m=u.child;if((K.flags&16)!==0){var w=u.deletions;if(w!==null){for(var S=0;S<w.length;S++){var M=w[S];for(K=M;K!==null;){var A=K;switch(A.tag){case 0:case 11:case 15:Ur(8,A,u)}var U=A.child;if(U!==null)U.return=A,K=U;else for(;K!==null;){A=K;var I=A.sibling,W=A.return;if(kc(A),A===M){K=null;break}if(I!==null){I.return=W,K=I;break}K=W}}}var q=u.alternate;if(q!==null){var X=q.child;if(X!==null){q.child=null;do{var Ie=X.sibling;X.sibling=null,X=Ie}while(X!==null)}}K=u}}if((u.subtreeFlags&2064)!==0&&m!==null)m.return=u,K=m;else e:for(;K!==null;){if(u=K,(u.flags&2048)!==0)switch(u.tag){case 0:case 11:case 15:Ur(9,u,u.return)}var T=u.sibling;if(T!==null){T.return=u.return,K=T;break e}K=u.return}}var C=e.current;for(K=C;K!==null;){m=K;var R=m.child;if((m.subtreeFlags&2064)!==0&&R!==null)R.return=m,K=R;else e:for(m=C;K!==null;){if(w=K,(w.flags&2048)!==0)try{switch(w.tag){case 0:case 11:case 15:qs(9,w)}}catch(J){ze(w,w.return,J)}if(w===m){K=null;break e}var B=w.sibling;if(B!==null){B.return=w.return,K=B;break e}K=w.return}}if(de=o,en(),Et&&typeof Et.onPostCommitFiberRoot=="function")try{Et.onPostCommitFiberRoot(us,e)}catch{}r=!0}return r}finally{je=n,xt.transition=t}}return!1}function Oc(e,t,n){t=Kn(n,t),t=rc(e,t,1),e=nn(e,t,1),t=et(),e!==null&&(pr(e,1,t),lt(e,t))}function ze(e,t,n){if(e.tag===3)Oc(e,e,n);else for(;t!==null;){if(t.tag===3){Oc(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(sn===null||!sn.has(r))){e=Kn(n,e),e=sc(t,e,1),t=nn(t,e,1),e=et(),t!==null&&(pr(t,1,e),lt(t,e));break}}t=t.return}}function np(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=et(),e.pingedLanes|=e.suspendedLanes&n,He===e&&(Ge&n)===n&&(Be===4||Be===3&&(Ge&130023424)===Ge&&500>Fe()-co?kn(e,0):uo|=n),lt(e,t)}function Ac(e,t){t===0&&((e.mode&1)===0?t=1:(t=ds,ds<<=1,(ds&130023424)===0&&(ds=4194304)));var n=et();e=Ot(e,t),e!==null&&(pr(e,t,n),lt(e,n))}function rp(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ac(e,n)}function sp(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}r!==null&&r.delete(t),Ac(e,n)}var Uc;Uc=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||tt.current)rt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return rt=!1,Wm(e,t,n);rt=(e.flags&131072)!==0}else rt=!1,Te&&(t.flags&1048576)!==0&&ju(t,Ms,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Ks(e,t),e=t.pendingProps;var o=An(t,Ke.current);Qn(t,n),o=Ua(null,t,r,e,o,n);var u=Ba();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,nt(r)?(u=!0,Rs(t)):u=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Da(t),o.updater=Qs,t.stateNode=o,o._reactInternals=t,Ka(t,r,e,n),t=Ja(null,t,r,!0,u,n)):(t.tag=0,Te&&u&&Sa(t),Ze(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Ks(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=ap(r),e=Nt(r,e),o){case 0:t=Xa(null,t,r,e,n);break e;case 1:t=mc(null,t,r,e,n);break e;case 11:t=ic(null,t,r,e,n);break e;case 14:t=uc(null,t,r,Nt(r.type,e),n);break e}throw Error(i(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Nt(r,o),Xa(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Nt(r,o),mc(e,t,r,o,n);case 3:e:{if(pc(t),e===null)throw Error(i(387));r=t.pendingProps,u=t.memoizedState,o=u.element,Tu(e,t),Os(t,r,null,n);var m=t.memoizedState;if(r=m.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:m.cache,pendingSuspenseBoundaries:m.pendingSuspenseBoundaries,transitions:m.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){o=Kn(Error(i(423)),t),t=hc(e,t,r,n,o);break e}else if(r!==o){o=Kn(Error(i(424)),t),t=hc(e,t,r,n,o);break e}else for(ct=Xt(t.stateNode.containerInfo.firstChild),ut=t,Te=!0,wt=null,n=Eu(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Vn(),r===o){t=Ut(e,t,n);break e}Ze(e,t,r,n)}t=t.child}return t;case 5:return _u(t),e===null&&Ea(t),r=t.type,o=t.pendingProps,u=e!==null?e.memoizedProps:null,m=o.children,ya(r,o)?m=null:u!==null&&ya(r,u)&&(t.flags|=32),fc(e,t),Ze(e,t,m,n),t.child;case 6:return e===null&&Ea(t),null;case 13:return xc(e,t,n);case 4:return za(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Hn(t,null,r,n):Ze(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Nt(r,o),ic(e,t,r,o,n);case 7:return Ze(e,t,t.pendingProps,n),t.child;case 8:return Ze(e,t,t.pendingProps.children,n),t.child;case 12:return Ze(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,u=t.memoizedProps,m=o.value,Ce($s,r._currentValue),r._currentValue=m,u!==null)if(jt(u.value,m)){if(u.children===o.children&&!tt.current){t=Ut(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var w=u.dependencies;if(w!==null){m=u.child;for(var S=w.firstContext;S!==null;){if(S.context===r){if(u.tag===1){S=At(-1,n&-n),S.tag=2;var M=u.updateQueue;if(M!==null){M=M.shared;var A=M.pending;A===null?S.next=S:(S.next=A.next,A.next=S),M.pending=S}}u.lanes|=n,S=u.alternate,S!==null&&(S.lanes|=n),_a(u.return,n,t),w.lanes|=n;break}S=S.next}}else if(u.tag===10)m=u.type===t.type?null:u.child;else if(u.tag===18){if(m=u.return,m===null)throw Error(i(341));m.lanes|=n,w=m.alternate,w!==null&&(w.lanes|=n),_a(m,n,t),m=u.sibling}else m=u.child;if(m!==null)m.return=u;else for(m=u;m!==null;){if(m===t){m=null;break}if(u=m.sibling,u!==null){u.return=m.return,m=u;break}m=m.return}u=m}Ze(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Qn(t,n),o=pt(o),r=r(o),t.flags|=1,Ze(e,t,r,n),t.child;case 14:return r=t.type,o=Nt(r,t.pendingProps),o=Nt(r.type,o),uc(e,t,r,o,n);case 15:return cc(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Nt(r,o),Ks(e,t),t.tag=1,nt(r)?(e=!0,Rs(t)):e=!1,Qn(t,n),tc(t,r,o),Ka(t,r,o,n),Ja(null,t,r,!0,e,n);case 19:return yc(e,t,n);case 22:return dc(e,t,n)}throw Error(i(156,t.tag))};function Bc(e,t){return wi(e,t)}function lp(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,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 gt(e,t,n,r){return new lp(e,t,n,r)}function vo(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ap(e){if(typeof e=="function")return vo(e)?1:0;if(e!=null){if(e=e.$$typeof,e===De)return 11;if(e===Z)return 14}return 2}function un(e,t){var n=e.alternate;return n===null?(n=gt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ll(e,t,n,r,o,u){var m=2;if(r=e,typeof e=="function")vo(e)&&(m=1);else if(typeof e=="string")m=5;else e:switch(e){case ee:return Cn(n.children,o,u,t);case G:m=8,o|=8;break;case V:return e=gt(12,n,t,o|2),e.elementType=V,e.lanes=u,e;case ne:return e=gt(13,n,t,o),e.elementType=ne,e.lanes=u,e;case xe:return e=gt(19,n,t,o),e.elementType=xe,e.lanes=u,e;case ce:return al(n,o,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case he:m=10;break e;case we:m=9;break e;case De:m=11;break e;case Z:m=14;break e;case Ne:m=16,r=null;break e}throw Error(i(130,e==null?e:typeof e,""))}return t=gt(m,n,t,o),t.elementType=e,t.type=r,t.lanes=u,t}function Cn(e,t,n,r){return e=gt(7,e,r,t),e.lanes=n,e}function al(e,t,n,r){return e=gt(22,e,r,t),e.elementType=ce,e.lanes=n,e.stateNode={isHidden:!1},e}function jo(e,t,n){return e=gt(6,e,null,t),e.lanes=n,e}function wo(e,t,n){return t=gt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function op(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Gl(0),this.expirationTimes=Gl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Gl(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function No(e,t,n,r,o,u,m,w,S){return e=new op(e,t,n,w,S),t===1?(t=1,u===!0&&(t|=8)):t=0,u=gt(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Da(u),e}function ip(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Q,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Vc(e){if(!e)return Zt;e=e._reactInternals;e:{if(mn(e)!==e||e.tag!==1)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(nt(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(i(171))}if(e.tag===1){var n=e.type;if(nt(n))return gu(e,n,t)}return t}function Hc(e,t,n,r,o,u,m,w,S){return e=No(n,r,!0,e,o,u,m,w,S),e.context=Vc(null),n=e.current,r=et(),o=an(n),u=At(r,o),u.callback=t??null,nn(n,u,o),e.current.lanes=o,pr(e,o,r),lt(e,r),e}function ol(e,t,n,r){var o=t.current,u=et(),m=an(o);return n=Vc(n),t.context===null?t.context=n:t.pendingContext=n,t=At(u,m),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=nn(o,t,m),e!==null&&(Ct(e,o,m,u),Is(e,o,m)),m}function il(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Wc(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ko(e,t){Wc(e,t),(e=e.alternate)&&Wc(e,t)}function up(){return null}var Qc=typeof reportError=="function"?reportError:function(e){console.error(e)};function So(e){this._internalRoot=e}ul.prototype.render=So.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));ol(e,t,null,null)},ul.prototype.unmount=So.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Nn(function(){ol(null,e,null,null)}),t[zt]=null}};function ul(e){this._internalRoot=e}ul.prototype.unstable_scheduleHydration=function(e){if(e){var t=Ti();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Kt.length&&t!==0&&t<Kt[n].priority;n++);Kt.splice(n,0,e),n===0&&_i(e)}};function Co(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function cl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Gc(){}function cp(e,t,n,r,o){if(o){if(typeof r=="function"){var u=r;r=function(){var M=il(m);u.call(M)}}var m=Hc(t,r,e,0,null,!1,!1,"",Gc);return e._reactRootContainer=m,e[zt]=m.current,Pr(e.nodeType===8?e.parentNode:e),Nn(),m}for(;o=e.lastChild;)e.removeChild(o);if(typeof r=="function"){var w=r;r=function(){var M=il(S);w.call(M)}}var S=No(e,0,!1,null,null,!1,!1,"",Gc);return e._reactRootContainer=S,e[zt]=S.current,Pr(e.nodeType===8?e.parentNode:e),Nn(function(){ol(t,S,n,r)}),S}function dl(e,t,n,r,o){var u=n._reactRootContainer;if(u){var m=u;if(typeof o=="function"){var w=o;o=function(){var S=il(m);w.call(S)}}ol(t,m,e,o)}else m=cp(n,t,e,o,r);return il(m)}Ei=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=mr(t.pendingLanes);n!==0&&(Kl(t,n|1),lt(t,Fe()),(de&6)===0&&(Xn=Fe()+500,en()))}break;case 13:Nn(function(){var r=Ot(e,1);if(r!==null){var o=et();Ct(r,e,1,o)}}),ko(e,1)}},Yl=function(e){if(e.tag===13){var t=Ot(e,134217728);if(t!==null){var n=et();Ct(t,e,134217728,n)}ko(e,134217728)}},Pi=function(e){if(e.tag===13){var t=an(e),n=Ot(e,t);if(n!==null){var r=et();Ct(n,e,t,r)}ko(e,t)}},Ti=function(){return je},Ri=function(e,t){var n=je;try{return je=e,t()}finally{je=n}},Ul=function(e,t,n){switch(t){case"input":if(Ml(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=Ps(r);if(!o)throw Error(i(90));ei(r),Ml(r,o)}}}break;case"textarea":li(e,n);break;case"select":t=n.value,t!=null&&Pn(e,!!n.multiple,t,!1)}},pi=xo,hi=Nn;var dp={usingClientEntryPoint:!1,Events:[Lr,In,Ps,fi,mi,xo]},Wr={findFiberByHostInstance:pn,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},fp={bundleType:Wr.bundleType,version:Wr.version,rendererPackageName:Wr.rendererPackageName,rendererConfig:Wr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:F.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=vi(e),e===null?null:e.stateNode},findFiberByHostInstance:Wr.findFiberByHostInstance||up,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var fl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!fl.isDisabled&&fl.supportsFiber)try{us=fl.inject(fp),Et=fl}catch{}}return at.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=dp,at.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Co(t))throw Error(i(200));return ip(e,t,null,n)},at.createRoot=function(e,t){if(!Co(e))throw Error(i(299));var n=!1,r="",o=Qc;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=No(e,1,!1,null,null,n,!1,r,o),e[zt]=t.current,Pr(e.nodeType===8?e.parentNode:e),new So(t)},at.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=vi(t),e=e===null?null:e.stateNode,e},at.flushSync=function(e){return Nn(e)},at.hydrate=function(e,t,n){if(!cl(t))throw Error(i(200));return dl(null,e,t,!0,n)},at.hydrateRoot=function(e,t,n){if(!Co(e))throw Error(i(405));var r=n!=null&&n.hydratedSources||null,o=!1,u="",m=Qc;if(n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(u=n.identifierPrefix),n.onRecoverableError!==void 0&&(m=n.onRecoverableError)),t=Hc(t,null,e,1,n??null,o,!1,u,m),e[zt]=t.current,Pr(e),r)for(e=0;e<r.length;e++)n=r[e],o=n._getVersion,o=o(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new ul(t)},at.render=function(e,t,n){if(!cl(t))throw Error(i(200));return dl(null,e,t,!1,n)},at.unmountComponentAtNode=function(e){if(!cl(e))throw Error(i(40));return e._reactRootContainer?(Nn(function(){dl(null,null,e,!1,function(){e._reactRootContainer=null,e[zt]=null})}),!0):!1},at.unstable_batchedUpdates=xo,at.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!cl(n))throw Error(i(200));if(e==null||e._reactInternals===void 0)throw Error(i(38));return dl(e,t,n,!1,r)},at.version="18.3.1-next-f1338f8080-20240426",at}var td;function Np(){if(td)return Po.exports;td=1;function l(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(a){console.error(a)}}return l(),Po.exports=wp(),Po.exports}var nd;function kp(){if(nd)return pl;nd=1;var l=Np();return pl.createRoot=l.createRoot,pl.hydrateRoot=l.hydrateRoot,pl}var Sp=kp();const Cp=_d(Sp);/**
|
|
41
|
-
* react-router v7.13.0
|
|
42
|
-
*
|
|
43
|
-
* Copyright (c) Remix Software Inc.
|
|
44
|
-
*
|
|
45
|
-
* This source code is licensed under the MIT license found in the
|
|
46
|
-
* LICENSE.md file in the root directory of this source tree.
|
|
47
|
-
*
|
|
48
|
-
* @license MIT
|
|
49
|
-
*/var rd="popstate";function bp(l={}){function a(d,f){let{pathname:c,search:p,hash:x}=d.location;return Io("",{pathname:c,search:p,hash:x},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function i(d,f){return typeof f=="string"?f:Xr(f)}return Pp(a,i,null,l)}function Me(l,a){if(l===!1||l===null||typeof l>"u")throw new Error(a)}function Dt(l,a){if(!l){typeof console<"u"&&console.warn(a);try{throw new Error(a)}catch{}}}function Ep(){return Math.random().toString(36).substring(2,10)}function sd(l,a){return{usr:l.state,key:l.key,idx:a}}function Io(l,a,i=null,d){return{pathname:typeof l=="string"?l:l.pathname,search:"",hash:"",...typeof a=="string"?sr(a):a,state:i,key:a&&a.key||d||Ep()}}function Xr({pathname:l="/",search:a="",hash:i=""}){return a&&a!=="?"&&(l+=a.charAt(0)==="?"?a:"?"+a),i&&i!=="#"&&(l+=i.charAt(0)==="#"?i:"#"+i),l}function sr(l){let a={};if(l){let i=l.indexOf("#");i>=0&&(a.hash=l.substring(i),l=l.substring(0,i));let d=l.indexOf("?");d>=0&&(a.search=l.substring(d),l=l.substring(0,d)),l&&(a.pathname=l)}return a}function Pp(l,a,i,d={}){let{window:f=document.defaultView,v5Compat:c=!1}=d,p=f.history,x="POP",g=null,v=j();v==null&&(v=0,p.replaceState({...p.state,idx:v},""));function j(){return(p.state||{idx:null}).idx}function N(){x="POP";let b=j(),D=b==null?null:b-v;v=b,g&&g({action:x,location:_.location,delta:D})}function k(b,D){x="PUSH";let L=Io(_.location,b,D);v=j()+1;let E=sd(L,v),F=_.createHref(L);try{p.pushState(E,"",F)}catch($){if($ instanceof DOMException&&$.name==="DataCloneError")throw $;f.location.assign(F)}c&&g&&g({action:x,location:_.location,delta:1})}function y(b,D){x="REPLACE";let L=Io(_.location,b,D);v=j();let E=sd(L,v),F=_.createHref(L);p.replaceState(E,"",F),c&&g&&g({action:x,location:_.location,delta:0})}function z(b){return Tp(b)}let _={get action(){return x},get location(){return l(f,p)},listen(b){if(g)throw new Error("A history only accepts one active listener");return f.addEventListener(rd,N),g=b,()=>{f.removeEventListener(rd,N),g=null}},createHref(b){return a(f,b)},createURL:z,encodeLocation(b){let D=z(b);return{pathname:D.pathname,search:D.search,hash:D.hash}},push:k,replace:y,go(b){return p.go(b)}};return _}function Tp(l,a=!1){let i="http://localhost";typeof window<"u"&&(i=window.location.origin!=="null"?window.location.origin:window.location.href),Me(i,"No window.location.(origin|href) available to create URL");let d=typeof l=="string"?l:Xr(l);return d=d.replace(/ $/,"%20"),!a&&d.startsWith("//")&&(d=i+d),new URL(d,i)}function Md(l,a,i="/"){return Rp(l,a,i,!1)}function Rp(l,a,i,d){let f=typeof a=="string"?sr(a):a,c=Ht(f.pathname||"/",i);if(c==null)return null;let p=Dd(l);Lp(p);let x=null;for(let g=0;x==null&&g<p.length;++g){let v=Bp(c);x=Ap(p[g],v,d)}return x}function Dd(l,a=[],i=[],d="",f=!1){let c=(p,x,g=f,v)=>{let j={relativePath:v===void 0?p.path||"":v,caseSensitive:p.caseSensitive===!0,childrenIndex:x,route:p};if(j.relativePath.startsWith("/")){if(!j.relativePath.startsWith(d)&&g)return;Me(j.relativePath.startsWith(d),`Absolute route path "${j.relativePath}" nested under path "${d}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),j.relativePath=j.relativePath.slice(d.length)}let N=Vt([d,j.relativePath]),k=i.concat(j);p.children&&p.children.length>0&&(Me(p.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${N}".`),Dd(p.children,a,k,N,g)),!(p.path==null&&!p.index)&&a.push({path:N,score:Ip(N,p.index),routesMeta:k})};return l.forEach((p,x)=>{var g;if(p.path===""||!((g=p.path)!=null&&g.includes("?")))c(p,x);else for(let v of zd(p.path))c(p,x,!0,v)}),a}function zd(l){let a=l.split("/");if(a.length===0)return[];let[i,...d]=a,f=i.endsWith("?"),c=i.replace(/\?$/,"");if(d.length===0)return f?[c,""]:[c];let p=zd(d.join("/")),x=[];return x.push(...p.map(g=>g===""?c:[c,g].join("/"))),f&&x.push(...p),x.map(g=>l.startsWith("/")&&g===""?"/":g)}function Lp(l){l.sort((a,i)=>a.score!==i.score?i.score-a.score:Op(a.routesMeta.map(d=>d.childrenIndex),i.routesMeta.map(d=>d.childrenIndex)))}var _p=/^:[\w-]+$/,Mp=3,Dp=2,zp=1,$p=10,Fp=-2,ld=l=>l==="*";function Ip(l,a){let i=l.split("/"),d=i.length;return i.some(ld)&&(d+=Fp),a&&(d+=Dp),i.filter(f=>!ld(f)).reduce((f,c)=>f+(_p.test(c)?Mp:c===""?zp:$p),d)}function Op(l,a){return l.length===a.length&&l.slice(0,-1).every((d,f)=>d===a[f])?l[l.length-1]-a[a.length-1]:0}function Ap(l,a,i=!1){let{routesMeta:d}=l,f={},c="/",p=[];for(let x=0;x<d.length;++x){let g=d[x],v=x===d.length-1,j=c==="/"?a:a.slice(c.length)||"/",N=bl({path:g.relativePath,caseSensitive:g.caseSensitive,end:v},j),k=g.route;if(!N&&v&&i&&!d[d.length-1].route.index&&(N=bl({path:g.relativePath,caseSensitive:g.caseSensitive,end:!1},j)),!N)return null;Object.assign(f,N.params),p.push({params:f,pathname:Vt([c,N.pathname]),pathnameBase:Qp(Vt([c,N.pathnameBase])),route:k}),N.pathnameBase!=="/"&&(c=Vt([c,N.pathnameBase]))}return p}function bl(l,a){typeof l=="string"&&(l={path:l,caseSensitive:!1,end:!0});let[i,d]=Up(l.path,l.caseSensitive,l.end),f=a.match(i);if(!f)return null;let c=f[0],p=c.replace(/(.)\/+$/,"$1"),x=f.slice(1);return{params:d.reduce((v,{paramName:j,isOptional:N},k)=>{if(j==="*"){let z=x[k]||"";p=c.slice(0,c.length-z.length).replace(/(.)\/+$/,"$1")}const y=x[k];return N&&!y?v[j]=void 0:v[j]=(y||"").replace(/%2F/g,"/"),v},{}),pathname:c,pathnameBase:p,pattern:l}}function Up(l,a=!1,i=!0){Dt(l==="*"||!l.endsWith("*")||l.endsWith("/*"),`Route path "${l}" will be treated as if it were "${l.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${l.replace(/\*$/,"/*")}".`);let d=[],f="^"+l.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(p,x,g)=>(d.push({paramName:x,isOptional:g!=null}),g?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return l.endsWith("*")?(d.push({paramName:"*"}),f+=l==="*"||l==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):i?f+="\\/*$":l!==""&&l!=="/"&&(f+="(?:(?=\\/|$))"),[new RegExp(f,a?void 0:"i"),d]}function Bp(l){try{return l.split("/").map(a=>decodeURIComponent(a).replace(/\//g,"%2F")).join("/")}catch(a){return Dt(!1,`The URL path "${l}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${a}).`),l}}function Ht(l,a){if(a==="/")return l;if(!l.toLowerCase().startsWith(a.toLowerCase()))return null;let i=a.endsWith("/")?a.length-1:a.length,d=l.charAt(i);return d&&d!=="/"?null:l.slice(i)||"/"}var Vp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Hp(l,a="/"){let{pathname:i,search:d="",hash:f=""}=typeof l=="string"?sr(l):l,c;return i?(i=i.replace(/\/\/+/g,"/"),i.startsWith("/")?c=ad(i.substring(1),"/"):c=ad(i,a)):c=a,{pathname:c,search:Gp(d),hash:Kp(f)}}function ad(l,a){let i=a.replace(/\/+$/,"").split("/");return l.split("/").forEach(f=>{f===".."?i.length>1&&i.pop():f!=="."&&i.push(f)}),i.length>1?i.join("/"):"/"}function Lo(l,a,i,d){return`Cannot include a '${l}' character in a manually specified \`to.${a}\` field [${JSON.stringify(d)}]. 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 Wp(l){return l.filter((a,i)=>i===0||a.route.path&&a.route.path.length>0)}function $d(l){let a=Wp(l);return a.map((i,d)=>d===a.length-1?i.pathname:i.pathnameBase)}function Fd(l,a,i,d=!1){let f;typeof l=="string"?f=sr(l):(f={...l},Me(!f.pathname||!f.pathname.includes("?"),Lo("?","pathname","search",f)),Me(!f.pathname||!f.pathname.includes("#"),Lo("#","pathname","hash",f)),Me(!f.search||!f.search.includes("#"),Lo("#","search","hash",f)));let c=l===""||f.pathname==="",p=c?"/":f.pathname,x;if(p==null)x=i;else{let N=a.length-1;if(!d&&p.startsWith("..")){let k=p.split("/");for(;k[0]==="..";)k.shift(),N-=1;f.pathname=k.join("/")}x=N>=0?a[N]:"/"}let g=Hp(f,x),v=p&&p!=="/"&&p.endsWith("/"),j=(c||p===".")&&i.endsWith("/");return!g.pathname.endsWith("/")&&(v||j)&&(g.pathname+="/"),g}var Vt=l=>l.join("/").replace(/\/\/+/g,"/"),Qp=l=>l.replace(/\/+$/,"").replace(/^\/*/,"/"),Gp=l=>!l||l==="?"?"":l.startsWith("?")?l:"?"+l,Kp=l=>!l||l==="#"?"":l.startsWith("#")?l:"#"+l,Yp=class{constructor(l,a,i,d=!1){this.status=l,this.statusText=a||"",this.internal=d,i instanceof Error?(this.data=i.toString(),this.error=i):this.data=i}};function qp(l){return l!=null&&typeof l.status=="number"&&typeof l.statusText=="string"&&typeof l.internal=="boolean"&&"data"in l}function Xp(l){return l.map(a=>a.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Id=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Od(l,a){let i=l;if(typeof i!="string"||!Vp.test(i))return{absoluteURL:void 0,isExternal:!1,to:i};let d=i,f=!1;if(Id)try{let c=new URL(window.location.href),p=i.startsWith("//")?new URL(c.protocol+i):new URL(i),x=Ht(p.pathname,a);p.origin===c.origin&&x!=null?i=x+p.search+p.hash:f=!0}catch{Dt(!1,`<Link to="${i}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:d,isExternal:f,to:i}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ad=["POST","PUT","PATCH","DELETE"];new Set(Ad);var Jp=["GET",...Ad];new Set(Jp);var lr=h.createContext(null);lr.displayName="DataRouter";var Tl=h.createContext(null);Tl.displayName="DataRouterState";var Zp=h.createContext(!1),Ud=h.createContext({isTransitioning:!1});Ud.displayName="ViewTransition";var eh=h.createContext(new Map);eh.displayName="Fetchers";var th=h.createContext(null);th.displayName="Await";var yt=h.createContext(null);yt.displayName="Navigation";var Zr=h.createContext(null);Zr.displayName="Location";var bt=h.createContext({outlet:null,matches:[],isDataRoute:!1});bt.displayName="Route";var Ho=h.createContext(null);Ho.displayName="RouteError";var Bd="REACT_ROUTER_ERROR",nh="REDIRECT",rh="ROUTE_ERROR_RESPONSE";function sh(l){if(l.startsWith(`${Bd}:${nh}:{`))try{let a=JSON.parse(l.slice(28));if(typeof a=="object"&&a&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.location=="string"&&typeof a.reloadDocument=="boolean"&&typeof a.replace=="boolean")return a}catch{}}function lh(l){if(l.startsWith(`${Bd}:${rh}:{`))try{let a=JSON.parse(l.slice(40));if(typeof a=="object"&&a&&typeof a.status=="number"&&typeof a.statusText=="string")return new Yp(a.status,a.statusText,a.data)}catch{}}function ah(l,{relative:a}={}){Me(es(),"useHref() may be used only in the context of a <Router> component.");let{basename:i,navigator:d}=h.useContext(yt),{hash:f,pathname:c,search:p}=ns(l,{relative:a}),x=c;return i!=="/"&&(x=c==="/"?i:Vt([i,c])),d.createHref({pathname:x,search:p,hash:f})}function es(){return h.useContext(Zr)!=null}function dn(){return Me(es(),"useLocation() may be used only in the context of a <Router> component."),h.useContext(Zr).location}var Vd="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Hd(l){h.useContext(yt).static||h.useLayoutEffect(l)}function ts(){let{isDataRoute:l}=h.useContext(bt);return l?wh():oh()}function oh(){Me(es(),"useNavigate() may be used only in the context of a <Router> component.");let l=h.useContext(lr),{basename:a,navigator:i}=h.useContext(yt),{matches:d}=h.useContext(bt),{pathname:f}=dn(),c=JSON.stringify($d(d)),p=h.useRef(!1);return Hd(()=>{p.current=!0}),h.useCallback((g,v={})=>{if(Dt(p.current,Vd),!p.current)return;if(typeof g=="number"){i.go(g);return}let j=Fd(g,JSON.parse(c),f,v.relative==="path");l==null&&a!=="/"&&(j.pathname=j.pathname==="/"?a:Vt([a,j.pathname])),(v.replace?i.replace:i.push)(j,v.state,v)},[a,i,c,f,l])}var ih=h.createContext(null);function uh(l){let a=h.useContext(bt).outlet;return h.useMemo(()=>a&&h.createElement(ih.Provider,{value:l},a),[a,l])}function fn(){let{matches:l}=h.useContext(bt),a=l[l.length-1];return a?a.params:{}}function ns(l,{relative:a}={}){let{matches:i}=h.useContext(bt),{pathname:d}=dn(),f=JSON.stringify($d(i));return h.useMemo(()=>Fd(l,JSON.parse(f),d,a==="path"),[l,f,d,a])}function ch(l,a){return Wd(l,a)}function Wd(l,a,i,d,f){var L;Me(es(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:c}=h.useContext(yt),{matches:p}=h.useContext(bt),x=p[p.length-1],g=x?x.params:{},v=x?x.pathname:"/",j=x?x.pathnameBase:"/",N=x&&x.route;{let E=N&&N.path||"";Gd(v,!N||E.endsWith("*")||E.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${v}" (under <Route path="${E}">) 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.
|
|
50
|
-
|
|
51
|
-
Please change the parent <Route path="${E}"> to <Route path="${E==="/"?"*":`${E}/*`}">.`)}let k=dn(),y;if(a){let E=typeof a=="string"?sr(a):a;Me(j==="/"||((L=E.pathname)==null?void 0:L.startsWith(j)),`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 "${j}" but pathname "${E.pathname}" was given in the \`location\` prop.`),y=E}else y=k;let z=y.pathname||"/",_=z;if(j!=="/"){let E=j.replace(/^\//,"").split("/");_="/"+z.replace(/^\//,"").split("/").slice(E.length).join("/")}let b=Md(l,{pathname:_});Dt(N||b!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),Dt(b==null||b[b.length-1].route.element!==void 0||b[b.length-1].route.Component!==void 0||b[b.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.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 D=hh(b&&b.map(E=>Object.assign({},E,{params:Object.assign({},g,E.params),pathname:Vt([j,c.encodeLocation?c.encodeLocation(E.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathname]),pathnameBase:E.pathnameBase==="/"?j:Vt([j,c.encodeLocation?c.encodeLocation(E.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:E.pathnameBase])})),p,i,d,f);return a&&D?h.createElement(Zr.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...y},navigationType:"POP"}},D):D}function dh(){let l=jh(),a=qp(l)?`${l.status} ${l.statusText}`:l instanceof Error?l.message:JSON.stringify(l),i=l instanceof Error?l.stack:null,d="rgba(200,200,200, 0.5)",f={padding:"0.5rem",backgroundColor:d},c={padding:"2px 4px",backgroundColor:d},p=null;return console.error("Error handled by React Router default ErrorBoundary:",l),p=h.createElement(h.Fragment,null,h.createElement("p",null,"💿 Hey developer 👋"),h.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",h.createElement("code",{style:c},"ErrorBoundary")," or"," ",h.createElement("code",{style:c},"errorElement")," prop on your route.")),h.createElement(h.Fragment,null,h.createElement("h2",null,"Unexpected Application Error!"),h.createElement("h3",{style:{fontStyle:"italic"}},a),i?h.createElement("pre",{style:f},i):null,p)}var fh=h.createElement(dh,null),Qd=class extends h.Component{constructor(l){super(l),this.state={location:l.location,revalidation:l.revalidation,error:l.error}}static getDerivedStateFromError(l){return{error:l}}static getDerivedStateFromProps(l,a){return a.location!==l.location||a.revalidation!=="idle"&&l.revalidation==="idle"?{error:l.error,location:l.location,revalidation:l.revalidation}:{error:l.error!==void 0?l.error:a.error,location:a.location,revalidation:l.revalidation||a.revalidation}}componentDidCatch(l,a){this.props.onError?this.props.onError(l,a):console.error("React Router caught the following error during render",l)}render(){let l=this.state.error;if(this.context&&typeof l=="object"&&l&&"digest"in l&&typeof l.digest=="string"){const i=lh(l.digest);i&&(l=i)}let a=l!==void 0?h.createElement(bt.Provider,{value:this.props.routeContext},h.createElement(Ho.Provider,{value:l,children:this.props.component})):this.props.children;return this.context?h.createElement(mh,{error:l},a):a}};Qd.contextType=Zp;var _o=new WeakMap;function mh({children:l,error:a}){let{basename:i}=h.useContext(yt);if(typeof a=="object"&&a&&"digest"in a&&typeof a.digest=="string"){let d=sh(a.digest);if(d){let f=_o.get(a);if(f)throw f;let c=Od(d.location,i);if(Id&&!_o.get(a))if(c.isExternal||d.reloadDocument)window.location.href=c.absoluteURL||c.to;else{const p=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(c.to,{replace:d.replace}));throw _o.set(a,p),p}return h.createElement("meta",{httpEquiv:"refresh",content:`0;url=${c.absoluteURL||c.to}`})}}return l}function ph({routeContext:l,match:a,children:i}){let d=h.useContext(lr);return d&&d.static&&d.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(d.staticContext._deepestRenderedBoundaryId=a.route.id),h.createElement(bt.Provider,{value:l},i)}function hh(l,a=[],i=null,d=null,f=null){if(l==null){if(!i)return null;if(i.errors)l=i.matches;else if(a.length===0&&!i.initialized&&i.matches.length>0)l=i.matches;else return null}let c=l,p=i==null?void 0:i.errors;if(p!=null){let j=c.findIndex(N=>N.route.id&&(p==null?void 0:p[N.route.id])!==void 0);Me(j>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(p).join(",")}`),c=c.slice(0,Math.min(c.length,j+1))}let x=!1,g=-1;if(i)for(let j=0;j<c.length;j++){let N=c[j];if((N.route.HydrateFallback||N.route.hydrateFallbackElement)&&(g=j),N.route.id){let{loaderData:k,errors:y}=i,z=N.route.loader&&!k.hasOwnProperty(N.route.id)&&(!y||y[N.route.id]===void 0);if(N.route.lazy||z){x=!0,g>=0?c=c.slice(0,g+1):c=[c[0]];break}}}let v=i&&d?(j,N)=>{var k,y;d(j,{location:i.location,params:((y=(k=i.matches)==null?void 0:k[0])==null?void 0:y.params)??{},unstable_pattern:Xp(i.matches),errorInfo:N})}:void 0;return c.reduceRight((j,N,k)=>{let y,z=!1,_=null,b=null;i&&(y=p&&N.route.id?p[N.route.id]:void 0,_=N.route.errorElement||fh,x&&(g<0&&k===0?(Gd("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),z=!0,b=null):g===k&&(z=!0,b=N.route.hydrateFallbackElement||null)));let D=a.concat(c.slice(0,k+1)),L=()=>{let E;return y?E=_:z?E=b:N.route.Component?E=h.createElement(N.route.Component,null):N.route.element?E=N.route.element:E=j,h.createElement(ph,{match:N,routeContext:{outlet:j,matches:D,isDataRoute:i!=null},children:E})};return i&&(N.route.ErrorBoundary||N.route.errorElement||k===0)?h.createElement(Qd,{location:i.location,revalidation:i.revalidation,component:_,error:y,children:L(),routeContext:{outlet:null,matches:D,isDataRoute:!0},onError:v}):L()},null)}function Wo(l){return`${l} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function xh(l){let a=h.useContext(lr);return Me(a,Wo(l)),a}function gh(l){let a=h.useContext(Tl);return Me(a,Wo(l)),a}function yh(l){let a=h.useContext(bt);return Me(a,Wo(l)),a}function Qo(l){let a=yh(l),i=a.matches[a.matches.length-1];return Me(i.route.id,`${l} can only be used on routes that contain a unique "id"`),i.route.id}function vh(){return Qo("useRouteId")}function jh(){var d;let l=h.useContext(Ho),a=gh("useRouteError"),i=Qo("useRouteError");return l!==void 0?l:(d=a.errors)==null?void 0:d[i]}function wh(){let{router:l}=xh("useNavigate"),a=Qo("useNavigate"),i=h.useRef(!1);return Hd(()=>{i.current=!0}),h.useCallback(async(f,c={})=>{Dt(i.current,Vd),i.current&&(typeof f=="number"?await l.navigate(f):await l.navigate(f,{fromRouteId:a,...c}))},[l,a])}var od={};function Gd(l,a,i){!a&&!od[l]&&(od[l]=!0,Dt(!1,i))}h.memo(Nh);function Nh({routes:l,future:a,state:i,onError:d}){return Wd(l,void 0,i,d,a)}function kh(l){return uh(l.context)}function Re(l){Me(!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 Sh({basename:l="/",children:a=null,location:i,navigationType:d="POP",navigator:f,static:c=!1,unstable_useTransitions:p}){Me(!es(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let x=l.replace(/^\/*/,"/"),g=h.useMemo(()=>({basename:x,navigator:f,static:c,unstable_useTransitions:p,future:{}}),[x,f,c,p]);typeof i=="string"&&(i=sr(i));let{pathname:v="/",search:j="",hash:N="",state:k=null,key:y="default"}=i,z=h.useMemo(()=>{let _=Ht(v,x);return _==null?null:{location:{pathname:_,search:j,hash:N,state:k,key:y},navigationType:d}},[x,v,j,N,k,y,d]);return Dt(z!=null,`<Router basename="${x}"> is not able to match the URL "${v}${j}${N}" because it does not start with the basename, so the <Router> won't render anything.`),z==null?null:h.createElement(yt.Provider,{value:g},h.createElement(Zr.Provider,{children:a,value:z}))}function id({children:l,location:a}){return ch(Oo(l),a)}function Oo(l,a=[]){let i=[];return h.Children.forEach(l,(d,f)=>{if(!h.isValidElement(d))return;let c=[...a,f];if(d.type===h.Fragment){i.push.apply(i,Oo(d.props.children,c));return}Me(d.type===Re,`[${typeof d.type=="string"?d.type:d.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),Me(!d.props.index||!d.props.children,"An index route cannot have child routes.");let p={id:d.props.id||c.join("-"),caseSensitive:d.props.caseSensitive,element:d.props.element,Component:d.props.Component,index:d.props.index,path:d.props.path,middleware:d.props.middleware,loader:d.props.loader,action:d.props.action,hydrateFallbackElement:d.props.hydrateFallbackElement,HydrateFallback:d.props.HydrateFallback,errorElement:d.props.errorElement,ErrorBoundary:d.props.ErrorBoundary,hasErrorBoundary:d.props.hasErrorBoundary===!0||d.props.ErrorBoundary!=null||d.props.errorElement!=null,shouldRevalidate:d.props.shouldRevalidate,handle:d.props.handle,lazy:d.props.lazy};d.props.children&&(p.children=Oo(d.props.children,c)),i.push(p)}),i}var Nl="get",kl="application/x-www-form-urlencoded";function Rl(l){return typeof HTMLElement<"u"&&l instanceof HTMLElement}function Ch(l){return Rl(l)&&l.tagName.toLowerCase()==="button"}function bh(l){return Rl(l)&&l.tagName.toLowerCase()==="form"}function Eh(l){return Rl(l)&&l.tagName.toLowerCase()==="input"}function Ph(l){return!!(l.metaKey||l.altKey||l.ctrlKey||l.shiftKey)}function Th(l,a){return l.button===0&&(!a||a==="_self")&&!Ph(l)}var hl=null;function Rh(){if(hl===null)try{new FormData(document.createElement("form"),0),hl=!1}catch{hl=!0}return hl}var Lh=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Mo(l){return l!=null&&!Lh.has(l)?(Dt(!1,`"${l}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${kl}"`),null):l}function _h(l,a){let i,d,f,c,p;if(bh(l)){let x=l.getAttribute("action");d=x?Ht(x,a):null,i=l.getAttribute("method")||Nl,f=Mo(l.getAttribute("enctype"))||kl,c=new FormData(l)}else if(Ch(l)||Eh(l)&&(l.type==="submit"||l.type==="image")){let x=l.form;if(x==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let g=l.getAttribute("formaction")||x.getAttribute("action");if(d=g?Ht(g,a):null,i=l.getAttribute("formmethod")||x.getAttribute("method")||Nl,f=Mo(l.getAttribute("formenctype"))||Mo(x.getAttribute("enctype"))||kl,c=new FormData(x,l),!Rh()){let{name:v,type:j,value:N}=l;if(j==="image"){let k=v?`${v}.`:"";c.append(`${k}x`,"0"),c.append(`${k}y`,"0")}else v&&c.append(v,N)}}else{if(Rl(l))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');i=Nl,d=null,f=kl,p=l}return c&&f==="text/plain"&&(p=c,c=void 0),{action:d,method:i.toLowerCase(),encType:f,formData:c,body:p}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Go(l,a){if(l===!1||l===null||typeof l>"u")throw new Error(a)}function Mh(l,a,i,d){let f=typeof l=="string"?new URL(l,typeof window>"u"?"server://singlefetch/":window.location.origin):l;return i?f.pathname.endsWith("/")?f.pathname=`${f.pathname}_.${d}`:f.pathname=`${f.pathname}.${d}`:f.pathname==="/"?f.pathname=`_root.${d}`:a&&Ht(f.pathname,a)==="/"?f.pathname=`${a.replace(/\/$/,"")}/_root.${d}`:f.pathname=`${f.pathname.replace(/\/$/,"")}.${d}`,f}async function Dh(l,a){if(l.id in a)return a[l.id];try{let i=await import(l.module);return a[l.id]=i,i}catch(i){return console.error(`Error loading route module \`${l.module}\`, reloading page...`),console.error(i),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function zh(l){return l==null?!1:l.href==null?l.rel==="preload"&&typeof l.imageSrcSet=="string"&&typeof l.imageSizes=="string":typeof l.rel=="string"&&typeof l.href=="string"}async function $h(l,a,i){let d=await Promise.all(l.map(async f=>{let c=a.routes[f.route.id];if(c){let p=await Dh(c,i);return p.links?p.links():[]}return[]}));return Ah(d.flat(1).filter(zh).filter(f=>f.rel==="stylesheet"||f.rel==="preload").map(f=>f.rel==="stylesheet"?{...f,rel:"prefetch",as:"style"}:{...f,rel:"prefetch"}))}function ud(l,a,i,d,f,c){let p=(g,v)=>i[v]?g.route.id!==i[v].route.id:!0,x=(g,v)=>{var j;return i[v].pathname!==g.pathname||((j=i[v].route.path)==null?void 0:j.endsWith("*"))&&i[v].params["*"]!==g.params["*"]};return c==="assets"?a.filter((g,v)=>p(g,v)||x(g,v)):c==="data"?a.filter((g,v)=>{var N;let j=d.routes[g.route.id];if(!j||!j.hasLoader)return!1;if(p(g,v)||x(g,v))return!0;if(g.route.shouldRevalidate){let k=g.route.shouldRevalidate({currentUrl:new URL(f.pathname+f.search+f.hash,window.origin),currentParams:((N=i[0])==null?void 0:N.params)||{},nextUrl:new URL(l,window.origin),nextParams:g.params,defaultShouldRevalidate:!0});if(typeof k=="boolean")return k}return!0}):[]}function Fh(l,a,{includeHydrateFallback:i}={}){return Ih(l.map(d=>{let f=a.routes[d.route.id];if(!f)return[];let c=[f.module];return f.clientActionModule&&(c=c.concat(f.clientActionModule)),f.clientLoaderModule&&(c=c.concat(f.clientLoaderModule)),i&&f.hydrateFallbackModule&&(c=c.concat(f.hydrateFallbackModule)),f.imports&&(c=c.concat(f.imports)),c}).flat(1))}function Ih(l){return[...new Set(l)]}function Oh(l){let a={},i=Object.keys(l).sort();for(let d of i)a[d]=l[d];return a}function Ah(l,a){let i=new Set;return new Set(a),l.reduce((d,f)=>{let c=JSON.stringify(Oh(f));return i.has(c)||(i.add(c),d.push({key:c,link:f})),d},[])}function Kd(){let l=h.useContext(lr);return Go(l,"You must render this element inside a <DataRouterContext.Provider> element"),l}function Uh(){let l=h.useContext(Tl);return Go(l,"You must render this element inside a <DataRouterStateContext.Provider> element"),l}var Ko=h.createContext(void 0);Ko.displayName="FrameworkContext";function Yd(){let l=h.useContext(Ko);return Go(l,"You must render this element inside a <HydratedRouter> element"),l}function Bh(l,a){let i=h.useContext(Ko),[d,f]=h.useState(!1),[c,p]=h.useState(!1),{onFocus:x,onBlur:g,onMouseEnter:v,onMouseLeave:j,onTouchStart:N}=a,k=h.useRef(null);h.useEffect(()=>{if(l==="render"&&p(!0),l==="viewport"){let _=D=>{D.forEach(L=>{p(L.isIntersecting)})},b=new IntersectionObserver(_,{threshold:.5});return k.current&&b.observe(k.current),()=>{b.disconnect()}}},[l]),h.useEffect(()=>{if(d){let _=setTimeout(()=>{p(!0)},100);return()=>{clearTimeout(_)}}},[d]);let y=()=>{f(!0)},z=()=>{f(!1),p(!1)};return i?l!=="intent"?[c,k,{}]:[c,k,{onFocus:Gr(x,y),onBlur:Gr(g,z),onMouseEnter:Gr(v,y),onMouseLeave:Gr(j,z),onTouchStart:Gr(N,y)}]:[!1,k,{}]}function Gr(l,a){return i=>{l&&l(i),i.defaultPrevented||a(i)}}function Vh({page:l,...a}){let{router:i}=Kd(),d=h.useMemo(()=>Md(i.routes,l,i.basename),[i.routes,l,i.basename]);return d?h.createElement(Wh,{page:l,matches:d,...a}):null}function Hh(l){let{manifest:a,routeModules:i}=Yd(),[d,f]=h.useState([]);return h.useEffect(()=>{let c=!1;return $h(l,a,i).then(p=>{c||f(p)}),()=>{c=!0}},[l,a,i]),d}function Wh({page:l,matches:a,...i}){let d=dn(),{future:f,manifest:c,routeModules:p}=Yd(),{basename:x}=Kd(),{loaderData:g,matches:v}=Uh(),j=h.useMemo(()=>ud(l,a,v,c,d,"data"),[l,a,v,c,d]),N=h.useMemo(()=>ud(l,a,v,c,d,"assets"),[l,a,v,c,d]),k=h.useMemo(()=>{if(l===d.pathname+d.search+d.hash)return[];let _=new Set,b=!1;if(a.forEach(L=>{var F;let E=c.routes[L.route.id];!E||!E.hasLoader||(!j.some($=>$.route.id===L.route.id)&&L.route.id in g&&((F=p[L.route.id])!=null&&F.shouldRevalidate)||E.hasClientLoader?b=!0:_.add(L.route.id))}),_.size===0)return[];let D=Mh(l,x,f.unstable_trailingSlashAwareDataRequests,"data");return b&&_.size>0&&D.searchParams.set("_routes",a.filter(L=>_.has(L.route.id)).map(L=>L.route.id).join(",")),[D.pathname+D.search]},[x,f.unstable_trailingSlashAwareDataRequests,g,d,c,j,a,l,p]),y=h.useMemo(()=>Fh(N,c),[N,c]),z=Hh(N);return h.createElement(h.Fragment,null,k.map(_=>h.createElement("link",{key:_,rel:"prefetch",as:"fetch",href:_,...i})),y.map(_=>h.createElement("link",{key:_,rel:"modulepreload",href:_,...i})),z.map(({key:_,link:b})=>h.createElement("link",{key:_,nonce:i.nonce,...b,crossOrigin:b.crossOrigin??i.crossOrigin})))}function Qh(...l){return a=>{l.forEach(i=>{typeof i=="function"?i(a):i!=null&&(i.current=a)})}}var Gh=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Gh&&(window.__reactRouterVersion="7.13.0")}catch{}function Kh({basename:l,children:a,unstable_useTransitions:i,window:d}){let f=h.useRef();f.current==null&&(f.current=bp({window:d,v5Compat:!0}));let c=f.current,[p,x]=h.useState({action:c.action,location:c.location}),g=h.useCallback(v=>{i===!1?x(v):h.startTransition(()=>x(v))},[i]);return h.useLayoutEffect(()=>c.listen(g),[c,g]),h.createElement(Sh,{basename:l,children:a,location:p.location,navigationType:p.action,navigator:c,unstable_useTransitions:i})}var qd=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Xd=h.forwardRef(function({onClick:a,discover:i="render",prefetch:d="none",relative:f,reloadDocument:c,replace:p,state:x,target:g,to:v,preventScrollReset:j,viewTransition:N,unstable_defaultShouldRevalidate:k,...y},z){let{basename:_,unstable_useTransitions:b}=h.useContext(yt),D=typeof v=="string"&&qd.test(v),L=Od(v,_);v=L.to;let E=ah(v,{relative:f}),[F,$,Q]=Bh(d,y),ee=Xh(v,{replace:p,state:x,target:g,preventScrollReset:j,relative:f,viewTransition:N,unstable_defaultShouldRevalidate:k,unstable_useTransitions:b});function G(he){a&&a(he),he.defaultPrevented||ee(he)}let V=h.createElement("a",{...y,...Q,href:L.absoluteURL||E,onClick:L.isExternal||c?a:G,ref:Qh(z,$),target:g,"data-discover":!D&&i==="render"?"true":void 0});return F&&!D?h.createElement(h.Fragment,null,V,h.createElement(Vh,{page:E})):V});Xd.displayName="Link";var Yo=h.forwardRef(function({"aria-current":a="page",caseSensitive:i=!1,className:d="",end:f=!1,style:c,to:p,viewTransition:x,children:g,...v},j){let N=ns(p,{relative:v.relative}),k=dn(),y=h.useContext(Tl),{navigator:z,basename:_}=h.useContext(yt),b=y!=null&&nx(N)&&x===!0,D=z.encodeLocation?z.encodeLocation(N).pathname:N.pathname,L=k.pathname,E=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;i||(L=L.toLowerCase(),E=E?E.toLowerCase():null,D=D.toLowerCase()),E&&_&&(E=Ht(E,_)||E);const F=D!=="/"&&D.endsWith("/")?D.length-1:D.length;let $=L===D||!f&&L.startsWith(D)&&L.charAt(F)==="/",Q=E!=null&&(E===D||!f&&E.startsWith(D)&&E.charAt(D.length)==="/"),ee={isActive:$,isPending:Q,isTransitioning:b},G=$?a:void 0,V;typeof d=="function"?V=d(ee):V=[d,$?"active":null,Q?"pending":null,b?"transitioning":null].filter(Boolean).join(" ");let he=typeof c=="function"?c(ee):c;return h.createElement(Xd,{...v,"aria-current":G,className:V,ref:j,style:he,to:p,viewTransition:x},typeof g=="function"?g(ee):g)});Yo.displayName="NavLink";var Yh=h.forwardRef(({discover:l="render",fetcherKey:a,navigate:i,reloadDocument:d,replace:f,state:c,method:p=Nl,action:x,onSubmit:g,relative:v,preventScrollReset:j,viewTransition:N,unstable_defaultShouldRevalidate:k,...y},z)=>{let{unstable_useTransitions:_}=h.useContext(yt),b=ex(),D=tx(x,{relative:v}),L=p.toLowerCase()==="get"?"get":"post",E=typeof x=="string"&&qd.test(x),F=$=>{if(g&&g($),$.defaultPrevented)return;$.preventDefault();let Q=$.nativeEvent.submitter,ee=(Q==null?void 0:Q.getAttribute("formmethod"))||p,G=()=>b(Q||$.currentTarget,{fetcherKey:a,method:ee,navigate:i,replace:f,state:c,relative:v,preventScrollReset:j,viewTransition:N,unstable_defaultShouldRevalidate:k});_&&i!==!1?h.startTransition(()=>G()):G()};return h.createElement("form",{ref:z,method:L,action:D,onSubmit:d?g:F,...y,"data-discover":!E&&l==="render"?"true":void 0})});Yh.displayName="Form";function qh(l){return`${l} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Jd(l){let a=h.useContext(lr);return Me(a,qh(l)),a}function Xh(l,{target:a,replace:i,state:d,preventScrollReset:f,relative:c,viewTransition:p,unstable_defaultShouldRevalidate:x,unstable_useTransitions:g}={}){let v=ts(),j=dn(),N=ns(l,{relative:c});return h.useCallback(k=>{if(Th(k,a)){k.preventDefault();let y=i!==void 0?i:Xr(j)===Xr(N),z=()=>v(l,{replace:y,state:d,preventScrollReset:f,relative:c,viewTransition:p,unstable_defaultShouldRevalidate:x});g?h.startTransition(()=>z()):z()}},[j,v,N,i,d,a,l,f,c,p,x,g])}var Jh=0,Zh=()=>`__${String(++Jh)}__`;function ex(){let{router:l}=Jd("useSubmit"),{basename:a}=h.useContext(yt),i=vh(),d=l.fetch,f=l.navigate;return h.useCallback(async(c,p={})=>{let{action:x,method:g,encType:v,formData:j,body:N}=_h(c,a);if(p.navigate===!1){let k=p.fetcherKey||Zh();await d(k,i,p.action||x,{unstable_defaultShouldRevalidate:p.unstable_defaultShouldRevalidate,preventScrollReset:p.preventScrollReset,formData:j,body:N,formMethod:p.method||g,formEncType:p.encType||v,flushSync:p.flushSync})}else await f(p.action||x,{unstable_defaultShouldRevalidate:p.unstable_defaultShouldRevalidate,preventScrollReset:p.preventScrollReset,formData:j,body:N,formMethod:p.method||g,formEncType:p.encType||v,replace:p.replace,state:p.state,fromRouteId:i,flushSync:p.flushSync,viewTransition:p.viewTransition})},[d,f,a,i])}function tx(l,{relative:a}={}){let{basename:i}=h.useContext(yt),d=h.useContext(bt);Me(d,"useFormAction must be used inside a RouteContext");let[f]=d.matches.slice(-1),c={...ns(l||".",{relative:a})},p=dn();if(l==null){c.search=p.search;let x=new URLSearchParams(c.search),g=x.getAll("index");if(g.some(j=>j==="")){x.delete("index"),g.filter(N=>N).forEach(N=>x.append("index",N));let j=x.toString();c.search=j?`?${j}`:""}}return(!l||l===".")&&f.route.index&&(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),i!=="/"&&(c.pathname=c.pathname==="/"?i:Vt([i,c.pathname])),Xr(c)}function nx(l,{relative:a}={}){let i=h.useContext(Ud);Me(i!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:d}=Jd("useViewTransitionState"),f=ns(l,{relative:a});if(!i.isTransitioning)return!1;let c=Ht(i.currentLocation.pathname,d)||i.currentLocation.pathname,p=Ht(i.nextLocation.pathname,d)||i.nextLocation.pathname;return bl(f.pathname,p)!=null||bl(f.pathname,c)!=null}/**
|
|
52
|
-
* @license lucide-react v0.468.0 - ISC
|
|
53
|
-
*
|
|
54
|
-
* This source code is licensed under the ISC license.
|
|
55
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
56
|
-
*/const rx=l=>l.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Zd=(...l)=>l.filter((a,i,d)=>!!a&&a.trim()!==""&&d.indexOf(a)===i).join(" ").trim();/**
|
|
57
|
-
* @license lucide-react v0.468.0 - ISC
|
|
58
|
-
*
|
|
59
|
-
* This source code is licensed under the ISC license.
|
|
60
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
61
|
-
*/var sx={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
|
|
62
|
-
* @license lucide-react v0.468.0 - ISC
|
|
63
|
-
*
|
|
64
|
-
* This source code is licensed under the ISC license.
|
|
65
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
66
|
-
*/const lx=h.forwardRef(({color:l="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:d,className:f="",children:c,iconNode:p,...x},g)=>h.createElement("svg",{ref:g,...sx,width:a,height:a,stroke:l,strokeWidth:d?Number(i)*24/Number(a):i,className:Zd("lucide",f),...x},[...p.map(([v,j])=>h.createElement(v,j)),...Array.isArray(c)?c:[c]]));/**
|
|
67
|
-
* @license lucide-react v0.468.0 - ISC
|
|
68
|
-
*
|
|
69
|
-
* This source code is licensed under the ISC license.
|
|
70
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
71
|
-
*/const ae=(l,a)=>{const i=h.forwardRef(({className:d,...f},c)=>h.createElement(lx,{ref:c,iconNode:a,className:Zd(`lucide-${rx(l)}`,d),...f}));return i.displayName=`${l}`,i};/**
|
|
72
|
-
* @license lucide-react v0.468.0 - ISC
|
|
73
|
-
*
|
|
74
|
-
* This source code is licensed under the ISC license.
|
|
75
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
76
|
-
*/const ax=ae("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/**
|
|
77
|
-
* @license lucide-react v0.468.0 - ISC
|
|
78
|
-
*
|
|
79
|
-
* This source code is licensed under the ISC license.
|
|
80
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
81
|
-
*/const ox=ae("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/**
|
|
82
|
-
* @license lucide-react v0.468.0 - ISC
|
|
83
|
-
*
|
|
84
|
-
* This source code is licensed under the ISC license.
|
|
85
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
86
|
-
*/const ix=ae("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
|
|
87
|
-
* @license lucide-react v0.468.0 - ISC
|
|
88
|
-
*
|
|
89
|
-
* This source code is licensed under the ISC license.
|
|
90
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
91
|
-
*/const ux=ae("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
|
|
92
|
-
* @license lucide-react v0.468.0 - ISC
|
|
93
|
-
*
|
|
94
|
-
* This source code is licensed under the ISC license.
|
|
95
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
96
|
-
*/const ef=ae("Bug",[["path",{d:"m8 2 1.88 1.88",key:"fmnt4t"}],["path",{d:"M14.12 3.88 16 2",key:"qol33r"}],["path",{d:"M9 7.13v-1a3.003 3.003 0 1 1 6 0v1",key:"d7y7pr"}],["path",{d:"M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6",key:"xs1cw7"}],["path",{d:"M12 20v-9",key:"1qisl0"}],["path",{d:"M6.53 9C4.6 8.8 3 7.1 3 5",key:"32zzws"}],["path",{d:"M6 13H2",key:"82j7cp"}],["path",{d:"M3 21c0-2.1 1.7-3.9 3.8-4",key:"4p0ekp"}],["path",{d:"M20.97 5c0 2.1-1.6 3.8-3.5 4",key:"18gb23"}],["path",{d:"M22 13h-4",key:"1jl80f"}],["path",{d:"M17.2 17c2.1.1 3.8 1.9 3.8 4",key:"k3fwyw"}]]);/**
|
|
97
|
-
* @license lucide-react v0.468.0 - ISC
|
|
98
|
-
*
|
|
99
|
-
* This source code is licensed under the ISC license.
|
|
100
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
101
|
-
*/const bn=ae("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
102
|
-
* @license lucide-react v0.468.0 - ISC
|
|
103
|
-
*
|
|
104
|
-
* This source code is licensed under the ISC license.
|
|
105
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
106
|
-
*/const cx=ae("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/**
|
|
107
|
-
* @license lucide-react v0.468.0 - ISC
|
|
108
|
-
*
|
|
109
|
-
* This source code is licensed under the ISC license.
|
|
110
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
111
|
-
*/const rr=ae("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
|
|
112
|
-
* @license lucide-react v0.468.0 - ISC
|
|
113
|
-
*
|
|
114
|
-
* This source code is licensed under the ISC license.
|
|
115
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
116
|
-
*/const tf=ae("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
117
|
-
* @license lucide-react v0.468.0 - ISC
|
|
118
|
-
*
|
|
119
|
-
* This source code is licensed under the ISC license.
|
|
120
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
121
|
-
*/const dx=ae("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
|
|
122
|
-
* @license lucide-react v0.468.0 - ISC
|
|
123
|
-
*
|
|
124
|
-
* This source code is licensed under the ISC license.
|
|
125
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
126
|
-
*/const qo=ae("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
|
|
127
|
-
* @license lucide-react v0.468.0 - ISC
|
|
128
|
-
*
|
|
129
|
-
* This source code is licensed under the ISC license.
|
|
130
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
131
|
-
*/const fx=ae("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/**
|
|
132
|
-
* @license lucide-react v0.468.0 - ISC
|
|
133
|
-
*
|
|
134
|
-
* This source code is licensed under the ISC license.
|
|
135
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
136
|
-
*/const nf=ae("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
137
|
-
* @license lucide-react v0.468.0 - ISC
|
|
138
|
-
*
|
|
139
|
-
* This source code is licensed under the ISC license.
|
|
140
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
141
|
-
*/const rf=ae("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
|
|
142
|
-
* @license lucide-react v0.468.0 - ISC
|
|
143
|
-
*
|
|
144
|
-
* This source code is licensed under the ISC license.
|
|
145
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
146
|
-
*/const sf=ae("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
|
|
147
|
-
* @license lucide-react v0.468.0 - ISC
|
|
148
|
-
*
|
|
149
|
-
* This source code is licensed under the ISC license.
|
|
150
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
151
|
-
*/const mx=ae("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
152
|
-
* @license lucide-react v0.468.0 - ISC
|
|
153
|
-
*
|
|
154
|
-
* This source code is licensed under the ISC license.
|
|
155
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
156
|
-
*/const px=ae("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/**
|
|
157
|
-
* @license lucide-react v0.468.0 - ISC
|
|
158
|
-
*
|
|
159
|
-
* This source code is licensed under the ISC license.
|
|
160
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
161
|
-
*/const Ao=ae("FolderKanban",[["path",{d:"M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z",key:"1fr9dc"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M12 10v2",key:"hh53o1"}],["path",{d:"M16 10v6",key:"1d6xys"}]]);/**
|
|
162
|
-
* @license lucide-react v0.468.0 - ISC
|
|
163
|
-
*
|
|
164
|
-
* This source code is licensed under the ISC license.
|
|
165
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
166
|
-
*/const lf=ae("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/**
|
|
167
|
-
* @license lucide-react v0.468.0 - ISC
|
|
168
|
-
*
|
|
169
|
-
* This source code is licensed under the ISC license.
|
|
170
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
171
|
-
*/const hx=ae("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
|
|
172
|
-
* @license lucide-react v0.468.0 - ISC
|
|
173
|
-
*
|
|
174
|
-
* This source code is licensed under the ISC license.
|
|
175
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
176
|
-
*/const xx=ae("GitCommitHorizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);/**
|
|
177
|
-
* @license lucide-react v0.468.0 - ISC
|
|
178
|
-
*
|
|
179
|
-
* This source code is licensed under the ISC license.
|
|
180
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
181
|
-
*/const gx=ae("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);/**
|
|
182
|
-
* @license lucide-react v0.468.0 - ISC
|
|
183
|
-
*
|
|
184
|
-
* This source code is licensed under the ISC license.
|
|
185
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
186
|
-
*/const yx=ae("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/**
|
|
187
|
-
* @license lucide-react v0.468.0 - ISC
|
|
188
|
-
*
|
|
189
|
-
* This source code is licensed under the ISC license.
|
|
190
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
191
|
-
*/const vx=ae("ListTodo",[["rect",{x:"3",y:"5",width:"6",height:"6",rx:"1",key:"1defrl"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);/**
|
|
192
|
-
* @license lucide-react v0.468.0 - ISC
|
|
193
|
-
*
|
|
194
|
-
* This source code is licensed under the ISC license.
|
|
195
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
196
|
-
*/const Xo=ae("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
|
|
197
|
-
* @license lucide-react v0.468.0 - ISC
|
|
198
|
-
*
|
|
199
|
-
* This source code is licensed under the ISC license.
|
|
200
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
201
|
-
*/const jx=ae("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);/**
|
|
202
|
-
* @license lucide-react v0.468.0 - ISC
|
|
203
|
-
*
|
|
204
|
-
* This source code is licensed under the ISC license.
|
|
205
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
206
|
-
*/const wx=ae("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
|
|
207
|
-
* @license lucide-react v0.468.0 - ISC
|
|
208
|
-
*
|
|
209
|
-
* This source code is licensed under the ISC license.
|
|
210
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
211
|
-
*/const af=ae("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
|
|
212
|
-
* @license lucide-react v0.468.0 - ISC
|
|
213
|
-
*
|
|
214
|
-
* This source code is licensed under the ISC license.
|
|
215
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
216
|
-
*/const Jo=ae("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]);/**
|
|
217
|
-
* @license lucide-react v0.468.0 - ISC
|
|
218
|
-
*
|
|
219
|
-
* This source code is licensed under the ISC license.
|
|
220
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
221
|
-
*/const of=ae("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
|
|
222
|
-
* @license lucide-react v0.468.0 - ISC
|
|
223
|
-
*
|
|
224
|
-
* This source code is licensed under the ISC license.
|
|
225
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
226
|
-
*/const cd=ae("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
227
|
-
* @license lucide-react v0.468.0 - ISC
|
|
228
|
-
*
|
|
229
|
-
* This source code is licensed under the ISC license.
|
|
230
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
231
|
-
*/const El=ae("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
|
|
232
|
-
* @license lucide-react v0.468.0 - ISC
|
|
233
|
-
*
|
|
234
|
-
* This source code is licensed under the ISC license.
|
|
235
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
236
|
-
*/const Pl=ae("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
|
|
237
|
-
* @license lucide-react v0.468.0 - ISC
|
|
238
|
-
*
|
|
239
|
-
* This source code is licensed under the ISC license.
|
|
240
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
241
|
-
*/const uf=ae("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);/**
|
|
242
|
-
* @license lucide-react v0.468.0 - ISC
|
|
243
|
-
*
|
|
244
|
-
* This source code is licensed under the ISC license.
|
|
245
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
246
|
-
*/const En=ae("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
247
|
-
* @license lucide-react v0.468.0 - ISC
|
|
248
|
-
*
|
|
249
|
-
* This source code is licensed under the ISC license.
|
|
250
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
251
|
-
*/const Nx=ae("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/**
|
|
252
|
-
* @license lucide-react v0.468.0 - ISC
|
|
253
|
-
*
|
|
254
|
-
* This source code is licensed under the ISC license.
|
|
255
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
256
|
-
*/const kx=ae("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
|
|
257
|
-
* @license lucide-react v0.468.0 - ISC
|
|
258
|
-
*
|
|
259
|
-
* This source code is licensed under the ISC license.
|
|
260
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
261
|
-
*/const Sx=ae("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/**
|
|
262
|
-
* @license lucide-react v0.468.0 - ISC
|
|
263
|
-
*
|
|
264
|
-
* This source code is licensed under the ISC license.
|
|
265
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
266
|
-
*/const Cx=ae("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);/**
|
|
267
|
-
* @license lucide-react v0.468.0 - ISC
|
|
268
|
-
*
|
|
269
|
-
* This source code is licensed under the ISC license.
|
|
270
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
271
|
-
*/const bx=ae("SquareCheckBig",[["path",{d:"M21 10.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.5",key:"1uzm8b"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
|
|
272
|
-
* @license lucide-react v0.468.0 - ISC
|
|
273
|
-
*
|
|
274
|
-
* This source code is licensed under the ISC license.
|
|
275
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
276
|
-
*/const cf=ae("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/**
|
|
277
|
-
* @license lucide-react v0.468.0 - ISC
|
|
278
|
-
*
|
|
279
|
-
* This source code is licensed under the ISC license.
|
|
280
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
281
|
-
*/const Ex=ae("Tablet",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["line",{x1:"12",x2:"12.01",y1:"18",y2:"18",key:"1dp563"}]]);/**
|
|
282
|
-
* @license lucide-react v0.468.0 - ISC
|
|
283
|
-
*
|
|
284
|
-
* This source code is licensed under the ISC license.
|
|
285
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
286
|
-
*/const df=ae("TestTube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]);/**
|
|
287
|
-
* @license lucide-react v0.468.0 - ISC
|
|
288
|
-
*
|
|
289
|
-
* This source code is licensed under the ISC license.
|
|
290
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
291
|
-
*/const Px=ae("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/**
|
|
292
|
-
* @license lucide-react v0.468.0 - ISC
|
|
293
|
-
*
|
|
294
|
-
* This source code is licensed under the ISC license.
|
|
295
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
296
|
-
*/const Jr=ae("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);/**
|
|
297
|
-
* @license lucide-react v0.468.0 - ISC
|
|
298
|
-
*
|
|
299
|
-
* This source code is licensed under the ISC license.
|
|
300
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
301
|
-
*/const Tx=ae("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/**
|
|
302
|
-
* @license lucide-react v0.468.0 - ISC
|
|
303
|
-
*
|
|
304
|
-
* This source code is licensed under the ISC license.
|
|
305
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
306
|
-
*/const Ll=ae("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),dd=l=>{let a;const i=new Set,d=(v,j)=>{const N=typeof v=="function"?v(a):v;if(!Object.is(N,a)){const k=a;a=j??(typeof N!="object"||N===null)?N:Object.assign({},a,N),i.forEach(y=>y(a,k))}},f=()=>a,x={setState:d,getState:f,getInitialState:()=>g,subscribe:v=>(i.add(v),()=>i.delete(v))},g=a=l(d,f,x);return x},Rx=(l=>l?dd(l):dd),Lx=l=>l;function _x(l,a=Lx){const i=Yr.useSyncExternalStore(l.subscribe,Yr.useCallback(()=>a(l.getState()),[l,a]),Yr.useCallback(()=>a(l.getInitialState()),[l,a]));return Yr.useDebugValue(i),i}const fd=l=>{const a=Rx(l),i=d=>_x(a,d);return Object.assign(i,a),i},ar=(l=>l?fd(l):fd),Do="tlc-selected-project-id",md={roots:[],projects:[],selectedProjectId:null,isConfigured:!1,isScanning:!1,lastScan:null},Ae=ar(l=>({...md,setRoots:a=>l({roots:a,isConfigured:a.length>0}),setProjects:a=>l({projects:a}),selectProject:a=>{a===null?localStorage.removeItem(Do):localStorage.setItem(Do,a),l({selectedProjectId:a})},restoreSelectedProject:()=>{const a=localStorage.getItem(Do);a&&l({selectedProjectId:a})},setIsScanning:a=>l({isScanning:a}),setLastScan:a=>l({lastScan:a}),reset:()=>l(md)})),Uo=h.forwardRef(({collapsed:l=!1,onToggle:a,className:i="",...d},f)=>{const c=Ae(g=>g.selectedProjectId),p=l?"w-16":"w-60",x=h.useMemo(()=>[{path:c?`/projects/${c}`:"/",label:"Dashboard",icon:s.jsx(yx,{className:"h-5 w-5"})},{path:"/projects",label:"Projects",icon:s.jsx(Ao,{className:"h-5 w-5"})},{path:c?`/projects/${c}/roadmap`:"/roadmap",label:"Roadmap",icon:s.jsx(jx,{className:"h-5 w-5"})},{path:c?`/projects/${c}/tasks`:"/tasks",label:"Tasks",icon:s.jsx(bx,{className:"h-5 w-5"})},{path:c?`/projects/${c}/tests`:"/tests",label:"Tests",icon:s.jsx(df,{className:"h-5 w-5"})},{path:c?`/projects/${c}/bugs`:"/bugs",label:"Bugs",icon:s.jsx(ef,{className:"h-5 w-5"})},{path:c?`/projects/${c}/logs`:"/logs",label:"Logs",icon:s.jsx(uf,{className:"h-5 w-5"})},{path:"/settings",label:"Settings",icon:s.jsx(kx,{className:"h-5 w-5"})}],[c]);return s.jsxs("aside",{ref:f,"data-testid":"sidebar",className:`
|
|
307
|
-
${p}
|
|
308
|
-
h-screen
|
|
309
|
-
bg-bg-secondary
|
|
310
|
-
border-r border-border
|
|
311
|
-
flex flex-col
|
|
312
|
-
transition-all duration-300
|
|
313
|
-
${l?"collapsed":""}
|
|
314
|
-
${i}
|
|
315
|
-
`,...d,children:[s.jsx("div",{className:"h-14 flex items-center px-4 border-b border-border",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:"w-8 h-8 rounded-lg bg-accent flex items-center justify-center text-white font-bold",children:"T"}),!l&&s.jsx("span",{className:"font-semibold text-text-primary",children:"TLC"})]})}),s.jsx("nav",{className:"flex-1 py-4 overflow-y-auto",children:s.jsx("ul",{className:"space-y-1 px-2",children:x.map(g=>s.jsx("li",{children:s.jsxs(Yo,{to:g.path,end:!0,className:({isActive:v})=>`flex items-center gap-3 px-3 py-2 rounded-md transition-colors
|
|
316
|
-
${v?"bg-accent text-white active":"text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"}
|
|
317
|
-
${l?"justify-center":""}`,title:l?g.label:void 0,children:[g.icon,!l&&s.jsx("span",{children:g.label})]})},g.path))})}),s.jsx("div",{className:"p-2 border-t border-border",children:s.jsx("button",{onClick:a,className:"w-full flex items-center justify-center gap-2 px-3 py-2 rounded-md text-text-secondary hover:bg-bg-tertiary hover:text-text-primary transition-colors","aria-label":l?"Expand sidebar":"Collapse sidebar",children:l?s.jsx(rr,{className:"h-5 w-5"}):s.jsxs(s.Fragment,{children:[s.jsx(cx,{className:"h-5 w-5"}),s.jsx("span",{children:"Collapse"})]})})})]})});Uo.displayName="Sidebar";const Mx={primary:"btn-primary",secondary:"btn-secondary",ghost:"btn-ghost",danger:"btn-danger",outline:"btn-outline border border-border bg-transparent hover:bg-surface-secondary",destructive:"btn-danger"},Dx={sm:"btn-sm",md:"",lg:"btn-lg"},ye=h.forwardRef(({variant:l="primary",size:a="md",loading:i=!1,leftIcon:d,rightIcon:f,children:c,className:p="",disabled:x,...g},v)=>{const j=["btn",Mx[l],Dx[a],p].filter(Boolean).join(" "),N=s.jsxs(s.Fragment,{children:[i?s.jsx(Xo,{className:"h-4 w-4 animate-spin","data-testid":"spinner"}):d,s.jsx("span",{children:c}),!i&&f]});return"href"in g&&g.href?s.jsx("a",{ref:v,className:j,...g,children:N}):s.jsx("button",{ref:v,className:j,disabled:x||i,...g,children:N})});ye.displayName="Button";const ff=h.forwardRef(({title:l,breadcrumbs:a=[],theme:i="dark",onThemeToggle:d,onMobileMenuToggle:f,onSearchClick:c,className:p="",...x},g)=>s.jsxs("header",{ref:g,"data-testid":"header",className:`
|
|
318
|
-
h-14
|
|
319
|
-
bg-bg-secondary
|
|
320
|
-
border-b border-border
|
|
321
|
-
flex items-center justify-between
|
|
322
|
-
px-4
|
|
323
|
-
${p}
|
|
324
|
-
`,...x,children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx("button",{onClick:f,className:"md:hidden p-2 text-text-secondary hover:text-text-primary","aria-label":"Open menu","data-testid":"mobile-menu-button",children:s.jsx(wx,{className:"h-5 w-5"})}),s.jsx("nav",{"aria-label":"Breadcrumb",className:"hidden sm:block",children:s.jsx("ol",{className:"flex items-center gap-2 text-sm",children:a.length>0?a.map((v,j)=>s.jsxs("li",{className:"flex items-center gap-2",children:[j>0&&s.jsx("span",{className:"text-text-muted",children:"/"}),v.href?s.jsx("a",{href:v.href,className:"text-text-secondary hover:text-text-primary",children:v.label}):s.jsx("span",{className:"text-text-primary font-medium",children:v.label})]},v.label)):l?s.jsx("li",{className:"text-text-primary font-medium",children:l}):null})})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{onClick:c,className:"p-2 text-text-secondary hover:text-text-primary hover:bg-bg-tertiary rounded-md transition-colors","aria-label":"Search","data-testid":"search-button",children:s.jsx(En,{className:"h-5 w-5"})}),s.jsx("button",{onClick:d,className:"p-2 text-text-secondary hover:text-text-primary hover:bg-bg-tertiary rounded-md transition-colors","aria-label":i==="dark"?"Switch to light theme":"Switch to dark theme","data-testid":"theme-toggle",children:i==="dark"?s.jsx(cf,{className:"h-5 w-5"}):s.jsx(of,{className:"h-5 w-5"})}),s.jsx(ye,{variant:"ghost",className:"p-2","aria-label":"User menu",children:s.jsx(Jr,{className:"h-5 w-5"})})]})]}));ff.displayName="Header";const xl="tlc-theme";function zo(l,a){try{localStorage.setItem(l,a)}catch{}}function zx(l){try{return localStorage.getItem(l)}catch{return null}}function gl(l){return l==="system"?typeof window<"u"&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark":l}function Kr(l){typeof document<"u"&&document.documentElement.setAttribute("data-theme",l)}const pd={theme:"dark",themePreference:"system",sidebarCollapsed:!1,isCommandPaletteOpen:!1,activeView:"dashboard",isMobileMenuOpen:!1},Je=ar(l=>({...pd,setTheme:a=>{zo(xl,a),Kr(a),l({theme:a,themePreference:a})},setThemePreference:a=>{zo(xl,a);const i=gl(a);Kr(i),l({themePreference:a,theme:i})},toggleTheme:()=>{l(a=>{const i=["dark","light","system"],d=i.indexOf(a.themePreference),f=d===-1?0:(d+1)%i.length,c=i[f],p=gl(c);return zo(xl,c),Kr(p),{themePreference:c,theme:p}})},setSidebarCollapsed:a=>l({sidebarCollapsed:a}),toggleSidebar:()=>l(a=>({sidebarCollapsed:!a.sidebarCollapsed})),openCommandPalette:()=>l({isCommandPaletteOpen:!0}),closeCommandPalette:()=>l({isCommandPaletteOpen:!1}),toggleCommandPalette:()=>l(a=>({isCommandPaletteOpen:!a.isCommandPaletteOpen})),setActiveView:a=>l({activeView:a}),toggleMobileMenu:()=>l(a=>({isMobileMenuOpen:!a.isMobileMenuOpen})),closeMobileMenu:()=>l({isMobileMenuOpen:!1}),initFromStorage:()=>{const a=zx(xl);if(a==="light"||a==="dark"||a==="system"){const i=gl(a);Kr(i),l({themePreference:a,theme:i})}else{const i=gl("system");Kr(i),l({themePreference:"system",theme:i})}},reset:()=>l(pd)})),hd={project:null,status:null,loading:!1,error:null},$x=ar(l=>({...hd,setProject:a=>l({project:a,loading:!1,error:null}),setStatus:a=>l({status:a}),setLoading:a=>l({loading:a}),setError:a=>l({error:a,loading:!1}),clearError:()=>l({error:null}),reset:()=>l(hd)})),Fx=l=>(a,i,d)=>{const f=d.subscribe;return d.subscribe=((p,x,g)=>{let v=p;if(x){const j=(g==null?void 0:g.equalityFn)||Object.is;let N=p(d.getState());v=k=>{const y=p(k);if(!j(N,y)){const z=N;x(N=y,z)}},g!=null&&g.fireImmediately&&x(N,N)}return f(v)}),l(a,i,d)},Zo=Fx,Sl={status:null,assignee:null,phase:null,priority:null},Zn=(l,a)=>l.filter(i=>!(a.status&&i.status!==a.status||a.assignee&&i.assignee!==a.assignee||a.phase&&i.phase!==a.phase||a.priority&&i.priority!==a.priority)),yl=l=>({pending:l.filter(a=>a.status==="pending"),in_progress:l.filter(a=>a.status==="in_progress"),completed:l.filter(a=>a.status==="completed")}),xd={tasks:[],selectedTask:null,filters:Sl,loading:!1},Ix=ar()(Zo(l=>({...xd,filteredTasks:[],tasksByStatus:{pending:[],in_progress:[],completed:[]},setTasks:a=>l({tasks:a,loading:!1,filteredTasks:Zn(a,Sl),tasksByStatus:yl(a)}),addTask:a=>l(i=>{const d=[...i.tasks,a];return{tasks:d,filteredTasks:Zn(d,i.filters),tasksByStatus:yl(d)}}),updateTask:(a,i)=>l(d=>{var p;const f=d.tasks.map(x=>x.id===a?{...x,...i}:x),c=((p=d.selectedTask)==null?void 0:p.id)===a?{...d.selectedTask,...i}:d.selectedTask;return{tasks:f,selectedTask:c,filteredTasks:Zn(f,d.filters),tasksByStatus:yl(f)}}),removeTask:a=>l(i=>{var f;const d=i.tasks.filter(c=>c.id!==a);return{tasks:d,selectedTask:((f=i.selectedTask)==null?void 0:f.id)===a?null:i.selectedTask,filteredTasks:Zn(d,i.filters),tasksByStatus:yl(d)}}),selectTask:a=>l({selectedTask:a}),setFilter:(a,i)=>l(d=>{const f={...d.filters,[a]:i};return{filters:f,filteredTasks:Zn(d.tasks,f)}}),clearFilters:()=>l(a=>({filters:Sl,filteredTasks:Zn(a.tasks,Sl)})),setLoading:a=>l({loading:a}),reset:()=>l({...xd,filteredTasks:[],tasksByStatus:{pending:[],in_progress:[],completed:[]}})}))),gd=1e3,mf={app:[],test:[],git:[],system:[]},yd={logs:mf,activeType:"app",searchQuery:"",autoScroll:!0},vd=()=>Math.random().toString(36).slice(2),jd=(l,a,i)=>{const f=[...l[a],...i],c=f.length>gd?f.slice(f.length-gd):f;return{...l,[a]:c}},vl=(l,a)=>l[a],er=(l,a,i)=>{const d=l[a];if(!i)return d;const f=i.toLowerCase();return d.filter(c=>c.text.toLowerCase().includes(f))},Bo=ar()(Zo(l=>({...yd,currentLogs:[],filteredLogs:[],addLog:a=>l(i=>{const d={...a,id:a.id||vd(),timestamp:a.timestamp||new Date().toISOString()},f=jd(i.logs,a.type,[d]);return{logs:f,currentLogs:vl(f,i.activeType),filteredLogs:er(f,i.activeType,i.searchQuery)}}),addBatchLogs:a=>l(i=>{const d={};for(const c of a){const p={...c,id:c.id||vd(),timestamp:c.timestamp||new Date().toISOString()};d[c.type]||(d[c.type]=[]),d[c.type].push(p)}let f={...i.logs};for(const[c,p]of Object.entries(d))f=jd(f,c,p);return{logs:f,currentLogs:vl(f,i.activeType),filteredLogs:er(f,i.activeType,i.searchQuery)}}),setLogType:a=>l(i=>({activeType:a,currentLogs:vl(i.logs,a),filteredLogs:er(i.logs,a,i.searchQuery)})),clearLogs:a=>l(i=>{const d={...i.logs,[a]:[]};return{logs:d,currentLogs:vl(d,i.activeType),filteredLogs:er(d,i.activeType,i.searchQuery)}}),clearAllLogs:()=>l(()=>({logs:mf,currentLogs:[],filteredLogs:[]})),setSearchQuery:a=>l(i=>({searchQuery:a,filteredLogs:er(i.logs,i.activeType,a)})),clearSearch:()=>l(a=>({searchQuery:"",filteredLogs:er(a.logs,a.activeType,"")})),setAutoScroll:a=>l({autoScroll:a}),reset:()=>l({...yd,currentLogs:[],filteredLogs:[]})}))),Ox=10,Ax=1e3,Ux=3e4,Bx=l=>{const a=Ax*Math.pow(2,l);return Math.min(a,Ux)},tr={status:"disconnected",reconnectAttempts:0,lastConnected:null,error:null},nr=(l,a)=>({isConnected:l==="connected",shouldReconnect:l!=="connected"&&a<Ox,reconnectDelay:Bx(a)}),_t=ar()(Zo(l=>({...tr,...nr(tr.status,tr.reconnectAttempts),setStatus:a=>l(i=>a==="connected"?{status:a,lastConnected:Date.now(),reconnectAttempts:0,error:null,...nr(a,0)}:{status:a,...nr(a,i.reconnectAttempts)}),incrementReconnectAttempts:()=>l(a=>{const i=a.reconnectAttempts+1;return{reconnectAttempts:i,...nr(a.status,i)}}),resetReconnectAttempts:()=>l(a=>({reconnectAttempts:0,...nr(a.status,0)})),setError:a=>l({error:a}),clearError:()=>l({error:null}),reset:()=>l({...tr,...nr(tr.status,tr.reconnectAttempts)})}))),pf=h.forwardRef(({children:l,className:a="",...i},d)=>{const[f,c]=h.useState(!1),[p,x]=h.useState(!1),g=Je(k=>k.theme),v=Je(k=>k.toggleTheme),j=()=>{c(!f)},N=()=>{x(!p)};return s.jsxs("div",{ref:d,className:`flex h-screen bg-bg-primary ${a}`,...i,children:[s.jsx("a",{href:"#main-content",className:"skip-link",children:"Skip to main content"}),s.jsx("div",{className:"hidden md:block",children:s.jsx(Uo,{collapsed:f,onToggle:j})}),p&&s.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 md:hidden",onClick:()=>x(!1),"data-testid":"mobile-overlay"}),s.jsx("div",{className:`
|
|
325
|
-
fixed inset-y-0 left-0 z-50 md:hidden
|
|
326
|
-
transform transition-transform duration-300
|
|
327
|
-
${p?"translate-x-0":"-translate-x-full"}
|
|
328
|
-
`,"data-testid":"mobile-sidebar",children:s.jsx(Uo,{onToggle:()=>x(!1)})}),s.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[s.jsx(ff,{theme:g,onThemeToggle:v,onMobileMenuToggle:N}),s.jsx("main",{id:"main-content",className:"flex-1 overflow-auto bg-bg-primary",tabIndex:-1,children:l})]})]})});pf.displayName="Shell";class Vx extends h.Component{constructor(i){super(i);ml(this,"handleRetry",()=>{this.setState({hasError:!1,error:null,errorInfo:null})});this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(i){return{hasError:!0,error:i}}componentDidCatch(i,d){this.setState({errorInfo:d}),this.props.onError&&this.props.onError(i,d),this.props.reportToServer&&this.props.reportToServer(i,d)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:s.jsxs("div",{className:"p-6 text-center",children:[s.jsx("h2",{className:"text-xl font-semibold text-error mb-2",children:"Something went wrong"}),s.jsx("p",{className:"text-text-secondary mb-4",children:"We're sorry, an unexpected error occurred."}),this.props.showError&&this.state.error&&s.jsx("pre",{className:"bg-surface-elevated p-4 rounded text-sm text-left overflow-auto mb-4",children:this.state.error.message}),s.jsx("button",{onClick:this.handleRetry,className:"btn btn-primary",children:"Retry"})]}):this.props.children}}function Hx(l,a){l=l.toLowerCase(),a=a.toLowerCase();let i=0;for(let d=0;d<a.length&&i<l.length;d++)a[d]===l[i]&&i++;return i===l.length}function Wx({commands:l,open:a,onClose:i,className:d=""}){const[f,c]=h.useState(""),[p,x]=h.useState(0),g=h.useRef(null),v=f?l.filter(k=>Hx(f,k.label)):l;h.useEffect(()=>{var k;a&&(c(""),x(0),(k=g.current)==null||k.focus())},[a]),h.useEffect(()=>{x(0)},[f]);const j=k=>{k.action(),i()},N=k=>{k.key==="Escape"?i():k.key==="ArrowDown"?(k.preventDefault(),x(y=>Math.min(y+1,v.length-1))):k.key==="ArrowUp"?(k.preventDefault(),x(y=>Math.max(y-1,0))):k.key==="Enter"&&v[p]&&(k.preventDefault(),j(v[p]))};return a?s.jsxs("div",{"data-testid":"command-palette",className:`fixed inset-0 z-50 flex items-start justify-center pt-[20vh] ${d}`,children:[s.jsx("div",{className:"absolute inset-0 bg-black/50",onClick:i}),s.jsxs("div",{className:"relative w-full max-w-lg bg-surface border border-border rounded-lg shadow-2xl overflow-hidden",children:[s.jsxs("div",{className:"flex items-center px-4 border-b border-border",children:[s.jsx(En,{className:"w-5 h-5 text-muted-foreground"}),s.jsx("input",{ref:g,type:"text",value:f,onChange:k=>c(k.target.value),onKeyDown:N,placeholder:"Type a command...",className:"flex-1 px-3 py-4 bg-transparent text-foreground placeholder:text-muted-foreground focus:outline-none"})]}),s.jsx("div",{className:"max-h-80 overflow-auto py-2",children:v.length===0?s.jsx("div",{className:"px-4 py-8 text-center text-muted-foreground",children:"No commands found"}):v.map((k,y)=>s.jsxs("button",{onClick:()=>j(k),className:`
|
|
329
|
-
w-full flex items-center justify-between px-4 py-3 text-left
|
|
330
|
-
${y===p?"bg-muted":"hover:bg-muted/50"}
|
|
331
|
-
transition-colors
|
|
332
|
-
`,children:[s.jsx("span",{className:"text-foreground",children:k.label}),k.shortcut&&s.jsx("kbd",{className:"px-2 py-1 text-xs bg-muted rounded border border-border",children:k.shortcut})]},k.id))})]})]}):null}const Qx={success:"bg-success",warning:"bg-warning",error:"bg-error",info:"bg-info",neutral:"bg-text-muted"},Gx={none:"",sm:"p-3",md:"p-4",lg:"p-6"},$e=h.forwardRef(({status:l,clickable:a=!1,padding:i="md",children:d,className:f="",onClick:c,...p},x)=>{const g=["card",Gx[i],a&&"card-hover",f].filter(Boolean).join(" "),v=s.jsxs(s.Fragment,{children:[l&&s.jsx("div",{className:`absolute left-0 top-0 bottom-0 w-1 rounded-l-lg ${Qx[l]}`,"data-testid":"status-indicator"}),d]});return a||c?s.jsx("div",{ref:x,role:"button",tabIndex:0,"data-testid":"card",className:`${g} relative`,onClick:c,onKeyDown:j=>{(j.key==="Enter"||j.key===" ")&&(j.preventDefault(),c==null||c(j))},...p,children:v}):s.jsx("div",{ref:x,"data-testid":"card",className:`${g} relative`,...p,children:v})});$e.displayName="Card";const qr=h.forwardRef(({children:l,className:a="",...i},d)=>s.jsx("div",{ref:d,className:`border-b border-border pb-3 mb-3 ${a}`,...i,children:l}));qr.displayName="CardHeader";const Kx=h.forwardRef(({children:l,className:a="",...i},d)=>s.jsx("div",{ref:d,className:`border-t border-border pt-3 mt-3 ${a}`,...i,children:l}));Kx.displayName="CardFooter";const Yx={running:"badge-success",success:"badge-success",stopped:"badge-neutral",pending:"badge-neutral",building:"badge-warning",error:"badge-error"},qx={primary:"badge-primary bg-primary/10 text-primary border-primary/20",success:"badge-success bg-success/10 text-success border-success/20",warning:"badge-warning bg-warning/10 text-warning border-warning/20",danger:"badge-error bg-danger/10 text-danger border-danger/20",info:"badge-info bg-info/10 text-info border-info/20",neutral:"badge-neutral bg-text-muted/10 text-text-secondary border-border",secondary:"badge-secondary bg-text-muted/10 text-text-secondary border-border",error:"badge-error bg-danger/10 text-danger border-danger/20",outline:"badge-outline bg-transparent text-text-primary border-border",destructive:"badge-destructive bg-danger/10 text-danger border-danger/20"},Xx={running:"bg-success",success:"bg-success",stopped:"bg-text-muted",pending:"bg-text-muted",building:"bg-warning",error:"bg-error"},Jx={sm:"text-xs px-1.5 py-0.5",md:"text-sm px-2 py-0.5",lg:"text-base px-3 py-1"},Mt=h.forwardRef(({status:l="pending",variant:a,size:i="sm",dot:d=!1,icon:f,children:c,className:p="",...x},g)=>{const j=["badge inline-flex items-center gap-1 rounded-full border",a?qx[a]:Yx[l],Jx[i],p].filter(Boolean).join(" ");return s.jsxs("span",{ref:g,className:j,...x,children:[d&&s.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${Xx[l]}`,"data-testid":"dot-indicator"}),f&&s.jsx("span",{className:"flex-shrink-0",children:f}),c]})});Mt.displayName="Badge";const Zx={rectangular:"rounded-none",rounded:"rounded-md",circular:"rounded-full"};function ge({width:l,height:a="1rem",variant:i="rounded",className:d="",testId:f="skeleton"}){return s.jsx("div",{"data-testid":f,className:`
|
|
333
|
-
animate-pulse bg-muted
|
|
334
|
-
${Zx[i]}
|
|
335
|
-
${d}
|
|
336
|
-
`,style:{width:l,height:a}})}const $o=l=>{switch(l){case"debug":case"info":case"warn":case"error":return l;default:return"info"}},eg=l=>{if(!l.endsWith("-log"))return null;const a=l.replace("-log","");return a==="app"||a==="test"||a==="git"||a==="system"?a:null};function tg(l){const{url:a,autoConnect:i=!0,projectId:d,onMessage:f,onOpen:c,onClose:p,onError:x}=l,g=h.useRef(null),v=h.useRef(null),j=h.useRef(!1),N=h.useRef(!1),k=h.useRef(a);h.useEffect(()=>{k.current=a},[a]);const y=h.useRef(d);h.useEffect(()=>{y.current=d},[d]);const z=h.useRef(f),_=h.useRef(c),b=h.useRef(p),D=h.useRef(x);h.useEffect(()=>{z.current=f,_.current=c,b.current=p,D.current=x},[f,c,p,x]);const L=_t(G=>G.isConnected),E=Bo(G=>G.addLog),F=Bo(G=>G.addBatchLogs),$=h.useCallback(()=>{var V,he;if(((V=g.current)==null?void 0:V.readyState)===WebSocket.OPEN||((he=g.current)==null?void 0:he.readyState)===WebSocket.CONNECTING)return;j.current=!1,_t.getState().setStatus("connecting");const G=new WebSocket(k.current);g.current=G,G.onopen=()=>{var we;if(!N.current){G.close();return}_t.getState().setStatus("connected"),(we=_.current)==null||we.call(_)},G.onclose=()=>{var we;if(_t.getState().setStatus("disconnected"),(we=b.current)==null||we.call(b),!j.current&&N.current&&_t.getState().shouldReconnect){_t.getState().incrementReconnectAttempts();const ne=_t.getState().reconnectDelay;v.current=setTimeout(()=>{N.current&&$()},ne)}},G.onerror=we=>{var De;_t.getState().setError("WebSocket connection error"),(De=D.current)==null||De.call(D,we)},G.onmessage=we=>{var De;try{const ne=JSON.parse(we.data);if(y.current&&ne.projectId&&ne.projectId!==y.current)return;if(ne.type==="init"&&ne.data){const Z=ne.data;if(Z.logs){const Ne=[];for(const[ce,H]of Object.entries(Z.logs))if(!(ce!=="app"&&ce!=="test"&&ce!=="git"&&ce!=="system"))for(const te of H)Ne.push({id:"",text:te.text??"",level:$o(te.level),timestamp:te.time??new Date().toISOString(),type:ce});Ne.length>0&&F(Ne)}}const xe=eg(ne.type);if(xe){const Z=ne.data??ne.payload;Z!=null&&Z.data&&E({id:"",text:Z.data,level:$o(Z.level),timestamp:new Date().toISOString(),type:xe})}if(ne.type==="log"){const Z=ne.payload??ne.data;if(Z!=null&&Z.text){const Ne=Z.type==="app"||Z.type==="test"||Z.type==="git"||Z.type==="system"?Z.type:"app";E({id:Z.id??"",text:Z.text,level:$o(Z.level),timestamp:new Date().toISOString(),type:Ne})}}(De=z.current)==null||De.call(z,ne)}catch{}}},[E,F]),Q=h.useCallback(()=>{j.current=!0,v.current&&(clearTimeout(v.current),v.current=null);const G=g.current;G&&(G.onopen=null,G.onclose=null,G.onerror=null,G.onmessage=null,(G.readyState===WebSocket.OPEN||G.readyState===WebSocket.CONNECTING)&&G.close(),g.current=null),_t.getState().setStatus("disconnected")},[]),ee=h.useCallback(G=>{var V;((V=g.current)==null?void 0:V.readyState)===WebSocket.OPEN&&g.current.send(JSON.stringify(G))},[]);return h.useEffect(()=>{if(N.current=!0,!!i)return $(),()=>{N.current=!1,Q()}},[i,$,Q,a,d]),h.useEffect(()=>{var G;d&&((G=g.current)==null?void 0:G.readyState)===WebSocket.OPEN&&ee({type:"subscribe",projectId:d})},[d,ee]),{isConnected:L,send:ee,connect:$,disconnect:Q}}class ng extends Error{constructor(i,d,f){super(i);ml(this,"status");ml(this,"statusText");this.name="ApiError",this.status=d,this.statusText=f}}const rg="";function sg(l={}){const a=l.baseUrl||rg,i={"Content-Type":"application/json",...l.headers},d=(c,p)=>c?c.endsWith("/")&&p.startsWith("/")?`${c.slice(0,-1)}${p}`:`${c}${p}`:p;async function f(c,p,x,g){const v=d(a,p),j={...i,...g==null?void 0:g.headers},N={method:c,headers:j,signal:g==null?void 0:g.signal};x!==void 0&&(N.body=JSON.stringify(x));const k=await fetch(v,N);if(!k.ok){let y=k.statusText;try{y=(await k.json()).message||y}catch{}throw new ng(y,k.status,k.statusText)}return k.json()}return{get(c,p){return f("GET",c,void 0,p)},post(c,p,x){return f("POST",c,p,x)},put(c,p,x){return f("PUT",c,p,x)},patch(c,p,x){return f("PATCH",c,p,x)},delete(c,p){return f("DELETE",c,void 0,p)}}}const lg=sg();function ag(l){return{project:{getProject(){return l.get("/api/project")},getStatus(){return l.get("/api/status")},getChangelog(){return l.get("/api/changelog")}},tasks:{getTasks(){return l.get("/api/tasks").then(a=>a.items??[])},getTask(a){return l.get(`/api/tasks/${a}`)},createTask(a){return l.post("/api/tasks",a)},updateTask(a,i){return l.patch(`/api/tasks/${a}`,i)},deleteTask(a){return l.delete(`/api/tasks/${a}`)}},logs:{getLogs(a){return l.get(`/api/logs/${a}`)},clearLogs(a){return l.delete(`/api/logs/${a}`)}},agents:{getAgents(){return l.get("/api/agents")},getAgent(a){return l.get(`/api/agents/${a}`)},stopAgent(a){return l.post(`/api/agents/${a}/stop`)}},health:{getHealth(){return l.get("/api/health")}},commands:{runCommand(a,i){return l.post(`/api/commands/${a}`,i)},getHistory(){return l.get("/api/commands/history")}},bugs:{getBugs(){return l.get("/api/bugs")},createBug(a){return l.post("/api/bug",a)}},config:{getConfig(){return l.get("/api/config")},saveConfig(a){return l.put("/api/config",a)}},workspace:{getConfig(){return l.get("/api/workspace/config")},setConfig(a){return l.put("/api/workspace/config",{roots:a})},scan(){return l.post("/api/workspace/scan")},async getProjects(){return(await l.get("/api/workspace/projects")).projects},async getGroups(){return(await l.get("/api/workspace/groups")).groups}},projects:{async getById(a){return(await l.get(`/api/projects/${a}`)).project},async getStatus(a){return(await l.get(`/api/projects/${a}/status`)).status},async getTasks(a){return(await l.get(`/api/projects/${a}/tasks`)).tasks},async getBugs(a){return(await l.get(`/api/projects/${a}/bugs`)).bugs},async getRoadmap(a){return l.get(`/api/projects/${a}/roadmap`)},async getTestInventory(a){return l.get(`/api/projects/${a}/tests`)},async runTests(a){return l.post(`/api/projects/${a}/tests/run`)},async updateTaskStatus(a,i,d,f){return l.put(`/api/projects/${a}/tasks/${i}/status`,{status:d,owner:f})},async updateTask(a,i,d){return l.put(`/api/projects/${a}/tasks/${i}`,d)},async createTask(a,i){return l.post(`/api/projects/${a}/tasks`,i)},async updateBugStatus(a,i,d){return l.put(`/api/projects/${a}/bugs/${i}/status`,{status:d})},async updateBug(a,i,d){return l.put(`/api/projects/${a}/bugs/${i}`,d)},async createBug(a,i){return l.post(`/api/projects/${a}/bugs`,i)}}}}const ke=ag(lg);function og(l){const{project:a,status:i,loading:d,error:f,setProject:c,setStatus:p,setLoading:x,setError:g}=$x(),v=h.useCallback(async()=>{c(null),p(null),x(!0);try{if(!l){x(!1);return}const[k,y]=await Promise.all([ke.projects.getById(l),ke.projects.getStatus(l).catch(()=>null)]),z=(y==null?void 0:y.currentPhase)??k.phase??0,_=(y==null?void 0:y.phaseName)??k.phaseName??void 0,b=(y==null?void 0:y.totalPhases)??k.totalPhases??0,D=(y==null?void 0:y.completedPhases)??k.completedPhases??0;c({id:k.id,name:k.name??"Unknown",path:k.path,hasTlc:k.hasTlc,hasPlanning:k.hasPlanning,version:k.version,phase:z,phaseName:_,totalPhases:b,completedPhases:D}),p({currentPhase:(y==null?void 0:y.currentPhase)??z,phaseName:(y==null?void 0:y.phaseName)??_,totalPhases:(y==null?void 0:y.totalPhases)??b,completedPhases:(y==null?void 0:y.completedPhases)??D,exists:y==null?void 0:y.exists,hasTlc:y==null?void 0:y.hasTlc,hasPlanning:y==null?void 0:y.hasPlanning,testsPass:(y==null?void 0:y.testsPass)??0,testsFail:(y==null?void 0:y.testsFail)??0,coverage:(y==null?void 0:y.coverage)??0})}catch(k){g(k instanceof Error?k.message:"Failed to fetch project")}},[l,x,c,p,g]),j=h.useCallback(async()=>{},[l]),N=h.useCallback(async()=>{await Promise.all([v(),j()])},[v,j]);return{project:a,status:i,loading:d,error:f,fetchProject:v,fetchStatus:j,refresh:N}}function hf(l){const{tasks:a,selectedTask:i,filters:d,loading:f,filteredTasks:c,tasksByStatus:p,setTasks:x,addTask:g,updateTask:v,removeTask:j,selectTask:N,setFilter:k,clearFilters:y,setLoading:z}=Ix(),_=h.useCallback(async()=>{z(!0);try{if(!l){x([]);return}const F=await ke.projects.getTasks(l),Q=(Array.isArray(F)?F:[]).map(ee=>({id:String(ee.num??ee.number??ee.id??""),title:ee.title??ee.subject??"Untitled",subject:ee.title??ee.subject??"Untitled",status:ee.status==="done"?"completed":ee.status??"pending",owner:ee.owner??null,priority:"medium"}));x(Q)}catch(F){console.error("Failed to fetch tasks:",F),x([])}finally{z(!1)}},[l,z,x]),b=h.useCallback(async F=>{if(l)try{const $=await ke.projects.createTask(l,{title:F.title||F.subject||"Untitled",goal:F.goal||F.description||""});return await _(),$.task}catch($){throw console.error("Failed to create task:",$),$}try{const $=await ke.tasks.createTask(F);return g($),$}catch($){throw console.error("Failed to create task:",$),$}},[g,l,_]),D=h.useCallback(async(F,$,Q)=>{if(l)try{const ee=await ke.projects.updateTaskStatus(l,parseInt(F,10),$,Q);return v(F,{status:$==="done"?"completed":$,owner:Q??null}),ee.task}catch(ee){throw console.error("Failed to update task status:",ee),ee}try{const ee=await ke.tasks.updateTask(F,{status:$});return v(F,ee),ee}catch(ee){throw console.error("Failed to update task:",ee),ee}},[v,l]),L=h.useCallback(async(F,$)=>{if(l)try{const Q=await ke.projects.updateTask(l,parseInt(F,10),$);return v(F,Q.task),Q.task}catch(Q){throw console.error("Failed to update task:",Q),Q}try{const Q=await ke.tasks.updateTask(F,$);return v(F,Q),Q}catch(Q){throw console.error("Failed to update task:",Q),Q}},[v,l]),E=h.useCallback(async F=>{try{await ke.tasks.deleteTask(F),j(F)}catch($){throw console.error("Failed to delete task:",$),$}},[j]);return{tasks:a,selectedTask:i,filters:d,loading:f,isReadOnly:!1,filteredTasks:c,tasksByStatus:p,fetchTasks:_,createTask:b,updateTask:L,updateTaskStatus:D,deleteTask:E,selectTask:N,setFilter:k,clearFilters:y}}function ig(){const[l,a]=h.useState(null),[i,d]=h.useState(!0),[f,c]=h.useState(!1),[p,x]=h.useState(null),g=h.useCallback(async()=>{d(!0),x(null);try{const N=await ke.config.getConfig();a(N)}catch(N){x(N instanceof Error?N.message:"Failed to fetch config"),a(null)}finally{d(!1)}},[]);h.useEffect(()=>{g()},[g]);const v=h.useCallback(async N=>{c(!0),x(null);try{await ke.config.saveConfig(N),a(N)}catch(k){const y=k instanceof Error?k.message:"Failed to save config";throw x(y),k}finally{c(!1)}},[]),j=h.useCallback(async()=>{await g()},[g]);return{config:l,loading:i,saving:f,error:p,saveConfig:v,refetch:j}}function xf(l){const[a,i]=h.useState(null),[d,f]=h.useState(!1),[c,p]=h.useState(null),x=h.useCallback(async()=>{if(!l){i(null);return}f(!0),p(null);try{const g=await ke.projects.getRoadmap(l);i(g)}catch(g){p(g instanceof Error?g.message:"Failed to fetch roadmap")}finally{f(!1)}},[l]);return h.useEffect(()=>{x()},[x]),{roadmap:a,loading:d,error:c,refresh:x}}function ug(l){const[a,i]=h.useState(null),[d,f]=h.useState(!1),[c,p]=h.useState(null),x=h.useCallback(async()=>{if(!l){i(null);return}f(!0),p(null);try{const v=await ke.projects.getTestInventory(l);i(v)}catch(v){p(v instanceof Error?v.message:"Failed to fetch test inventory")}finally{f(!1)}},[l]),g=h.useCallback(async()=>{l&&await ke.projects.runTests(l)},[l]);return h.useEffect(()=>{x()},[x]),{inventory:a,loading:d,error:c,refresh:x,runTests:g}}function Fo(){var he,we,De;const l=ts(),{projectId:a}=fn(),i=Ae(ne=>ne.selectProject),d=Ae(ne=>ne.selectedProjectId),f=a??d??void 0;h.useEffect(()=>{a&&a!==d&&i(a)},[a,d,i]);const{project:c,loading:p,fetchProject:x,fetchStatus:g}=og(f),{fetchTasks:v}=hf(f),{roadmap:j,loading:N}=xf(f),k=Je(ne=>ne.setActiveView),[y,z]=h.useState(null);h.useEffect(()=>{k("dashboard"),x(),g(),v()},[k,x,g,v,f]);const _=()=>l("/projects");if(p||N)return s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsx(ge,{className:"h-8 w-64"}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[1,2,3,4].map(ne=>s.jsx(ge,{className:"h-32"},ne))}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[s.jsx(ge,{className:"h-64"}),s.jsx(ge,{className:"h-64"})]})]});if(!c)return s.jsx("div",{className:"p-6",children:s.jsx($e,{className:"p-8",children:s.jsxs("div",{className:"text-center",children:[s.jsx(lf,{className:"w-16 h-16 mx-auto text-text-muted mb-4"}),s.jsx("h2",{className:"text-xl font-semibold text-text-primary mb-2",children:"No Project Selected"}),s.jsx("p",{className:"text-text-secondary mb-6",children:"Select a project to view its dashboard and start working."}),s.jsx(ye,{onClick:_,children:"Get Started"})]})})});if(!c.hasTlc&&!c.hasPlanning&&(c.totalPhases??0)===0)return s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsx("div",{className:"flex items-center justify-between",children:s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:c.name}),s.jsx("p",{className:"text-text-secondary mt-1",children:c.path})]})}),s.jsx($e,{className:"p-6",children:s.jsxs("div",{className:"text-center",children:[s.jsx("p",{className:"text-text-secondary mb-2",children:"This project doesn't have TLC configured yet."}),s.jsxs("p",{className:"text-sm text-text-muted mb-4",children:["Run ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-tertiary rounded",children:"/tlc:init"})," in the project directory to start tracking phases, tasks, and tests."]}),s.jsxs("p",{className:"text-xs text-text-muted",children:["Version: ",c.version||"unknown"]})]})})]});const D=ne=>ne==="done"?"success":ne==="in_progress"?"primary":"neutral",L=ne=>{z(xe=>xe===ne?null:ne)},E=(j==null?void 0:j.completedPhases)??0,F=(j==null?void 0:j.totalPhases)??0,$=((he=j==null?void 0:j.testSummary)==null?void 0:he.totalTests)??0,Q=((we=j==null?void 0:j.testSummary)==null?void 0:we.totalFiles)??0,ee=((De=j==null?void 0:j.currentPhase)==null?void 0:De.number)??0,G=j==null?void 0:j.projectInfo,V=(j==null?void 0:j.recentCommits)??[];return s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsx("div",{className:"flex items-center justify-between",children:s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("h1",{"data-testid":"project-name",className:"text-2xl font-semibold text-text-primary",children:(G==null?void 0:G.name)??c.name}),s.jsxs("span",{"data-testid":"project-version",className:"text-sm text-text-secondary font-mono",children:["v",(G==null?void 0:G.version)??c.version??"0.0.0"]})]}),s.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[(j==null?void 0:j.currentPhase)&&s.jsxs("p",{className:"text-text-secondary",children:["Phase ",j.currentPhase.number,": ",j.currentPhase.name]}),c.branch&&s.jsxs("span",{className:"flex items-center gap-1 text-text-secondary text-sm",children:[s.jsx(hx,{className:"w-4 h-4"}),c.branch]})]})]})}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Phases"}),s.jsxs("div",{"data-testid":"stat-phases",className:"text-3xl font-bold text-text-primary mt-2",children:[E,"/",F]})]}),s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Tests"}),s.jsx("div",{"data-testid":"stat-tests",className:"text-3xl font-bold text-success mt-2",children:$})]}),s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Test Files"}),s.jsx("div",{"data-testid":"stat-files",className:"text-3xl font-bold text-primary mt-2",children:Q})]}),s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Current Phase"}),s.jsxs("div",{"data-testid":"stat-current-phase",className:"text-3xl font-bold text-text-primary mt-2",children:["#",ee]})]})]}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[s.jsxs("div",{className:"space-y-4",children:[s.jsx("h3",{className:"font-medium text-text-primary",children:"Roadmap"}),j==null?void 0:j.milestones.map(ne=>s.jsxs("div",{children:[s.jsx("h4",{"data-testid":"milestone-header",className:"text-sm font-semibold text-text-secondary uppercase tracking-wide mb-2",children:ne.name}),s.jsx("div",{className:"space-y-1",children:ne.phases.map(xe=>{var ce;const Z=((ce=j.currentPhase)==null?void 0:ce.number)===xe.number,Ne=y===xe.number;return s.jsxs("div",{children:[s.jsxs("div",{"data-testid":"phase-row",className:`flex items-center justify-between p-2 rounded cursor-pointer hover:bg-bg-tertiary ${Z?"current-phase bg-primary/5 border border-primary/20":""}`,onClick:()=>L(xe.number),children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("span",{className:"text-sm font-mono text-text-muted",children:[xe.number,"."]}),s.jsx("span",{className:"text-sm text-text-primary",children:xe.name}),s.jsx(Mt,{"data-testid":"phase-status",variant:D(xe.status),size:"sm",children:xe.status})]}),s.jsxs("span",{"data-testid":"phase-tasks",className:"text-xs text-text-muted font-mono",children:[xe.completedTaskCount,"/",xe.taskCount]})]}),Ne&&s.jsxs("div",{className:"ml-6 pl-3 border-l border-border mt-1 mb-2",children:[s.jsx("p",{"data-testid":"phase-goal",className:"text-sm text-text-secondary mb-2",children:xe.goal}),s.jsx("ul",{"data-testid":"phase-deliverables",className:"space-y-1",children:xe.deliverables.map((H,te)=>s.jsxs("li",{className:"text-sm text-text-secondary flex items-center gap-2",children:[s.jsx("span",{children:H.done?"✓":"○"}),s.jsx("span",{children:H.text})]},te))})]})]},xe.number)})})]},ne.name))]}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-medium text-text-primary mb-4",children:"Recent Activity"}),s.jsxs("div",{"data-testid":"recent-commits",className:"space-y-2",children:[V.length===0&&s.jsx("p",{className:"text-sm text-text-muted",children:"No recent commits"}),V.map(ne=>s.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[s.jsx("code",{"data-testid":"commit-hash",className:"text-xs font-mono text-primary bg-primary/10 px-1.5 py-0.5 rounded shrink-0",children:ne.hash.slice(0,7)}),s.jsx("span",{"data-testid":"commit-message",className:"text-text-secondary truncate",children:ne.message})]},ne.hash))]})]})]})]})}const cg={high:"bg-error text-white",medium:"bg-warning text-white",low:"bg-info text-white"};function dg({task:l,onClick:a,onDragStart:i,isDraggable:d=!1,isDragging:f=!1,className:c=""}){const p=()=>{a==null||a(l)},x=v=>{var j;(j=v.dataTransfer)==null||j.setData("text/plain",l.id),i==null||i(l)},g=l.testStatus.total===0?"bg-muted":l.testStatus.failed>0?"bg-error":"bg-success";return s.jsxs("div",{"data-testid":"task-card",onClick:p,onDragStart:x,draggable:d,className:`
|
|
337
|
-
p-3 bg-surface border border-border rounded-lg
|
|
338
|
-
hover:border-primary/50 hover:shadow-sm
|
|
339
|
-
transition-all cursor-pointer
|
|
340
|
-
${f?"opacity-50 scale-95":""}
|
|
341
|
-
${c}
|
|
342
|
-
`,children:[s.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[s.jsx("h4",{className:"font-medium text-foreground text-sm line-clamp-2",children:l.title}),s.jsx("span",{"data-testid":"priority-badge",className:`
|
|
343
|
-
px-1.5 py-0.5 text-xs font-medium rounded
|
|
344
|
-
${cg[l.priority]}
|
|
345
|
-
`,children:l.priority})]}),l.description&&s.jsx("p",{className:"text-xs text-muted-foreground mb-3 line-clamp-2",children:l.description}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"flex items-center gap-1.5",children:l.assignee?s.jsxs(s.Fragment,{children:[l.assignee.avatar?s.jsx("img",{"data-testid":"assignee-avatar",src:l.assignee.avatar,alt:l.assignee.name,className:"w-5 h-5 rounded-full"}):s.jsx("div",{"data-testid":"assignee-avatar",className:"w-5 h-5 rounded-full bg-primary/20 flex items-center justify-center",children:s.jsx("span",{className:"text-xs text-primary font-medium",children:l.assignee.name[0]})}),s.jsx("span",{className:"text-xs text-muted-foreground",children:l.assignee.name})]}):s.jsxs("div",{className:"flex items-center gap-1 text-muted-foreground",children:[s.jsx(Jr,{className:"w-4 h-4"}),s.jsx("span",{className:"text-xs",children:"Unassigned"})]})}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{"data-testid":"test-status",className:"flex items-center gap-1",children:[s.jsx("div",{"data-testid":"test-indicator",className:`w-2 h-2 rounded-full ${g}`}),s.jsx(df,{className:"w-3 h-3 text-muted-foreground"}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:[l.testStatus.passed,"/",l.testStatus.total]})]}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Phase ",l.phase]})]})]})]})}const jl=[{id:"todo",title:"To Do"},{id:"in_progress",title:"In Progress"},{id:"done",title:"Done"}];function fg({tasks:l,onTaskMove:a,onTaskClick:i,isLoading:d=!1,className:f=""}){const[c,p]=h.useState(null),[x,g]=h.useState(null),[v,j]=h.useState(0),[N,k]=h.useState(-1),y=h.useCallback(E=>l.filter(F=>F.status===E),[l]),z=E=>{g(E.id)},_=(E,F)=>{E.preventDefault(),p(F)},b=()=>{p(null)},D=(E,F)=>{E.preventDefault();const $=E.dataTransfer.getData("text/plain");$&&a&&a($,F),p(null),g(null)},L=E=>{const F=jl[v];if(!F)return;const $=y(F.id);switch(E.key){case"h":E.preventDefault(),j(Q=>Math.max(0,Q-1)),k(-1);break;case"l":E.preventDefault(),j(Q=>Math.min(jl.length-1,Q+1)),k(-1);break;case"j":E.preventDefault(),k(Q=>Math.min($.length-1,Q+1));break;case"k":E.preventDefault(),k(Q=>Math.max(0,Q-1));break;case"Enter":E.preventDefault(),N>=0&&$[N]&&(i==null||i($[N]));break}};return d?s.jsx("div",{"data-testid":"task-board",className:`grid grid-cols-1 md:grid-cols-3 gap-4 ${f}`,children:jl.map(E=>s.jsxs("div",{"data-testid":`column-${E.id}`,className:"bg-muted/30 rounded-lg p-4",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx(ge,{height:"1.25rem",className:"w-24"}),s.jsx(ge,{height:"1.25rem",className:"w-6"})]}),s.jsx("div",{className:"space-y-3",children:[1,2].map(F=>s.jsx(ge,{height:"100px",className:"w-full"},F))})]},E.id))}):l.length===0?s.jsx("div",{"data-testid":"task-board",className:f,children:s.jsxs("div",{"data-testid":"empty-state",className:"flex flex-col items-center justify-center py-16 text-center",children:[s.jsx("div",{className:"w-16 h-16 bg-muted rounded-full flex items-center justify-center mb-4",children:s.jsx(vx,{className:"w-8 h-8 text-muted-foreground"})}),s.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:"No tasks yet"}),s.jsxs("p",{className:"text-muted-foreground max-w-md",children:["Tasks will appear here when you run"," ",s.jsx("code",{className:"text-primary",children:"/tlc:plan"})," to create a phase plan."]})]})}):s.jsx("div",{"data-testid":"task-board",tabIndex:0,onKeyDown:L,className:`grid grid-cols-1 md:grid-cols-3 gap-4 outline-none ${f}`,children:jl.map((E,F)=>{const $=y(E.id),Q=v===F,ee=c===E.id;return s.jsxs("div",{"data-testid":`column-${E.id}`,onDragOver:G=>_(G,E.id),onDragEnter:()=>p(E.id),onDragLeave:b,onDrop:G=>D(G,E.id),className:`
|
|
346
|
-
bg-muted/30 rounded-lg p-4 min-h-[400px]
|
|
347
|
-
transition-all
|
|
348
|
-
${ee||Q&&N===-1?"ring-2 ring-primary":""}
|
|
349
|
-
`,children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:E.title}),s.jsx("span",{"data-testid":`count-${E.id}`,className:"px-2 py-0.5 text-xs font-medium bg-muted rounded-full text-muted-foreground",children:$.length})]}),s.jsx("div",{className:"space-y-3",children:$.map((G,V)=>{const he=Q&&N===V,we=x===G.id;return s.jsx(dg,{task:G,onClick:i,onDragStart:z,isDraggable:!!a,isDragging:we,className:he?"ring-2 ring-primary":""},G.id)})})]},E.id)})})}const mg=[{id:"high",label:"High"},{id:"medium",label:"Medium"},{id:"low",label:"Low"}];function pg({assignees:l,onFilterChange:a,initialFilters:i,className:d=""}){const[f,c]=h.useState(!1),[p,x]=h.useState(i||{assignees:[],priorities:[]}),g=h.useRef(null);h.useEffect(()=>{if(!f)return;const y=z=>{g.current&&!g.current.contains(z.target)&&c(!1)};return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[f]);const v=y=>{const z=p.assignees.includes(y)?p.assignees.filter(b=>b!==y):[...p.assignees,y],_={...p,assignees:z};x(_),a(_)},j=y=>{const z=p.priorities.includes(y)?p.priorities.filter(b=>b!==y):[...p.priorities,y],_={...p,priorities:z};x(_),a(_)},N=()=>{const y={assignees:[],priorities:[]};x(y),a(y)},k=p.assignees.length+p.priorities.length;return s.jsxs("div",{ref:g,className:`relative inline-block ${d}`,children:[s.jsxs("button",{"data-testid":"task-filter",onClick:()=>c(!f),className:`
|
|
350
|
-
flex items-center gap-2 px-3 py-2
|
|
351
|
-
bg-surface border border-border rounded-md
|
|
352
|
-
hover:bg-muted transition-colors
|
|
353
|
-
text-foreground text-sm
|
|
354
|
-
`,children:[s.jsx(px,{className:"w-4 h-4"}),s.jsx("span",{children:"Filter"}),k>0&&s.jsx("span",{"data-testid":"filter-count",className:"px-1.5 py-0.5 text-xs font-medium bg-primary text-white rounded-full",children:k})]}),f&&s.jsxs("div",{"data-testid":"filter-panel",className:`\r
|
|
355
|
-
absolute z-50 mt-1 w-64\r
|
|
356
|
-
bg-surface border border-border rounded-md shadow-lg\r
|
|
357
|
-
p-4 right-0\r
|
|
358
|
-
`,children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx("h4",{className:"font-medium text-foreground",children:"Filters"}),k>0&&s.jsx("button",{onClick:N,className:"text-xs text-primary hover:underline",children:"Clear all"})]}),s.jsxs("div",{className:"mb-4",children:[s.jsx("h5",{className:"text-sm font-medium text-foreground mb-2",children:"Assignee"}),s.jsxs("div",{className:"space-y-2",children:[s.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:p.assignees.includes("unassigned"),onChange:()=>v("unassigned"),className:"rounded border-border"}),s.jsx("span",{className:"text-sm text-foreground",children:"Unassigned"})]}),l.map(y=>s.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:p.assignees.includes(y.id),onChange:()=>v(y.id),className:"rounded border-border"}),s.jsx("span",{className:"text-sm text-foreground",children:y.name})]},y.id))]})]}),s.jsxs("div",{children:[s.jsx("h5",{className:"text-sm font-medium text-foreground mb-2",children:"Priority"}),s.jsx("div",{className:"space-y-2",children:mg.map(y=>s.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:p.priorities.includes(y.id),onChange:()=>j(y.id),className:"rounded border-border"}),s.jsx("span",{className:"text-sm text-foreground",children:y.label})]},y.id))})]})]})]})}const hg={todo:"To Do",in_progress:"In Progress",done:"Done"},xg={high:"bg-error text-white",medium:"bg-warning text-white",low:"bg-info text-white"};function gg(l){const a=new Date(l),d=new Date().getTime()-a.getTime(),f=Math.floor(d/6e4),c=Math.floor(d/36e5),p=Math.floor(d/864e5);return f<1?"just now":f<60?`${f}m ago`:c<24?`${c}h ago`:p<7?`${p}d ago`:a.toLocaleDateString()}function yg({task:l,acceptanceCriteria:a,activity:i,onClose:d,onCriteriaToggle:f,onClaim:c,onRelease:p,onComplete:x,currentUserId:g}){var k;const v=((k=l.assignee)==null?void 0:k.id)===g,j=!l.assignee,N=l.status==="in_progress";return s.jsxs("div",{className:"bg-surface border border-border rounded-lg max-w-2xl w-full max-h-[80vh] overflow-hidden flex flex-col",children:[s.jsxs("div",{className:"flex items-start justify-between p-4 border-b border-border",children:[s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx(Mt,{variant:"neutral",children:hg[l.status]}),s.jsx("span",{className:`px-1.5 py-0.5 text-xs font-medium rounded ${xg[l.priority]}`,children:l.priority}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Phase ",l.phase]})]}),s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:l.title}),s.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[j&&c&&s.jsx(ye,{variant:"primary",size:"sm",onClick:()=>c(l.id),children:"Claim"}),N&&x&&s.jsx(ye,{variant:"primary",size:"sm",onClick:()=>x(l.id),children:"Complete"})]})]}),s.jsx("button",{onClick:d,"aria-label":"Close",className:"p-1 rounded hover:bg-muted transition-colors",children:s.jsx(Ll,{className:"w-5 h-5 text-muted-foreground"})})]}),s.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-6",children:[l.description&&s.jsxs("div",{children:[s.jsx("h3",{className:"text-sm font-medium text-foreground mb-2",children:"Description"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:l.description})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"text-sm font-medium text-foreground mb-2",children:"Assignee"}),l.assignee?s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("div",{className:"w-8 h-8 rounded-full bg-primary/20 flex items-center justify-center",children:s.jsx("span",{className:"text-sm text-primary font-medium",children:l.assignee.name[0]})}),s.jsx("span",{className:"text-sm text-foreground",children:l.assignee.name}),v&&p&&s.jsx(ye,{variant:"ghost",size:"sm",onClick:()=>p(l.id),children:"Release"})]}):s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Jr,{className:"w-5 h-5 text-muted-foreground"}),s.jsx("span",{className:"text-sm text-muted-foreground",children:"Unassigned"}),j&&c&&s.jsx(ye,{variant:"primary",size:"sm",onClick:()=>c(l.id),children:"Claim Task"})]})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"text-sm font-medium text-foreground mb-2",children:"Test Status"}),s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx(dx,{className:"w-4 h-4 text-success"}),s.jsxs("span",{className:"text-sm text-foreground",children:[l.testStatus.passed," passed"]})]}),s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx(fx,{className:"w-4 h-4 text-error"}),s.jsxs("span",{className:"text-sm text-foreground",children:[l.testStatus.failed," failed"]})]})]})]}),s.jsxs("div",{children:[s.jsxs("h3",{className:"text-sm font-medium text-foreground mb-2",children:["Acceptance Criteria (",a.filter(y=>y.completed).length,"/",a.length,")"]}),s.jsx("div",{className:"space-y-2",children:a.map(y=>s.jsxs("label",{className:"flex items-start gap-2 cursor-pointer group",children:[s.jsx("input",{type:"checkbox",checked:y.completed,onChange:z=>f==null?void 0:f(y.id,z.target.checked),className:"mt-0.5 rounded border-border"}),s.jsx("span",{className:`text-sm ${y.completed?"text-muted-foreground line-through":"text-foreground"}`,children:y.text})]},y.id))})]}),s.jsxs("div",{children:[s.jsx("h3",{className:"text-sm font-medium text-foreground mb-2",children:"Activity"}),s.jsx("div",{className:"space-y-3",children:i.map(y=>s.jsxs("div",{className:"flex items-start gap-2",children:[s.jsx("div",{className:"w-6 h-6 rounded-full bg-muted flex items-center justify-center flex-shrink-0 mt-0.5",children:y.type==="comment"?s.jsx(af,{className:"w-3 h-3 text-muted-foreground"}):y.type==="status_change"?s.jsx(ux,{className:"w-3 h-3 text-muted-foreground"}):s.jsx(Jr,{className:"w-3 h-3 text-muted-foreground"})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("p",{className:"text-sm text-foreground",children:[s.jsx("span",{className:"font-medium",children:y.user})," ",s.jsx("span",{className:"text-muted-foreground",children:y.message})]}),s.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[s.jsx(rf,{className:"w-3 h-3"}),gg(y.timestamp)]})]})]},y.id))})]})]})]})}function vg(l){return{id:l.id,title:l.subject||l.title||"Untitled",description:l.goal||l.description||"",status:jg(l.status),priority:l.priority||"medium",assignee:l.owner?{id:l.owner,name:l.owner}:void 0,testStatus:l.testStatus||{passed:0,failed:0,total:0},phase:l.phase||0,createdAt:l.createdAt||new Date().toISOString(),updatedAt:l.updatedAt||new Date().toISOString()}}function jg(l){switch(l){case"completed":case"done":return"done";case"in_progress":return"in_progress";default:return"todo"}}function wg(l){const a=new Set,i=[];for(const d of l)d.assignee&&!a.has(d.assignee.id)&&(a.add(d.assignee.id),i.push(d.assignee));return i}const Ng=[];function kg(l,a){const i=a.find(d=>d.id===l.id);return i!=null&&i.acceptanceCriteria&&i.acceptanceCriteria.length>0?i.acceptanceCriteria.map((d,f)=>({id:String(f+1),text:d,completed:l.status==="done"})):[]}function wd(){const l=Je(Z=>Z.setActiveView),{projectId:a}=fn(),i=Ae(Z=>Z.selectProject),d=Ae(Z=>Z.selectedProjectId),f=a??d??void 0;h.useEffect(()=>{a&&a!==d&&i(a)},[a,d,i]);const c=Ae(Z=>Z.projects.find(Ne=>Ne.id===(a??d))),{tasks:p,loading:x,fetchTasks:g,updateTaskStatus:v,createTask:j}=hf(f),[N,k]=h.useState(null),[y,z]=h.useState({assignees:[],priorities:[]}),[_,b]=h.useState(!1),[D,L]=h.useState(""),[E,F]=h.useState("");h.useEffect(()=>{l("tasks"),g()},[l,g,f]);const $=h.useMemo(()=>p.map(vg),[p]),Q=h.useMemo(()=>wg($),[$]),ee=h.useCallback(Z=>{z(Z)},[]),G=h.useCallback(Z=>{k(Z)},[]),V=h.useCallback(()=>{k(null)},[]),he=h.useCallback(async(Z,Ne)=>{const ce=Ne==="done"?"completed":Ne;try{await v(Z,ce)}catch{g()}},[v,g]),we=h.useCallback(async Z=>{try{await v(Z,"in_progress"),g()}catch{}},[v,g]),De=h.useCallback(async Z=>{try{await v(Z,"done"),g()}catch{}},[v,g]),ne=h.useCallback(async()=>{if(D.trim())try{await j({title:D,goal:E,description:E}),L(""),F(""),b(!1)}catch{}},[j,D,E]),xe=h.useMemo(()=>$.filter(Z=>!(y.assignees.length>0&&Z.assignee&&!y.assignees.includes(Z.assignee.id)||y.priorities.length>0&&!y.priorities.includes(Z.priority))),[$,y]);return x&&$.length===0?s.jsxs("div",{className:"h-full p-6 space-y-4",children:[s.jsx(ge,{className:"h-8 w-32"}),s.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[s.jsx(ge,{className:"h-64"}),s.jsx(ge,{className:"h-64"}),s.jsx(ge,{className:"h-64"})]})]}):s.jsxs("div",{className:"h-full flex",children:[s.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[s.jsx("div",{className:"p-4 border-b border-border",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h1",{className:"text-xl font-semibold text-text-primary",children:"Tasks"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("button",{"data-testid":"create-task-btn",onClick:()=>b(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md bg-accent text-white hover:bg-accent-hover transition-colors",children:[s.jsx(El,{className:"h-4 w-4"}),"Create Task"]}),s.jsx(pg,{assignees:Q,onFilterChange:ee,initialFilters:y})]})]})}),_&&s.jsxs("div",{"data-testid":"task-create-form",className:"p-4 border-b border-border bg-bg-secondary",children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsx("h3",{className:"text-sm font-medium text-text-primary",children:"New Task"}),s.jsx("button",{onClick:()=>b(!1),className:"p-1 rounded hover:bg-bg-tertiary transition-colors",children:s.jsx(Ll,{className:"h-4 w-4 text-text-muted"})})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsx("input",{"data-testid":"task-title-input",type:"text",placeholder:"Task title...",value:D,onChange:Z=>L(Z.target.value),className:"w-full px-3 py-2 text-sm bg-bg-primary border border-border rounded-md text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-accent"}),s.jsx("textarea",{"data-testid":"task-goal-input",placeholder:"Goal / description...",value:E,onChange:Z=>F(Z.target.value),rows:2,className:"w-full px-3 py-2 text-sm bg-bg-primary border border-border rounded-md text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-accent resize-none"}),s.jsx("button",{"data-testid":"task-submit-btn",disabled:!D.trim(),onClick:ne,className:"px-4 py-2 text-sm font-medium rounded-md bg-accent text-white hover:bg-accent-hover disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:"Create"})]})]}),s.jsx("div",{className:"flex-1 overflow-auto p-4",children:$.length===0?s.jsx("div",{className:"flex flex-col items-center justify-center h-full text-center",children:c&&!c.hasPlanning?s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"text-text-secondary mb-2",children:"No TLC planning configured"}),s.jsxs("p",{className:"text-sm text-text-muted mb-4",children:["This project doesn't have a ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-tertiary rounded",children:".planning/"})," directory."]}),s.jsxs("p",{className:"text-sm text-text-muted",children:["Run ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-tertiary rounded",children:"/tlc:init"})," in the project to start tracking tasks."]})]}):s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"text-text-secondary mb-2",children:"No tasks found"}),s.jsx("p",{className:"text-sm text-text-muted mb-4",children:c!=null&&c.hasPlanning?"No tasks in current phase plan files (.planning/phases/*-PLAN.md)":"Select a project with TLC configured to view tasks"}),s.jsxs("button",{onClick:()=>b(!0),className:"flex items-center gap-1.5 px-3 py-1.5 text-sm font-medium rounded-md bg-accent text-white hover:bg-accent-hover transition-colors",children:[s.jsx(El,{className:"h-4 w-4"}),"Create Task"]})]})}):s.jsx(fg,{tasks:xe,onTaskMove:he,onTaskClick:G})})]}),N&&s.jsx("div",{className:"w-96 border-l border-border",children:s.jsx(yg,{task:N,acceptanceCriteria:kg(N,p),activity:Ng,onClose:V,onClaim:we,onRelease:V,onComplete:De})})]})}const Nd={info:"text-info",warn:"text-warning",error:"text-error",debug:"text-muted-foreground"},kd={info:"INFO",warn:"WARN",error:"ERROR",debug:"DEBUG"};function Sg(l){return new Date(l).toLocaleTimeString("en-US",{hour12:!1})}function Cg({logs:l,autoScroll:a=!0,showFilters:i=!1,showCount:d=!1,virtualized:f=!1,copyOnClick:c=!1,className:p=""}){const[x,g]=h.useState(!1),[v,j]=h.useState(new Set),N=h.useRef(null),k=h.useRef(0),y=v.size>0?l.filter(E=>v.has(E.level)):l,z=f?y.slice(-50):y;h.useEffect(()=>{a&&!x&&N.current&&(N.current.scrollTop=N.current.scrollHeight)},[l,a,x]);const _=h.useCallback(()=>{if(!N.current||!a)return;const{scrollTop:E,scrollHeight:F,clientHeight:$}=N.current,Q=F-E-$<50;E<k.current&&!Q&&g(!0),k.current=E},[a]),b=()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight,g(!1))},D=E=>{j(F=>{const $=new Set(F);return $.has(E)?$.delete(E):$.add(E),$})},L=E=>{c&&navigator.clipboard&&navigator.clipboard.writeText(`[${E.timestamp}] [${E.level}] ${E.message}`)};return l.length===0?s.jsx("div",{"data-testid":"log-stream",className:`bg-surface border border-border rounded-lg ${p}`,children:s.jsxs("div",{"data-testid":"empty-state",className:"flex flex-col items-center justify-center py-16 text-center",children:[s.jsx("div",{className:"w-16 h-16 bg-muted rounded-full flex items-center justify-center mb-4",children:s.jsx(uf,{className:"w-8 h-8 text-muted-foreground"})}),s.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:"No logs yet"}),s.jsx("p",{className:"text-muted-foreground",children:"Logs will appear here when your services start running."})]})}):s.jsxs("div",{"data-testid":"log-stream",className:`bg-surface border border-border rounded-lg flex flex-col ${p}`,children:[(i||d)&&s.jsxs("div",{className:"flex items-center justify-between p-3 border-b border-border",children:[i&&s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-sm text-muted-foreground",children:"Filter:"}),["error","warn","info","debug"].map(E=>s.jsx("button",{"data-testid":`filter-${E}`,onClick:()=>D(E),className:`
|
|
359
|
-
px-2 py-1 text-xs font-medium rounded
|
|
360
|
-
transition-colors
|
|
361
|
-
${v.has(E)?`${Nd[E]} bg-current/10`:"text-muted-foreground hover:text-foreground"}
|
|
362
|
-
`,children:kd[E]},E))]}),d&&s.jsx("span",{"data-testid":"log-count",className:"text-sm text-muted-foreground",children:y.length})]}),s.jsx("div",{ref:N,"data-testid":"log-container",onScroll:_,className:"flex-1 overflow-auto font-mono text-sm p-2 max-h-[400px]",children:z.map(E=>s.jsxs("div",{"data-testid":"log-entry",onClick:()=>L(E),className:`
|
|
363
|
-
flex items-start gap-2 py-1 px-2 rounded
|
|
364
|
-
hover:bg-muted/50
|
|
365
|
-
${c?"cursor-pointer":""}
|
|
366
|
-
`,children:[s.jsx("span",{"data-testid":"log-timestamp",className:"text-muted-foreground flex-shrink-0",children:Sg(E.timestamp)}),s.jsx("span",{"data-testid":`level-${E.level}`,className:`w-12 flex-shrink-0 ${Nd[E.level]}`,children:kd[E.level]}),s.jsx("span",{className:"text-foreground break-all",children:E.message})]},E.id))}),x&&s.jsxs("div",{className:"flex items-center justify-center p-2 border-t border-border",children:[s.jsx("span",{"data-testid":"scroll-paused",className:"text-xs text-muted-foreground mr-2",children:"Auto-scroll paused"}),s.jsxs("button",{onClick:b,"aria-label":"Scroll to bottom",className:`\r
|
|
367
|
-
flex items-center gap-1 px-2 py-1\r
|
|
368
|
-
text-xs text-primary hover:underline\r
|
|
369
|
-
`,children:[s.jsx(ox,{className:"w-3 h-3"}),"Resume"]})]})]})}function bg({onSearch:l,searchQuery:a="",matchCount:i,totalCount:d,currentMatch:f,onNavigate:c,className:p=""}){const x=N=>{N.key==="Enter"?(N.preventDefault(),c==null||c(N.shiftKey?"prev":"next")):N.key==="Escape"&&l("")},g=()=>{l("")},v=i!==void 0&&i>0,j=a&&i===0;return s.jsxs("div",{"data-testid":"log-search",className:`flex items-center gap-2 ${p}`,children:[s.jsxs("div",{className:"relative flex-1",children:[s.jsx(En,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),s.jsx("input",{type:"text",placeholder:"Search logs...",value:a,onChange:N=>l(N.target.value),onKeyDown:x,className:`\r
|
|
370
|
-
w-full pl-9 pr-8 py-2\r
|
|
371
|
-
bg-surface border border-border rounded-md\r
|
|
372
|
-
text-sm text-foreground\r
|
|
373
|
-
placeholder:text-muted-foreground\r
|
|
374
|
-
focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent\r
|
|
375
|
-
`}),a&&s.jsx("button",{onClick:g,"aria-label":"Clear search",className:"absolute right-2 top-1/2 -translate-y-1/2 p-1 hover:bg-muted rounded",children:s.jsx(Ll,{className:"w-4 h-4 text-muted-foreground"})})]}),a&&s.jsx("div",{className:"flex items-center gap-2 text-sm",children:j?s.jsx("span",{className:"text-muted-foreground",children:"No matches"}):i!==void 0?f!==void 0?s.jsxs("span",{"data-testid":"current-match",className:"text-muted-foreground",children:[f," of ",i]}):s.jsxs("span",{"data-testid":"match-count",className:"text-muted-foreground",children:[i," of ",d]}):null}),c&&s.jsxs("div",{className:"flex items-center",children:[s.jsx("button",{onClick:()=>c("prev"),disabled:!v,"aria-label":"Previous match",className:`\r
|
|
376
|
-
p-1.5 rounded hover:bg-muted\r
|
|
377
|
-
disabled:opacity-50 disabled:cursor-not-allowed\r
|
|
378
|
-
transition-colors\r
|
|
379
|
-
`,children:s.jsx(tf,{className:"w-4 h-4"})}),s.jsx("button",{onClick:()=>c("next"),disabled:!v,"aria-label":"Next match",className:`\r
|
|
380
|
-
p-1.5 rounded hover:bg-muted\r
|
|
381
|
-
disabled:opacity-50 disabled:cursor-not-allowed\r
|
|
382
|
-
transition-colors\r
|
|
383
|
-
`,children:s.jsx(bn,{className:"w-4 h-4"})})]})]})}const Eg=[{value:"app",label:"Application"},{value:"test",label:"Tests"},{value:"git",label:"Git"},{value:"system",label:"System"}];function Sd(){const{activeType:l,searchQuery:a,autoScroll:i,filteredLogs:d,setLogType:f,setSearchQuery:c,clearLogs:p,setAutoScroll:x}=Bo(),g=Je(y=>y.setActiveView),{projectId:v}=fn(),j=Ae(y=>y.selectProject),N=Ae(y=>y.selectedProjectId);h.useEffect(()=>{g("logs")},[g]),h.useEffect(()=>{v&&v!==N&&j(v)},[v,N,j]);const k=h.useMemo(()=>d.map(y=>({id:y.id,timestamp:y.timestamp,level:y.level,message:y.text,source:y.source||l})),[d,l]);return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsx("div",{className:"p-4 border-b border-border",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("div",{className:"flex items-center gap-2",children:Eg.map(y=>s.jsx(ye,{variant:l===y.value?"primary":"ghost",size:"sm",onClick:()=>f(y.value),children:y.label},y.value))}),s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx(bg,{onSearch:c,searchQuery:a}),s.jsx(ye,{variant:"ghost",size:"sm",onClick:()=>x(!i),children:i?"Auto-scroll ON":"Auto-scroll OFF"}),s.jsx(ye,{variant:"danger",size:"sm",onClick:()=>p(l),children:"Clear"})]})]})}),s.jsx("div",{className:"flex-1 overflow-hidden",children:s.jsx(Cg,{logs:k,autoScroll:i})})]})}const Cl=h.forwardRef(({variant:l="default",label:a,error:i,leftIcon:d,rightIcon:f,onClear:c,className:p="",disabled:x,value:g,onChange:v,...j},N)=>{const[k,y]=h.useState(""),z=g!==void 0,_=z?g:k,b=$=>{z||y($.target.value),v==null||v($)},D=()=>{z||y(""),c==null||c()},L=l==="search",E=_&&String(_).length>0,F=["input",d||L?"pl-10":"",f||L&&E?"pr-10":"",i?"border-error focus:ring-error":"",p].filter(Boolean).join(" ");return s.jsxs("div",{className:"w-full",children:[a&&s.jsx("label",{className:"block text-sm font-medium text-text-secondary mb-1.5",children:a}),s.jsxs("div",{className:"relative",children:[(d||L)&&s.jsx("div",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-text-muted pointer-events-none",children:d||s.jsx(En,{className:"h-4 w-4"})}),s.jsx("input",{ref:N,className:F,disabled:x,value:_,onChange:b,...j}),L&&E&&s.jsx("button",{type:"button",onClick:D,className:"absolute right-3 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-secondary transition-colors","aria-label":"Clear search","data-testid":"clear-button",children:s.jsx(Ll,{className:"h-4 w-4"})}),f&&!L&&s.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 text-text-muted pointer-events-none",children:f})]}),i&&s.jsx("p",{className:"mt-1.5 text-sm text-error",role:"alert",children:i})]})});Cl.displayName="Input";function Pg({config:l,onSave:a,onCancel:i,saving:d=!1,className:f=""}){var k,y,z,_;const[c,p]=h.useState({project:l.project||"",coverageThreshold:((y=(k=l.quality)==null?void 0:k.coverageThreshold)==null?void 0:y.toString())||"80",qualityScoreThreshold:((_=(z=l.quality)==null?void 0:z.qualityScoreThreshold)==null?void 0:_.toString())||"75"}),[x,g]=h.useState({}),v=(b,D)=>{p(L=>({...L,[b]:D})),g(L=>({...L,[b]:""}))},j=()=>{const b={},D=parseInt(c.coverageThreshold,10);(isNaN(D)||D<0||D>100)&&(b.coverageThreshold="Must be between 0 and 100");const L=parseInt(c.qualityScoreThreshold,10);return(isNaN(L)||L<0||L>100)&&(b.qualityScoreThreshold="Must be between 0 and 100"),g(b),Object.keys(b).length===0},N=()=>{j()&&a({...l,project:c.project,quality:{...l.quality,coverageThreshold:parseInt(c.coverageThreshold,10),qualityScoreThreshold:parseInt(c.qualityScoreThreshold,10)}})};return s.jsxs("div",{"data-testid":"settings-panel",className:`bg-surface border border-border rounded-lg p-6 ${f}`,children:[s.jsx("h2",{className:"text-xl font-semibold text-foreground mb-6",children:"Settings"}),s.jsxs("section",{className:"mb-6",children:[s.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-4",children:"General"}),s.jsx("div",{className:"space-y-4",children:s.jsxs("div",{children:[s.jsx("label",{htmlFor:"project",className:"block text-sm font-medium text-foreground mb-1",children:"Project Name"}),s.jsx(Cl,{id:"project",value:c.project,onChange:b=>v("project",b.target.value)})]})})]}),s.jsxs("section",{className:"mb-6",children:[s.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-4",children:"Quality"}),s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("label",{htmlFor:"coverageThreshold",className:"block text-sm font-medium text-foreground mb-1",children:"Coverage Threshold (%)"}),s.jsx(Cl,{id:"coverageThreshold",type:"number",min:"0",max:"100",value:c.coverageThreshold,onChange:b=>v("coverageThreshold",b.target.value)}),x.coverageThreshold&&s.jsx("p",{className:"text-sm text-error mt-1",children:x.coverageThreshold})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"qualityScoreThreshold",className:"block text-sm font-medium text-foreground mb-1",children:"Quality Score Threshold"}),s.jsx(Cl,{id:"qualityScoreThreshold",type:"number",min:"0",max:"100",value:c.qualityScoreThreshold,onChange:b=>v("qualityScoreThreshold",b.target.value)}),x.qualityScoreThreshold&&s.jsx("p",{className:"text-sm text-error mt-1",children:x.qualityScoreThreshold})]})]})]}),s.jsxs("div",{className:"flex justify-end gap-3 pt-4 border-t border-border",children:[i&&s.jsx(ye,{variant:"outline",onClick:i,children:"Cancel"}),s.jsx(ye,{onClick:N,disabled:d,children:d?"Saving...":"Save"})]})]})}const Tg={light:"Light",dark:"Dark",system:"System"};function Rg({theme:l,onToggle:a,showLabel:i=!1,className:d=""}){const f=()=>l==="dark"?"Switch to light mode":l==="light"?"Switch to dark mode":"Switch theme";return s.jsxs("button",{"data-testid":"theme-toggle",onClick:a,"aria-label":f(),className:`
|
|
384
|
-
flex items-center gap-2 p-2 rounded-md
|
|
385
|
-
hover:bg-muted transition-colors
|
|
386
|
-
${d}
|
|
387
|
-
`,children:[l==="dark"&&s.jsx(cf,{"data-testid":"sun-icon",className:"w-5 h-5"}),l==="light"&&s.jsx(of,{"data-testid":"moon-icon",className:"w-5 h-5"}),l==="system"&&s.jsx(Jo,{"data-testid":"system-icon",className:"w-5 h-5"}),i&&s.jsx("span",{className:"text-sm",children:Tg[l]})]})}function Lg(){const l=Je(v=>v.setActiveView),a=Je(v=>v.theme),i=Je(v=>v.toggleTheme),{config:d,loading:f,saving:c,error:p,saveConfig:x}=ig();h.useEffect(()=>{l("settings")},[l]);const g=async v=>{try{await x(v)}catch{}};return f?s.jsxs("div",{className:"h-full overflow-auto p-6 space-y-6",children:[s.jsx(ge,{className:"h-8 w-48"}),s.jsx(ge,{className:"h-32"}),s.jsx(ge,{className:"h-64"})]}):s.jsxs("div",{className:"h-full overflow-auto p-6 space-y-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Settings"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Configure your TLC dashboard"})]}),p&&s.jsx("div",{className:"text-danger text-sm p-3 bg-danger/10 rounded-lg",children:p}),s.jsxs($e,{className:"p-6",children:[s.jsx("h2",{className:"text-lg font-medium text-text-primary mb-4",children:"Appearance"}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx("div",{className:"text-text-primary",children:"Theme"}),s.jsx("div",{className:"text-sm text-text-secondary",children:"Switch between light and dark mode"})]}),s.jsx(Rg,{theme:a,onToggle:i})]})]}),s.jsxs($e,{className:"p-6",children:[s.jsx("h2",{className:"text-lg font-medium text-text-primary mb-4",children:"Project Configuration"}),s.jsx(Pg,{config:d??{project:""},onSave:g,saving:c})]})]})}function _g(){const[l,a]=h.useState([]),[i,d]=h.useState(!1),[f,c]=h.useState(null),p=h.useCallback(async()=>{d(!0),c(null);try{const x=await ke.workspace.getGroups();a(x)}catch(x){c(x instanceof Error?x.message:"Failed to fetch workspace groups"),a([])}finally{d(!1)}},[]);return h.useEffect(()=>{p()},[p]),{groups:l,loading:i,error:f,fetchGroups:p}}function Mg(){const l=ts(),a=Je(y=>y.setActiveView),i=Ae(y=>y.selectProject),{groups:d,loading:f,error:c}=_g(),[p,x]=h.useState(""),[g,v]=h.useState(null);h.useEffect(()=>{a("projects")},[a]);const j=d.filter(y=>p?y.name.toLowerCase().includes(p.toLowerCase())||y.repos.some(z=>z.name.toLowerCase().includes(p.toLowerCase())):!0),N=y=>{if(y.repoCount===1){const z=y.repos[0];i(z.id),l(`/projects/${z.id}`)}else v(y)},k=y=>{i(y.id),l(`/projects/${y.id}`)};return c?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Projects"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Manage your TLC projects"})]}),s.jsxs("div",{className:"text-error p-4",children:["Failed to load projects: ",c]})]}):f?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Projects"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Manage your TLC projects"})]}),s.jsx("div",{"data-testid":"loading",className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[1,2,3].map(y=>s.jsx(ge,{className:"h-32"},y))})]}):g?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsxs("button",{"data-testid":"back-to-groups",onClick:()=>v(null),className:"flex items-center gap-2 text-text-secondary hover:text-text-primary mb-3 transition-colors",children:[s.jsx(ix,{className:"h-4 w-4"}),s.jsx("span",{children:"All Workspaces"})]}),s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:g.name}),s.jsxs("p",{className:"text-text-secondary mt-1",children:[g.repoCount," repositories"]})]}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:g.repos.map(y=>s.jsxs("div",{onClick:()=>k(y),className:"p-4 rounded-lg border border-border bg-bg-secondary hover:bg-bg-tertiary cursor-pointer transition-colors",children:[s.jsxs("div",{className:"flex items-center justify-between mb-2",children:[s.jsx("h3",{className:"font-medium text-text-primary truncate",children:y.name}),s.jsx(rr,{className:"h-4 w-4 text-text-muted flex-shrink-0"})]}),y.hasTlc&&s.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[s.jsx("span",{"data-testid":"tlc-badge",className:"px-2 py-0.5 rounded-full text-xs font-medium bg-accent/20 text-accent",children:"TLC"}),y.phaseName&&s.jsxs("span",{className:"text-text-secondary",children:["Phase ",y.phase,": ",y.phaseName]})]}),!y.hasTlc&&s.jsx("span",{className:"text-sm text-text-muted",children:"No TLC"})]},y.id))})]}):s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Projects"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Manage your TLC projects"})]}),s.jsx("div",{className:"mb-6",children:s.jsxs("div",{className:"relative max-w-md",children:[s.jsx(En,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-text-muted"}),s.jsx("input",{type:"text",placeholder:"Search workspaces and projects...",value:p,onChange:y=>x(y.target.value),className:"w-full pl-10 pr-4 py-2 text-sm bg-bg-secondary border border-border rounded-md text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-accent focus:border-accent"})]})}),j.length===0?s.jsxs("div",{"data-testid":"empty-state",className:"flex flex-col items-center justify-center py-16 text-center",children:[s.jsx("div",{className:"w-16 h-16 bg-bg-tertiary rounded-full flex items-center justify-center mb-4",children:s.jsx(Ao,{className:"w-8 h-8 text-text-muted"})}),s.jsx("h3",{className:"text-lg font-semibold text-text-primary mb-2",children:"No workspaces found"}),s.jsx("p",{className:"text-text-secondary max-w-md",children:"Configure workspace roots in Settings to discover projects."})]}):s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:j.map(y=>s.jsxs("div",{onClick:()=>N(y),className:"p-5 rounded-lg border border-border bg-bg-secondary hover:bg-bg-tertiary cursor-pointer transition-colors",children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("div",{className:"w-10 h-10 rounded-lg bg-accent/10 flex items-center justify-center",children:s.jsx(Ao,{className:"h-5 w-5 text-accent"})}),s.jsxs("div",{children:[s.jsx("h3",{className:"font-semibold text-text-primary",children:y.name}),s.jsx("span",{"data-testid":`group-count-${y.name}`,className:"text-sm text-text-secondary",children:y.repoCount}),s.jsxs("span",{className:"text-sm text-text-secondary",children:[" ",y.repoCount===1?"repo":"repos"]})]})]}),s.jsx(rr,{className:"h-5 w-5 text-text-muted"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[y.hasTlc&&s.jsx("span",{"data-testid":"tlc-badge",className:"px-2 py-0.5 rounded-full text-xs font-medium bg-accent/20 text-accent",children:"TLC"}),y.repos.some(z=>z.phaseName)&&s.jsxs("span",{className:"text-xs text-text-muted",children:[y.repos.filter(z=>z.phaseName).length," active"]})]})]},y.name))})]})}const Dg={online:"bg-success",offline:"bg-muted",away:"bg-warning",busy:"bg-error"},Cd={online:0,busy:1,away:2,offline:3};function zg(l){return l.split(" ").map(a=>a[0]).join("").toUpperCase().slice(0,2)}function $g({members:l,mode:a="vps",compact:i=!1,className:d=""}){if(a==="local")return null;const f=[...l].sort((p,x)=>Cd[p.status]-Cd[x.status]),c=l.filter(p=>p.status==="online").length;return l.length===0?s.jsx("div",{"data-testid":"team-presence",className:`bg-surface border border-border rounded-lg p-4 ${d}`,children:s.jsxs("div",{"data-testid":"empty-state",className:"text-center text-muted-foreground",children:[s.jsx(Tx,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),s.jsx("p",{children:"No team members"})]})}):s.jsxs("div",{"data-testid":"team-presence",className:`bg-surface border border-border rounded-lg ${i?"compact p-2":"p-4"} ${d}`,children:[s.jsxs("div",{className:"flex items-center justify-between mb-3",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:"Team"}),s.jsxs("span",{"data-testid":"online-count",className:"text-sm text-muted-foreground",children:[c," online"]})]}),s.jsx("div",{className:`space-y-${i?"1":"2"}`,children:f.map(p=>s.jsxs("div",{"data-testid":"team-member",className:"flex items-center gap-3",children:[s.jsxs("div",{className:"relative",children:[p.avatar?s.jsx("img",{src:p.avatar,alt:p.name,className:"w-8 h-8 rounded-full object-cover"}):s.jsx("div",{className:"w-8 h-8 rounded-full bg-muted flex items-center justify-center text-xs font-medium",children:zg(p.name)}),s.jsx("span",{"data-testid":`status-${p.id}`,className:`absolute bottom-0 right-0 w-2.5 h-2.5 rounded-full border-2 border-surface ${Dg[p.status]}`})]}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsx("p",{className:"text-sm font-medium text-foreground truncate",children:p.name}),p.statusMessage?s.jsx("p",{className:"text-xs text-muted-foreground truncate",children:p.statusMessage}):p.lastSeen&&p.status!=="online"?s.jsx("p",{className:"text-xs text-muted-foreground",children:p.lastSeen}):null]})]},p.id))})]})}function gf({items:l,onSelect:a,trigger:i,align:d="left",className:f=""}){const[c,p]=h.useState(!1),[x,g]=h.useState(-1),[v,j]=h.useState(""),N=h.useRef(null),k=h.useRef(null),y=h.useRef(null);h.useEffect(()=>{if(!c)return;const b=D=>{N.current&&!N.current.contains(D.target)&&p(!1)};return document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[c]),h.useEffect(()=>{c||(g(-1),j(""))},[c]);const z=b=>{if(c)switch(b.key){case"ArrowDown":b.preventDefault(),g(L=>{const E=L+1;return E>=l.length?0:E});break;case"ArrowUp":b.preventDefault(),g(L=>{const E=L-1;return E<0?l.length-1:E});break;case"Enter":b.preventDefault();const D=l[x];x>=0&&D&&!D.disabled&&_(D);break;case"Escape":b.preventDefault(),p(!1);break;default:if(b.key.length===1&&b.key.match(/[a-z0-9]/i)){const L=v+b.key.toLowerCase();j(L);const E=l.findIndex(F=>F.label.toLowerCase().startsWith(L));E>=0&&g(E),y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{j("")},500)}break}},_=b=>{b.disabled||(a(b),p(!1))};return s.jsxs("div",{ref:N,className:`relative inline-block ${f}`,children:[s.jsxs("button",{type:"button",onClick:()=>p(!c),className:`\r
|
|
388
|
-
flex items-center gap-2 px-3 py-2\r
|
|
389
|
-
bg-surface border border-border rounded-md\r
|
|
390
|
-
hover:bg-muted transition-colors\r
|
|
391
|
-
text-foreground\r
|
|
392
|
-
`,"aria-haspopup":"menu","aria-expanded":c,children:[i,s.jsx(bn,{className:`w-4 h-4 transition-transform ${c?"rotate-180":""}`})]}),c&&s.jsx("div",{ref:k,role:"menu",tabIndex:-1,onKeyDown:z,className:`
|
|
393
|
-
absolute z-50 mt-1 min-w-[180px]
|
|
394
|
-
bg-surface border border-border rounded-md shadow-lg
|
|
395
|
-
py-1 max-h-60 overflow-auto
|
|
396
|
-
${d==="left"?"left-0":"right-0"}
|
|
397
|
-
`,children:l.map((b,D)=>s.jsxs("div",{role:"menuitem",tabIndex:-1,"aria-disabled":b.disabled,onClick:()=>_(b),className:`
|
|
398
|
-
flex items-center gap-2 px-3 py-2 cursor-pointer
|
|
399
|
-
${b.disabled?"opacity-50 cursor-not-allowed":"hover:bg-muted"}
|
|
400
|
-
${x===D?"bg-muted":""}
|
|
401
|
-
${b.disabled?"":"text-foreground"}
|
|
402
|
-
`,children:[b.icon&&s.jsx("span",{className:"flex-shrink-0",children:b.icon}),s.jsx("span",{children:b.label})]},b.id))})]})}const Fg={commit:s.jsx(xx,{className:"w-4 h-4","data-testid":"icon-commit"}),task_claim:s.jsx(Jr,{className:"w-4 h-4","data-testid":"icon-task_claim"}),task_complete:s.jsx(qo,{className:"w-4 h-4","data-testid":"icon-task_complete"}),comment:s.jsx(af,{className:"w-4 h-4","data-testid":"icon-comment"}),review:s.jsx(mx,{className:"w-4 h-4","data-testid":"icon-review"})};function Ig(l){const a=new Date(l),d=new Date().getTime()-a.getTime(),f=Math.floor(d/6e4),c=Math.floor(d/36e5);return f<1?"Just now":f<60?`${f}m ago`:c<24?`${c}h ago`:a.toLocaleDateString()}function Og(l){const a=new Date(l),i=new Date,d=new Date(i.getFullYear(),i.getMonth(),i.getDate()),f=new Date(d);f.setDate(f.getDate()-1);const c=new Date(a.getFullYear(),a.getMonth(),a.getDate());return c.getTime()===d.getTime()?"Today":c.getTime()===f.getTime()?"Yesterday":"Earlier"}function Ag(l){const a={};return l.forEach(i=>{const d=Og(i.timestamp);a[d]||(a[d]=[]),a[d].push(i)}),a}function Ug({activities:l,showFilters:a=!1,pageSize:i=20,mode:d="vps",className:f=""}){const[c,p]=h.useState(null),[x,g]=h.useState(null),[v,j]=h.useState(i);if(d==="local")return null;const N=l.filter(D=>!(c&&D.type!==c||x&&D.user!==x)),k=N.slice(0,v),y=Ag(k),z=N.length>v,b=[...new Set(l.map(D=>D.user))].map(D=>({id:D,label:D}));return l.length===0?s.jsx("div",{"data-testid":"activity-feed",className:`bg-surface border border-border rounded-lg p-4 ${f}`,children:s.jsxs("div",{"data-testid":"empty-state",className:"text-center text-muted-foreground",children:[s.jsx(ax,{className:"w-8 h-8 mx-auto mb-2 opacity-50"}),s.jsx("p",{children:"No activity yet"})]})}):s.jsxs("div",{"data-testid":"activity-feed",className:`bg-surface border border-border rounded-lg ${f}`,children:[a&&s.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-border",children:[s.jsx("button",{"data-testid":"filter-commit",onClick:()=>p(c==="commit"?null:"commit"),className:`px-2 py-1 text-xs rounded ${c==="commit"?"bg-primary text-primary-foreground":"bg-muted"}`,children:"Commits"}),s.jsx("button",{"data-testid":"filter-task_claim",onClick:()=>p(c==="task_claim"?null:"task_claim"),className:`px-2 py-1 text-xs rounded ${c==="task_claim"?"bg-primary text-primary-foreground":"bg-muted"}`,children:"Claims"}),s.jsx("div",{"data-testid":"filter-user",children:s.jsx(gf,{items:b,onSelect:D=>g(x===D.id?null:D.id),trigger:s.jsx("span",{className:"text-xs",children:"User"})})})]}),s.jsx("div",{className:"p-3 space-y-4",children:["Today","Yesterday","Earlier"].map(D=>{const L=y[D];return!L||L.length===0?null:s.jsxs("div",{children:[s.jsx("h4",{className:"text-xs font-semibold text-muted-foreground mb-2",children:D}),s.jsx("div",{className:"space-y-2",children:L.map(E=>s.jsxs("div",{"data-testid":"activity-item",className:"flex items-start gap-3",children:[s.jsx("div",{className:"text-muted-foreground mt-0.5",children:Fg[E.type]}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("p",{className:"text-sm",children:[s.jsx("span",{className:"font-medium text-foreground",children:E.user}),s.jsx("span",{className:"text-muted-foreground ml-1",children:E.message})]}),s.jsx("span",{"data-testid":"activity-time",className:"text-xs text-muted-foreground",children:Ig(E.timestamp)})]})]},E.id))})]},D)})}),z&&s.jsx("div",{className:"p-3 border-t border-border",children:s.jsx("button",{onClick:()=>j(D=>D+i),className:"w-full text-sm text-primary hover:underline",children:"Load more"})})]})}const Bg={local:{label:"Local",color:"bg-muted text-muted-foreground",icon:s.jsx(Jo,{className:"w-3 h-3"})},vps:{label:"VPS",color:"bg-info text-info-foreground",icon:s.jsx(Nx,{className:"w-3 h-3"})},staging:{label:"Staging",color:"bg-warning text-warning-foreground",icon:s.jsx(gx,{className:"w-3 h-3"})},production:{label:"Production",color:"bg-error text-error-foreground",icon:s.jsx(Sx,{className:"w-3 h-3"})}},Vg={sm:"text-xs px-1.5 py-0.5",md:"text-sm px-2 py-1",lg:"text-base px-3 py-1.5"};function Hg({environment:l,showIcon:a=!1,tooltip:i,size:d="md",className:f=""}){const c=Bg[l];return s.jsxs("span",{"data-testid":"env-badge",title:i,className:`
|
|
403
|
-
inline-flex items-center gap-1 rounded-full font-medium
|
|
404
|
-
${c.color}
|
|
405
|
-
${Vg[d]}
|
|
406
|
-
${f}
|
|
407
|
-
`,children:[a&&s.jsx("span",{"data-testid":"env-icon",children:c.icon}),c.label]})}function Wg({members:l,activities:a,environment:i="local",mode:d="vps",loading:f=!1,connected:c=!0,collapsible:p=!1,className:x=""}){const[g,v]=h.useState("team"),[j,N]=h.useState(!1);return d==="local"?null:f?s.jsx("div",{"data-testid":"team-panel",className:`bg-surface border border-border rounded-lg p-4 ${x}`,children:s.jsxs("div",{"data-testid":"loading-skeleton",children:[s.jsx(ge,{className:"h-6 w-24 mb-4"}),s.jsx(ge,{className:"h-10 w-full mb-2"}),s.jsx(ge,{className:"h-10 w-full mb-2"}),s.jsx(ge,{className:"h-10 w-full"})]})}):s.jsxs("div",{"data-testid":"team-panel",className:`bg-surface border border-border rounded-lg ${j?"collapsed":""} ${x}`,children:[s.jsxs("div",{className:"flex items-center justify-between p-3 border-b border-border",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:"Team"}),s.jsx("span",{"data-testid":"member-count",className:"text-xs bg-muted px-1.5 py-0.5 rounded-full",children:l.length}),i!=="local"&&s.jsx(Hg,{environment:i,size:"sm"})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{"data-testid":"connection-status",className:`w-2 h-2 rounded-full ${c?"bg-success":"bg-error"}`,title:c?"Connected":"Disconnected"}),p&&s.jsx("button",{onClick:()=>N(!j),"aria-label":j?"Expand team panel":"Collapse team panel",className:"p-1 hover:bg-muted rounded",children:j?s.jsx(bn,{className:"w-4 h-4"}):s.jsx(tf,{className:"w-4 h-4"})})]})]}),!j&&s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex border-b border-border",role:"tablist",children:[s.jsx("button",{role:"tab","aria-selected":g==="team",onClick:()=>v("team"),className:`flex-1 px-4 py-2 text-sm font-medium transition-colors ${g==="team"?"text-primary border-b-2 border-primary":"text-muted-foreground hover:text-foreground"}`,children:"Team"}),s.jsx("button",{role:"tab","aria-selected":g==="activity",onClick:()=>v("activity"),className:`flex-1 px-4 py-2 text-sm font-medium transition-colors ${g==="activity"?"text-primary border-b-2 border-primary":"text-muted-foreground hover:text-foreground"}`,children:"Activity"})]}),s.jsx("div",{className:"p-3",children:g==="team"?s.jsx($g,{members:l,mode:"vps"}):s.jsx(Ug,{activities:a,mode:"vps"})})]})]})}function Qg(){const l=Je(v=>v.setActiveView),a=_t(v=>v.status),[i,d]=h.useState([]),[f,c]=h.useState([]),[p,x]=h.useState(!0),g=h.useCallback(async()=>{x(!0);try{const j=(await ke.project.getChangelog()||[]).slice(0,20),N=new Map;for(const y of j)y.author&&!N.has(y.author)&&N.set(y.author,{name:y.author,lastSeen:y.time||new Date().toISOString()});if(N.size>0){const y=Array.from(N.entries()).map(([,z],_)=>({id:`author-${_}`,name:z.name,email:"",status:_===0&&a==="connected"?"online":"offline",lastSeen:z.lastSeen}));d(y)}else d([]);const k=j.slice(0,10).map((y,z)=>({id:y.hash||String(z),type:"commit",user:y.author||"Unknown",message:y.message||"",timestamp:y.time||new Date().toISOString()}));c(k)}catch{d([]),c([])}finally{x(!1)}},[a]);return h.useEffect(()=>{l("team"),g()},[l,g]),p?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Team"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Team presence and activity"})]}),s.jsx(ge,{className:"h-96"})]}):s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Team"}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Team presence and activity"})]}),s.jsx(Wg,{members:i,activities:f,mode:"vps",connected:a==="connected"})]})}function Gg(l){const a=Math.floor(l/86400),i=Math.floor(l%86400/3600),d=Math.floor(l%3600/60);return a>0?`${a} day${a>1?"s":""}`:i>0?`${i} hour${i>1?"s":""}`:`${d} minute${d>1?"s":""}`}function Kg({status:l}){const a={healthy:"bg-success text-white",degraded:"bg-warning text-black",unhealthy:"bg-error text-white"}[l]||"bg-text-muted text-white";return s.jsx("span",{className:`px-2 py-1 rounded text-sm font-medium ${a}`,children:l})}function wl({label:l,value:a,unit:i}){return s.jsxs("div",{className:"bg-surface-elevated p-4 rounded-lg",children:[s.jsx("p",{className:"text-text-muted text-sm",children:l}),s.jsxs("p",{className:"text-xl font-semibold",children:[a,i]})]})}function bd({value:l,testId:a}){return s.jsx("div",{"data-testid":a,className:"h-8 bg-surface-elevated rounded overflow-hidden",children:s.jsx("div",{className:"h-full bg-primary transition-all duration-300",style:{width:`${Math.min(100,Math.max(0,l))}%`}})})}function Yg({health:l,loading:a,error:i,showGraphs:d,onRefresh:f,refreshInterval:c}){return h.useEffect(()=>{if(f&&c){const p=setInterval(()=>{f()},c);return()=>clearInterval(p)}},[f,c]),a?s.jsx("div",{className:"p-6 text-center",children:s.jsx("p",{className:"text-text-muted",children:"Loading health diagnostics..."})}):i?s.jsx("div",{className:"p-6 text-center",children:s.jsx("p",{className:"text-error",children:i})}):l?s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h2",{className:"text-lg font-semibold",children:"System Health"}),s.jsx(Kg,{status:l.status})]}),s.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[s.jsx(wl,{label:"Memory",value:l.memory.percent,unit:"%"}),s.jsx(wl,{label:"CPU",value:l.cpu.percent,unit:"%"}),s.jsx(wl,{label:"Tests",value:l.tests.passed,unit:` / ${l.tests.total}`}),s.jsx(wl,{label:"Uptime",value:Gg(l.uptime)})]}),d&&s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("p",{className:"text-sm text-text-muted mb-2",children:"Memory Usage"}),s.jsx(bd,{value:l.memory.percent,testId:"memory-graph"})]}),s.jsxs("div",{children:[s.jsx("p",{className:"text-sm text-text-muted mb-2",children:"CPU Usage"}),s.jsx(bd,{value:l.cpu.percent,testId:"cpu-graph"})]})]}),l.issues&&l.issues.length>0&&s.jsxs("div",{className:"bg-warning/10 border border-warning rounded-lg p-4",children:[s.jsx("h3",{className:"font-medium text-warning mb-2",children:"Issues"}),s.jsx("ul",{className:"list-disc list-inside space-y-1",children:l.issues.map((p,x)=>s.jsx("li",{className:"text-sm",children:p},x))})]}),l.alerts&&l.alerts.length>0&&s.jsxs("div",{className:"space-y-2",children:[s.jsx("h3",{className:"font-medium",children:"Alerts"}),l.alerts.map((p,x)=>s.jsx("div",{className:`p-3 rounded-lg ${p.severity==="warning"?"bg-warning/10 border border-warning":p.severity==="error"?"bg-error/10 border border-error":"bg-info/10 border border-info"}`,children:s.jsx("p",{className:"text-sm",children:p.message})},x))]}),l.router&&l.router.providers&&s.jsxs("div",{children:[s.jsx("h3",{className:"font-medium mb-2",children:"Router Providers"}),s.jsx("div",{className:"space-y-2",children:l.router.providers.map((p,x)=>s.jsxs("div",{className:"flex items-center justify-between p-2 bg-surface-elevated rounded",children:[s.jsx("span",{children:p.name}),s.jsx("span",{className:`text-sm ${p.status==="active"?"text-success":p.status==="error"?"text-error":"text-text-muted"}`,children:p.status})]},x))})]})]}):s.jsx("div",{className:"p-6 text-center",children:s.jsx("p",{className:"text-text-muted",children:"No health data available"})})}function qg(){const l=Je(p=>p.setActiveView),[a,i]=h.useState(!0),[d,f]=h.useState(null),c=h.useCallback(async()=>{i(!0),f(null);try{await ke.health.getHealth()}catch(p){f(p instanceof Error?p.message:"Failed to fetch health data")}finally{i(!1)}},[]);return h.useEffect(()=>{l("health"),c()},[l,c]),a?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsx("div",{className:"flex items-center justify-between mb-6",children:s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Health"})}),s.jsx("div",{className:"space-y-4",children:[1,2,3].map(p=>s.jsx(ge,{className:"h-24"},p))})]}):d?s.jsxs("div",{className:"h-full overflow-auto p-6",children:[s.jsxs("div",{className:"flex items-center justify-between mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Health"}),s.jsx(ye,{variant:"ghost",onClick:c,leftIcon:s.jsx(Pl,{className:"w-4 h-4"}),children:"Retry"})]}),s.jsxs("div",{className:"text-danger p-4",children:["Failed to load health data: ",d]})]}):s.jsxs("div",{className:"h-full overflow-auto",children:[s.jsxs("div",{className:"flex items-center justify-between p-6 pb-0",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Health"}),s.jsx(ye,{variant:"ghost",onClick:c,leftIcon:s.jsx(Pl,{className:"w-4 h-4"}),children:"Refresh"})]}),s.jsx(Yg,{onRefresh:async()=>await ke.health.getHealth()})]})}const Ed=[{type:"phone",label:"Phone",width:"375px",icon:s.jsx(Cx,{className:"w-4 h-4"})},{type:"tablet",label:"Tablet",width:"768px",icon:s.jsx(Ex,{className:"w-4 h-4"})},{type:"desktop",label:"Desktop",width:"100%",icon:s.jsx(Jo,{className:"w-4 h-4"})}];function Pd({defaultUrl:l="http://localhost:3000",services:a}){var F;const i=Je($=>$.setActiveView),{projectId:d}=fn(),f=Ae($=>$.selectProject),c=Ae($=>$.selectedProjectId),[p,x]=h.useState("desktop"),[g,v]=h.useState(l),[j,N]=h.useState(0),[k,y]=h.useState((a==null?void 0:a[0])??null);h.useEffect(()=>{i("preview")},[i]),h.useEffect(()=>{d&&d!==c&&f(d)},[d,c,f]),h.useEffect(()=>{k&&v(k.url)},[k]);const z=h.useCallback($=>{x($)},[]),_=h.useCallback(()=>{N($=>$+1)},[]),b=h.useCallback(()=>{window.open(g,"_blank")},[g]),D=h.useCallback($=>{const Q=a==null?void 0:a.find(ee=>ee.id===$.id);Q&&y(Q)},[a]),L=((F=Ed.find($=>$.type===p))==null?void 0:F.width)??"100%",E=(a==null?void 0:a.map($=>({id:$.id,label:$.label})))??[];return s.jsxs("div",{className:"h-full flex flex-col",children:[s.jsx("div",{className:"p-4 border-b border-border",children:s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsx("h1",{className:"text-xl font-semibold text-text-primary",children:"Preview"}),s.jsx("span",{className:"text-sm text-text-secondary",children:g})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[a&&a.length>0&&s.jsx(gf,{items:E,onSelect:D,trigger:(k==null?void 0:k.label)??"Select Service"}),s.jsx("div",{className:"flex items-center gap-1 border-l border-border pl-2 ml-2",children:Ed.map($=>s.jsx(ye,{variant:p===$.type?"primary":"ghost",size:"sm",onClick:()=>z($.type),"aria-label":$.label,leftIcon:$.icon,children:$.label},$.type))}),s.jsxs("div",{className:"flex items-center gap-1 border-l border-border pl-2 ml-2",children:[s.jsx(ye,{variant:"ghost",size:"sm",onClick:_,"aria-label":"Refresh",leftIcon:s.jsx(Pl,{className:"w-4 h-4"}),children:"Refresh"}),s.jsx(ye,{variant:"ghost",size:"sm",onClick:b,"aria-label":"Open in new tab",leftIcon:s.jsx(sf,{className:"w-4 h-4"}),children:"Open in new tab"})]})]})]})}),s.jsx("div",{className:"flex-1 overflow-hidden bg-bg-tertiary p-4 flex justify-center",children:!(a!=null&&a.length)&&g===l?s.jsxs("div",{className:"flex flex-col items-center justify-center text-center",children:[s.jsx("p",{className:"text-text-secondary mb-2",children:"No preview configured"}),s.jsxs("p",{className:"text-sm text-text-muted mb-4",children:["Configure a ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-elevated rounded",children:"start"})," command in ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-elevated rounded",children:".tlc.json"})," to enable live preview."]}),s.jsxs("p",{className:"text-sm text-text-muted",children:["Currently pointing to: ",s.jsx("code",{className:"px-1 py-0.5 bg-bg-elevated rounded",children:g})]})]}):s.jsx("div",{"data-testid":"iframe-container",className:"h-full bg-white rounded-lg shadow-lg overflow-hidden transition-all duration-300",style:{width:L,maxWidth:"100%"},children:s.jsx("iframe",{src:g,title:"App Preview",className:"w-full h-full border-0",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups"},j)})})]})}function Td(){const{projectId:l}=fn(),a=Ae(L=>L.selectedProjectId),i=Ae(L=>L.selectProject),d=Je(L=>L.setActiveView),f=l??a??void 0;h.useEffect(()=>{l&&l!==a&&i(l)},[l,a,i]),h.useEffect(()=>{d("test-suite")},[d]);const{inventory:c,loading:p,runTests:x}=ug(f),[g,v]=h.useState(null),[j,N]=h.useState(""),[k,y]=h.useState(!1),z=h.useMemo(()=>{if(!(c!=null&&c.groups))return[];const L=[...c.groups];return(j?L.filter(F=>F.name.toLowerCase().includes(j.toLowerCase())):L).sort((F,$)=>$.testCount-F.testCount)},[c==null?void 0:c.groups,j]),_=async()=>{y(!0);try{await x()}catch{}finally{y(!1)}},b=L=>{v(E=>E===L?null:L)};if(p)return s.jsxs("div",{className:"p-6 space-y-6","data-testid":"loading-skeleton",children:[s.jsx(ge,{className:"h-8 w-48"}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[1,2,3].map(L=>s.jsx(ge,{className:"h-24"},L))}),s.jsx(ge,{className:"h-10 w-full"}),s.jsx("div",{className:"space-y-3",children:[1,2,3].map(L=>s.jsx(ge,{className:"h-14"},L))})]});if(!c||c.totalFiles===0&&c.groups.length===0)return s.jsxs("div",{className:"p-6",children:[s.jsxs("div",{className:"flex items-center justify-between mb-6",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Test Suite"}),s.jsx(ye,{"data-testid":"run-tests-btn",variant:"primary",onClick:_,loading:k,leftIcon:s.jsx(cd,{className:"w-4 h-4"}),children:"Run Tests"})]}),s.jsx($e,{className:"p-8","data-testid":"empty-state",children:s.jsxs("div",{className:"text-center",children:[s.jsx("p",{className:"text-text-secondary text-lg",children:"No test files found"}),s.jsx("p",{className:"text-text-muted text-sm mt-2",children:"Add test files to your project to see them here."})]})})]});const D=L=>(L/1e3).toFixed(1);return s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Test Suite"}),s.jsx(ye,{"data-testid":"run-tests-btn",variant:"primary",onClick:_,loading:k,leftIcon:s.jsx(cd,{className:"w-4 h-4"}),children:"Run Tests"})]}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Files"}),s.jsx("div",{className:"text-3xl font-bold text-text-primary mt-1","data-testid":"summary-files",children:c.totalFiles})]}),s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Tests"}),s.jsx("div",{className:"text-3xl font-bold text-text-primary mt-1","data-testid":"summary-tests",children:c.totalTests})]}),s.jsxs($e,{className:"p-4",children:[s.jsx("div",{className:"text-sm text-text-secondary",children:"Groups"}),s.jsx("div",{className:"text-3xl font-bold text-text-primary mt-1","data-testid":"summary-groups",children:c.groups.length})]})]}),c.lastRun&&s.jsx($e,{className:"p-4","data-testid":"last-run",children:s.jsxs("div",{className:"flex items-center gap-3 text-sm",children:[s.jsx("span",{className:"text-text-secondary",children:"Last Run:"}),s.jsxs(Mt,{variant:"success",children:[c.lastRun.passed," passed"]}),s.jsxs(Mt,{variant:"danger",children:[c.lastRun.failed," failed"]}),s.jsxs("span",{className:"text-text-muted",children:["(",D(c.lastRun.duration),"s)"]})]})}),s.jsxs("div",{className:"relative",children:[s.jsx(En,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted"}),s.jsx("input",{"data-testid":"search-input",type:"text",placeholder:"Search test files...",value:j,onChange:L=>N(L.target.value),className:"w-full pl-10 pr-4 py-2 bg-bg-secondary border border-border rounded-lg text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-2 focus:ring-primary"})]}),s.jsx("div",{className:"space-y-2",children:z.map(L=>{const E=g===L.name;return s.jsxs("div",{children:[s.jsxs("div",{"data-testid":"group-row",className:"flex items-center justify-between p-3 bg-bg-secondary rounded-lg cursor-pointer hover:bg-bg-tertiary transition-colors",onClick:()=>b(L.name),children:[s.jsxs("div",{className:"flex items-center gap-2",children:[E?s.jsx(bn,{className:"w-4 h-4 text-text-muted"}):s.jsx(rr,{className:"w-4 h-4 text-text-muted"}),s.jsx("span",{className:"font-medium text-text-primary","data-testid":"group-name",children:L.name})]}),s.jsxs("div",{className:"flex items-center gap-4 text-sm text-text-secondary",children:[s.jsxs("span",{"data-testid":"group-files",children:[L.fileCount," files"]}),s.jsxs("span",{"data-testid":"group-tests",children:[L.testCount," tests"]})]})]}),E&&s.jsx("div",{className:"ml-6 mt-1 space-y-1",children:L.files.map(F=>s.jsxs("div",{"data-testid":"file-row",className:"flex items-center justify-between p-2 text-sm rounded hover:bg-bg-tertiary",children:[s.jsx("span",{className:"text-text-secondary","data-testid":"file-name",children:F.relativePath}),s.jsxs("span",{className:"text-text-muted","data-testid":"file-tests",children:[F.testCount," tests"]})]},F.relativePath))})]},L.name)})})]})}function Xg(l){const[a,i]=h.useState([]),[d,f]=h.useState(!1),[c,p]=h.useState(null),x=h.useCallback(async()=>{if(!l){i([]);return}f(!0),p(null);try{const j=await ke.projects.getBugs(l);i(Array.isArray(j)?j:[])}catch(j){p(j instanceof Error?j.message:"Failed to fetch bugs"),i([])}finally{f(!1)}},[l]),g=h.useCallback(async j=>{if(!l)throw new Error("No project selected");const N=await ke.projects.createBug(l,j);return await x(),N},[l,x]),v=h.useCallback(async(j,N)=>{if(!l)throw new Error("No project selected");const k=await ke.projects.updateBugStatus(l,j,N);return await x(),k},[l,x]);return{bugs:a,loading:d,error:c,fetchBugs:x,createBug:g,updateBugStatus:v}}const Jg={critical:"danger",high:"warning",medium:"neutral",low:"info"};function Rd(){const{projectId:l}=fn(),a=Ae(V=>V.selectedProjectId),i=Ae(V=>V.selectProject),d=Je(V=>V.setActiveView),f=l??a??void 0;h.useEffect(()=>{l&&l!==a&&i(l)},[l,a,i]);const{bugs:c,loading:p,error:x,fetchBugs:g,createBug:v,updateBugStatus:j}=Xg(f),[N,k]=h.useState("all"),[y,z]=h.useState(null),[_,b]=h.useState(!1),[D,L]=h.useState({title:"",severity:"medium",description:"",url:""}),[E,F]=h.useState(!1);h.useEffect(()=>{d("bugs"),g()},[d,g,f]);const $=h.useMemo(()=>N==="all"?c:c.filter(V=>V.status===N),[c,N]),Q=h.useMemo(()=>c.filter(V=>V.status==="open").length,[c]),ee=async V=>{if(V.preventDefault(),!(!D.title||!D.description)){F(!0);try{await v({title:D.title,severity:D.severity,description:D.description,url:D.url||void 0}),L({title:"",severity:"medium",description:"",url:""}),b(!1)}catch{}finally{F(!1)}}},G=async(V,he)=>{try{await j(V,he)}catch{}};return p?s.jsxs("div",{className:"p-6 space-y-6","data-testid":"loading",children:[s.jsx(ge,{className:"h-8 w-48"}),s.jsx(ge,{className:"h-10 w-full"}),[1,2,3].map(V=>s.jsx(ge,{className:"h-16"},V))]}):s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Bugs"}),Q>0&&s.jsxs(Mt,{"data-testid":"open-count",variant:"danger",children:[Q," open"]})]}),s.jsx(ye,{"data-testid":"report-bug-btn",variant:"primary",onClick:()=>b(!_),leftIcon:s.jsx(El,{className:"w-4 h-4"}),children:"Report Bug"})]}),x&&s.jsx("div",{className:"text-danger text-sm p-3 bg-danger/10 rounded-lg",children:x}),_&&s.jsxs($e,{className:"p-6","data-testid":"bug-form",children:[s.jsx("h2",{className:"text-lg font-medium text-text-primary mb-4",children:"Report a Bug"}),s.jsxs("form",{onSubmit:ee,className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-title",className:"block text-sm font-medium text-text-secondary mb-1",children:"Title *"}),s.jsx("input",{id:"bug-title","data-testid":"bug-title-input",type:"text",required:!0,value:D.title,onChange:V=>L({...D,title:V.target.value}),className:"w-full px-3 py-2 bg-bg-secondary border border-border rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-primary",placeholder:"Brief summary of the bug"})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-severity",className:"block text-sm font-medium text-text-secondary mb-1",children:"Severity *"}),s.jsxs("select",{id:"bug-severity","data-testid":"bug-severity-select",value:D.severity,onChange:V=>L({...D,severity:V.target.value}),className:"w-full px-3 py-2 bg-bg-secondary border border-border rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-primary",children:[s.jsx("option",{value:"critical",children:"Critical"}),s.jsx("option",{value:"high",children:"High"}),s.jsx("option",{value:"medium",children:"Medium"}),s.jsx("option",{value:"low",children:"Low"})]})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-description",className:"block text-sm font-medium text-text-secondary mb-1",children:"Steps to Reproduce *"}),s.jsx("textarea",{id:"bug-description","data-testid":"bug-description-input",required:!0,rows:4,value:D.description,onChange:V=>L({...D,description:V.target.value}),className:"w-full px-3 py-2 bg-bg-secondary border border-border rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-primary",placeholder:"1. Go to...\\n2. Click on...\\n3. Observe..."})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-url",className:"block text-sm font-medium text-text-secondary mb-1",children:"URL (optional)"}),s.jsx("input",{id:"bug-url","data-testid":"bug-url-input",type:"url",value:D.url,onChange:V=>L({...D,url:V.target.value}),className:"w-full px-3 py-2 bg-bg-secondary border border-border rounded-lg text-text-primary focus:outline-none focus:ring-2 focus:ring-primary",placeholder:"http://localhost:3000/page-with-bug"})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(ye,{type:"submit",variant:"primary",loading:E,disabled:!D.title||!D.description,children:"Submit Bug Report"}),s.jsx(ye,{type:"button",variant:"ghost",onClick:()=>b(!1),children:"Cancel"})]})]})]}),s.jsx("div",{className:"flex gap-2","data-testid":"status-filters",children:["all","open","fixed","closed"].map(V=>s.jsx("button",{"data-testid":`filter-${V}`,className:`px-3 py-1.5 text-sm rounded-md transition-colors ${N===V?"bg-accent text-white":"text-text-secondary hover:bg-bg-tertiary"}`,onClick:()=>k(V),children:V.charAt(0).toUpperCase()+V.slice(1)},V))}),$.length===0?s.jsx($e,{className:"p-8","data-testid":"empty-state",children:s.jsxs("div",{className:"text-center",children:[s.jsx(ef,{className:"w-12 h-12 mx-auto text-text-muted mb-3"}),s.jsx("p",{className:"text-text-secondary",children:N==="all"?"No bugs reported yet":`No ${N} bugs`}),s.jsx(ye,{variant:"ghost",className:"mt-3",onClick:()=>b(!0),children:"Report a Bug"})]})}):s.jsx("div",{className:"space-y-2",children:$.map(V=>{const he=y===V.id,we=V.severity||"medium";return s.jsxs("div",{"data-testid":"bug-card",children:[s.jsxs("div",{className:"flex items-center justify-between p-3 bg-bg-secondary rounded-lg cursor-pointer hover:bg-bg-tertiary transition-colors",onClick:()=>z(he?null:V.id),children:[s.jsxs("div",{className:"flex items-center gap-3",children:[he?s.jsx(bn,{className:"w-4 h-4 text-text-muted"}):s.jsx(rr,{className:"w-4 h-4 text-text-muted"}),s.jsx("span",{className:"font-mono text-xs text-text-muted","data-testid":"bug-id",children:V.id}),s.jsx("span",{className:"font-medium text-text-primary","data-testid":"bug-title",children:V.description||V.id}),s.jsx(Mt,{variant:Jg[we],size:"sm","data-testid":"bug-severity",children:we})]}),s.jsx(Mt,{variant:V.status==="open"?"warning":V.status==="fixed"?"success":"neutral",size:"sm","data-testid":"bug-status",children:V.status})]}),he&&s.jsxs("div",{className:"ml-10 mt-2 mb-3 p-4 bg-bg-tertiary rounded-lg space-y-3",children:[s.jsx("p",{className:"text-sm text-text-secondary whitespace-pre-line",children:V.description}),V.createdAt&&s.jsxs("p",{className:"text-xs text-text-muted",children:["Reported: ",V.createdAt]}),s.jsxs("div",{className:"flex items-center gap-2",children:[V.status==="open"&&s.jsxs(s.Fragment,{children:[s.jsx(ye,{size:"sm",variant:"primary",onClick:()=>G(V.id,"fixed"),children:"Mark Fixed"}),s.jsx(ye,{size:"sm",variant:"ghost",onClick:()=>G(V.id,"closed"),children:"Close"})]}),V.status==="fixed"&&s.jsx(ye,{size:"sm",variant:"ghost",onClick:()=>G(V.id,"closed"),children:"Close"}),V.status==="closed"&&s.jsx(ye,{size:"sm",variant:"ghost",onClick:()=>G(V.id,"open"),children:"Reopen"}),s.jsx(ye,{size:"sm",variant:"ghost",leftIcon:s.jsx(sf,{className:"w-3 h-3"}),onClick:()=>{navigator.clipboard.writeText(`tlc://discuss?bug=${V.id}`)},children:"Discuss in CLI"})]})]})]},V.id)})})]})}const Zg=l=>l==="done"?s.jsx(qo,{className:"w-4 h-4 text-success"}):l==="in_progress"?s.jsx(rf,{className:"w-4 h-4 text-primary"}):s.jsx(nf,{className:"w-4 h-4 text-text-muted"}),ey=l=>l==="done"?"success":l==="in_progress"?"primary":"neutral";function Ld(){const{projectId:l}=fn(),a=Ae(z=>z.selectedProjectId),i=Ae(z=>z.selectProject),d=Je(z=>z.setActiveView),f=l??a??void 0;h.useEffect(()=>{l&&l!==a&&i(l)},[l,a,i]);const{roadmap:c,loading:p}=xf(f),[x,g]=h.useState(new Set),[v,j]=h.useState(!1);h.useEffect(()=>{d("roadmap")},[d]),h.useEffect(()=>{c!=null&&c.currentPhase&&g(new Set([c.currentPhase.number]))},[c==null?void 0:c.currentPhase]);const N=z=>{g(_=>{const b=new Set(_);return b.has(z)?b.delete(z):b.add(z),b})},k=()=>{if(v){const z=new Set;c==null||c.milestones.forEach(_=>_.phases.forEach(b=>z.add(b.number))),g(z)}else g(new Set);j(!v)},y=h.useMemo(()=>c!=null&&c.totalPhases?Math.round(c.completedPhases/c.totalPhases*100):0,[c]);return p?s.jsxs("div",{className:"p-6 space-y-6","data-testid":"loading",children:[s.jsx(ge,{className:"h-8 w-48"}),s.jsx(ge,{className:"h-4 w-full"}),[1,2,3,4].map(z=>s.jsx(ge,{className:"h-12"},z))]}):!c||c.milestones.length===0?s.jsx("div",{className:"p-6",children:s.jsx($e,{className:"p-8","data-testid":"empty-state",children:s.jsxs("div",{className:"text-center",children:[s.jsx("p",{className:"text-text-secondary",children:"No roadmap data available"}),s.jsx("p",{className:"text-sm text-text-muted mt-2",children:"This project may not have a ROADMAP.md file configured."})]})})}):s.jsxs("div",{className:"p-6 space-y-6",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold text-text-primary",children:"Roadmap"}),s.jsxs("p",{className:"text-sm text-text-secondary mt-1",children:[c.completedPhases,"/",c.totalPhases," phases complete (",y,"%)"]})]}),s.jsx(ye,{variant:"ghost",onClick:k,"data-testid":"collapse-all-btn",children:v?"Expand All":"Collapse All"})]}),s.jsx("div",{className:"w-full h-2 bg-bg-tertiary rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full bg-success rounded-full transition-all",style:{width:`${y}%`},"data-testid":"progress-bar"})}),c.milestones.map(z=>s.jsxs("div",{children:[s.jsx("h2",{"data-testid":"milestone-header",className:"text-sm font-bold text-text-secondary uppercase tracking-wider mb-3 mt-6",children:z.name}),s.jsx("div",{className:"space-y-1",children:z.phases.map(_=>{var E;const b=x.has(_.number),D=((E=c.currentPhase)==null?void 0:E.number)===_.number,L=_.taskCount>0?Math.round(_.completedTaskCount/_.taskCount*100):0;return s.jsxs("div",{children:[s.jsxs("div",{"data-testid":"phase-row",className:`flex items-center justify-between p-3 rounded-lg cursor-pointer hover:bg-bg-tertiary transition-colors ${D?"bg-primary/5 border border-primary/20":"bg-bg-secondary"}`,onClick:()=>N(_.number),children:[s.jsxs("div",{className:"flex items-center gap-3",children:[b?s.jsx(bn,{className:"w-4 h-4 text-text-muted"}):s.jsx(rr,{className:"w-4 h-4 text-text-muted"}),Zg(_.status),s.jsxs("span",{className:"font-mono text-sm text-text-muted",children:[_.number,"."]}),s.jsx("span",{className:"text-sm font-medium text-text-primary",children:_.name}),s.jsx(Mt,{variant:ey(_.status),size:"sm","data-testid":"phase-status",children:_.status==="in_progress"?"in progress":_.status}),_.verified&&s.jsx(Mt,{variant:"success",size:"sm",children:"verified"})]}),s.jsxs("div",{className:"flex items-center gap-4 text-xs text-text-muted",children:[s.jsxs("span",{"data-testid":"phase-tasks",children:[_.completedTaskCount,"/",_.taskCount," tasks"]}),_.hasTests&&s.jsxs("span",{"data-testid":"phase-tests",children:[_.testCount," tests"]}),s.jsx("div",{className:"w-16 h-1.5 bg-bg-tertiary rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full bg-success rounded-full",style:{width:`${L}%`}})})]})]}),b&&s.jsxs("div",{className:"ml-10 mt-2 mb-3 p-4 bg-bg-tertiary rounded-lg space-y-4","data-testid":"phase-detail",children:[_.goal&&s.jsxs("div",{children:[s.jsx("h4",{className:"text-xs font-semibold text-text-secondary uppercase mb-1",children:"Goal"}),s.jsx("p",{"data-testid":"phase-goal",className:"text-sm text-text-primary",children:_.goal})]}),_.deliverables&&_.deliverables.length>0&&s.jsxs("div",{children:[s.jsx("h4",{className:"text-xs font-semibold text-text-secondary uppercase mb-1",children:"Deliverables"}),s.jsx("ul",{"data-testid":"phase-deliverables",className:"space-y-1",children:_.deliverables.map((F,$)=>s.jsxs("li",{className:"flex items-center gap-2 text-sm text-text-secondary",children:[F.done?s.jsx(qo,{className:"w-3.5 h-3.5 text-success shrink-0"}):s.jsx(nf,{className:"w-3.5 h-3.5 text-text-muted shrink-0"}),s.jsx("span",{className:F.done?"line-through opacity-60":"",children:F.text})]},$))})]}),s.jsxs("div",{className:"flex items-center gap-4 text-xs text-text-muted pt-2 border-t border-border",children:[s.jsxs("span",{children:[_.taskCount," tasks total"]}),s.jsxs("span",{children:[_.completedTaskCount," completed"]}),_.hasTests&&s.jsxs("span",{children:[_.testCount," tests / ",_.testFileCount," files"]})]})]})]},_.number)})})]},z.name))]})}function ty({tabs:l,basePath:a}){const i=dn();return s.jsx("nav",{"data-testid":"tab-bar",className:"flex gap-1 px-6 py-2 border-b border-border bg-bg-secondary overflow-x-auto sticky top-0 z-10",role:"tablist",children:l.map(d=>{const f=d.path===""?a:`${a}/${d.path}`,c=d.path===""?i.pathname===a||i.pathname===a+"/":i.pathname.startsWith(f);return s.jsx(Yo,{to:f,role:"tab","aria-selected":c,"data-testid":`tab-${d.id}`,className:`px-4 py-2 text-sm font-medium rounded-md whitespace-nowrap transition-colors ${c?"bg-accent text-white":"text-text-secondary hover:bg-bg-tertiary hover:text-text-primary"}`,children:d.label},d.id)})})}const ny=[{id:"overview",label:"Overview",path:""},{id:"roadmap",label:"Roadmap",path:"roadmap"},{id:"tasks",label:"Tasks",path:"tasks"},{id:"tests",label:"Tests",path:"tests"},{id:"bugs",label:"Bugs",path:"bugs"},{id:"logs",label:"Logs",path:"logs"}];function ry(){const{projectId:l}=fn(),a=Ae(c=>c.selectProject),i=Ae(c=>c.selectedProjectId),d=ts();if(h.useEffect(()=>{l&&l!==i&&a(l)},[l,i,a]),h.useEffect(()=>{l||d("/projects")},[l,d]),!l)return null;const f=`/projects/${l}`;return s.jsxs("div",{className:"flex flex-col h-full","data-testid":"project-detail",children:[s.jsx(ty,{tabs:ny,basePath:f}),s.jsx("div",{className:"flex-1 overflow-auto",children:s.jsx(kh,{})})]})}function sy({project:l,updates:a=[],loading:i=!1,error:d,onBugSubmit:f}){const[c,p]=h.useState(""),[x,g]=h.useState(""),[v,j]=h.useState(!1);if(i)return s.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:s.jsx("p",{className:"text-text-muted",children:"Loading project details..."})});if(d)return s.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:s.jsx($e,{status:"error",className:"max-w-md",children:s.jsx("p",{className:"text-error",children:d})})});if(!l)return s.jsx("div",{className:"flex items-center justify-center min-h-[400px]",children:s.jsx("p",{className:"text-text-muted",children:"No project data available"})});const N=async k=>{if(k.preventDefault(),!(!f||!c||!x)){j(!0);try{await f({title:c,description:x}),p(""),g("")}finally{j(!1)}}};return s.jsxs("div",{className:"space-y-6 p-6",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-bold text-text-primary",children:l.name}),s.jsx("p",{className:"text-text-secondary mt-1",children:"Project Overview"})]}),s.jsxs($e,{children:[s.jsx(qr,{children:s.jsx("h2",{className:"text-lg font-semibold text-text-primary",children:"Overall Progress"})}),s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:"text-text-secondary",children:"Completion"}),s.jsxs("span",{className:"text-xl font-bold text-text-primary",children:[l.progress,"%"]})]}),s.jsx("div",{role:"progressbar","aria-valuenow":l.progress,"aria-valuemin":0,"aria-valuemax":100,className:"h-3 bg-bg-tertiary rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full bg-success rounded-full transition-all duration-300",style:{width:`${l.progress}%`}})})]})]}),s.jsxs($e,{children:[s.jsx(qr,{children:s.jsx("h2",{className:"text-lg font-semibold text-text-primary",children:"Phase Progress"})}),s.jsxs("div",{className:"space-y-4",children:[s.jsx("p",{className:"text-text-primary font-medium",children:l.currentPhase}),s.jsxs("p",{className:"text-text-secondary",children:[l.completedPhases," of ",l.totalPhases," phases complete"]}),s.jsx("div",{className:"h-2 bg-bg-tertiary rounded-full overflow-hidden","aria-hidden":"true",children:s.jsx("div",{className:"h-full bg-info rounded-full transition-all duration-300",style:{width:`${l.completedPhases/l.totalPhases*100}%`}})})]})]}),a.length>0&&s.jsxs($e,{children:[s.jsx(qr,{children:s.jsx("h2",{className:"text-lg font-semibold text-text-primary",children:"Recent Updates"})}),s.jsx("ul",{className:"space-y-3",children:a.map((k,y)=>s.jsxs("li",{className:"flex items-start gap-3",children:[s.jsx("span",{className:"text-text-muted text-sm whitespace-nowrap",children:k.date}),s.jsx("span",{className:"text-text-primary",children:k.message})]},y))})]}),s.jsxs($e,{children:[s.jsx(qr,{children:s.jsx("h2",{className:"text-lg font-semibold text-text-primary",children:"Report an Issue"})}),s.jsxs("form",{onSubmit:N,className:"space-y-4",children:[s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-title",className:"block text-sm font-medium text-text-secondary mb-1.5",children:"Title"}),s.jsx("input",{id:"bug-title",type:"text",value:c,onChange:k=>p(k.target.value),className:"input w-full",placeholder:"Brief summary of the issue"})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"bug-description",className:"block text-sm font-medium text-text-secondary mb-1.5",children:"Description"}),s.jsx("textarea",{id:"bug-description",value:x,onChange:k=>g(k.target.value),className:"input w-full min-h-[100px]",placeholder:"Please describe what happened and what you expected"})]}),s.jsx(ye,{type:"submit",loading:v,disabled:!c||!x,children:"Submit Issue"})]})]})]})}function ly(){const{isConfigured:l,projects:a,selectedProjectId:i,isScanning:d,lastScan:f,setRoots:c,setProjects:p,selectProject:x,restoreSelectedProject:g,setIsScanning:v,setLastScan:j}=Ae(),[N,k]=h.useState(null),[y,z]=h.useState(!1);h.useEffect(()=>{g(),ke.workspace.getConfig().then(L=>{if(c(L.roots),L.lastScans&&Object.keys(L.lastScans).length>0){const E=Object.values(L.lastScans).filter(F=>typeof F=="number");if(E.length>0){const F=Math.max(...E);Number.isNaN(F)||j(new Date(F).toISOString())}}return L.roots.length>0?ke.workspace.getProjects():(p([]),z(!0),null)}).then(L=>{L&&(p(L),z(!0))}).catch(L=>{k(L instanceof Error?L.message:"Failed to fetch workspace config"),z(!0)})},[c,p,g,j]);const _=h.useCallback(L=>{x(L)},[x]);h.useEffect(()=>{y&&i&&a.length>0&&!a.some(L=>L.id===i)&&x(null)},[y,a,i,x]);const b=h.useCallback(async()=>{k(null),v(!0);try{const L=await ke.workspace.scan();if(L!=null&&L.projects)p(L.projects);else{const E=await ke.workspace.getProjects();p(E)}L!=null&&L.scannedAt?j(new Date(L.scannedAt).toISOString()):j(new Date().toISOString())}catch(L){k(L instanceof Error?L.message:"Scan failed")}finally{v(!1)}},[v,p,j]),D=a.find(L=>L.id===i)??null;return{isConfigured:l,projects:a,selectedProject:D,selectProject:_,scan:b,isScanning:d,lastScan:f?new Date(f).getTime():null,error:N}}function ay({onScan:l,onScanComplete:a,isScanning:i=!1,error:d=null}){const[f,c]=h.useState([]),[p,x]=h.useState(""),[g,v]=h.useState(null),j=()=>{const b=p.trim();if(!b){v("Please enter a path");return}if(f.includes(b)){x("");return}c([...f,b]),x(""),v(null)},N=b=>{c(f.filter((D,L)=>L!==b))},k=b=>{x(b.target.value),g&&v(null)},y=b=>{b.key==="Enter"&&j()},z=async()=>{f.length===0||i||(await l(f),a())},_=f.length===0||i;return s.jsx("div",{className:"flex flex-col items-center justify-center min-h-[60vh] p-8",children:s.jsxs("div",{className:"w-full max-w-lg space-y-6",children:[s.jsxs("div",{"data-testid":"welcome-message",className:"text-center space-y-2",children:[s.jsx(lf,{className:"w-12 h-12 text-primary mx-auto"}),s.jsx("h1",{className:"text-2xl font-bold text-foreground",children:"Welcome to TLC Dashboard"}),s.jsx("p",{className:"text-muted-foreground",children:"A workspace is a collection of project root folders that TLC will scan and monitor. Add one or more root folders below to get started."})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{htmlFor:"root-path-input",className:"block text-sm font-medium text-foreground",children:"Root Folder Path"}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{id:"root-path-input","data-testid":"root-path-input",type:"text",value:p,onChange:k,onKeyDown:y,placeholder:"~/Projects",className:`flex-1 px-3 py-2 text-sm bg-surface border border-border rounded-md\r
|
|
408
|
-
text-foreground placeholder:text-muted-foreground\r
|
|
409
|
-
focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary`}),s.jsxs("button",{"data-testid":"add-root-button",onClick:j,className:`inline-flex items-center gap-1.5 px-3 py-2 text-sm font-medium\r
|
|
410
|
-
rounded-md border border-border bg-surface hover:bg-muted\r
|
|
411
|
-
text-foreground transition-colors cursor-pointer`,children:[s.jsx(El,{className:"w-4 h-4"}),"Add Root"]})]}),g&&s.jsx("p",{"data-testid":"validation-error",className:"text-sm text-error",children:g})]}),f.length>0&&s.jsxs("div",{"data-testid":"root-list",className:"space-y-2",children:[s.jsxs("h2",{className:"text-sm font-medium text-foreground",children:["Root Folders (",f.length,")"]}),s.jsx("ul",{className:"space-y-1",children:f.map((b,D)=>s.jsxs("li",{"data-testid":`root-item-${D}`,className:`flex items-center justify-between px-3 py-2\r
|
|
412
|
-
bg-surface border border-border rounded-md`,children:[s.jsx("span",{className:"text-sm text-foreground truncate",children:b}),s.jsx("button",{"data-testid":`remove-root-${D}`,onClick:()=>N(D),"aria-label":`Remove ${b}`,className:`ml-2 p-1 text-muted-foreground hover:text-error\r
|
|
413
|
-
transition-colors rounded cursor-pointer`,children:s.jsx(Px,{className:"w-4 h-4"})})]},b))})]}),d&&s.jsx("p",{"data-testid":"scan-error",className:"text-sm text-error text-center",children:d}),i&&s.jsxs("div",{"data-testid":"scan-spinner",className:"flex items-center justify-center gap-2",children:[s.jsx(Xo,{className:"w-5 h-5 text-primary animate-spin"}),s.jsx("span",{className:"text-sm text-muted-foreground",children:"Scanning projects..."})]}),s.jsxs("button",{"data-testid":"scan-button",onClick:z,disabled:_,className:`
|
|
414
|
-
w-full inline-flex items-center justify-center gap-2 px-4 py-2.5
|
|
415
|
-
text-sm font-medium rounded-md transition-colors
|
|
416
|
-
${_?"opacity-50 cursor-not-allowed bg-muted text-muted-foreground border border-border":"bg-primary text-primary-foreground hover:bg-primary/90 cursor-pointer"}
|
|
417
|
-
`,children:[s.jsx(En,{className:"w-4 h-4"}),"Scan Projects"]})]})})}function oy(l){const i=Date.now()-l,d=Math.floor(i/1e3),f=Math.floor(i/6e4),c=Math.floor(i/36e5),p=Math.floor(i/864e5);return d<60?"just now":f<60?f===1?"1 minute ago":`${f} minutes ago`:c<24?c===1?"1 hour ago":`${c} hours ago`:p===1?"1 day ago":`${p} days ago`}function iy({onScan:l,lastScan:a,isScanning:i,projectCount:d,error:f}){const c=d===1?"project":"projects",p=a!==null?`Last scanned: ${oy(a)}`:"Never scanned";return s.jsxs("div",{className:"flex items-center justify-between p-3 bg-surface border border-border rounded-lg",children:[s.jsxs("div",{className:"flex items-center gap-4",children:[s.jsxs("span",{"data-testid":"project-count",className:"text-sm font-medium text-foreground",children:[d," ",c]}),s.jsx("span",{"data-testid":"last-scan",className:"text-sm text-muted-foreground",children:p})]}),s.jsxs("div",{className:"flex items-center gap-3",children:[f&&s.jsx("span",{"data-testid":"scan-error",className:"text-sm text-error",children:f}),i&&s.jsx(Xo,{"data-testid":"scan-spinner",className:"w-4 h-4 text-primary animate-spin"}),s.jsxs("button",{"data-testid":"refresh-button",onClick:l,disabled:i,className:`
|
|
418
|
-
inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium
|
|
419
|
-
rounded-md border border-border
|
|
420
|
-
transition-colors
|
|
421
|
-
${i?"opacity-50 cursor-not-allowed bg-muted text-muted-foreground":"bg-surface hover:bg-muted text-foreground cursor-pointer"}
|
|
422
|
-
`,children:[s.jsx(Pl,{className:"w-4 h-4"}),"Refresh"]})]})]})}function uy({projects:l,selectedProjectId:a,onSelect:i}){const d=l.length===1?"project":"projects";return s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"relative",children:[s.jsxs("select",{"data-testid":"project-selector",value:a??"",onChange:f=>{f.target.value&&i(f.target.value)},className:`\r
|
|
423
|
-
appearance-none\r
|
|
424
|
-
w-56 pl-3 pr-8 py-1.5\r
|
|
425
|
-
text-sm font-medium\r
|
|
426
|
-
bg-bg-secondary border border-border rounded-md\r
|
|
427
|
-
text-text-primary\r
|
|
428
|
-
cursor-pointer\r
|
|
429
|
-
focus:outline-none focus:ring-2 focus:ring-accent focus:border-accent\r
|
|
430
|
-
`,children:[s.jsx("option",{value:"",children:"Select a project..."}),l.map(f=>s.jsx("option",{value:f.id,children:f.name},f.id))]}),s.jsx(bn,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted pointer-events-none"})]}),s.jsxs("span",{"data-testid":"project-selector-count",className:"text-sm text-text-muted",children:[l.length," ",d]})]})}const cy=(l,a)=>{const i=`${window.location.protocol}//${window.location.host}`;let d;try{d=new URL(i,window.location.origin)}catch{d=new URL(`${window.location.protocol}//${window.location.host}`)}const c=`${d.protocol==="https:"?"wss:":"ws:"}//${d.host}`,p=new URL("/ws",c);return a&&p.searchParams.set("projectId",a),p.toString()};function dy(){var v,j,N,k;const l=ts(),{isCommandPaletteOpen:a,closeCommandPalette:i,initFromStorage:d,toggleTheme:f}=Je(),c=ly();h.useEffect(()=>{d()},[d]);const p=h.useMemo(()=>{var y;return cy(void 0,(y=c.selectedProject)==null?void 0:y.id)},[(v=c.selectedProject)==null?void 0:v.id]);tg({url:p,autoConnect:!0,projectId:(j=c.selectedProject)==null?void 0:j.id});const x=(N=c.selectedProject)==null?void 0:N.id,g=h.useMemo(()=>[{id:"nav-dashboard",label:"Go to Dashboard",shortcut:"g d",action:()=>{l(x?`/projects/${x}`:"/"),i()}},{id:"nav-projects",label:"Go to Projects",shortcut:"g p",action:()=>{l("/projects"),i()}},{id:"nav-tasks",label:"Go to Tasks",shortcut:"g t",action:()=>{l(x?`/projects/${x}/tasks`:"/tasks"),i()}},{id:"nav-logs",label:"Go to Logs",shortcut:"g l",action:()=>{l(x?`/projects/${x}/logs`:"/logs"),i()}},{id:"nav-settings",label:"Go to Settings",shortcut:"g s",action:()=>{l("/settings"),i()}},{id:"nav-team",label:"Go to Team",shortcut:"g m",action:()=>{l("/team"),i()}},{id:"nav-health",label:"Go to Health",shortcut:"g h",action:()=>{l("/health"),i()}},{id:"nav-preview",label:"Go to Preview",shortcut:"g v",action:()=>{l(x?`/projects/${x}/preview`:"/preview"),i()}},{id:"nav-tests",label:"Go to Tests",shortcut:"g x",action:()=>{l(x?`/projects/${x}/tests`:"/tests"),i()}},{id:"nav-bugs",label:"Go to Bugs",shortcut:"g b",action:()=>{l(x?`/projects/${x}/bugs`:"/bugs"),i()}},{id:"nav-roadmap",label:"Go to Roadmap",shortcut:"g r",action:()=>{l(x?`/projects/${x}/roadmap`:"/roadmap"),i()}},{id:"nav-setup",label:"Workspace Setup",shortcut:"g w",action:()=>{l("/setup"),i()}},{id:"toggle-theme",label:"Toggle Theme",shortcut:"t",action:()=>{f(),i()}}],[l,i,f,x]);return s.jsxs(s.Fragment,{children:[s.jsxs(id,{children:[s.jsx(Re,{path:"/setup",element:s.jsx(ay,{onScan:async y=>{await ke.workspace.setConfig(y),await c.scan()},onScanComplete:()=>l("/projects"),isScanning:c.isScanning,error:c.error})}),s.jsx(Re,{path:"/*",element:s.jsxs(pf,{children:[s.jsxs("div",{className:"flex items-center gap-4 px-6 py-3 border-b border-border bg-bg-secondary",children:[c.projects.length>0&&s.jsx(uy,{projects:c.projects,selectedProjectId:((k=c.selectedProject)==null?void 0:k.id)??null,onSelect:y=>{c.selectProject(y),l(`/projects/${y}`)}}),s.jsx(iy,{onScan:()=>c.scan(),lastScan:c.lastScan,isScanning:c.isScanning,projectCount:c.projects.length,error:c.error})]}),s.jsxs(id,{children:[s.jsxs(Re,{path:"/projects/:projectId/*",element:s.jsx(ry,{}),children:[s.jsx(Re,{index:!0,element:s.jsx(Fo,{})}),s.jsx(Re,{path:"roadmap",element:s.jsx(Ld,{})}),s.jsx(Re,{path:"tasks",element:s.jsx(wd,{})}),s.jsx(Re,{path:"tests",element:s.jsx(Td,{})}),s.jsx(Re,{path:"bugs",element:s.jsx(Rd,{})}),s.jsx(Re,{path:"logs",element:s.jsx(Sd,{})}),s.jsx(Re,{path:"preview",element:s.jsx(Pd,{})})]}),s.jsx(Re,{path:"/",element:s.jsx(Fo,{})}),s.jsx(Re,{path:"/dashboard",element:s.jsx(Fo,{})}),s.jsx(Re,{path:"/projects",element:s.jsx(Mg,{})}),s.jsx(Re,{path:"/tasks",element:s.jsx(wd,{})}),s.jsx(Re,{path:"/logs",element:s.jsx(Sd,{})}),s.jsx(Re,{path:"/settings",element:s.jsx(Lg,{})}),s.jsx(Re,{path:"/team",element:s.jsx(Qg,{})}),s.jsx(Re,{path:"/health",element:s.jsx(qg,{})}),s.jsx(Re,{path:"/preview",element:s.jsx(Pd,{})}),s.jsx(Re,{path:"/tests",element:s.jsx(Td,{})}),s.jsx(Re,{path:"/bugs",element:s.jsx(Rd,{})}),s.jsx(Re,{path:"/roadmap",element:s.jsx(Ld,{})}),s.jsx(Re,{path:"/client",element:s.jsx(sy,{})})]})]})})]}),s.jsx(Wx,{commands:g,open:a,onClose:i})]})}function fy(){return s.jsx(Vx,{children:s.jsx(dy,{})})}Cp.createRoot(document.getElementById("root")).render(s.jsx(Yr.StrictMode,{children:s.jsx(Kh,{children:s.jsx(fy,{})})}));
|
|
431
|
-
//# sourceMappingURL=index-W36XHPC5.js.map
|